Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de DadosBanco de Dados Abordagem Relacional Professor Marcio Victorino – mcvictorino@uol.com.br Abordagem RelacionalAbordagem RelacionalAbordagem RelacionalAbordagem Relacional � Abordagem de modelagem de dados utilizada nos sistemas de gerenciamento de bancos de dados do tipo relacional. � Modelagem a nível lógico.� Modelagem a nível lógico. Professor Marcio Victorino 2 Banco de Dados RelacionalBanco de Dados RelacionalBanco de Dados RelacionalBanco de Dados Relacional � Tabelas: � Compostas de: � Linhas; � Colunas; eColunas; e � Chaves Primárias. � Relacionadas através de: � Chaves estrangeiras. Professor Marcio Victorino 3 TerminologiasTerminologiasTerminologiasTerminologias Professor Marcio Victorino 4 TabelasTabelasTabelasTabelas Professor Marcio Victorino 5 Características das TabelasCaracterísticas das TabelasCaracterísticas das TabelasCaracterísticas das Tabelas � Linhas de uma tabela não estão ordenadas. � Valor do campo: � Atômico; � Monovalorado. Professor Marcio Victorino 6 Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 Conceitual Lógico Homem MulherCasa (0,1) (0,1) CPF Nome CPF Nome Lógico CPF Nome 111 Caio 222 Beto 333 Abel CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 Homem Mulher CPF Nome 111 Caio 222 Beto 333 Abel CPF_Mulher 777 888 Homem Mulher CPF Nome 777 Ana 888 Lia 999 Bia Professor Marcio Victorino 7 Conceitual Lógico Homem MulherCasa (0,1) (1,1) CPF Nome CPF Nome Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 CPF Nome 111 Caio 222 Beto 333 Abel CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 Homem Mulher CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 Homem Mulher CPF Nome 777 Ana 888 Lia 999 Bia Professor Marcio Victorino 8 Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 Conceitual Lógico Homem MulherCasa (0,1) (1,1) CPF Nome CPF Nome CPF Nome CPF Nome CPF_MulherCPF Nome 111 Caio 222 Beto 333 Abel CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 Homem Mulher CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 Homem Mulher CPF Nome 777 Ana 888 Lia 999 Bia Professor Marcio Victorino 9 Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 Conceitual Lógico Homem MulherCasa (0,1) (1,1) CPF Nome CPF Nome Lógico CPF_H Nome_H 111 Caio 222 Beto CPF_M Nome_M 777 Ana 888 Lia 999 Bia Casal Professor Marcio Victorino 10 Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 Conceitual Lógico Homem MulherCasa (1,1) (1,1) CPF Nome CPF Nome CPF Nome CPF Nome CPF_MulherCPF Nome 111 Caio 222 Beto 333 Abel CPF Nome 777 Ana 888 Lia 999 Bia CPF_Homem 111 222 Homem Mulher CPF Nome 111 Caio 222 Beto CPF_Mulher 777 888 Homem Mulher 333 333 Abel 999 CPF Nome 777 Ana 888 Lia 999 Bia Professor Marcio Victorino 11 Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 Conceitual Lógico Homem MulherCasa (1,1) (1,1) CPF Nome CPF Nome Lógico CPF_H Nome_H 111 Caio 222 Beto 333 Abel CPF_M Nome_M 777 Ana 888 Lia 999 Bia Casal Professor Marcio Victorino 12 Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1Implementação de Relacionamento 1:1 Professor Marcio Victorino 13 Implementação de Relacionamento 1:n Conceitual Pessoa EmpresaTrabalha N 1 CPF Nome CNPJ Nome Lógico CNPJ Nome 1A IBM 2B CA 3C Sun CPF Nome 777 Ana 888 Lia 999 Bia CNPJ_Empresa 1A Empresa Pessoa 3C Professor Marcio Victorino 14 Implementação de Relacionamento 1:n Conceitual Pessoa EmpresaTrabalha (0,N) (1,1) CPF Nome CNPJ Nome Lógico CNPJ Nome 1A IBM 2B CA 3C Sun CPF Nome 777 Ana 888 Lia 999 Bia CNPJ_Empresa 1A Empresa Pessoa 3C X Professor Marcio Victorino 15 Implementação de Relacionamento 1:n Conceitual Pessoa EmpresaTrabalha (0,N) (1,1) CPF Nome CNPJ Nome Lógico Funcao CNPJ Nome 1A IBM 2B CA 3C Sun CPF Nome 777 Ana 888 Lia 999 Bia CNPJ_Empresa 1A Empresa Pessoa 3C 2B Lógico Funcao GP Desenvolvedor Testador Professor Marcio Victorino 16 Implementação de Relacionamento 1:nImplementação de Relacionamento 1:nImplementação de Relacionamento 1:nImplementação de Relacionamento 1:n Professor Marcio Victorino 17 Implementação de Relacionamento n:n Conceitual Pessoa DepartamentoAlocacao N N CPF Nome Cod Nome Lógico Cod Nome D01 RH D02 TI D03 Adm Departamento Pessoa CPF Nome 111 Caio 222 Beto 333 Abel Cod CPF D01 111 D01 222 D03 222 Alocacao Lógico Professor Marcio Victorino 18 Implementação de Relacionamento n:n Conceitual Pessoa DepartamentoAlocacao N N CPF Nome Cod Nome Lógico Data Cod Nome D01 RH D02 TI D03 Adm Departamento Pessoa CPF Nome 111 Caio 222 Beto 333 Abel Alocacao Cod CPF D01 111 D01 222 D03 222 Data D03 333 D01 111 10/10/1999 10/11/2000 10/12/2001 10/10/2002 10/10/2003 Professor Marcio Victorino 19 Implementação de Relacionamento n:n Conceitual Pessoa DepartamentoAlocacao N N CPF Nome Cod Nome Lógico Data Salario Cod Nome D01 RH D02 TI D03 Adm Departamento Pessoa CPF Nome 111 Caio 222 Beto 333 Abel Alocacao Lógico Cod CPF D01 111 D01 222 D03 222 Data D03 333 D01 111 10/10/1999 10/11/2000 10/12/2001 10/10/2002 10/10/2003 Salario 100,00 200,00 300,00 400,00 500,00 Professor Marcio Victorino 20 Implementação de Relacionamento n:nImplementação de Relacionamento n:nImplementação de Relacionamento n:nImplementação de Relacionamento n:n Professor Marcio Victorino 21 � Conceito básico para estabelecer relações entre as linhas da tabela; � No modelo relacional são consideradas as chaves: primárias; ChavesChavesChavesChaves � primárias; � alternativas; e � estrangeiras. Professor Marcio Victorino 22 Chave PrimáriaChave PrimáriaChave PrimáriaChave Primária � Coluna ou combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela. � 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. Professor Marcio Victorino 23 Chave EstrangeiraChave EstrangeiraChave EstrangeiraChave Estrangeira � 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. Professor Marcio Victorino 24 Chave EstrangeiraChave EstrangeiraChave EstrangeiraChave Estrangeira � CódigoEmpna tabala Dependente é uma chave estrangeira em relação à tabela Empregado. Professor Marcio Victorino 25 Relacionamento IdentificadorRelacionamento IdentificadorRelacionamento IdentificadorRelacionamento Identificador Conceitual Pessoa DependentePossui 1 N CPF Nome NSeq Nome Lógico CPF Nome 777 Ana 888 Lia 999 Bia NSeq Nome 1 Luiz 2 Joao 1 Jose CPF 777 Pessoa Dependente 999 777 Lógico Professor Marcio Victorino 26 Relacionamento IdentificadorRelacionamento IdentificadorRelacionamento IdentificadorRelacionamento Identificador Conceitual Pessoa DependentePossui 1 N CPF Nome NSeq Nome Lógico CPF Nome 777 Ana 888 Lia 999 Bia NSeq Nome 1 Luiz 2 Joao 1 Jose CPF 777 Pessoa Dependente 999 777 Lógico Professor Marcio Victorino 27 � Quando da inclusão de uma linha na tabela que a contém: � 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: � deve ser garantida a existência do valor da chave estrangeira na tabela referenciada que contém a chave primária respectiva. Validação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave Estrangeira 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: � deve ser garantida que na coluna chave estrangeira não apareça o valor da chave primária excluída. Professor Marcio Victorino 28 Validação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave EstrangeiraValidação Chave Estrangeira Conceitual Pessoa EmpresaTrabalha (0,N) (1,1) CPF Nome CNPJ Nome Lógico CNPJ Nome 1A IBM 2B CA 3C Sun CPF Nome 777 Ana 888 Lia 999 Bia CNPJ_Empresa 1A Empresa Pessoa 3C 4D Lógico Professor Marcio Victorino 29 Chave Estrangeira (Observação)Chave Estrangeira (Observação)Chave Estrangeira (Observação)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. Professor Marcio Victorino 30 Chave AlternativaChave AlternativaChave AlternativaChave Alternativa � 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. Professor Marcio Victorino 31 � 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. Domínios e Valores VaziosDomínios e Valores VaziosDomínios e Valores VaziosDomínios e Valores Vazios 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. Professor Marcio Victorino 32 � É uma regra de consistência de dados que é garantida pelo próprio SGBD. � Restrições de Integridade Básicas; � Integridade de Domínio; � Integridade de Vazio; � Integridade de Chave; Restrições de IntegridadeRestrições de IntegridadeRestrições de IntegridadeRestrições de Integridade Integridade de Chave; � Integridade Referencial; � Integridade de Unicidade; � Integridade de Entidade. � São garantidas automaticamente pelo SGBD Relacional. � O programador não precisa implementá-las. Professor Marcio Victorino 33 � Integridade de Domínio: � Define os valores que podem ser assumidos pelos campos de uma coluna. � Integridade de Vazio: � Especifica se os campos de uma coluna podem ou não serem vazios. Restrições de IntegridadeRestrições de IntegridadeRestrições de IntegridadeRestrições de Integridade serem vazios. � Integridade de Chave: � Define que os valores da chave primária e alternativa devem ser únicos. Professor Marcio Victorino 34 � Integridade Referencial: � Define que os valores dos campos que aparecem numa chave estrangeira devem aparecer na chave primária (candidata) da tabela referenciada. � Integridade de Unicidade: � Define que o valor do campo ou campos são únicos. Restrições de IntegridadeRestrições de IntegridadeRestrições de IntegridadeRestrições de Integridade � Define que o valor do campo ou campos são únicos. � Integridade de Entidade: � Define que nenhum valor da chave primária pode ser nulo. Professor Marcio Victorino 35 � Restrições de Banco de Dados (Tabelas): � Valores que determinado banco de dados tem permissão para assumir. � Restrições de RelVar (Atributos): � Valores que determinada RelVar tem permissão para assumir. Categorias de Restrições (Date, p.231)Categorias de Restrições (Date, p.231)Categorias de Restrições (Date, p.231)Categorias de Restrições (Date, p.231) assumir. � Restrições de Atributo (Tipagem): � Valores que determinada atributo tem permissão para assumir. � Restrições de Tipo (Domínio): � Valores que constituem determinado tipo. Professor Marcio Victorino 36 � 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. Exemplos: Restrições Semânticas (regras de negócio)Restrições Semânticas (regras de negócio)Restrições Semânticas (regras de negócio)Restrições Semânticas (regras de negócio) � Exemplos: � um empregado do Setor de Finanças não pode ser Médico. � um empregado não pode ter salário maior do que seus chefes. Professor Marcio Victorino 37 � A especificação do Banco de Dados Relacional (BDR), ou esquema do BDR, deve conter no mínimo: � Tabelas que formam o BDR; � Colunas que as tabelas possuem; Especificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de Dados � Colunas que as tabelas possuem; � Restrições de integridade. Professor Marcio Victorino 38 � Cada tabela é listada pelo seu nome. � Após o nome da tabela e entre parêntesis são listados os nomes das colunas, separados por vírgula. � A coluna ou colunas que contém a chave primária são sublinhadas. Especificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de Dados são sublinhadas. � Após a definição da tabela são listadas as definições das chaves estrangeiras que aparecem na tabela. � Se a chave estrangeira é formada por várias colunas, elas são declaradas separadas por vírgulas. Professor Marcio Victorino 39 Especificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de DadosEspecificação de Banco de Dados 40 Dependente ( NºDepen , CódigoEmp , Nome, Tipo, DataNasc ) CódigoEmp referencia Empregado Empregado ( CódigoEmp , Nome, CódigoDepto, CategFunc ) Professor Marcio Victorino 40 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Requisitos de Dados Projeto Conceitual Coleta/Especificação de Requisitos Requisitos Funcionais Análise Funcional Mundo Real Projeto Lógico Projeto Físico Projeto Funcional Programação Programa de aplicação de BDSGBD Programa de aplicação de BD Programa de aplicação dados e regras Professor Marcio Victorino 41 Transformação deModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 42 OBJETIVOS DO PROJETO DE BANCOS DE DADOS - boa performance; - simplicidade de desenvolvimento; - simplicidade de manutenção. Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos PRINCÍPIOS PARA UMA BOA TRADUÇÃO - evitar junções - ter os dados necessários a uma consulta numa mesma linha; - diminuir a repetição de chaves primárias; e - evitar campos opcionais. Professor Marcio Victorino 43 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 44 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 45 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 46 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 47 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 48 Transformação de ModelosTransformação de ModelosTransformação de ModelosTransformação de Modelos Professor Marcio Victorino 49 Implementação de Relacionamento com grau > 2Implementação de Relacionamento com grau > 2Implementação de Relacionamento com grau > 2Implementação de Relacionamento com grau > 2 Professor Marcio Victorino 50 � Três formas de implementação: � Uma TABELA para toda a hierarquia. � Uma TABELA para cada entidade da hierarquia. � Uma TABELA para cada entidade especializada. Implementação da GeneralizaçãoImplementação da GeneralizaçãoImplementação da GeneralizaçãoImplementação da Generalização CPF Nome Idioma CNH CRM Professor Marcio Victorino 51 Uma TABELA para toda a hierarquiaUma TABELA para toda a hierarquiaUma TABELA para toda a hierarquiaUma TABELA para toda a hierarquia CPF Nome Conceitual Lógico 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 Professor Marcio Victorino 52 Uma TABELA para cada entidade da hierarquiaUma TABELA para cada entidade da hierarquiaUma TABELA para cada entidade da hierarquiaUma TABELA para cada entidade da hierarquia CPF Nome Empregado Conceitual Lógico CPF Nome 111 Ana 222 Caio 333 Lia 444 Beto Idioma CNH CRM Secretária Motorista Médico 555 João CPF Idioma 333 Inglês CPF CNH 444 M43 CPF CRM 555 C32 Professor Marcio Victorino 53 Uma TABELA para cada entidade especializadaUma TABELA para cada entidade especializadaUma TABELA para cada entidade especializadaUma TABELA para cada entidade especializada CPF Nome Secretária Motorista Conceitual Lógico 333 Lia Inglês CPF Nome Idioma Idioma CNH CRM Motorista Médico CPF Nome CNH 444 Beto M43 CPF Nome CRM 555 João C32 Professor Marcio Victorino 54 FimFim Professor Marcio Victorino 55
Compartilhar