Você está na página 1de 57

Universidade Federal de So Carlos

Departamento de Computao

Bancos de Dados

Mauro Biajiz
Dezembro - 2001

UFSCar - Departamento de Computao

Banco de Dados - Introduo

Bancos de Dados
1.Introduo

oje em dia o termo banco de dados bastante popular em diversas reas de atuao. Com
o aumento da utilizao de computadores na manipulao de dados que envolvem

diversas aplicaes, bancos de dados esto sendo desenvolvidos e aplicados nas diferentes
reas que envolvem o comrcio, a indstria e a pesquisa acadmica. Por esses aspectos j se
pode considerar a importncia do assunto para profissionais da rea de Informtica e afins.
Nesta seo so definidos os conceitos bsicos envolvendo o tema.
Um Banco de Dados (ou Base de Dados) uma coleo de dados relacionados,
organizada e armazenada de forma a possibilitar fcil manipulao, incluindo alteraes,
inseres, remoes e consultas. Os tipos de colees de dados so ilimitados, ou seja,
quaisquer aplicaes do mundo real que possam ser representadas atravs de dados
computveis, podem ser armazenadas em um banco de dados. Exemplos de colees so:
dados de um Banco Financeiro, dados de Controle de uma Universidade, dados de Controle de
Estoque de Empresas, dados sobre os Genes Humanos (projeto Genoma), dados sobre
M etereologia, etc.
A manipulao desses dados armazenados feita por um conjunto de programas
computadorizados denominado Sistema Gerenciador de Bancos de Dados (SGBDs). Um
SGBD tem uma gama de funes pr-implementadas que gerenciam as operaes de insero,
remoo, atualizao e consulta dos dados armazenados.
Os SGBDs e os Bancos de Dados juntos formam um ambiente denominado Sistema de
Banco de Dados (SBD). Pode-se definir esse sistema como um ambiente cujo objetivo global
registrar e manter informao. Um SBD busca oferecer:

L rapidez 6 consultas on-line para informao;

UFSCar - Departamento de Computao

Banco de Dados - Introduo

L disponibilidade total 6 toda a informao contida no interior da base est disponvel o


tempo todo;

L flexibilidade 6 questes
no tratadas tornam-se
tratveis, ou seja, mudanas
so relativamente fceis de se
implementar.

LIntegridade 6 a
duplicao de dados
reduzida, e polticas de
atualizao podem ser
padronizadas, resultando em
consistncia de dados.

Figura 1: Arquitetura de um Sistema de Banco de Dados.

Como um todo, fazem


parte de um SBD:

LDados 6 valores fisicamente registrados no banco de dados;


LHardware 6 memria secundria, unidades de controle, canais de comunicao, etc.
LS oftware 6 SGBD.
LUsurios 6 todos os usurios que esto envolvidos na definio e utilizao de um banco
de dados. Esses usurios podem ser divididos em trs classes:
i)programadores de aplicaes 6 responsveis pela escrita de programas de aplicao que
utilizem o banco de dados;
ii)usurios finais 6 utilizam uma linguagem de consulta fornecida como parte integrante do

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Introduo

sistema, ou podem chamar uma aplicao escrita pelo programador sob a forma de um
programa (efetua operaes de recuperao, criao, eliminao ou modificao);
iii)DBA 6 administrador do banco de dados, ou seja, o responsvel pelo controle do bom
funcionamento do banco de dados.
Todos esses conceitos apresentados at aqui podem ser visualizados atravs da
representao grfica apresentada na Figura 1.
A utilizao de um banco de dados oferece um controle centralizado de seus dados
operacionais com as seguintes vantangens:

L redundncia pode ser reduzida 6 em sistemas de bancos de dados, a redundncia deve


ser controlada, isto , o sistema dever ter conhecimento dessa redundncia e assumir a
responsabilidade de propagar as atualizaes.

L a inconsistncia pode ser evitada 6 atravs de regras muito bem definidas, os dados so
estruturados garantindo-se a consistncia dos dados armazenados.

L concorrncia entre aplicaes 6 os dados podem ser compatilhados por diversas


aplicaes ao mesmo tempo.

L segurana 6 a
integridade pode ser mantida
com a aplicao de restries
de segurana.
usual a utilizao de
uma representao grfica da
arquiteturade um SBD.
Pode-se afirmar que quase
Figura 2: Arquitetura de um SGBD segundo nveis de viso.
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Introduo

todas as vantagens e propriedades de um banco de dados so possveis graas forma como


so esquematizados e estruturados os seus dados. Para que um SGBD possa entender a
estrutura como os dados do banco esto armazenados, h a necessidade que esses dados
estejam esquematizados de forma a serem interpretados pelas funes pr-definidas no
gerenciador. Esse esquema elaborado segundo um Modelo de Dados. Um modelo de dados
compreende uma coleo de elementos de representao com propriedades semnticas e
sintticas pr-definidas. Um elemento ou um conjunto de elementos de representao so
devidamente agrupados e organizados para representar uma poro do mundo real,
constituindo um esquema de dados compreensvel pelo gerenciador.
Agora apresentada uma arquitetura para banco de dados em nveis. Esta arquitetura
pode ser vista na Figura 2, apresentando trs nveis, os quais so denominados esquemas
externo, conceitual e interno.

| O esquema interno descreve a estrutura de armazenamento fsico do banco de dados. O


esquema interno usa um modelo de dados fsico e descreve os detalhes completos de
armazenamento de dados e caminhos de acesso para banco de dados.

| o esquema conceitual descreve a estrutura do banco de dados para toda a comunidade de


usurios. O esquema conceitual esconde os detalhes das estruturas de armazenamento fsico e
concentra-se na descrio das entidades, tipos de dados, relacionamentos, operaes dos
usurios, e restries.

| o esquema externo inclue vrios esquemas externos ou vises dos usurios. Cada esquema
externo descreve a parte da base de dados que um grupo particular est interessado e oculta o
resto do banco para o grupo de usurios.
Essa estrutura em nveis permite a implementao de um conceito extremamente
importante, o qual denominado independncia de dados. A independncia de dados pode
ser definida como a capacidade de se alterar o esquema em um nvel de um sistema de banco
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Introduo

de dados sem ter que alterar o prximo nvel. A independncia pode ser lgica ou fsica.
Independncia lgica de dados - a capacidade de se alterar o esquema conceitual sem ter
que alterar o esquema externo.
Independncia fsica de dados - a capacidade de se alterar o esquema interno sem ter que
alterar o esquema conceitual ou o esquema externo.
Esse conceito efetivamente implementado atravs de mapeamentos realizados entre
os trs nveis.

Esquemas e Instncias

descrio de um banco de dados chamada Esquema do banco de dados. A maioria dos


modelos de dados possuem algumas convenes grficas para diagramar o esquema.

Exemplo de um diagrama de esquema:


Estudante

Nome

Nmero-Estudante

Curso

Nome

Nmero-Curso

Pr-requisito

Nmero-Curso

Class
e

Crditos

Departamento

Nmero-pr-requisito

Os dados que esto armazenados em um determinado momento de tempo no banco de


dados constituem uma Instncia do banco de dados. Dessa forma, os estudantes, cursos e prrequisitos armazenados em um determinado instante constituem uma instncia.
Na prxima seo descrito o M odelo Entidade-Relacionamento.

Prof. Mauro Biajiz

2.Modelo Entidade-Relacionamento

M odelo Entidade-Relacionamento foi apresentado por


Peter Chen em 1976. O modelo baseia-se em representar

os dados do mundo real atravs da definio de conjuntos de


entidades e o relacionamento entre esses conjuntos de
entidades. Um conjunto de entidades representa um conjunto de
elementos do mundo real, como por exemp lo, um conjunto

Figura 3:Conjunto de Entidades

Pessoa representando inmeras pessoas, um conjunto Casa representando inmeras casas, um


conjunto Empresa representando inmeras empresas, etc.
Um conjunto de entidades representando por um retngulo,
como ilustrado na Figura 3. Um elemento do conjunto de
entidades definido como uma Entidade, sendo identificado
por caractersticas individuais definidas atravs do conceito
de atributos. Assim, uma Pessoa pode ser caracterizada
atravs dos atributos Nome, CIC, Sexo, Idade, Altura, etc.

Figura 4: Representao de uma


pessoa particularizada pelos valores de
seus atrbutos.

Cada vez que so atribudos valores para os


atributos de um conjunto de entidades, tem-se a
instanciao (= exemplificao) de uma ocorrncia de
uma entidade da vida real. Na Figura 4, pode-se ver
um exemplo, onde a entidade Pessoa Luza, CIC
243521234-28, do sexo feminino, idade de 20 anos
e altura de 1.70m. Cada atributo deve ser definido
como pertencente a um domnio, e os valores desses

Figura 5: Representao de Atributos.

atributos devem pertencer a esses domnios.


Os atributos desses conjuntos de entidades so representados atravs de seus nomes
envoltos em elipses (crculos ou indicados por setas), as quais ficam ligadas ao conjunto de
entidades que est caracterizando.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

Quando um determinado atributo possui um valor para cada


entidade que caracteriza, ento denominado atributo monovalorado.
Como exemplo, os atributos CPF, Idade, Altura e Sexo possuem
apenas um valor para uma entidade particular Pessoa. Por sua vez,
quando um atributo possui mais de um valor para cada entidade que
caracteriza, ento denominado atributo multivalorado. Como
exemplo, um atributoT elefone pode ter vrios valores para uma

Figura 6: Conjunto de
Entidades P essoa com seus
Atributos.

mesma entidade, e port anto multivalorado. Um atributo


monovalorado ou m ultivalorado pode ter vrios
subcampos, como por exemplo Endereo, que
poderia ser escrito como Rua, Nmero, CEP e
Cidade. Nesse cas o, o atributo denominado
atributo composto. Quando o valor de um atributo
obtido atravs de valores de outros atributos, esse
at ributo denominado atributo derivado. Um
exemplo de atributo derivado o atributo Salrio,
que pode ser obtido pelos valores dos atributos

Figura 7: Relacionamento entre empregado e


empresa.

Salrio-Hora e Horas-Trabalhada-M s. A simbologia desses atributos ilustrada naFigura 5. Em


uma forma mais completa, o conjunto de entidades Pessoa seria representado no M E-R, tal como
na Figura 6. Um Conjunto de Entidades possue vrios atributos para caracteriz-lo. Dentre esses
atributos, deve-se sempre definir um atributo
ou um conjunto de atributos, que com seus
valores

consiga identificar

uma nica

Entidade dentro do Conjunto de Entidades.


Es se atributo ou Conjunto de Atributos

Figura 8:Exemplo de um Conjunto de Relacionamento.

denominado Chave. Uma Chave deve ser, por definio, mnima. M nima, no no sentido de ser
composta pelo menor nmero de at ribut os p ossvel, mas no sentido de que se a chave for
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

composta, nenhum atributo que a compe poder ser retirado, e ainda sim, a composio
resultante continuar sendo Chave. A notao adotada a sublinhao do atributo ou conjunto de
atributos em questo. Quando um conjunto de atributos contm uma chave, esse conjunto forma
uma superchave.
Para a modelagem de uma situao real,
necessrio representar-se o relacionamento entre
os

Conjuntos

de

Entidades . Esses

relacionamentos so denominados conjuntos de


relacionamentos e possuem rica semntica
envolvida. Essa semntica expressa atravs dos
conceitos de cardinalidade, multiplicidade,

Figura 10:Relacionamento ternrio.

participao total ou parcial, e grau de relacionamento. Considere os conjuntos de entidades


Empresa e Empregado, e o conjunto de relacionamentos entre eles Trabalha_em, representando
o fato de empregados trabalharem em empresa. A Figura 6 ilustra essa situao. Esto ilustrados
cinco empregados (e1, e2, e3, e4, e5), trs empresas (c1, c2, c3) e cinco ocorrncias de
relacionamento (r1, r2, r3, r4, r5). Pode-se inferir atravs da figura, que um empregado trabalha em
uma nica empresa, pois cada um participa de apenas uma ocorrncia de relacionamento,
enquanto uma empresa emprega vrios empregados, uma vez que uma empresa pode participar
de mais de uma ocorrncia de relacionamento. Essa percepo da realidade pode ser representada
at ravs do conceito de Cardinalidade de Relacionamento. No modelo, um conjunto de
relacionamentos representado simbolicamente por um losngulo, enquanto a cardinalidade
representada por um nmero. Na Figura 7, est
ilustrado um conjunto de relacionamentos
Trabalha_em, entre os conjuntos de entidades
Empregado e Empresa. A cardinalidade do
conjunto de relacionamentos definida pelos
Figura 9:Atributo de Relacionamento.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

10

nmeros 1 e N. No caso, est representando que um Empregado pode trabalhar em apenas uma
(1) empresa, enquanto uma Empresa pode empregar vrios (N) empregados. As cardinalidades
entre os conjuntos de relacionamentos podem ser de 1 para 1, ou de 1 para N (ou N para 1), ou
de N para N. A letra N representa vrios e pode ser substituda por qualquer outra letra, tal
como, M , P, Q, etc.
O grau do relacionamento indica quantos
conjuntos de entidades esto envolvidos naquele
determinado relacionamento. No exemplo da Figura
7, t em-se que o grau do relacionamento 2,
indicando um relacionamento binrio. Um conjunto

Figura 11:Conjunto de Entidades Fracas.

de relacionamentos pode ter associado vrios conjuntos de entidades, caracterizando


relacionamentos ternrios (grau 3), relacionamentos quaternrios (grau 4), etc. Um exemplo de
relacionamento ternrio, ou seja, com grau 3, est ilustrado na Figura 10. importante obserar
que um relacionamento com grau N > 2 s se justifica se no puder ser decomposto em
relacionamentos com graus menores e ainda manter a semntica desejada. Conjuntos de
relacionamentos tambm podem ter atributos. Considere por exemplo os conjuntos de entidade
Estudante e Disciplina, relacionando-se atravs do conjunto de relacionamento Cursa. Se deseja-se
representar e "armazenar" a Nota que um determinado Estudante obteve em uma determinada
Disciplina, o atributo Nota deve pert encer ao relacionamento, e no aos conjuntos de
relacionamentos. Isso deve-se cardinalidade envolvida no relacionamento (Figura 10).
Os Conjuntos de Entidades destacados at o momento podem ser denominados Regulares.
Existe uma categoria particular de Conjunto de Entidade que envolve o conceito de Entidade
Fraca. Um Conjunto de Entidades Fracas corresponde a um conjunto que no cont exto da
modelagem em que se encontra, no possui identificao prpria. Um exemplo pode ser visto na
Figura 11, onde os conjuntos de Entidades Fracas so denotados por um retngulo duplo. No
primeiro caso, uma Ementa s tem sentido se existir uma Disciplina a ela associada. No segundo
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

11

Figura 12: Exemplo de modelagem.

caso, Dependente s existe se houver um Empregado a ele associado. Note que no adianta usar
um atributo identificador para um Dependente, pois s ter sentido para o ambiente que est
modelado, se esse identificador estiver
associado a um Empregado.
Considere um exemplo de uma
U niversidade na Figura 12, onde est
ilustrada uma modelagem utilizando o M ER.

No

exemplo

so

represent ados

Figura 13:Exemplo do uso de papel no relacionamento.

Estudantes, Professores, Disciplinas, Departamento e o relacionamento ent re eles. Os


relacionamentos representados so M atrcula, entre os conjuntos de entidades Estudante e
Disciplina, Pertence, entre Estudant e e D ep artamento, Oferecida entre Departamento e
Disciplina, Trabalha entre Depart amento e
Professor, e M inistra entre Disciplina e
Professor.

Note que para efeito

de

simplicidade, foram omitidos os atributos no


desenho.
Uma caracterstica importante o de
Papel de Relacionamentos. Em muit as

Figura 14: Exemplos de Auto-relacionamento

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

12

situaes no clara qual a participao de um determinado Conjunto de Entidades em um


Relacionamento. Quando isso ocorre, anota-se o papel do conjunto de entidades no
relacionamento. Na Figura 13 ilustra-se um exemplo. Esto representados dois Conjuntos de
Entidades, que so Empresa e Curso, e dois Conjuntos de Relacionamentos distintos, apesar de
terem o mesmo nome. Em uma situao, Empresa contrata Curso, e na outra, Curso contrata
Empresa caracterizando semnticas totalmente diferentes. O Papel tambm extremamente
importante quando modela-se Conjuntos de Relacionamentos Unrios, ou seja, quando apenas
um Conjunto de Entidades est envolvido. Na Figura 14 Esto ilustrados dois Conjuntos de
Relacionamentos Unrios. No primeiro, o Conjunto de Entidades Disciplina e o Conjunto de
Relacionamentos Pr-Requisitos-so. Nesse caso o papel indica qual Disciplina Pr-requisitode de qual Disciplina. No segundo, o Conjunto de Entidades Empresa e o Conjunto de
Relacionamentos Promover Venda. Nesse caso o Papel indica qual Empresa compra, qual vende
e qual assessora a venda. Note a importncia s emnt ica do papel para o entendimento do
relacionamento.
O M odelo Entidade-Relacionamento apresentado at aqui original como apresentado por
Peter Chen. M uitas extenses foram definidas sobre o modelo. O M E-R com extenses foi
denominado M odelo Entidade-Relacionamento Estendido (M E-RX). Essas extenses envolvem,
entre outras coisas, um refinamento do conceito de Cardinalidade, o qual foi denominado
Multiplicidade. Envolve tambm a utilizao de construtores semnticos mais elaborados, tal
como o da Abstrao de Generalizao e o da Abstrao de Agregao.
A multiplicidade identificada por um par de nmeros entre parnteses, onde o primeiro
indica um limite mnimo e o direito indica um limite mximo. Considere novamente a Figura 6.
a multiplicadade definida da seguinte forma: para que uma Entidade seja um Empregado,
necessrio que trabalhe em pelo menos uma Empresa. Como est sendo definido que ele pode
trabalhar em no mximo uma Empresa, tem-se a multiplicidade (1,1) para o Conjunto de Entidades
Empregado. Para exis t ir uma Entidade Empresa, no necessrio, a princpio, existir um
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

13

Empregado relacionado. Assim, o limite mnimo para a multiplicidade zero. Por outro lado, uma
Empresa pode ter vrios Empregados, contituindo o mximo como um nmero M . A
representao da multiplicidade pode ser vista na Figura 15.
A Abstrao de Generalizao
utilizada em um processo de simplificao e
enriquecimento semntico da modelagem. Em
muitas situaes, vrios Conjuntos de

Figura 15:Exemplo do uso da Multiplicidade.

Entidades com origem em um Conjunto de Entidades comum (superconjunto), so modelados e


utilizados independentemente. Nesses casos, modela-se o Conjunto de Entidades comum
colocando nele todos os atributos que so comuns entre todos os Conjuntos de Entidades
( s u bconjunt os )

nele

cons iderando-se duas

originado s ,
propriedades

importantissimas para a implementao.


Um exemplo pode ser visto na Figura
16.O Conjunto de Entidades Pessoa
representa uma generalizao dos conjuntos
de entidades

Aluno,

P rofes s or

Engenheiro. Os atributos que so comuns

Figura 16: Abstrao de Generalizao

so modelados no conjunto de Entidades


Genrico Pessoa, ficando apenas os especficos de cada um nos respectivos conjuntos. As letras
colocadas no losngulo ao meio, so propriedades da generalizao. A primeira propriedade pode
ser T ou P. O T representa Total e significa que todas as ocorrncias de Entidades a partir do
Conjunto de Entidades Pessoa tem que s er de um dos tipos de Entidades pertencentes aos
conjuntos de entidades especializados Aluno, Professor ou Engenheiro. Caso fosse P, significaria
que poderiam ocorrer Pessoa sem ser dos tipos abaixo.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

14

Abstrao de Agregao

utilizada quando h a necessidade do


estabelecimento de uma associao entre
os Conjuntos de Entidades envolvidos em
um Conjunto de Relacionamentos. A
situao mais comum ocorre quando h
necessidade de associar um relacionamento
a um out ro relacionamento, o que no

Figura 17: Abstrao de Agregao.

possvel. Nesse caso estabelece-s e uma


agregao. Um exemplo pode ser visto na Figura 17, onde os Conjuntos de Entidades Cliente
e Conta corrente relacionam-se, e desse relacionamento gerada a ocorrncia do Conjunto de
Entidades M ovimentao. Assim, o Conjunto de Entidades M ovimentao relaciona-se com o
Conjunto de Entidades Correntista originado de uma Agregao.
Os conceitos do M E-R aqui apresentados cobrem todo o modelo original, sendo que,
outros conceitos podem ser encontrados na bibliografia citada.
Em seguida, so descritas algumas especificaes que envolvem problemas para serem
utilizados como exerccios de modelagem.

Especificaes simplificadas
(1)Agncia de Turismo
Deseja-se criar um banco de dados para uma agncia de turismo contendo informaes sobre
recursos oferecidos pela cidades que fazem parte da programao de turismo da agncia. As
informaes a serem mantidas sobre cada cidade referem-se a hotis, restaurantes e pontos
tursticos. Sobre os hotis deseja-se guardar seu nome,endereo, categoria (5 estrelas, 4 estrelas
etc), os tipos de apartamentos existentes, o valor da diria de acordo com o tipo do apartamento.
Sobre cada cidade deve-se armazenar seu nome, estado e um cdigo nico para buscas. Sobre
os restaurantes de interesse guardar o nome, endereo e a categoria (de luxo, simples, etc).
Nesse banco esto sendo considerados como pontos tursticos igrejas, casas de show e museus,

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

15

entre outros. No caso de igrejas deseja-se manter informaes sobre o seu nome, a data de
construo, a religio em que ou foi utilizada, o endereo, uma descrio e o estilo de
construo. Para casas de show devem ser guardados o seu nome, o tipo de show, o endereo,
uma descrio e os dias de funcionamento e horrio. Para museus deseja-se guardar seu nome,
a data de fundao, o nmero de salas, o endereo, uma descrio e fundadores. Sobre os outros
pontos tursticos deseja-se armazenar somente informaes gerais, tais como, um nome, uma
descrio e o endereo.
(2)Construtora EmHab
A empresa de habitao EMHAB est desenvolvendo um sistema de controle de todos os
condomnios que j construiu. Cada condomnio possui um conjunto de prdios (edifcios com
vrios andares) que obedecem uma determinada numerao. Assim, o condomnio X de Tal
possui, por exemplo, 36 prdios, cada prdio possuindo Y apartamentos. Deseja-se saber dados
sobre os moradores de cada apartamento/prdio, incluindo nome, cic, rg, sexo, idade, e a renda
mdia de todos os moradores de um determinado apartamento. Um apartamento dever ser
identificado, dentro de um prdio, por um nmero e pelo seu andar - e um prdio dever ser
identificado, em um determinado condomnio, tambm por um nmero. Podem ser colocados
mais dados sobre o prdio, tais como, as cores de sua pintura, quantos andares contm, etc.
Para identificar um condomnio, pode-se atribuir um nome, a cidade, o bairro em que se localiza
e um nmero de identificao. No se esquea de representar as cardinalidades, os atributos
(multivalorados, derivados, etc, se existirem), a participao dos conjuntos de entidades nos
relacionamentos, etc.
(3)Rdio FM
Uma Rdio FM decidiu criar um sistema automatizado para atender aos seus ouvintes. O
objetivo do sistema o atendimento imediato pelo telefone, ou seja, ao atender um pedido para
tocar uma msica, o locutor poder localiz-la imediatamente e toc-la.
Para esse fim, organizou o acervo de discos da seguinte maneira: numerou as prateleiras
e os discos, criou um banco de dados com todas as msicas e idealizou a busca atravs de ndices.
O sistema dever ento armazenar todos os dados referentes s prateleiras, aos discos, s msicas
contidas em cada disco, aos compositores de cada msica, durao de cada msica em minutos,
data de gravao, etc. Deve-se considerar que uma msica pode estar em vrios discos, pode ter
vrios interpretes, mas sempre tem os mesmos compositores. A organizao das preteleiras pode
ser feita de vrias formas. Uma sugesto a organizao considerando os estilos das msicas em
um disco.
Estando com esses dados armazenados, o sistema gerenciar os programas de msica,

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

16

sendo capaz de atender imediatamente aos pedidos, gerar relatrios detalhados com os pedidos,
gerar estilos de programao, etc. O sistema dever tambm cadastrar os ouvintes e possibilitar
o envio de mala direta aos mesmos.
(4)Agncia de Modelos
O sistema a ser modelado ser utilizado pelo Sindicato das Agncias de Moda e Desfile, devendo
guardar informaes sobre as diversas Agncias cadastradas no sindicato.
Uma Agncia possui armazenado, em seu banco de dados, todos os dados sobre todas as
pessoas com quem tem relao. Entre as pessoas armazenadas esto os modelos masculinos e
femininos, os clientes (fabricantes de roupas, lojistas), e outras pessoas que simplesmente gostam
de moda (pessoas comuns). Sobre modelos, ficam armazenados dados como nome completo, CPF,
endereo, cor dos olhos, cor da pele, tamanho (altura, coxas, cintura, busto), peso, sexo e RG.
Sobre os Clientes, ficam armazenados nome completo, R G, CPF, endereo, sexo, informao
dizendo se proprietrio de loja ou fbrica, e um cdigo nico para sua identificao. Sobre
outras pessoas, ficam guardados o CPF, o endereo, o nome completo, e um atributo descritivo
indicando qual o seu interesse em desfiles. Os modelos de uma determinada Agncia pertencem
a uma nica Agncia, no podendo desfilar para outras Agncias. Devem ser armazenados todos
os Desfiles organizados por uma determinada Agncia, guardando dados, como Nome_Desfile,
a data, o Local, o Estilo_do_Desfile. Para cada Desfile, deseja-se saber quais foram os modelos
que desfilaram, quais foram os clientes que o frequentaram, e quais pessoas comuns tambm
estiveram presentes, ou seja, que assistiram ao desfile. interessante notar que os desfiles dividemse naturalmente entre Desfiles de Moda-Vero e Desfiles de Moda-Inverno. de interesse tambm
guardar informaes sobre o nmero de pessoas que fequentou um determinado desfile, a durao
em minutos de um determinado desfile e quais foram os patrocinadores de um determinado desfile.
(5)Cu
O cu composto por moradores comuns, por anjos, por santos e, claro, por Deus. Os anjos e
santos desempenham funes particulares. Os anjos so divididos em anjos operrios e anjos da
guarda. Os anjos da guarda so alocados para olharem por mortais ainda na terra. Cada
mortal tem dois anjos que o guardam, e cada anjo da guarda alocado para apenas um mortal.
Os anjos operrios desempenham funes no cu, as quais so denominadas funes celestiais. Essas
funes so alocadas para inmeros anjos, enquanto um anjo pode ser responsvel por inmeras
dessas tarefas. Os santos ficam o dia todo atendendo pedidos provenientes dos mortais. Em
algumas vezes, esses atendimentos so entendidos como milagres. Os moradores comuns passam
o dia orando e se purificando, e tem a funo de venerar santos e Deus por uma determinada
quantia de horas por dia. Durante o restante do tempo, esses moradores descansam. Os dados
que devem ser armazenados sobre os anjos so cod_anjo, cor_asas, nome e idade; sobre os santos
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Banco de Dados - Modelo E-R

17

so: cod_santo, cor_vestes, tempo_beatificao, nome e idade; sobre os moradores comuns: cod_mor,
grau_luz, nome e as horas que ora por dia. Alm de tudo isso, um anjo sempre supervisionado
por outros anjos, o qual pode supervisonar vrios anjos. Sobre Deus, no se sabe muita coisa, e
por isso atribui-se apenas um cdigo para leitura.
(6)Campeonato
A especificao refere-se ao controle de um campeonato de futebol. Participam do campeonato 24
equipes. Cada equipe possui um nome, nome de seu tcnico, nome de seus 11 titulares, nome de
seus 11 reservas, uniformes nmero 1 e 2 com a cor da camisa, das meias e do calo. Deve-se
relacionar com cada equipe, as informaes sobre a que pas pertence. Cada pas possui nome,
continente, populao, tamanho em km quadrados, renda-percapita e condio (pas desenvolvido,
em desenvolvimento ou subdesenvolvido). Devem ser guardadas informaes sobre as partidas
realizadas. Sobre cada partida deve-se guardar as equipes participantes, o placar, o nome do juiz
principal, a localizao do campo (cidade) e o nome do campo.

Prof. Mauro Biajiz

3.Modelo Relacional

Modelo Relacional foi apresentado por Codd em 1970. Seus dados so vistos como
armazenados em

"tabelas", tais como a da


Figura 18. Todos os
conceitos definidos para o

NMERO

ORIGEM

DEST INO

PART IDAS

CHEGADAS

83

So Paulo

Manaus

11:30

19:00

84

So Paulo

Braslia

13:00

18:00

modelo esto ligados

213

Rio de
Janeiro

So Paulo

10:00

10:35

representao de uma

214

Rio de
Janeiro

So Paulo

10:30

11:05

tabela, sendo definidos


como:

Figura 18:Relao Vos.

L uma tabela uma


relao;

L uma linha em uma relao representa uma instncia com valores definidos entre um
conjunto de valores, recebendo o nome de tupla;

L uma tupla composta de valores os quais so designados como atributos;


L um atributo pode assumir um valor dentro de um conjunto de valores possveis, conjunto
esse denominado domnio do atributo.

L toda relao possui um subconjunto de nomes de atributos que tem a propriedade de que
quaisquer tuplas podem ser distingidas umas das outras, atravs dos valores
correspondentes aos atributos do subconjunto. Esse subconjunto denomina-se chave
estrangeira.

L grau de uma relao o nmero de atributos que essa relao possui.


Considerando-se as definies acima, identifica-se na relao Vos, cinco atributos que
so: Nmero, Origem, Destino, Partidas e Chegadas. Esses atributos juntos formam uma
relao de grau 5, composta de 4 tuplas. Para identificar uma tupla dentro de uma relao,
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

19

necessrio o estabelecimento de um ou mais campos como chave dessa relao. No exemplo


acima, o atributo Nmero identifica univocamente uma tupla, e pode ser designado como
chave da relao.
A conceituao apresentada acima tm suas definies baseadas na Teoria Relacional, e
so apresentadas a seguir.
Um esquema de relao R, denotado por R(A1,A2, ...,An ) composto por um nome de
relao R e uma lista de atributos A1,A2, ...,An . Para cada nome de atributo Ai, existe um
conjunto Di denominado domnio de Ai ou dom(Ai). Um nome de atributo pode ser chamado
smbolo do atributo ou simplesmente atributo.
Uma base de dados relacional composta pelas instncias das suas relaes, e uma
relao instanciada composta por instncias de suas tuplas. A aplicao de uma operao
sobre uma relao instanciada, tal como incluso e excluso, faz com que o nmero de tuplas
instanciadas varie, criando-se uma nova relao.
Para a identificao de uma tupla, uma chave tem que ser definida. Antes de defini-la,
necessrio definir-se o conceito de superchave. Uma superchave de uma relao r um subconjunto K = {A1,A2, ...,An} de R, onde para duas tuplas
, ou seja, no existem duas tuplas com os mesmos

valores para todos os atributos em K.


Chave de uma relao r, um sub-conjunto K de R, tal que,
que satisfaa essa propriedade, ou seja, uma chave no pode

ter nenhum de seus atributos removidos e ainda continuar sendo uma chave. Considerando a
relao Vos, {Nmero} uma chave (e uma superchave), enquanto {Nmero, Partidas}
uma superchave, mas no chave.
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

20

Em geral, um esquema de relao pode ter mais do que uma chave. Neste caso, cada
uma das chaves chamada de chave candidata (ou chave secundria). comum designar
uma das chaves candidatas como chave principal ( ou chave primria) da relao. Por
conveno, os atributos que formam a chave principal de um esquema da relao so
sublinhados. Note que, quando um esquema da relao tem muitas chaves candidatas, a
escolha de uma delas para ser chave principal feito de forma arbitrria; entretanto,
usualmente melhor escolher a chave principal com um nico atributo ou um pequeno nmero
de atributos.
3.1.Esquemas de Banco de dados Relacional e Restries de Integridade
m banco de dados relacional usualmente contm muitas relaes, com tuplas nas relaes

que esto relacionadas de vrias formas.

CUm esquema de banco de dados relacional S um conjunto de esquemas de relao


S={R1, R2,..., Rm} e um conjunto de restries de integridade IC.

CUma instncia de banco de dados relacional DB de S um conjunto de instncias de relao


DB={r1, r2,..., rm} tal que, cada ri uma instncia de Ri, e tal que as relaes ri satisfaam as
restries de integridade especificadas em IC.
Restries de integridade so regras com respeito aos valores que podem ser
armazenados nas relaes e que devem ser sempre satisfeitas, em quaisquer das relaes do
banco de dados.
Existem trs restries consideradas necessrias para um banco de dados relacional:
Restrio de Unicidade de Chave, Restrio de Integridade da Entidade e Restrio de
Integridade Referencial.
(i)Restrio de Unicidade de Chave
Uma chave principal (candidata) no pode ter o mesmo valor em duas tuplas distintas da

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

24

mesma relao.
(ii)Restrio de Integridade da Entidade
A chave principal de qualquer relao no pode ter valor nulo em nenhuma tupla da relao.

(iii)Restrio de Integridade Referencial


O conceito de integridade referencial envolve duas relaes e o conceito de chave estrangeira.
usada para manter a consistncia entre tuplas de duas relaes. A restrio de integridade
referencial especifica que uma tupla em uma relao que refere-se a uma outra relao deve se
referir a uma tupla existente naquela relao. Essa referncia realizada atravs da chave
estrangeira.
Chave estrangeira - um conjunto de atributos FK no esquema de relao R1 uma chave
estrangeira se satisfizer as seguintes condies:

C Os atributos em FK possuem o mesmo domnio dos atributos PK da chave primria de um


outro esquema de relao R2; diz-se que os atributos FK referenciam a relao R2.

C Um valor de FK em uma tupla t1 de R1, ou ocorre como um valor de PK para alguma tupla t2,
ou nulo. No primeiro caso, tem-se t1[FK] = t2[PK], e diz-se que a tupla t1 referencia
ou faz referncia tupla t2.
Restries de integridade referencial tipicamente aparecem a partir de relacionamentos
entre entidades. Note que uma chave estrangeira pode se referir sua prpria relao. Em um
sistema relacional, desejvel que a linguagem de definio de dados (DDL) inclua provises
para especificar os vrios tipos de restries de forma que o SGBD possa automaticamente
garanti-las. Existe uma outra classe de restries gerais, algumas vezes chamadas de restries
de integridade semntica, que devem ser especificadas e garantidas em um banco de dados
relacional. Exemplos de tais restries so o salrio de um empregado no deve exceder o
salrio de seu supervisor e o nmero mximo de horas que um empregado pode trabalhar em
todos os projetos, por semana, 56. Alguns SGBDs relacionais comerciais oferecem
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

25

Modelo Relacional

mecanismos para especificao e garantia destas restries.

3.2.A lgebra Relacional


ma linguagem de consulta uma linguagem na qual um usurio requisita informaes do

banco de dados. Essas linguagens so tipicamente de mais alto nvel do que as linguagens

de programao comuns. Linguagens de consulta podem ser classificadas como procedurais e


no-procedurais. Numa linguagem procedural, o usurio instrui o sistema a executar uma
seqncia de operaes no banco de dados a fim de computar o resultado desejado. Numa
linguagem no-procedural, o usurio descreve a informao desejada sem fornecer um
procedimento especfico para obter tal informao.
A maioria dos sistemas de banco de dados relacionais comerciais oferece uma linguagem
de consulta que inclui elementos de abordagens tanto procedurais como no-procedurais. A
lgebra relacional uma linguagem procedural, que possui uma coleo de operaes que so
utilizadas para manipular relaes inteiras. O resultado de cada operao uma nova relao,
que pode ser manipulada posteriormente.
As operaes da lgebra relacional so usualmente divididas em dois grupos:

Coperaes da Teoria de Conjuntos da matemtica: unio, interseo, diferena, e produto


cartesiano.

Coperaes desenvolvidas especificamente para bancos de dados relacionais, que inclui


seleo, projeo e juno, entre outras. A tabela a seguir ser usada para exemplificar as
operaes.
Empregado
Nome
Joo

Sobren
Silva

RG
DataN
123456789 09.01.55

Endereo
Rua 15 Novembro, 731,

Sexo
M

Salrio
3000

RG Super
333445555

NroD
5

So Carlos

Prof. Mauro Biajiz

UFSCar - Departamento de Computao


Francisco

Souza

Alice

333445555 08.12.45

26

Modelo Relacional
Rua Jorge Assef, 100,

4000

888665555

Fernan de 999887777 18.03.75

S.P aulo
Rua9 de Julho, 535, So

2500

987654321

Joana

s
P ereira

987654321 20.06.31

Carlos
Rua Tiradentes, 291,

4300

888665555

Rodolfo

Nogueira 666884444 15.09.52

Rib.P reto
Av.So Carlos,1005,

3800

333445555

So Carlos

3.2.1.A operao SELECT


A operao SELECT utilizada para selecionar um subconjunto de tuplas numa relao que
satisfaa uma condio de seleo. Por exemplo, para selecionar o subconjunto de tuplas de
EM PREGADO que trabalha no departamento 4 ou cujo salrio maior do que R$ 3000,00,
pode-se especificar cada uma dessas duas condies com a operao SELECT, como segue:

FNROD=4(EM PREGADO)

FSALARIO>3000 (EM PREGADO)

Em geral, a operao SELECT denotada por:

F<condio da seleo> (Nome da Relao)


onde o smbolo F (sigma) usado para denotar o operador SELECT e a condio de seleo
uma expresso Booleana especificada nos atributos da relao.

A relao resultante da

operao SELECT tem os mesmos atributos da relao especificada em <nome da relao>. A


expresso Booleana especificada em <condio de seleo> tem a forma:
<Nome do Atributo> <operador de comparao> <valor constante>, ou
<Nome do Atributo> <operador de comparao> <Nome do Atributo>

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

27

Modelo Relacional

onde <Nome do Atributo> o nome de um atributo de <nome da relao>, <operador de


comparao> normalmente um dos seguintes operadores {=, <, #, >, $, } e <valor
constante> um valor constante do domnio do atributo. As clusulas podem ser
arbitrariamente conectadas pelos operadores Booleanos AND, OR e NOT, para formar uma
condio de seleo geral. Por exemplo, para selecionar as tuplas para todos os empregados
que ou trabalham no departamento 4 e recebem mais de R$ 4000,00 por ano, ou trabalham no
departamento 5 e recebem mais de R$ 3000,00, podemos especificar a seguinte operao
SELECT:

F(NROD=4 AND

SALARIO>4000) OR ( NROD=5 AND SALARIO>3000)

(EM PREGADO)

O resultado mostrado na figura 19.


Nome
F rancisc

Sobre
Souza

RG
33344555

DataN
08.12.45

Endereo
Rua Jorge Assef, 100,

Sexo
M

Salrio
4000

RG Super
888665555

NroD
5

o
Joana

P ereira

5
98765432

20.06.31

S.P aulo
Rua Tiradentes, 291,

4300

888665555

Rodolfo

1
Nog u e ir 66688444

15.09.52

Rib.P reto
Av.So Carlos,1005,

3800

333445555

Figura 19 - Resultado da Seleo:

So Carlos

F(NROD=4 AND

SALARIO>4000) OR ( NROD=5 AND SALARIO>3000)

(EM PREGADO)
Note que os operadores de comparao no conjunto {=, <, #, >, $, } aplicam-se a
atributos cujos domnios so valores ordenados, tais como domnios numricos ou datas.
Domnios de strings de caracteres so considerados ordenados baseados na seqncia dos
caracteres. Se o domnio de um atributo um conjunto de valores desordenados, ento
somente os operadores de comparao no conjunto {=, } podem ser aplicados ao atributo.
Um exemplo de um domnio desordenado o domnio Cor={vermelho, azul, verde, branco,
amarelo, ...} onde no existe qualquer ordem especificada entre as vrias cores. Alguns
domnios permitem tipos adicionais de operadores de comparao; por exemplo, um domnio
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

28

de strings de caracteres pode permitir o operador de comparao SUBSTRING-OF.


O grau da relao resultante de uma operao SELECT o mesmo da relao R original
na qual a operao aplicada, pois possui os mesmos atributos de R. O nmero de tuplas na
relao resultante sempre menor ou igual ao nmero de tuplas na relao original R.
Note que a operao SELECT comutativa; isto , F<cond1>(F<cond2>(R)) =

F<cond2>(F<cond1>(R)). Assim, uma seqncia de SELECTs podem ser aplicada em qualquer


ordem. Alm disso, podemos sempre combinar uma cascata de operaes SELECT em uma
nica operao SELECT com uma condio conjuntiva (AND), isto :

F<cond1>(F<cond2>(...(F<condn>(R))...)) = F<cond1> AND <cond2> AND ... AND <condn>(R).

3.2.2.A Operao PROJECT


A operao PROJECT seleciona certas colunas da tabela e descarta as outras colunas.
Exemplo: Para listar o nome, o sobrenome e o salrio de cada empregado, pode-se usar a
operao PROJECT da seguinte forma:

BNOME, SOBREN, SALARIO (EM PREGADO)


Nome

Sobren

Salrio

Joo
Francisco
Alice
Joana
Rodolfo

Silva
Souza
Fernandes
P ereira
Nogueira

3000
4000
2500
4300
3800

Figura 20. Resultado da operao: BNOME, SOBREN, SALARIO (EM PREGADO)


A forma geral da operao PROJECT :

B<lista de atributos> (<Nome da Relao>)

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

29

onde B (pi) o smbolo usado para representar a operao PROJECT e <lista de atributos>
uma lista de atributos da relao especificada por <Nome da Relao>. A relao resultante tem
somente os atributos especificados em <lista de atributos> e na mesma ordem que aparecem na
lista. Assim, seu grau igual ao nmero de atributos em <lista de atributos>.
A operao PROJECT remove implicitamente qualquer tupla duplicada, assim o resultado
de uma operao PROJECT um conjunto de tuplas e portanto uma relao vlida. O nmero
de tuplas em uma relao resultante de uma operao PROJECT sempre menor ou igual ao
nmero de tuplas da relao original. Se a lista de projeo inclui uma chave da relao, a relao
resultante tem o mesmo nmero de tuplas que o original. A comutatividade no mantida em
PROJECT.

3.2.3.Seqncias de Operaes e Renomeao de Atributos


As operaes podem ser aplicadas de forma aninhada, usando uma nica expresso da lgebra
relacional, como a seguir, cuja expresso recupera o primeiro nome, o ltimo nome, e o salrio de
todos os empregados que trabalham no departamento cujo cdigo 5:

BNOME,SOBREN,SALARIO (FNROD=5 (EM PREGADO))

Nome

Sobren

Salrio

Joo
Francisco
Rodolfo

Silva
Souza
Nogueira

3000
4000
3800

Figura 21 Resultado da operao: BNome,Sobren,Salrio (FDN0=5 (EM PREGADO))


ou podemos criar relaes resultantes intermedirias, dando um nome para cada relao
intermediria:

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

30

Modelo Relacional

DEP5EM PS 7 FNROD=5 (EM PREGADO)


RESULT 7 BNOME, SOBREN, SALARIO (DEP5EM PS)

Podemos tambm utilizar esta tcnica para renomear os atributos nas relaes intermedirias e
resultantes, como a seguir. Isso pode ser til na conexo com operaes mais complexas tais como
UNION e JOIN.
TEM P 7 FNROD=5 (EM PREGADO)
R(Nome, sobrenome, Salrio) 7 BNOME, SOBREN, SALARIO (TEM P)

Temp
Nome

Sobren

Joo

Silva

Fra n cisc Souza


o
Rodolfo

SSN

Endereo

Sexo

Salri

RG Super

NroD

12345678

09.01.55 Rua 15 Novembro, 731, So

o
3000

333445555

9
33344555

Carlos
08.12.45 Rua Jorge Assef, 100,

4000

888665555

S.P aulo
15.09.52 Av.So Carlos,1005, So

3800

333445555

5
N o gueir 66688444
a

DataN

Carlos

Figura 22 - Resultado da Seleo: Temp

7 FNROD=5 (EM PREGADO)

R
Nome

Sobrenome

Salrio

Joo
Francisco
Rodolfo

Silva
Souza
Nogueira

3000
4000
3800

Figura 23 - Resultado da Projeo: R(Nome, Sobrenome, Salrio) BNOME, SOBREN, SALARIO (Temp)

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

31

3.2.4.Operaes da Teoria de Conjuntos


O prximo grupo de operaes da lgebra relacional so operaes matemticas padres em
conjuntos. Elas se aplicam ao modelo relacional, pois uma relao definida como um conjunto
de t uplas e pode ser usada para processar as tuplas em duas relaes como conjuntos . P or
exemplo, para recuperar os RGs de todos os empregados que trabalham no departamento 5 ou
supervisione diretamente um empregado que t rabalhe no departamento 5, podemos utilizar a
operao UNION:
DEP5EM PS 7 FNROD=5 (EM PREGADO)
RESULT1 7 BRG (DEP5EM PS)
RESULT2 7 BRGSUPER (DEP5EM PS)
RESULT 7 RESULT1 c RESULT2

A relao RESULT1 tem os RGs de todos os empregados que trabalham no departamento 5,


enquanto que RESULT2 tem os RGs de todos os empregados que supervisionam diretamente um
empregado que trabalha no departamento 5. A operao UNION produz as tuplas que ou esto
em RESULT1 ou esto em RESULT2 ou esto em ambas.
RES ULT1
RG
123456789
333445555
66884444

RES ULT2

RES ULT
RG

RG
333445555
888665555

123456789
333445555
666884444
888665555

Figura 24 Resultado da Operao: RESULT 7 RESULT1 c RESULT2

Para a utilizao dessas operaes em bancos de dados relacionais devemos garantir que
o resultado da aplicao dessas operaes em duas relaes gere uma terceira relao tambm
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

32

vlida. P ara isso, as duas relaes envolvidas devem possuir o mesmo tipo de tuplas; esta
condio chamada compatibilidade de unio.
Duas relaes R(A1, A2, A3, ..., An) e S(B1, B2, B3, ..., Bn) so ditas unio-compatveis
se possuem o mesmo grau n, e se dom(Ai)=dom(Bi) para 1< i < n. Isto significa que as duas
relaes possuem o mesmo nmero de atributos e que cada par de atributos correspondentes
possuem o mesmo domnio.
Estudante
N
Susan
Ramesh
Johnny
Barbara
Amy
Jimmy

S
Yao
Shah
Kohler
Jones
Ford
Wang

Instrutor
Nome
John
Ricardo
Susan
Francis
Ramesh

S obrenome
Smith
Browne
Yao
Johnson
Shah

Figura 25 Duas relaes Unio-Compatveis

Podemos definir as operaes UNION, INTERSECTION e DIFFEREN CE em duas


relaes unio-compatveis R e S, como se segue:

UNION: O resultado desta operao, denotada por R c S, uma relao que inclui todas as tuplas
N R e S. Tuplas duplicadas
S
que esto em R ou em S ou em ambas
so eliminadas.
Susan
Yao
Ramesh
Shah
Johnny
Kohler
Barbara
Jones
Amy
Ford
Jimmy
Wang
Ernest
Gilbert
John
Smith
Ricardo
Browne

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

33

Figura 26 Estudante c Instrutor

INTERS ECTION: O resultado desta operao, denotada por R 1 S, uma relao que inclui
todas as tuplas que esto em ambas R e S.
N
Susan
Ramesh

S
Yao
Shah

Figura 27 Estudante 1 Instrutor

Obs.: ambas as operaes UNION e INTERSECTION :

Cso comutativas, ou seja, R c S = S c R e R 1 S = S 1 R


Cso aplicadas a qualquer nmero de relaes
Cso associativas, ou seja, R c (S c T) = (R c S) c T e R 1 (S 1 T) = (R 1 S) 1 T

DIFFERENCE: O resultado dessa operao, denotada por R - S, uma relao que inclui todas
as tuplas que esto em R mas no esto em S.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

(a)
N
Johnny
Barbara
Amy
Jimmy
Ernest

Figura 28

Modelo Relacional

34

(b)

S
Kohler
Jones
Ford
Wang
Gilbert

(a) ESTUDANTE - INSTRUTOR

Nome
John
Ricardo
Francis

S obrenome
Smith
Browne
Johnson

(b) INSTRUTOR - ESTUDANTE

A operao DIFFERENCE no comutativa, pois em geral, R-S S-R. Note que a


conveno adotada que a relao resultante tem os mesmos nomes de atributos da primeira
relao R.

Produto Cartesiano ( X )
Combina tuplas de duas relaes R e S, resultando em uma relao que tem uma tupla para cada
combinao de tuplas - uma de R e outra de S:
Q(A1, A2,..., An, B1, B2,..., Bm) 7 R(A1, A2,..., An) X S(B1, B2,..., Bm)

Exemplo:

R2

R1
Nome

Sobren

Joo
Francisco

Silva
Souza

NroD
1
2

NomeD
P esquisa
Administrao

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

35

R1 X R2
Nome

Sobren

NroD

NomeD

Joo
Joo
Francisco
Francisco

Silva
Silva
Souza
Souza

1
2
1
2

P esquisa
Administrao
P esquisa
Administrao

JOIN - Operao Juno ( |O| )


Denotada por |X|, utilizada para combinar tuplas de duas relaes, atravs de um ou mais
atributos comuns s duas relaes. A tabela resultante contm as colunas das duas tabelas que
participaram da juno:
Q(A1, A2,..., An, B1, B2,..., Bm) 7 R(A1, A2,..., An) |X| S(B1, B2,..., Bm)
Esta operao muito importante para qualquer banco de dados relacional com mais do que uma
relao, pois nos permite processar relacionamento entre relaes.
A forma geral de uma operao JOIN em 2 relaes R(A1, A2,..., An) e S(B1, B2,..., Bm) :
R |X| <condio de juno> S
Uma condio de juno da forma: <condio> AND <condio> AND ... AND
<condio>
onde a condio da forma Ai

2 Bj, A e B so atributos com o mesmo domnio, e 2 um dos

operadores de comparao {=, <, #, >,

$, }.

Uma operao JOIN com uma condio de juno geral chamada THETA JOIN. A
operao de juno mais comumente usada envolve na condio de JOIN somente comparaes
de igualdade. Nesse caso ela chamada EQUIJOIN (notao |X| ). Essa operao conserva pares

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

36

de atributos com valores idnticos em cada tupla. A operao Natural Join (notao * ) conserva
apenas uma das colunas de valores repetidos. O exemplo a seguir usa a EQUIJOIN.
Exemplo: Considere as relaes:
Empregado
Nome

Sobren

RG

NroD

Joo
Francisco
Alice
Joana
Rodolfo

Silva
Souza
Fernandes
P ereira
Nogueira

123456789
333445555
999887777
987654321
666884444

5
5
4
4
5

Departamento
NDepto

NomeD

RGGerente

1
2
3

P esquisa
Administrao
Finanas

333445555
987654321
666884444

Suponha que queiramos recuperar o nome do gerente de cada departamento. Para obter o
nome do gerente, precisamos combinar cada tupla de Departamento com a tupla de Empregado
cujo valor de RG seja igual ao valor de RGGerente na tupla de Departamento.
DEPT_GER 7 DEPARTM ENT |X| RGGERENTE=RG EM PLOYEE
RESULT

7 B NDEPTO, NOME, SOBREN (DEPT_GER)

Dept_Ger
Ndepto
1
2
3

NomeD
P esquisa
Administrao
Finanas

RG G erente
333445555
987654321
666884444

Nome
Francisco
Joana
Rodolfo

Sobren
Souza
P ereira
Nogueira

RG
333445555
987654321
666884444

NroD
5
4
5

Result

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Ndepto

Nome

Sobren

1
2
3

Francisco
Joana
Rodolfo

Souza
P ereira
Nogueira

Modelo Relacional

37

A Operao Diviso (division)


A operao DIVIS ION til para um tipo especial de consulta que algumas vezes ocorrem em
aplicaes de banco de dados. Considere o exemplo : "Recupere os nmeros dos empregados que
trabalham em todos os projetos.

Trabalha

Projeto
NomeP

CodProj

P ROJETO A
P ROJETO B
P ROJETO C

P1
P2
P3

R17 BCODPROJ(PROJETO)

NroD
1
3
1

NroE

NroProj

Horas

1
1
2
2
2
3
4
4
4

P1
P3
P1
P2
P3
P2
P1
P2
P3

10
15
10
20
15
30
10
10
20

R2 7 BNROE, NROPROJ(TRABALHA)

CodProj

NroE

NroProj

P1
P2
P3

1
1
2
2
2
3
4
4
4

P1
P3
P1
P2
P3
P2
P1
P2
P3

Em geral a operao DIVIS ION aplicada a duas relaes R(Z)

RESULT

7 R2R3

NroE
2
4

S (X), onde X f Z.
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

38

Tomemos Y=Z-X; t emos em Y o conjunto de atributos de R que no so atributos de S . O


resultado da diviso uma relao T(Y) que inclui a tupla t se uma tupla tR cujo tR[Y] = t aparece
em R, com tR[X] = tS para toda tupla tS em S . Isso significa que, para uma tupla t aparecer no
resultado T da diviso, os valores em t devem aparecer em R na combinao com toda tupla em
S.
O operador DIVISION pode ser expresso como uma seqncia de operaes B, O e - :
T1 7 By(R)
T2 7 By((S

O T1) - R)

T 7 T1 - T2
Considere como exemplo as relaes R e S . A diviso entre as tabelas R e S resulta em uma tabela
T = R S.

R
A

a1

b1

a1

a2

b1

a2

a3

b1

a3

a4

b1

a1

b2

a3

b2

a2

b3

a3

b3

a4

b3

a1

b4

a2

b4

a3

b4

T
B
b1
b4

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Modelo Relacional

39

Exerccios:
Faa a expresso na lgebra Relacional,das seguintes consultas:
1. Busque os nomes de empregados que trabalham em todos os projetos controlados pelo
departamento nro 5.
2. Faa uma lis t a de nmeros de projetos para projetos que envolvem um empregado cujo
sobrenome 'Silva', ou como trabalhador ou como gerente do departamento que controla o projeto.
3. Liste o nome de todos os empregados que no possuem dependentes.
4. Liste os nomes de gerentes que possuam no mnimo um dependente.
OBS: Instancie a relao dependente cujo esquema de relao :
DEPENDENTE(RG, Nome-Dependente, Sexo,DataNasc, Grau_Parentesco)+

Prof. Mauro Biajiz

4.Mapeamento entre Esquemas


Modelo Entidade-Relacionamento 6 Modelo Relacional

M E-R o mais usado para a modelagem de esquemas de bancos de dados. Isso ocorre pelo
fato do modelo ser simples, possuir alto grau de capacidade de representao semntica e

apresentar os dados em nvel lgico. Aps a modelagem ser idealizada atravs do M E-R, ela
traduzida para a representao do M odelo Relacional. Esse procedimento adotado porque
os gerenciadores no mercado so em sua maioria relacionais.
O mapeamento pode facilmente ser dividido em passos algoritmicos, o que possibilita
uma traduo direta e normalizada dos dados.

Passo 1: para cada entidade regular E em um esquema E-R, cria-se uma relao R que inclui todos
os atributos simples de E. Para um atributo composto inclui-se somente os componentes simples
do atributo. escolhido um dos atributos chave de E, como chave primria de R. Se a chave de
E composta, ento o conjunto de atributos simples, juntos formaro a chave de R.

Figura 29:Mapeando entidades regulares.

Passo 2: para cada entidade fraca W no esquema E-R com seu prprio tipo de entidade E, cria-se
uma relao R e inclui-se todos atributos simples (ou componentes simples dos atributos
compostos) de W como atributos de R. Em adio, ns inclumos como at ribut os de chave
estrangeira de R os atributos da chave primria da relao que corresponde entidade proprietria
do tipo E; a chave primria de R a combinao da chave primria do proprietrio e a chave

Prof. Mauro Biajiz

UFSCar Departamento de Computao

Mapeamento entre Esquemas

41

parcial da entidade fraca do tipo W.

Figura 30:Mapeamento de Entidade Fraca

Passo 3: para cada tipo de relacionamento binrio 1:1 R no esquema E-R, ns identificamos as
relaes S e T que correspondem aos tipos participantes. Escolhemos uma das relaes, digamos
S, e inclumos como chave estrangeira de S a chave primria de T. melhor escolher uma entidade
com participao total em R no pap el de S . Ns incluimos todos os atributos simples (ou
componentes simples de um atributo composto) do relacionamento R 1:1 como atributo de S.

Figura 31:Mapeamento de relacionamento com


cardinalidade 1 para 1.

Passo 4: para cada relacionamento R (regular) binrio 1:N, ns identificamos as relaes S que
representam o tipo de entidade participante no Lado N do tipo de relacionamento. Ns inclumos
como chave estrangeira em S a chave primria da relao T que representa o outro tipo de entidade

Prof. Mauro Biajiz

UFSCar Departamento de Computao

Mapeamento entre Esquemas

42

participante em R; isto porque cada instncia de entidade no lado N relacionada a uma instncia
de entidade no lado 1 do tipo de relacionamento.

Figura 32:Mapeamento de relacionamento com


cardinalidade 1 para N (ou N para 1).

Pas s o 5: para cada relacionamento R binrio M :N, ns criamos uma nova relao S para
representar R. Ns inclumos como atributos de chaves estrangeiras em S as chaves primrias das
relaes que representam os tipos de entidades participantes; sua combinao formar a chave
primria de S. Ns tambm inclumos os atributos simples do tipo de rleacionamento M :N (ou
os component es s imples dos atributos compostos) como atributos de S. Ns no podemos
representar um relacionamento M :N por um atributo chave estrangeira singular nas relaes
participantes, por causa da cardinalidade M :N.

Figura 33:Mapeamento de relacionamento com


cardinalidade N para N.

Prof. Mauro Biajiz

UFSCar Departamento de Computao

Mapeamento entre Esquemas

43

Passo 6: para cada atributo multivalorado A, ns creiamos uma nova relao R que inclui um
atributo correspondendo a A mais o atributo K da chave primria da relao que representa a
entidade ou relacionamento que tem A como um atributo. A chave p rimria de R ento a
combinao de A e K. Se o atributo multivalorado composto, ns inclumos seus componentes
simples.

Figura 34:Mapemaneto de atributo multivalorado.

Passo 7: para cada relacionament o n-rio R, n > 2, ns criamos uma nova relao S para
representar R. Ns inclumos como atributos chave estrangeira em S as chaves primrias das
relaes que representam os tipos de entidades participantes. Ns tambm inclumos atributos
simples do relacionamento n-rio (ou componentes simples dos atributos compostos) como
atributos de S. A chave primria de S usualmente uma combinao de todas as chaves
estrangeiras que referenciam as relaes representando os tipos de entidades participantes. No
entanto, se a restrio de participao (min, max) de um dos tipos de entidades participantes E
em R tem no max=1, ento a chave primria de S pode ser o atributo singular da chave estrangeira
que referencia a relao E' correspondente a E; isto porque neste caso cada entidade e em E
participar em ao menos uma instncia de relacionament o R e pode identificar univocamente
aquela instncia de relacionamento.

Prof. Mauro Biajiz

UFSCar Departamento de Computao

Mapeamento entre Esquemas

44

Figura 35:Mapeamento de relacionamento com grau


N > 2.

Passo 8: converter cada especializao com m subclasses {S1, S2, ..., Sm} e superclasse C
(generalizada), onde os aributos de C so {k, a 1 , ...., an) e k a chave primria, em relaes
esquema usando uma das quatro opes seguintes:

Opo 8A: criar uma relao L para C com atributos Atr(L) = {k, a1, ...., an) e PK(L) = k. Criar
uma relao Li para cada subclasse Si, 1<= i <=m, com os atributos Atr(Li ) = {k} c {atributos
de Si} e PK(Li) = k.

Figura 36: Mapeamento de Generalizao

Opo 8B: Criar uma relao Li para cada subclasse Si, 1<= i <=m, com os atributos Atr(Li ) =
Prof. Mauro Biajiz

UFSCar Departamento de Computao

Mapeamento entre Esquemas

45

{k, a1, ...., an) c {atributos de Si} e PK(Li) = k.

Figura 37: Mapeamento de Generalizao

Opo 8C: criar uma relao nica L com atributos Atr(L) = {k, a1, ...., an) c {atributos de Si} c
{t} e PK(L) = k. Esta opo para uma especializao cujas subclasses so disjuntas, e t um tipo
de atributo que indica a subclasse para a qual cada tupla pertence, se existir. Esta opo pode
gerar um grande nmero de valores nulos.

Figura 38 :Mapeamento de Generalizao

Opo 8D: criar uma relao nica L com atributos Atr(L) = {k, a1, ...., an) c {atributos de S1} c
{atributos de Sm} c {t1, ..., tm} e PK(L) = k. Esta opo para uma especializao cujas subclasses
possuem sobreposio (no dis junt as ), e cada ti, 1<=i<=m, um tipo de atributo booleano
indicando se a tupla pertence a subclasse Si

Prof. Mauro Biajiz

UFSCar Departamento de Computao

Mapeamento entre Esquemas

46

Figura 39:Mapeamento de Generalizao

O resultado do mapeamento um esquema relacional. Seguindo corretamente as regras de


mapeamento, o esquema resultante pode ser implementado utilizando-se um SGBD Relacional.
Entretanto, algumas caractersticas podem comprometer o esquema, tais como, complexidades que
geram redundncias. Na prxima seo apresentada a Teoria da Normalizao de Relaes, a qual
deve ser aplicada para gerar um esquema que possa ser utilizado sem problemas.

Prof. Mauro Biajiz

5.Normalizao

m dos objetivos principais do gerenciamento de Bancos de Dados manter a consistncia dos


dados nele armazenados, e para esse fim, algumas regras precisam ser consideradas. Algumas

dessas regras so garantidas pelo prprio gerenciador, tais como unicidade da chave, ligao entre
relaes atravs da chave estrangeira, etc. Outras regras so definidas nos programas de aplicao
que ficam responsveis por mant-las. Para que essa manuteno seja vlida, necessrio que as
relaes sejam bem fundamentadas, no sentido de evitar redundncias que possam gerar, entre
outros problemas, inconsistncia de dados. Para procurar garantir esse aspecto, foi desenvolvida
uma tcnica chamada Normalizao.
Para o desenvolvimento da Teoria Formal de Normalizao, foram estabelecidas
dependncias funcionais (DF)1, sobre as quais est fundamentada a teoria. U ma D F , uma
"formulao" de uma restrio sobre a semntica dos atributos que compem uma relao.
Dependncia Funcional: seja r uma relao sobre o esquema R, com X e Y sendo subconjuntos
de R e t 1 e t 2 duas tuplas em r. A relao r satisfaz a DF X 6 Y, se para todos valores de X, em
que t 1(X) = t 2(X), tem-se sempre que t 1(Y) = t 2(Y).
Em uma DF X

6 Y, X denominado

lado esquerdo da dependncia, enquanto Y


denominado lado direito da dependncia. Para
ilustrar a definio, considere a Figura 40.
Os valores do atributo RG so diferentes
para todas as tuplas, e definem Nome e
Curso. Assim, com o valor de um RG, como
por exemplo, 13.245.522, define-se os

Figura 40:Exemplo de Dependncias

valores de Curso e de Nome, que so

No decorrer do texto, uma dependncia funcional ser escrita abreviadamente por DF.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

48

respectivamente, Eltrica e Paulo. Dessa forma, o atributo RG uma chave candidata e possui as
dependncias funcioanais RG v Nome e RG v Curso. Essa caracterstica verdadeira porque
o projetista definiu a semntica de que um valor de RG sempre definir um nico valor para
Nome e um nico valor para Curso. Em outro contexto ou aplicao, o projetista poderia
definir uma s emntica diferente para esses atributos, caracterizando outras dependncias
funcionais.
Nat uralmente, as Dependncias Funcionais que envolvem uma relao so determinadas
pelo projetista do banco de dados. Entretanto, foram definidos alguns axiomas de inferncia, os
quais so construidos sobre o conceit o de D F s . Um Axioma de inferncia uma regra que
estabelece que, se uma relao satisfaz certas DFs, ela tambm precisa satisfazer outras DFs, que
so logicamente inferidas atravs dessa regra.
Para uma relao r(R), em qualquer momento existe uma famlia de D F s F, que so
verdadeiras em r. Um estado de uma relao pode satisfazer uma certa DF, enquanto outro estado
no. Deseja-se ento encontrar uma famlia de DFs F, tal que em todos estados permissveis de
r, essas DFs sejam satisfeitas.
O nmero de dependncias funcionais que podem ser aplicadas em uma relao r(R)
finito, uma vez que h apenas um nmero finito de subconjuntos de R. Assim, sempre possvel
encontrar todas as DFs que s o verdadeiras em r. Conhecendo alguns membros de F,
freqentemente possvel deduzir outros membros de F. Um conjunto F de DFs, denotado por F

X 6 Y, implica na existncia da DF X 6 Y, se toda relao que satisfaz todas as DFs em F


tambm satisfaz X 6 Y.
So introduzidos agora, seis Axiomas para DFs. Na declarao das regras, r uma relao
sobre R, e W,X,Y, e Z so sub-conjuntos de R.

Axiomas

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

49

Normalizao

F1.Reflexiva - Se X g Y, ento X 6 Y.
F2.Aumentativa - Se X 6 Y, e Z

0 R, ento XZ6YZ.

F3.Transitiva - Se r satisfaz X 6 Y e Y 6 Z, r satisfaz X 6 Z.


F4.Decomposio/Projetiva - Se r satisfaz X 6 YZ, ento, r satisfaz X 6 Y e X6 Z.
F5.Unio/Aditiva - Se r satisfaz X 6 Y e X 6 Z, ento, r satisfaz X 6 YZ.
F6.Pseudotransitiva - Se r satisfaz as DFs X 6 Y e WY 6 Z, ento r satisfaz WX6 Z.
Considere como exemplo a relao r na Figura 40:
1.A relao r satisfaz a DF A 6 B. Pelo Axioma F2, AB 6 A, AC6B, AD 6 B, ABC 6 B, ABD

6 B, ACD 6 B, e ABCD 6 B.
2.A relao r satisfaz as DF A 6 B e A 6 C. Pelo Axioma F5, A6BC.
3.A relao r satisfaz a DF A 6 BC. Pelo Axioma F4, A 6 B, A6C.
Considere agora a relao r' na Figura 42:
4.A relao r satisfaz a DF A 6 B e B 6 C. Pelo Axioma F3, A6C.

Deve-se notar que, atravs dos Axiomas F1 at F6,


possvel se derivar outras regras de inferncia para DFs. Por
exemplo: Seja r uma relao sobre R com X e Y subconjuntos de R.
O Axioma F1 afirma que r satisfaz Y 6 Y. Aplicando o Axioma F2,

a1

b1

c1

d1

a2

b2

c1

d1

a1

b1

c1

d2

a3

b3

c2

d3

tem-se que r satisfaz XY 6 Y. Uma outra maneira de estabelecer


esta regra, que para

, r satisfaz X 6 Y.

Figura 41: Relao r.

O conceito de atributos chave, tal como descrito em sees anteriores, essencial para
a Teoria de Normalizao. Esse conceito ser reapresentado a seguir.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

50

Normalizao

Chave - Dada uma relao esquema R, uma chave em R um subconjunto de atributos K de R,


tal que para qualquer possvel relao r(R), no h duas tuplas
distintas t 1 e t 2 em r, tal que t 1(K) = t 2(K), e nenhum

subconjunto prprio K' de K tem esta prop riedade. Em

a1

b1

c2

d1

outras palavras, quando so atribudos valores para os

a2

b2

c1

d1

atributos que compem uma chave, estes valores identificam

a3

b1

c2

d2

a4

b1

c2

d3

univocamente uma tupla, ou seja, somente uma tupla dentro


da relao.

Figura 42: Relao r'.


Em uma mesma relao podem existir vrios
subconjuntos de atributos atendendo definio acima. Logo, escolhe-se um desses subconjuntos
como Chav e, o qual denominado Chave primria (ou principal); os outros subconjuntos
possveis so denominados Chaves Secundrias (ou Candidatas) (candidatas porque tambm
poderiam ter sido escolhidos como a Chave Principal). N ot e pela definio, que nenhum
subconjunto prprio dos atributos que compem uma Chave continua contendo a propriedade
de identificao.
Para a Teoria de Normalizao, tambm muito importante o conceito de Superchaves.
Uma Superchave qualquer conjunto de atributos contendo uma chave, seja ela principal ou
candidata. Note que superchaves podem conter subconjuntos prprios que ainda identificam uma
tupla, pois sua definio exige apenas que contenha uma chave em seu conjunto de atributos.
Dessa forma pode-se dizer que uma chave (principal ou secundria) uma superchave minimal,
ou seja, aquela superchave da qual no se pode retirar qualquer atributo e ainda manter a
propriedade de identificao.
Em termos de DFs, uma chave para um esquema R um subconjunto K de R, tal que para
qualquer relao possvel r(R), a DF K 6 R satisfeita, mas nenhum subconjunto prprio de K
tem esta propriedade. Se K uma chave para r, ento no h tuplas distintas t 1 e t 2 em r, tal que
t 1 e t 2 tenham os mesmos valores em K. Logo, enquanto h a DF K 6 R, se t 1(K) = t 2(K), tem-se
Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

51

que ter t 1 = t 2, a qual denotada t 1(R) = t 2(R).


Ser assumido de agora em diante que uma relao esquema R composta de duas partes,
S e K, onde S um conjunto de atributos e K um conjunto de chaves. O esquema R ser escrito
como R = (S, K). Antes da definio das formas normais, alguns conceitos so necessrios.

CSeja U um conjunto de atributos, cada um com um domnio associado. Um esquema R sobre U,


de uma base de dados relacional, uma coleo de relaes esquema {R1,R2, ...,Rr}, onde
,e

. Uma base de dados d sobre o esquema

R, uma coleo de relaes {r1, r2 , ...,rp}, tal que para cada relao esquema R= (S, K) em R,
existe uma relao r em d tal que r uma relao sobre S que satisfaz toda chave em K.

CDada uma relao R, um atributo A em R, e um conjunto de DFs F sobre R, um atributo A


primo em R com respeito a F, s e A est contido em alguma chave candidata de R. De outra
maneira, A no primo em R.

CDado um conjunto de DFs F e uma DF X 6 Y, Y totalmente dependente de X, se no h um


subconjunto prprio X' de X, tal que X' 6 Y.

CDada uma relao esquema R, um subconjunto X de R, um atributo A em R, e um conjunto de


DFs F, A transitivamente dependente sobre X em R, se h um subconjunto Y de R com X 6
Y, Y no determina X e Y 6 A sobre F e

Observao: Na literatura pode-se encontrar a definio da Segunda Forma Normal e da Terceira


Forma Normal considerando apenas chaves primrias. Nesta apostila, as definies consideram
todas as Chaves Candidatas. As definies considerando as chaves candidatas so denominadas
Formas Normais generalizadas.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

52

Formas Normais
Primeira Forma Normal (1FN)
Uma relao esquema R est na Primeira Forma Normal (1FN), se todos valores no dom(A) so
atmicos para todo atributo A em R. Isto , os valores no domnio no so listas, ou conjuntos
de valores, ou valores compostos. Um esquema de bases de dados R est na 1FN, se toda relao
esquema em R est na 1FN.

Um valor que atmico em uma aplicao,


pode ser no atmico em outra aplicao. Um valor
no atmico se a aplicao lida com somente uma
parte do valor.
Para exemplificar, considere a relao
Nascimento apresentada na Figura 43 (A). Se a
Figura 43: Relao Nascimento.

aplicao possui interesse somente no dia e ms


que uma pessoa nasceu, a relao Nascimento no est na 1FN, uma vez que est lidando com
apenas parte do valor do atributo aniversrio. Para a relao Nascimento estar na primeira forma
normal, ela deve ser quebrada como em (B). Assim, t odos os valores da relao se tornam
atmicos, e a relao est na 1FN. Note que para a anlise da 1FN deve ser considerado todo o
banco de dados, e no apenas uma relao desse banco. Assim, verifica-se a semntica de um
atributo ser atmico no banco de dados como um todo, e no apenas na relao a que o atributo
pertence. Ainda considerando a mesma relao, necessrio verificar se todos os atributos so
monovalorados. No caso so, pois para um determinado valor para o atributo Nome, sempre
haver apenas um valor correspondente para o atributo Aniversrio, determinando assim, que o
atributo monovalorado. imp ortante ressaltar que para o exemplo, considerou-se que no
existem dois valores iguais para o atributo Nome na relao Nascimento. Em uma aplicao real,
essa restrio certamente no seria verdadeira.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

53

Segunda Forma Normal (2FN)


Uma relao esquema R est na segunda forma normal (2FN), com respeito a um conjunto de
DFs F, se ela est na 1FN, e todo atributo no primo totalmente dependente de todas as chaves
candidatas de R. Um esquema de bases de dados R, est na segunda forma normal com respeito
a F, se toda relao esquema R em R est na 2FN com respeito a F.

Considere a Figura 44 (A) contendo as dependncias funcionais Sigla v Nmero-Horas


e Nmero, Sigla v Horrio, Nmero-Horas. Os atributos Nmero e Sigla juntos formam uma
chave candidata. Como no h nenhuma outra possvel, ela definida como chave principal. Temse ento

C {Nmero, Sigla } como chave principal e superchave;


C {Nmero, Sigla, Horrio}, {Nmero, Sigla, Nmero-Horas} e {Nmero, Sigla, Horrio, NmeroHoras} como superchave.
A DF Sigla

v Nmero-Horas fere a 2FN, porque o at ributo Nmero-Horas (no

primo) depende do atributo Sigla (que parte da chave), ou seja, no dependente da chave toda.
Esse fato torna possvel a introduo de inconsistncias. Note que como Sigla define NmeroHoras, para todo valor repetido para o atributo Sigla, o valor deveria ser repetido para o atributo
Nmero-Horas. Entretanto, no exemplo isso no ocorre, porque para o valor DC189 tem-se em
uma tupla o valor 3 e na outra o valor 4, o que uma inconsistncia. Como o atributo Sigla
sozinho no chave candidata (nem principal), o gerenciador no indicaro erro na digitao,
permitindo assim, que o banco de dados entre em estado inconsistente. A soluo a diviso da

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

54

relao em outras duas, tal como, na Figura 44 (B) e (C). A primeira poderia ser chamada de
Sigla_NH e a segunda de relao Sigla_1. Note que a DF que estava ferindo a 2FN est presente
na relao Sigla_NH, agora sem
ferir a 2FN. As relaes
Sigla_N H e Sigla_1 esto na
2FN. Deve-se observar que no
h perda de dependncias
funcionais durante o processo
de normalizao. Outro ponto
que deve ser observado, que a
relao inicial original deixa de
existir, ou seja, passam a existir
apenas as duas originadas a

Figura 44: Relaes normalizadas na 2FN

partir dela.

Terceira Forma Normal (3FN)


Uma relao esquema R est na terceira forma normal (3FN), com respeito a um conjunto de
DFs F, se ela est na 1FN, e nenhum atributo no primo em R transitivamente dependente sobre
alguma chave de R. Ou seja, para toda DF Xv A, ou X uma superchave, ou A um atributo
primo. Um esquema de bases de dados R, est na terceira forma normal com respeito a F, se
toda relao esquema R em R est na 3FN com respeito a F.

Considere agora a relao ilustrada na Figura 45 contendo as dependncias funcionais


Nmero, Sigla v Sala, Prdio e Salav Prdio. Os atributos Nmero e Sigla juntos formam uma
chave candidata. Como no h nenhuma outra possvel, ela definida como chave principal. Temse ento:

C {Nmero, Sigla} como chave principal e superchave;


Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

55

C {Nmero, Sigla, Sala},


{Nmero,

Sigla,

P rdio}e

{Nmero, Sigla, Sala, Prdio}


como superchaves.
A DF Salav Prdio
fere a 3FN, porque o
atributo Prdio (no primo)
depende do atributo Sala (que
t ambm

no

est abelecendo

primo),
uma

Figura 45:Relaes Normalizadas na 3FN

dependncia transitiva. Essa


caracterstica possibilita a introduo de inconsistncias na base de dados. Note que como Sala
define Prdio, para todo valor repetido para o atributo Sala, o valor deveria ser repetido para o
atributo Prdio. Entretanto, no exemplo, para Sala com o valor 4, existem dois valores para
Prdio, no caso, E1 e C2. Isso uma inconsistncia grave, que tambm no supervisionada
pelo gerenciador. A soluo a diviso da relao em outras duas, tal como, na Figura 45. M ais
uma vez, note que a DF Salav Prdio no foi perdida, e sim, passou para a relao Sala_Prdio,
aonde no fere a 3FN. A relao original Sala deixa de existir. As relaes resultantes Sala_1 e
Sala_Prdio esto na 3FN.
Existem outras formas normais que foram desenvolvidas, as quais progressivamente
"retiram" complexidades (simplificam) das relaes. Deve-se observar que o nvel de normalizao
de uma relao uma questo semntica, e no dos valores dos atributos que aparecem naquela
relao em um dado instante.
Uma forma normal mais restrita que a 3FN foi definida como Forma Normal de BoyceCodd.

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

56

Forma Normal de Boyce-Cood (FNBC)


Uma relao esquema R est na forma normal de Boyce-Codd (FNBC), com r espeito a um
conjunto de DFs F, se para toda DF Xv A, X uma superchave.

Considere as relaes ilustradas na Figura 46 contendo as DFs:


Id_Propried v Nome_Regio;
Id_Propried, Nome_Regio v Lote;
Id_Propried , Nome_Regio v rea;

v Id_Propried;
Lote, Nome_Regio; v rea;
rea v Nome_Regio.

Lote, Nome_Regio

Figura 46:Exemplo de Boyce-Codd

Pelas dependncias funcionais tem-se:

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

57

C {Id_Propriedade, N ome_Regio} como chave candidata e superchave (obs.: tambm foi


escolhida como chave principal);

C {Lote, Nome_Regio} como chave candidata e superchave;


C.{Id_Propriedade, Nome_Regio, Lote}, {Id_Propriedade, Nome_Regio, rea} e
{Id_Propriedade, Nome_Regio, Lote, rea}, {Nome_Regio, Lote, rea} como superchaves.
A DF rea v Nome_Regio fere a FNBC, pois rea no superchave. Dessa forma, a soluo
a diviso das relaes em outras duas, levando em considerao a DF citada. Note que nesse
caso, h perda de DF, pois Nome_Regio, Lote v Id_Propried; Nome_Regio, Lote v rea so
perdidas. Pode-se decidir no normalizar com respeito FNBC para manter desempenho em
consultas, por exemplo. Entretanto, essa deciso deve ser devidamente documentada.
As formas normais apresentadas at aqui referem-se utilizao de DFs que envolvem
atributos monovalorados. Em algumas situaes, relaes com atributos multivalorados exigem
outra categoria de dependncias que sero chamadas Dependncias Funcionais M ultivaloradas.

Dependncia Funcional Multivalorada


Uma Dependncia Funcional Multivalorada (DFM) X

| Y especificada sobre uma relao

esquema R, onde X e Y so subconjuntos de R, determina que para cada valor de X, existe um


conjunto possvel de valores para Y.

Considere a Figura 47. Not e que para cada


valor p ara o atributo Nome, existem vrios valores
para o atributo Matria e Orientando. Assim, para o
valor Alzira, tem-se os valores BD e ES para Matria,
e Paulo e Snia para Orientando. Pode-se afirmar
Figura 47: Relao P rof_Aula_Orientao

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

58

nesse caso que tem-se as dependncias multivaloradas Nome | Matria e Nome | Orientando.
Assim como para as Dependncias Funcionais M onovaloradas, as Dependncias
Funcionais M ultivaloradas que envolvem uma relao so determinadas pelo projetista do banco
de dados. Da mesma forma, foram definidos alguns axiomas de inferncia para encontrar outras
DFM s inferidas. Na realidade, esses axiomas complementam os j apresentados.

Axiomas
Para os Axiomas considere que r uma relao sobre R, e W,X,Y, e Z so sub-conjuntos de R.
1.Reflexiva - Se X g Y, ento Xv Y.
2.Aumentativa - {XvY} ento XZ

v YZ

3.Transitiva - {X v Y, Yv Z} ento X v Z
4.Complementao DFM s - {X| Y} ento {X | (R - (X c Y))}
5.Aumentativa FDM - Se X| Y e W g Z, ento WX | YZ
6.Transitiva FDM - {X| Y e Y | Z}, ento X | (Z-Y)
7.Replicao DFM - Se {X v Y} ento X| Y.
8.Coalescncia DFM - Se X| Y e existe W com as propriedades que:
a)W1 Y vazio; b)W v Z, e c) Yg Z. Ento X v Z

Voltando Fi gu ra 47, note que a chave da relao formada pela composio dos
atributos Nome, Matria e Orientando. A incidncia de dependncias multivaloradas em uma
relao pode trazer algumas complexidades, gerando a definio de outras duas formas normais
que foram batizadas por Quarta Forma Normal e Quinta Forma Normal. Considerando ainda a
Figura 47, se for adicionada uma nova Matria para o Carlos, por exemplo, devero existir duas
novas tuplas combinando os valores da nova Matria com os valores dos Orientados de Carlos.
Essa caracterstica estabelece que a relao deve crescer com muitos dados repetidos, exigindo

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

59

esforo para um procedimento de insero correta e de utilizao da relao, tal como, em


consultas. Baseando-se nessa caracterstica foi definida a Quarta Forma Normal.
Para definir as prximas formas normais necessria a definio de Dependncia Funcional
M ultivalorada Trivial, que dada a seguir:
DFM Trivial: Uma DFM X| Y trivial se Y um subconjunto de X, ou se Xc Y = R, onde R
a relao envolvida.

Quarta Forma Normal (4FN)


Uma relao esquema R est na quarta forma normal (4FN), com respeito a um conjunto de DFs
F, s e para toda DF X| A, X for uma superchave, ou a dependncia X| A for trivial. U m
esquema de bases de dados R, est na quarta forma normal com respeito a F, se toda relao
esquema R em R est na 4FN com respeito a F.

A relao da Figura 47 no est na 4FN.


As DM F so Nome

| Matria e Nome |

Orientando. Ela no est na 4FN porque Nome


no superchave e porque as duas dependncias
no so triviais. Para coloc-las na 4FN, a
Figura 48:Relaes na 4FN.

soluo divid-la em duas relaes, as quais


podem ser vistas na Figura 48. As relaes resultantes Prof_M at e Prof_Orient esto na 4FN,
pois as DFM Nome | Matria e Nome| Orientando so triviais.
Existem outras formas normais, as quais no sero tratadas aqui e podem ser encontradas
na bibliografia proposta.
Essa apostila traz um resumo da Teoria Bsica sobre Banco de D ados, cobrindo os
modelos Entidade-Relacionamento e Relacional, alm de apresentar as regras de M apeamento

Prof. Mauro Biajiz

UFSCar - Departamento de Computao

Normalizao

60

entre esquemas desse modelo e a Teoria de Normalizao de Esquemas Relacionais. Deve-se


considerar que so necessrias leituras adicionais, as quais esto indicadas na bibliografia.
Em seguida apresentada a bibliografia recomendada.

6.Bibliografia
Elmasri, R. e Navathe, S .B.; Fundamentals of Data Base Systems
Editora Adison Wesley, 3 edio - 2000.
S ivlerschatz, A.; Korth, H.F. e S udarshan, S .; Sistemas de Bancos de Dados
Editora M AKRON Books, 3 edio - 2000.
Raghu Ramakrishman; Database M anagement Systems
Editora Addison Wesley, 1 edio - 1997.

Prof. Mauro Biajiz

Você também pode gostar