Baixe o app para aproveitar ainda mais
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
Compartilhar