MODELO RELACIONAL Banco de Dados Relacional = consiste em uma coleção de tabelas ou relações, cada uma das quais com um nome único. 2 1
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 3 Coluna (atributo) nome do campo (nome do atributo) N o Matrícula Nome End. Residencial Cargo 01 João Av. 9 de julho,140 Diretor 05 02 José Rua das Flores, 35 Gerente............ 03 Maria Al. Casa Branca, 110 Escriturário linha (tupla) valor do campo (valor do atributo) 4 2
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. 5 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. 6 3
Chave Única CódigoEmp Nome CódigoDepto E3 Paulo D1 E1 Luciana D2 E2 Antonio D1 E4 Lucia D3 Chave Composta CódigoEmp NumDepend Nome Tipo E1 01 Luis Filho E1 02 Marta Esposa E2 01 Ana Esposa E2 02 Carlos Filho 7 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 8 4
CodigoDepto D1 D2 D3 Nome Compras Vendas Engenharia Chave Estrangeira CódigoEmp Nome CódigoDepto E3 Paulo D1 E1 Luciana D2 E2 Antonio D1 E4 Lucia D3 9 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; 10 5
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 11 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 12 6
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] 13 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. 14 7
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 15 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. 16 8
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). 17 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. 18 9
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; 19 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. 20 10
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 21 Mapeamento entre Modelos Modelo ER ( nível conceitual) Engenharia Reversa de BD Relacional Projeto Lógico de BD Relacional ( nível lógico) 22 11
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. 23 Mapeamento ER - Relacional 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 24 12
Mapeamento ER - Relacional 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. 25 Mapeamento ER - Relacional 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. Endereço Data Nascimento CLIENTE Código Nome Esquema Relacional Correspondente: Pessoa ( CodCliente, Nome, Endereço, DataNasc) 26 13
Mapeamento ER - Relacional 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 27 Mapeamento ER - Relacional 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. 28 14
Mapeamento ER - Relacional Mapeamento Relacionamentos 1:1 quando as duas entidades tem participação opcional Código Nome (0,1) HOMEM Casamento (0,1) Código MULHER Nome Regime Data Inserção dos atributos em uma das tabelas 29 Mapeamento ER - Relacional 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 30 15
Mapeamento ER - Relacional Mapeamento Relacionamentos 1:1 quando uma entidade tem participação opcional e a outra obrigatória Código Nome Código Data Expedição CORRENTISTA (1,1) possui (0,1) CARTÃO MAGNÉTICO Fusão das tabelas correspondentes as duas entidades 31 Mapeamento ER - Relacional 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 32 16
Mapeamento ER - Relacional Mapeamento Relacionamentos 1:1 quando ambas entidades tem participação obrigatória Data Código Nome Endereco CONFERENCIA (1,1) Organizada por (1,1) COMISSÃO Fusão das tabelas correspondentes às duas entidades 33 Mapeamento ER - Relacional Mapeamento Relacionamentos 1:1 Todos os atributos em uma só tabela (Conferência) Conferência (CodConf, Nome, Data, EnderComisOrg) Código Nome Codigo Nome DIRETOR (1,1) Dirige (1,1) DEPARTAMENTO? 34 17
Mapeamento ER - Relacional Mapeamento Relacionamentos 1:n Código Endereço Número Área EDIFÍCIO (1,1) contém (1,n) APARTAMENTOS Adição de colunas à uma das tabelas Edifício (CodigoEdif, Endereço) Apartamento (CodigoEdif, NumeroAp, AreaAp) CodigoEdif referencia Edificio 35 Mapeamento ER - Relacional Mapeamento Relacionamentos 1:n Código Nome (1,1) CLIENTE contém Número da Nota Fiscal (0,n) VENDA Data Adição de colunas à uma das tabelas Cliente (CodigoCli, Nome) Venda (NumNotaF, Data, CodigoCli) CodigoCli referencia Cliente 36 18
Mapeamento ER - Relacional Mapeamento Relacionamentos n:n CRM Nome Código Nome (1,n) (1,n) MEDICO atende PACIENTE Data Diagnóstico Hora 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 37 Exemplo 1 CIDADE Código (identificador) nome unidade federativa PATROCINADOR Código (identificador) razão social nome fantasia PATROCINADOR patrocina (1,n) (1,1) (0,n) CIDADE localiza-se TIME possui TÉCNICO (0,n) (1,1) (1,1) (1,1) (1,1) realizado JOGO número (identificador) data do jogo gols time 1 gols time 2 Time 1 (1,n) (1,n) (0,n) (0,n) JOGO Time 2 TIME Código (identificador) nome ano de fundação nome do presidente endereço TÉCNICO Código (identificador) nome data de nascimento telefone residencial telefone celular 38 19
Exercício FABRICANTE 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) (0,n) MEDICAMENTO (0,n) (0,n) (1,1) (1,1) (0,n) PERFUMARIA (0,n) (0,n) (0,n) RECEITA MEDICA (0,1) VENDA 39 20