Restrições de CHAVE a relação CARRO da figura abaixo apresenta duas chaves candidatas considera-se como chave primária, o atributo-chave que é usado para identificar a tupla na relação e ela deve ser sublinhada no esquema da relação quando se tem diversas chaves candidatas, a escolha da chave primária é arbitrária, mas em geral, escolhe-se uma com atributo único ou com menor número de atributos Restrições de CHAVE um atributo_chave é usado para identificar, unicamente, cada tupla na relação determinado em função do significado de seu atributo e de sua propriedade que não varia com o tempo não se pode ter valores idênticos para atributos_chave todo conjunto de atributos que contiver o atributo_chave será considerado uma superchave atributo_chave: SSN superchave: {SSN,Nome,Idade} superchave mínima: pode-se remover atributos e manter a restrição de unicidade uma superchave só será chave se todos os seus atributos garantirem a propriedade de unicidade se isto acontece, os atributos que compõem a superchave são chamados de chaves candidatas 1
Integridade de entidade e integridade referencial de entidade: estabelece que nenhum valor de chave primária pode ser null referencial: surgem dos relacionamentos entre as entidades representadas nos esquemas de relação é usada para manter a consistência entre as tuplas das duas relações chave estrangeira: é um atributo de alguma entidade que se refere à chave primária de outra entidade o(s) atributo(s) da chave estrangeira têm o mesmo domínio que os atributos da chave primária que ela se relaciona se existe um valor de chave estrangeira em uma tupla, ele deve ocorrer como um valor de chave primária em outra tupla, ou énull se para aquela tupla não houver o relacionamento uma chave estrangeira pode se referir à sua própria relação Integridade referencial no esquema do BD relacional EMPRESA 2
Outros tipos de restrições A maioria dos SGBD s relacionais suportam restrições de chave e de integridade de entidade e providenciam suporte para a integridade referencial estas restrições são especificadas como parte da definição de dados Outras restrições de integridade semântica: o salário de um empregado não deve exceder o do supervisor do empregado o número máximo de horas que um empregado pode trabalhar por semana, em todos os projetos, é 56 o salário de um empregado pode ser apenas aumentado Estas restrições podem ser especificadas e impostas dentro dos programas de aplicação que atualizam o BD ou pelo uso de uma linguagem de especificação de restrição mecanismos de gatilhos e asserções Operações de atualização e tratamento de violações de restrição no BD relacional As operações do modelo relacional podem ser categorizadas em recuperações atualizações Uma expressão de álgebra relacional forma uma nova relação depois de aplicar um número de operadores algébricos a um conjunto de relações seu uso principal está nas consultas de banco de dados o cálculo relacional é usado para definir esta nova relação As operações de álgebra relacional que podem ser usadas para especificar recuperações serão discutidas no Cap. 5 3
Operações de atualização e tratamento de violações de restrição no BD relacional As 3 operações básicas para a modificação ou atualização em relações no BD são: insert para inserir uma nova tupla ou tuplas em uma relação delete para remover tuplas modify ouupdate para mudar valores de alguns atributos em já tuplas existentes Quando estas operações são aplicadas, as restrições de integridade especificadas no esquema do BD relacional não devem ser violadas tipos de restrições que não podem ser violadas em cada operação tipos de ações que devem ser tomadas se uma atualização causar uma violação Operação Insert Se a operação violar qualquer um dos 4 tipos de restrições discutidas anteriormente, ela será rejeitada restrição de domínio um valor de atributo não pertence ao domínio correspondente restrição de chave se um valor de chave em um nova tupla já existir em outra tupla da relação restrição de integridade de entidade a chave primária da nova tupla ser null restrição de integridade referencial o valor de qualquer chave estrangeira referir-se a uma tupla não existente na relação referida 4
Operação Delete Se a operação violar a integridade referencial, ou seja, se a tupla a ser removida for referida por chaves estrangeiras de outras tuplas no BD, a remoção não é aceitável Só seria aceitável: se a remoção for em cascata (ou propagação), que é a eliminação das tuplas que fazem referência à tupla que está sendo removida se houvesse modificação dos valores dos atributos de referência que causam a violação cada valor passaria a ser null ou modificado para referir a outra tupla válida mas se o atributo de referência fizer parte da chave primária, ele não poderá ser determinado como null (violação da integridade da entidade) Operação Update oumodify Exigências: para um atributo que não é nem chave primária e nem chave estrangeira verificar se o novo valor é do tipo de dado e de domínio correto para modificar chave estrangeira, o novo valor deve referir-se a uma tupla existente na relação referida modificar um valor de chave primária equivale a remover uma tupla e inserir outra (operações deinsert e delete) 5