Banco de Dados
Parte 3
Profa. Ana Karina Barbosa
Abril/2008
Modelo Relacional
Definido por E. F. Codd em 1970, teve
sua grande aceitação comercial a partir
de meados da década de 1980.
Razões da grande aceitação:
Simplicidade dos conceitos básicos.
Poder dos operadores de manipulação.
Fundamentação matemática.
Modelo Relacional
Banco de Dados Relacional
Coleção de tabelas (ou relações), cada qual designada
por um único nome.
Tabelas
Conjunto não ordenado de linhas (tuplas), onde cada
linha é composta por uma série de campos (valor de
atributo).
Cada campo é identificado por um nome de campo
(nome de atributo).
O conjunto de campos das linhas de uma tabela que
possuem o mesmo nome formam uma coluna.
Modelo Relacional
nome do campo
Tabela Empregado
CódigoEmp
E5
E3
E2
E1
Nome
Souza
Santos
Silva
Soares
linha (tupla)
coluna (atributo)
CodDepto
D1
D2
D1
D1
(nome do atributo)
CategFuncional
C5
C5
C2
valor do campo
(valor do atributo)
Modelo Relacional
Tabela em um BD relacional X Arquivo
As linhas de uma tabela não tem ordenação e não
é possível referenciar linhas de uma tabela por
posição. Em arquivos convencionais, o
programador tem controle sobre a ordem de
armazenamento e pode referenciar registros por
sua posição dentro do arquivo.
Os valores de campo de uma tabela são atômicos
e monovalorados. Em arquivos convencionais,
campos podem ser compostos por outros campos
e campos podem ser multivalorados.
Modelo Relacional
Tabela em um BD relacional X Arquivo
Em arquivos convencionais, para buscar
registros com base em valores de seus
campos de forma rápida é usualmente
necessário algum tipo de caminho de
acesso, como um índice ou cadeia de
ponteiros. Caminhos de acesso também
existem em BDs relacionais, mas não são
visíveis pelos programadores.
Modelo Relacional
Chaves
Identifica linhas e estabelece relações
entre linhas de tabelas de um banco de
dados.
Tipos de chaves
• Primária
• Estrangeira
Modelo Relacional
Chave Primária
Uma coluna ou uma combinação de colunas cujos
valores distinguem uma linha das demais dentro de uma
tabela.
Tabela ALUNO
Matrícula
Nome
Endereço
Data_Nascimento
001
Ana Maria
R. da Hora
10/04/1985
002
Carlos Paes
Av. 17 de agosto
25/06/1991
A chave primária deve ser mínima, isto é, quando todas
suas colunas forem efetivamente necessárias para
garantir o requisito de unicidade.
Modelo Relacional
Chave Primária
Tabela PRATELEIRA
ID_corredor
Num_sequencial
Capacidade
A
1
30 livros
B
1
20 livros
A
2
50 livros
Modelo Relacional
Chave Estrangeira
É uma coluna, ou combinação de colunas,
cujos valores aparecem necessariamente na
chave primária de uma tabela.
A chave estrangeira é o mecanismo que
permite a implementação de relacionamentos
em um BD relacional.
Modelo Relacional
Chave Estrangeira
Tabela DEPARTAMENTO
Código
Nome_depto
D1
Compras
D2
Engenharia
Tabela FUNCIONÁRIO
Código
Nome
CPF
Departamento
001
Cézar Marins
657.987.677/23
D2
002
Ana Cavalcanti
234.789.088/90
D1
Modelo Relacional
Observação sobre Chave Estrangeira:
Impõe restrições que devem ser garantidas em
diversas situações de alteração do banco de
dados.
Restrições:
• Quando da inclusão de uma linha na tabela que
contém uma chave estrangeira.
• Quando da alteração do valor da chave estrangeira.
• Quando da exclusão de uma linha da tabela que
contém a chave primária referenciada pela chave
estrangeira.
Modelo Relacional
Observação sobre Chave Estrangeira:
Uma chave estrangeira pode referenciar a chave
primária da própria tabela.
Ex:
Tabela FUNCIONÁRIO
Códig
o
Nome
CPF
001
Teresa Batista
765.987.456/23
10-02-1970
D1
002
002
Carlos Davi
345.657.900/22
05-12-1960
DI
-
003
Cézar Marins
657.987.677/23
-
D2
-
07-08-1965
D1
002
004
Ana Cavalcanti 234.789.088/90
Data_Nasc FKDep.
FKGer.
Modelo Relacional
Domínios e Valores Vazios
Quando uma tabela é definida (Modelagem Lógica de
Dados/Abstração de Dados no Nível Lógico), deve ser
especificado um conjunto de valores (string(x),
number, ...) que os campos da respectiva coluna
podem assumir.
Além disso, deve ser especificado se os campos da
coluna podem estar vazios (null) ou não.
Em um SGBD relacional, todas as colunas que
compõem a chave primária devem ser obrigatórias.
Modelo Relacional
Especificando uma tabela
Ex: Tabela Funcionário
CAMPO
TIPO
NOT NULL
DESCRIÇÂO
Codigo
Integer
Not Null
Chave Primária
Nome
Varchar(20)
Not Null
Nome do funcionário
CPF
Varchar(14)
Not Null
Número do CPF
Data_Nasc
Date
Null
Data de Nascimento
FKDep
Char(2)
Not Null
Chave Estrangeira
Tabela Departamento
FKGer
Integer
Null
Chave Estrangeira
Tabela Funcionario
Modelo Relacional
Restrição de Integridade:
Um dos objetivos primordiais de um SGBD é a
integridade de dados.
Dados Íntegros em um BD:
Refletem corretamente a realidade representada
pelo banco e são consistentes entre si.
Para garantir integridade:
SGBDs oferecem mecanismos de restrição de
integridade.
Modelo Relacional
Categorias de Restrição de Integridade:
Integridade de domínio
• Especificam que o valor de um campo deve obedecer
a definição de valores admitidos para a coluna
(domínio da coluna).
• Nos SGBDs relacionais padrão SQL/2 é possível usar
apenas domínios pré-definidos como: Integer,
Float(x,y), String(x), Text, Date, Boolean,...).
• O usuário do SGBD não pode definir domínios
próprios como: o domínio dos dias da semana ou o
domínio da unidades da federação. Isso fica sob a
responsabilidade da aplicação.
Modelo Relacional
Categorias de Restrições de Integridade:
Integridade de vazio
• Especifica se os campos de uma coluna podem ou não
ser vazios (se a coluna é obrigatório ou não). Campos de
chave primária devem ser não vazios.
Integridade de chave
• Define que os valores da chave primária devem ser
únicos.
Integridade referencial
• É a restrição que define que os valores dos campos que
aparecem em uma chave estrangeira devem aparecer na
chave primária da tabela referenciada.
Modelo Relacional
Restrições de integridade não garantidas
pelos SGBDs
Restrições Semânticas
• Um empregado do departamento denominado
“Finanças” não pode ter a categoria funcional
“Engenheiro”.
• Um funcionário não pode ter um salário maior que
seu superior imediato.
Modelo Relacional
Modelagem Relacional: especificação de
um Banco de Dados relacional
Tabelas que formam o BD
Colunas que as tabelas possuem
Restrições de Integridade
Download

File