A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

Objetos em Bancos de Dados Relacionais Alcides Calsavara.

Apresentações semelhantes


Apresentação em tema: "Objetos em Bancos de Dados Relacionais Alcides Calsavara."— Transcrição da apresentação:

1 Objetos em Bancos de Dados Relacionais Alcides Calsavara

2 Vantagens de BD n recuperação em caso de falha n compartilhamento entre usuários n compartilhamento entre aplicações n segurança n integridade n extensibilidade n distribuição de dados

3 Conceitos de BD relacionais n Partes de um RDBMS: –dados que são apresentados como tabelas –operadores para manipulação de tabelas –regras de integridade para as tabelas

4 Estrutura lógica de um RDBMS n coleção de tabelas n cada tabela tem um determinado número de colunas e um número qualquer de linhas n colunas são chamadas de atributos n linhas são chamadas de tuplas n cada atributo tem um domínio: conjunto de valores legais

5 Operadores de RDBMS n SQL: –SELECT... FROM... WHERE... –CREATE TABLE... –INSERT ROW... INTO TABLE... –DELETE ROW... FROM TABLE... SET-ORIENTED

6 Integridade em RDBMS n Integridade de entidade: cada tabela tem exatamente uma chave-primária chave-primária : combinação de um ou mais atributos cujo valor identifica unicamente cada linha em uma tabela

7 Integridade em RDBMS (cont.) n Integridade referencial: cada chave estrangeira deve ser consistente com sua correspondente chave primária chave estrangeira: é uma chave primária de uma tabela embutida em outra (ou na mesma) tabela

8 Formas normais n primeira: nenhum atributo contém um grupo de valores n segunda: cada tupla deve ter uma chave primária n terceira: cada atributo depende diretamente da chave primária

9 OID como chave primária n Mapeamento classe-tabela –há uma tabela para cada classe –cada tupla corresponde ao estado de uma instância (objeto) da classe –a chave primária da tupla é a OID do correspondente objeto

10 OID como chave primária (cont.) n Mapeamento associação-tabela –há uma tabela para cada associação entre classes –cada tupla corresponde a uma ligação entre instâncias (objetos) das classes associadas –a chave primária da tupla é composta pelas OIDs dos objetos ligados

11 OID como chave primária (cont.) n vantagem: associações são implementadas de forma independente de propriedades de objetos e, portanto, não requer atualização quando objetos são modificados

12 OID como chave primária (cont.) n desvantages: –RDBMS não gerencia OID: pode haver ineficiência e desperdício de espaço –a teoria relacional diz que dados são manipulados de acordo com seus atributos: OID é um artefato de implementação que RDBMS tenta eliminar

13 OID como chave primária (cont.) n quando usar? –use quando o acesso ao banco de dados é restrito a programas contornar deficiências do RDBMS garantir integridade prover interface de usuário –não use quando o acesso ao banco de dados é feito diretamente por usuários interpretador SQL

14 Mapeamento classe-tabela nome: Nome endereço: Endereço Pessoa

15 Mapeamento classe-tabela (cont.)

16 CREATE TABLE Pessoa (oidchar(40)not null, nomechar(30)not null, endereçochar(50) PRIMARY KEY (oid) );

17 Mapeamento associação-tabela n Tipos de associação: –binária: muitos para muitos um para muitos um para um –ternária –...

18 Associação binária muitos-para-muitos

19 Associação binária muitos-para-muitos (cont.)

20 CREATE TABLE Trabalha-para (empresa-oidchar(40)not null, pessoa-oidchar(40)not null, salariodouble, PRIMARY KEY (empresa-oid, pessoa-oid), FOREIGN KEY (empresa-oid) REFERENCES Empresa, FOREIGN KEY (pessoa-oid) REFERENCES Pessoa );

21 Associação binária um-para-muitos

22 Associação binária um-para-muitos (cont.)

23 n vantagens da junção de tabelas: –menos tabelas –melhor desempenho devido ao menor número de tabelas para navegar

24 Associação binária um-para-muitos (cont.) n desvantagens da junção de tabelas: –menos rigor de design: um objeto contém informação sobre outro objeto (contra a idéia de encapsulamento) –extensibilidade reduzida: se a multiplicade mudar para muitos-para- muitos então as tabelas devem mudar –mais complexidade: a representação assimétrica complica operações de busca e atualização

25 Mapeamento de generalização n ABORDAGENS: –(T) cada classe (superclasse e subclasse) é mapeada para uma tabela –(C) somente cada classe concreta é mapeada para uma tabela –(R) somente a classe raiz da hierarquia é mapeada para uma tabela

26 Mapeamento de generalização (cont.)

27 Mapeamento de generalização - abordagem T -

28 Mapeamento de generalização - abordagem T - (cont.)

29

30 Mapeamento de generalização - abordagem C -

31 Mapeamento de generalização - abordagem C - (cont.)

32 Mapeamento de generalização - abordagem R -

33 Mapeamento de generalização - comparação de abordagens - n abordagem T: –mais genérica –mais extensibilidade –maior número de tabelas para gerenciar –maior número de tabelas para navegar –risco de inconsistência: um mesmo objeto pode aparecer em mais de uma tabela correspondente a subclasse

34 Mapeamento de generalização - comparação de abordagens - n abordagem C: –obedece a terceira forma normal –replica atributos de superclasses –não há como garantir que um atributo que é "chave primária" em uma superclasse não será duplicado nas diversas tabelas das subclasses

35 Mapeamento de generalização - comparação de abordagens - n abordagem R: –tabela não está na terceira forma normal –desperdício de espaço –pode ter bom desempenho


Carregar ppt "Objetos em Bancos de Dados Relacionais Alcides Calsavara."

Apresentações semelhantes


Anúncios Google