2008.1 modelo relacional renata viegas. 2008.1 introdução - mr um banco de dados relacional é...

31
2008.1 Modelo Relacional Renata Viegas

Upload: internet

Post on 17-Apr-2015

118 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: 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

2008.1

Modelo Relacional

Renata Viegas

Page 2: 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

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.

Page 3: 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

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.

Page 4: 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

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.

Page 5: 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

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.

Page 6: 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

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

Page 7: 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

2008.1

Conceitos do Modelo Relacional...

Page 8: 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

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.

Page 9: 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

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

Page 10: 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

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

Page 11: 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

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

Page 12: 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

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

Page 13: 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

2008.1

REGRAS !!

Page 14: 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

2008.1

Modelo Relacional• Regras Gerais– Entidade TabelaTabela– Atributo ColunaColuna– Relacionamento Tabela ou Chave Tabela ou Chave

EstrangeiraEstrangeira– Generalização/Especialização TabelasTabelas

Page 15: 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

2008.1

Modelo Relacional• Entidade Tabela– Toda entidade se transforma em uma tabela, e

seus atributos serão as colunas

Page 16: 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

2008.1

Modelo Relacional

código ref desc quant preçocódigo

PRODUTO (código, ref, desc, quant, preço)

Page 17: 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

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)

Page 18: 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

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)

Page 19: 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

2008.1

Modelo Relacional

CLIENTE (CPF, nome, dataNasc)

ENDEREÇO(CPF, rua, complemento)

Page 20: 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

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)

Page 21: 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

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

Page 22: 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

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)

Page 23: 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

2008.1

LOTADO(1,N)

EMPREGADO(1,1)

DEPARTAMENTO

DEPARTAMENTO (cod_dept, nome)

EMPREGADO (cod_emp, nome, cod_dept)

Page 24: 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

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)

Page 25: 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

2008.1

LOTADOEMPREGADO DEPARTAMENTO

DEPARTAMENTO (cod_dept, nome)

EMPREGADO (cod_emp, nome)

LOTAÇÃO (cod_emp, cod_dept, horas)

(1,1)(1,N)

horas

Page 26: 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

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)

Page 27: 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

2008.1

SERVIDOR

FUNCIONARIO PROFESSOR

SERVIDOR (rg, nome, endereço, telefone, sexo, tipo)

FUNCIONARIO (rg, função)

PROFESSOR (rg, titulação, categoria)

Page 28: 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

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

Page 29: 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

2008.1

FUNCIONARIO (rg, nome, função)

PROFESSOR (rg, nome, titulação, categoria)

SERVIDOR

FUNCIONARIO PROFESSOR

rg

nome

Page 30: 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

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

Page 31: 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

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)