Você está na página 1de 15

Arquitetura de sistemas de bancos de dados

Aula 2: Modelo Relacional

Apresentação
Os sistemas de gerenciamento de banco de dados, ou SGBDs, são conjuntos de softwares utilizados para o
gerenciamento de uma base de dados, ou seja, são os programas utilizados para controlar, organizar, acessar e proteger
as informações de uma empresa.

Nos maiores SGBDs comerciais, o modelo de dados lógico utilizado é o relacional, que será objeto de estudos desta aula.
Além disso, estudaremos a álgebra relacional, que define as operações que podemos realizar dentro do modelo
relacional.

Objetivos
Descrever o modelo relacional;

Escrever expressões de álgebra relacional.


Modelo relacional
O modelo relacional de dados foi proposto por Edgar Codd
em 1970, baseando-se em conceitos matemáticos para
proporcionar uma representação confiável para bancos de
dados.

O modelo relacional se propõe a representar os dados em


uma coleção de relações. Dessa forma, as relações são
vistas como tabelas de valores, nas quais cada linha
representa uma coleção de dados relacionados. Esses
valores podem ser interpretados como fatos, descrevendo
uma instância de uma entidade ou de um relacionamento
do mundo real.

 
Os nomes da tabela e das colunas são utilizados para
facilitar a interpretação dos valores armazenados em cada

Edgar Frank Codd (Dorset, 23 de agosto de 1923 — Flórida, 18 de abril de 2003) foi
linha da tabela. um matemático britânico conhecido por desenvolver o banco de dados relacional.

Atenção! Aqui existe uma


videoaula, acesso pelo conteúdo online

Conceitos do modelo relacional


A seguir conheceremos alguns conceitos importantes. Vamos lá.

Relação
No modelo relacional, uma relação é uma tabela onde são armazenados dados. Por exemplo, podemos ter em nosso banco
de dados as relações DEPARTAMENTO e REGIÃO, que armazenam, respectivamente, os dados dos departamentos e das
regiões.

As relações apresentam as seguintes características:

Os atributos devem possuir valores atômicos


Não possuem duas linhas iguais.
(indivisíveis).
Atributo
Os atributos de uma relação constituem as colunas da tabela. Por exemplo, na tabela DEPARTAMENTO temos os atributos
ID, NOME e ID_REGIAO. É importante ressaltar que todo atributo possui um domínio.

O conjunto dos atributos de uma tabela constituem o seu esquema.

Domínio
O domínio consiste de um conjunto de valores válidos para um determinado atributo. Como, por exemplo, o domínio do
atributo NOME na tabela de departamentos é constituído dos nomes válidos de departamento na empresa.

Todo atributo possui um domínio, no mínimo constituído pelo seu tipo, numérico, alfanumérico, data etc. Dessa forma, todos
os valores em uma coluna são necessariamente do mesmo tipo. O fato de os atributos respeitarem o seu domínio é
denominado integridade de domínio.
Esquema
O esquema de uma relação descreve a sua estrutura, sendo constituído pelo conjunto de seus atributos e suas restrições. Por
exemplo: O esquema da tabela DEPARTAMENTO é composto de ID, NOME e ID_REGIAO, ou seja, Departamento (ID, NOME,
ID_REGIAO).

Tupla
As tuplas de uma relação constituem as linhas da tabela. Por exemplo, na tabela DEPARTAMENTO a linha do departamento
de vendas constitui uma tupla da relação. O conjunto das tuplas de uma tabela constitui a sua instância.

Instância
A instância é composta pelo total dos valores de seus atributos, consistindo, na prática, no conjunto dos dados armazenados
no BD. Por exemplo, na tabela DEPARTAMENTO a instância é formada pelas suas quatro linhas, ou seja, pelos dados dos
departamentos de vendas, operações, administrativo e financeiro.
Campo
O campo de uma relação é definido como a área de interseção entre um atributo (coluna) e uma tupla (linha). Por exemplo, na
figura vemos a delimitação do campo NOME na segunda linha da tabela. Todo campo possui um valor.

Valor
O valor de um campo é o seu conteúdo. Por exemplo, na figura vemos que o valor do campo NOME na segunda linha é
OPERAÇÕES. Quando um campo não possui um valor dizemos que ele é nulo.
Nulo
Quando afirmamos que o valor de um campo é nulo, estamos afirmando que ali não existe nada. Nulo, não zero.

Nulo não é um espaço em branco, não é sequer um valor. Nulo é ausência de valor que pode se originar do fato de não
sabermos, ou de não existir o valor a ser colocado.

 
Por exemplo, na figura vemos que o valor do campo CPF da última linha da tabela DEPENDENTES é nulo, ou seja, ali não há
valor algum. Agora, por que isso aconteceu? Vamos supor que Carlos Ventura tenha mais de 18 anos, então, por lei deveria
ter CPF, mas quando fomos cadastrá-lo no banco de dados não sabíamos o número de seu CPF, então não colocamos nada.
Outra situação seria o fato de Carlos Ventura ser uma criança de 5 anos, que obviamente não possui CPF.

 
Cabe ressaltar que somente é possível deixar nulos campos de atributos não obrigatórios.

Chave primária
Uma chave primária é o atributo da relação utilizado para identificar unicamente uma tupla. É normalmente denominada PK
do termo em inglês primary key.
Um atributo, para ser chave primária, deve obrigatoriamente ser
único e obrigatório.

A chave primária é escolhida entre as chaves candidatas de uma relação e pode ser simples ou composta. Por exemplo, a
figura mostra as colunas ID das tabelas DEPARTAMENTO e REGIÃO constituindo suas chaves primárias.

 
Uma observação importante é que embora os SGBD permitam a criação de tabelas sem chave primária, o modelo relacional
prevê que toda relação deve possuir uma PK.

Único
Quando afirmamos que uma PK deve ser única, significa que nenhuma tupla de uma mesma relação pode ter o mesmo valor
para o atributo escolhido como chave primária. Isso é denominado integridade de chave primária.

 
Se observarmos as tabelas anteriores, veremos que o valor do ID na tabela DEPARTAMENTO não se repete. De fato, se
tivéssemos valores repetidos na coluna ID, como poderíamos identificar a tupla?

Na próxima tabela, vemos que existem duas linhas com o mesmo valor de ID: 20. Se desejamos nos referir ao Departamento
20, teríamos uma dúvida: O departamento 20 que desejamos é o de OPERAÇÕES ou o ADMINISTRATIVO?
Obrigatório
O valor da chave primária não pode ser vazio, ou seja, não pode ser nulo. O valor nulo não permite a identificação de uma
tupla. Essa restrição é denominada integridade de entidade.

De fato, a chave primária serve como representante na base de


dados de uma entidade. Se a chave primária for vazia, a linha não
corresponde a nenhuma entidade.

Observe a tabela. Repare que todas as linhas possuem um valor na coluna ID tanto na tabela DEPARTAMENTO quanto na
tabela REGIÃO:
Observe a próxima tabela.

Como poderíamos identificar uma região se existissem na tabela várias linhas com ID nulo? Como poderíamos referenciar a
primeira linha e a última?

Por isso uma PK não pode ser nula.

Chaves candidatas
É o atributo ou conjunto de atributos de uma relação que permite identificar a linha de forma única. Uma delas será escolhida
como chave primária, a partir da qual o SGBD irá manter automaticamente a restrição de unicidade.

Da mesma forma que a chave primária, uma chave candidata pode ser simples ou composta.

 
Na tabela DEPARTAMENTO, a seguir, possuímos duas chaves candidatas simples, a coluna ID e a coluna NOME, pois ambas
possuem valores únicos e não nulos, e qualquer um deles pode ser PK da tabela:
Chave simples
Dizemos que uma chave primária é simples quando é composta por apenas um atributo. Podemos notar que tanto na tabela
DEPARTAMENTO como na tabela REGIÃO a PK é composta apenas pela coluna ID, que, por possuir valores únicos e não
nulos, permite a identificação de forma unívoca da linha.

Chave composta
Dizemos que uma chave primária é composta quando possui mais de um atributo.

No exemplo a seguir, a tabela Dependentes possui uma PK composta pela coluna “Responsável” e pela coluna “Id”.
Por que isso foi necessário?
Como uma PK deve ser única e não nula, ao analisarmos a tabela em busca de uma chave candidata podemos observar que:

Atenção! Aqui existe uma


videoaula, acesso pelo conteúdo online

1 A coluna “Responsável” é obrigatória, mas pode possuir valores repetidos.

2 A coluna “Id” é obrigatória, mas pode possuir valores repetidos.

3 A coluna “Id” é obrigatória, mas pode possuir valores repetidos.

4 A coluna “Grau” é obrigatória e pode possuir valores repetidos.

5 A coluna “CPF” apesar de ser única pode possuir linhas nulas.

A análise mostra que não temos como fazer uma PK simples, mas se
considerarmos o par “Responsável/Id”, não existirá repetição, pois para um
mesmo “Responsável” o valor de “ID” não se repete. O que permite que
criemos uma PK composta.
Chave estrangeira
É quando um atributo de uma relação é chave primária (PK) em outra.

É normalmente denominada FK do termo em inglês foreign key, constituindo-se na ligação lógica entre as tabelas,
implementando fisicamente os relacionamentos da modelagem conceitual.

Através das operações com as chaves estrangeiras, garante-se a integridade referencial do banco de dados. Por exemplo, a
seguir vemos que a coluna ID_REGIAO na tabela DEPARTAMENTO é uma chave estrangeira para a tabela REGIÃO na coluna
ID.

Integridade referencial
A Integridade referencial determina que as chaves estrangeiras (FK) têm que ser respeitadas, ou seja, se existe um
determinado valor para o atributo na tabela onde ele é chave estrangeira, esse valor deve existir na tabela em que ele é chave
primária.

Atenção

Nas tabelas anteriores podemos observar que todos os valores do atributo ID_REGIAO na tabela DEPARTAMENTO existem no
atributo ID (PK) da tabela REGIÃO.

Se tentássemos inserir na tabela DEPARTAMENTO um valor de ID_REGIAO = 4, o SGBD acusaria um erro de violação de chave
estrangeira e não permitiria a inserção da linha.

Álgebra relacional
A álgebra relacional é uma coleção de operações canônicas que são utilizadas para manipular as relações. Essas operações
são utilizadas para selecionar tuplas de relações individuais e para combinar tuplas relacionadas de relações diferentes para
especificar uma consulta em um determinado banco de dados. O resultado de cada operação é uma nova relação, a qual
também pode ser manipulada pela álgebra relacional.

Atenção! Aqui existe uma


videoaula, acesso pelo conteúdo online

Saiba mais
Antes de encerrar seus estudos, conheça detalhadamente as principais operações da álgebra relacional.

Atividades
1. Considerando a tabela abaixo, marque todas as opções que atendam à consulta solicitada.

Listar o nome e o salário dos empregados que ganham mais de R$2000,00.

Tabela Empregado

ID Nome Cargo Salario Id_Depto

101 Carlos Antunes Gerente de Vendas 5000,00 10

102 Pedro Leitão Vendedor 1100,00 10

103 Antômio Ventura Almoxarife 1200,00 20

104 Marco Aurélio Vendedor 1500,00 10

105 Carla da Silva Secretária 1000,00 30

106 Ivo Pereira Contador 2000,00 40

a) π Nome, Salário (σ salario >= 2000,00 (Empregado))

b) π Nome, Salário (σ salario = 2000,00 (Empregado))

c) π Nome, Salário (σ salario > 2000,00 (Empregado))

d) π RG ,Nome, Salário (σ salario > 2000,00 (Empregado)

e) π RG ,Nome, Salário (σ salario < > 2000,00 (Empregado)

f) σ salario > 2000,00(π Nome, Salário (Empregado))


2. Considerando a tabela abaixo, marque todas as opções que atendam à consulta solicitada.

Listar o nome do departamento e da região onde ele está localizado.

Tabela Departamento

ID Nome Id_Região

10 vendas 1

20 operações 1

30 administrativo 2

40 financeiro 3

Tabela Região

ID Nome

1 norte

2 centro

3 sul

a) π Nome, Nome (DEPARTAMENTO Id_Regiao = Id REGIAO).

b) π Empregado.Nome, Departamento.Nome (DEPARTAMENTO Id_Regiao = Id REGIAO).

c) π Empregado.Nome, Departamento.Nome (DEPARTAMENTO REGIAO).

d) π Empregado.Nome, Departamento.Nome (DEPARTAMENTO X REGIAO).

e) π Empregado.Nome, Departamento.Nome ( ID_REGIAO= REGIAO.ID (DEPARTAMENTO x REGIAO)).

f) π Empregado.Nome, Departamento.Nome (DEPARTAMENTO ID = ID_REGIAO REGIAO).

Referências
Notas
CODD, E. F. A relational model of data for large shared data banks. In: ______. Communications of the ACM, Nova Iorque, v. 13,
n. 6, p. 377-387, jun. 1970.

 
DATE, C. J. Introdução a sistemas de banco de dados. 7. ed. Rio de Janeiro: Campus, 2000.

 
ELMASRI, R.; NAVATHE, S. B. Sistemas de banco de dados. 6. ed. São Paulo: Pearson Addison Wesley, 2011.

 
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistemas de banco de dados. 5. ed. Rio de Janeiro: Campus, 2006.

Próxima aula

Linguagem SQL.

Explore mais

Pesquise na internet sites, vídeos e artigos relacionados ao conteúdo visto.

Em caso de dúvidas, converse com seu professor online por meio dos recursos disponíveis no ambiente de aprendizagem.

Leia os textos:

Modelagem relacional;

O modelo relacional de dados – Parte I;

O que é um modelo de banco de dados?

Você também pode gostar