Logo Passei Direto
Buscar
Material

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Escolha uma das opções e acesse esse e outros materiais sem bloqueio. 🤩

Cadastre-se ou realize login

Ao continuar, você aceita os Termos de Uso e Política de Privacidade

Prévia do material em texto

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 de�ne 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 con�á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
linha da tabela.
 Edgar Frank Codd (Dorset, 23 de agosto de 1923 — Flórida, 18 de abril de 2003) foi
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:
Não possuem duas linhas iguais.
Os atributos devem possuir valores atômicos
(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 �nanceiro.
Campo
O campo de uma relação é de�nido como a área de interseção entre um atributo (coluna) e uma tupla (linha). Por exemplo, na
�gura 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 �gura 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 a�rmamos que o valor de um campo é nulo, estamos a�rmando 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 �gura 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 identi�car 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
�gura 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 a�rmamos que uma PK deve ser única, signi�ca 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 identi�car 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 identi�caçã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 identi�car 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 identi�car 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 identi�caçã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 umavideoaula, 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 �sicamente 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
especi�car 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.
javascript:void(0);
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.
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))
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
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.
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).
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
Notas
Referências
CODD E F A relational model of data for large shared data banks In: Communications of the ACM Nova Iorque v 13 n
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?
javascript:void(0);
javascript:void(0);
javascript:void(0);

Mais conteúdos dessa disciplina