Banco de Dados - Senado Modelo Relacional Ilka Kawashita Material preparado :Prof. Marcio Vitorino
Abordagem Relacional n Abordagem de modelagem de dados utilizada nos sistemas de gerenciamento de bancos de dados do tipo relacional. n Modelagem a nível lógico.
Banco de Dados Relacional n Tabelas: q Compostas de: n n n Linhas; Colunas; e Chaves Primárias. q Relacionadas através de: n Chaves estrangeiras.
Terminologias
Tabelas
Características das Tabelas n Linhas de uma tabela não estão ordenadas. n Valor do campo: q Atômico; q Monovalorado.
Implementação de Relacionamento 1:1 Conceitual CPF Nome CPF Nome Homem (0,1) (0,1) Casa Mulher Lógico Homem CPF Nome 111 Caio 222 Beto Homem CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 333 Abel 333 Abel CPF Nome CPF_Homem CPF Nome Mulher 777 Ana 888 Lia 111 222 Mulher 777 Ana 888 Lia 999 Bia 999 Bia
Implementação de Relacionamento 1:1 Conceitual CPF Nome CPF Nome Homem (0,1) (1,1) Casa Mulher Lógico Homem CPF Nome 111 Caio 222 Beto Homem CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 333 Abel Mulher CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 Mulher CPF Nome 777 Ana 888 Lia 999 Bia
Implementação de Relacionamento 1:1 Conceitual CPF Nome CPF Nome Homem (0,1) (1,1) Casa Mulher Lógico Homem CPF Nome 111 Caio 222 Beto Homem CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 333 Abel Mulher CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 Mulher CPF Nome 777 Ana 888 Lia 999 Bia
Implementação de Relacionamento 1:1 Conceitual CPF Nome CPF Nome Homem (0,1) (1,1) Casa Mulher Lógico Casal CPF_M Nome_M 777 Ana 888 Lia 999 Bia CPF_H Nome_H 111 Caio 222 Beto
Implementação de Relacionamento 1:1 Conceitual CPF Nome CPF Nome Homem (1,1) (1,1) Casa Mulher Lógico Homem CPF Nome 111 Caio 222 Beto Homem CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 333 Abel 333 Abel 999 Mulher CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 333 Mulher CPF Nome 777 Ana 888 Lia 999 Bia
Implementação de Relacionamento 1:1 Conceitual CPF Nome CPF Nome Homem (1,1) (1,1) Casa Mulher Lógico Casal CPF_M Nome_M 777 Ana 888 Lia 999 Bia CPF_H Nome_H 111 Caio 222 Beto 333 Abel
Implementação de Relacionamento 1:1
Implementação de Relacionamento 1:N Conceitual CPF Nome CNPJ Nome Pessoa N 1 Trabalha Empresa Lógico Empresa CNPJ 1A 2B 3C Nome IBM CA Sun Pessoa CPF Nome 777 Ana 888 Lia 999 Bia CNPJ_Empresa 1A 3C
Implementação de Relacionamento 1:N Conceitual CPF Nome CNPJ Nome Pessoa (0,N) (1,1) Trabalha Empresa Lógico Empresa CNPJ 1A 2B 3C Nome IBM CA Sun Pessoa CPF Nome 777 Ana 888 Lia 999 Bia CNPJ_Empresa 1A X 3C
Implementação de Relacionamento 1:N Conceitual CPF Nome Funcao CNPJ Nome Pessoa (0,N) (1,1) Trabalha Empresa Lógico Empresa CNPJ 1A 2B 3C Nome IBM CA Sun CPF Nome CNPJ_Empresa Funcao Pessoa 777 Ana 888 Lia 1A 2B GP Desenvolvedor 999 Bia 3C Testador
Implementação de Relacionamento 1:N
Implementação de Relacionamento N:M Conceitual CPF Nome Cod Nome Pessoa N Alocação N Departamento Lógico Departamento Pessoa Cod Nome D01 RH D02 TI D03 Adm CPF Nome 111 Caio 222 Beto 333 Abel Alocação Cod CPF D01 111 D01 222 D03 222
Implementação de Relacionamento N:M Conceitual CPF Nome Data Cod Nome Pessoa N Alocação N Departamento Lógico Departamento Cod D01 D02 D03 Nome RH TI Adm Alocação Cod CPF Data D01 111 10/10/1999 Pessoa CPF Nome 111 Caio 222 Beto 333 Abel D01 222 D03 222 D03 333 D01 111 10/11/2000 10/12/2001 10/10/2002 10/10/2003
Implementação de Relacionamento N:M Conceitual CPF Nome Data Cod Nome Pessoa N Alocação N Departamento Salario Departamento Cod D01 D02 D03 Nome RH TI Adm Lógico Alocação Cod CPF Data D01 111 10/10/1999 Salario 100,00 Pessoa CPF Nome 111 Caio 222 Beto 333 Abel D01 222 D03 222 D03 333 D01 111 10/11/2000 10/12/2001 10/10/2002 10/10/2003 200,00 300,00 400,00 500,00
Implementação de Relacionamento N:M
Chaves n Conceito básico para estabelecer relações entre as linhas da tabela; n No modelo relacional são consideradas as chaves: q primárias; q alternativas; e q estrangeiras.
Chave Primária n Coluna ou combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. n A coluna CódigoEmp é a chave primária desta tabela, pois os valores contidos em seus campos permitem distinguir uma linha das demais linhas desta tabela.
Chave Estrangeira n n Coluna ou combinação de colunas, cujos valores aparecem na chave primária (candidata) de uma tabela do banco. Mecanismo que permite a implementação de relacionamentos em um banco de dados relacional.
Chave Estrangeira n CódigoEmp na tabela Dependente é uma chave estrangeira em relação à tabela Empregado.
Relacionamento Identificador Conceitual CPF Nome NSeq Nome Pessoa 1 N Possui Dependente Lógico Pessoa CPF Nome 777 Ana 888 Lia 999 Bia Dependente NSeq Nome 1 Luiz 2 Joao 1 Jose CPF 777 777 999
Relacionamento Identificador Conceitual CPF Nome NSeq Nome Pessoa 1 N Possui Dependente Lógico Pessoa CPF Nome 777 Ana 888 Lia 999 Bia Dependente NSeq Nome 1 Luiz 2 Joao 1 Jose CPF 777 777 999
Validação Chave Estrangeira n n n Quando da inclusão de uma linha na tabela que a contém: q deve ser garantida a existência do valor da chave estrangeira na tabela referenciada que contém a chave primária respectiva. Quando da alteração do valor da chave estrangeira: q deve ser garantida a existência do valor da chave estrangeira na tabela referenciada que contém a chave primária respectiva. Quando da exclusão de uma linha da tabela que contém a chave primária referenciada pela chave estrangeira: q deve ser garantida que na coluna chave estrangeira não apareça o valor da chave primária excluída.
Validação Chave Estrangeira Conceitual CPF Nome CNPJ Nome Pessoa (0,N) (1,1) Trabalha Empresa Lógico Empresa CNPJ 1A 2B 3C Nome IBM CA Sun CPF Nome CNPJ_Empresa Pessoa 777 Ana 888 Lia 999 Bia 1A 4D 3C
n Chave Estrangeira (Observação) O termo chave estrangeira pode levar a crer que está sempre referenciada a uma chave primária de outra tabela, mas em certos casos ela pode estar referenciada a uma chave primária da mesma tabela.
Chave Alternativa n n Em certas situações mais de uma coluna ou combinação de colunas servem para distinguir uma linha das demais dentro de uma tabela.se uma destas for escolhida como chave primária, as demais serão chamadas de chaves alternativas. Não há qualquer diferença entre usar as CódigoEmp ou CIC como chave primária.
Domínios e Valores Vazios n n n n n n n Quando uma tabela é criada pode ser definido, para cada coluna, um conjunto de valores que os campos da respectiva coluna podem assumir. Este conjunto de valores é conhecido como domínio da coluna ou domínio do campo. Deve ainda, ser especificado se os campos da coluna podem assumir vazios (NULL. Vazio significa que o campo não assumiu nenhum valor do seu domínio. As colunas para as quais não são admitidos vazios são chamadas de colunas obrigatórias. As colunas para as quais são admitidos vazios são chamadas de colunas opcionais. Os SGBDR exigem que todas as colunas que compõem a chave primária sejam obrigatórias. Chave estrangeira pode conter coluna ou colunas opcionais.
Restrições de Integridade n É uma regra de consistência de dados que é garantida pelo próprio SGBD. n Restrições de Integridade Básicas; q Integridade de Domínio; q Integridade de Vazio; q Integridade de Chave; q Integridade Referencial; q Integridade de Unicidade; n São garantidas automaticamente pelo SGBD Relacional. n O programador não precisa implementá-las.
Restrições de Integridade n n n n n Integridade de Domínio: q Define os valores que podem ser assumidos pelos campos de uma coluna. Integridade de Vazio: q Especifica se os campos de uma coluna podem ou não serem vazios. Integridade de Chave: q Define que os valores da chave primária e alternativa devem ser únicos. Integridade Referencial: q Define que os valores dos campos que aparecem numa chave estrangeira devem aparecer na chave primária (candidata) da tabela referenciada. Integridade de Unicidade: q Define que o valor do campo ou campos são únicos.
Restrições Semânticas (Regras de Negócio) n Existem outras restrições que não se encaixam nas acima citadas, mas são necessárias para um BDR, são as restrições semânticas e precisam ser desenvolvidas pelos programadores. n Exemplos: q um empregado do Setor de Finanças não pode ser Médico. q um empregado não pode ter salário maior do que seus chefes.
Especificação de Banco de Dados n A especificação do Banco de Dados Relacional (BDR), ou esquema do BDR, deve conter no mínimo: q Tabelas que formam o BDR; q Colunas que as tabelas possuem; q Restrições de integridade.
Especificação de Banco de Dados n Cada tabela é listada pelo seu nome. n Após o nome da tabela e entre parêntesis são listados os nomes das colunas, separados por vírgula. n A coluna ou colunas que contém a chave primária são sublinhadas. n Após a definição da tabela são listadas as definições das chaves estrangeiras que aparecem na tabela. n Se a chave estrangeira é formada por várias colunas, elas são declaradas separadas por vírgulas.
Especificação de Banco de Dados Empregado ( CódigoEmp, Nome, CódigoDepto, CategFunc ) Dependente (NºDepen, CódigoEmp, Nome, Tipo, DataNasc ) CódigoEmp referencia Empregado
Transformação de Modelos Mundo Real Requisitos de Dados Coleta/Especificação de Requisitos Requisitos Funcionais Projeto Conceitual Análise Funcional Projeto Lógico Projeto Funcional Projeto Físico Programação dados e regras SGBD Programa Programa de aplicação Programa de aplicação de de BD de aplicação BD
Transformação de Modelos
Transformação de Modelos n Objetivos do Projeto de dados: q boa performance q simplicidade de desenvolvimento q simplicidade de manutenção n Princípios de uma boa tradução: q evitar junções - ter os dados necessários a uma consulta numa mesma linha q diminuir a repetição de chaves primárias; e q evitar campos opcionais
Transformação de Modelos
Transformação de Modelos
Transformação de Modelos
Transformação de Modelos
Transformação de Modelos
Transformação de Modelos
Implementação de Relacionamento com grau > 2
Implementação da Generalização n Três formas de implementação: q Uma TABELA para toda a hierarquia. q Uma TABELA para cada entidade da hierarquia. q Uma TABELA para cada entidade especializada. CPF Nome Idioma CNH CRM
Uma Tabela Para Toda a Hierarquia Conceitual Lógico CPF Nome Empregado CPF Nome Idioma CNH CRM Tipo Idioma CNH CRM 111 Ana -- -- -- PES 222 Caio -- -- -- PES 333 Lia Inglês -- -- SEC 444 Beto -- M43 -- MOT 555 João -- -- C32 MED
Uma Tabela Para Cada Entidade da Hierarquia Conceitual Lógico CPF Nome Empregado CPF Nome 111 Ana 222 Caio 333 Lia 444 Beto 555 João Idioma CNH CRM Secretária CPF Idioma 333 Inglês Motorista CPF CNH 444 M43 Médico CPF CRM 555 C32 51
Uma Tabela Para Cada Entidade Especializada Conceitual Lógico CPF Nome Secretária CPF Nome Idioma 333 Lia Inglês Motorista CPF Nome CNH 444 Beto M43 Idioma CNH CRM Médico CPF Nome CRM 555 João C32 52