Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados I Abordagem Relacional Professor: Juliano Lucas Gonçalves Juliano.goncalves@ifsc.edu.br Projeto de Banco de Dados Fases do Projeto Fases do Projeto Agenda Projeto Lógico 6 Exemplo das Informações em um Banco de Dados codcliente nome rua cidade Conta saldo 1 José Figueiras Campinas 900 23 2 Felipe Laranjeiras São Carlos 556 1000 3 João Ipê São Paulo 112 5000 4 Antônio Ipê São Paulo 221 10000 Agenda MODELO RELACIONAL Modelo Relacional • É a etapa posterior à modelagem conceitual – Modelagem em nível lógico e não conceitual • Introduzido por Codd em 1970 (IBM/ Califórnia) • Não considera aspectos físicos de armazenamento, acesso e desempenho • Usada nos SGBDs do tipo relacional Abordagem Relacional • Elementos de um banco de dados relacional – Tabelas • Compostas de: – Linhas/Tuplas – Chaves • Relacionadas por: – Chaves estrangeira Linhas/Tuplas • Um conjunto de pares (atributo, valor) • Valor de um atributo – Definido no momento da criação de uma tupla deve ser: • compatível com o domínio (tipo de dado e formato corretos) ou NULL • Atômico (indivisível) Exemplo: Tupla 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Tupla 1 Atributo: Nome Valor: Renata Exemplo: Tupla 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascCPFNome Tuplas Relembrando... • Atributo é um Campo (coluna da tabela) • Tupla é uma linha da tabela • Domínio: tipo de dado, formato de um atributo Banco de Dados Relacional • O universo de um banco de dados relacional é um conjunto finito, não vazio, de relações. Chave • Conjunto de um ou mais atributos de uma relação usados para especicar restrições de integridades básicas de um SGBD relacional. • Tipos: – Chave Primária (primary key) – PK – Chave Candidata ou Alternativa – Chave Estrangeira (foreign key) - FK Chave Primária • Primary key (PK) – Atributo(s) cujo (conjunto de) valor(es) identifica(m) unicamente uma tupla em uma relação – Propriedades • Não pode se repetir • Não pode ser nula • Deve ser mínima – (menor conjunto de campos possíveis) – Abordagem relacional: • Todas colunas que compõem a chave primária são obrigatórias Chave Primária (PK) 20/02/1985São Diego 310/3401427Maria 03/07/1976Capote Valente, 3502467Vânia Rua das Flores, 210 Endereço 12/11/198001035Renata DataNascCPFNome Aluno Qual(is) atributo(s) representam unicamente uma tupla? Chave Primária (PK) 20/02/1985São Diego 310/3401427Maria 03/07/1976Capote Valente, 3502467Vânia Rua das Flores, 210 Endereço 12/11/198001035Renata DataNascCPFNome Aluno Qual(is) atributo(s) representam unicamente uma tupla? CPF Exemplo nome estado populacao Rio Claro São Paulo 100.000 Lages Santa Catarina 160.000 Rio claro Rio de Janeiro 200.000 Utilizar a coluna nome como chave primária Qual o problema? Como resolver? Chave Primária Composta nome estado populacao Rio Claro São Paulo 100.000 Lages Santa Catarina 160.000 Rio claro Rio de Janeiro 200.000 Utilizar as colunas nome e estado como chave primária composta Chave Candidata • Possui as mesmas propriedades que a chave primária 347685784432 693529876987 701034263890 CPF 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Aluno Chave Candidata • Possui as mesmas propriedades que a chave primária 347685784432 693529876987 701034263890 CPF 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Aluno Chaves candidatas Chave Candidata • Qual escolher para Chave Primária? • Escolhe-se para chave primária aquela com o atributo único ou menor número de caracteres 347685784432 693529876987 701034263890 CPF 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Chave Candidata 347685784432 693529876987 701034263890 CPF 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Chave Primária Chave Alternativa 347685784432 693529876987 701034263890 CPF 20/02/198501427Maria 03/07/197602467Vânia 12/11/198001035Renata DataNascMatrículaNome Chave Primária Chave alternativa Chave alternativa: chave candidata que não é primária Chave Estrangeira • Foreign Key (FK) • Uma coluna ou uma combinação de colunas, cujos valores aparecem necessariamente na chave primária de uma tabela • Implementa o relacionamento em um BD relacional Chave Estrangeira (FK) 1 2 1 Curso 347685784432 693529876987 701034263890 CPF 01427Maria 02467Vânia 01035Renata MatrículaNome Chave Estrangeira (FK) 1 2 1 Curso 347685784432 693529876987 701034263890 CPF 01427Maria 02467Vânia 01035Renata MatrículaNome Ciências Jurídicas e Sociais Administração de Empresas Ciência da Computação Descrição 3 2 1 Codigo Restrições de Integridade • É uma regra que deve ser obedecida em todos os estados válidos da base de dados (consistência). • Garantem que os dados refletem corretamente a realidade modelada. – Domínio, Chave Primária, Valores Vazios – Integridade Referencial – Semântica Restrições de Integridade • Domínio: conjunto de valores que um atributo pode assumir Exemplo: Nome: varchar (20)- Alessandra Vogel Oliveira viola a regra. Vazio: define se os atributos podem ou não ser vazios Integridade Referencial • Chave estrangeira (FK) • Garantia de relacionamentos válidos • Os valores que aparecem na FK devem aparecer na PK da relação referenciada 1 2 1 Curso 347685784432 693529876987 701034263890 CPF 01427Maria 02467Vânia 01035Renata MatrículaNome 1 2 1 Curso 347685784432 693529876987 701034263890 CPF 01427Maria 02467Vânia 01035Renata MatrículaNome Ciências Jurídicas e Sociais Administração de Empresas Ciência da Computação Descrição 3 2 1 Curso Ciências Jurídicas e Sociais Administração de Empresas Ciência da Computação Descrição 3 2 1 Curso Integridade Semântica • Especificada através de regras sobre o esquema do banco de dados • Exemplos: – O salário de um empregado deve ser menor ou igual ao do seu supervisor – O número de horas semanais de um empregado em um projeto não pode ser maior do que 50 Restrições de Inserção • Inserção: insere tuplas em uma relação • Pode violar 3 restrições de integridade: Restrições de Inserção • Inserção: insere tuplas em uma relação • Pode violar 3 restrições de integridade: – Integridade de Domínio: valor não é do domínio Restrições de Inserção • Inserção: insere tuplas em uma relação • Pode violar 3 restrições de integridade: – Integridade de Domínio – Integridade de Chave: valor já existe Restrições de Inserção • Inserção: insere tuplas em uma relação • Pode violar 3 restrições de integridade: – Integridade de Domínio • Integridade de Chave (ex.: chave duplicada) – Integridade Referencial: valor da FK refere-se a uma tupla que não existe na relação referenciada Restrições de Exclusão • Exclusão: exclui tuplas de uma relação • Pode violar : Restrições de Exclusão • Exclusão: exclui tuplas de uma relação • Pode violar : Integridade referencial: se a tupla que está sendo excluída está referenciada por uma FK de outra tupla Restrições de Exclusão • Exclusão: Ciências Jurídicas e Sociais Administração de Empresas Ciência da Computação Descrição 3 2 1 Curso 1 2 1 Curso 347685784432 693529876987 701034263890 CPF 01427Maria 02467Vânia 01035Renata MatrículaNome Restrições de Exclusão • Procedimento a ser adotado: – Rejeitar a operação – Excluir em cascata – Mudar os valores dos atributos referenciados Restrições de Atualização • Atualização : altera os valores de atributos nas tuplas existentes – Pode violar: Restrições de Atualização • Atualização : altera os valores de atributos nas tuplas existentes – Pode violar: • Restrição de Domínio para atributos que não são chave Restrições de Atualização • Atualização : alteraos valores de atributos nas tuplas existentes – Pode violar: • Restrição de Domínio para atributos que não são chave • Chave primária Restrições de Atualização • Atualização : altera os valores de atributos nas tuplas existentes – Pode violar: • Restrição de Domínio para atributos que não são chave • Chave primária • Referencial Especificação de BD Relacional • Especificação de banco de dados relacional – A especificação de um banco de dados relacional (chamada de esquema do banco de dados) deve conter no mínimo a definição do seguinte: • Tabelas que formam o banco de dados, • Colunas que as tabelas possuem, • Restrições de integridade. Especificação de BD Relacional • Exemplo – Empregado CódigoDepto Referência Departamento – Departamento Código Nome RG Data de admissão CódigoDepto 1111 Ana 123010 01/12/1980 D1 1222 Pedro 123999 06/07/1989 D1 ... ... ... ... D2 Código Nome D1 Estoque D2 Finanças ... ... Especificação de BD Relacional – Exemplo de esquema relacional resumido: Empregado (Codigo, Nome, Sexo, CodigoDepto) CodigoDepto referencia Departamento Departamento (Codigo,Nome) Exercício: 1. Considere o seguinte esquema relacional: Categoria(CodCategoria, Descrição) Cliente (CodCli, Nome, Endereco, CPF, CodCategoria) Funcionário (CodFunc, Nome, CT, CPF, End, Fone) Fornecedor (CodFornec, Nome, Cidade) Produto (CodProd, CodFornec, Nome, Peso, Valor) Exercício: 1) Identificar as chaves primárias e chaves estrangeiras. Para as chaves estrangeiras faça a referencia das mesmas. 2) Explique o que deve ser feito pelo SGBD para garantir a integridade referencial nas seguintes situações: – Uma tupla é excluída na tabela Categoria Slide 1 Slide 2 Slide 3 Slide 4 Agenda Slide 6 Agenda Modelo Relacional Abordagem Relacional Linhas/Tuplas Exemplo: Tupla Exemplo: Tupla Relembrando... Banco de Dados Relacional Chave Chave Primária Chave Primária (PK) Chave Primária (PK) Exemplo Chave Primária Composta Chave Candidata Chave Candidata Chave Candidata Chave Candidata Chave Alternativa Chave Estrangeira Chave Estrangeira (FK) Chave Estrangeira (FK) Restrições de Integridade Restrições de Integridade Integridade Referencial Integridade Semântica Restrições de Inserção Restrições de Inserção Restrições de Inserção Restrições de Inserção Restrições de Exclusão Restrições de Exclusão Restrições de Exclusão Restrições de Exclusão Restrições de Atualização Restrições de Atualização Restrições de Atualização Restrições de Atualização Especificação de BD Relacional Especificação de BD Relacional Especificação de BD Relacional Exercício: Exercício:
Compartilhar