Modelo Relacional parte 1 Márcia Jacyntha Nunes Rodrigues Disciplina: Banco de Dados Lablic/DIMAp/UFRN
Objetivo Apresentação do modelo relacional e seus principais conceitos, restrições e álgebra relacional
Conteúdo Introdução Conceitos e Notação do Modelo Relacional Restrições de Integridade Operações de Atualização Definição das Relações Álgebra Relacional Exemplos de consultas Considerações Finais
Introdução Definido por Codd em 1970. Este modelo teve grande aceitação pelas razões: Simplicidade dos Conceitos de base Poder dos operadores de manipulação Rigor dos conceitos (tanto estruturas como operadores) Contribuição à coerência do sistema de informação
Conceitos Básicos - Relação Relação: dada uma coleção de conjuntos D1, D2, ..., Dn (não necessariamente distintos), R é uma relação sobre estes n conjuntos se ela é um conjunto de n-tuplas ordenadas <d1, d2,...,dn> tal que d1 E D1, d2 E D3,..., dn E Dn D1, D2,..., Dn são domínios grau de R é o número de atributos Uma relação R é um sub-conjunto do produto cartesiano de n conjuntos Di: R C D1xD2xD3...xDn
Conceitos Básicos - Domínio Domínio: representa o conjunto de valores atômicos admissíveis de um componente de uma relação funciona como um conector semântico inter-relação a 2 níveis: definição - todo valor de uma n-upla E D manipulação: 2 valores só podem ser comparados se definidos sobre o mesmo D O conceito de Domínio não é suficiente para definir uma relação sem ambigüidade
Conceitos Básicos - Atributo Atributo: explicita o papel de um domínio em uma relação Os atributos de uma dada relação devem ser diferentes Um atributo (ou vários) identificam uma relação - chave primária Domínio Primário: domínio sobre o qual uma chave primária é definida
Conceitos Básicos - Chaves Um atributo definido sobre um domínio primário e não é chave primária então é chave estrangeira Uma chave primária é definida como um conjunto k de atributos verificando: unicidade (os valores de chave Primária são únicos e não nulos) minimalidade (nenhum atributo componente de k pode ser retirado sem perda da unicidade)
Conceitos Básicos - Tupla Esquema Relacional: conjunto de relações semanticamente ligadas por seus domínios de definição O conceito de Relação permite representar tanto uma entidade quanto uma ligação semântica Tupla: seja uma relação R(D1,D2, ..., Dn) uma tupla desta relação é um n-upla <a1, a2,..., na> tal que ai E Di (i E [1..n]) Colocar um exemplo no quadro
Restrições do M. Relacional Integridade de Domínio - diz respeito ao controle sintático e semântico de um dado e faz referência ao tipo de definição do domínio Integridade de Entidade - diz respeito ao valores de chave primária que devem ser únicos e não nulos Integridade de Referência: diz respeito aos valores de um atributo chave estrangeira em uma relação e os valores atributos chave primária associado em uma outra relação
Restrições do M. Relacional O conceito de domínio semântico tem um duplo papel: permitir um controle de validade e de qualidade de dados garantir um quadro semântico na comparação dos valores e, logo, na fusão das relações uma relação tem dois componentes - a extensão: conjunto de tuplas em um dado instante a intenção: parte permanente da relação (esquema) (nome das estruturas e restrição de integridade)
Linguagem Algébrica Definida por Codd, compreende 2 tipos de operadores: Operadores sobre conjuntos clássicos - união, interseção, diferença entre relações compatíveis Operadores Relacionais - operadores unários de restrição - seleção e projeção Operadores binários de extensão - junção, divisão
Os 10 conceitos Chaves do MR Modelo Relacional Restrição de Integridade Definição Manipulação 5. Equivalência com interface algébrica completa e operadores semânticos 6. Operadores sobre cojuntos: união, interseção, diferença 7. Operadores relacionais seleção, projeção, junção e divisão 8. Integridade de Domínio 9. Integridade de entidade 10. Integridade Referêncial 1. Relação / Atributo 2. Domínios 3. Chave primária 4. Domínio Primário (chave estrangeira)
Esquema Relacional Empregado |Ecpf|Enome|Esalario|SupervisorCPF|Dnum| Departamento |Dnum|Dnome|dlocal|GerenteCPF|datainicio| Projeto |pnum|pnome|plocal|dnum| trab_em |ecpf|pnum|horas| dependente |ecpf|dpnome|dpnascimento|dparentesco|
Operações de Atualização Inserção, Exclusão e alteração Existem tipos de restrições que podem ser violadas quando estas operações ocorrem serão apresentadas as ações que devem ser tomadas
Operações de Atualização Inserção Restrições que podem ser violadas Restrição de domínio - o valor do atributo não pertence ao domínio Restrição de chave - quando o valor chave da nova tupla já existe em outra tupla da Relação R Integridade de Entidade - se a chave primária da nova tupla for nula Integridade Referencial - se o valor de chave estrangeira da nova tupla refere a uma tupla inexistente Soluções
Operações de Atualização Exclusão Pode violar a integridade Referencial - se a tupla excluída estiver sendo referenciada por outras tuplas através da chave estrangeira Soluções Rejeitar a exclusão, propagar a exclusão ou modificar o valor do atributo referenciado que causa a violação - atribuindo um valor nulo ou fazendo referência a uma tupla válida Combinação destas três opções SGBD permite o usuário especificar quais das opções devem ser utilizadas
Operações de Atualização Alteração Usada para alterar valores de um ou mais atributos na tupla de alguma relação R Necessário especificar quais serão as tuplas a serem alteradas Alterações em atributos que sejam chave primária ou chave estrangeira podem violar restrições Para atributo como chave primária utiliza-se os mesmos critérios da exclusão e inclusão Atributo chave estrangeira sendo alterado deve observar se o novo valor referencia um tupla válida
Definição de Relações Projetar um esquema de BD envolve quais atributos pertencem a cada relação escolha de nomes para as relações e atributos especificar os domínios e tipos de dados identificação de chaves primárias e estrangeiras Passos para definição do esquema usando uma DDL: 1) Nomear o esquema todo 2) Declarar os domínios (dando nome e tipo de dados) 3) Nomear relações e sua composição (construtores precisam ser usados para especificar nome da relação, seus atributos e chaves e restrições
Exemplo de uso de DDL DECLARE RELATION empregado FOR SCHEMA Companhia ATTRIBUTES nome DOMAIN nome_pessoa CPF DOMAIN cpf_pessoa dataAniv DOMAIN data CPF_Sup DOMAIN cpf_pessoa num_Dep DOMAIN dept_numero CONSTRAINTS PRIMARY KEY(CPF), FOREIGN KEY (cpf_Sup) REFERENCES empregado, FOREIGN KEY (num_Dep) REFERENCES Departamento;