Escolar Documentos
Profissional Documentos
Cultura Documentos
Completa Banco de Dados
Completa Banco de Dados
Departamento de Computao
Bancos de Dados
Mauro Biajiz
Dezembro - 2001
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 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.
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 a inconsistncia pode ser evitada 6 atravs de regras muito bem definidas, os dados so
estruturados garantindo-se a consistncia dos dados armazenados.
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
| 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
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
Nome
Nmero-Estudante
Curso
Nome
Nmero-Curso
Pr-requisito
Nmero-Curso
Class
e
Crditos
Departamento
Nmero-pr-requisito
2.Modelo Entidade-Relacionamento
Figura 6: Conjunto de
Entidades P essoa com seus
Atributos.
consiga identificar
uma nica
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
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
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
11
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
de
12
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
nele
originado s ,
propriedades
Aluno,
P rofes s or
14
Abstrao de Agregao
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,
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,
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
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.
3.Modelo Relacional
Modelo Relacional foi apresentado por Codd em 1970. Seus dados so vistos como
armazenados em
NMERO
ORIGEM
DEST INO
PART IDAS
CHEGADAS
83
So Paulo
Manaus
11:30
19:00
84
So Paulo
Braslia
13:00
18:00
213
Rio de
Janeiro
So Paulo
10:00
10:35
representao de uma
214
Rio de
Janeiro
So Paulo
10:30
11:05
L uma linha em uma relao representa uma instncia com valores definidos entre um
conjunto de valores, recebendo o nome de tupla;
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.
Modelo Relacional
19
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
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
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.
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
25
Modelo Relacional
banco de dados. Essas linguagens so tipicamente de mais alto nvel do que as linguagens
Sobren
Silva
RG
DataN
123456789 09.01.55
Endereo
Rua 15 Novembro, 731,
Sexo
M
Salrio
3000
RG Super
333445555
NroD
5
So Carlos
Souza
Alice
333445555 08.12.45
26
Modelo Relacional
Rua Jorge Assef, 100,
4000
888665555
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
Rib.P reto
Av.So Carlos,1005,
3800
333445555
So Carlos
FNROD=4(EM PREGADO)
A relao resultante da
27
Modelo Relacional
F(NROD=4 AND
(EM PREGADO)
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
So Carlos
F(NROD=4 AND
(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
Modelo Relacional
28
Sobren
Salrio
Joo
Francisco
Alice
Joana
Rodolfo
Silva
Souza
Fernandes
P ereira
Nogueira
3000
4000
2500
4300
3800
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.
Nome
Sobren
Salrio
Joo
Francisco
Rodolfo
Silva
Souza
Nogueira
3000
4000
3800
30
Modelo Relacional
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
SSN
Endereo
Sexo
Salri
RG Super
NroD
12345678
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
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)
Modelo Relacional
31
RES ULT2
RES ULT
RG
RG
333445555
888665555
123456789
333445555
666884444
888665555
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
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
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
Modelo Relacional
33
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
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.
(a)
N
Johnny
Barbara
Amy
Jimmy
Ernest
Figura 28
Modelo Relacional
34
(b)
S
Kohler
Jones
Ford
Wang
Gilbert
Nome
John
Ricardo
Francis
S obrenome
Smith
Browne
Johnson
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
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
$, }.
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
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
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
Ndepto
Nome
Sobren
1
2
3
Francisco
Joana
Rodolfo
Souza
P ereira
Nogueira
Modelo Relacional
37
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
RESULT
7 R2R3
NroE
2
4
S (X), onde X f Z.
Prof. Mauro Biajiz
Modelo Relacional
38
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
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)+
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.
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
41
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.
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
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.
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.
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.
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.
44
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.
Opo 8B: Criar uma relao Li para cada subclasse Si, 1<= i <=m, com os atributos Atr(Li ) =
Prof. Mauro Biajiz
45
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.
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
46
5.Normalizao
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
No decorrer do texto, uma dependncia funcional ser escrita abreviadamente por DF.
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
Axiomas
49
Normalizao
F1.Reflexiva - Se X g Y, ento X 6 Y.
F2.Aumentativa - Se X 6 Y, e Z
0 R, ento XZ6YZ.
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.
a1
b1
c1
d1
a2
b2
c1
d1
a1
b1
c1
d2
a3
b3
c2
d3
, r satisfaz X 6 Y.
O conceito de atributos chave, tal como descrito em sees anteriores, essencial para
a Teoria de Normalizao. Esse conceito ser reapresentado a seguir.
50
Normalizao
a1
b1
c2
d1
a2
b2
c1
d1
a3
b1
c2
d2
a4
b1
c2
d3
Normalizao
51
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.
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.
Normalizao
53
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
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
partir dela.
Normalizao
55
Sigla,
P rdio}e
no
est abelecendo
primo),
uma
Normalizao
56
v Id_Propried;
Lote, Nome_Regio; v rea;
rea v Nome_Regio.
Lote, Nome_Regio
Normalizao
57
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
Normalizao
59
| Matria e Nome |
Normalizao
60
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.