24/10/2008 Faculdade INED Curso Superior de Tecnologia: B Banco d de Dados D d Sistemas para Internet Redes de Computadores Disciplina: Banco de Dados Prof.: Fernando Hadad Zaidan 1 Unidade 4 PROJETO LÓGICO 4.1 Introdução ao Projeto Lógico. 4 2 Restrições e Integridade 4.2 Integridade. 4.3 Mapeamento MER → Modelo Lógico. 2 Material usado na montagem dos Slides Bibliografia adicional para desenvolvimento das aulas ADMINISTRAÇÃO DE DADOS. COMDEX – SUCESU, SP, 2002. BARBIERI, Carlos. BI - Business Inteligence: Modelagem e tecnologia. de Janeiro, Axcel Books, 2001. Rio HEUSER, C HEUSER C. A A. Projeto de Banco de Dados Dados. 5a. 5a Edição Edição. Porto Alegre: Sagra Luzzatto, 2004. RAPOSO, Adriana. Apostila Banco de Dados, 2008. ROCHA, Rogério Morais. Slides da disciplina Projeto de Banco de Dados Relacional II. Faculdade INED, 2008. SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de banco de dados. Tradução da 5ª Edição. São Paulo: Campus, 2006. 3 1 24/10/2008 Banco de Dados Relacionais Conceito abstrato que define maneiras de: - armazenar - manipular - e recuperar dados estruturados. Os dados estão unicamente na forma de tabelas <*>, para construir t i um b banco d de d dados. d - surgiram em meados da década de 1970; - alguns anos mais tarde as empresas passaram a utilizar no lugar de arquivos, bancos de dados hierárquicos e em rede. - Edgar Frank Codd foi criador do modelo relacional (criou as 12 regras de Codd). <*> é umas das regras. - a linguagem dos bancos de dados relacionais é a SQL - Structured Query Language 4 Tabela • Todos os dados dos banco de dados relacionais são armazenados em tabelas. • Simples estrutura de linhas e colunas. j de colunas,, e estas • Cada linha contém um mesmo conjunto linhas devem seguir a ordem que foi especificada pelo DA. • Em um banco de dados podem existir uma ou centenas de tabelas. • As tabelas associam-se entre si através de regras de relacionamentos. 5 Tabela • Exemplo: A tabela Empregado relaciona-se com a tabela cargo. • Através deste relacionamento a tabela cargo fornece a lista de cargos para a tabela Empregado. • Baseado numa estrutura de dados simples chamada relação. • É o modelo mais amplamente usado, principalmente em aplicações convencionais de BD. 6 2 24/10/2008 Relação (tabela) • Relação: normalmente chamada de tabela nos SGBDs relacionais do mercado. É composta por 2 partes: – Cabeçalho: conjunto fixo de atributos, que são as colunas ou campos da relação. – Corpo: conjunto variável de registros (tuplas), que são as linhas da relação. O número de linhas define a cardinalidade di lid d d da relação. l ã Código 10 20 30 40 Nome Ana Maria Paulo Beatriz Leonardo Função Idade Analista Programador Analista Gerente Salário 30 22 40 45 1500 900 2200 3500 Corpo 7 Esquema de uma relação • Nas relações podem ser observadas as seguintes propriedades: – – – – Não existem tuplas duplicadas; A ordem das tuplas é insignificante; A ordem dos atributos é insignificante; Os valores dos atributos são atômicos atômicos, sem grupos repetitivos; – Os atributos podem ter valores nulos, sendo que nulo significa inexistência de valor, diferente, portanto, de zero e branco. 8 Domínios • Conjunto de valores a partir do qual um ou mais atributos extraem seus valores. • Os atributos são comparáveis entre si, se e somente se pertencerem a um mesmo domínio. • O domínio do atributo idade é um número inteiro entre 13 e 70 e o domínio do salário seria um número real entre 100,00 e 10.000,00. 9 3 24/10/2008 Domínios • Domínio é um conceito semântico. Exemplos: - Peso, qte, valor - são numéricos (reais); - Idade é inteiro; - Nome, Cidade é caracter. - Data de Nascimento é Data; O mesmo domínio pode ser utilizado múltiplas vezes em uma relação. • Ex: relação Peça (Codigo, Nome, Idade) – 3 atributos diferentes com 2 domínios apenas: • Codigo e Idade – inteiro • Nome – caracter. 10 Chaves As tabelas relacionam umas com as outras através das chaves. Uma chave é um conjunto de um ou mais atributos que determinam a unicidade de cada registro. Chave Candidata: conjunto de atributos que definem unicamente e minimamente i i t cada d ttupla l d de uma relação. l ã Ex: Funcionario (Código, Nome, CPF). Código e CPF são chaves candidatas. Chave Primária (Primary Key): é uma chave escolhida entre as chaves candidatas para identificar a tupla da relação. Ex: Funcionario (Código, Nome, CPF). Código é a chave primária. 11 Chave Alternativa: são as chaves candidatas não escolhidas para chave primária. Ex: Funcionario (Código, Nome, CPF). CPF é a chave alternativa. • Chave Estrangeira (Foreign Key): conjunto de atributos de uma relação R1 que constituem chave primária de uma outra relação R2. - As chaves estrangeiras funcionam como elo de ligação entre relações. - Ex: Funcionario (Cod-Emp, Nome, Cod-Depto(FK)) Departamento (Cod-Depto, Desc_Depto) 12 4 24/10/2008 Tipos de integridade de dados 13 Restrições Condições restritivas do modelo relacional. • Restrição de domínio – Especifica que o valor de cada atributo A de uma relação deve ser um valor atômico. • Ex: Atributo Cargo na entidade funcionário possui um único valor; • R Restrições t i õ de d chave h – Tuplas de uma mesma relação não podem ter valores iguais para todos os seus atributos --> Chave Primária <> • Restrições de Integridade de Entidade – Nenhuma chave primária pode ser nulo 14 • Restrição de Integridade Referencial – Se uma entidade X possui uma chave estrangeira (FK) que corresponde à chave primária (PK) de outra entidade Y, então cada valor da FK da entidade X deve ser igual ao valor da PK da entidade Y e se não existir, ser totalmente NULA, ou seja, não possuir valor (Regra de Inclusão). • T1[Fk]=T2[Pk], T1[Fk] T2[Pk] onde d T2 é alguma l ttupla l d de R2 R2; ou • T1[Fk] é nulo • Na prática, implica que não são permitidos valores de chave estrangeira que não tenham sido cadastrados previamente como chave primária. 15 5 24/10/2008 Tabelas e Chaves Chaves Primárias Chave Estrangeira 16 Modelo Lógico O modelo lógico, ao contrário do modelo conceitual, é completamente dependente da tecnologia de implementação a ser utilizada. – Descreve o BD no nível do SGBD, isto é, se o mesmo é relacional orientado a objetos, relacional, objetos hierárquico etc. etc – Um modelo lógico de BD relacional, por exemplo, deve definir quais as tabelas e o nome das colunas que compõem estas tabelas. – Define as chaves primárias e a normalização é feita até a 3a. forma. Fonte: ROCHA, Rogério Morais. 17 Modelagem de Dados – do Modelo Relacional ao Lógico Identificação das Situações para Definição das Tabelas A (a , t . . .) A a t a A 1 B b N R r N C A (a ,. . .) B (b , . . .) C (c , . . .) R (a <fk>, b <fk>, c <fk>, r) c 18 18 6 24/10/2008 • Modelo Lógico Exemplo de Modelo Lógico: vendedor( cpf, telefone, nome, dt_nascto, sexo) cidade( cep, nome) cidade_vendas( cep (fk), cpf (fk), valor_da_venda) Fonte: ROCHA, Rogério Morais. 19 • MER para Modelo Lógico FK Fonte: HEUSER, C. A. 20 EXERCÍCIO Modelo Entidade Relacionamento (projeto conceitual) cdTime cdJogador nomeTime Times M Contratos dtRescisao N nomeJogador Jogadorees dtContrato Modelo Relacional (projeto lógico) Times (cdTime, nomeTime) Jogadores (cdJogador, nomeJogador) Contratos (cdTime (fk), cdJogador (fk), dtContrato, dtRescisao) 21 7 24/10/2008 Bons Estudos! Estudos! O gênio consiste em um por cento de inspiração e noventa e nove por cento de transpiração. (Thomas A. Edison) 22 8