Explorar E-books
Categorias
Explorar Audiolivros
Categorias
Explorar Revistas
Categorias
Explorar Documentos
Categorias
SQL
Objetivos
Independência de dados
ordem
indexação
caminhos de acesso
Reduzir insconsistências
regras de projeto (normalização)
Modelo Relacional
Informal
Uma base de dados vista pelos usuários como um
conjunto de tabelas (e nada além de tabelas)
Formal
Aplicação de princípios matemáticos
Relação (subconjunto do produto cartesiano de conjuntos)
Álgebra Relacional
Modelo Relacional : Formal
DOMÍNIO
RELAÇÃO TUPLA
Definições
Domínio
conjunto de valores atômicos
Relação
Dados os conjuntos S1, S2, .., Sn (não
necessariamente distintos), R é uma relação nestes
n conjuntos se ele é um conjunto de tuplas <v1,
v2, ..., vn> onde v1 S1, v2 S2, ... e vn Sn.
A relação R é um subconjunto do produto cartesiano
S1 X S2 X ... X Sn.
Banco de Dados Relacional
Esquema
Definição das relações
Instâncias (extensão)
Conjunto de tuplas que compõem as relacões
Para cada relação define-se, usando a DDL disponível:
nome
atributos
restrições de integridade
chave primária, chave alternativa
chave estrangeira
valores nulos
dependentes do UdD
DDL e DML
Data Definition Language (DDL) – Comandos definem estrutura ou
esquema do banco de dados. Exemplos:
CREATE
ALTER
DROP
TRUNCATE
COMMENT
RENAME
Integridade de Identidade
Chave primária
Chave alternativa
Chave estrangeira
Valor nulo
Integridade Referencial
Integridade de Identidade :
Conceitos
Integridade de Identidade
Nenhum atributo que participe de uma chave candidata de uma
relação pode assumir valor nulo
Valor nulo (NOT NULL)
Tuplas incompletas
Chave Candidata
Grupo mínimo de atributos tal que a combinação de valores
assumida por este grupo corresponde a no máximo uma tupla
Chave Primária (PRIMARY KEY)
Uma entre as chaves candidatas
Selecionada pelo projetista por conveniencia de desempenho
Uma relação possui uma e somente uma chave primária
Chave Alternativa (UNIQUE)
Toda chave candidata que não for chave primária
SQL92
Código Nome
4620 Fundamentos da Computação
4622 Computação Aplicada
Foreign Keys:
Empregado
Depto Departamento.Código Código Nome Depto Superior
Superior Empregado.Código
1 Ir. Clotet
2 Avelino 4620 1
3 Rodrigo 4622 2
R-PK = Código S-FK = Superior
Integridade Referencial:
Anomalias de Atualização
As atualizações na base de dados podem
causar violações da integridade referencial
Integridade Referencial:
Anomalias de Atualização
Enunciado :
Sejam R e S duas relações.
R-PK a chave primária de R
S-FK uma chave estrangeira em S que corresponde à R-PK de
R.
Seja v(t, k) uma função, onde t é uma tupla, e k um conjunto
de um ou mais atributos, e que designe o valor do(s)
atributo(s) k de uma tupla t.
Inclusão:
se uma tupla ts é inserida em S, o sistema precisa assegurar
uma das opções abaixo:
existe uma tupla tr em R tal que v(tr, R-PK) = v(ts, S-FK)
v(ts, S-FK)= NULL
possível somente se S-FK admitir valores nulos
Integridade Referencial:
Trocando em miúdos
Departamento Primary Key = Código
Código Nome
4620 Fundamentos da Computação
4622 Computação Aplicada
Foreign Keys:
Empregado
Depto Departamento.Código Código Nome Depto Superior
Superior Empregado.Código
1 Ir. Clotet
2 Avelino 4620 1
3 Rodrigo 4622 2
R-PK = Código S-FK = Superior
Integridade Referencial:
Anomalias de Atualização
Remoção:
se uma tupla tr é removida de R, o sistema precisa
computar o conjunto de tuplas tsi de S (i >= 0), onde
é verificada a propriedade v(tr, R-PK) = v(tsi , S-FK).
Se o conjunto não for vazio, as alternativas são:
a supressão de tr é proibida
suprime-se TAMBÉM todas as tuplas tsi do conjunto
(EFEITO CASCATA !!)
deve-se substituir TAMBÉM o valor de S-FK em cada tupla
tsi por NULL (DEPENDE DA DEFINIÇÃO DE S-FK)
Integridade Referencial:
Trocando em miúdos
Departamento Primary Key = Código
Código Nome
4620 Fundamentos da Computação
4622 Computação Aplicada
Foreign Keys:
Empregado
Depto Departamento.Código Código Nome Depto Superior
Superior Empregado.Código
1 Ir. Clotet
2 Avelino 4620 1
3 Rodrigo 4622 2
R-PK = Código S-FK = Superior
Integridade Referencial:
Anomalias de Atualização
Alteração da S-FK (relação referenciadora S):
Semelhante à inserção de tuplas em S
Alteração da R-PK (relação referenciada R):
Deve-se computar o conjunto de tuplas ts i de S, onde
a propriedade v(tr, R-PK) = v(ts i , S-FK) é verificada.
Se o conjunto não for vazio, as alternativas são:
deve-se proibir a modificação
altera-se TAMBÉM o valor de S-FK em todas as tuplas tsi do
conjunto;
deve-se TAMBÉM substituir o valor de S-FK por NULL em
todas tuplas tsi
DEPENDE DA DEFINIÇÃO DE S-FK
Integridade Referencial:
Trocando em miúdos
Departamento Primary Key = Código
Código Nome
4620 Fundamentos da Computação
4622 Computação Aplicada
Foreign Keys:
Empregado
Depto Departamento.Código Código Nome Depto Superior
Superior Empregado.Código
1 Ir. Clotet
2 Avelino 4620 1
3 Rodrigo 4622 2
R-PK = Código S-FK = Superior
Manutenção de Restrições de
Integridade
Restrições de Integridade do Modelo Relacional estruturam-se em termos de estados consistentes da base de dados
Os modelos mais expressivos são aqueles que deixam expressar de forma declarativa, junto ao esquema, as políticas de manutenção de R.I. adotadas pela corporação
E1 operação E2
(consistente) (consistente)
rejeitar ! compensar !
SQL92
Definição de Chave estrangeira
nulo
SET DEFAULT: o valor da chave estrangeira é ajustado para o
<definição restrição>::=
<padrão>| <nomeada>
<nomeada>::=
CONSTRAINT <nome><padrão>