Você está na página 1de 79

UnioEducacionaldeBrasliaUNEB

InstitutodeCinciasExatasICEx
Curso:TecnologiaemProcessamentodeDados
Professor:Eduardo
Aluna:__________________________________
Turma:4PDA

Arquivo
e
BancodeDados

BrasliaDF,Marode1999

1
PROJETODEBANCODEDADOS

PARTEI

INTRODUO ............................................................ 1

CAPTULOICONCEITOSBSICOS
1.Arquivo.................................................................................... 2
2.Registro.................................................................................. 2
3.Campo .................................................................................... 3
4.ChavePrimria ....................................................................... 4
5.ChaveSecundria .................................................................. 5
6.ChaveCandidata.................................................................... 6

CAPTULOIIORGANIZAODEARQUIVOS
1.MtodoDeAcesso ................................................................. 7
2.OrganizaoSeqencial ........................................................ 9
3.OrganizaoSerial ............................................................... 10
4.OrganizaoIndexada ......................................................... 11

CAPTULOIIISGBD
1.SistemaGeranciadordeBancodeDadosSGBD ........... 13
2.BancodeDados ................................................................... 13
3.SistemaemBancodeDados............................................... 13

CAPTULOIVOBJETIVOSDEBANCODEDADOS
1.Independnciadedados ...................................................... 15
2.Compartilhamentodedados ................................................ 16
3.Menorredundncia............................................................... 16
4.Privacidadededados ........................................................... 17
5.Seguranadedados ............................................................ 17
6.Tratamentodeconcorrncia................................................ 18
7.Integridadededados............................................................ 18

CAPTULOVLINGUAGENSDEBD
1.SQL....................................................................................... 19
2.Autocontidas ......................................................................... 22
3.Hospedeiras.......................................................................... 22
4.Visuais .................................................................................. 23

2
CAPTULOVIMODELOHIERRQUICO
1.limitaesdosmodeloshierrquicos ................................... 24

CAPTULOVIIMODELOREDE
1.CaractersticasdosmodelosRedeCODASYL .................... 27

CAPTULOVIIIMODELORELACIONAL
1.TerminologiadoModeloRelaciona...................................... 31
2.Regrasdeintegridade .......................................................... 32
3.OperadoresRelacionais ....................................................... 36
4.PropriedadesRelacionais..................................................... 36
5.VantagensdoModeloRelacional......................................... 38

CAPTULOIXLGEBRARELACIONAL
1.Estudodecaso ..................................................................... 40
2.Generalidades ...................................................................... 42
3.OperadoresdeConjunto...................................................... 43
4.OperadoresRelacionais ....................................................... 47

PARTEII

CAPTULOINORMALIZAO
1.Definio............................................................................... 51
2.AnomaliasdeAtualizao .................................................... 52
3.Terminologia ......................................................................... 53
4.NotaesparadescriodasEstruturasdeDados............. 56
5.EsquemadaNormalizao .................................................. 58
6.RelacesnoNormalizadas................................................ 59
7.PrimeiraFormaNormal(1FN).............................................. 60
8.EscolhadaChavePrimria .................................................. 61
9.SegundaFormaNormal(2FN)............................................. 64
10.TerceiraFormaNormal(3FN) ............................................ 65

EXERCCIOSI.......................................................................... 67
EXERCCIOSII......................................................................... 71
AVALIAO............................................................................ 73
BIBLIOGRAFIA........................................................................ 75

3
PROJETODEBANCODEDADOS

PARTEI

4
INTRODUO

No incio da dcada de 60, foram lanados os primeiros sistemas


gerenciadoresdebancodedados(SGBD),tendocomoprincipalproposta
o aumento na produtividade nas atividades de desenvolvimento e
manuteno de sistemas, at ento realizadas de forma artezanal em
linguagens de programao convencionais de primeira e segunda
gerao.

Oriundos do ambiente de mainframes, os SGBD tornaramse mais


populares e amigveis com o advento da microinformtica. Cada vez
maisasfronteirasentreessesdoismundosestreitamseeaconcorrncia
pelodomniodomercadodeSGBD,temlevadoseusdiversosfabricantes
a sofisticarem seus produtos. Cada nova verso lanada, incorpora
novidades como interfaces grficas, ferramentas de apoio ao
desenvolvimento,utilitriosparagerenciamentodeBDefacilidadespara
extrao de dados. Essa evoluo vem tornando o trabalho de
programadores, analistas e usurios menos artezanal, com reflexos na
qualidadeeprodutividade.

A literatura classifica os SGBD como HIERRQUICO, REDE e


RELACIONAL.Essaclassificaorepresentaaevoluodessesprodutos
no curso da histria. Atualmente, o mercado dominado pelos SGBD
RELACIONAIS e caminha para a colocao em escala comercial dos
SGBDORIENTADOSAOBJETOS.

EstetextointroduzateoriadeBANCODEDADOS,apartirdeconceitos
bsicos da teoria de arquivos que perpetuaramse na terminologia de
banco de dados. Na sequencia aborda superficialmente os modelos
HIERRQUICO e REDE (por razes de mercado) e de forma mais
aprofundadaoMODELORELACIONAL,oqualdesignaremosnestetexto
pelasiglaSGBDR.

1
CAPTULOI

CONCEITOSBSICOS

ParacompreendercommaiorfacilidadeosconceitosrelativosaBANCO
DEDADOSdesumaimportnciarevisarmosalgunsconceitosbsicos
referentes teoria e terminologia de arquivos convencionais, hajavista,
que os primeiros SGBD foram criados a partir do aperfeioamento de
sistemas gerenciadores de arquivo, e ainda utilizam muito da base
conceitualedaterminologiadearquivos.

1.ARQUIVO

UmarquivoumacoleodeREGISTROSdomesmotipo,ouseja,
referentes a um mesmo assunto e com o mesmo formato padro
(layout).Constituiocomponentedosistemanoqualsoarmazenados
os dados, que combinados atravs dos programas servem de base
para a gerao da informao desejada pelo usurio, atravs de
relatrioseconsultasonline.

Umsistemadecontroledenotas,porexemplo,podearmazenarseus
dados em diversos arquivos, cada um contendo informaes sobre
um determinado item do sistema: ALUNO, PROFESSOR, MATRIA,
NOTA,etc.

Essas informaes podem ser combinadas atravs de programas


para gerar, por exemplo, o BOLETIM ESCOLAR, a PAUTA ou uma
teladeCONSULTADENOTAS.

2.REGISTRO

Um registro constitudo por conjunto de campos valorados


(contendo dados. Consiste na unidade de armazenamento e
recuperao da informaoem um arquivo. Geralmente,os registros
de um arquivo possuem um formato padro (layout), definido pela
seqncia, tipo e tamanho dos campos que o compem. Porm,
algumaslinguagensdeprogramaopermitemacriaoderegistros
com layouts deferentes em um mesmo arquivo, recurso este que
raramenteutilizado.

2
3.CAMPO

a unidade bsica formadora de um registro. Constitui a clula da


informao. a menor poro de um arquivo que pode ser
referenciadaporumprograma.

Cada campo possui NOME, TIPO e TAMANHO. Os tipos de campo


maiscomunsso:

_Armazenasomentenmeros
NUMBER _Podecontercasasdecimais
_Podeserutilizadoemoperaesmatemticas
CHARou _Podearmazenarletras,nmerosecaracteres
ALFANUMRICO especiais
DATE _Armazenadatasfazendoconsistnciaautomtica
MEMOouLONG _Armazenatextosemformatolivre

AfiguraaseguirsintetizaosconceitosdeARQUIVO,REGISTROeCAMPO:

ARQUIVOALUNO
LAYOUT
CAMPOS MATRICULA NOME ENDEREO DT_NASC
TIPOeTAM. NUMBER(03) CHAR(30) CHAR(50) DATE
001 Jos SQS308... 23/08/78
REGISTROS 002 Maria QND14.... 25/09/70
003 Ana SQN410... 10/08/85
. . . .
. . . .

3
4.CHAVEPRIMRIA(PRIMARYKEYPK)

A CHAVE PRIMRIA (ou simplesmente CHAVE) o identificador


nico de um registo em um arquivo. Pode ser constituda de um
campo (CHAVE SIMPLES) ou pela combinao de dois ou mais
campos(CHAVECOMPOSTA),detalmaneira,quenoexistamdois
registrosnoarquivocomomesmovalordechaveprimria.

Emregra,todoarquivodevepossuirumachaveprimria,quepermita
a identificao inequvoca doregistro,especialmente, paradarmaior
consistncia aos processos de incluso, alterao e excluso de
dados.

Para que no ocorram duplicatas nos valores da chave, os campos


que a compem so de PREENCHIMENTO OBRIGATRIO (NOT
NULL).

Naescolhadachaveprimriadeumarquivodevesebuscarcampos
que possuam ESTABILIDADE no valor armazenado. A escolha do
NMERO DO TELEFONE como chave de um cadastro de clientes,
por exemplo, seria inadequada,por que esse valor pode mudar com
freqncia. Sem considerar que o cliente pode ter mais de um
telefone...

Devese tambm evitar a escolha de campos que possam causar


AMBIGIDADEemrelaoaosvaloresnelecontidos.Nessesentido,
seria inadequado a escolha do campo NOME para chave de um
cadastrodeclientes,hajavista,queummesmonomepodeserescrito
devriasformas.Porexemplo:LUS,LUIZ,LOUIS,LOYS,LUYS.

Se desejssemos cobrar uma fatura de um cliente com um nome


como esse,a probabilidade deerramos o clienteseria grande. Alm
disso, a extenso do campo (30 ou mais caracteres) um outro
aspectoqueaumentaapossibilidadedeerros.

DICASPARAESCOLHADACHAVEPRIMRIA:
_Todoarquivodevepossuirumachaveprimria.
_VALORNICOparacadaregistro.
_SIMPLESouCOMPOSTA.
_CamposdePREENCHIMENTOOBRIGATRIO.
_ValorESTVEL.
_NoAMBGUO.
_PEQUENAEXTENSO(menorpossvel).
_DeprefernciaCAMPOSNUMRICOS
4
5.CHAVESECUNDRIA

A chave secundria pode ser formada por um campo ou pela


combinao decampos (SIMPLES /COMPOSTA). utilizadacomo
parmetro (filtro) para seleo de registros no arquivo em consultas,
emissoderelatriosouprocessosdeatualizaosimultneadeum
grupoderegistros.

Por exemplo, paraaumentarmos o valor do salrio dos analistas em


10%, poderamos utilizar o campo FUNO do arquivo CADASTRO
DE FUNCIONRIOS como parmetro (chave secundria) no
processodeseleodosregistrosaseremalterados.

Em sntese, a chave secundria o campo ou combinao de


camposdoarquivoquepermitearecuperaodemaisdeumregistro
no arquivo. Portanto, no possui a caracterstica de unicidade
propostaparaachaveprimria.

AfiguraaseguirilustraosconceitosdeCHAVEPRIMRIAe SECUNDRIA

ARQUIVOALUNO
PK
MATRICULA NOME ENDEREO DT_NASC
001 Jos SQS308... 23/08/78
003 Maria QND14.... 25/09/70
002 Ana SQN410... 10/08/85
005 Jos GAMA 05/04/76
. . . .

AcessoviaCHAVESECUNDRIA(NOME)noarquivoALUNO:

PROGRAMAX
INCIO....

.
SENOME=JOS
ENTOIMPRIMIR
.....
.
.
FIM

5
6.CHAVECANDIDATA

Pode ocorrer uma situao em que mais de um campo satisfaa a


condio de chave primria, constituindo duas ou mais CHAVES
CANDIDATAS. Neste caso, o analista dever eleger somente uma
delas como CHAVE PRIMRIA, as demais permanecero na
condio de CANDIDATAS, indicando que tratamse de campos de
preenchimentoobrigatrioecomvaloresnicosparacadaregistro,o
quesergarantidoatravsdemecanismosdeintegridadedecoluna,
queveremosnocaptulorelativoabancodedados.

AfiguraaseguirmostraumexemplodearquivocomCHAVECANDIDATA
ARQUIVOALUNO
CHAVECANDIDATA
CHAVEPRIMRIA

MATRICULA NOME ENDEREO CPF


001 Jos SQS308... 72993246500
003 Maria QND14.... 12354789065
002 Ana SQN410... 09876587659
005 Jos GAMA 28746503645
. . . .
. . . .

6
CAPTULOII

ORGANIZAODEARQUIVOS

Otemaorganizaodearquivosrefereseaformacomoosregistros
so armazenados em um arquivo baseado em computador.
Confundese com MTODO DE ACESSO, que consiste na forma
como esses podem ser recuperados. A organizao do arquivo
determina os mtodos de acesso que podem ser utilizados na
recuperaodosregistros,mastratamsedecoisasdistintas.

Apesar de este ser um assunto muito abrangente e com muitas


variantes em termos de abordagem, trataremos de apenas trs tipos
de organizao (SEQENCIAL, SERIAL E INDEXADA) e seus
respectivos mtodos de acesso. Essa escolha baseiase na
necessidade de discutirmos alguns conceitos essenciais para o
estudo do modelo Relacional de banco de dados, que constitui o
objetoprincipaldessetexto.

1.MTODOSDEACESSO

Para recuperarmos um registro em um arquivo, podemos utilizar


acessoSEQENCIALouDIRETO.

O mtodo SEQENCIAL de acesso o mais tradicional e consiste


em efetuar a leitura dos registros, um aps o outro, comparando o
ARGUMENTO DE PESQUISA, com o valor do campo CHAVE
(primria ou secundria) no registro corrente, at encontrar os
registrosdesejadosouofinaldoarquivo.

exemplo:
PROGRAMAY
INCIO....
.
Repitaatfim
lerregistro chavesecundria(campochave)

SENOME=JOS argumentodepesquisa
ENTOIMPRIMIR
Fimrepita(voltealer)
.
FIMDOPROGRAMA
7
OmtodoDIRETOconsisteemrecuperaro(s)registro(s)desejado(s),
sem a necessidade de efetuar a leitura dos registros que o(s)
antecede(m), o que pode ser feito atravs de um NDICE (que
abordaremos no item organizao indexada)ou com o auxliodeum
algoritmo de RANDOMIZAO que localiza o registro, calculando a
posio ocupada pelo registro no disco, com base no valor do
argumentodepesquisa,quedeveserumcamponumrico.

Em ambos os casos, a localizao do registro ocorre a cargo do


gerenciador de arquivos, de maneira transparente para o
programador,quesprecisaescolheraorganizaoadequadaparao
arquivoefornecernoprogramaoargumentodepesquisa.

exemplo:

PROGRAMAZ
INCIO....
.
.
ABRIRARQUIVOALUNOINDEXADOPORNOME
.
NOME=JOSargumentodepesquisa
LOCALIZARREGISTRO acessodireto(indexado)
SEENCONTROUREGISTRO
ENTOIMPRIMIR
.
.
FIMDOPROGRAMA

8
2.ORGANIZAOSEQENCIAL

A ORGANIZAO SEQENCIAL caracterizase pela existncia de


uma CHAVE DE ORDENAO. Essa chave determina a ordem em
que os registros so armazenados e pode ser SIMPLES ou
COMPOSTA por dois ou mais campos. Geralmente, coincide com a
chaveprimria,masnoobrigatoriamente.

A organizao seqencial somente permite o ACESSO


SEQENCIAL.

A figura a seguir apresenta um arquivo com ORGANIZAO SEQENCIAL e CHAVE


PRIMRIA(MATRICULA) distinta da CHAVE DE ORDENAO (NOME ordem
alfabtica).
ARQUIVOALUNO

chaveprimriachavedeordenao

MATRICULA NOME ENDEREO DT_NASC


001 Ana SQS308... 23/08/78
003 Jos QND14.... 25/09/70
002 Jos SQN410... 10/08/85
005 Maria GAMA 05/04/76
. . . .
. . . .

9
3.ORGANIZAOSERIAL

Nestaformadeorganizaoosregistrossoarmazenadosdeacordo
comaordemdeincluso.oarquivonopossuichavedeordenao,
portanto no existe preocupao com a ordem de armazenamento
dos registros. No entanto, sempre recomendvel o arquivo possua
umachaveprimria.

A organizao serial somente permite o ACESSO SEQENCIAL.


No deve ser utilizada em processos de excluso e alterao de
registros na modalidade bacth (atualizao em lote), pois degrada a
performance.

muitoutilizadaemprocessosdeinclusoderegistrosondenohaja
preocupao em manter a seqncia dos mesmos (pools de
digitao). tambm empregada no arquivo de dados que serve de
baseparaaorganizaoindexada,queestudaremosnoprximoitem.

A figura aseguir apresenta um arquivocomORGANIZAO SERIAL. Note que


elenopossuiCHAVEDEORDENAO.

ARQUIVOALUNO

chaveprimria

MATRICULA NOME ENDEREO DT_NASC


005 Maria SQS308... 23/08/78
003 Jos QND14.... 25/09/70
002 Ana SQN410... 10/08/85
001 Jos GAMA 05/04/76
. . . .

10
4.ORGANIZAOINDEXADA

Nesta forma de organizao, os registros so armazenados em um


arquivo de dados com organizao serial e para cada campo (ou
combinao deles) atravs do qual se deseja obter acesso direto
(indexado) devese criar um arquivo de ndice (processo de
indexao).

Um mesmo arquivo de dados pode possuir diversos arquivos de


ndiceaeleassociados.Porm,apesardaflexibilidadeparaacriao
de ndices, esse recurso deve ser utilizado com critrio, pois a
manuteno de muitos ndices pode degradar a performance no
processo de atualizao do arquivo. Ou seja, ganhase na consulta
online,maspodeseperdernaatualizaodedados.

O arquivo de ndice composto basicamente por duas colunas. A


primeira corresponde ao campo utilizado no processo de indexao
(endereo lgico) e a segunda armazena um valor (endereo fsico)
que serve como referncia, para que o gerenciador de arquivos
localizeoregistronodiscomagntico.

Osregistrosdosarquivosndicesoordenadospeloendereolgico.
Portanto, se utilizarmos um algoritmo de leitura seqencial em um
arquivoindexadopornome,porexemplo,obteremososregistrosem
ordemalfabtica,mesmosendooarquivodedadosumarquivoserial.
Ou seja prevalece a ordem do ndice. Porm nesse exemplo, a
performance a performance do arquivo indexado seria menor, se
comparadaadeumarquivoseqencialpornome.

Semprequeumarquivondiceforreferenciadoporumprograma,ele
ser carregado para memria principal, o que torna desprezvel o
tempodebuscadosregistrosnessearquivo.Almdisso,oalgoritmo
utilizadonabuscaodepesquisabinria,oquereduzaindamaiso
tempo.

Os ndices constitudos com base no valor da chave primria ou


candidata so conhecidos como NDICES PRIMRIOS e os demais
comoNDICESSECUNDRIOS.

11
Em resumo, a organizao indexada formadapela combinao de
pelomenosumarquivodedadoseumoumaisarquivosdendice.

AfiguraaseguirapresentaocenriodaORGANIZAOINDEXADA.

ARQUIVOALUNO
NDICE
PRIMRIO
TRILHA,SETORELADODODISCO
MATR TSL (endereofsico)
001 220
002 321 chaveprimria(endereolgico)
003 231
005 110
.
TSL MATR NOME ENDEREO DT_NASC
110 005 Maria SQS308... 23/08/78
NDICE 231 003 Jos QND14.... 25/09/70
SECUNDRIO
321 002 Ana SQN410... 10/08/85
NOME TSL 220 001 Jos GAMA 05/04/76
Ana 321
Jos 220 331 . . . .
Jos 231
Maria 110
. 331

12
CAPTULOIII

SISTEMAGERENCIADORDEBANCODEDADOSSGBD

Aexpresso BANCODEDADOS,coloquialmenteempregadacomosmaisdiversossignificados,
detalsorteque,aoindagarmosdealgumsobreoBANCODEDADOScom oqualtrabalhaem
suaempresa,poderemosobterasseguintesrespostas:

1.TrabalhocomORACLE,ACCESS,SQLSERVER,SYBASE,etc..

2.TrabalhocomobancodedadosdePESSOAL,MATERIALouFINANAS

3.TrabalhocomoCADASTRODEPESSOAL,SISTEMADEVENDAS,etc.

Para evitar conflitos terminolgicos, definimos a seguir trs expresses, consagradas na a


literaturaclssica,queseriammelhoraplicadasacadaumadassituaesanteriores.

1.SISTEMAGERENCIADORDEBANCODEDADOSSGBD
Essa expresso estar corretamente empregada, quando utilizada
para designar o SOFTWARE utilizado para criar um BANCO DE
DADOS. Portanto, tratandose de SGBD estaremos nos referindo a
produtos como ACCESS, ORACLE, SYBASE, SQL SERVER,
ADABAS,etc.

2.BANCODEDADOSBD
Esseenunciadorefereseaumconjuntodeinformaesrelacionadas,
quesoarmazenadasnocomputadorerecuperadascomautilizao
dos recursos de um SGBD. Essas informaes devem ser
estruturadas, de tal maneira, que independam de aplicaes
especficas. Ou seja, um BD de PESSOAL, adequadamente
estruturado,podefornecerdados,tantoparaumsistemadeFolhade
Pagamento, quanto para um sistema de Treinamento de Recursos
Humanos.

3.SISTEMAEMBANCODEDADOSSBD

Essa expresso referese s APLICAES desenvolvidas para


atender s necessidades especficas da empresa, que acessam um
ou mais BD para leitura ou atualizao de informaes. Tome como
exemplo de aplicaes especficas os sistemas de folha de
pagamentoeTreinamentodeRecursosHumanos,citadosnoitem
anterior.
13
A figura abaixo ilustra um ambiente onde o BANCO DE DADOS de alunos foi
estruturado para atender a quatro SISTEMAS distintos: CADASTRO DE ALUNOS,
CONTROLE DE MENSALIDADES, EMPRSTIMO DE LIVROS e CONTROLE DE
NOTAS.OBDfoimontadoutilizandoosrecursosdoSGBDSQLSERVER.

SECRETARIA
TESOURARIA
BDDEALUNOS CONTROLEDE
CADASTRO MENSALIDADES
DEALUNOS

SGBDSQLSERVER

CONTROLE EMPRSTIMOS
DENOTAS DELIVROS
DENOTAS

PEDAGOGA BIBLIOTECA

14
CAPTULOIV

OBJETIVOSDEBANCODEDADOS
Odesenvolvimentodatecnologiadebancodedadostemse pautadoporbuscaralcanar, como
objetivopermanenteoaumentodeprodutividadenasatividadesdedesenvolvimentoemanuteno
desistemas.Nessesentidoos fabricantes deSGBDvem dotandoseusprodutos commecanismos
quefacilitamaadaptaodosBDsnovasnecessidadesquesurgemnodiaadiaequereduzemo
trabalho de programao. Aliado a esses dois fatores existe toda uma filosofia que orienta os
tcnicosnaescolhadomelhorprodutoparaasuaempresaenotrabalhodeprojetodebancode
dados.

Dessafilosofiadestacamos,aseguir,algunsobjetivosdeBD,osquaisumprofissionaldeveterem
menteaolidarcomessatecnologia.

1.INDEPENDNCIADEDADOS
Os SGBD devem ser dotados de recursos que possibilitem a
descrio das estruturas de dados (layout de arquivos e/ou tabelas)
de forma independente dos procedimentos demanipulao (leitura e
gravao) de dados no BD. Esse objetivo visa tornar transparente
paraosprogramasqueacessamoBDasalteraesque,porventura,
venham a ocorrer nas estruturas de dados, como por exemplo o
acrscimo de um novo campo de informao ao banco. Da mesma
forma, alteraes em lgicas de programas que acessam o BD no
devemafetarasestruturasdedados.

Quantomaiorograudeindependnciadedados,menorserotempo
emqueoBDficarforadeoperaoparaatividadesdemanuteno
como,porexemplo,recompilao.

At hoje, a maneira mais eficiente adotada pelos fornecedores de


SGBD para implementao desse objetivo foi a utilizao do SQL
(structured query language) nos produtos que seguem o Modelo
Relacional. O SQL possui grupos de comandos especficos e
independentesparaastarefasdecriaoealteraodetabelas(DDL
datadefinition language)e leitura e atualizao doBD(DML data
manipulationlanguage).

15
2.COMPARTILHAMENTODEDADOS

ConsistenareutilizaodosdadosdoBDpelomaiornmeropossvel
de aplicaes dentro da empresa. Nesse sentido, os dados do BD
devem ser muito bem planejados e estruturados. Portanto, este
objetivodebancodedadosestamaisligadoaatividadedeanlisee
projetodeBD.

Ocompartilhamentodedadosvisadiminuiraredundnciadedados,
considerandoo como um recurso da empresa e no propriedade de
setoresisoladosdaorganizao.
Para implementar o compartilhamento de dados necessrio que a
empresadisponhaderecursosderede,quepermitamcolocaroBD
ao alcance dos diversos usurios. Alm disso, necessrio que o
SGBD possua um competente sistema de segurana, para que se
estabelea a privacidade de dados, atravs de mecanismos de
restriodeacesso.

3.MENORREDUNDNCIADEDADOS
Redundnciadedadosconsistenarepetiodeummesmodadoem
diversosarquivos(tabelas)deumsistema,bancodedados,ambiente
computacional ou empresa. Como exemplo, podese tomar a
ocorrnciadodadoNOMEDOFUNCIONRIO,embasesdedados
no compartilhadas dos sistemas de CADASTRO, FOLHA DE
PAGAMENTOeTREINAMENTOdeumaempresa.

A redundncia danosa para o ambiente computacional, pois


aumenta os custoscom oarmazenamento dedados,com opessoal
paramanutenodesistema.

Alm disso, a redundncia gera inconsistncia de dados, ou seja, o


dado redundante extrado a partir de arquivos diferentes apresenta
valoresdivergentes.Talfato,podeafetaracredibilidadedousuriono
sistemaenopessoaldeinformtica.

16
4.PRIVACIDADEDEDADOS
O COMPARTILHAMENTO DE DADOS leva um grande nmero de
usurios, com funes diversificadas na empresa, a acessar um
mesmobancodedados.Nessecontexto,o objetivode privacidade
dedadosressaltaapreocupaoqueoprojetistadeBDdeveterem
vedar o acesso de usurios no autorizadosa informaes sigilosas
oudeacessorestrito.

Nesse sentido, o sistema de segurana dos SGBD, devem possuir


meios para que o projetista possa definir perfis diferenciados de
acessoao BD, com a criao de grupos de usurios e atribuio de
direitosdeacessoaessesgrupos,apartirdautilizaodesenhas.

5.SEGURANADEDADOS

AseguranadasinformaesarmazenadasnoBDpodeserencarada
sobdoisprismas:SEGURANALGICAeSEGURANAFSICA.

A SEGURANA LGICA alcanada com a utilizao dos


mecanismos de restrio de acesso disponveis nos SGBD para
implementao do objetivo de privacidade de dados, tais como
senhas e sistemas de LOG e AUDIT que registram dados sobre as
operaes que so efetuadas no BD (data, hora, usurio, comando,
etc.).

A SEGURANA FSICA dos dados obtida a partir de utilitrios e


aplicativos que os fabricantes colocam em seus produtos, visando
facilitar o trabalho de proteo aos dados contra danos fsicos, que
podemsercausadosporfalhasdehardwareouquedadarede.Nessa
linha destacamse as ROTINAS DE BACKUP, GRAVAO COM
ESPELHAMENTO e SISTEMAS DE MONITORAO DE
TRANSAESDISTRIBUDAS(TWOPHASECOMMIT).

17
6.TRATAMENTODECONCORRNCIA

Esteobjetivode BD aborda oaspecto doacesso simultneodedois


usurios a um mesmo conjunto de informaes. O SGBD deve
possuirmecanismosparaaidentificaoetratamentodessesacessos
concorrentes,paragarantiraconsistnciadasinformaesdoBDno
sentidodesuaveracidade.

Os sistemas de bloqueio (LOCK) e desbloqueio (UNLOCK) so os


mecanismos utilizados para evitar que uma informao que est
sendo manipulada por um usurio (USU1) seja alterada por outro
(usu2).EnquantooUSU1delaseutilizaoUSU2,noteracesso
amesmaouoterapenasparaleituraereceberumavisodoSGBD
de que a informao est sendoacessada por outro usurio e pode
sermodificada.

ExistemvriosnveisdeLOCK.Asopesvariamconformeoproduto
(SGBD) analisado, sendo que os mais comuns ocorrem a nvel de
tabela,pgina(conjuntoderegistros)elinha(nvelmaisbaixo).

CabelembrarqueonveldebloqueioinfluinaperformancedoSGBD
emambientesdemissocrtica(altosndicesdeacessoconcorrente),
sendoquequantomenoronveldeLOCK,aperformancetendeaser
melhor. Ressaltase que alm desse, existem outros fatores que
influenciamnaperformancedoSGBD.

7.INTEGRIDADEDEDADOS

Aintegridadededadosrefereseamecanismosqueestodisponveis
nosSGBD,quegarantemaconsistnciadosdadosarmazenadosno
SGBD,segundoparmetrosdevalidao,especificadosnomomento
decriaodoBD,emconjuntocomasestruturasdedados.

Esseobjetivossetornoudisponvel,comorecursodoSGBD,como
advento dos modelos Relacionais e consta como prrequisito para
enquadramentodeprodutosnessacategoriadeSGBD.

NocaptulodedicadoaosSGBDrelacionaistrataremosesseassunto
commaiorriquezadedetalhes.

18
CAPTULOV

LINGUAGENSDEBANCODEDADOS
AslinguagensdebancodedadosconsistemnainterfacedousurioparainteragircomoSGBD.
Neste texto destacamos quatro modalidades de linguagens que so mais comunmente utilizadas
nessa interao: SQL, autocontida, hospedeira e visuais. Esta uma classificao meramente
didtica que objetiva apenas demostrar formas diferenciadas de interao com o BD. Outros
autorespossuemdiferentesclassificaes.

1.SQL(STRUCTUREDQUERYLANGUAGE)
AliguagemSQL(anteriormenteescritaSEQUEL)foicriadajuntocomoSistemaR,primeiro
prottipodeSGBDR,desenvolvidode1974a1979noIBMSanJoseResearchLaboratory.A
veso original do SQL foi baseada em uma linguagem anterior chamada SQUARE. As duas
linguagens so essencialmente a mesma, mas a SQUARE usa uma sintaxe bem mais
matemtica,enquantoaSQLmaisparecidacomoingls.

AlinguagemSQLmaisdoquesomenteumalinguagemdeconsulta,semqueistoseoponha
aoquerynoseunome.Elafornecefunesderecuperaoeatualizaodedados,almde
criao,manutenodaestruturadedadosecontroledoambientedoBD.

uma linguagem essencialmente interativa, porm pode ser embutida em outras linguagens
procedurais (que neste texto chamamos linguagem hospedeira) para ser utilizada em
programasbatchouonline,queacessamoBD.Suasprincipaiscaractersticasso:

_ Padro ANSI (American National Standard Institute). O ANSI estabeleceuse como um


padro de fato de SQL para os fornecedores de produtos relacionais, que atualmente
lideram o mercado. Este aspecto facilita a interoperabilidade entre BDs de diferentes
fornecedores.

_Padrodeacesso.TodooacessoaoBDRelacionalfeito emSQL,mesmoqueembutidaem
outralinguagem.

_ Interpretada(nocompilada),caracteristicaqueprovmaiorgraudeindependnciadedados
aos BD relacionais, ou seja, faz com que a aplicao reconhea alteraes nas estruturas de
dados,semnecessidadedeserrecompilada.

_ DDL, DML e DCL. O SQL possui esses trs grupos de comandos, montados conforme a funo do
comando no banco de dados. Esta caracterstica tambm relacionase independncia de dados, uma
vezquepodesedescreverosdados(DCL)deformaindependentedasaplicaes(DML).

_ DDL (Data Definition Languge). Linguagem para definio de dados, que compreende os
seguintescomandosSQL:
_ CREATE Utilizadoparacriarobjetos(tabela,ndice,view,sequence,etc.)noBD.

Exemplo:Criaodatabelafuncionriocomosatributosmatriculaenome.

CREATETABLEfuncionrio
(matriculanumber(05)
nomechar(30)

19
_ ALTER Utilizado para alterar objetos do BD (adicionar colunas, modificar tipo de
dados,adcionarintegridade,etc.).

Exemplo:Adiodaintegridadedechaveprimriatabelafuncionrio.

ALTERTABLEfuncionrio
ADDCONSTRAINTPRIMARYKEY(matricula)

_ DROP ExcluiobjetosdoBD.

Exemplo:ExclusodatabelafuncionriodoBD.

DROPTABLEfuncionrio

20
_ DML (Data ManipulationLanguge). Linguagempara manipulao
dededados,quecompreendeoscomandosparaqueousriointeraja
comosdadosarmazenadosnoBD.
SELECT Comandode leitura,utilizado paraque ousurio possa
efetuar consultas (query) nas tabelas do banco de dados. o
comando mais poderoso do SQL, efetua as sete operaes da
algebra relacional conforme veremosno captulo VIII. Seu formato
bsico SELECTFROMWHERE (leiadeonde). Pode ser
combinado com os demais comandos SQL constituindo sub
queries.OresultadodetodocomandoSELECTumatabela,que
podeconteruma,nenhumaouNlinhas.
Exemplo: Ler da tabela funcionrio matricula e nome, onde o
salriosejamaiordoque500,00.

SELECTmatricula,nome
FROMfuncionrio
WHEREsalrio>500,00

INSERT Utilizado para incluir registros nas tabelas do banco de


dados.
Exemplo:Inclusodeumregistronatabelafuncionrio.

INSERTINTOfuncionrio(matricula,nome)
VALUES(20,MariadoCarmo)

UPDATE Utilizado para alterar dados nas tabelas do banco de


dados.
Exemplo: Alterao no salrio do funcionrio de matrcula igual a
20.

UPDATEfuncionrio
SETsalrio=1200
WHEREmatricula=20

DELETE Utilizadopara excluirregistrosdas tabelasdobanco de


dados.
Exemplo:Exclusodofuncionriodematrculaiguala20.

DELETEfuncionrio
WHEREmatricula=20

21
2.LINGUAGEMAUTOCONTIDA

EstamodalidadedelinguagemaextensoproceduraldoSQL,que
nos SGBDR utilizada para desenvolvimento de programas que
ficam residentes no banco de dados (TRIGGERS, STORED
PROCEDURES,FUNCES).AcrescentaaoSQLinterativoestruturas
de deciso (IFTHENELSE) e repetio (LOOP, FOR e/ou DO
WHILE).umalinguagemproprietria(CadaSGBDpossuiasua).Os
programas escritos nessa linguagem geralmente assemelhamse a
programasPASCAL.

3.LINGUAGEMHOSPEDEIRA
So linguagens procedurais de 3 gerao (notadamente o COBOL)
utilizadas como hospedeiras (host) de comandos prprios de banco
dedados.LinguagenshospedeirasforammuitoutilizadasnosSGBD
dos modelos Hierrquicos e Rede, dado que nestas geraes de
SGBD ainda no existia o SQL com toda a sua simplicidade e
potencialidade. Por outro lado, imperava uma forte cultura nas
linguagensCOBOL,PL/1,FORTRAN,etc....quefoiaproveitadapelos
fabricantesdeSGBD,facilitandoaintroduodessanovacultura.

OsSGBDqueutilizamlinguagenshospedeiras.possuemumsoftware
PRCOMPILADOR,queinseridonarotinadecompilaodofonte
do programa hospedeiro, para converter os comandos de BD
(estranhos linguagem HOST) em linguagem objeto ou chamadas
(CALL)derotinasintelegveispelocompiladoralinguagem.

Esquemadecompliaocomlinguagemhospedeira:

PROGRAMA
FONTE
HOSPEDEIRO

PR_
COMPILADOR

PROGRAMA
PR_
COMPILADO

PROCESSO
NORMALDE
COMPILAO

22
4.LINGUAGEMVISUAL

As linguagens visuais atualmente dominam o ambiente de


desenvolvimento para a arquitetura Cliente/Servidor. Nessa
arquitetura, so utilizadas para desenvolver a interface Cliente da
aplicao. Recebem a denominao de FRONTEND. Geram
aplicaesparaambientegrfico,padroWINDOWS.Soorientadas
aeventoseemsuamaioria,baseiamsenatecnologiadeOrientao
a Objetos, apresentando recursos como classe, objeto, herana,
polimorfismo,etc..UtilizamoSQLcomolinguagemparaacessoaos
bancos de dados relacionais, atravs de APIs (Aplication Program
Interface)nativasougenricas(ex:ODBCeODAPI).

Nossa maior preocupao neste texto chamar a ateno do leitor


para o fato de que essas linguagens so FRONT_ENDs de SGBD
relacionais. Apesar de serem orientadas a objeto, no devem ser
confundidas com os BD Orientados a Objeto, que ainda so uma
tecnologiaemergente.

EsquemadeacessoaBDrelacionalcomlinguagemvisual:

SQL SQLPARO
PRGRAMAEM
BDR
LIGUAGEM API
VISUAL

DADOS DADOS

23
CAPTULOVI

MODELOHIERRQUICO

OsprimeirosSGBDlanadosnomercadoforamosdotipoHIERRQUICO.Nessacategoria,o
SOFTWAREdemaioraceitao,nomercadobrasileiro,foio IMSdaIBM.

1.LimitaesdosmodelosHIERRQUICOS

a. Relacionamentos, no mximo, de grau 1: N. O processo de


implementao dos relacionamentos do tipo M:N, ocasiona alto
grauderedundnciae/outornaseineficaz.

FORNECEDOR FORNECEDOR

1 N

N N

FATURA PRODUTO

24
b. O Banco de dados s pode ter um SEGUIMENTO RAIZ e cada
SEGMENTOFILHOpodeligarseaumnicoSEGUIMENTOPAI.

SEGUIMENTO PROFESSOR PROFESSORALUNO


RAIZ

11 11

NN NN

ALUNOMATRIAS MATRIAS

c.NoimplementamAUTORELACIONAMENTOS.

COMPOSTA

PEA

COMPE

25
d.Nopermitemduplaligaoentreduasentidades:

FORNECEDOR

11
FORNECEFABRICA

NN

PEA

e. Estruturas percorridas somente no sentido de cima para baixo. No


exemplo abaixo,poderseiafacilmente listarFATURA apartir da
entidadeCLIENTE,porm,ocaminhoinversonoseriapossvel.

CLIENTE CLIENTE

1 1

N N

FATURA FATURA

26
CAPTULOVII

MODELOREDE

Os SGBD do modelo REDE corrigiram as limitaes dos HIERRQUICOS e mereceram a


formao de um grupo da CODASYL. (Conferencie on Data Systems Langues) designado pela
sigla DBTG (Data Base Task Group). Assim, esse modelo ficou tambm conhecido como
CODASYLouDBTG.OrelatriofinaldoDBTGdatadeabrilde1971.

Como exemplos de SGBD/REDE, que seguiram o padro CODASYL, citamos: DMS1100 da


UNIVAC,IDSdaHoneywell,DBMSdaDECeoIDMSdaCullinet,quemaistardefoiestendido
incorporandoumavisorelacionaldosdadosealgumasoperaesrelacionais(IDMSR).

1.CARACTERSTICASDOSMODELOSREDECODASYL

a.OsRELACIONAMENTOSsodotipoBINRIOS(duasentidades),
possuem nome e so IMPLEMENTADOS atravs da criao de
SETs.CadaSETpossuiumaentidadepai(OWNER) eoutrafilho
(MEMBER).

FORNECEDOR OWNER

1 criaodoSETPAGA SETNAMEISpaga
SETPAGA
OWNERISfornecedor
naddldoSGBD
MEMBERISfatura
N

FATURA MEMBER

27
b. Os SETs possuem internamente ponteiros fsicos (FIRST, LAST
NEXT,PRIOR,OWNER)querelacionamosregistrosepermitema
navegaonobancodedadoscomaltaflexibilidade.

OWNER
REGISTROOWNER
OWNER
PRIOR

FIRST REGISTROMEMBER
PRIOR

NEXT
REGISTROMEMBER
LAST

c.Asestruturaspodemserpercorridasnosdoissentidosdepaipara
filho (atravs dos ponteiros NEXT, FIRST e LAST) e no sentido
inverso(atravsdosponteirosPRIOReOWNER).

CLIENTE

1
FIRST PRIOR
NEXT
LAST OWNER
N

FATURA

28
d. Um registro filho (MEMBER) pode relacionarse com mais de um
registro pai (OWNER), caracterizando REDE, que serve como
designao para o modelo de banco de dados em questo. A
estruturaREDEusadanaimplementaodosrelacionamentosdo
tipoM:N,quesotransformadosemdoisrelacionamentosdotipo
1:N,atravsdacriaodeumaENTIDADEASSOCIATIVA.

OWNER1OWNER2

PROFESSOR
PROFESSOR ALUNO
N
11

SET1PROFMATSET2ALUNOMAT

N
N MEMBER N
ALUNO
MATRIAS

ENTIDADEASSOCIATIVA

e. Permitemduplaligao entreduas entidades.Pelo exemploabaixo


poderamossabertodasaspeasqueoFORNECEDORfornecee
quaissoasqueelefabrica.

FORNECEDOR

SET1 11 SET2
FORNECE FABRICA
NN

PEA

29
f. O AUTORELACIONAMENTO transformado em relacionamento
BINRIO simulandose uma entidade OWNER ou MEMBER,
conforme o caso. A entidade simulada deve conter o ATRIBUTO
CHAVEeosPONTEIROSaelainerentes.

GERENCIADO
GERENTE
N
1
FUNCIONRIO GERENCIA

1 N
GERENCIA
FUNCIONRIO

Apesardascaractersticastcnicaspositivasjevidenciadas,osmodelosRedesopoucoflexiveis
no que se refere a alteraes nas estruturas de dados, sua cultura de difcil assimilao pelo
usuriofinaleatmesmoportcnicos.AlmdissoessesSGBDapresentamalgunsproblemasde
desempenhoenamanutenodeponteiros.

Em funo dessas dificuldades e do salto tcnolgico que experimentamos a partir da


popularizao dos microcomputadores, os SGBD Rede cederam espao para o modelos
Relacionais,quehojeconstituemsenopadrodemercado.

30
CAPITULOVIII

BANCODEDADOSRELACIONAL
O Modelo Relacional de Banco de Dados, utiliza a teoria de conjuntos como base conceitual para a
formulaodeseusconceitos.Essepressupostofacilitaoentendimentoporpartedousurioepossibilitaa
representaodomundorealdeformamaisnatural.

OModeloRelacional,comeouaserdivulgadoapartirde1970,porE.F.Codd,umcientistadaIBM,que
utilizouoSISTEMARcomoprodutoexperimentalparaacomprovaodateoriaRelacional,publicadaem
uma srie de artigos, que apresentaram os requisitos desse modelo em doze regras atualmente seguidas
pelosSistemasGerenciadoresdeBancodeDadosRelacionais(SGBDR).

AsdozeregrasdeCodd,foramreeditadaspordiversosautoresqueescreveramsobreomodeloRelacional.
Em nossa pesquisa bibliogrfica para elaborao desse material, notamos que, existem interpretaes
ambiguas e at contraditrias em relao a essas regras. Portanto, para notear o estudo do modelo
Relacional,adotamos a abordagemdeC.J.DATE,que apresentaoModeloRelacionalcomopossuindoas
seguintescaractersticasfundamentais,queodistinguedosdemaismodelos:

_Estruturadedadostabular
_Regrasdeintegridade
_Operadoresrelacionais
_UtilizaodoSQL(StructuredQueryLanguage)

OmodeloRelacional,assimcomoseusantecessores,nasceunoambientedoscomputadoresdegrandeporte
(mainframe). Sofreu resties ao uso, por demandar muita memria principal para alcanar uma
performance(temposderesposta)queotornasse comercialmentevivel.Ganhouforaapartirdoincio a
dcada de 80, com a revoluo tecnolgica provocada pela produo em larga escala dos
microcomputadoresPC,oquepropiciouobarateamentodoharware.

Atualmenteomodelorelacionalumpadroseguido,praticamenteportodososformecedoresdeSGBDdo
mercado, Dentre os quais destacamse: ORACLE, SYBASE, MYCROSOFT (SQL SERVER e ACCESS),
INFORMIXeIBMDB/2.

1.TERMINOLIGIADOMODELORELACIONAL

a. Os SGBD RELACIONAIS representam os dados sob a forma de


TABELAS bidimensionais (linhas X colunas), denominadas
RELAES.

b.AslinhasdastabelassoconhecidascomoTUPLASeascolunas
comoATRIBUTOS.

c.Onmerodeatributos(colunas)deumarelao(tabela)determina
o GRAU DA RELAO. Portanto uma relao com quatro colunas
possuigrauquatro.

d. A interseo linha X coluna de uma tabela demominase


CLULA.

e.Ocontedodeumacluladenominasevalordeatributo.
31
f.Cadacluladeumatabelarelacionalcomportaapenasumvalorde
atributo, caracterstica a qual designase por ATOMICIDADE (valor
atmico).

g. O conjunto de valores possveis para um atributo de tabela


denominaseDOMNIO.Porexemplo,odomnioparaoatributocargo
podeserdefinidocomo:Valornumricoentre1e10.

ATRIBUTO

RELAO:FUNCIONRIO
MATR NOME CARGO DT_NASC
TUPLA
01 MIRIAM 01 25/09/62
02 JUVENAL 03 18/04/70
03 GABRIELA 02 10/02/68

VALORDE
CLULA ATRIBUTO

2.REGRASDEINTEGRIDADE

Integridadededadosoconjuntodeparmetros(regrasdonegcio)
previamenteestabelecidosecriadosnobancodedados,aosquaisos
dados so submetidos, para garantir que de um processo de
atualizaonoresultemdadosinconsistentes.

Uma das caractersticas mais fortes dos SGBDR, est em oferecer


mecanismos para a criao de regras de integridade diretamente no
banco de dados. Nesse ponto a grande vantagem em relao aos
demais modelos (Hierrquico e Rede), consiste n o gerenciamento
automtico e centralizado de rotinas de integridade pelo SGBD, do
que decorrem fatores como a eliminao de cdigos redundntes e
maiorsegurananoqueserefereconsistnciadasinformaes.

Por outro lado, a possibilidade de de definir integridade no BD, no


descartaa hiptesedemantelano fontedaaplicao queacessa o
BD.NaarquiteturaCliente/Servidor,essaprticamuitocorriqueirae
podetrazersignificativosganhosdeperformance.

As regras de integridade de dados podem ser implementadas nos


SGBDRdeformaDECLARATIVAouPROCEDURAL:
32
a.INTEGRIDADEDECLARATIVA

A integridade declarativa implementada no BD, atravs de


parmetrosopcionaisdalinguagemdedefiniodedados(DDL).Os
tiposmaiscomusdeintegridadedeclarativaso:CHAVEPRIMRIA,
DOMNIOeINTEGRIDADEREFERENCIAL.

AintegridadedeCHAVEPRIMRIAgarantequeachaveprimriada
tabelanocontenhavaloresemduplicataenemvalorNULO.

A integridade de DOMNIO permite restringir o universo de valores


vlidosparaumacoluna.

AintegridadeREFERENCIALgaranteosincronismodevaloresentre
achaveestrangeira(foreignkey)earespectivachaveprimria.Esse
tipo de integridade ser tratado com maiores detalhes no item c
destecapitulo.

NaDDLdoORACLE,porexemplo,ocomandoCREATEapresentaas
seguintesopesdeintegridadedeclarativa:

_PRIMARYKEYGaranteaintegridadedechaveprimria.
_NOTNULLTornaocampodepreenchimentoobrigatrio.
_CHECKPermiteaintegridadededomnio.
_UNIQUEEvitaaocorrnciadevaloresemduplicata.
_FOREIGNKEYImplementaaintegridadereferencial.

Exemplo:

CREATETABLEfuncionrio
(matriculanumber(05)PRIMARYKEY
nomechar(30)NOTNULL
sexochar(01)CHECKsexo=ForM

No exemplo, o ORACLE encarregase da integridade de chave


primria (PRIMARY KEY), da condio de campo obrigatrio (NOT
NULL)edaintegridadededomnio(CHECK),todasespecificadasde
forma declarativa. Nenhuma linha de cdigo necessria nos
programasqueacessamBDparagarantiressasintegridades.

33
b.INTEGRIDADEPROCEDURAL

AIntegridadeProceduralapresentasesobaformadeumprograma,
cuja lgica escrita pelo programador, na linguagem procedural
nativadoSGBD.Essetipodeintegridadesupreasnecessidadesno
cobertaspelosparmetrosdeintegridadedeclarativa.

No ORACLE a integridade procedural pode ser criada atravs de


TRIGGERS, STORED PROCEDURES ou FUNES DO USURIO.
Estes elementos so escritos em PL/SQL que a extenso
proceduraldoSQLdesseSGBD.

Um TRIGGER (gatilho) criado para disparar, automaticamente,


semprequeoSGBDdetectaraocorrnciadeumoumaiscomandos
deacessoatabela.

Exemplo:

CREATETRIGGERatualiza_saldo
AFTERINSERTONTABLElanamentos
BEGIN
UPDATETab_saldo
SETsaldo_atual=saldo_atual+valor_lanamento
END

No exemplo, sempre que um registro for includo na tabela


lanamentos o trigger dispara e atualiza o saldo_atual na tabela
tab_saldo.

NemtodososSGBDpossuemintegridadeprocedural.Esserecurso
mais frequente nos SGBD de maior porte como ORACLE, DB/2,
INFORMIX,SQLSERVER,etc..

34
c.INTEGRIDADEREFERENCIAL

A Integridade Referencial o mecanismo dos SGBDR que, no


processodeatualizao doBD,mantmosincronismo entre duas
tabelasrelacionadas,emrelaoaosvaloresdachaveestrangeira
edarespectivachaveprimria.

TABELAPAI FUNCIONRIO
MATRICULA
PK
1

N
TABELAFILHO DEPENDENTE
MATRICULAFK

A integridade referencial evita a ocorrncia de registros orfos no


banco de dados, ou seja, registros filhos sem a correspondente
linhadereferencianatabelapai.

Os SGBD_R que seguem o padro SQL ANSI/92, suportam a


integridade referencialde forma declarativa.Possuemaindaaes
referenciais, que propagamatualizaese excluses efetuadas na
tabelapaiparaatabelafilho.

As aes referenciais propiciam, por exemplo, que a excluso de


um registro pai provoque a excluso automtica de seus
respectivos filhos (excluso em cascata), ou que a alterao no
valor de uma chave primria reflitam automticamente para os
registrosqueareferenciam(atualizaoemcascata).
Exemplo:

CREATETABLEfuncionrio
(matriculanumber(05)PRIMARYKEY
nomechar(30)
sexochar(01))

CREATETABLEdependente
(id_dependentenumber(05)PRIMARYKEY
nome_dependentechar(30)
datanascimentodate
matricula_funcionrionumber(05)FOREIGNKEY

REFERENCESfuncionrio.matricula
ONDELETECASCADE)

35
Oexemploapresentaaintegridadereferencial,declaradanatabela
dependente,indicandoqueocampomatricula_funcionriodessa
tabela,refereseaocampomatriculadatabelafuncionrio.Com
essa declarao o SGBD garante que a incluso de um
DEPENDENTE, somente ser valida caso exista o
FUNCIONRIOcorrespondente.

Por outro lado, a clusula ON DELETE CASCADE indica que


sempre que for excludo um registro da tabela funcionrio, o
SGBD deve excluir automticamente os registros da tabela
dependenteaelerelacionados.

3.OPERADORESRELACIONAIS
OsOperadoresRelacionaisconstituemmecanismosdoSGBDRpara
recuperao de informaes no Banco de Dados. Inseremse no
contexto da Algebra Relacional que possui sete operadores, sendo
trs relacionais (PROJEO, SELEO e JUNO) e quatro
operadores tradicionais de conjunto (UNIO, INTERSEO,
DIFERENAePRODUTOCARTEZIANO).

Para que um SGBD seja considerado relacional basta que possua


apenasosoperadoresrelacionais.Osoperadoresdeconjuntopodem
sersimuladosapartirdosprimeiros.

No SQL/ANSI, os sete operadores so implementados por variaes


nasclusulasdocomandoSELECT.

NocaptuloVIIItrataremosdosoperadoresrelacionaiscomexemplos
daaplicaodecadaumdeles.

4.PROPRIEDADESRELACIONAIS
As Propriedades relacionais so consideraes bvias, porm
elucidativas a respeito do funcionamento e da filosofia que norteia o
desenvolvimentodosSGBDR.Essaspropriedadesderivamdateoria
de conjuntos e algumas se sobrepem ou confirmam as regras de
integridade.

36
a.Umatabelanodevepossuirduaslinhasiguais. Istoseexplica
pelofatodequeaslinhassocomponentesdeumconjunto(atabela)
e se faz necessrio poder distinguir os elementos de um conjunto.
Assim sendo, pelo menos um atributo componente da linha deve
possuir um valor que a diferencie das demais. Nos modelos
relacionais o diferencialmnimoentre duas linhas de uma tabela a
chaveprimria.

b. Toda a tabela de um BD relacional deve possuir chave


primria. Essa propriedade decorre da anterior. Atualmente, todos
os SGBDR disponveis no mercado mantm automaticamente a
unicidade da chave primria. Por outro lado, alguns produtos
relacionaispermitemacriaodetabelassemPK,deixandoacritrio
doanalistaasuadeclaraoouno,oquecontrariaestapropriedade
masatribuimaiorflexibilidadeaoproduto.

c. Cada tabela deve possuir um nome prprio, distinto das


demais tabelas do mesmo banco de dados. Essa propriedade
tambm deriva da teoria de conjuntos, j que as tabelas so
componentes do conjunto BD. Ressaltase que em banco de dados
distintosduastabelaspodemteromesmonome.

d. Cada atributo de uma mesma tabela deve possuir um nome


diferente. Poroutrolado,omesmoatributopodeapareceremoutra
tabelacomomesmonomeoucomnomediferente(sinnimo).

e. Os SGBDR somente operam com estruturas de dados de


formatotabular,normalizadaspelomenosem!FN(1formanormal),
ondeaprincipalcaractersticaaatmicidade,ouseja,ocorrnciade
apenasumvalordeatributoparacadacluladatabela.Essenvelde
normalizao exigido para tornar possvel a aplicao da lgebra
Relacional para recuperar informaes contidas nas tabelas do BD.
Nveismaisaltosdenormalizao(2FNa$FN)soteisparadiminuir
aredundncia,melhoraraconsistnciaeintegridadedosdados.

f.Aordemdaslinhasecolunasnatabelairrelevante,poispode
ser facilmente modificada nas consultas, atravs dos recursos da
lingugemSQL(StructuredQueryLanguage).

g. Os SGBDR devem ser capazes de tratar, de maneira


diferenciada o valor NULO (NULL), que indica ausncia de valor
paraumatributoemdeterminadalinha.Nulocorrespondenateoriade
conjuntosaconjuntovazioediferentedezerooubranco.

37
5.VANTAGENSDOMODELORELACIONAL

As vantagens em relao aos sistemas de arquivos convencionais e


SGBDHierrquicoseRedeso:

a. Linguagem SQL interativa e muito prxima da linguagem natural


escrita(ingls)

b.Facilidadenoentendimentodaestruturadedadostabular

c.Maiorpossibilidadedeutilizaodiretapelousuriofinal

d.CentralizaodaintegridadenoBD.

e.Reduonotamanhodoscdigosdeprograma

f.Maiorintegridadeeconsitnciadedados

g.Maiorsegurana

h.MaiorflexibilidadeparaacrscimodenovasinformaesnoBD

i. Possibilidade de criar gatilhos (TRIGGERS) e procedimentos


armazenados(STOREDPROCEDURE)

j.MaiorProdutividade.

l. Padronizao dos produtos facilitando a difuso e preservao da


culturarelacional.

38
CAPITULOIX

LGEBRARELACIONAL

A lgebra Relacional uma teoria matemtica baseada nas relaes entre conjuntos. Da sua
aplicao ao Modelo Relacional de Banco de Dados, resultou a possibilidade de armazenar
estruturasdedadoscomplexas(comoumafichacadastrodeclientes),demaneirafragmentada,
no formato tabular dos SGBRR e recompor a informaooriginal, apartir da formulao de
relaes entre as tabelas do banco de dados. Essas relaes so providas pelos operadores da
lgebra relacional, que se encontram disponveis nos recursos da linguagem SQL (Structured
QueryLanguage).
Osoperadoresdalgebrarelacionalclassificamseemdoisgrupos:

_OPERADORESTRADICIONAISDECONJUNTO

.UNIO
.INTERSEO
.DIFERENA
.PRODUTOCARTESIANO

_OPERADORESRELACIONAIS

.PROJEO
.SELEO
.JUNO

Para classificarse um SGBD como Relacional, fundamental que ele possua, entre outras
caractersticas,nomnimoos trs operadores relacionais,hajavistaque,nem todos os SGBDR
possuem os sete operadores.Os Operadores Tradicionais so mais encontrados em SGBD mais
robustos,comoORACLE,SYBASE eDB/2.

39
1.ESTUDODECASO

O grfico abaixo corresponde ao Modelo de Entidades e


Relacionamentos (MER) de um banco de dados, que ser utilizado
comorefernciaparaoestudodosoperadoresrelacionais.

CLIENTE

CONTA

40
Segueumaamostragemdastabelasdobancodedadosrepresentadono MER:

CLIENTE
C=COMUM
IDCLI NOME ENDEREO TIPO
E=ESPECIAL
RITA SQN V
001 V=VIP
MARCELO GUAR C
002
CARLA GAMA E
003
VTOR SQS C
004
RAQUEL SQS E
005
BRUNA GUAR V
006
SNIA CRUZEIRO C
007
GETLIO SQN C
008

CONTA_CORRENTE
NUM
AGENCIA CONTA IDCLI SIT SALDO
106 001 004 0 20.000,00
106 002 003 2 250,00
106 040 003 0 500,00
167 001 005 0 50,00
167 005 007 0 10,00
167 006 008 2 20,00
202 001 001 0 150,00
202 002 003 1 0
202 003 002 0 30,00
202 004 004 2 50.000,00
0=ATIVA
1=INATIVA
2=BLOQUEADA

41
2.GENERALIDADES

a. Nos SGBD que utilizam o SQL padro ANSI (Americam National


Standard Institute), os operadores da lgebra Relacional so
implementados porvariaes de parmetros na sintaxe do comando
SELECT,queumcomandodeleituradabasededados.

b.AsintaxeutilizadaparaoscomandosSELECT,queapareceronos
exemplos,foiextradadosmanuaisdoSGBDORACLE,quesegueo
padroSQLANSI.AestruturabsicadocomandoSELECT:

SELECTcolunas....ou *(quesignificatodasascolunas)
FROMtabelas.....
WHEREcondio........

c. As operaes da lgebra relacional geram sempre uma tabela


resultado residente em memria principal (tabela virtual), que em
analogiacomateoriadeconjuntos,podeservazia,unitriaouconter
Nlinhas.

d. As operaes podem ser efetuadas entre duas tabelas virtuais


atravs da combinao de dois comandos SELECT em uma nica
sentena.

e. comum a combinao de diversos operadores da gebra


Relacional em um nico comando SELECT. A anlise individual de
cadaumdelesumexercciomeramentedidtico.

f. As situaes criadas, so apenas ensaios, que no esgotam as


possibilidadesdeutilizaodosoperadores.Almdisso,umamesma
necessidadepode termais deumasoluo. Portantoa utilidadedos
operadoresdependedoproblematratadoedacriatividadedotcnico.

42
3.OPERADORESDECONJUNTO

a.UNIO

A unio de duas tabelas A e B, resulta numa tabela virtual


C, contendo o total de linhas das tabelas envolvidas na
operao.

No sistema exemplo, imaginequecada agncia mantenha os dados


cadastraisdeCLIENTEemservidoreslocaisdesuarede,equeesses
servidores esto ligados em um servidor corporativo. Para se obter
no servidor corporativo uma viso nica, que contenha os dados de
todos os clientes do Banco, podese utilizar o operador UNION da
seguintemaneira:

SELECT * FROMcliente@agencia1
UNION
SELECT * FROMcliente@agencia2
.
.
UNION
SELECT * FROMcliente@agenciaN

O resultado seria idntico ao que temos na amostragem da tabela


CLIENTEdosistemaexemplo:

IDCLI NOME ENDEREO TIPO


001 RITA SQN V
002 MARCELO GUAR C
003 CARLA GAMA E
004 VTOR SQS C
005 RAQUEL SQS E
006 BRUNA GUAR V
007 SNIA CRUZEIRO C
008 GETLIO SQN C

Obs: Os SELECTs devem referenciar os mesmos atributos e na


mesmaseqncia.

43
b.INTERSEO

AInterseoentreduastabelasAeB,resultanumatabelavirtual
C, contendo as linhas comus s duas tabelas envolvidas na
operao.

Nosistemaexemplo,considereanecessidadedeselistaroID
CLI" de clientes que possuam, simultaneamente,
CONTAS_CORRENTESativasebloqueadas.Paraatenderaesse
requerimento, podese utilizar o operador INTERSECT da seguinte
maneira:

SELECTid_cli
FROMconta_corrente
WHEREsit=0
INTERSECT
SELECTid_cli
FROMconta_corrente
WHEREsit=2

Considerando a amostragem da tabela CONTA_CORRENTE do


sistemaexemplo,oresultadodoSQLanteriorseria:

IDCLI
004
003

Obs:OsSELECTsdevemreferenciarosmesmosatributosena
mesmaseqncia.

44
c.DIFERENA

A Diferena entre duas tabelas A e B (na ordem A B), resulta


numa tabela virtual C, contendo as linhas pertencentes
exclusivamentetabelaAenoaB.

Nosistemaexemplo,considereanecessidadedeselistaroIDCLI"
de clientes que no possuam contas_correntes INATIVAS ou
BLOQUEADAS, somente ATIVAS. Para atender a esse
requerimento, podese utilizar o operador MINUS da seguinte
maneira:

SELECTid_cli
FROMconta_corrente
WHEREsit=0
MINUS
SELECTid_cli
FROMconta_corrente
WHERE sit=2ORsit=1

Considerando a amostragem da tabela CONTA_CORRENTE do


sistemaexemplo,oresultadodoSQLanteriorseria:

IDCLI
005
007
001
002

Obs: Os SELECTs devem referenciar os mesmos atributos e na


mesmaseqncia.

45
d.PRODUTOCARTESIANO

A Produto Cartesiano entre duas tabelas A x B resulta numa


tabelavirtualC,contendotodasaslinhasdatabelaAcombinadas
comtodasaslinhasdatabelaB,atravsdaconcatenaodesuas
linhas.

Essa operao tem uma certa semelhana com a JUNO, pois


combina dados demais de uma tabela, exceto que no estabelece
nenhumcritrio(joincondition)paraisso.

Geralmente o Produto utilizado para construo de massas de


testeou quando o tcnicoesquece de colocar o join condition em
um SELECT que envolva duas ou mais tabelas. Nesse caso, pode
resultar numa tabela enorme. Por exemplo, o produto entre uma
tabela A com 50 linhas e uma tabela B com 100 linhas resulta
numatabelaCcom5.000linhas.

OSELECTaseguirefetuaumproduto entreastabelasCLIENTEe
CONTA_CORRENTE:

SELECTnome,saldo
FROMcliente,conta_corrente

Considerando as amostragens das tabelas do sistema exemplo


referenciadasnocomandoanterior,atabelaresultadoteria80linhas,
comoseguinteaspecto:

NOME SALDO
RITA 20.000,00
RITA 250,00
RITA 500,00
. .
. .
MARCELO 20.000,00
. .
MARCELO 50,000,00
. .
. .
SNIA 30,00
. .
. .
. .
GETLIO 50,000,00

46
3.OPERADORESRELACIONAIS

e.PROJEO

AProjeoconsisteemobterumsubconjuntodecolunasde
umaoumaistabelas_base,comoresultadodeumaconsultaparcial
aosdadosdisponveisnobancodedados.

Geralmente utilizada em conjunto com as demais


operaesparaproduzirresultadosdeconsultas,ouainda,paracriar
vises(VIEWs),querestringemoacessodousurioadeterminados
atributosdabasededados.

Nosistema exemplo,umaconsulta contendonome e endereo dos


clientes, corresponde a uma PROJEO elaborada a partir da
tabelabaseCLIENTE,atravsdaseguintesentenaSQL:

SELECTnome,endereo
FROMcliente

Considerando a amostragem da tabela CLIENTE do sistema


exemplo,oresultadodoSQLanteriorseria:

NOME ENDEREO
RITA SQN
MARCELO GUAR
CARLA GAMA
VITOR SQS
RAQUEL SQS
BRUNA GUAR
SNIA CRUZEIRO
GETLIO SQN

47
f.SELEO

Tambm conhecida como Restrio, essa operao tem por


finalidade selecionar um subconjunto de linhas de uma ou mais
tabelas_base,deacordocomcritrios(wherecriteria),queenvolvem
atributos e valores para filtrar os dados desejados, gerando uma
consultaparcialaosdadosdisponveisnobancodedados.

Geralmente utilizada em conjunto com as demais


operaesparaproduzirresultadosdeconsultas,ouainda,paracriar
vises(VIEWs),querestringemoacessodousurioadeterminadas
linhasdetabelasnabasededados.

Os Critrios de Seleo so traduzidos na sintaxe do comando


SELECT,pelacombinaodeoperadoreslgicos(AND,OR,NOT),
aritimticos (=, <>, >, <, >= e <=) e operadores SQL (BETWEEM,
LIKE,IN,NULL),representadosnaclusulaWHERE.

No sistema exemplo, uma consulta contendo somente os clientes


VIP,correspondeaumaSELEOelaboradaapartirdatabelabase
CLIENTE,atravsdaseguintesentenaSQL.

SELECT *
FROMcliente
WHEREtipo=V

Considerando a amostragem da tabela CLIENTE do sistema


exemplo,oresultadodoSQLanteriorseria:

IDCLI NOME ENDEREO TIPO


001 RITA SQN V
006 BRUNA GUAR V

48
g.JUNO

Essa operao relacional utilizada para compor informaes


complexas a partir de tabelas relacionadas. A juno de duas
tabelas A e B concatena as linhas das tabelas envolvidas,
resultandonumatabelavirtualC.

Para efetuar a JUNO de duas tabelas essencial que elas


estejam logicamente relacionadas, conforme prev o modelo
relacional,ouseja,ograudorelacionamentodevesernomximo1
:N,sendoqueachaveprimriadaentidade1devefigurarcomo
chaveestrangeiradaentidade N.Almdisso,osvaloresdessas
chaves devem ser coincidentes, para as linhas que se deseja
concatenar.

AjunonotadanasintaxedoSQL,pelacomparaodeatributos
chave primria /chave estrangeira, atravs da clusulaWHERE do
comando SELECT, o que denominamos condio de juno (join
condition). Quando o tcnico esquece de colocar o join condition
em um SELECT que envolva duas ou mais tabelas o SGBD
geralmenteefetuaoPRODUTO.

OSELECTaseguirefetuaumajunoentreastabelasCLIENTEe
CONTA_CORRENTE:

SELECTnome,saldo
FROMcliente,conta_corrente
WHEREcliente.idcli=conta_corrente.idcli

Considerando as amostragens das tabelas do sistema exemplo


referenciadasnocomandoanterior,atabelaresultadoseria:
NOME SALDO
RITA 150,00
MARCELO 30,00
CARLA 500,00
CARLA 0,00
VITOR 20.000,00
VITOR 50.000,00
RAQUEL 50,00
SNIA 10,00
GETLIO 20,00
Note que a cliente de nome BRUNA no figura na tabela resultado
porquenopossuiregistronatabelaCONTA_CORRENTE.
49
PROJETODEBANCODEDADOS

PARTEII

NORMALIZAO

50
CAPTULOI

1.DEFINIO
A NORMALIZAO uma tcnica de modelagemde dados, criadapor
E.F.CODD,noslaboratriosdepesquisadaIBM,lanadajuntocomas
basesdomodeloRelacionaldeSGBD.Essatcnicademodelagemnos
proporcionacritrios objetivos, paradeterminarmosquando uma relao
(tabela / estrutura de dados) apresenta problemas no tocante
observnciadeprincpiosdoenfoquerelacional,taiscomo:

Tabelabidimensional(valoresatmicos)
Regrasdeintegridade
Mnimaredundncia
Nenhumainconsistncia
Inexistncia de anomalias de atualizao (incluso, alterao e
excluso)

OprocessodeNORMALIZAOpropostoporCODD,deuorigematrs
FORMASNORMAIS:

_PRIMEIRAFORMANORMAL1FN
_SEGUNDAFORMANORMAL2FNe
_TERCEIRA3FN.

Outras formas normais foram propostas, por diversos autores,


configurando situaes que ocorrem mais raramente, sendo a 4FN a
maissignificativa.

Conforme veremos mais adiante, a 1FN visa to somente colocar as


estruturasdedadosoriundasdosmodelosconceituaisnoformatotabular
adequado,quepermitaqueelaspossamsercriadasnosSGBDR.Nesse
sentido,considerasequerelaesem1FNjestoNORMALIZADAS.

AsdemaisformasnormaisestodirigidasparaevitarREDUNDNCIADE
DADOS, INCONSISTNCIAS e ANOMALIAS DE ATUALIZAO.
Redundncia de dados um fato gerador de inconsistncias, j as
anomalias de atualizao criam dificuldades operacionais para a
manutenodoBD.Essesaspectosreforamaimportnciadeaplicao
da2FNe3FN.

51
2.ANOMALIASDEATUALIZAO

So problemas presentes em estruturas de dados modeladas de forma


inadequada.

TABELAFUNCIONRIO
MATR NOME ENDEREO CODORGO SIGLAORG QTDFUNC
03 JOO SQS 01 GETAE 2
05 JOS SQS 01 GETAE 2
01 VILMA GAMA 05 GEPAC 1
02 ANA GUARA 02 GEPRO 3
08 JUCA SQN 02 GEPRO 3
06 ANA SQN 02 GEPRO 3

ExenplosdeanomaliasdeatualizaonatabelaFUNCIONRIOS:

AINCLUSOdeumnovoORGOnatabelaficacondicionadaaque
algumfuncionriosejaalocadonele

A ALTERAO de nome do rgo GERAE para GETAE provoca


atualizao em vrias tuplas, haja vista, que o mesmo pode repetirse
numerosasvezesnarelao

A INCLUSO de um novo funcionrio para o GEORG causa


ALTERAOnoatributoQTFUNCemdiversastuplas

A EXCLUSO da funcionria VILMA da tabela ocasiona perda de


informaessobreoGEPAC

52
3.TERMINOLOGIA
OvocabulriodeNORMALIZAOseconfundecomoempregado
nosSGBDdomodeloRELACIONAL.Issoocorreporqueatcnica
denormalizaoumadasbasesdessemodelo.Ostermosabaixo
sorelevantesparaoentendimentodastrsformasnormais.
a.CLULA

Interseo(LINHAXCOLUNA)deumarelao.

b.ITEMREPETITIVO(VALORNOATMICOouATRIBUTONO
SIMPLES).

Ocorrequandoumaclulapossuimaisdoqueumvalordeatributo,
representadoporestruturasdedadosdostiposVETOR,MATRIZ
ou ITENS DE GRUPO, que impedem a adequada aplicao das
operaesrelacionais,comSQL(StructuredQueryLanguage).

c.VALORATMICO(ATRIBUTOSIMPLES)

Caracterizado quando uma clula possui apenas um valor de


atributo.EstaasituaoadequadanomodeloRelacional.

d.CHAVEPRIMRIA

CHAVEPRIMRIA,PRIMARYKEY(PK)ousimplesmenteCHAVE
o atributo ou combinao de atributos que permite a
IDENTIFICAO NICA de cada tupla na relao. A PK no
admiteduplicataenemvalornulo.

Ex: Se pesquisarmos uma relao de FUNCIONRIOS, de PK =


MATRICULA, utilizando a matricula como chave de acesso,
deveremosobterumanicatuplacomoresultadodapesquisa.

53
Achaveprimriapodesersimplesoucomposta:

SIMPLES:Constitudadeapenasumatributo

Exemplo:

CODPRODUTO==>NOMEPROD
NUMCONTA==>NOMECLI,DTNASC,SALDO

COMPOSTA: formada pela concatenao de dois ou mais


atributos.

Exemplo:

CODPROD+CODFORNECEDOR==>PREOPROD

MATRALUNO+MATRPROF+DATAPROVA==>NOTAPROVA

NUMCONTA+TIPOAPLICAO+DATA==>SALDOAPLIC

e.DEPENDNCIAFUNCIONAL

a correspondncia (identificao unvoca) existente entre dois


atributos de uma mesma relao. pode ser de trs tipos:
COMPLETA,PARCIALeTRANSITIVA

f.DEPENDNCIAFUNCIONALCOMPLETA(DFC)

Relao de identificao unvoca entre o ATRIBUTOCHAVE e os


demaisatributosdarelao.

Ex:CODCLIENTE==>NOMECLIENTE,ENDEREO

CODCLIENTE + NUMPRESTAO ==> DTVENCIMENTO,


VALOR

54
g.DEPENDNCIAFUNCIONALPARCIAL(DFP)

RelaodeidentificaounvocaentrepartedaCHAVEPRIMRIA
(PK composta por dois ou mais atributos) e algum dos demais
atributosdarelao.

Ex: CODPRODUTO + CODFORNECEDOR ==> NOMEPROD,


PREO

CODPRODUTO identifica univocamente o NOMEPROD e um


componentedachaveprimria.

Obs.: Para que ocorra dependncia parcial necessrio chave


primria composta. Por outro lado, nem sempre que ocorre
PKcompostahaverdependnciaparcial.

h.DEPENDNCIAFUNCIONALTRANSITIVA(DFT)

Relao de identificao unvoca entre atributos que no fazem parte da


chaveprimriadarelao.

Ex:PKMATR==>NOME,DTNASC,CODSETOR,NOMESETOR

CODSETOR identifica univocamente o NOMESETOR e no faz


partedachave.

55
4. NOTAO PARA DESCRIO DAS ESTRUTURAS DE
DADOS

Existem diversas notaes, segundo as quais, podemos representar


genericamente uma relao. Neste trabalho iremos adotar,
principalmente, a notao empregada por CHRIS GANE para a
descrio de depsitos de dados e, opcionalmente, a notao de
YORDON/DEMARCO.

TABELAVENDA:
ITENSDEVENDA
NUMNF NOMECLI ENDCLI DTVENDA CODPROD QTD PUNIT
01 10 20,00
001 Antnio SQS 22/08 02 20 10,00
05 8 5,00
02 Juliana SQN 10/09 01 6 20,00
03 Cludia SQS 20/07 05 10 5,00
.

A representao genrica da relao VENDA, conforme a notao de


GANE,correspondeseguinte:

VENDA==>nomedarelao
#NUMNF
NOMECLI
ENDCLI
DTVENDA
ITENSDEVENDA*===========================>gruporepetitivo
#CODPROD
QUANT
PUNIT

56
Observaes:

ITENS DE GRUPO so IDENTADOS, com deslocamento para a


direitadandoidiadehierarquia

GRUPOSREPETITIVOSsosinalizadoscom*e/ougrafadosno
PLURAL.

Os atributos componentes da CHAVE devem receber uma das


seguintesnotaes:

.sublinhados,ou

.Um#ouumCcolocadosesquerdadosatributos.

A representao genrica da tabela VENDA segundo a notao de


YORDON/DEMARCO:

VENDA = NUMNF, NOMECLI, ENDCLI, DATAVENDA, ITENSDE


VENDA{CODPROD,QUANT,PUNIT}

Observaes:

GRUPOSREPETITIVOSsorepresentadosentrechaves

OATRIBUTOCHAVEdevesersublinhado.

Para relaes com grande nmero de atributos a notao de GANE


maiseficiente

57
5.ESQUEMADANORMALIZAO

RELAO
NO Tabelacomitensdegrupo
NORMALIZADA

EliminarITENSDEGRUPO

1FN Escolherachaveprimria

EliminarDEPNDNCIAPARCIAL

2FN

EliminarDEPENDNCIATRANSITIVA

3FN

58
6.RELAESNONORMALIZADAS

Uma relaoNONORMALIZADA aquela que possui atributos do


tipoNOSIMPLES(NOATMICOS).

Para a devida utilizao dos OPERADORES RELACIONAIS


necessrio que a relao nonormalizada seja transformada numa
forma onde os atributos s contenham VALORES ATMICOS, em
outras palavras, preciso tornar a estrutura de dados plana. Esse
processo de planificao da relao concretizado aps a sua
transposioparaa1FN.

Considerearelaoabaixo:

Relao:CONTACORRENTE

CONTACORRENTE
CONTA
AGENCIA
NUMERO
NOMECLIENTE
ENDEREOCLIENTE
DEPENDENCIA
TIPOAGENCIA
DESCRIOTIPOAGENCIA
ENDEREODEPENDENCIA
LANAMENTOS*
NUMDOCUMENTO
DATADOCUMENTO
VALORLANAMENTOObservaes:

OsatributosCONTA,DEPENDNCIAeLANAMENTOSsoitens
degrupo

OatributoLANAMENTOSumgruporepetitivo

Essesatributossodotiponoatmicos,poissuasclulasnocontm
valoresnicos.

ArelaoCONTACORRENTEestnaformaNONORMALIZADA.

59
7.PRIMEIRAFORMANORMAL(1FN)

Uma relao est em 1FN se todos seus ATRIBUTOS so SIMPLES


(ATMICOS).

Para colocarmos uma relao em 1FN devemos PLANIFICALA,


eliminando de sua estrutura os atributos NOATMICOS (VETOR,
MATRIZ e ITEM DE GRUPO), de modo que, cada clula da tabela
possua apenas um valor de atributo. Isto porque os atributos NO
ATMICOSnopodemserimplementadosnosSGBDRELACIONAIS.

A especificao abaixo, corresponde relao CONTACORRENTE


apsoprocessodenormalizao(1FN):

CONTACORRENTE
AGENCIA
NUMEROCONTA
NOMECLIENTE
ENDEREOCLIENTE
TIPOAGENCIA
DESCRIOTIPOAGENCIA
ENDEREODEPENDENCIA
NUMDOCUMENTO
DATADOCUMENTO
VALORLANAMENTO

Observaes:

O esquema genrico passou a contar somente com ATRIBUTOS


SIMPLES.TodososITENSDEGRUPOforameliminados.

Assim como toda a relao em 1FN, a estrutura de dados acima


apresentaredundnciaseanomaliasdeatualizao.

CODDestabeleceumoutroprocedimentoparanormalizao(1FN),que
o de decompor a relao nonormalizada em tantas relaes
quantosforemosgruposrepetitivosalmdeincluirumarelaopara
oconjuntodecolunasatmicas.Noprocessoquedescrevemosessas
relaes surgem naturalmente na derivao das formas normais
seguintes(2FNe3FN).

60
8.ESCOLHADACHAVEPRIMRIA

Estando a relao em 1FN, o prximo passo no esquema de


normalizaoaescolhadaCHAVEPRIMRIA.

CHAVE PRIMRIA Atributo (chave simples) ou combinao de


atributos (chave composta) que identifica univocamente as tuplas de
umarelao.

NaescolhadoATRIBUTOCHAVEosseguintesaspectossorelevantes:

a.Nopodecontervalornuloparaevitarduplicatas

b.Nopodeconterduplicatasparagarantiraidentificaounvoca

c.Deveserumatributoestvel(nosujeitoconstantesmudanas)

Estvel:MATRICULA,CPF,NUMCONTACORRENTE

Noestvel:MOEDANACIONAL,SALDO,INDICEECONMICO

d.Nodevedarmargemambiguidadesparagarantiraeficinciade
acesso (dar preferncia a cdigos numricos e o mais curtos
possveis)

Obs1:atributosalfabticospodemgerardvidasquantografia.
Ex:NomedepessoaLusouLuizMeloouMello
NomedergoGERADGEDADGEPAD

Obs2: Cdigos alfanumricos ou atributos muito extensos so mais


propensosaerrosdedigitao.

e. Os grupos repetitivos, constantes da relao nonormalizada,


devemcederpelomenosumatributoparaformarachavecomposta
darelaoem1FN

f. CHAVES CANDIDATAS ocorrem quando numa relao existem


vrios atributos (ou combinaes) com potencial de CHAVE
PRIMRIA. Nesse caso, para escolherse a CHAVE da relao,
devese considerar os critrios anteriormente definidos. Somente
umaCHAVEPRIMRIAserescolhida,asdemaisserochamadas
CHAVESALTERNATIVAS.

61
g. O processo de escolha de CHAVES PRIMRIAS em um BD
relacional constitui um fator crtico, que afeta a estabilidade do
Banco de dados, pois, os relacionamentos so implementados
atravsdaredundnciadasCHAVES.Portanto,qualqueralterao
na chave repercute em todos os relacionamentos nos quais a
entidade detentora da mesma esteja envolvida (direta ou
indiretamente).

Exemplo: Consideremos a relao CONTACORRENTE em 1FN


(ITEM5.5):

CONTACORRENTE
AGENCIA
NUMEROCONTA
NOMECLIENTE
ENDEREOCLIENTE
TIPOAGENCIA
DESCRIOTIPOAGENCIA
ENDEREODEPENDENCIA
NUMDOCUMENTO
DATADOCUMENTO
VALORLANAMENTO

Qual o atributo ou combinao de atributos que identificam


singularmentecadatupladarelaoCONTACORRENTE?

R1: O atributo AGNCIACONTA isoladamente deve ser descartado,


pois,ocdigodeumaagnciarelacionasecomdiversosnmeros
deconta

R2:ONUMEROCONTAisoladamentenoadequado,hajavista,que
podem existir duas contas com o mesmo nmero em agncias
diferentes

R3: A combinao AGNCIA + NUMEROCONTA ainda no


satisfatria, porque podem existir diversos lanamentos (NUM
DOC,DATA,VALOR)paracadacontavinculadaaumaagncia

R4: Como LANAMENTOS um grupo repetitivo na forma NO


NORMALIZADAdarelaoCONTACORRENTE,naturalmente,ele
deve ceder um atributo para compor a chave primria. Assim, a
CHAVE dessa relao COMPOSTA pela concatenao dos
atributos:

62
AGNCIA+NUMEROCONTA+NUMDOC

R5: Se considerssemos possvel dois documentos, com o mesmo


nmero, em sua mesma conta, deveramos buscar um outro
arranjoparaachaveprimria.

63
9.SEGUNDAFORMANORMAL(2FN)

Umarelaoestem2FNse:

estem1FN

nocontmatributosquedependamfuncionalmentedesubconjuntos
da CHAVE PRIMRIA COMPOSTA, em outras palavras, no contm
DEPENDNCIAFUNCIONALPARCIAL(DFP).

Parapassarmosumarelaoda1FNparaa2FNdevemosELIMINAR
as DEPENDNCIAS PARCIAIS. Para tanto, utilizamos o conceito de
PROJEO, gerando novas tabelas contendo as colunas que se
encontramemDFPcomachaveprimria.Aaplicaoda2FNsobrea
relao CONTACORRENTE resulta na criao das seguintes
tabelas:

CONTA
#NUMEROCONTA
NOMECLIENTE
ENDEREOCLIENTE

AGENCIA
#NUMAGENCIA
TIPOAGENCIA
DESCRIOTIPOAGENCIA
ENDEREODEPENDENCIA

LANAMENTOS
#AGENCIA
#NUMEROCONTA
#NUMDOCUMENTO
DATADOCUMENTO
VALORLANAMENTO

64
10.TERCEIRAFORMANORMAL(3FN)

Umarelaoestem3FNse:

Estem1FN

Estem2FN

NopossuiDEPENDNCIAFUNCIONALTRANSITIVA(DFT).

Parapassarmosumarelaoda2FNparaa3FNdevemosELIMINAR
as DEPENDNCIAS TRANSITIVAS utilizando a operao de
PROJEO. Assim, so geradas novas tabelas correspondentes s
DFTidentificadas.AodecompormosatabelaCONTACORRENTE,
gerandoasrelaesem2FN,restouapenasumaDFT,queencontra
se na relao DEPENDNCIA. Fazendo a PROJEO dessa
relaoparaeliminaraDFTobtemosasrelaesabaixo:

AGENCIA
#NUMAGENCIA
TIPOAGENCIA
ENDEREODEPENDENCIA

TIPOAGENCIA
#TIPOAGENCIA
DESCRIOTIPOAGENCIA

CONTA
#NUMEROCONTA
NOMECLIENTE
ENDEREOCLIENTE

LANAMENTOS
#AGENCIA
#NUMEROCONTA
#NUMDOCUMENTO
DATADOCUMENTO
VALORLANAMENTO

65
Observaes:

A chave da relao TIPOAGNCIA permaneceu na relao


principal como CHAVE ESTRANGEIRA, possibilitando o
relacionamentoentreasduastabelas.

As relaes CONTA e LANAMENTO j se encontram em 3FN,


porquenocontmDFT.

Comaaplicaoda3FN,TODASasDEPENDNCIASFUNCIONAIS
restantesnasrelaessodotipoCOMPLETAS.

66
EXERCCIOSI

I.MARQUEVverdadeiroouFfalso.

1.CHAVES:

a.()AstabelasdeumSGBDRpodempossuirdiversaschavesprimrias.
b.() NosSGBDRqualquercolunadeumatabelapodeserutilizadacomochave
deacesso.
c.()Chavesecundriaocampoutilizadocomosegundaalternativaparao
relacionamentoentretabelas.
d.()Umachaveprimriacompostaformadaporvriaschavescandidatas.
e.()ChavedeordenaoomecanismoqueordenatabelasnosSGBDR.
f.()Aschavesestrangeirasdenotamrelacionamentoe,portanto,obrigatriamente
devemcomporaPRIMARYKEY.
g.()Qualquertipodechavepodesersimplesoucomposta.
h.()TodaFOREINGKEYchaveprimriaemalgumaoutratabela.
i.()Comexceodaschavescandidataeprimria,todasasdemaiscolunasda
tabelasopotenciaschavessecundris.

2.NDICES:

a.()Umatabelapodepossuirvriosndicesprimrios.
b.()NosSGBDRaodefinirseaPK,automticamentecriadoumndice
secundrio.
c.()Aindexaoordenaatabela.
d.()idealquetodasascolunasdeumatabelasejamindexadas.
e.()Osndicesprimrioseossecundriospodemsersimplesoucompostos
f.()Ondiceummecanismodeacessodiretoaosdados
g.()adequadaacriaodendicesparacamposcomdomniodiscreto.
h.()Emumatabelaindexada,todososacessosserodotipodiretoindexado.

3.SQL:

a.()OSQLumalinguagemproceduralenoproprietrias.
b.()OsSGBDRpossuemlinguagensproceduraisproprietriasque
complementamoSQL.
c.()OsSGBDRsomentepermitemacriaodeestruturasdedadosdotipo
tabular
d.()OSQL/ANSIumpadrorigorosamenteseguidopelosSGBDR.
e.()OcomandoDELETEusadoparaexcluirestruturasdedadosdoBD.
f.()OresultadodetodososcomandosSQLumatabelaVirtualdenominadaVIEW.
g.()oSQLumpadrodefato,paradefiniodeestruturasemanipulaodedados
nosSGBDR.

67
4.ADMINISTRAODEBANCODEDADOS

a.()ODBAoprofissionalquecuidadoadministraodobancodedadosda
empresa
b.()DesdequeumusuriopossuaumasenhanoBDR,elepodeexecutar
qualquercomandoSQL.
c.()Orequisitodeprivacidadepodeserimplementadoatravsdacriaode
VIEWs.
d.()OCHECKPOINTomecanismoquepermiterealizarauditorianobancode
dados.
e.()AtribuiraexecuodecomandosDMLapenasaoDBAumaformacorretade
centralizaraadministraodoBD.
f.()NosSGBDR,Podeselimitarosprivilgiosdeumusurio,paraqueexecute
apenasocomandoSELECTemumatabela.
g.()Emumsistemadeadministraodescentralizada,oadministradordedados
(AD)validamodeloslgicoseoadministradordebancodedados(DBA)valida
modelosfsicos.

5.BANCODEDADOS

a.()OIMSfoioSGBDhierrquicomaisvendidonomundotodo.
b.()Umbancodedadosrelacionalpodeconterdadoseprocedimentos
armazenados.
c.()OsSGBDredereceberamessadesignaoporquerodavamemgrandes
redesdemainframes.
d.()OCLIPPERumexemplodeSGBDrelacional,porqueoperacomestruturas
dedadosdotipotabular..
e.( )PASCAL,COBOLePL/1soexemplosdelinguagenshospedeirasdeSGBDs
degrandeporte
f.()OACCESSumSGBDorientadoaobjetosporqueoperaemambientegrfico
(Windows).
g.()Atualmente,omodelodeSGBDmaisusadonaarquiteturaCliente/Servidor
oRede.
h.()OsSGBDhierrquicosapresentamretriesemrelaoaosentidodeacesso
aosdados.
i.()OCODASYLumorganismodepadronizaoamericano,intimamente
relacionadoaosSGBDbaseadosmodelorede.
j.()Ariquezadeponteiroseadependnciadecaminhosdeacessoso
caractersticasdosmodelosrelacionaisdeBD.

68
II.RELACIONEOSOBJETIVOSDEBDCOMAMELHORDASALTERNATIVAS
ASEGUIR.

1.INDEPENDNCIADEDADOS 5.PRIVACIDADE
2.INTEGRIDADE 6.SEGURANA
3.COMPARTILHAMENTODEDADOS 7.TRATAMENTODE
CONCORRNCIA
4.REDUNDNCIA 8.NDA

()MinimizaoimpactodasalteraesnasestruturasdedadosdoBD,sobreas
aplicaes.
()Controlaoacessosimultneoaosdados
()PossibilitaqueosparmetrosdevalidaodosdadossejamdefinidosnoBD
()EMBDdeveocorrernomenorgraupossvel
()Rotinadeauditoria

III.CONSIDEREASTABELASABAIXOPARARESPONDERASQUESTES
SEGUINTES.
CLIENTE CONTRATO
CDCLI NOME ENDERE SEX NUM COD VALOR
O O CONTRATO CLI

Obs:Umclientepodetermuitoscontratos,masnoexistedoiscontratoscomo
mesmonmero.

1.RELACIONARASCOLUNAS:

1.CHAVEDEORDENAO ()NOMEemumaVIEWemordemalfabtica
2.CHAVESECUNDRIA ()NUMCONTRATOnatabelaCONTRATO
3.CHAVEPRIMRIA ()NOMEnatabelacliente
4.ESTRANGEIRA ()CDCLInatabelaCONTRATO
5.NDA ()CODCLInatabelacliente

2.MarqueVparaitensverdadeiroseFparaosfalsos,considerandoosseguintes
parmetros.Integridadereferencial(ligada),Atualizaoem
cascata(ligada),Exclusoemcascata(desligada).(2ptos)

a.()Alterandoseocdigodeumclientenatabelacliente,seuscorrespondentes
emcontratonoseroalterados.
b.()Excluindoseumcliente,todososcontratosaelerelacionadossero
automaticamenteexcludos.
c.()Noserpossvelincluirclientesquenopossuamcontratos.
d.()Noserpossvelexcluircontratosquepossuamclientesaelerelacionados.
e.()Aoincluirseumcliente,automaticamentesercriadoumcontrato.

69
3.ParaobtermosoNOME,NUMCONTRATOeVALORdetodososcontratosdeum
clienteutilizamos:

a.()UNIO,INTERSEOePROJEO
b.()PROJEO,SELEOeJUNO
c.()PRODUTO,SELEOeJUNO
d.()UNIO,DIFERENAeJUNO
e.()NDA

GABARITO
I.1.aF,bV,cF,dF,eF,fF,gV,hV,iV

I.2.aV,bV,cF,dF,eV,fV,gF,hF

I.3.aF,bV,cV,dF,eF,fF,gV

I.4.aV,bF,cV,dF,eF,fV,gV

I.5.aV,bV,cF,dF,eV,fF,gF,hV,iV,jF

II.1:1,3,2,4,6

III.1:1,3,2,4,3,

III.2:aV,bF,cF,dV,eF

III.3:b

70
EXERCCIOSII

I.RELACIONEASSENTENASCOMAMELHORDASALTERNATIVASABAIXO:

1.Cardinalidade
2.Relacionamento
3.Entidade
4.Autorelacionamento
5.Atributo
6.Nda

a.()Objetodomundorealsobreoqualsedesejaarmazenarinformaes.
b.()Relacionaocorrnciasdeumamesmaentidade.
c.()Propriedadequequalificaumaentidade.
d.()Quando1:N,implicaqueachaveestrangeiraresidenamesmatabelada
chaveprimria.
e.()RepresentanoMERpelomenosumatabeladobancodedados.
f. ( ) Sinal que apresenta grandevariao entre os diversos autores de literatura
sobreMER.
g.()DevegerarumatabeladoBDcomnomnimoduaslinhaseduascolunas
h.()RepresentaarelaoentredoisconjuntosdeinformaonoMER
i.()Indicaaquantidadegenricadeocorrnciasenvolvidasnorelacionamento
j.()Seutipopodesernumrico,caracteroudata

II.MARQUE'V'PARAASSENTENASVERDADEIRASE'F'PARAFALSAS.
a. ( ) Dependncia transitiva o nome da relao de identificao, entre
componentesdachaveprimria.
b.()CadaentidadedoMERlgicogeranomximoumatabelanormalizadano
BD.
c. ( ) Em tabelas 3FN, todos os atributos no chave esto em dependncia
funcionalcompletacomachave.
d. ( ) Entidades Associativas herdam as chaves primrias das entidades
associadas.
e.()Ochaveestrangeiraobrigatoriamentedevecomporachaveprimria
f. ( ) Anormalizao uma seqnciadeprojees,efetuadas apartirde uma
estruturadedadosnoatomizada.
g. ( ) Os SGBDR nopermitem a criao de tabelas que contenham itens de
grupo.
h.()Umatabelanormalizadaspodecontervaloresatmicos.
i. ( ) Quando a chave primria simples, podese afirmar que a tabela no
contmdependnciafuncional.

71
j.()Quandoachaveprimriasimpleseosvaloresatmicos,podeseafirmar
queatabelaestem2FN.

IV. RESCREVA A ESTRUTURA DE DADOS EM 3FN E ELABORE O MER


CORRESPONDENTE.

CONTROLEDEBENEFCIOS
MATRCULA_DO_FUNCIONRIO
NOME_DO_FUNCIONRIO
ENDEREO_DO_FUNCIONRIO
BENEFCIOS*
DATA_DE_CONCESSO_DO_BENEFCIO
CODIGO_DO_BENEFCIO
NOME_DO_BENEFCIO (TICKETS, VALE TRANSPORTE, ASSIST.
MDICA,BOLSA,ETC...)
VALOR_DO_BENEFCIO

OBS: Um funcionrio poderecebervrios benefcios,maseste devesercadastrado


umanicavez.
Ovalordeumbenefcioserigualparatodososbeneficirios.

GABARITO:
I.a3,b4,c3,d2,e3,f1,g3,h2,i1,j5

II.aF,bF,cV,dV,eF,fV,gV,hV,iF,JV

72
AVALIAO

I.RELACIONEASSENTENASCOMAMELHORDASALTERNATIVASABAIXO:
(4Ptos)

1.ENTIDADE
2.CARDINALIDADE
3.RELACIONAMENTO
4.ATRIBUTO
5.AUTORELACIONAMENTO
6.NDA

()Objetodomundorealsobreoqualsedesejaarmazenarinformaes.

()Seutipopodesernumrico,caracteroudata

()PossuicorrespondnciacomosdepsitosdedadosdoDFD.

()Indicaaquantidadegenricadeocorrnciasenvolvidasnorelacionamento

()Relacionaocorrnciasdeumamesmaentidade.

()Gerapelomenosumatabelanobancodedados.

()Identificadornicoquepodesersimplesoucomposto.

()Abibliografiaregistragrandevariaonasuanotao(nmeros,barras,setas,
"psdegalinha",etc.)

( )RepresentanoMERasentidadesexternasdoDFD.

()RepresentaarelaoentredoisconjuntosdeinformaonoMER

II. MARQUE 'V' PARA AS SENTENAS VERDADEIRAS E 'F' PARA FALSAS. (4


pontos)

()UmaentidadedoMERpodegerar"N"tabelasnoBD.

( ) Em tabelas 3FN, todos os atributos "no chave" esto em dependncia


funcionalcompletacomachave.

()EntidadesAssociativasherdamaschavesprimriasdasentidadesassociadas.

( ) A normalizao uma seqncia de projees, efetuadas a partir de uma


estruturadedadosnoatomizada.

()Achaveestrangeiraobrigatoriamentedevecomporachaveprimria.

73
()OsSGBDRnopermitemacriaodetabelasquecontenhamitensdegrupo.

() Umatabelanormalizadaspodecontervaloratmico.

()Quandoachaveprimriasimples,podeseafirmarqueatabelanocontm
dependnciafuncional.

()Todachaveestrangeirachaveprimriaemoutratabeladobancodedados.

( ) Dependncia transitiva o nome da relao de identificao, entre


componentesdachaveprimria.

III. RESCREVA A ESTRUTURA DE DADOS EM 3FN E ELABORE O MER


CORRESPONDENTE.(2ptos)

CONTROLEDEMANUTENODEMICROCOMPUTADORES

NUM_OS

DATA_OS

TCNICO_ATENDEU

MATRICULA

NOME

DESCRIO_DEFEITO

NR_SRIE_MICRO

PEAS*

CDIGO

DESCRIO

OBS: "OS" significa ORDEM DE SERVIO. No existem duas OS com o mesmo


nmero. O usurio deseja montar um catalogo de peas e gerar estatsticas sobre
consumodepeasenmerodeatendimentos.

74
BIBLIOGRAFIA

1.CHU,SHAOYONG
BANCODEDADOSATLAS

2.KORTH,HENRYF.
SISTEMASDEBANCODEDADOSMACGRAW

3.DATE,C.J.
BANCODEDAODSTPICOSAVANADOSCAMPUS

4.SETZER,VALDEMARW.
BANCODEDADOS

5.ACCIOFELICIANONETO
ENGENHARIADAINFORMAOMACGRAW

6.GANE,CHRIS
ANLISEESTRUTURADADESISTEMASLTC

7.GANE,CHRIS
DESENVOLVIMENTORPIDODESISTEMASLTC

8.YORDON,EDWARD
ANLISEESTRUTURADAMODERNACAMPUS

9.CHEN,PETER
MODELOENTIDADExRELACIONAMENTOS

75

Você também pode gostar