2008.1 modelo relacional renata viegas. 2008.1 introdução - mr um banco de dados relacional é...
TRANSCRIPT
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çõesrelações),
através de linhas (tuplastuplas) e colunas (atributosatributos), com os possíveis valores (domíniodomí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
linha, tupla, registro
coluna, atributo, campotabela
relaçãonome do camponome do atributo
valor do campovalor do atributo
Código Nome Fone Estado
001 José 222.1234 PE
002 Antonio 224.1212 PB
003 Ana 235.4859 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 Nome Fone Estado
001 José 222.1234 PE
002 Antonio 224.1212 PB
003 Ana 235.4859 RN
Pedido Produto Preço Quant
001 A53 12,00 27
001 C47 15,00 5
002 N74 27,00 12
002 A53 15,00 7
002 G05 51,00 2
003 N74 29,00 8
TabelaCLIENTE
TabelaITENS DEPEDIDO
003
002
001
Código
N74003
G05002
A53002
N74002
C47001
A53001
ProdutoPedido
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
Código Nome Fone Setor Função
001 José 222.1234 S1 F1
002 Antonio 224.1212 S2 F2
003 Ana 235.4859 S1 F2
004 Bruna 247.9806 S3 F3
PessoalS3
VendasS2
ComprasS1
DescriçãoCódigo Código Descrição
F1 Gerente
F2 Técnico
F3 Assessor
Funcionário
Setor Função
004
003
002
001
Código
S3
S1
S2
S1
Setor
F3
F2
F2
F1
Função
S3
S2
S1
Código
F3
F2
F1
Código
2008.1
Modelo RelacionalA
R2
C
R1 B
R3
D
REGRAS
ModeloModelo E-RE-RDefine os dados que vão
compor o banco de dados.
Modelo RelacionalModelo RelacionalRepresentação dos dados
em forma de tabelas.
RegrasRegrasDefinem a passagem do
modelo E-R para o Relacional
2008.1
REGRAS !!
2008.1
Modelo Relacional• Regras Gerais– Entidade TabelaTabela– Atributo ColunaColuna– Relacionamento Tabela ou Chave Tabela ou Chave
EstrangeiraEstrangeira– Generalização/Especialização TabelasTabelas
2008.1
Modelo Relacional• Entidade Tabela– Toda entidade se transforma em uma tabela, e
seus atributos serão as colunas
2008.1
Modelo Relacional
código ref desc quant preçocódigo
PRODUTO (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
CURSA(1,N)
ALUNO(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
LOTADO(1,N)
EMPREGADO(1,1)
DEPARTAMENTO
DEPARTAMENTO (cod_dept, nome)
EMPREGADO (cod_emp, nome, cod_dept)
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
LOTADOEMPREGADO DEPARTAMENTO
DEPARTAMENTO (cod_dept, nome)
EMPREGADO (cod_emp, nome)
LOTAÇÃO (cod_emp, cod_dept, horas)
(1,1)(1,N)
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
FUNCIONARIO (rg, nome, função)
PROFESSOR (rg, nome, titulação, categoria)
SERVIDOR
FUNCIONARIO PROFESSOR
rg
nome
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
TEMOFICINA FUNCIONÁRIO
CURSO
OFERECE
(1,1) (1,N)
(0,N)
OFICINA (cod_of, nome)
FUNCIONÁRIO (cpf, nome, cod_of)
CURSO (cod_curso, nome, cod_of)
OFER_CUR (cod_curso, cpf)
(0,N)