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

Solução da Primeira Prova Foreign Key (CodP) References PEÇAS, Foreign Key (CPF) References ATOR, Foreign Key (Id) References PERSONAGEM)

Leia mais