Baixe o app para aproveitar ainda mais
Prévia do material em texto
Banco de Dados para Redes - Aula 3 Professor Daniel Silos - 3ª edição - 2014 dsilos@live.estacio.br Objetivos da aula O aluno estará apto a: -Definir restrição de integridade; -Nomear restrição de integridade. Restrição de Integridade •Restrições básicas – Podem ser definidas por comandos SQL como parte da criação de uma tabela. – Uso: impor regras no nível da tabela, sempre que uma operação for executada. – Impede que uma tabela seja removida, caso exista algum relacionamento com outra tabela. Restrição Descrição NOT NULL Coluna com preenchimento obrigatório PRIMAY KEY Identifica exclusivamente cada linha da tabela FOREIGN KEY Estabelece um relacionamento de chave estrangeira com um valor de uma coluna (chave primária ou exclusiva) existente na mesma tabela ou em outra tabela CHECK Especifica uma condição que deve ser verdadeira UNIQUE Requer que a coluna ou de um conjunto de colunas seja exclusivos Restrições básicas Exemplo: CREATE TABLE Curso ( idCurso NUMBER(3), PRIMARY KEY (idCurso) , Descricao VARCHAR2(30), CHECK (Descricao IS NOT NULL) ); Exemplo: CREATE TABLE Curso ( idCurso NUMBER(3), Descricao VARCHAR2(30) NOT NULL, PRIMARY KEY (idCurso) ); Exemplo: CREATE TABLE Cargo ( idCargo NUMBER(3) , PRIMARY KEY (idCargo), Descricao VARCHAR2(30) NOT NULL , Salario_Min NUMBER(7,2) DEFAULT 700 CHECK (Salario_Min > 700) , Salario_Max NUMBER(18,2) DEFAULT 700 CHECK (Salario_Max > 700) , Escolaridade CHAR CHECK (Escolaridade IN ('F','M','S') ) ) ; Exemplo – Nomeando Restrições: CREATE TABLE Cargo ( idCargo NUMBER(3) , PRIMARY KEY (idCargo), Descricao VARCHAR2(30) NOT NULL , Salario_Min NUMBER(7,2) DEFAULT 700, CONSTRAINT salario_minimo CHECK (Salario_Min > 700) , Salario_Max NUMBER(18,2) DEFAULT 700 , CONSTRAINT salario_maximo CHECK (Salario_Max > 700) , Escolaridade CHAR CHECK (Escolaridade IN ('F','M','S') ) ) ; CREATE TABLE Empregado ( idEmpregado NUMBER(6) , Nome VARCHAR2(50) , idCargo NUMBER(3) , Endereco VARCHAR2(50), Bairro VARCHAR2(20), Cidade VARCHAR2(20), idChefe NUMBER(6), UF CHAR(2) DEFAULT 'RJ', DataNasc DATE, Sexo CHAR, Salario NUMBER(18,2) ) ; ALTER TABLE Empregado ADD CONSTRAINT PK_Empregado PRIMARY KEY (idEmpregado); ALTER TABLE Empregado ADD CONSTRAINT NN_Func_Nome CHECK (nome IS NOT NULL) ; ALTER TABLE Empregado ADD CONSTRAINT CK_Func_Sexo CHECK (Sexo IN ('M','F')) ; ALTER TABLE Empregado ADD CONSTRAINT CK_Func_UF CHECK (UF IN ('AM','AP','PA','AC','RO','RR','PI', 'CE', 'MA','RN','PE','PB','BA','SE','AL', 'MT', 'MS','GO','TO','DF','RS','SC','PR','RJ','SP','MG', 'ES' ) ); Restrição de Integridade ALTER TABLE Empregado ADD CONSTRAINT FK_Func_Cargo FOREIGN KEY (idCargo) REFERENCES Cargo (idCargo); Restrição de Integridade ALTER TABLE Empregado ADD CONSTRAINT FK_Func_Chefe FOREIGN KEY (idChefe) REFERENCES Empregado (idEmpregado); A partir deste momento o aluno está apto a resolver os exercícios da Lista de exercícios 2. Bibliografia – ELMASRI, R.; NAVATHE, S., Sistemas de Banco de Dados. Pearson Education do Brasil, 4ª.Ed 2005. – SILBERSCHATZ, Abraham; KORTH, Henry F; SUDARSHAN, S. A. Sistema de banco de dados. 5ª ed. Rio de Janeiro: Campus, 2006
Compartilhar