Você está na página 1de 20

Universidade Federal de Uberlândia

Faculdade de Computação

Modelo relacional (MR)

Prof. Renato Pimentel

2022/1

GES013 Sistema de BD 2022/1 1 / 39

Sumário

1 Modelo relacional (MR)

GES013 Sistema de BD 2022/1 2 / 39


Modelo relacional (MR)

Minimundo

Análise de Projeto Modelo


Implementação
requisitos conceitual relacional

Modelo entidade- Mapeamento


MER p/ o SQL
relacionamento (MER)
modelo relacional

GES013 Sistema de BD 2022/1 3 / 39

Modelo relacional (MR)

Introduzido por Ted Codd (IBM) em 19701 .


▶ Simplicidade e base matemática;
▶ Base teórica na teoria de conjuntos e na lógica de predicados de
primeira ordem;
▶ é um método declarativo de especificar dados e consultas.
▶ Primeiras implementações: início da década de 1980 (SQL/DS;
ORACLE).
Banco de dados:
▶ representado como uma coleção de relações.
Relação:
▶ Possui um nome que é único em um BD;
▶ Representado por uma tabela bidimensional de valores.

1
https://www.seas.upenn.edu/~zives/03f/cis550/codd.pdf
GES013 Sistema de BD 2022/1 4 / 39
Tabela bidimensional

Cada coluna tem um nome distinto e representa um atributo.


▶ Todos os valores de uma coluna são valores do mesmo atributo.
Cada atributo possui um domínio de valores.
Cada domínio é formado por um conjunto de valores atômicos.
▶ Por atômico entendemos que o valor é indivisível no domínio.

Cada linha da tabela representa o relacionamento entre um


conjunto de valores.
Cada linha é distinta e representa uma tupla.
Uma n-tupla representa uma tupla que possui n valores.
▶ grau da relação: número n de atributos de seu esquema de relação.

GES013 Sistema de BD 2022/1 5 / 39

Exemplo: uma tabela Aluno

Esquema de relação: Aluno (nmat, nome, endereço, idade)

Nome da relação Atributos

Nome do atributo
Aluno
nmat Nome Endereço Idade
935639 Adriana Zagalo Rua Floriano Peixoto, 1234 18
935632 Beatriz da Silva Rua Itambé, 124 apto. 62 bloco B 22
933219 Carlos Alberto Bozato Rua Sucupira, 3452 apto 125 19
938904 Antônio Nascimento Av. Castro Alves, 57 18
934789 Roberto Antonione Av. Sunab Jatab, 3467 apto 32 32

Valor tupla ou linha

GES013 Sistema de BD 2022/1 6 / 39


Definições formais

Passaremos agora a definir formalmente os elementos do modelo relacional.

GES013 Sistema de BD 2022/1 7 / 39

Domínio

Domínio
Um domínio D qualquer é um conjunto de valores atômicos.
Possui uma cardinalidade, denotada por |D|, que indica a quantidade de
valores de D.

Exemplos:
▶ D1 = dom(sexo) = {F , M}; |D1 | = 2.
▶ D2 = dom(funcionario.idade) = [15, 80]; |D2 | = 66.
Também possui um tipo de dado ou formato. Exemplos:
▶ funcionario.idade: inteiro;
▶ fone: (dd)ddddd.dddd, onde cada d representa um dígito numérico
decimal.
▶ int, date, etc.

GES013 Sistema de BD 2022/1 8 / 39


Esquema de relação e atributo

Esquema de relação
Um esquema de relação corresponde à descrição da relação
representada na tabela de valores.
Notação: R(A1 , A2 , . . . , An ), onde R é o nome da relação – ex.: Aluno
visto anteriormente – e cada Ai , 1 ≤ i ≤ n, é o nome de um atributo.

Atributo
Nome do papel desempenhado por algum domínio na relação.

Exemplo: FUNCIONARIO(cpf, nome, endereco, sexo)


▶ dom(cpf) = ddd.ddd.ddd − dd;
▶ dom(nome) = cadeia de caracteres que representam nomes de pessoas;
▶ dom(endereco) = cadeia de caracteres que representam endereços;
▶ dom(sexo) = {F , M}.

GES013 Sistema de BD 2022/1 9 / 39

Obs.: Um método comum para especificar o domínio compreende:


Definição lógica;
Definição do tipo de dado ou formato.

GES013 Sistema de BD 2022/1 10 / 39


Ex.: No caso de um esquema de relação
Aluno ( nmat, nome, telefone, celular, idade ):
Definição lógica:
▶ Números de matrícula: conjunto de dígitos válidos para matrícula de
alunos;
▶ Nomes de aluno: conjunto de todos os nomes possíveis para pessoas;
▶ Números de telefone: conjunto de números de telefone válidos no
Brasil;
▶ Idade: conjunto de idades possíveis para alunos.
Definição do tipo de dado ou formato:
▶ Números de matrícula: inteiro com oito dígitos;
▶ Nomes de aluno: string de 60 caracteres;
▶ Números de telefone: inteiro com dez dígitos;
▶ Idade: inteiro entre zero e 127.

GES013 Sistema de BD 2022/1 11 / 39

Tuplas e valores de atributos

Tupla
Uma n-tupla, ou simplesmente tupla t, é um conjunto ordenado de
valores, denotado por t =< v1 , v2 , . . . , vn >, onde cada vi , 1 ≤ i ≤ n é
derivado do domínio apropriado de Ai ou é um valor nulo.
Observação: Se t =< v1 , v2 , . . . , vn >, então t[Ai ] = t.Ai = vi (valor).

Valor nulo
O valor nulo, denotado por NULL, é um valor especial para representar
valores desconhecidos ou que não se aplicam.

Exemplo: FUNCIONARIO(cpf, nome, endereco, sexo)


▶ funcionario = <12363289544, ’John Smith’, ’101 Main St.
Atlanta, GA 30332’, ’M’>
▶ funcionario.sexo = ’M’.

GES013 Sistema de BD 2022/1 12 / 39


Relação

Relação
Uma relação ou estado r de um esquema R(A1 , A2 , . . . , An ), denotada
por r (R), é um conjunto de tuplas r = {t1 , t2 , . . . , tm }.

Observações:
O uso do termo estado para r reflete as tuplas válidas que
representam um estado particular do mundo real.
O esquema R é relativamente estático, mas em geral, o estado da
relação r é dinâmico;
n é o grau do esquema da relação (número de atributos);
m é a cardinalidade da relação (número de tuplas).

GES013 Sistema de BD 2022/1 13 / 39

Exemplo de possível relação do esquema


Aluno (nmat, nome, telefone, celular, idade):

r ( Aluno ) = { <22222222 > , J ú lia , 1134343434 ,


1126262626 , 21 > ,
<11111111 > , Pedro , 1965656565 ,
1977777777 , 18 > ,
<99999999 > , Cec í lia , 1144443333 ,
1165658888 , 23 >}

GES013 Sistema de BD 2022/1 14 / 39


Características das relações

Ordenação de tuplas numa relação (nível abstrato):


▶ Matematicamente, não há ordem entre os elementos de um conjunto.
▶ Na implementação de um SGBD existe uma ordem física de
armazenamento das tuplas na memória externa
⋆ Determina uma ordem na recuperação das informações.
Ordenação de tuplas em uma relação (nível lógico):
▶ muitas ordens lógicas podem ser especificadas para uma relação.
Ex.: relação ALUNO pode ser ordenada pelos atributos NOME,
DATANASCIMENTO, CPF, etc.

GES013 Sistema de BD 2022/1 15 / 39

Ordenação de valores dentro de uma tupla:


▶ uma tupla é uma lista de n valores dispostos numa ordem determinada
de acordo com a disposição dos atributos no esquema da relação.
Valores nas tuplas:
▶ são atômicos e monovalorados (relações não permitem atributos
multivalorados).

GES013 Sistema de BD 2022/1 16 / 39


Restrições

Restrições são condições que devem ser mantidas por todos os estados
válidos das relações.
Categorias:
Inerentes: são características do modelo de dados. Ex.: uma relação
não pode ter tuplas duplicadas;
Baseadas em esquema: podem ser expressas no modelo de dados.
Exs.: restrições de domínio e restrições de chave (serão vistas em
seguida);
Baseadas na aplicação: não podem ser expressas no modelo de
dados, portanto devem ser implementadas por meio de programas de
aplicação.

GES013 Sistema de BD 2022/1 17 / 39

Restrições sobre uma relação

Domínio:
▶ Dentro de cada tupla, o valor de cada atributo Ai deve ser um valor
atômico de dom(Ai ).
Unicidade de chave:
▶ Chave primária ⇒ identifica de forma única cada tupla da relação.
Valor nulo:
▶ Permitido: NULL (padrão);
▶ Se não permitido: atributo NOT NULL.
Integridade de entidade:
▶ Nenhum valor de chave primária pode ser nulo.
⋆ Permitir valor NULL para a chave primária implica que não podemos
identificar algumas tuplas.
⋆ I.e. não seria possível diferenciá-las ao tentar referenciá-las por outras
relações.

GES013 Sistema de BD 2022/1 18 / 39


Chaves e Superchaves

Superchave
Numa relação r , é um conjunto de atributos SCh contido em R no qual
não haverá duas tuplas ti e tj , com i ̸= j, tais que ti [SCh] = tj [SCh].

Como r é um conjunto de tuplas, e, por definição, todos os elementos


de um conjunto são distintos entre si, é sempre possível definir uma
superchave Sch – sempre existirá um conjunto de atributos que,
juntos, permita diferenciar todas as tuplas entre si.
Obs.: O próprio esquema R como um todo pode ser uma superchave.

GES013 Sistema de BD 2022/1 19 / 39

Chave
Superchave Ch com a propriedade adicional de que a remoção de qualquer
atributo da chave fará com que Ch não identifique mais unicamente cada
tupla da relação.

A diferença é que uma chave tem que ser mínima – a superchave não.
I.e. toda chave é superchave, mas não vice-versa: a superchave pode
ser chave – se o número de atributos é mínimo – ou não.

GES013 Sistema de BD 2022/1 20 / 39


Exemplo: Esquema de relação Aluno (nmat, nome, telefone,
celular, idade):
{nmat} é chave – dois alunos distintos não podem ter o mesmo
número de matrícula.
Superchaves:
▶ {nmat, nome};
▶ {nmat, nome, telefone};
▶ {nmat, nome, telefone, celular};
▶ {nmat, nome, telefone, celular, idade}.

GES013 Sistema de BD 2022/1 21 / 39

Chave candidata e chave primária

Se um esquema de relação tiver mais de uma chave, então cada uma


será chave candidata;
Uma é arbitrariamente designada para ser chave primária.
▶ Boa prática: que tenha atributo único ou ao menos poucos atributos.
Notação: atributos que formam a chave primária são sublinhados.
As demais candidatas (designadas agora como chaves únicas) não
são destacadas.

GES013 Sistema de BD 2022/1 22 / 39


Exemplo: Esquema de relação Aluno (nmat, nome, telefone,
celular, idade):
{nmat} é a única chave candidata de Aluno, portanto é também a
chave primária.

GES013 Sistema de BD 2022/1 23 / 39

Outro exemplo (ELMASRI; NAVATHE, 2018): a relação CARRO que segue


tem duas chaves candidatas: Placa e Numero_chassi. A primeira foi
designada como chave primária.
CARRO
Placa Numero_chassi Marca Modelo Ano
Itatiaia ABC-7039 A6935207586 Volkswagen Gol 02
Itu TVP-3470 B4369668697 Chevrolet Corsa 05
Santos MPO-2902 X8355447376 Fiat Uno 01
Itanhaem TFY-6858 C4374268458 Chevrolet Celta 99
Itatiba RSK-6279 Y8293586758 Renault Clio 04
Atibaia RSK-6298 U0283657858 Volkswagen Parati 04

GES013 Sistema de BD 2022/1 24 / 39


Chave primária para um esquema de relação R satisfaz duas
restrições:
▶ Duas tuplas distintas não podem ter valores idênticos para os atributos
da chave.
▶ Ela é uma superchave mínima.

GES013 Sistema de BD 2022/1 25 / 39

Esquema de um banco de dados

Os conceitos vistos até então referem-se a relações isoladas e seus


atributos.
No entanto, um banco de dados relacional em geral é formado de
várias relações, com tuplas que podem se relacionar de várias formas.

Esquema de um banco de dados relacional


É o conjunto dos esquemas de relação de um banco de dados, denotado
por
S = {R1 , R2 , . . . , Rm } .
Em geral, a definição também engloba, além do conjunto S, o conjunto
de restrições de integridade IC , que será visto a seguir.

GES013 Sistema de BD 2022/1 26 / 39


A partir da definição anterior, também é possível definir o estado do
banco de dados DB – o conjunto de estados da relação –
DB = {r1 , r2 , . . . , rm } onde cada ri é um estado ou relação do esquema
Ri .
Os estados ri devem satisfazer às restrições de integridade
especificadas em IC .

GES013 Sistema de BD 2022/1 27 / 39

Exemplo (ELMASRI; NAVATHE, 2018)

FUNCIONARIO
Nome CPF Data_nasc Endereco Salario Sexo CPF_Supervisor Dnumero

DEPARTAMENTO
DNome DNumero CPF_gerente Data_inicio_gerente

DEPTO_LOCALIZACOES
DNumero Dlocalizacao

PROJETO
PjNome PNumero PLocal Depto

TRABALHA_EM
CPF PNumero Horas

DEPENDENTE
CPF_funcionario Nome Sexo Data_nasc Parentesco

GES013 Sistema de BD 2022/1 28 / 39


Restrição de integridade referencial

A restrição de integridade referencial mantém a consistência entre


as tuplas de duas relações:
▶ Declara que uma tupla numa relação, a qual faz referência a outra
relação, deve necessariamente se referir a uma tupla existente nessa
segunda.
Definida entre a chave estrangeira ChE (em inglês: foreign key ) de
uma relação esquema R1 e a chave primária ChP de uma relação
esquema R2 .

GES013 Sistema de BD 2022/1 29 / 39

Chave estrangeira
Chave estrangeira
Dados dois esquemas de relação R1 e R2 , um conjunto de atributosa ChE
de R1 é uma chave estrangeira de R1 que referencia R2 se:
Os atributos de ChE têm os mesmos domínios que os atributos que
foram ChP, a chave primária de R2 ;
Um valor de ChE numa tupla t1 do estado atual r1 (R1 ):
▶ ocorre como um valor de ChP para alguma tupla t2 no estado atual
r2 (R2 ) (i.e. t1 [ChE ] = t2 [ChP]); ou é NULL.
a
Pode ser um atributo único

No caso em que t1 [ChE ] = t2 [ChP], dizemos que t1 referencia ou


refere-se a t2 .
R1 é então a relação que faz referência e R2 , a relação
referenciada.
Se as condições de mantiverem, então é mantida uma restrição de
integridade referencial de R1 para R2 .
GES013 Sistema de BD 2022/1 30 / 39
Observação: não confundir restrição de integridade referencial com a
restrição de integridade de identidade vista anteriormente (de que
nenhuma chave primária pode ser NULL).

GES013 Sistema de BD 2022/1 31 / 39

Exemplo (ELMASRI; NAVATHE, 2018)

FUNCIONARIO
Nome CPF Data_nasc Endereco Salario Sexo CPF_Supervisor Dnumero

DEPARTAMENTO
DNome DNumero CPF_gerente Data_inicio_gerente

DEPTO_LOCALIZACOES
DNumero Dlocalizacao

PROJETO
PjNome PNumero PLocal Depto

TRABALHA_EM
CPF PNumero Horas

DEPENDENTE
CPF_funcionario Nome Sexo Data_nasc Parentesco

GES013 Sistema de BD 2022/1 32 / 39


Restrições e operações

Operações de modificação (típicas de BD):


▶ Inserção (insert);
▶ Remoção (delete);
▶ Alterar ou modificar (update).
Quando tais operações ocorrem, as restrições de integridade
especificadas no esquema do banco de dados relacional não devem
ser violadas.

GES013 Sistema de BD 2022/1 33 / 39

Operação insert

Característica:
▶ fornece uma lista de valores de atributos para uma nova tupla t, que é
inserida em uma relação R.
Pode violar as seguintes restrições:
▶ domínio (valores dos atributos de t são todos atômicos?);
▶ unicidade de chave;
▶ integridade de entidade (chave primária de t é diferente de NULL?);
▶ integridade referencial.
Soluções:
▶ rejeitar a inserção;
▶ enviar mensagem de erro ao usuário.

GES013 Sistema de BD 2022/1 34 / 39


Operação delete

Característica:
▶ remove uma ou mais tuplas.
Pode violar a integridade referencial:
▶ quando as tuplas removidas forem referidas por chaves estrangeiras
de outras tuplas.
Soluções:
▶ rejeitar a remoção;
▶ remover em cascata;
▶ modificar valores dos atributos de referência.

GES013 Sistema de BD 2022/1 35 / 39

Operação update

Característica:
▶ altera valores de alguns atributos em tuplas.
Pode violar as seguintes restrições:
▶ domínio;
▶ unicidade de chave (se algum atributo sendo alterado é ou faz parte da
chave primária);
▶ integridade de entidade (idem ao caso anterior);
▶ integridade referencial (se algum atributo sendo alterado é ou faz parte
de uma chave estrangeira).
Soluções:
▶ semelhantes à vistas nas operações anteriores (a atualização pode ser
interpretada como uma operação delete seguida de insert).

GES013 Sistema de BD 2022/1 36 / 39


Exercícios I

1 Uma administradora trabalha com administração de condomínios e de


aluguéis.
Uma entrevista com o gerente resultou nas seguintes informações:
▶ São administrados condomínios formados por unidades condominiais.
Para cada condomínio a administradora precisa saber seu nome (que é
único) e endereço (nome da rua, número, bairro e CEP). Para cada
unidade condominial seu número único é o andar;
▶ Cada unidade condominial é de propriedade de uma ou mais pessoas.
Uma pessoa pode possuir diversas unidades;
▶ Cada unidade pode estar alugada para no máximo uma pessoa. Uma
pessoa pode alugar diversas unidades. Uma data determina quando a
pessoa alugou uma unidade condominial;
▶ Para cada pessoa são armazenadas informações como CPF, nome e
telefones (residencial, comercial e celular).

GES013 Sistema de BD 2022/1 37 / 39

Exercícios II
Pede-se:
1 Definir os domínios (definição lógica, tipo de dado e formato)
necessários para a criação dos esquemas de relação para essa
especificação
⋆ ex: nomes de pessoas: conjunto de todos os nomes possíveis para
pessoas – strings de 60 caracteres.
2 Definir os esquemas de relação para a especificação.
3 Instancie relações a partir dos esquemas criados exemplificando
situações em que não são satisfeitas as seguintes restrições de
integridade:
⋆ unicidade de chave, integridade de entidade e integridade referencial.
2 Compare os conceitos de Entidade, Relação e Tabela.
3 Compare os conceitos de instância de uma entidade, tupla de uma
relação e linha de uma tabela.
4 Compare os conceitos de atributo no Modelo ER, atributo no Modelo
R e coluna de uma Tabela.
5 O que é Chave Estrangeira? Dê um exemplo.
GES013 Sistema de BD 2022/1 38 / 39
Referências

1 ELMASRI R.; NAVATHE, S. Sistemas de banco de dados, Tradução


da 7a. edição, Addison- Wesley, São Paulo, 2018.
2 SILVA, I. R. (FACOM/UFU). Notas de aula.
Os materiais de parte desta seção foram gentilmente cedidos por Bruno A.
N. Travençolo (FACOM/UFU)
Adaptações: Renato Pimentel, FACOM/UFU

GES013 Sistema de BD 2022/1 39 / 39

Você também pode gostar