2008.1
Modelo Relacional
Renata Viegas
2008.1
Introdução - MR
• Um banco de dados relacional é composto por um
conjunto de tabelas ou relações, cada uma das
quais com um nome único.
– A terminologia tabela é mais comum nos produtos
comerciais e na prática.
– Já a terminologia relação foi utilizada na literatura original
sobre a abordagem relacional e é mais comum na área
acadêmica.
2008.1
Introdução - MR
Os dados são representados em forma de
tabelas (relações), através de linhas
(tuplas) e colunas (atributos), com os
possíveis valores (domínio) definido.
2008.1
Introdução
• Uma tabela é um conjunto não-ordenado de
linhas (tuplas, na terminologia acadêmica)
– Cada linha é composta por uma série de campos,
ou atributos.
• Cada linha de uma tabela representa um
relacionamento entre um conjunto de
valores.
2008.1
Introdução
• Cada campo é identificado por nome do
campo (ou atributo)
• O conjunto de campos das linhas de uma
tabela que possuem o mesmo nome formam
uma coluna.
2008.1
nome do campo
nome do atributo
Código
001
002
003
coluna, atributo, campo
Nome
José
Antonio
Ana
linha, tupla, registro
Fone
222.1234
224.1212
235.4859
valor do campo
valor do atributo
tabela
relação
Estado
PE
PB
RN
2008.1
Conceitos do Modelo Relacional...
2008.1
Chave Primária
• Atributo ou conjunto de atributos que identifica
cada linha em uma tabela de forma única.
– Cada tabela deverá possuir uma única chave primária.
– A chave primária não admite repetição de valores.
– É utilizada como referência para outras tabelas.
2008.1
Código
Código
001
001
Nome
José
Fone
222.1234
Estado
PE
002
002
003
003
Antonio
Ana
224.1212
235.4859
PB
RN
Pedido
Pedido
001
001
001
001
002
002
002
002
002
002
003
003
Produto
Produto
A53
A53
C47
C47
N74
N74
A53
A53
G05
G05
N74
N74
Preço
12,00
15,00
27,00
15,00
51,00
29,00
Quant
27
5
12
7
2
8
Tabela
CLIENTE
Tabela
ITENS DE
PEDIDO
2008.1
Chave Estrangeira
• Chave primária de uma tabela presente em uma
outra para estabelecer uma conexão entre as duas.
• A chave estrangeira é o mecanismo pelo qual
implementam-se os relacionamentos em um banco
de dados relacional.
• Impõe restrições de integridade referencial que
devem ser garantidas na alteração do banco de
dados
2008.1
Funcionário
Código
Nome
Fone
Setor
Função
Função
001
001
002
002
003
003
004
004
José
222.1234
S1
F1
F1
Antonio
224.1212
Ana
235.4859
S2
S1
S1
F2
F2
F2
F2
Bruna
247.9806
S3
S3
F3
F3
Código
Descrição
Código
Descrição
S1
Compras
F1
Gerente
S2
Vendas
Técnico
S3
Pessoal
F2
F3
F3
Setor
Assessor
Função
2008.1
Modelo Relacional
A
R1
B
R2
R3
C
D
REGRAS
Modelo E-R
Define os dados que vão
compor o banco de dados.
Regras
Definem a passagem do
modelo E-R para o
Relacional
Modelo Relacional
Representação dos dados
em forma de tabelas.
2008.1
REGRAS !!
2008.1
Modelo Relacional
• Regras Gerais
– Entidade  Tabela
– Atributo  Coluna
– Relacionamento  Tabela ou Chave Estrangeira
– Generalização/Especialização  Tabelas
2008.1
Modelo Relacional
• Entidade  Tabela
– Toda entidade se transforma em uma tabela, e seus
atributos serão as colunas
2008.1
Modelo Relacional
PRODUTO (código, ref, desc, quant, preço)
código
código
ref
desc
quant
preço
2008.1
Modelo Relacional
• Atributo Simples ou Chave  Coluna
– Todo atributo simples deve ser incluído como uma coluna
da tabela correspondente à entidade à qual ele está
ligado
• Atributo Composto  Tabela + Chave da Entidade
– Todo atributo composto se transforma numa tabela, e
seus sub-atributos serão as colunas
– Uma das colunas da tabela deve ser a chave da entidade
à qual o atributo está ligado (Chave Estrangeira)
2008.1
Modelo Relacional
• Atributo Multivalorado  Tabela + Chave da
Entidade
– Todo atributo multivalorado se transforma numa
tabela, e uma das colunas deve ser a chave da
entidade à qual o atributo está ligado (Chave
Estrangeira)
2008.1
Modelo Relacional
CLIENTE (CPF, nome, dataNasc)
ENDEREÇO(CPF, rua, complemento)
2008.1
Modelo Relacional
• Relacionamento N : N  Tabela + Chaves
das entidades
– Todo relacionamento N:N se transforma numa
tabela, onde seus atributos (se houver) serão as
colunas
– As
chaves
das
entidades
ligadas
ao
relacionamento
também
devem
ser
acrescentadas
como
colunas
(Chaves
Estrangeiras)
2008.1
(1,N)
ALUNO
CURSA
(1,N)
DISCIPLINA
ALUNO (código, nome)
DISCIPLINA (código, nome)
Aluno_Discp (aluno, disc)
aluno referencia ALUNO
disc referencia DISCIPLINA
2008.1
Modelo Relacional
• Relacionamento N : 1 sem atributos  Chave da
Entidade 1 na Tabela da Entidade N
– Os relacionamentos N:1 que não têm atributos não se
transformam em tabelas
– A chave da entidade que está na extremidade 1 do
relacionamento deve ser incluída como coluna na tabela
da entidade que está na extremidade N (Chave
Estrangeira)
2008.1
(1,1)
(1,N)
EMPREGADO
LOTADO
DEPARTAMENTO
EMPREGADO (cod_emp, nome, cod_dept)
DEPARTAMENTO (cod_dept, nome)
2008.1
Modelo Relacional
• Relacionamento N : 1 com atributos  Tabela com
chaves das duas entidades
– Todo relacionamento N:1 com atributos se transforma
numa tabela, onde seus atributos serão as colunas
– As chaves das entidades ligadas ao relacionamento
também devem ser acrescentadas como colunas (Chaves
Estrangeiras)
2008.1
horas
EMPREGADO
(1,N)
(1,1)
LOTADO
DEPARTAMENTO
EMPREGADO (cod_emp, nome)
DEPARTAMENTO (cod_dept, nome)
LOTAÇÃO (cod_emp, cod_dept, horas)
2008.1
Modelo Relacional
• Generalização / Especialização com muitos atributos
em comum  Tabela para Entidade Superior +
Tabelas para Entidades Inferiores com Chave da
Entidade Superior
– É criada uma tabela para a entidade mais genérica, onde
cada atributo vira uma coluna
– Para cada entidade especializada, é criada uma tabela
com uma coluna para cada atributo e uma coluna com a
chave da entidade mais genérica (Chave Estrangeira)
2008.1
SERVIDOR
FUNCIONARIO
PROFESSOR
SERVIDOR (rg, nome, endereço, telefone, sexo, tipo)
FUNCIONARIO (rg, função)
PROFESSOR (rg, titulação, categoria)
2008.1
Modelo Relacional
• Generalização / Especialização com poucos atributos
em comum  Tabelas para Entidades Inferiores
com Atributos da Entidade Superior
– Para cada entidade especializada, é criada uma tabela
com uma coluna para cada atributo da entidade e uma
coluna para cada atributo da entidade superior
– Não há ligação entre as tabelas
2008.1
rg
SERVIDOR
FUNCIONARIO
nome
PROFESSOR
FUNCIONARIO (rg, nome, função)
PROFESSOR (rg, nome, titulação, categoria)
2008.1
Modelo Relacional
• Agregação  Tabelas para cada Entidade + Tabelas
para cada Relacionamento
– A agregação deve ser vista como dois relacionamentos
separados
– A representação de cada relacionamento dependerá da
cardinalidade e da presença/ausência de atributos,
conforme visto nas regras para relacionamentos
2008.1
(1,1)
OFICINA
TEM
(1,N)
FUNCIONÁRIO
(0,N)
OFERECE
(0,N)
CURSO
OFICINA (cod_of, nome)
CURSO (cod_curso, nome, cod_of)
FUNCIONÁRIO (cpf, nome, cod_of)
OFER_CUR (cod_curso, cpf)
Download

Modelo Relacional