Modelo de Dados Relacional Roteiro BCC321

Propaganda
Roteiro
Modelo de Dados Relacional
Luiz Henrique de Campos Merschmann
Departamento de Computação
Universidade Federal de Ouro Preto
[email protected]
www.decom.ufop.br/luiz
Posicionamento
Introdução
Conceitos do Modelo Relacional
Restrições do Modelo Relacional
Operações de Atualização e Tratamento de Violações de
Restrição
BCC321 - Banco de Dados I
Ementa
1. Conceitos básicos em sistemas de banco de dados.
2. Conceitos e arquitetura de sistemas de banco de dados.
3. Modelagem conceitual de dados.
4. Modelo Relacional: conceitos básicos e restrições de
integridade.
5. Linguagens: álgebra e cálculo relacional.
6. A linguagem SQL e o uso de APIs.
7. Projeto de banco de dados.
8. Normalização de banco de dados.
9. Noções de processamento de transações, concorrência e
recuperação de falhas.
10. Aspectos de implementação de banco de dados.
Processo de Projeto de Banco de Dados
Introdução
Introdução
SGBDs relacionais populares:
I
Introduzido por Ted Codd, da IBM Research, em 1970.
I
O modelo usa o conceito de uma relação matemática como
seu bloco de construção básica.
I
DB2 e Informix Dynamic Server – da IBM.
I
Oracle e Rdb – da ORACLE.
I
Tem sua base teórica na teoria dos conjuntos.
I
Sybase SGBD – da SYBASE.
I
Primeiras implementações comerciais do modelo relacional:
início dos anos 80.
I
SQLSever e Access – da MICROSOFT.
I
PostgreSQL e MySQL – código aberto.
Conceitos do Modelo Relacional
I
I
O modelo relacional representa o banco de dados como uma
coleção de relações.
Informalmente: relação = tabela de valores.
I
I
Cada linha da tabela representa um fato que corresponde a
uma entidade ou relacionamento do mundo real.
Os nomes das colunas especificam como interpretar os
valores de dados em cada linha.
Conceitos do Modelo Relacional
I
Cada linha de uma relação (tabela) = tupla.
I
Cabeçalho de uma coluna = atributo.
I
Conjunto de valores que podem aparecer em cada coluna =
domínio.
Conceitos do Modelo Relacional
Conceitos do Modelo Relacional
Domínio
I
É um conjunto de valores atômicos.
I
Um domínio tem uma definição lógica.
Exemplos:
I
I
I
Numeros_fone_local: conjunto de números de telefone de
oito dígitos.
Nomes_departamentos: conjunto dos nomes dos
departamentos acadêmicos de uma universidade.
Um domínio também tem um tipo de dado e formato.
Exemplo:
I
Esquema de Relação
I
I
Usado para descrever uma relação.
Indicado por R(A1 , A2 , . . . , An ), onde:
I
I
I
I
R é o nome da relação.
A1 , A2 , . . . , An é a lista de atributos.
n é o grau (ou aridade) da relação.
Exemplo:
ALUNO(Nome, CPF, Fone, Endereço, Idade)
Numeros_fone_local: o tipo de dados pode ser uma
sequência de caracteres no formato (dd)dddd − dddd, em
que cada d é um dígito numérico.
Conceitos do Modelo Relacional
Características das Relações
Ordenação de Tuplas em uma Relação
Relação r do esquema de relação R(A1 , A2 , . . . , An ) (ou
estado da relação)
I
I
Relação = conjunto de tuplas.
I
Matematicamente, os elementos de um conjunto não tem
ordem entre eles, portanto as tuplas de uma relação não
têm qualquer ordem em particular.
I
Já em um arquivo, os registros são fisicamente
armazenados, então, sempre há uma ordem entre os
registros.
I
Analogamente, quando exibimos uma relação em uma
tabela, as linhas são exibidas em uma certa ordem.
I
A ordenação de tupla não é parte da definição de uma
relação.
Indicado por r(R).
I
I
I
I
É um conjunto de n-tuplas r = {t1 , t2 , . . . , tm }.
Cada n-tupla t é uma lista ordenada de n valores
t =< v1 , v2 , . . . , vn >.
O i-ésimo valor na tupla t, que corresponde ao atributo Ai é
referido como t[Ai ] ou t[i].
r(R) ⊆ (dom(A1 ) × dom(A2 ) × . . . × dom(An ))
Características das Relações
Restrições do Modelo Relacional
Restrições são condições que devem ser atendidas em todos os
estados válidos do banco de dados.
Ordenação de Valores Dentro de uma Tupla
I
I
Uma tupla é uma lista ordenada de valores.
Cada valor em uma tupla é um valor atômico.
I
I
As restrições podem ser divididas em três categorias
principais:
I
Restrições inerentes baseadas em modelo (relacional).
I
Restrições baseadas em esquema: podem ser expressas nos
esquemas do modelo de dados.
I
Restrições baseadas em aplicação: restrições que não
podem ser expressas diretamente nos esquemas do modelo
de dados e, por isso, devem ser impostas pelos programas
de aplicação.
I
Atributos compostos e multivalorados não são permitidos.
Valores nulos (nulls) são usados para representar os valores
de atributos que podem ser desconhecidos ou não se aplicar
a uma tupla.
Restrições do Modelo Relacional
Restrições de Domínio
I
Restrições baseadas em esquema:
I
Restrições de domínio.
I
Restrições de chave.
I
Restrições de integridade de entidade.
I
Restriçoes de integridade referencial.
Ex.: Uma relação não pode ter tuplas repetidas.
I
Especificam que dentro de cada tupla o valor do atributo A
deve ser um valor atômico do domínio dom(A).
Os tipos de dados associados aos domínios incluem:
I
I
I
I
I
I
Numéricos: inteiros e reais.
Caracteres.
Booleanos.
Cadeias de caracteres de tamanho fixo e tamanho variável.
Data.
Hora.
Restrições de Chave e em Valores Null
Uma relação é um conjunto de tuplas. Portanto, todas as tuplas
da relação devem ser distintas.
Superchaves do esquema de relação R
I
São subconjuntos de atributos SK de um esquema de
relação R, onde:
I
I
I
Duas tuplas, em qualquer estado r de R, não podem ter o
mesmo valor para SK.
Ou seja, para quaisquer tuplas distintas t1 e t2 em r(R),
t1 [SK] 6= t2 [SK].
Toda relação tem, pelo menos, uma superchave default.
Chave do esquema de relação R
I
É uma superchave mínima.
I
Ou seja, uma superchave da qual não podemos remover
quaisquer atributos e ainda manter a restrição de unicidade.
Restrições de Chave e em Valores Null
I
Um esquema de relação pode ter mais de uma chave (cada
uma delas é chamada de chave candidata).
I
Se um esquema de relação tiver mais de uma chave
candidata, uma delas é escolhida para ser a chave
primária da relação.
Exemplo: CARRO{Placa, NumeroChassi, Marca, Modelo,
Ano}
I
I
I
Chaves candidatas? {Placa} e {NumeroChassi}
Escolhemos, por exemplo, {Placa} como chave primária.
I
Os valores da chave primária são usados para identificar
tuplas na relação.
I
Geralmente é melhor optar por uma chave primária com um
atributo único ou com um número pequeno de atributos.
I
Outra restrição nos atributos: especificar se valores nulos
são ou não permitidos.
Restrições de Chave e em Valores Null
Exemplo: Considere o seguinte esquema de relação CARRO
I
CARRO{Placa, NumeroChassi, Marca, Modelo, Ano}
Superchaves de CARRO:
I
{Placa, Marca} é uma superchave, mas não é chave.
I
I
I
{Placa, Marca}
{NumeroChassi}
Em geral:
I
Toda chave é uma superchave (o contrário não é
verdadeiro).
I
Qualquer conjunto de atributos que inclua uma chave é
uma superchave.
Relação CARRO com Duas Chaves Candidatas
Esquema de um Banco de Dados Relacional
I
Um esquema de banco de dados relacional S é:
I
Exemplo:
I
I
Um conjunto de esquemas de relação S = {R1 , R2 , . . . , Rm }.
Um conjunto de restrições de integridade I.
Integridade de Entidade e Integridade Referencial
I
I
EMPRESA={FUNCIONARIO,DEPARTAMENTO,LOCALIZACAO_DEP,
PROJETO,TRABALHA_EM,DEPENDENTE}
A restrição de integridade de entidade estabelece que
nenhum valor de chave primária pode ser nulo.
A restrição de integridade referencial:
I
I
I
Envolve duas relações.
É usada para manter a consistência entre as tuplas nas duas
relações. Ex.: Dnr de FUNCIONARIO x Dnumero de
DEPARTAMENTO.
Um conjunto de atributos F K é uma chave estrangeira
do esquema da relação R1 , que faz referência à relação R2 ,
se satisfizer:
1. Os atributos F K têm o mesmo domínio dos atributos da
chave primária P K do esquema R2 .
2. t1 [F K] = t2 [P K], onde t1 é uma tupla de R1 e t2 é uma
tupla de R2 OU t1 [F K] é nulo.
I
Restrição de Integridade Referencial
Se as duas condições acima forem asseguradas, então existe
uma restrição de integridade referencial de R1 para R2 .
Restrição de Integridade Referencial
I
A restrição de integridade referencial pode ser expessa pela
notação
R1 [F K] → R2 [P K]
I
onde F K é a chave estrangeira de R1 e P K é a chave
primária de R2 .
Exemplos:
I
I
I
FUNCIONARIO[Dnr]→DEPARTAMENTO[Dnumero]
TRABALHA_EM[Fcpf]→FUNCIONARIO[Cpf]
TRABALHA_EM[Pnr]→PROJETO[Projnumero]
Outros Tipos de Restrições
I
As restrições mencionadas até aqui estão incluídas na DDL,
pois ocorrem na maioria das aplicações de BD.
I
No entanto, não estão incluídas restrições mais gerais
(restrições de integridade semântica).
Exemplos:
I
I
I
I
O salário de um funcionário não deve ser maior do que o do
seu supervisor.
Um funcionário pode trabalhar no máximo 56 horas por
semana em todos os projetos.
I
I
I
Fornece uma lista de valores de atributos para uma nova
tupla t, que é inserida em uma relação R.
I
Exemplo:
Inserir<’Alicia’,’F’,’Zelaya’,’999887777’,’05-04-1960’,’Rua
Souza Lima, 46, Belém, PA’,F,2800,’987654321’,4> em
FUNCIONARIO
Pode violar as seguintes restrições:
I
I
I
I
Restrições de domínio.
Restrições de chave.
Restrição de integridade de entidade.
Restrição de integridade referencial.
Se uma inserção violar restrição(ões), a opção default é
rejeitar a inserção.
As operações do modelo relacional podem ser classificadas
em recuperações e atualizações.
Há três operações básicas de atualização:
I
I
I
I
em programas de aplicação que atualizam o BD.
usando uma linguagem de especificação de restrição (SQL).
Operação Inserir
I
I
Essas restrições podem ser especificadas:
I
I
Operações de Atualização e Tratamento de
Violações de Restrição
Inserir
Excluir
Alterar (ou Modificar)
Quando essas operações são aplicadas, as restrições de
integridade especificadas no esquema do banco de dados
relacional não devem ser violadas.
Operação Excluir
I
I
Essa restrição pode violar apenas a restrição de integridade
referencial.
Opções disponíveis caso uma operação de exclusão cause
violação:
I
I
I
I
Rejeitar a exclusão.
Exclusão em cascata.
Modificar os valores dos atributos de referência (receberiam
nulo ou modificados para referir outra tupla válida).
Em geral, o SGBD permite ao usuário especificar quais
opções se aplicam no caso de uma violação.
Operação Modificar
Perguntas?
I
I
Usada para mudar valores de um ou mais atributos em uma
tupla.
Pode violar as seguintes restrições:
I
I
I
I
Restrições de domínio.
Restrições de chave.
Restrição de integridade de entidade.
Restrição de integridade referencial.
I
As opções para tratar as violações são as mesmas discutidas
para as operações de inserção e exclusão.
I
Para violações de integridade referencial, o SGBD permite
ao usuário escolher quais opções devem ser usadas para
tratar uma violação.
FIM
Download