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

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

Objeto-Relacional Prof. Edson E. Scalabrin Telefone: 0xx-41-3271-1360.

Apresentações semelhantes


Apresentação em tema: "Objeto-Relacional Prof. Edson E. Scalabrin Telefone: 0xx-41-3271-1360."— Transcrição da apresentação:

1

2 Objeto-Relacional Prof. Edson E. Scalabrin edson.scalabrin@pucpr.br Telefone: 0xx-41-3271-1360

3 Introdução l Mapear classes de objetos em tabelas l Implementar em um banco de dados relacional

4 Mapeamento de classes em tabelas Pessoa nome da pessoa endereço Nome do atributo ID-da-pessoa nome-da-pessoa endereço Nulos? N S Domínio ID nome endereço Chave candidata: (ID-da-pessoa) Chave primária: (ID-da-pessoa) Acessado freqüentemente (ID-da-pessoa)(nome-da-pessoa) CREATE TABLE Pessoa (ID-de-pessoaIDnot null, nome-da-pessoachar ( 30 )not null, endereçochar ( 30 ), PRIMARY KEY (ID-de-pessoa)); CREATE SECONDARY INDEX Indice-nome da pessoa ON Pessoa (nome-da-pessoa) Modelo de Objetos Modelo de Tabelas Tabelas de Pessoas Código SQL

5 Mapeamento de classes em tabelas Empresa nome da empresa endereço Nome do atributo ID-da-empresa nome-da-empresa endereço Nulos? N S Domínio ID nome endereço Chave candidata: (ID-da-empresa) Chave primária: (ID-da-empresa) Acessado freqüentemente (ID-da-empresa)(nome-da-empresa) CREATE TABLE Empresa (ID-de-empresaIDnot null, nome-da-empresa char ( 30 )not null, endereçochar ( 30 ), PRIMARY KEY (ID-de-empresa)); CREATE SECONDARY INDEX Indice-nome da empresa ON Empresa (nome-da-empresa) Modelo de Objetos Modelo de Tabelas Tabelas de Empresas Código SQL

6 Mapeamento de classes em tabelas Nome do atributo ID-da-empresa ID-da-pessoa número-de-ações Nulos? N S DomínioID INTEIRO CREATE TABLE Possui-ações (ID-de-empresaIDnot null, ID-de-pessoaIDnot null, número-de-açõesInteger, PRIMARY KEY (ID-de-empresa, ID-da-pessoa), FOREIGN KEY (ID-da-empresa) REFERENCES Empresa, FOREIGN KEY (ID-da-pessoa) REFERENCES Pessoa; CREATE SECONDARY INDEX Indice-empresa-possui-ações ON Possui-ações (ID-da-empresa) CREATE SECONDARY INDEX Indice-pessoa-possui-ações ON Possui-ações (ID-da-pessoa) Modelo de Tabelas Tabelas de possui ações Código SQL Empresa nome da empresa endereço Pessoa nome da pessoa endereço Possui-estoque número de ações Modelo de Objetos

7 Mapeamento de classes em tabelas Nome do atributo ID-da-empresa ID-da-pessoa ID-do-produto quantidade Nulos? N Y DomínioID ID INTEIRO Tabelas ternária Produto nome do produto valor Pessoa nome da pessoa endereço quantidade Modelo de Objetos Empresa nome da empresa endereço

8 Mapeamento de classes em tabelas CREATE TABLE Empresa-Pessoa-Produto-Ternária (ID-de-empresaIDnot null, ID-de-pessoaIDnot null, ID-de-produtoIDnot null, quantidadeInteger, PRIMARY KEY (ID-de-empresa, ID-da-pessoa, ID-do-produto), FOREIGN KEY (ID-da-empresa) REFERENCES Empresa, FOREIGN KEY (ID-da-pessoa) REFERENCES Pessoa, FOREIGN KEY (ID-da-produto) REFERENCES Produto; CREATE SECONDARY INDEX Indice-empresa-venda ON Venda (ID-da-empresa) CREATE SECONDARY INDEX Indice-pessoa-venda ON Venda (ID-da-pessoa) CREATE SECONDARY INDEX Indice-produto-venda ON Venda (ID-da-produto) Código SQL OBS: Papéis ?

9 Mapeamento de classes em tabelas Nome do atributo ID-da-empresa ID-da-pessoa função Nulos? N S DomínioID nome-da-função Modelo de Tabelas Tabelas de associação qualificada Empresa nome da empresa endereço Pessoa nome da pessoa endereço Modelo de Objetos função Chave candidata: (ID-da-empresa, ID-da-pessoa, função) Chave primária: (ID-da-empresa, ID-da-pessoa, função) Acessado freqüentemente (ID-da-pessoa)(ID-da-empresa, função) CREATE TABLE Empresa-Função-Pessoa (ID-de-empresaIDnot null, ID-de-pessoaIDnot null, funçãochar ( 30 )not null, PRIMARY KEY (ID-de-empresa, ID-de-pessoa, função)); Código SQL 0..*

10 Mapeamento de generalizações em tabelas Equipamento nome do equipamento preço Bomba pressão de sucção pressão de descarga Dissipador de calor área da superfície

11 Mapeamento de generalizações em tabelas Nome do atributo ID-do-equipamento área-da-superfície Nulos? N Y Domínio ID área Tabela de Dissipador de Calor Nome do atributo ID-do-equipamento nome-do-equipamento preço tipo-do-equipamento Nulos? N Y N Domínio ID nome dinheiro tipo-de-equipe Tabela de Equipamentos Nome do atributo ID-do-equipamento pressão-de-sucção pressão-de-descarga Nulos? N Y Domínio ID pressão pressão Tabela de Bombas

12 Mapeamento de generalizações em tabelas Nome do atributo ID-do-equipamento nome-do-equipamento preço área-da-superfície Nulos? N Y Domínio ID nome dinheiro área Tabela de Dissipador de Calor Nome do atributo ID-do-equipamento nome-do-equipamento preço pressão-de-sucção pressão-de-descarga Nulos? N Y Domínio ID nome dinheiro pressão Tabela de Bombas Generalização usando apenas 2 tabelas

13 Mapeamento de generalizações em tabelas Nome do atributo ID-do-equipamento nome-do-equipamento preço tipo-do-equipamento pressão-de-sucção pressão-de-descarga área-da-superfície Nulos? N Y N Y Domínio ID nome dinheiro tipo-de-equipe pressão área Tabela de Equipamento Generalização usando apenas 1 tabela

14 Exercício Equipamento nome : String fabricante : String peso : Real preço : Real Troca de Calor diametroSuper : Real comprimento : Real Teto Flutuante volume : Real diamentro : Real altura : Real Bomba Diafragma taxaFluxo : Real meterial : String Pressão valor : Real deSucção deDescarga tem doTubo daConcha tem 0..1


Carregar ppt "Objeto-Relacional Prof. Edson E. Scalabrin Telefone: 0xx-41-3271-1360."

Apresentações semelhantes


Anúncios Google