Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 MODELO RELACIONAL 2 Modelo Relacional Banco de Dados Relacional = consiste em uma coleção de tabelas ou relações, cada uma das quais com um nome único. Banco de Dados Relacional = consiste em uma coleção de tabelas ou relações, cada uma das quais com um nome único. 2 3 � Tabelas �Conjunto não ordenado de linhas (tuplas); �Cada linha é composta por uma série de campos (valor de atributo); �Cada campo é identificado por um nome de campo (nome de atributo); �O conjunto de campos iguais da tabela formam uma coluna Modelo Relacional 4 Modelo Relacional Coluna (atributo) nome do campo (nome do atributo) linha (tupla) valor do campo (valor do atributo) ... ... ...... No Matrícula Nome End. Residencial Cargo 01 João Av. 9 de julho,140 Diretor 02 José Rua das Flores, 35 Gerente 03 Maria Al. Casa Branca, 110 Escriturário 05 3 5 Modelo Relacional � Chaves �Identificam as linhas de uma tabela e permitem o relacionamento entre linhas de várias tabelas. �Podem ser: ⌧Chaves primárias; ⌧Chaves estrangeiras; e ⌧Chaves alternativas. 6 � Chaves - Chave Primária �É uma coluna ou uma combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. �Podem ser: ⌧Chaves únicas; ou ⌧Chaves compostas. Modelo Relacional 4 7 Modelo Relacional CódigoEmp Nome CódigoDepto E3 Paulo D1 E1 Luciana D2 E2 Antonio D1 E4 Lucia D3 Chave Única CódigoEmp NumDepend Nome Tipo E1 01 Luis Filho E1 02 Marta Esposa E2 01 Ana Esposa E2 02 Carlos Filho Chave Composta 8 � Chaves - Chave Estrangeira �É uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela. �Permite a implementação do relacionamento em um banco de dados relacional Modelo Relacional 5 9 CódigoEmp Nome CódigoDepto E3 Paulo D1 E1 Luciana D2 E2 Antonio D1 E4 Lucia D3 CodigoDepto Nome D1 Compras D2 Vendas D3 Engenharia Chave Estrangeira Modelo Relacional 10 � Chaves - Chave Estrangeira �Restrições: ⌧Quando for incluída uma nova linha na tabela que contém a chave estrangeira; ⌧Quando for alterado o valor da chave primária referenciada pela chave estrangeira; ⌧Quando for alterado o valor de uma chave estrangeira; ⌧Quando for excluída uma linha da tabela que contém a chave primária referenciada pela chave estrangeira; Modelo Relacional 6 11 Modelo Relacional � Chaves - Chave Estrangeira dentro da própria tabela CodigoEmp Nome CodigoDepto CodEmpGerente E3 Pedro D1 __ E2 Lucas D1 E3 E1 Marisa D3 E3 Chave estrangeira referencia chave primária na própria tabela 12 Modelo Relacional � Chaves - Chave Alternativa �Quando mais de uma coluna podem servir para distinguir uma linha das demais, uma é escolhida chave primária e as demais são denominadas chaves alternativas. CodigoEmp Nome CodigoDepto CPF E3 Pedro D1 132.121.331-20 E2 Lucas D1 876.346.235-90 E1 Marisa D3 312.692.451-78 Chave alternativa 7 13 Modelo Relacional � Domínios �Conjunto de valores ( alfanuméricos, numéricos...) que os campos de uma determinada coluna podem assumir. Ex: ⌧números de salas de aula [o conj.de números de 1 a 150, inteiros do formato 999] ⌧nomes de alunos [o conj.de nomes possíveis de pessoas, formato A(50)] ⌧códigos de disciplinas [o conj.de 3 letras seguidos de um traço e de 3 dígitos; formato AAA-999] 14 Modelo Relacional � Domínios �Podem ser: ⌧obrigatórios : não são admitidos valores vazios para as colunas. ⌧Opcionais : podem aparecer valores vazios para as colunas. �Normalmente, chaves primárias são obrigatórias. 8 15 Modelo Relacional � Restrições de Integridade Integridade dos dados de um Banco de Dados = os dados refletem corretamente a realidade representada pelo banco de dados e são consistentes entre si Integridade dos dados de um Banco de Dados = os dados refletem corretamente a realidade representada pelo banco de dados e são consistentes entre si 16 Modelo Relacional � Restrições de Integridade �Regras de consistência de dados que é garantida pelo próprio SGBD: ⌧Integridade de Domínio; ⌧Integridade de Vazio; ⌧Integridade de Chave; e ⌧Integridade Referencial. 9 17 Modelo Relacional � Restrições de Integridade �Integridade de Domínio: especificam que o valor de um campo deve obedecer a definição dos valores admitidos para a coluna. �Integridade de Vazio: através deste tipo de restrição é especificado se os campos de uma coluna podem ou não ser vazios ( se a coluna é obrigatória ou opcional). 18 Modelo Relacional � Restrições de Integridade �Integridade de Chave: trata-se da restrição que define que os valores da chave primária e alternativa devem ser únicos. �Integridade Referencial: define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada. 10 19 Modelo Relacional � Restrições de Integridade �Restrições Semânticas: não são automaticamente controladas pelo SGBD; o programador deve escrever procedimentos que garantam tais integridades. Ex: ⌧Um empregado não pode ter um salário maior que seu superior imediato; 20 Modelo Relacional � Especificação de Banco de Dados Relacional �Chamada de Esquema do Banco de Dados, deve conter no mínimo: ⌧Tabelas que formam o banco de dados; ⌧Colunas que as tabelas possuem; e ⌧Restrições de integridade. 11 21 Modelo Relacional � Esquema do Banco de Dados NOMETABELA (nomes das colunas) <nome da coluna ch. estrangeira> referencia <nome da tabela> Ex: DEPARTAMENTO (CodigoDepto, Nome) EMPREGADO (CodigoEmp, Nome, CodigoDepto) CodigoDepto referencia DEPARTAMENTO 22 Mapeamento entre Modelos Engenharia Reversa de BD Relacional Projeto Lógico de BD Relacional Modelo ER ( nível conceitual) Modelo Relacional ( nível lógico) 12 23 Mapeamento ER - Relacional � Regras: � obter um banco de dados que permita a eficiência das instruções de consulta e alteração do banco; e � obter um banco de dados simplificado, no que diz respeito ao desenvolvimento e manutenção das aplicações. 24 � Para isso: � Evitar junções: ter os dados necessários a uma consulta em uma única linha; � Diminuir o número de chaves: Cliente (CodCliente, Nome, Endereço, CEP,Telefone) Ou Cliente (CodCliente, Nome) ClienteEnder (CodCliente, Endereco, CEP, Telefone) CodCliente referencia Cliente � Evitar campos opcionais : CGC – Nome Fantasia CPF - RG Mapeamento ER - Relacional 13 25 � Passos para a transformação de um modelo ER para o modelo Relacional: � tradução inicial de entidades e respectivos atributos; � tradução de relacionamentos e respectivos atributos. Mapeamento ER - Relacional 26 � Mapeamento das Entidades � Cada entidade é traduzida para uma tabela. � Cada atributo da entidade define uma coluna da tabela. � Os atributos identificadores da entidade correspondem às colunas que compõem a chave primária da tabela. Mapeamento ER - Relacional CLIENTE Código NomeData Nascimento Endereço Esquema Relacional Correspondente: Pessoa ( CodCliente, Nome, Endereço, DataNasc) 14 27 � Mapeamento dos Nomes de atributos � Nomes de Colunas devem ser curtos; � Nomes de colunas não devem conter espaços em branco; � Não é necessário utilizar o nome da tabela para compor o nome de uma coluna, com exceção da chave primária. Exemplo: Nome do Cliente NomeCliente Nome Codigo do Cliente Codigo CodigoCliente CodCliente CodigoCli Mapeamento ER - Relacional 28 � Mapeamento dos Relacionamentos : determinado pelas cardinalidades mínima e máxima das entidades envolvidas nos relacionamentos. � Três possibilidades: ⌧tabela própria : relacionamentos n para n; ⌧coluna (s) adicional (is) dentro de uma das tabelas : relacionamentos n para 1 ou 1 para n; e ⌧fusão das tabelas relacionadas em uma só : relacionamentos 1 para 1. Mapeamento ER - Relacional 15 29 � Mapeamento Relacionamentos – 1:1 � quando as duas entidades tem participação opcional Inserção dos atributos em uma das tabelas Mapeamento ER - RelacionalHOMEM MULHER NomeCódigo (0,1)(0,1) Código Nome Data Regime Casamento 30 � Mapeamento Relacionamentos – 1:1 Dentro da Entidade Mulher Mulher ( CodigoMul, Nome CodigoHom, Data, Regime) CodigoHom referencia Homem Homem (CodigoHom, Nome) Criar uma tabela para Casamento Mulher ( CodigoMul, Nome Homem (CodigoHom, Nome) Casamento (CodigoMul, CodigoHom, Data, Regime) CodigoMul referencia Mulher CodigoHom referencia Homem Mapeamento ER - Relacional 16 31 � Mapeamento Relacionamentos – 1:1 � quando uma entidade tem participação opcional e a outra obrigatória Fusão das tabelas correspondentes as duas entidades Mapeamento ER - Relacional CORRENTISTA CARTÃO MAGNÉTICO NomeCódigo (0,1)(1,1) Código Data Expedição possui 32 � Mapeamento Relacionamentos – 1:1 Todos os atributos em uma só tabela (Correntista) Correntista (CodCorrent, Nome, CodCartao, DataExp) Manter as duas tabelas Correntista (CodCorrent, Nome) Cartao (CodCartao, DataExp, CodCorrent) CodCorrent referencia Correntista Mapeamento ER - Relacional 17 33 � Mapeamento Relacionamentos – 1:1 � quando ambas entidades tem participação obrigatória Fusão das tabelas correspondentes às duas entidades Mapeamento ER - Relacional CONFERENCIA COMISSÃO NomeCódigo (1,1)(1,1) Endereco Organizada por Data 34 � Mapeamento Relacionamentos – 1:1 Todos os atributos em uma só tabela (Conferência) Conferência (CodConf, Nome, Data, EnderComisOrg) Mapeamento ER - Relacional DIRETOR DEPARTAMENTO NomeCódigo (1,1)(1,1) Codigo Nome Dirige ? 18 35 � Mapeamento Relacionamentos – 1:n Adição de colunas à uma das tabelas Edifício (CodigoEdif, Endereço) Apartamento (CodigoEdif, NumeroAp, AreaAp) CodigoEdif referencia Edificio Mapeamento ER - Relacional EDIFÍCIO APARTAMENTOS EndereçoCódigo (1,n)(1,1) Número Área contém 36 � Mapeamento Relacionamentos – 1:n Adição de colunas à uma das tabelas Cliente (CodigoCli, Nome) Venda (NumNotaF, Data, CodigoCli) CodigoCli referencia Cliente Mapeamento ER - Relacional CLIENTE VENDA NomeCódigo (0,n)(1,1) Número da Nota Fiscal Data contém 19 37 � Mapeamento Relacionamentos – n:n Criação de um tabela própria para o relacionamento Medico (CRM, Nome) Paciente (CodPaciente, Nome) Consulta (CRM, CodPaciente, Data, Hora, Diagnostico) CRM referencia Medico CodPaciente referencia Paciente Mapeamento ER - Relacional MEDICO PACIENTE NomeCRM (1,n)(1,n) Código Nome atende Data Hora Diagnóstico 38 Exemplo 1 TIME TÉCNICOCIDADE localiza-se possui PATROCINADOR patrocina JOGO Time 1 Time 2 realizado (0,n) (1,n) (0,n) (1,1) (1,1)(1,1) (1,n) (1,n) (0,n) (1,1) (1,1) (0,n) TIME Código (identificador) nome ano de fundação nome do presidente endereço PATROCINADOR Código (identificador) razão social nome fantasia CIDADE Código (identificador) nome unidade federativa TÉCNICO Código (identificador) nome data de nascimento telefone residencial telefone celular JOGO número (identificador) data do jogo gols time 1 gols time 2 20 39 Exercício RECEITA MEDICA VENDA MEDICAMENTO PERFUMARIA FABRICANTE (1,1) (0,n) (0,n) (0,n) (0,n) (0,1) (0,n) (0,n) Fabricante (CGC, Nome, Endereco) Medicamento (Numero, NomeComercial,TipoEmbalagem, Quantidade,PreçoUnitario, Tarja, Formula) Perfumaria (Numero, Tipo, Quantidade, PreçoUnitario) Venda (NumeroNota, Data, NomeCliente) ReceitaMedica (CRM, Numero, Data) (1,1) (0,n)
Compartilhar