Baixe o app para aproveitar ainda mais
Prévia do material em texto
1 1 Bases de dados Estrela Ferreira Cruz Restrições de integridade 2 Objetivos da aula: • Restrições de integridade (integrity constraints) • Apresentação do conceito. • Objetivos. • Tipos de integridade: • integridade de domínio • integridade de entidade • integridade de referência Base de dados ------------------------------------------------------------- 2 3 Restrições de integridade (constraints): • São condições, ou regras, que devem ser verificadas para que um elemento possa pertencer à relação (tabela). • São usadas para garantir a consistência dos dados de uma base de dados. • São usadas para garantir que os dados armazenados seguem as regras especificadas no design da base de dados. • Normalmente são asseguradas/garantidas pelo próprio SGBD. Base de dados ------------------------------------------------------------- 4 Tipo de Integridade: • integridade de domínio - impostas pelo domínio de cada atributo; • integridade de entidade - não existem duas instâncias de uma relação cujas chaves primárias tenham o mesmo valor. • integridade de referência - o valor de qualquer chave estrangeira de uma relação é um valor da chave primária da relação que refere Base de dados ------------------------------------------------------------------------------- 3 5 Integridade de Domínio (domínio de um atributo) Os valores de cada atributo pertencem a um mesmo domínio; Principais Tipos de Dados em ORACLE: • char (tamanho) – Dados tipo texto de tamanho fixo; • varchar2 (tamanho) – Dados tipo texto de tamanho variável; • date – Data (incluindo hora); • Number (P, E) – Numérico onde P é a precisão e E é a escala. • Number (num) – Numérico inteiro com num dígitos= num Base de dados ------------------------------------------------------------------------------- 6 Integridade de entidade Chave primária - de uma relação é um subconjunto mínimo de atributos cujos valores permitam identificar de modo único cada uma das instâncias dessa relação. • Cada relação tem obrigatoriamente que ter uma Chave Primária • A Chave Primária tem um valor único na relação • O valor de uma chave primária (ou mesmo de uma parte dela) não pode ser NULL; Base de dados ------------------------------------------------------------------------------- 4 7 Integridade de entidade: Chave Candidata • É um atributo, ou um conjunto de atributos, que não estando definidos como Chave Primária, identificam univocamente um registo (são únicos – Unique Constraints); • A Chave Candidata pode ser vista como uma regra na base de dados; Databases ------------------------------------------------------------------------------- NumAluno Nome cod_curso NCC 12345 Ana Maria 9119 75865890 1123 Artur Pereira 9119 09403493 567 Rui Silva 9119 98549850 456 Rita Martins 9119 76476225 8 Integridade de referência • Uma chave estrangeira de uma relação é um conjunto de atributos que é chave primária de outra relação. • O valor de uma chave estrangeira ou é vazio ou então o seu valor tem que existir na relação onde a chave é primária senão, não existirá correspondência. • Por outras palavras, a relação não deverá conter nenhum valor nas suas chaves estrangeiras que não tenha a devida correspondência. Base de dados ------------------------------------------------------------------------------- 5 9 Exemplo: tabelas aluno, curso e tipocurso Base de dados ------------------------------------------------------------------------------- NumAluno Nome codCurso NBI 12345 Ana Maria 9119 75865890 1123 Artur Pereira 9111 09403493 567 Rui Silva 9111 98549850 456 Rita Martins 9999 76476225 CodCurso SIGLA Tipo nome 9119 EI 1 Engenharia Informática 9111 ECGM 1 Eng da Computação Gráfica e Multimédia 9999 ES 2 Engenharia de Software Tipo Descrição 1 Licenciatura 2 Mestrado 10 Integridade de referência • As chaves estrangeiras são a principal razão para falarmos de Modelo Relacional. • Nos SGBD relacionais, para representar as associações existentes entre as várias entidades utilizam-se esquemas de relações em que figuram atributos comuns. Base de dados ------------------------------------------------------------------------------- 6 11 Outro tipo de restrições de integridade (Constraint) no ORACLE • Constraints NULL – Pode obrigar o preenchimento dos valores da coluna; • Constrainst UNIQUE – permite indicar que o valor de uma (ou conjunto de colunas) não se repete. • Constraints Check()- permite validar os valores dos dados introduzidos numa coluna. Por ex. verificar que os valores de um campo notaFinal de uma disciplina se encontra entre 1 e 20. Base de dados ------------------------------------------------------------------------------- 12 Base de dados ------------------------------------------------------------------------------- 7 13 Exercício: Suponha o seguinte esquema de tabelas. TipoCurso(codTipo, descricao, TotECTS) Curso(codCurso, nome, sigla, codtipo) Aluno(numAluno, nome, email, telefone, rua, nPorta, cPostal, dtInscricao, NIF, NBI, codCurso) CodPostais(cPostal, localidade) 1. Crie um novo user e uma nova connection. 2. Crie as tabelas, tendo em atenção: a. As chaves primárias tendo em conta que o numAluno é gerado sequencialmente. b. A chaves estrangeiras. c. Os campos SIGLA (curso), NIF e NBI do aluno não se podem repetir, assim como a localidade do cPostal. d. O totECTS de um curso deve ser superior a 90 e inferior a 200. Base de dados ------------------------------------------------------------------------------- 14 Alguns aspetos do Modelo Relacional: • Os nomes (ou identificadores) dos atributos que constituem o esquema de uma relação são únicos nessa relação. • Podem existir instâncias sem valores em alguns dos seus atributos; neste caso o atributo diz-se opcional e o seu valor pode ser NULL; • A manipulação de dados trabalha com a tabela, e não registo a registo. • As operações de SQL são sobre tabelas. Base de dados ------------------------------------------------------------------------------- 8 15 Exercise: Resolver o exercício Gestão de uma Livraria. Databases ------------------------------------------------------------------------------- 16 Referências: SQL Structured Query Language, 13ª edição, Luís Damas, FCA – Editora de Informática, ISBN 978-972-722-443-2 Database System Concepts, 5th Edition Abraham Silberschatz, Henry F. Korth and S. Sudarshan McGraw Hill, 2005 ISBN 0-07-124476-X
Compartilhar