Escolar Documentos
Profissional Documentos
Cultura Documentos
Modelos de Dados
Clodis Boscarioli
Agenda:
Persistncia (Conceitos)
Sistemas de Banco de Dados
Modelo Relacional;
Normalizao.
Modelo Orientado a Objetos;
Modelo Objeto-Relacional.
Mapeamento Objeto-Relacional
Introduo ao Hibernate.
Persistncia
um tpico vital para o desenvolvimento de
aplicaes;
Quase todas as aplicaes necessitam que dados
sejam persistidos;
Necessidades:
Armazenamento;
Busca;
Organizao;
Compartilhamento dos dados.
Persistncia
Necessidades:
Integridadedos dados;
Controle de concorrncia.
Desempenho e a escalabilidade so fortemente
afetados pela estratgia de acesso a dados
escolhida.
Sistemas de Banco de Dados
Quando falamos Sistemas de BD, entendemos a
juno de:
SistemaGerenciador de Banco de Dados;
Banco de Dados.
Sistema Gerenciador de Banco de Dados
Gerenciador Gerenciador
Gerenciador de transaes de buffer
de memria
Gerenciador
de arquivos
Armazenamento
ndices Dados
em disco estatsticos
BD
Arquivos de Dicionrio
dados de dados
Banco de dados e Abstrao de Dados
Um dos maiores benefcios dos sistemas de banco de dados proporcionar aos
usurios uma viso abstrata dos dados. O sistema capaz de ocultar alguns detalhes
sobre a forma de armazenamento e a manuteno dos dados.
A eficincia da recuperao de informaes est relacionada forma como as
estruturas de representao so projetadas e, dado a complexidade e importncia
destas representaes, elas devem ser protegidas em nveis de abstraes.
Estes nveis facilitam a manuteno do sistema e a interao dos usurios com os
sistemas. So eles:
1 N
Aluno Curso
N 1
Aluno Curso
N M
Aluno Curso
O valor null.
Para a situao:
num_conta saldo
conta
conta_poup conta_mov
Representao Tabular da Generalizao
Relembrando...
seguro rua
cidade nmero saldo
nome
Agente_
emp
empregado
seguro telefone
nome
Representao Tabular da Agregao
Assim:
cliente, com os atributos nome_cliente, seguro_cliente, rua, cidade;
emprstimo, com os atributos nmero_emprstimo, total;
devedor, com os atributos seguro_cliente, nmero_emprstimo;
empregado, com os atributos seguro_empregado, nome_empregado, nmero_telefone;
agente_emprstimo, com os atributos seguro_empregado, nmero emprstimo e
seguro_cliente.
Diretriz de Projeto n 1:
Modelar um esquema de relao de modo que seja
fcil explicar seu significado. Se uma relao
corresponde a uma mistura de entidades e
relacionamentos, resultaro em ambigidades
semnticas e a relao no poder se explicada
facilmente.
Esquema 2:
Emp_proj: (ssn, pnumero, horas, enome, pnome, plocalizao)
Considere o esquema:
SSN, PNumero, Horas, Enome, Pnome, Plocalizao
Dependncias funcionais:
Construmos:
Lotes1a: Num_ID_Propriedade, Municipio_nome, Num_lote, Area
Com as DFs 1 e 2.
Tutor Disciplina
Aluno, Disciplina Tutor H dependncia transitiva da chave primria!
Relao CURSA
ALUNO DISCIPLINA TUTOR
DF:
Fnome Especializao
BCNF Outro Exemplo
300 Perls
300 Riemann
Resultado:
4FN: Livros(nrol, ttulo, editora, ano_public)
Editoras(editora, cid-edit)
AutLiv(nrol, autor)
AssLiv(nrol, assunto)
4 Forma Normal Outro Exemplo
Relao Aluno
100 Natao
100 Contabilidade
100 Tnis
150 Matemtica
150 Jogging
Joo GM Carro
Joo GM Caminho
Isso:
Modelagem de BDOOs
Ao invs disso:
O Modelo de Dados Orientado a Objeto
A estrutura objeto:
O termo chamar um mtodo algumas vezes usado para representar o ato de enviar uma
mensagem a um objeto e a execuo do mtodo correspondente.
Exemplo:
Considerando a entidade empregado em um banco de dados. Suponha que o salrio anual
de um empregado seja calculado de maneiras diferentes para diferentes empregados. Por
exemplo, os gerentes podem ter um bnus dependendo do desempenho do banco, enquanto
os caixas podem obter um bnus dependendo de quantas horas eles trabalharam. possvel
encapsular o cdigo para calcular o salrio para cada empregado como um mtodo que
executado em resposta a uma mensagem salrio_anual.
Todos os objetos empregado respondem mensagem salrio_anual, mas fazem isso de
diferentes maneiras. Pelo encapsulamento da informao sobre como calcular o salrio anual
dentro do objeto empregado, todos os objetos empregados apresentam a mesma interface.
possvel modificar a definio de um objeto sem afetar o resto do sistema. Esta uma das
habilidades considerada como uma das maiores vantagens do paradigma de programao
orientado a objetos.
O Modelo de Dados Orientado a Objeto
Os mtodos de um objeto podem ser:
Somente leitura: no afeta os valores das variveis em um objeto;
De atualizao: pode mudar os valores das variveis.
Cada atributo de uma entidade deve ser expresso como uma varivel e um par de
mensagens do objeto no modelo orientado a objeto. A varivel usada para armazenar o
valor do atributo, uma mensagem usada para ler o valor do atributo e o outro mtodo
usado para atualizar o valor. Por exemplo:
O atributo endereo da entidade empregado pode ser representado por:
Uma varivel endereo;
Uma mensagem obter_endereo cuja resposta o endereo;
Uma mensagem ajustar_endereo, que possui um parmetro novo_endereo, para atualizar o
endereo.
Por simplicidade muitos modelos orientados a objeto permitem que as variveis sejam
lidas ou atualizadas diretamente, sem ter de definir mensagens para isso.
Classes de Objetos
Objetos similares so aqueles que respondem s mesmas mensagens, usam os mesmos
mtodos e tm variveis de mesmo nome e tipo.
Objetos similares so agrupados formando uma classes.
Cada um desses objetos chamada de uma instncia de sua classe.
A noo de uma classe no modelo de dados orientado a objeto corresponde noo de um
conjunto entidade do modelo E-R.
Class empregado {
/* variveis */
string nome;
string endereo;
date data_incio;
int salrio;
/* mensagen */
int salrio_anual();
string obter_nome();
string obter_endereo();
int ajustar_endereo (string novo_endereo);
int tempo_emprego();
}
Classes de Objetos
Qualquer mtodo de uma classe pode ser invocado por qualquer objeto
pertencente a qualquer subclasse desta classe.
pessoa
empregado cliente
pessoa
empregado cliente
Formas de identidade:
Valor: usado em modelos relacionais um valor de dado usado para identidade da
tupla;
Nome: usado em sistemas de arquivos um nome fornecido pelo usurio usado
para identidade dos arquivos;
Embutido: usado em sistemas orientados a objetos a cada objeto atribudo
automaticamente um identificador pelo sistema quando aquele objeto criado.
bicicleta
parte de
Representao no BDOO:
Um BDOO armazena objetos integralmente;
possvel recuperar um objeto a qualquer momento, inclusive todas as
referncias.
Linguagem de definio:
ODL (Object Definition Language);
Utilizada para criar definies de objetos.
Linguagem de consulta:
OQL (Object Query Language);
Utilizada para recuperar objetos do banco.
Modelagem de BDOOs
Classes
Modelagem de BDOOs
Automvel{OID12}
736194174 Objetos
Ka
Preto
20000 Fabricante{OID1}
OID1 Ford
[OID5123] Joo da Silva
[OID1125, OID1127, OID1128]
Pea{OID5123}
Motor{OID154}
Correia Dentada
Ford Rocam 1000 16V
OID154 OID1
[OID1125, OID1127, OID1128] 120CV
736194174
Ka
Preto Objeto Complexo
20000
Fabricante{OID1}
Ford
Joo da Silva
Fbrica {OID1127} Fbrica {OID1128}
Fbrica {OID1125}
Filial So Bernardo I Filial So Bernardo
Central II
So Bernardo
Camaari So Bernardo
250
320 130
Motor{OID154}
Rocam 1000 16V
120 CV
Modelagem Padro ODMG ODL
Especificao ODL
class Pessoa
(extent pessoas
key nss)
{
attribute struct Nomep{string sobrenome, string primeiro_nome} nome;
attribute string nss;
attribute date data_nascimento;
attribute enum Genero{M,F} sexo;
attribute struct Endereo
{short num, string logradouro, sort numapto, string cidade, string estado, short
cpe}
endereo;
short idade();
};
Especificao ODL
class Grau
( extent graus)
{
attribute enum GrauValores{A,B,C,D,F,I,P} grau;
relationship Disciplina disciplina inverse Disciplina::alunos;
relationship Aluno aluno inverse Alunos::disciplinas_completadas;
};
Especificao ODL
Objectivity/DB
Integrado diretamente com a aplicao
No necessrio um processo separado;
APIs (Application Programming Interfaces):
C++;
SmallTalk;
Java:
Integrao com IDE Eclipse;
Ferramentas de Administrao e Projeto.
Suporta SQL;
Suporta XML;
Exemplos de SGBDOOs
GemStone
Armazena mtodos dos objetos no banco
APIs:
C++;
SmallTalk;
Java.
Suporta SQL apenas atravs da interface SmallTalk;
Suporta XML, com ambiente de gerenciamento otimizado;
Compatvel com .Net.
Exemplos de SGBDOOs
Jasmine
Desenvolvido pela Computer Associates
APIs:
C++;
SmallTalk;
Java;
Oferece todas as funcionalidades de um BD relacional, alm das
capacidades da OO;
Suporta OQL;
Suporta SQL;
Possui integrao com ferramentas CASE.
Banco de Dados Relacional-Objeto:
Introduo
Modelos de dados relacionais-objeto estendem o modelo de dados relacional
fornecendo um tipo de sistema mais rico, incluindo orientao a objetos e
acrescentando estruturas especiais linguagem de consultas relacionais, como a
SQL, para tratar os tipos de dados acrescentados.
Primeira Forma Normal: exige que todos os atributos de uma relao tenham
domnios atmicos. Um domnio atmico se os elementos do domnio so
considerados unidades indivisveis.
Assim, um objeto complexo pode ser representado por uma nica tupla de uma
relao aninhada.
Exemplo:
Considere um sistema de recuperao de documentos em que armazenamos, para
cada documento, as seguintes informaes:
Ttulo do documento;
Lista de autores;
Data de aquisio;
Lista de palavras-chave.
Diagrama UML
Exemplo:
Esquema Relacional
Exemplo:
Esquema
Objeto-Relacional
Definio dos Tipos
Herana
A herana pode ser no nvel de tipos ou no nvel de tabelas.
Herana de tipos:
create type Pessoa
( nome MinhaSeqncia,
seguro_social integer)
create type Estudante
(graduao MinhaSeqncia,
departamento MinhaSeqncia)
under Pessoa
create type Professor
(salrio integer,
departamento MinhaSeqncia)
under Pessoa
Requisitos:
As tuplas de uma tabela tambm podem ter referncias a elas. A chave primria
da tabela pode ser usada para criar essas referncias.
Observe que o campo ano do atributo composto data referido pelo uso de uma
notao de ponto.
SQL: Atributos Relao-Valorados
A SQL estendida permite que uma expresso para uma relao aparea em
qualquer lugar em que o nome da relao possa aparecer, como em uma
condio from.
select nome
from pdoc
where banco de dados in lista_palavra_chave
select estudantes_phd.orientador.nome
from estudantes_phd
(plano de vendas, set (Smith, Jones), (1, abril, 89), set (lucro,
estratgia))
Financeiras
Alto custo de migrao;
Tempo para migrao;
Treinamento de pessoal;
Necessidade de profissionais mais qualificados;
Algumas Consideraes...
SGBDOOs:
Unio de duas tecnologias
Bancos de Dados;
Orientao a Objetos.
Objetivos semelhantes ao SGBDR:
Persistir dados;
Recuperao;
Comparao;
Tratamento / Gerenciamento.
SGBDO-R (Objeto-relacional)