Buscar

EP - modelo relacional

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 12 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Prévia do material em texto

1
1- Banco de dados 
É um conjunto de registros dispostos em estrutura regular que possibilita a 
reorganização dos mesmos e produção de informação. 
Um banco de dados é usualmente mantido e acessado por meio de um software 
conhecido como Sistema Gerenciador de Banco de Dados (SGBD). Um SGBD 
corresponde a um conjunto de programas que permitem armazenar, modificar e extrair 
informação de um banco de dados. Ele age como interface entre os programas de 
aplicação e os dados físicos. 
Normalmente um SGBD adota um modelo de dados. O mais adotado hoje em dia é o 
modelo relacional, onde as estruturas têm a forma de tabelas, compostas por tuplas 
(linhas) e colunas. Já a linguagem padrão para os bancos de dados relacionais é a 
Linguagem de Consulta Estruturada (SQL). 
 
1.1 Características da Abordagem Relacional 
• O relacionamento entre conjunto de dados (tabelas) não existe fisicamente (apenas 
lógico); 
 
Definições 
• Relação � tabela bi-dimensional, composta de linhas e colunas de dados. 
• Atributo = Coluna 
• Grau de uma relação: Número de atributos. 
• Tupla (ou n-uplet): Uma linha da relação = um registro 
• Chave Primária um ou mais atributos de uma tabela, cujos valores, nunca se 
repetem na tabela. Em chaves primárias, não pode haver valores nulos. 
• Chave Estrangeira: um atributo em uma tabela que faz referência a chave primária 
de outra tabela. Ou seja, passa a existir uma relação entre essas duas tabelas. A 
finalidade da chave estrangeira é garantir a integridade dos dados referenciais. 
• Integridade referencial: Se uma determinada tabela A possui um atributo que é 
chave estrangeira em uma tabela B, então em cada tupla da tabela A ele deve: 
� Ser igual a uma chave primária existente em B ou ter o valor nulo. 
� Ou seja, não pode existir na chave estrangeira um valor que não exista na 
tabela na qual ela é chave primária. 
 
• Esquema de Banco de Dados Relacional: nomes das relações seguidos pelos nomes 
dos atributos, com os atributos chaves sublinhados e com as chaves estrangeiras 
identificadas. 
 2
Exemplo de esquema: 
Aluno (Aluno_Matricula, Aluno_Nome) 
Curso (Curso_ID, Curso_Nome) 
Matriculado (Curso_ID, Aluno_Matricula, Nota) 
Chave estrangeira: 
Curso_Id referencia Curso_Id em Curso 
Aluno_Matricula referencia Aluno_Matricula em Aluno. 
 
 
1.2 - Derivação do diagrama de classe para o modelo relacional 
Regras básicas: 
1) Toda Classe vira uma Tabela (Relação) no Modelo Relacional 
2) Todo Atributo da Classe vira um Atributo (Coluna) no Modelo Relacional 
3) Na derivação do Diagrama de Classe para o Modelo Relacional só interessa analisar 
o Grau (restrição de mapeamento ou cardinalidade) máximo do relacionamento. 
A seguir analisaremos como transformar os relacionamentos do Diagrama de Classe 
para o Modelo Relacional. 
 
 
1.2.1 – Relacionamentos 1:N (várias classes) 
 
• A Tabela cuja a classe possui multiplicidade máxima N carrega o identificador 
da tabela cuja a classe possui multiplicidade máxima 1. 
 
Esquema Relacional: 
Empregado (matricula,nome) 
 3
Projeto (código,nome,descricao,valor,dtInicio,duração,matricula) 
 Chave Estrangeira: 
matricula referencia matricula em Empregado 
 
 
1.2.2 – Relacionamentos 1:N (mesma classe) 
• Incluir uma nova chave na mesma tabela, passando a ter o papel de chave 
estrangeira. 
 
Esquema Relacional: 
Empregado (matricula, nome, matricula_chefe) 
 Chave Estrangeira: 
matricula_chefe referencia matricula em funcionario 
 
 4
1.2.3 – Relacionamentos 1:1 (várias classes) 
• Incluir a chave primária na tabela cuja multiplicidade mínima da classe é 0. 
 
 
Esquema Relacional 
Aluno (matricula,nome,dtNascimento,numero) 
Chave Estrangeira 
 numero referencia numero em Armario 
 
Armario (numero, localizacao) 
 
 
1.2.4– Relacionamentos 1:1 (mesma classe) 
• Incluir uma nova chave na própria entidade. 
 
Esquema Relacional: 
Pessoa (cpf, nome, cpf_conjuge) 
 Chave Estrangeira 
 cpf_conjuge referencia cpf em Pessoa 
 5
 
 
1.2.5 – Relacionamentos M:N (várias classes) 
• O relacionamento torna-se uma tabela, carregando seus atributos e os 
identificadores das tabelas que ele se relaciona. 
 
 
Esquema Relacional: 
Aluno (matricula,nome,dtNascimento) 
Turma (codigo,anosemestre) 
Cursa (matricula, codigo, G1,G2,G3,faltas) 
 Chaves Estrangeiras 
matricula referencia matricula em Aluno 
codigo referencia codigo em Turma 
 
 6
1.2.6 – Relacionamentos M:N (mesma classe) 
 
• Criar nova tabela, com os identificadores da classe
 
 
 
Esquema Relacional: 
Disciplina (codigo,nome,conteudo) 
Pre-Requisito (codigo_exige, codigo_satisfaz). 
 Chaves Estrangeiras: 
 Codigo_exige referencia codigo em disciplina 
 Codigo_satisfaz referencia codigo em disciplina 
 
 7
1.2.7 – Relacionamentos de generalização 
Todas as classes viram tabelas. As tabelas referentes as subclasses carregam a chave 
primária da super-classe. 
 
 
CargaTransportada (codigo, descrição, peso, volume) 
Frigorificada (codigo, tempMin, tempMax) 
Chave Estrangeira: 
 codigo referencia codigo em CargaTransportada 
Perecivel (codigo, dtVencimento) 
Chave Estrangeira: 
 codigo referencia codigo em CargaTransportada 
 8
1.1. Exemplo 
Transforme o diagrama de classe em um esquema relacional. 
 
 
 9
 
1.3 – Formas Normais 
Formas normais são regras para estruturar relações eliminando anomalias. 
Primeira Forma Normal (1NF): Todos os atributos devem ser atômicos (ou seja, 
contêm um só valor). 
Dependência Funcional (DF): Um valor de um (ou mais) atributo(s) em uma tupla 
(linha, registro) determina o valor de outro(s) atributo(s) na tupla. 
Representação DF: A � B 
Significado: se qualquer par de tuplas (linhas, registros) possuem o mesmo valor para o 
atributo A, então elas têm que ter o mesmo valor do atributo B. Esta definição também 
vale se A e B forem conjuntos de atributos ao invés de um só atributo. 
O(s) atributo(s) do lado esquerdo de uma DF é(são) chamados de determinante(s), 
porque ele(s) determina(m) o valor do(s) atributo(s) do lado direito. Uma chave 
primária de uma relação é um determinante, pois seu valor determina unicamente o 
valor de todos os outros atributos de uma tupla. 
Exemplo de uma relação que não é 1NF (valores múltiplos em Prédio_ID). 
Func_Matricula Func_Função Predio_ID 
10 Eletricista 120, 135 
11 Eletricista 120 
12 Eletricista 120, 135, 140 
14 Mecânico 120 
 
 10
Segunda Forma Normal (2NF): Nenhum atributo não-chave depende funcionalmente 
de somente uma parte de chave. Ela somente pode ser violada no caso de chaves 
compostas. 
A 2NF também pode ser expressa por: Todo atributo não-chave depende 
funcionalmente de TODA a chave. 
Exemplo de uma relação que não é 2NF: 
Chave primária: Func_Matrícula e Prédio ID; 
Func_Nome depende somente de Func_Matricula 
Func_Matricula Predio_ID 
Data 
Alocação à 
Obra 
Func_Nome 
10 312 1/1/2001 José 
20 312 5/2/2002 João 
20 522 3/3/2002 João 
22 433 18/8/2001 Marcos 
 
Como passar da 2a. para a 3a. forma normal: Decomposição da relação, ou seja, criar 
nova relação, com os atributos que transgridem a DF. 
Resultado: (3FN) 
Alocado (Func-MAt, Predio_ID, Data) 
Funcionário (Func_Mat, Nome) 
 
Terceira Forma Normal (3NF): Todo determinante é uma chave. 
 
 11
1.1.1. Exemplo 
Seja a seguinte tabela de Faturas de produtos da queijaria Nova Estrela: 
CódigoDoCliente CódigoDoProduto Quantidade NºDoTelefone PreçoUnitário 
ALFKI 1 100,00 030-0074321 R$18,00 
ALFKI 2 110,00 030-0074321 R$19,00 
ALFKI 3 120,00 030-0074321 R$10,00 
ANATR 1 130,00 (5) 555-4729 R$18,00 
ANATR 2 140,00 (5) 555-4729 R$19,00 
ANATR 3 150,00 (5) 555-4729 R$10,00 
ANTON 1 160,00 (5) 555-3932 R$18,00 
ANTON 2 170,00 (5) 555-3932 R$19,00 
ANTON 3 170,00 (5) 555-3932 R$10,00 
 
Dica: Pense na seqüência das questões! 
A) Quais são as dependências funcionais desta tabela? 
B) Qual a melhor chave primária para esta tabela? (a chave primáriapode ser 
eventualmente uma chave composta) 
C) Identifique a Forma Normal mais elevada desta tabela. 
D) Se for o caso, transforme a tabela para a Terceira Forma Normal. 
Resposta: 
A) Quais são as dependências funcionais desta tabela? 
CódigoDoCliente ���� NºDoTelefone 
CódigoDoProduto ���� PreçoUnitário 
CódigoDoCliente, CódigoDoProduto ���� Quantidade 
 
B) Qual a melhor chave primária para esta tabela? (a chave primária pode ser 
eventualmente uma chave composta) 
CódigoDoCliente, CódigoDoProduto 
 
C) Identifique a Forma Normal mais elevada desta tabela. 
1a. Forma Normal (todos os atributos possuem um único valor). Não é segunda forma 
normal pois os atributos não-chave NºDoTelefone e PreçoUnitário dependem 
funcionalmente de somente uma parte de chave. 
 
D) Se for o caso, transforme a tabela para a Terceira Forma Normal. 
Cliente (CódigoDoCliente, NºDoTelefone) 
Produto (CódigoDoProduto, PreçoUnitário) 
 12
Venda (CódigoDoCliente, CódigoDoProduto, Quantidade) 
Chaves Estrangeiras: 
 CódigoDoCliente referencia CódigoDoCliente em Cliente 
 CódigoDoProduto referencia CódigoDoProduto em Produto

Outros materiais