2008.1 Modelo Relacional Renata Viegas. 2008.1 Introdução - MR Um banco de dados relacional é...

Preview:

Citation preview

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)