BD2.Relacional-nup
Transcrição
BD2.Relacional-nup
Modelo Relacional Modelo Relacional n n n Bancos de Dados I Altigran Soares da Silva IComp/UFAM - 2013/02 n Modelo de dados mais utilizado em BDs Serve de base para a grande maioria dos SGBDs existentes hoje no mercado. Simples, estrutura uniforme Baseado em conceitos matemáticos da teoria de conjuntos. Adaptado dos Slides do Professor Jeffrey Ullman Origem n Inventado por Edgar F. Codd Modelo Relacional n n Álgebra relacional: Operações sobre os BDs SQL Structured Query Language q q n Mantido e desenvolvido por Chris Date e Hugh Darwen dentre outros q LDD/LMD padrão Simples e expressiva Padrões n n n q SQL2 - 1992 SQL:1999 SQL:2003 Fabricantes implemetam dialetos Modelo Relacional e Projeto de BD n n n Alvo da fase de Projeto Lógico Usaremos uma variação “neutra” da SQL Revisão: q q q q Conceitos Básicos Restrições de integridade básicas Restrições de integridade avançadas SQL LDD e definição de restrições Conceitos Básicos Tabelas ou Relações Esquema : Nome, Atributos Instância Linhas ou Tuplas Produto Código BAN1 BAN2 SUP1 SUP2 Nome Bancada Gr. Bancada Pq. Buporte Gr. Buporte Pq. Material Código 123 124 345 346 347 789 790 791 Descrição Parafuso Parafuso Tampa de madeira Tampa de madeira Tampa de madeira Haste metálica Haste metálica Haste metálica CodSub 791 - Insumo CodPro BAN1 BAN1 BAN1 BAN1 BAN2 BAN2 BAN2 BAN2 SUP1 SUP1 SUP1 SUP2 SUP2 SUP2 CodMat Quant 123 6 124 6 345 1 789 4 123 3 124 3 346 1 789 4 123 8 347 1 790 4 124 8 347 1 790 4 Atributos: Nome, Domínio, Nulos Conceitos Básicos n n Domínios de Atributos: Conjunto de valores que o atributo pode assumir Os domínios comuns: n q q date (data) n q n n integer (números inteiros) char (lista de caracteres) float (números reais) q n Conceitos Básicos Valor indefinido: null Valores são atômicos !! n Chaves : conjunto de atributos de uma relação que deve ter valor único dentre todas as tuplas. SGBD é responsável por garantir a unicidade dos seus valores entre as tuplas. Chaves Candidatas: Primária X Alternativas Um atributo que faz parte de uma chave é chamado de atributo primo. Conceitos Básicos n Esquema de uma relação: q q q n n n n SQL LDD CREATE TABLE Projeto VARCHAR(15) NOT NULL, ( Nome INT NOT NULL, Numero VARCHAR(15), Local PRIMARY KEY (Numero), UNIQUE (Nome)); Nome Atributos com os respectivos domínios Chaves LDD: Usada para descrever o esquema SQL é em parte uma LDD Armazenado como meta-dados no catálogo Consistência: q CREATE TABLE Projeto ( Nome Numero Local CONSTRAINT CONSTRAINT VARCHAR(15) INT VARCHAR(15), ProjPK ProjAK NOT NULL, NOT NULL, PRIMARY KEY (Numero), UNIQUE (Nome)); Instâncias “respeitam” o esquema SQL LDD Restrições de Integridade - Nativas n CREATE TABLE Projeto ( Nome Numero Local Restrição de Domínio q VARCHAR(15) NOT NULL, INT NOT NULL, VARCHAR(15)); n Restrição de Chave q ... ALTER TABLE ALTER TABLE Projeto ADD CONSTRAINT ProjPK Projeto ADD CONSTRAINT ProjAK PRIMARY KEY (Numero); n n Não existem duas tuplas com o mesmo valor para uma chave Restrição de Entidade q UNIQUE (Nome); Todo atributo só assume valores de seu domínio Chaves primárias não pode assumir NULL Restrição de Valores Nulos q Garantia do “NOT NULL” Restrições de Integridade Referencial Instância de um BD Relacional Restrições de Integridade Referencial Restrições de Integridade Referências EMPLOYEE.SUPERSSN ⊆ EMPLOYEE.DNO WORKS_ON.ESSN ⊆ PROJECT.DNUM EMPLOYEE.SSN WORKS_ON.PNO ⊆ ⊆ PROJECT.PNUMBER EMPLOYEE.SSN ⊆ DEPARTMENT.DNUMBER DEPARTMENT.DNUMBER Integridade Referencial em SQL Dependências de Inclusão em SQL FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN) EMPLOYEE.DNO ⊆ DEPARTMENT.DNUMBER EMPLOYEE.SUPERSSN EMPLOYEE.SSN ⊆ DEPARTMENT.DNUMBER WORKS_ON.PNO ⊆ PROJECT.PNUMBER PROJECT.DNUM FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER) WORKS_ON.PSSN FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN) ⊆ ⊆ EMPLOYEE.SSN FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUMBER) FOREIGN KEY (DNO) REFERENCES DEPARTMENT(DNUMBER) FOREIGN KEY (PNO) REFERENCES PROJECT(PNUMBER) FOREIGN KEY (SUPERSSN) REFERENCES EMPLOYEE(SSN) FOREIGN KEY (DNUM) REFERENCES DEPARTMENT(DNUMBER) FOREIGN KEY (PNO) REFERENCES PROJECT(PNUMBER) FOREIGN KEY (ESSN) REFERENCES EMPLOYEE(SSN) SQL LDD com Integridade Referencial Dominios n Cadeia de caracteres (string) q q n Vetor de Bits q q n BIT(n): bit strings de tamanho n BIT VARYING(n): bit strings de tamanho até n BOOLEAN valores lógicos q n CHAR(n): string de n caracteres VARCHAR (n): string de até n caracteres Os valores possíveis: TRUE, FALSE, UNKNOWN INTEGER, FLOAT, DATE, TIME, … 20 Modificando Esquema Valores padrões (default) n ALTER TABLE MovieStar ADD phone CHAR(16); n n ALTER TABLE MovieStar DROP birthdate; n 21 Adicionando e Removendo Tuplas n Inserindo uma tupla simples: INSERT INTO StarsIn VALUES (‘The Maltese Falcon’, 1942, ‘Sydney Greenstreet’); n Removendo todas as tuplas que satisfazem uma condição: DELETE FROM StarsIn WHERE movieTitle = ‘The Maltese Falcon’ AND movie Year = 1942 AND starName = ‘Sydney Greenstreet’; 23 gender CHAR(1) DEFAULT ‘?’, birthdate DATE DEFAULT DATE ‘0000-00-00’ ALTER TABLE MovieStar ADD phone CHAR(16) DEFAULT ‘unlisted’; 22
Documentos relacionados
Solução da Primeira Prova
Foreign Key (CodP) References PEÇAS, Foreign Key (CPF) References ATOR, Foreign Key (Id) References PERSONAGEM)
Leia mais