Você está na página 1de 4

BANCO DE DADOS

Profa. Gisele Busichia Baioco


gisele@ft.unicamp.br

Modelo Relacional (MRel) – Conceitos

1 Introdução
O Modelo Relacional (MRel) foi proposto por Codd em 1970.
O MRel é um modelo de dados classificado como lógico (ou baseado em registros e
relações).
De acordo com as fases de projeto de BDs, o MRel deve ser aplicado na fase de
Projeto Lógico da BD.

Mini-Mundo

Coleta e Análise de
Requisitos

Requisitos de Dados

Projeto
Conceitual
MRel
Esquema Conceitual de Dados

Independente do SGBD
Projeto
Lógico
Específico do SGBD

Esquema Lógico de Dados

Projeto
Físico

Esquema Físico de Dados

Objetivo da utilização do MRel: representar as estruturas que estarão contidas na BD


de acordo com o tipo de SGBD a ser utilizado na implementação - SGBD Relacional – mas
sem considerar nenhuma característica específica do SGBD.
As próximas seções apresentam os principais conceitos do Mrel.

2 Relações, Atributos, Tuplas e Domínios


O MRel representa os dados da BD como uma coleção de relações. Informalmente,
uma relação pode ser vista como uma tabela, onde cada linha é composta por uma coleção de
colunas que contêm valores relacionados.

1
Na terminologia de uma BD relacional, as colunas de uma relação são chamadas de
atributos e as linhas de tuplas.
Exemplo:
atributos
Empregado
NomeEmp NumEmp Salario Depto
Josué 123.456.789 R$ 750.00 21 tuplas
Nome da
Silva 375.758.395 R$ 480.00 25
relação
Reis 475.858.595 R$ 680.00 23

O conjunto de valores atômicos (ou indivisíveis) que define cada atributo de uma
relação é chamado de domínio. Um formato ou tipo de dado também é especificado para
cada domínio. Exemplos:

Domínio Descrição Tipo de Dado


Números de telefone números de telefone com 12 dígitos Cadeia de caracteres
(Brasil)
Números de seguro social números de seguro social com 9 Valor inteiro
dígitos
Idades de funcionários possíveis idades de funcionários de Valor inteiro
uma companhia: valor entre 16 e 70
anos.

2.1 Esquema de relações


O esquema de uma relação R é um conjunto de atributos representado por:
R = {A1, A2, ..., An}
Onde:
R é o nome da relação;
A1, A2, ..., An são os atributos da relação;
n é o grau da relação (número de atributos)

O domínio de um atributo Ai é denotado por Dom(Ai).

Exemplo: Uma relação de alunos que tenha os atributos nome, RG e idade, tem o
seguinte esquema.
Aluno = {nome, RG, idade}
O grau dessa relação é 3.
Dom(nome) = Nomes de alunos
Dom(RG) = Números de Registro Geral
Dom(idade) = Idades de alunos

2.2 Instância de relações


Uma instância de relação r do esquema de relação R = {A1, A2, ..., An}, também
denotada por r(R), é um conjunto de tuplas r = {t1, t2, ..., tm}. Cada tupla t é uma lista
ordenada de n valores t = <v1, v2, ..., vn>, onde cada valor vi, 1  i  n, é um elemento do
Dom(Ai) ou um valor especial null.
Frequentemente, são utilizados os seguintes termos:

2
- intenção da relação para denominar o esquema R;
- extensão da relação para denominar a instância r(R).

Exemplo:
Dado o esquema de relação:
Aluno = {nome, RG, idade}
Uma possível instância de relação é a seguinte:
r(Aluno) = {<José, 12345, 21>,
<Pedro, 54321, 18>,
<Paulo, 32123, null>}

2.3 Chaves de Relações


Superchave: subconjunto dos atributos de uma relação cujos valores são unívocos
para cada tupla da relação. Exemplo:
Seja o esquema de relação Pessoa:
Pessoa = {Nome, CPF, RG, Idade, Telefone}

Possíveis superchaves:
Superchave(Pessoa) = {Nome, CPF}
Superchave(Pessoa) = {CPF, Idade}
Superchave(Pessoa) = {RG}
Superchave(Pessoa) = {CPF}

Chave: é uma superchave da qual não se pode retirar nenhum atributo e ainda
preservar-se a propriedade de identificação unívoca. Exemplo:
Das superchaves do exemplo anterior, as possíveis chaves são:
Chave(Pessoa) = {RG}
Chave(Pessoa) = {CPF}

Chave primária: é a chave de uma relação que tem a maior frequência de acesso. As
outras chaves são chamadas de chaves candidatas (ou secundárias). Para representar uma
chave primária em um esquema de relação deve-se grifar os atributos que compõem a chave
com um único sublinhado. As chaves secundárias são representadas grifando-se os atributos
que as compõem com duplo sublinhado. Exemplo:
Pessoa = {Nome, CPF, RG, Idade, Telefone}
Significa que:
Chave primária (Pessoa) = {RG}
Chave secundária (Pessoa) = {CPF}

3 Restrições de Integridade
O esquema de uma BD Relacional é um conjunto de esquemas de relações S = {R1,
R2, ..., Rm} e um conjunto de restrições de integridade.
Exemplo: Considera-se uma BD para armazenar informações sobre diversas
disciplinas oferecidas para alunos em um semestre.
Relações:
Aluno = {Nome, RA, Idade, Curso}
Matrícula = {RA, Sigla, Ano, Semestre, Sala, Nota}
Disciplina = {Sigla, Nome, Créditos}
Restrições de integridade:

3
Especificação das restrições segundo o MRel.

Restrições de Integridade são regras a respeito dos valores que podem ser
armazenados nas relações. Três tipos de restrições de integridade são considerados
necessários em uma BD Relacional:
• Restrições de Integridade de Chave: os valores das chaves de uma relação devem ser
únicos para todas as tuplas em qualquer instância da relação.
• Restrições de Integridade de Entidade: a chave primária de qualquer relação não pode
ser nula em nenhuma tupla dessa relação. Exemplo:
Aluno = {RA, nome, idade, telefone}

r(Aluno) = {<1234, Mario, 20, 522-4512>,


<4321, Paulo , 21, null>,
<1214, Carolina, null, 231-6322>,
<1239, Maria, 23, null>}

• Restrições de Integridade Referencial: deve ser especificada entre duas relações e é


usada para manter a consistência entre tuplas de duas relações. O conceito de integridade
referencial depende do conceito de chave estrangeira.
Uma chave estrangeira ocorre quando um conjunto de atributos C  R1, que não é
chave de R1, é compatível com outro conjunto de atributos D  R2, que é a chave primária de
R2. Então, a chave estrangeira é o conjunto de atributos C  R1, que não é chave de R1, mas é
compatível com a chave primária D de outra relação R2.
Assim, a restrição de integridade referencial determina que o valor do conjunto de
atributos C em uma tupla qualquer de R1 (onde C não é chave):
- ou é igual ao valor da chave primária D de uma tupla qualquer de R2 (ao qual C é
compatível);
- ou é nulo.

Exemplo:

Departamento = {NumDepto, NomeDepto, Ramal}


r(Departamento) = {<21, Pessoal, 142>,
<23, Financeiro, 144>,
<25, Compras, 156>}

Empregado = {NumEmp, NomeEmp, Salário, Depto}


Depto – chave estrangeira referenciando Departamento
r(Empregado) = {<1234, Josué, 750.00, 23>,
<4567, Silva, 480.00, null>,
<8910, Reis, 680, 21>,
<1112, Santos, 250.00, 25>}

Você também pode gostar