Buscar

Aula_3- Modelo de Dados 2

Prévia do material em texto

Modelo de Dados 2
Database
OUTUBRO 2023 
Bases de Dados
I Objetivos da aula
Composição de uma base de dados
Etapas para definir uma base de dados
Regras para transformar um DER (modelo lógico) numa Base
de Dados (modelo físico).
Constituição de uma base de dados: Tabelas (estrutura
bidimensional) relacionadas.
-> Cada tabela tem uma chave primária. 
Modelo de dados 2
Modelo de dados 2
Identificar as tabelas (Tables) necessárias.
Identificar os campos de cada tabela (fields).
Determinar a Chave Primária (primary keys) de cada tabela.
Identificação das Chaves estrangeiras (foreign keys). As
Etapas para definir uma Base de dados: depois de
identificar o objetivo da base de dados (ajuda a identificar o
contexto, dimensão, volume da dados, etc..), é necessário:
1.
2.
3.
4.
chaves estrangeiras representam os relacionamentos entre as
tabelas.
Modelo de dados 2
Identificação da Tabelas a partir do DER: 
• Um DER serve para representar esquematicamente as
entidades e a forma como elas se relacionam. 
• Assim, uma entidade existente no modelo dá origem a uma
tabela na base de dados. 
• Os atributos que fazem parte da entidade são correspondem
aos campos da tabela que representa a entidade. 
Os atributos são representados com uma lista sequencial.
 nomeEntidade(atributo_1,atributo_2, … ,atributo_n);
Modelo de dados 2
Modelo de dados 2
Exercício: 
Departamento(nome, nContato, responsavel); 
Empregado(num, nome, morada, NIF); 
Carro (matricula, marca, modelo, ano, dt_insp);
Modelo de dados 2
Chave Primária (PK - Primary Key) – campo, ou conjunto de campos, que não se
pode repetir na tabela. 
• Serve para identificar univocamente um registo. 
• Não são permitidos valores NULL nos campos que constituem a chave primária.
 A chave primária diz-se composta se for constituída por mais que um campo
(atributo). 
O (ou os) atributos que constituem a chave primária representam-se a sublinhados. 
nomeTabela(chave, atributo_1,atributo_2, … ,atributo_n); 
Quando não existe um campo (ou um conjunto de campos) que é único para cada
registo é necessário criar um. Nesses casos é usual a chave chamar-se de por ex.
cod_... ou id. 
Modelo de dados 2
Exemplo:
Departamento(Cod_dep, nContato, nome, responsavel);
Empregado(num, nome, morada, NIF); 
carro (matricula, marca, modelo, ano, dt_insp);
Modelo de dados 2
Chave Estrangeiras (FK - Foreign Key) 
• Define um relacionamento entre as tabelas.
• Pode ocorrer repetidas vezes.
• Formada através de um relacionamento com a chave primária de outra tabela.
• Caso a chave primária seja composta na origem, a chave estrangeira também o
será. 
-> APONTE UMA POSSÍVEL RAZZO PARA SE CHAMAR “CHAVE
ESTRANGEIRA”. 
Modelo de dados 2
Relacionamentos entre as tabelas 
Uma relação 1:n – A entidade do lado n recebe como atributo a chave primaria do
lado 1. 
Modelo de dados 2
Exemplo: (chave estrangeira representada a bold e vermelho)
Departamento(Cod_dep, nContato, nome, responsavel);
Empregado(num, nome, morada, NIF, matricula, cod_dep); 
carro (matricula, marca, modelo, ano, dt_insp);
Modelo de dados 2
Relacionamentos entre as tabelas 
Uma relação m:n - Neste caso temos que criar uma entidade associativa que permite
relacionar as duas entidades originais através de duas relações do tipo 1:n. Se o
relacionamento tiver atributos os atributos pertencerão à entidade associativa. Desta
forma já sabemos resolver o problema, recorrendo à regra apresentada
anteriormente.
Modelo de dados 2
Exemplo: Um livro tem um titulo, um ano de publicação e é escrito por
um ou vários autores. Um autor, com um nome, morada, data de
nascimento, nacionalidade pode escrever vários livros. 
Modelo de dados 2
Exemplo: Uma fatura tem uma data, um valor total de fatura e um
valor do IVA. Cada fatura tem um numero que não se repete. Uma
fatura pode incluir vários produtos (cada um com uma quantidade) e
um produto pode fazer parte de várias faturas. Cada produto tem um
nome, um preço unitário e um código do IVA a aplicar.
Relacionamentos entre as tabelas: Desdobramento das relações m:n
As tabelas:
factura(num_fact, Data, valor_total, total_iva); 
produto(cod_prod, nome, preço_unitario, cod_iva); 
linhaFactura(num_fact, cod_prod, quantidade);
Modelo de dados 2
DER Exercício:
Modelo de dados 2
Relação 1:1 – Uma relação de 1:1 entre a entidade A e a entidade B significa que
para cada ocorrência na entidade A temos, no máximo, uma ocorrência na entidade
B. 
• Isto é raro … Mas quando ocorre a chave primária das duas tabelas é a mesma.
Por ex. quando temos a mesma informação para todos os funcionários, mas há um
grupo que se destaca e para o qual temos mais informação. 
empregado(num_func, nome, nif, morada, telefone, est_civil, salario, cod_dep);
 chefias(num_func, matricula_carro, num_cartaoCredito, sub_disponbilidade);
Modelo de dados 2
DER - Relação recursiva - Se a relação for de 1:n, acrescentase a chave primaria
como campo da tabela.
Modelo de dados 2
Se a relação for de m:n, cria-se uma entidade associativa e desdobra-se em
duas relações de 1:n. 
Por ex. se um funcionário tem vários chefes
DER - Relação recursiva 
Exercício:
Exercício:
Obrigada!
Bases de Dados
SQL Structured Query Language, 13ª edição, Luís Damas,
 FCA – Editorade Informática, ISBN 978-972-722-443-2
Database System Concepts, 5th Edition
Abraham Silberschatz, Henry F. Korth and S. Sudarshan McGraw Hill, 2005
ISBN 0-07-124476-X
Referências

Continue navegando