230 likes | 328 Views
PROJETO DE BDOOs. Projeto BDOO versus Relacional . Três importante diferenças: Tratamento de relacionamentos Tratamento de hierarquias de classes Especificação das operações. Relacionamentos (Mod. Relacional) .
E N D
Projeto BDOO versus Relacional Três importante diferenças: Tratamento de relacionamentos Tratamento de hierarquias de classes Especificação das operações
Relacionamentos (Mod. Relacional) Em BD relacionais, relacionamentos são especificados por chaves estrangeiras (casamento de valores entre atributos) Relacionamentos M:N não são representados diretamente, mas através de uma relação separada.
Relacionamentos (Mod. OO) Um BDOO possui propriedades de relacionamento ou atributos de referência: IDO dos objetos relacionados São permitidas tanto referências simples como a coleções.
OO: Referências uni- ou bidirecionais Relacionamentos binários podem ser especificados em uma única ou em ambas as direções, de acordo com o tipo de acesso esperado. Se as referências são declaradas nas duas direções, devem ser especificadas como inversas, o que forçará o SBD a manter a restrição de integridade “referencial”.
Mapeamento de relacionamentos com atributos em BDOO Havendo atributos de relacionamentos, o projetista deverá escolher de que lado colocá-los, ou de ambos os lados. É aceitável criar uma classe separada para representar o relacionamento (abordagem relacional) evitando-se redundância e inconsistência.
Lidando com hierarquia de classes (herança) Em BDOO o mapeamento de hierarquias é direto, através dos construtores de herança: derivação (:) e EXTENDS. Já no relacional o mapeamento é indireto (faz-se uma “simulação” do mecanismo de herança)
Especificação das operações Em BDOO, já na fase de projeto, as opera-ções devem ser especificadas. Em BD Relacionais, embora desejável na fase de projeto, a especificação das operações pode ser adiada.
Mapeamento MER+ / Relacional MER+ Relacional Entidade Relação Relacionam. 1:1 ou 1:N Ch. estrang. ou relação Relacionam. M:N Relação c/ 2 ch. estrangeiras Relacionam. n-ário Relação c/ n ch. estrangeiras Atributo simples Atributo da relação Atributo composto Conj. de atributos simples Atributo multivalorado Relação e ch. estrangeira Atributo identificador Chave
Mapeamento MER+ / Relacional (hierarquias) Seja uma entidade E, com atributos {Ch,a1,a2,...,an} e as entidades derivadas (subclasses) E1, E2,...,Em.
Mapeamento MER+ / Relacional (hierarquias) Tipos de hierarquia: Hierarquia Total Exclusiva Hierarquia Parcial Hierarquia total exclusiva: - E1 E2 ... Em = E -E1 E2... Em =
Mapeamento MER+ / Relacional (hierarquias) Possibilidades de mapeamento: A: Criar uma relação R para E com os atributos de E = {Ch,a1,a2,. . .,an} Criar uma relação Ri para cada subclasse Ei, com atributos {Ch} {atributos de Ei} Obs:Ch será também chave prim. de cada Ei
Mapeamento MER+ / Relacional (hierarquias) B: Criar uma relação Ri para cada subclasse Ei, com atributos Atr = {atributos de Ei} {atributos de E} Obs: Ch será a chave primária de cada Ri
Mapeamento MER+ / Relacional (hierarquias) C: Criar uma única relação R, com atributos Atr={Ch,a1,a2,...,an} {atributos de E1} {atributos de E2} ... {atributos de Em} {t} t: tipo ou discriminação da subclasse. Obs: só aplicável para subclasses disjuntas.
Mapeamento MER+ / Relacional (hierarquias) D: Criar uma única relação R, com atributos Atr={Ch,a1,a2,...,an} {atributos de E1} {atributos de E2} ... {atributos de Em} {t1,t2,...,tm} Obs1: t1,t2,...,tm atributos booleanos Obs2: aplicável para subclasses que se sobrepõem (interseção não nula).
Mapeamento MER+ / Modelo OO O mapeamento é direto, com exceção das operações (não fazem parte do MER+), que são adicionadas às declarações de classes.
Mapeamento MER+ / Modelo OO (Passos) 1) - Criar uma classe na LDO para cada entidade do MER+. Incluir todos os atributos da entidade. - Para os atributos multivalorados, empregar os construtores conjunto(set), sacola(bag), ou lista (list). - Atributos compostos são mapeados através do construtor tupla. - Declarar uma extensão (extent) para cada classe, especificando a chave (se suportado pelo SGBDOO)
Mapeamento MER+ / Modelo OO (Passos) 2) - Incluir atributos referência, para cada relacionamento binário, em uma das classes participantes, ou em ambas. Se opção for feita pelas referências bidirecio-nais, declará-las como inversas, se suportado Se o SGBDOO não prevê essas declarações (de mútuas referências), o programador criará os métodos que atualizem apropriadamente os objetos.
Mapeamento MER+ / Modelo OO (Passos) 3) - Incluir as operações apropriadas para cada classe (a partir dos requisitos do sistema). Um método construtor pode incluir rotinas que garantam as restrições a serem observadas na criação de objetos. Idem para métodos destrutores (ou outros)
Mapeamento MER+ / Modelo OO (Passos) 4) - Classes na LDO que correspondam a subclasses no esquema MER+herdam (via EXTENDS) o tipo e os métodos de sua superclasse no esquema LDO. Atributos, referências e operações específicas das subclasses são criadas.
Mapeamento MER+ / Modelo OO (Passos) 5) - Entidades fracas são mapeadas normalmente, como as demais. Se uma dessas entidades só participa de relacionamento com a entidade que a identifica, ela pode ser mapeada como se fosse atributo multivalorado composto daquela entidade (“proprietária”)
Mapeamento MER+ / Modelo OO (Passos) 6) - CATEGORIAS Se uma dessas entidades só participa de relacionamento com a entidade que a identifica, ela pode ser mapeada como se fosse atributo multivalorado composto daquela entidade (“proprietária”)
Mapeamento MER+ / Modelo OO (Passos) 6) - Relacionamentos n-ários (n>2) são mapeados como uma classe separada, com referências a cada classe associada. Um relacionamento binário M:N também pode ser mapeado desta forma (especialmente se houver atributos do relacionamento)