apostila de banco de dados em pdf
TRANSCRIPT
-
7/28/2019 Apostila de Banco de Dados Em PDF
1/94
PARTE I - INTRODUO A BANCO DE DADOS
CAPTULO I - CONCEITOS BSICOSIntroduo ...........................................................................01
1. Arquivo ............................................................................022. Registro ...........................................................................023. Campo ............................................................................ 034. Chave Primria ................................................................045. Chave Secundria............................................................056. Chave Candidata..............................................................06
CAPTULO II - ORGANIZAO DE ARQUIVOS1. Mtodo De Acesso ...........................................................072. Organizao Seqencial ..................................................093. Organizao Serial...........................................................104. Organizao Indexada .....................................................11
CAPTULO III - SGBD1. Sistema Geranciador de Banco de Dados - SGBD.........132. Banco de Dados..............................................................133. Sistema em Banco de Dados.......................................... 14
CAPTULO IV - OBJETIVOS DE BANCO DE DADOS1. Independncia de dados.................................................152. Compartilhamento de dados...........................................163. Menor redundncia.........................................................164. Privacidade de dados ....................................................165. Segurana de dados .....................................................176. Tratamento de concorrncia .........................................177. Integridade de dados ....................................................18
CAPTULO V - LINGUAGENS DE BD1. SQL...............................................................................192. Autocontidas..................................................................223. Hospedeiras...................................................................224. Visuais...........................................................................235. Linguagens para INTERNET..........................................23Concluso..........................................................................24
1
-
7/28/2019 Apostila de Banco de Dados Em PDF
2/94
CAPTULO VI - BANCO DE DADOS RELACIONAL1. Terminologia do Modelo Relacional..... .........................252. Regras de integridade...................................................26a. Integridade Declarativa..................................................27
b. Integridade Procedural..................................................29c. Integridade Referencial.................................................303. Operadores Relacionais...............................................324. Propriedades Relacionais.............................................335. Vantagens do Modelo Relacional.................................34
CAPTULO VII - LGEBRA RELACIONAL1. Estudo de caso ...........................................................362. Generalidades ...........................................................38
3. Operadores de Conjunto ..........................................39a. Unio...........................................................................40b. Interseo....................................................................41c. Diferena.....................................................................42d. Produto carteziano......................................................434. Operadores Relacionais ............................................44e. Projeo......................................................................44f. Seleo........................................................................45g. J uno........................................................................46
PARTE II - PROJETO DE BANCO DE DADOS
Introduo ......................................................................48
CAPTULO VIII - NVEIS DE ABSTRAO1. Mundo Real ...............................................................50
2. Modelo Descritivo ......................................................503. Modelo Conceitual .....................................................514. Modelo Operacional ...................................................515. Modelo Interno ...........................................................52
2
-
7/28/2019 Apostila de Banco de Dados Em PDF
3/94
CAPTULO IX - MODELO DE ENTIDADES E RELACIONAMENTOS (MER)Generalidades ................................................................531. MER - Notao e terminologia.....................................542. Regras para atribuio de nomes entidades.............55
3. Atributo .......................................................................564. Dicionrio de Dados.....................................................575. Relacionamento...........................................................596. Cardinalidade.............................. ................................607. Nome do relacionamento.. ......... ................................628. Papel ...........................................................................639. Sentenas ...................................................................6410. Integridade Referencial .............................................6511. Regras gerais para o MER ........................................6612. Vantagens e desvantagens do MER .........................67
CAPTULO X - TIPOS ESPECIAIS DE RELACIONAMENTO1. Auto-relacionamento ...................................................682. Mais de um relacionamento ........................................693. Relacionamento Mltiplo .............................................70
CAPTULO XI - EXTENSES AO MER1. Generalizao .............................................................722. Especializao ............................................................73
3. Agregao ..................................................................744. Variao do conceito de Agregao ............................75
CAPTULO XII - NORMALIZAO1. Anomalias de Atualizao ...........................................762. Terminologia ...............................................................77
Dependncia Funcional Completa (DFC) ...................78Dependncia Funcional Parcial (DFP) .......................79Dependncia Funcional Transitiva (DFT) ...................80
3. Notao para as estruturas de dados .........................814. Esquema de normalizao ..........................................835. Relaes no Normalizadas ........................................846. Primeira forma normal (1FN) ........................................857. Escolha da chave primria ...........................................868. Segunda forma normal (2FN) ......................................889. Terceira forma normal (3FN) ........................................89Bibliografia........................................................................91
3
-
7/28/2019 Apostila de Banco de Dados Em PDF
4/94
INTRODUO
No incio da dcada de 60, foram lanados os primeiros sistemasgerenciadores de banco de dados (SGBD), tendo como principal proposta oaumento na produtividade nas atividades de desenvolvimento e manutenode sistemas, at ento realizadas de forma artezanal em linguagens deprogramao convencionais de primeira e segunda gerao.
Oriundos do ambiente de mainframes, os SGBD tornaram-se mais popularese amigveis com o advento da microinformtica. Cada vez mais as fronteirasentre esses dois mundos estreitam-se e a concorrncia pelo domnio domercado de SGBD, tem levado seus diversos fabricantes a sofisticarem seusprodutos. Cada nova verso lanada, incorpora novidades como interfacesgrficas, ferramentas de apoio ao desenvolvimento, utilitrios paragerenciamento de BD e facilidades para extrao de dados. Essa evoluovem tornando o trabalho de programadores, analistas e usurios menosartezanal, com reflexos na qualidade e produtividade.
A literatura classifica os SGBD como HIERRQUICO, REDE eRELACIONAL. Essa classificao representa a evoluo desses produtos nocurso da histria. Atualmente, o mercado dominado pelos SGBD
RELACIONAIS e caminha para a colocao em escala comercial dos SGBDORIENTADOS A OBJ ETOS.
Este texto introduz a teoria de BANCO DE DADOS, a partir de conceitosbsicos da teoria de arquivos que perpetuaram-se na terminologia de bancode dados. Na sequencia aborda superficialmente os modelosHIERRQUICO e REDE (por razes de mercado) e de forma maisaprofundada o MODELO RELACIONAL, o qual designaremos neste textopela sigla SGBD-R.
1
-
7/28/2019 Apostila de Banco de Dados Em PDF
5/94
CAPTULO I
CONCEITOS BSICOS
Para compreender com maior facilidade os conceitos relativos a BANCO DEDADOS de suma importncia revisar-mos alguns conceitos bsicosreferentes teoria e terminologia de arquivos convencionais, haja vista, queos primeiros SGBD foram criados a partir do aperfeioamento de sistemasgerenciadores de arquivo, e ainda utilizam muito da base conceitual e daterminologia de arquivos.
1. ARQUIVO
Um arquivo uma coleo de REGISTROS do mesmo tipo, ou seja,referentes a um mesmo assunto e com o mesmo formato padro (layout).Constitui o componente do sistema no qual so armazenados os dados,que combinados atravs dos programas servem de base para a geraoda informao desejada pelo usurio, atravs de relatrios e consultason-line.
Um sistema de controle de notas, por exemplo, pode armazenar seusdados 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 paragerar, por exemplo, o BOLETIM ESCOLAR, a PAUTA ou uma tela deCONSULTA DE NOTAS.
2. REGISTRO
Um registro constitudo por conjunto de campos valorados (contendodados. Consiste na unidade de armazenamento e recuperao dainformao em um arquivo. Geralmente, os registros de um arquivopossuem um formato padro (layout), definido pela seqncia, tipo etamanho dos campos que o compem. Porm, algumas linguagens deprogramao permitem a criao de registros com layouts deferentes emum mesmo arquivo, recurso este que raramente utilizado.
2
-
7/28/2019 Apostila de Banco de Dados Em PDF
6/94
3. CAMPO
a unidade bsica formadora de um registro. Constitui a clula dainformao. a menor poro de um arquivo que pode ser referenciada
por um programa.
Cada campo possui NOME, TIPO e TAMANHO. Os tipos de campo maiscomuns so:
NUMBER
_ Armazena somente nmeros
_ Pode conter casas decimais
_ Pode ser utilizado em operaes matemticas
CHAR ouALFANUMRICO
_ Pode armazenar letras, nmeros e caracteresespeciais
DATE _ Armazena datas fazendo consistncia automtica
MEMO ou LONG _ Armazena textos em formato livre
A figura a seguir sintetiza os conceitos de ARQUIVO, REGISTRO e CAMPO:
ARQUIVOALUNOLAYOUT
CAMPOS
TIPO e TAM.MATRICULANUMBER (03)
NOMECHAR (30)
ENDEREOCHAR (50)
DT_NASCDATE
001 J os SQS 308 ... 23/08/78REGISTROS 002 Maria QND 14 .... 25/09/70
003 Ana SQN 410 ... 10/08/85
. . . .. . . .
4. CHAVE PRIMRIA (PRIMARY KEY - PK)
3
-
7/28/2019 Apostila de Banco de Dados Em PDF
7/94
A CHAVE PRIMRIA (ou simplesmente CHAVE) o identificador nicode um registo em um arquivo. Pode ser constituda de um campo(CHAVE SIMPLES) ou pela combinao de dois ou mais campos
(CHAVE COMPOSTA), de tal maneira, que no existam dois registros noarquivo com o mesmo valor de chave primria.
Em regra, todo arquivo deve possuir uma chave primria, que permita aidentificao inequvoca do registro, especialmente, para dar maiorconsistncia aos processos de incluso, alterao e excluso de dados.
Para que no ocorram duplicatas nos valores da chave, os campos que acompem so de PREENCHIMENTO OBRIGATRIO (NOT NULL).
Na escolha da chave primria de um arquivo deve-se buscar campos quepossuam ESTABILIDADE no valor armazenado. A escolha do NMERODO TELEFONE como chave de um cadastro de clientes, por exemplo,seria inadequada, por que esse valor pode mudar com freqncia. Semconsiderar que o cliente pode ter mais de um telefone...
Deve-se tambm evitar a escolha de campos que possam causarAMBIGIDADE em relao aos valores nele contidos. Nesse sentido,seria inadequado a escolha do campo NOME para chave de um cadastro
de clientes, haja vista, que um mesmo nome pode ser escrito de vriasformas. Por exemplo: LUS, LUIZ, LOUIS, LOYS, LUYS.
Se desejssemos cobrar uma fatura de um cliente com um nome comoesse, a probabilidade de erramos o cliente seria grande. Alm disso, aextenso do campo (30 ou mais caracteres) um outro aspecto queaumenta a possibilidade de erros.
DICAS PARA ESCOLHA DA CHAVE PRIMRIA:
_ Todo arquivo deve possuir uma chave primria._ VALOR NICO para cada registro._ SIMPLES ou COMPOSTA._ Campos de PREENCHIMENTO OBRIGATRIO._ Valor ESTVEL._ No AMBGUO._ PEQUENA EXTENSO (menor possvel)._ De preferncia CAMPOS NUMRICOS
5. CHAVE SECUNDRIA
4
-
7/28/2019 Apostila de Banco de Dados Em PDF
8/94
A chave secundria pode ser formada por um campo ou pela combinaode campos (SIMPLES / COMPOSTA). utilizada como parmetro (filtro)para seleo de registros no arquivo em consultas, emisso de relatriosou processos de atualizao simultnea de um grupo de registros.
Por exemplo, para aumentarmos o valor do salrio dos analistas em 10%,poderamos utilizar o campo FUNO do arquivo CADASTRO DEFUNCIONRIOS como parmetro (chave secundria) no processo deseleo dos registros a serem alterados.
Em sntese, a chave secundria o campo ou combinao de campos doarquivo que permite a recuperao de mais de um registro no arquivo.Portanto, no possui a caracterstica de unicidade proposta para a chaveprimria.
A figura a seguir ilustra os conceitos de CHAVE PRIMRIA e SECUNDRIA
ARQUIVO ALUNO
PKMATRICULA NOME ENDEREO DT_NASC
001 J os SQS 308 ... 23/08/78
003 Maria QND 14 .... 25/09/70002 Ana SQN 410 ... 10/08/85005 J os GAMA 05/04/76
. . . .
Acesso via CHAVE SECUNDRIA (NOME) no arquivo ALUNO:PROGRAMA X
INCIO......SE NOME = JOS
ENTO IMPRIMIR.......FIM
5
-
7/28/2019 Apostila de Banco de Dados Em PDF
9/94
6. CHAVE CANDIDATA
Pode ocorrer uma situao em que mais de um campo satisfaa acondio de chave primria, constituindo duas ou mais CHAVES
CANDIDATAS. Neste caso, o analista dever eleger somente uma delascomo CHAVE PRIMRIA, as demais permanecero na condio deCANDIDATAS, indicando que tratam-se de campos de preenchimentoobrigatrio e com valores nicos para cada registro, o que ser garantidoatravs de mecanismos de integridade de coluna, que veremos nocaptulo relativo a banco de dados.
A figura a seguir mostra um exemplo de arquivo com CHAVE CANDIDATA
ARQUIVO ALUNO
CHAVE CANDIDATACHAVE PRIMRIA
MATRICULA NOME ENDEREO CPF001 J os SQS 308 ... 72993246500003 Maria QND 14 .... 12354789065002 Ana SQN 410 ... 09876587659005 J os GAMA 28746503645
. . . .. . . .
6
-
7/28/2019 Apostila de Banco de Dados Em PDF
10/94
CAPTULO II
ORGANIZAO DE ARQUIVOS
O tema organizao de arquivos refere-se a forma como os registros soarmazenados em um arquivo baseado em computador. Confunde-se comMTODO DE ACESSO, que consiste na forma como esses podem serrecuperados. A organizao do arquivo determina os mtodos de acessoque podem ser utilizados na recuperao dos registros, mas tratam-se decoisas distintas.
Apesar de este ser um assunto muito abrangente e com muitas variantesem termos de abordagem, trataremos de apenas trs tipos de
organizao (SEQENCIAL, SERIAL E INDEXADA) e seus respectivosmtodos de acesso. Essa escolha baseia-se na necessidade dediscutirmos alguns conceitos essenciais para o estudo do modeloRelacional de banco de dados, que constitui o objeto principal dessetexto.
1. MTODOS DE ACESSO
Para recuperarmos um registro em um arquivo, podemos utilizar acesso
SEQENCIAL ou DIRETO.
O mtodo SEQENCIAL de acesso o mais tradicional e consiste emefetuar a leitura dos registros, um aps o outro, comparando oARGUMENTO DE PESQUISA, com o valor do campo CHAVE (primriaou secundria) no registro corrente, at encontrar os registros desejadosou o final do arquivo.
exemplo:
PROGRAMA YINCIO.....Repita at fim
ler registro chave secundria (campo chave)
SE NOME =JOS argumento de pesquisaENTO IMPRIMIR
Fim repita (volte a ler)
.FIM DO PROGRAMA
7
-
7/28/2019 Apostila de Banco de Dados Em PDF
11/94
O mtodo DIRETO consiste em recuperar o(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 (queabordaremos no item organizao indexada) ou com o auxlio de um
algoritmo de RANDOMIZAO que localiza o registro, calculando aposio ocupada pelo registro no disco, com base no valor do argumentode pesquisa, que deve ser um campo numrico.
Em ambos os casos, a localizao do registro ocorre a cargo dogerenciador de arquivos, de maneira transparente para o programador,que s precisa escolher a organizao adequada para o arquivo efornecer no programa o argumento de pesquisa.
exemplo:
PROGRAMA ZINCIO....
.
.ABRIR ARQUIVOALUNO INDEXADO POR NOME.NOME=JOS argumento de pesquisaLOCALIZAR REGISTRO acesso direto (indexado)SE ENCONTROU REGISTRO
ENTO IMPRIMIR..FIM DO PROGRAMA
8
-
7/28/2019 Apostila de Banco de Dados Em PDF
12/94
2. ORGANIZAO SEQENCIAL
A ORGANIZAO SEQENCIAL caracteriza-se pela existncia de umaCHAVE DE ORDENAO. Essa chave determina a ordem em que os
registros so armazenados e pode ser SIMPLES ou COMPOSTA pordois ou mais campos. Geralmente, coincide com a chave primria, masno obrigatoriamente.
A organizao seqencial somente permite o ACESSO SEQENCIAL.
A figura a seguir apresenta um arquivo com ORGANIZAO SEQENCIAL e CHAVEPRIMRIA(MATRICULA) distinta da CHAVE DE ORDENAO (NOME - ordem alfabtica).
ARQUIVO ALUNO
chave primria chave de ordenao
MATRICULA NOME ENDEREO DT_NASC001 Ana SQS 308 ... 23/08/78003 J os QND 14 .... 25/09/70002 J os SQN 410 ... 10/08/85005 Maria GAMA 05/04/76
. . . .
. . . .
9
-
7/28/2019 Apostila de Banco de Dados Em PDF
13/94
3. ORGANIZAO SERIAL
Nesta forma de organizao os registros so armazenados de acordo
com a ordem de incluso. o arquivo no possui chave de ordenao,portanto no existe preocupao com a ordem de armazenamento dosregistros. No entanto, sempre recomendvel o arquivo possua umachave primria.
A organizao serial somente permite o ACESSO SEQENCIAL. Nodeve ser utilizada em processos de excluso e alterao de registros namodalidade bacth (atualizao em lote), pois degrada a performance.
muito utilizada em processos de incluso de registros onde no hajapreocupao em manter a seqncia dos mesmos (pools de digitao). tambm empregada no arquivo de dados que serve de base para aorganizao indexada, que estudaremos no prximo item.
A figura a seguir apresenta um arquivo com ORGANIZAO SERIAL. Note que eleno possui CHAVE DE ORDENAO.
ARQUIVOALUNO
chave primria
MATRICULA NOME ENDEREO DT_NASC005 Maria SQS 308 ... 23/08/78003 J os QND 14 .... 25/09/70002 Ana SQN 410 ... 10/08/85001 J os GAMA 05/04/76
. . . .
10
-
7/28/2019 Apostila de Banco de Dados Em PDF
14/94
4. ORGANIZAO INDEXADA
Nesta forma de organizao, os registros so armazenados em umarquivo de dados com organizao serial e para cada campo (ou
combinao deles) atravs do qual se deseja obter acesso direto(indexado) deve-se criar um arquivo de ndice (processo de indexao).
Um mesmo arquivo de dados pode possuir diversos arquivos de ndice aele associados. Porm, apesar da flexibilidade para a criao de ndices,esse recurso deve ser utilizado com critrio, pois a manuteno demuitos ndices pode degradar a performance no processo de atualizaodo arquivo. Ou seja, ganha-se na consulta on-line, mas pode-se perderna atualizao de dados.
O arquivo de ndice composto basicamente por duas colunas. Aprimeira corresponde ao campo utilizado no processo de indexao(endereo lgico) e a segunda armazena um valor (endereo fsico) queserve como referncia, para que o gerenciador de arquivos localize oregistro no disco magntico.
Os registros dos arquivos ndice so ordenados pelo endereo lgico.Portanto, se utilizarmos um algoritmo de leitura seqencial em um arquivoindexado por nome, por exemplo, obteremos os registros em ordemalfabtica, mesmo sendo o arquivo de dados um arquivo serial. Ou sejaprevalece a ordem do ndice. Porm nesse exemplo, a performance aperformance do arquivo indexado seria menor, se comparada a de umarquivo seqencial por nome.
Sempre que um arquivo ndice for referenciado por um programa, eleser carregado para memria principal, o que torna desprezvel o tempode busca dos registros nesse arquivo. Alm disso, o algoritmo utilizadona busca o de pesquisa binria, o que reduz ainda mais o tempo.
Os ndices constitudos com base no valor da chave primria oucandidata so conhecidos como NDICES PRIMRIOS e os demaiscomo NDICES SECUNDRIOS.
11
-
7/28/2019 Apostila de Banco de Dados Em PDF
15/94
Em resumo, a organizao indexada formada pela combinao de pelomenos um arquivo de dados e um ou mais arquivos de ndice.
A figura a seguir apresenta o cenrio da ORGANIZAO INDEXADA.
ARQUIVOALUNO
NDICEPRIMRIO
TRILHA, SETOR E LADO DO DISCO(endereo fsico)
chave primria (endereo lgico)
NDICESECUNDRIO
MATR TSL001 220002 321003 231
005 110. TSL MATR NOME ENDEREO DT_NASC110 005 Maria SQS 308 ... 23/08/78231 003 J os QND 14 .... 25/09/70321 002 Ana SQN 410 ... 10/08/85220 001 J os GAMA 05/04/76331 . . . .
NOME TSLAna 321
Jos 220Jos 231Maria 110
. 331
12
-
7/28/2019 Apostila de Banco de Dados Em PDF
16/94
CAPTULO III
SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD
A expresso BANCO DE DADOS, coloquialmente empregada com os maisdiversos significados, de tal sorte que, ao indagarmos de algum sobre o BANCO DEDADOS com o qual trabalha em sua empresa, poderemos obter as seguintesrespostas:
1. Trabalho com ORACLE, ACCESS, SQL SERVER, SYBASE, etc..
2. Trabalho com o banco de dados de PESSOAL, MATERIAL ou FINANAS;
3. Trabalho com o CADASTRO DE PESSOAL, SISTEMA DE VENDAS, etc.
Para evitar conflitos terminolgicos, definimos a seguir trs expresses, consagradasna a literatura clssica, que seriam melhor aplicadas a cada uma das situaesanteriores.
1. SISTEMA GERENCIADOR DE BANCO DE DADOS - SGBD
Essa expresso estar corretamente empregada, quando utilizada paradesignar o SOFTWARE utilizado para criar um BANCO DE DADOS.Portanto, tratando-se de SGBD estaremos nos referindo a produtos comoACCESS, ORACLE, SYBASE, SQL SERVER, ADABAS, etc.
2. BANCO DE DADOS - BD
Esse enunciado refere-se a um conjunto de informaes relacionadas,que so armazenadas no computador e recuperadas com a utilizao
dos recursos de um SGBD. Essas informaes devem ser estruturadas,de tal maneira, que independam de aplicaes especficas. Ou seja, umBD de PESSOAL, adequadamente estruturado, pode fornecer dados,tanto para um sistema de Folha de Pagamento, quanto para um sistemade Treinamento de Recursos Humanos.
13
-
7/28/2019 Apostila de Banco de Dados Em PDF
17/94
3. SISTEMA EM BANCO DE DADOS - SBD
Essa expresso refere-se s APLICAES desenvolvidas para atendera necessidades especficas da empresa, que acessam um ou mais BD,
para leitura ou atualizao de informaes. Tome como exemplo deaplicaes especficas os sistemas de folha de pagamento eTreinamento de Recursos Humanos, citados no item anterior.
A figura abaixo ilustra um ambiente onde o BANCO DE DADOS de alunos foiestruturado para atender a quatro SISTEMAS distintos: CADASTRO DE ALUNOS,CONTROLE DE MENSALIDADES, EMPRSTIMO DE LIVROS e CONTROLEDE NOTAS. O BD foi montado utilizando os recursos do SGBD SQL SERVER.
TESOURARIASECRETARIA
CONTROLE DEMENSALIDADE
SGBD SQL SERVER
BD DE ALUNOSCADASTRODE ALUNOS
CONTROLEDE NOTAS
EMPRSTIMOSDE LIVROS
PEDAGOGA BIBLIOTECA
14
-
7/28/2019 Apostila de Banco de Dados Em PDF
18/94
CAPTULO IV
OBJETIVOS DE BANCO DE DADOS
O desenvolvimento da tecnologia de banco de dados tem se pautado por buscaralcanar, como objetivo permanente o aumento de produtividade nas atividades dedesenvolvimento e manuteno de sistemas. Nesse sentido os fabricantes de SGBDvem dotando seus produtos com mecanismos que facilitam a adaptao dos BD snovas necessidades que surgem no dia a dia e que reduzem o trabalho deprogramao. Aliado a esses dois fatores existe toda uma filosofia que orienta ostcnicos na escolha do melhor produto para a sua empresa e no trabalho de projeto debanco de dados.
Dessa filosofia destacamos, a seguir, alguns objetivos de BD, os quais umprofissional deve ter em mente ao lidar com essa tecnologia.
1. INDEPENDNCIA DE DADOS
Os SGBD devem ser dotados de recursos que possibilitem a descriodas estruturas de dados (layout de arquivos e/ou tabelas) de formaindependente dos procedimentos de manipulao (leitura e gravao) dedados no BD. Esse objetivo visa tornar transparente para os programas
que acessam o BD as alteraes que, por ventura, venham a ocorrer nasestruturas de dados, como por exemplo o acrscimo de um novo campode informao ao banco. Da mesma forma, alteraes em lgicas deprogramas que acessam o BD no devem afetar as estruturas de dados.
Quanto maior o grau de independncia de dados, menor ser o tempoem que o BD ficar fora de operao para atividades de manutenocomo, por exemplo, recompilao.
At hoje, a maneira mais eficiente adotada pelos fornecedores de SGBDpara implementao desse objetivo foi a utilizao do SQL (structuredquery language) nos produtos que seguem o Modelo Relacional. O SQLpossui grupos de comandos especficos e independentes para as tarefasde criao e alterao de tabelas (DDL - data definition language) eleitura e atualizao do BD (DML - data manipulation language).
15
-
7/28/2019 Apostila de Banco de Dados Em PDF
19/94
2. COMPARTILHAMENTO DE DADOS
Consiste na reutilizao dos dados do BD pelo maior nmero possvel deaplicaes dentro da empresa. Nesse sentido, os dados do BD devem
ser muito bem planejados e estruturados. Portanto, este objetivo debanco de dados esta mais ligado a atividade de anlise e projeto de BD.
O compartilhamento de dados visa diminuir a redundncia de dados,considerando-o como um recurso da empresa e no propriedade desetores isolados da organizao.
Para implementar o compartilhamento de dados necessrio que aempresa disponha de recursos de rede, que permitam colocar o BD aoalcance dos diversos usurios. Alm disso, necessrio que o SGBDpossua um competente sistema de segurana, para que se estabelea aprivacidade de dados, atravs de mecanismos de restrio de acesso.
3. MENOR REDUNDNCIA DE DADOS
Redundncia de dados consiste na repetio de um mesmo dado emdiversos arquivos (tabelas) de um sistema, banco de dados, ambientecomputacional ou empresa. Como exemplo, pode-se tomar a ocorrnciado dado NOME DO FUNCIONRIO, em bases de dados no
compartilhadas dos sistemas de CADASTRO, FOLHA DE PAGAMENTOe TREINAMENTO de uma empresa.
A redundncia danosa para o ambiente computacional, pois aumentaos custos com o armazenamento de dados, com o pessoal paramanuteno de sistema.
Alm disso, a redundncia gera inconsistncia de dados, ou seja, o dadoredundante extrado a partir de arquivos diferentes apresenta valores
divergentes. Tal fato, pode afetar a credibilidade do usurio no sistema eno pessoal de informtica.
4. PRIVACIDADE DE DADOS
O COMPARTILHAMENTO DE DADOS leva um grande nmero deusurios, com funes diversificadas na empresa, a acessar um mesmobanco de dados. Nesse contexto, o objetivo de privacidade de dadosressalta a preocupao que o projetista de BD deve ter em vedar o
acesso de usurios no autorizados a informaes sigilosas ou deacesso restrito.
16
-
7/28/2019 Apostila de Banco de Dados Em PDF
20/94
Nesse sentido, o sistema de segurana dos SGBD, devem possuirmeios para que o projetista possa definir perfis diferenciados de acessoao BD, com a criao de grupos de usurios e atribuio de direitos deacesso a esses grupos, a partir da utilizao de senhas.
5. SEGURANA DE DADOS
A segurana das informaes armazenadas no BD pode ser encaradasob dois prismas: SEGURANA LGICA e SEGURANA FSICA.
A SEGURANA LGICA alcanada com a utilizao dos mecanismosde restrio de acesso disponveis nos SGBD para implementao doobjetivo de privacidade de dados, tais como senhas e sistemas de LOGe AUDIT que registram dados sobre as operaes que so efetuadas noBD (data, hora, usurio, comando, etc.).
A SEGURANA FSICA dos dados obtida a partir de utilitrios eaplicativos que os fabricantes colocam em seus produtos, visando facilitaro trabalho de proteo aos dados contra danos fsicos, que podem sercausados por falhas de hardware ou queda da rede. Nessa linhadestacam-se as ROTINAS DE BACKUP, GRAVAO COMESPELHAMENTO e SISTEMAS DE MONITORAO DE TRANSAESDISTRIBUDAS (TWO-PHASE-COMMIT).
6. TRATAMENTO DE CONCORRNCIA
Este objetivo de BD aborda o aspecto do acesso simultneo de doisusurios a um mesmo conjunto de informaes. O SGBD deve possuirmecanismos para a identificao e tratamento desses acessosconcorrentes, para garantir a consistncia das informaes do BD nosentido de sua veracidade.
Os sistemas de bloqueio (LOCK) e desbloqueio (UNLOCK) so osmecanismos utilizados para evitar que uma informao que est sendomanipulada por um usurio (USU1) seja alterada por outro (usu2).Enquanto o USU1 dela se utiliza o USU2, no ter acesso a mesma ouo ter apenas para leitura e receber um aviso do SGBD de que ainformao est sendo acessada por outro usurio e pode sermodificada.
Existem vrios nveis de LOCK. As opes variam conforme o produto
(SGBD) analisado, sendo que os mais comuns ocorrem a nvel de tabela,pgina (conjunto de registros) e linha (nvel mais baixo).
17
-
7/28/2019 Apostila de Banco de Dados Em PDF
21/94
Cabe lembrar que o nvel de bloqueio influi na performance do SGBD emambientes de misso crtica (altos ndices de acesso concorrente), sendoque quanto menor o nvel de LOCK, a performance tende a ser melhor.
Ressalta-se que alm desse, existem outros fatores que influenciam naperformance do SGBD.
7. INTEGRIDADE DE DADOS
A integridade de dados refere-se a mecanismos que esto disponveisnos SGBD, que garantem a consistncia dos dados armazenados noSGBD, segundo parmetros de validao, especificados no momento decriao do BD, em conjunto com as estruturas de dados.
Esse objetivo s se tornou disponvel, como recurso do SGBD, com oadvento dos modelos Relacionais e consta como pr-requisito paraenquadramento de produtos nessa categoria de SGBD.
No captulo dedicado aos SGBD relacionais trataremos esse assuntocom maior riqueza de detalhes.
18
-
7/28/2019 Apostila de Banco de Dados Em PDF
22/94
CAPTULO V
LINGUAGENS DE BANCO DE DADOS
As linguagens de banco de dados consistem na interface do usurio para interagircom o SGBD. Neste texto destacamos cinco modalidades de linguagens que so maiscomunmente utilizadas nessa interao: SQL, autocontida, hospedeira, visuais eaquelas voltadas para INTERNET. Esta uma classificao meramente didtica queobjetiva apenas demostrar formas diferenciadas de interao com o BD. Outrosautores possuem diferentes classificaes.
1. SQL (STRUCTURED QUERY LANGUAGE)
A liguagem SQL (anteriormente escrita SEQUEL) foi criada junto com o SistemaR, primeiro prottipo de SGBD-R, desenvolvido de 1974 a 1979 no IBM San JoseResearch Laboratory. A veso original do SQL foi baseada em uma linguagemanterior chamada SQUARE. As duas linguagens so essencialmente a mesma, masa SQUARE usa uma sintaxe bem mais matemtica, enquanto a SQL maisparecida com o ingls.
A linguagem SQL mais do que somente uma linguagem de consulta, sem que istose oponha ao query no seu nome. Ela fornece funes de recuperao e
atualizao de dados, alm de criao, manuteno da estrutura de dados e controledo ambiente do BD.
uma linguagem essencialmente interativa, porm pode ser embutida em outraslinguagens procedurais (que neste texto chamamos linguagem hospedeira) para serutilizada em programas batch ou on-line, que acessam o BD. Suas principaiscaractersticas so:
_Padro ANSI (American National Standard Institute). O ANSI estabeleceu-se
como um padro de fato de SQL para os fornecedores de produtos relacionais,que atualmente lideram o mercado. Este aspecto facilita a interoperabilidade entreBDs de diferentes fornecedores.
_ Padro de acesso. Todo o acesso ao BD Relacional feito em SQL, mesmo queembutida em outra linguagem.
_ Interpretada(no compilada), caracteristica que prov maior grau deindependncia de dados aos BD relacionais, ou seja, faz com que a aplicao
reconhea alteraes nas estruturas de dados, sem necessidade de ser recompilada.
19
-
7/28/2019 Apostila de Banco de Dados Em PDF
23/94
_DDL, DML e DCL. O SQL possui esses trs grupos de comandos, montadosconforme a funo do comando no banco de dados. Esta caracterstica tambmrelaciona-se independncia de dados, uma vez que pode-se descrever os dados(DCL) de forma independente das aplicaes (DML).
_DDL (Data Definition Languge). Linguagem para definio de dados, quecompreende os seguintes comandos SQL:
_ CREATE - Utilizado para criar objetos (tabela, ndice, view, sequence, etc.)no BD.
Exemplo: Criao da tabela funcionrio com os atributos matricula e nome.
CREATE TABLE funcionrio(matricula number(05)nome char (30);
_ ALTER - Utilizado para alterar objetos do BD (adicionar colunas, modificartipo de dados, adcionar integridade, etc.).
Exemplo: Adio da integridade de chave primria tabela funcionrio.
ALTER TABLE funcionrioADD CONSTRAINT PRIMARY KEY (matricula);
_ DROP - Exclui objetos do BD.
Exemplo: Excluso da tabela funcionrio do BD.
DROP TABLE funcionrio
20
-
7/28/2019 Apostila de Banco de Dados Em PDF
24/94
_DML (Data Manipulation Languge). Linguagem para manipulao dede dados, que compreende os comandos para que o usrio interaja comos dados armazenados no BD.
SELECT - Comando de leitura, utilizado para que o usurio possaefetuar consultas (query) nas tabelas do banco de dados. o comandomais poderoso do SQL, efetua as sete operaes da algebra relacionalconforme veremos no captulo sobre banco de dados Relacional. Seuformato bsico SELECT-FROM-WHERE (leia-de-onde). Pode sercombinado com os demais comandos SQL constituindo sub-queries.O resultado de todo comando SELECT uma tabela, que pode conteruma, nenhuma ou N linhas.Exemplo: Ler da tabela funcionrio matricula e nome, onde o salrioseja maior do que 500,00.
SELECT matricula, nomeFROM funcionrio
WHERE salrio > 500,00;
INSERT - Utilizado para incluir registros nas tabelas do banco dedados.Exemplo: Incluso de um registro na tabela funcionrio.
INSERT INTO funcionrio (matricula, nome)VALUES ( 20,Maria do Carmo);
UPDATE - Utilizado para alterar dados nas tabelas do banco de dados.Exemplo: Alterao no salrio do funcionrio de matrcula igual a 20.
UPDATE funcionrioSET salrio=1200
WHERE matricula=20;
DELETE - Utilizado para excluir registros das tabelas do banco dedados.Exemplo: Excluso do funcionrio de matrcula igual a 20.
DELETE funcionrioWHERE matricula=20;
21
-
7/28/2019 Apostila de Banco de Dados Em PDF
25/94
2. LINGUAGEM AUTOCONTIDA
Esta modalidade de linguagem a extenso procedural do SQL, que nosSGBD-R utilizada para desenvolvimento de programas que ficam
residentes no banco de dados (TRIGGERS, STORED PROCEDURES,FUNCES). Acrescenta ao SQL interativo estruturas de deciso (IF-THEN-ELSE) e repetio (LOOP, FOR e/ou DO WHILE). umalinguagem proprietria (Cada SGBD possui a sua). Os programasescritos nessa linguagem geralmente assemelham-se a programasPASCAL.
3. LINGUAGEM HOSPEDEIRA
So linguagens procedurais de 3 gerao (notadamente o COBOL)utilizadas como hospedeiras (host) de comandos prprios de banco dedados. Linguagens hospedeiras foram muito utilizadas nos SGBD dosmodelos Hierrquicos e Rede, dado que nestas geraes de SGBD aindano existia o SQL com toda a sua simplicidade e potencialidade. Poroutro lado, imperava uma forte cultura nas linguagens COBOL, PL/1,FORTRAN, etc.... que foi aproveitada pelos fabricantes de SGBD,facilitando a introduo dessa nova cultura.
Os SGBD que utilizam linguagens hospedeiras. possuem um software
PR-COMPILADOR, que inserido na rotina de compilao do fonte doprograma hospedeiro, para converter os comandos de BD (estranhos linguagem HOST) em linguagem objeto ou chamadas (CALL) de rotinasintelegveis pelo compilador a linguagem.
Esquema de compliao com linguagem hospedeira:
PROGRAMAFONTEHOSPEDEIRO
PR_COMPILADOR
PROGRAMAPR_COMPILADO
PROCESSO
NORMAL DECOMPILAO
22
-
7/28/2019 Apostila de Banco de Dados Em PDF
26/94
4. LINGUAGEM VISUAL
As linguagens visuais atualmente dominam o ambiente dedesenvolvimento para a arquitetura Cliente/Servidor. Nessa arquitetura,so utilizadas para desenvolver a interface Cliente da aplicao.Recebem a denominao de FRONT-END. Geram aplicaes paraambiente grfico, padro WINDOWS. So orientadas a eventos e em suamaioria, baseiam-se na tecnologia de Orientao a Objetos,apresentando recursos como classe, objeto, herana, polimorfismo, etc..Utilizam o SQL como linguagem para acesso aos bancos de dadosrelacionais, atravs de APIs (Aplication Program Interface) nativas ougenricas (ex: ODBC e ODAPI). Como exemplos de linguagem dessacategoria podemos citar: DELPHI, VISUAL BASIC, POWER BUILDER,CENTURA, etc..
Nossa maior preocupao neste texto chamar a ateno do leitor parao fato de que essas linguagens so FRONT_ENDs de SGBD relacionais.Apesar de serem orientadas a objeto, no devem ser confundidas com osBD relacionais ou Orientados a Objeto, este ltimo, ainda umatecnologia que ocupa um espao restrito no mercado.
Esquema de acesso a BD relacional com linguagem visual:
API BD-R
DADOS DADOS
PRGRAMA EMLIGUAGEMVISUAL
SQL SQL PARO
5. LINGUAGENS PARA INTERNET
Nesse grupo de linguagens, incluem-se aquelas utilizadas paramanipular, formatar, manipular e apresentar as informaes que soacessadas na INTERNET atravs dos Browsers, das quais, destacam-se:HTML, J AVA SCRIPT, ASP e J AVA.
23
-
7/28/2019 Apostila de Banco de Dados Em PDF
27/94
CONCLUSO
O banco de dados constitui a parte esttica da aplicao. A dinmica deum sistema dada pelas linguagens que armazenam, recuperam e
manipulam as informaes contidas no BD e existem diversas maneiraspara se executar essas tarefas.
A evoluo das linguagens aponta para utilizao de produtos noproprietrios e que privilegiem a reutilizao do cdigo, alm dos dadosque j so amplamente reutilizados atravs da tecnologia relacional. Issoporque, o cdigo contm a inteligncia das aplicaes (regras donegcio) que, em ltima anlise, refletem o conhecimento da empresa arespeito do seu negcio. A reutilizao do cdigo pode trazer, comobenefcios imediatos, a reduo no tempo e custo de desenvolvimento emanuteno de novas aplicaes, a padronizao de processos e amelhoria constante na qualidades dos sistemas gerados.
A medida que surgem novas tecnologias para acesso s informaes doBD, muitos sistemas antigos permanecem como legados, porque sosistemas crticos, de difcil substituio, ou porque so satisfatrios e, emanlise de custo / benefcio, tem o seu redesenvolvimentodesaconselhado. Alm disso, as necessidades de acesso s informaesesto se diversificando, as empresas esto abrindo suas fronteiras e
oferecendo acesso direto do cliente a suas bases de dados. Comoresultado, comum observarmos ambientes de sistemas heterogneos,desenvolvidos com tecnologias diferentes, em termos de linguagens ebanco de dados, onde observamos COBOL convivendo com DELPHI,VB, HTM, J AVA, etc..
Nesse contexto, tambm surge como uma tendncia o desenvolvimentode aplicaes em trs ou N camadas. O foco principal dessa tecnologia maximizar a reutilizao de cdigo, atravs do desenvolvimento das
regras do negcio em componentes reutilizveis, que obedeam apadres de mercado (CORBA, COM/DCOM, EJ B) e que funcionem comolinguagens universais, podendo ser acionados a partir de interfacesclientes desenvolvidas em diferentes linguagens.
Em sntese, o bancos de dados relacionais tornaram-se grandesrepositrios de dados, constituindo uma tecnologia madura que tematendido satisfatoriamente o mercado. Do lado das aplicaes, observa-se uma tendncia a diversificao de tecnologias, sem descuidar dos
benefcios que podem trazer a reutilizao das regras de negcio.
24
-
7/28/2019 Apostila de Banco de Dados Em PDF
28/94
CAPTULO VI
BANCO DE DADOS RELACIONAL
O Modelo Relacional de Banco de Dados, utiliza a teoria de conjuntos como baseconceitual para a formulao de seus conceitos. Esse pressuposto facilita oentendimento por parte do usurio e possibilita a representao do mundo real deforma mais natural.
O Modelo Relacional, comeou a ser divulgado a partir de 1970, por E. F. Codd, umcientista da IBM, que utilizou o SISTEMA-R como produto experimental para acomprovao da teoria Relacional, publicada em uma srie de artigos, que
apresentaram os requisitos desse modelo em doze regras atualmente seguidas pelosSistemas Gerenciadores de Banco de Dados Relacionais (SGBD-R).
As doze regras de Codd, foram reeditadas por diversos autores que escreveram sobreo modelo Relacional. Em nossa pesquisa bibliogrfica para elaborao desse material,notamos que, existem interpretaes ambiguas e at contraditrias em relao a essasregras. Portanto, para notear o estudo do modelo Relacional, adotamos a abordagemde C. J . DATE, que apresenta o Modelo Relacional como possuindo as seguintescaractersticas fundamentais, que o distingue dos demais modelos:
_ Estrutura de dados tabular_ Regras de integridade_ Operadores relacionais_ Utilizao do SQL (Structured Query Language)
O modelo Relacional, assim como seus antecessores, nasceu no ambiente doscomputadores de grande porte (mainframe). Sofreu resties ao uso, por demandarmuita memria principal para alcanar uma performance (tempos de resposta) que o
tornasse comercialmente vivel. Ganhou fora a partir do incio a dcada de 80, coma revoluo tecnolgica provocada pela produo em larga escala dosmicrocomputadores PC, o que propiciou o barateamento do harware.
Atualmente o modelo relacional um padro seguido, praticamente por todos osformecedores de SGBD do mercado, Dentre os quais destacam-se: ORACLE,SYBASE, MYCROSOFT (SQL SERVER e ACCESS), INFORMIX e IBM DB/2.
1. TERMINOLIGIA DO MODELO RELACIONAL
25
-
7/28/2019 Apostila de Banco de Dados Em PDF
29/94
a. Os SGBD RELACIONAIS representam os dados sob a forma de
TABELAS bidimensionais (linhas X colunas), denominadas RELAES.
b. As linhas das tabelas so conhecidas como TUPLAS e as colunascomo ATRIBUTOS.
c. O nmero de atributos (colunas) de uma relao (tabela) determina oGRAU DA RELAO. Portanto uma relao com quatro colunas possuigrau quatro.
d. A interseo linha X coluna de uma tabela demomina-seCLULA.
e. O contedo de uma clula denomina-se valor de atributo .
f. Cada clula de uma tabela relacional comporta apenas um valor deatributo, caracterstica a qual designa-se por ATOMICIDADE (valoratmico).
g. O conjunto de valores possveis para um atributo de tabela denomina-se DOMNIO. Por exemplo, o domnio para o atributo cargo pode serdefinido como: Valor numrico entre 1 e 10.
RELAO: FUNCIONRIOMATR NOME CARGO DT_NASC
01 MIRIAM 01 25/09/6202 J UVENAL 03 18/04/70
03 GABRIELA 02 10/02/68
VALOR DEATRIBUTOCLULA
ATRIBUTO
TUPLA
2. REGRAS DE INTEGRIDADE
26
-
7/28/2019 Apostila de Banco de Dados Em PDF
30/94
Integridade de dados o conjunto de parmetros (regras do negcio)previamente estabelecidos e criados no banco de dados, aos quais osdados so submetidos, para garantir que de um processo de atualizao
no resultem dados inconsistentes.Uma das caractersticas mais fortes dos SGBD-R, est em oferecermecanismos para a criao de regras de integridade diretamente nobanco de dados. Nesse ponto a grande vantagem em relao aosdemais modelos (Hierrquico e Rede), consiste n o gerenciamentoautomtico e centralizado de rotinas de integridade pelo SGBD, do quedecorrem fatores como a eliminao de cdigos redundntes e maiorsegurana no que se refere consistncia das informaes.
Por outro lado, a possibilidade de de definir integridade no BD, nodescarta a hiptese de mante-la no fonte da aplicao que acessa o BD.Na arquitetura Cliente/Servidor, essa prtica muito corriqueira e podetrazer significativos ganhos de performance.
As regras de integridade de dados podem ser implementadas nos SGBD-R de forma DECLARATIVA ou PROCEDURAL:
a. INTEGRIDADE DECLARATIVA
A integridade declarativa implementada no BD, atravs de parmetrosopcionais da linguagem de definio de dados (DDL). Os tipos maiscomus de integridade declarativa so: CHAVE PRIMRIA, DOMNIO eINTEGRIDADE REFERENCIAL.
A integridade de CHAVE PRIMRIA garante que a chave primria databela no contenha valores em duplicata e nem valor NULO.
A integridade de DOMNIO permite restringir o universo de valoresvlidos para uma coluna.
A integridade REFERENCIAL garante o sincronismo de valores entre achave estrangeira (foreign key) e a respectiva chave primria. Esse tipode integridade ser tratado com maiores detalhes no item c destecapitulo.
27
-
7/28/2019 Apostila de Banco de Dados Em PDF
31/94
Na DDL do ORACLE, por exemplo, o comando CREATE apresenta asseguintes opes de integridade declarativa:
_ PRIMARY KEY - Garante a integridade de chave primria._ NOT NULL - Torna o campo de preenchimento obrigatrio._ CHECK - Permite a integridade de domnio._ UNIQUE - Evita a ocorrncia de valores em duplicata._ FOREIGN KEY - Implementa a integridade referencial.
Exemplo:
CREATE TABLE funcionrio(matricula number(05) PRIMARY KEYnome char (30) NOT NULLsexo char (01) CHECK sexo = F or M;
No exemplo, o ORACLE encarrega-se da integridade de chave primria(PRIMARY KEY), da condio de campo obrigatrio (NOT NULL) e daintegridade de domnio (CHECK), todas especificadas de formadeclarativa. Nenhuma linha de cdigo necessria nos programas queacessam BD para garantir essas integridades.
28
-
7/28/2019 Apostila de Banco de Dados Em PDF
32/94
b. INTEGRIDADE PROCEDURAL
A Integridade Procedural apresenta-se sob a forma de um programa, cujalgica escrita pelo programador, na linguagem procedural nativa do
SGBD. Esse tipo de integridade supre as necessidades no cobertaspelos parmetros de integridade declarativa.
No ORACLE a integridade procedural pode ser criada atravs deTRIGGERS, STORED PROCEDURES ou FUNES DO USURIO.Estes elementos so escritos em PL/SQL que a extenso procedural doSQL desse SGBD.
Um TRIGGER (gatilho) criado para disparar, automaticamente, sempreque o SGBD detectar a ocorrncia de um ou mais comandos de acesso atabela.
Exemplo:
CREATE TRIGGER atualiza_saldoAFTER INSERT ON TABLE lanamentosBEGIN
UPDATE Tab_saldoSET saldo_atual=saldo_atual + valor_lanamento;
END;
No exemplo, sempre que um registro for includo na tabela lanamentoso trigger dispara e atualiza o saldo_atual na tabela tab_saldo.
Nem todos os SGBD possuem integridade procedural. Esse recurso mais frequente nos SGBD de maior porte como ORACLE, DB/2,INFORMIX, SQL SERVER, etc..
29
-
7/28/2019 Apostila de Banco de Dados Em PDF
33/94
c. INTEGRIDADE REFERENCIAL
A Integridade Referencial o mecanismo dos SGBD-R que, no processo deatualizao do BD, mantm o sincronismo entre duas tabelas relacionadas, em
relao aos valores da chave estrangeira e da respectiva chave primria.
FUNCIONRIOMATRICULA- PKTABELA PAI
1
NDEPENDENTE
MATRICULA- FKTABELA FILHO
A integridade referencial evita a ocorrncia de registros orfos no banco dedados, ou seja, registros filhos sem a correspondente linha de referencia natabela pai.
Os SGBD_R que seguem o padro SQL ANSI/92, suportam a integridadereferencial de forma declarativa. Possuem ainda aes referenciais, que
propagam atualizaes e excluses efetuadas na tabela pai para a tabela filho.As aes referenciais propiciam, por exemplo, que a excluso de um registropai provoque a excluso automtica de seus respectivos filhos (excluso emcascata), ou que a alterao no valor de uma chave primria reflitamautomticamente para os registros que a referenciam (atualizao em cascata).
30
-
7/28/2019 Apostila de Banco de Dados Em PDF
34/94
Exemplo:
CREATE TABLE funcionrio(matricula number(05) PRIMARY KEY
nome char (30)sexo char (01));
CREATE TABLE dependente(id_dependente number(05) PRIMARY KEYnome_dependente char (30)data nascimento datematricula_funcionrio number(05) FOREIGN KEY
REFERENCES funcionrio.matricula
ON DELETE CASCADE);O exemplo apresenta a integridade referencial, declarada na tabeladependente, indicando que o campo matricula_funcionrio dessa tabela,refere-se ao campo matricula da tabela funcionrio. Com essa declarao oSGBD garante que a incluso de um DEPENDENTE, somente ser validacaso exista o FUNCIONRIO correspondente.
Por outro lado, a clusula ON DELETE CASCADE indica que sempre quefor excludo um registro da tabela funcionrio, o SGBD deve excluirautomticamente os registros da tabela dependente a ele relacionados.
31
-
7/28/2019 Apostila de Banco de Dados Em PDF
35/94
3. OPERADORES RELACIONAIS
Os Operadores Relacionais constituem mecanismos do SGBD-R pararecuperao de informaes no Banco de Dados. Inserem-se no contexto
da Algebra Relacional que possui sete operadores, sendo trs relacionais(PROJ EO, SELEO e J UNO) e quatro operadores tradicionais deconjunto (UNIO, INTERSEO, DIFERENA e PRODUTOCARTEZIANO).
Para que um SGBD seja considerado relacional basta que possuaapenas os operadores relacionais. Os operadores de conjunto podem sersimulados a partir dos primeiros.
No SQL/ANSI, os sete operadores so implementados por variaes nasclusulas do comando SELECT.
No prximo captulo trataremos dos operadores relacionais comexemplos da aplicao de cada um deles.
32
-
7/28/2019 Apostila de Banco de Dados Em PDF
36/94
4. PROPRIEDADES RELACIONAIS
As Propriedades relacionais so consideraes bvias, pormelucidativas a respeito do funcionamento e da filosofia que norteia o
desenvolvimento dos SGBD-R. Essas propriedades derivam da teoria deconjuntos e algumas se sobrepem ou confirmam as regras deintegridade.
a. Uma tabela no deve possuir duas linhas iguais. Isto se explicapelo fato de que as linhas so componentes de um conjunto (a tabela) ese faz necessrio poder distinguir os elementos de um conjunto. Assimsendo, pelo menos um atributo componente da linha deve possuir umvalor que a diferencie das demais. Nos modelos relacionais o diferencialmnimo entre duas linhas de uma tabela a chave primria.
b. Toda a tabela de um BD relacional deve possuir chave primria.Essa propriedade decorre da anterior. Atualmente, todos os SGBD-Rdisponveis no mercado mantm automaticamente a unicidade da chaveprimria. Por outro lado, alguns produtos relacionais permitem a criaode tabelas sem PK, deixando a critrio do analista a sua declarao ouno, o que contraria esta propriedade mas atribui maior flexibilidade aoproduto.
c. Cada tabela deve possuir um nome prprio, distinto das demaistabelas do mesmo banco de dados. Essa propriedade tambm derivada teoria de conjuntos, j que as tabelas so componentes do conjuntoBD. Ressalta-se que em banco de dados distintos duas tabelas podemter o mesmo nome.
d. Cada atributo de uma mesma tabela deve possuir um nomediferente. Por outro lado, o mesmo atributo pode aparecer em outratabela com o mesmo nome ou com nome diferente (sinnimo).
e. Os SGBD-R somente operam com estruturas de dados de formatotabular, normalizadas pelo menos em !FN (1 forma normal), onde aprincipal caracterstica a atmicidade, ou seja, ocorrncia de apenasum valor de atributo para cada clula da tabela. Esse nvel denormalizao exigido para tornar possvel a aplicao da lgebraRelacional para recuperar informaes contidas nas tabelas do BD.Nveis mais altos de normalizao (2FN a $FN) so teis para diminuir aredundncia, melhorar a consistncia e integridade dos dados.
33
-
7/28/2019 Apostila de Banco de Dados Em PDF
37/94
f. A ordem das linhas e colunas na tabela irrelevante, pois pode serfacilmente modificada nas consultas, atravs dos recursos da lingugemSQL (Structured Query Language).g. Os SGBD-R devem ser capazes de tratar, de maneira diferenciada
o valor NULO (NULL), que indica ausncia de valor para um atributo emdeterminada linha. Nulo corresponde na teoria de conjuntos a conjuntovazio e diferente de zero ou branco.
5. VANTAGENS DO MODELO RELACIONAL
As vantagens em relao aos sistemas de arquivos convencionais eSGBD Hierrquicos e Rede so:
a. Linguagem SQL interativa e muito prxima da linguagem naturalescrita (ingls);
b. Facilidade no entendimento da estrutura de dados tabular;
c. Maior possibilidade de utilizao direta pelo usurio final;
d. Centralizao da integridade no BD.
e. Reduo no tamanho dos cdigos de programa;
f. Maior integridade e consitncia de dados;
g. Maior segurana;
h. Maior flexibilidade para acrscimo de novas informaes no BD;
i. Possibilidade de criar gatilhos (TRIGGERS) e procedimentos
armazenados (STORED PROCEDURE);
j. Maior Produtividade.
l. Padronizao dos produtos facilitando a difuso e preservao dacultura relacional.
34
-
7/28/2019 Apostila de Banco de Dados Em PDF
38/94
CAPTULO VII
LGEBRA RELACIONAL
A lgebra Relacional uma teoria matemtica baseada nas relaes entre conjuntos.Da sua aplicao ao Modelo Relacional de Banco de Dados, resultou a possibilidadede armazenar estruturas de dados complexas (como uma ficha cadastro de clientes),de maneira fragmentada, no formato tabular dos SGBR-R e recompor a informaooriginal, a partir da formulao de relaes entre as tabelas do banco de dados. Essasrelaes so providas pelos operadores da lgebra relacional, que se encontramdisponveis nos recursos da linguagem SQL (Structured Query Language).
Os operadores da lgebra relacional classificam-se em dois grupos:
_ OPERADORES TRADICIONAIS DE CONJ UNTO
. UNIO
. INTERSEO
. DIFERENA
. PRODUTO CARTESIANO
_ OPERADORES RELACIONAIS
. PROJEO
. SELEO
. JUNO
Para classificar-se um SGBD como Relacional, fundamental que ele possua, entreoutras caractersticas, no mnimo os trs operadores relacionais, haja vista que, nemtodos os SGBD-R possuem os sete operadores. Os Operadores Tradicionais so mais
encontrados em SGBD mais robustos, como ORACLE, SYBASE e DB/2.
35
-
7/28/2019 Apostila de Banco de Dados Em PDF
39/94
1. ESTUDO DE CASO
O grfico abaixo corresponde ao Modelo de Entidades e Relacionamentos
(MER) de um banco de dados, que ser utilizado como referncia para oestudo dos operadores relacionais.
CLIENTE
CONTA
1
N
36
-
7/28/2019 Apostila de Banco de Dados Em PDF
40/94
Segue uma amostragem das tabelas do banco de dados representado no MER:
CLIENTE
ID-CLI NOME ENDEREO
TIPO001 RITA SQN V002 MARCELO GUAR C003 CARLA GAMA E004 VTOR SQS C005 RAQUEL SQS E006 BRUNA GUAR V007 SNIA CRUZEIRO C008 GETLIO SQN C
C =COMUM
E= ESPECIALV=VIP
CONTA_CORRENTE
AGENCIANUM-CONTA
ID-CLI SIT
SALDO
106 001 004 0 20.000,00106 002 003 2 250,00
106 040 003 0 500,00167 001 005 0 50,00167 005 007 0 10,00167 006 008 2 20,00202 001 001 0 150,00202 002 003 1 0202 003 002 0 30,00202 004 004 2 50.000,00
0 =ATIVA1 =INATI VA2 =BLOQUEADA
37
-
7/28/2019 Apostila de Banco de Dados Em PDF
41/94
2. GENERAL IDADES
a. Nos SGBD que utilizam o SQL padro ANSI (Americam NationalStandard Institute), os operadores da lgebra Relacional so
implementados por variaes de parmetros na sintaxe do comandoSELECT, que um comando de leitura da base de dados.
b. A sintaxe utilizada para os comandos SELECT, que aparecero nosexemplos, foi extrada dos manuais do SGBD ORACLE, que segue opadro SQL ANSI. A estrutura bsica do comando SELECT :
SELECT colunas.... ou * (que significa todas as colunas)FROM tabelas .....WHERE condio........
c. As operaes da lgebra relacional geram sempre uma tabelaresultado residente em memria principal (tabela virtual), que emanalogia com a teoria de conjuntos, pode ser vazia, unitria ou conter Nlinhas.
d. As operaes podem ser efetuadas entre duas tabelas virtuaisatravs da combinao de dois comandos SELECT em uma nica
sentena.
e. comum a combinao de diversos operadores da gebraRelacional em um nico comando SELECT. A anlise individual de cadaum deles um exerccio meramente didtico.
f. As situaes criadas, so apenas ensaios, que no esgotam aspossibilidades de utilizao dos operadores. Alm disso, uma mesmanecessidade pode ter mais de uma soluo. Portanto a utilidade dos
operadores depende do problema tratado e da criatividade do tcnico.
38
-
7/28/2019 Apostila de Banco de Dados Em PDF
42/94
3. OPERADORES DE CONJ UNTO
a. UNIO
A unio de duas tabelas A e B , resulta numa tabela vir tual C ,contendo o total de linhas das tabelas envolvidas na operao.
No sistema exemplo, imagine que cada agncia mantenha os dadoscadastrais de CLIENTE em servidores locais de sua rede, e que essesservidores esto ligados em um servidor corporativo. Para se obter noservidor corporativo uma viso nica, que contenha os dados de todosos clientes do Banco, pode-se utilizar o operador UNION da seguintemaneira:
SELECT * FROM cliente@agencia1;UNIONSELECT * FROM cliente@agencia2;..UNIONSELECT * FROM cliente@agenciaN;
O resultado seria idntico ao que temos na amostragem da tabelaCLIENTE do sistema exemplo:
ID-CLI NOME ENDEREO TIPO001 RITA SQN V002 MARCELO GUAR C003 CARLA GAMA E004 VTOR SQS C005 RAQUEL SQS E006 BRUNA GUAR V007 SNIA CRUZEIRO C008 GETLIO SQN C
Obs: Os SELECTs devem referenciar os mesmos atributos e na mesmaseqncia.
39
-
7/28/2019 Apostila de Banco de Dados Em PDF
43/94
b. INTERSEO
A Interseo entre duas tabelas A e B, resulta numa tabela virtualC, contendo as linhas comus s duas tabelas envolvidas na
operao.No sistema exemplo, considere a necessidade de se listar o ID-CLI" de clientes que possuam, simultaneamente,CONTAS_CORRENTES ativas e bloqueadas. Para atender a esserequerimento, pode-se utilizar o operador INTERSECT da seguintemaneira:
SELECT id_cliFROM conta_corrente
WHERE si t = 0INTERSECTSELECT id_cliFROM conta_corrente
WHERE si t = 2;
Considerando a amostragem da tabela CONTA_CORRENTE dosistema exemplo, o resultado do SQL anterior seria:
ID-CLI004003
Obs: Os SELECTs devem referenciar os mesmos atributos e namesma seqncia.
40
-
7/28/2019 Apostila de Banco de Dados Em PDF
44/94
c. DIFERENA
A Diferena entre duas tabelas A e B (na ordem A - B), resultanuma tabela virtual C, contendo as linhas pertencentes
exclusivamente tabela A e no a B.No sistema exemplo, considere a necessidade de se listar o ID-CLI"de clientes que no possuam contas_correntes INATIVAS ouBLOQUEADAS, somente ATIVAS. Para atender a esse requerimento,pode-se utilizar o operador MINUS da seguinte maneira:
SELECT id_cliFROM conta_corrente
WHERE si t = 0MINUSSELECT id_cliFROM conta_corrente
WHERE si t = 2 OR sit = 1;
Considerando a amostragem da tabela CONTA_CORRENTE dosistema exemplo, o resultado do SQL anterior seria:
ID-CLI005007001002
Obs: Os SELECTs devem referenciar os mesmos atributos e namesma seqncia.
41
-
7/28/2019 Apostila de Banco de Dados Em PDF
45/94
d. PRODUTO CARTESIANO
A Produto Cartesiano entre duas tabelas A x B resulta numa tabelavirtual C, contendo todas as linhas da tabela A combinadas com
todas as linhas da tabela B, atravs da concatenao de suas linhas.Essa operao tem uma certa semelhana com a J UNO, poiscombina dados de mais de uma tabela, exceto que no estabelecenenhum critrio (join condition) para isso.
Geralmente o Produto utilizado para construo de massas de testeou quando o tcnico esquece de colocar o join condition em umSELECT que envolva duas ou mais tabelas. Nesse caso, pode resultarnuma tabela enorme. Por exemplo, o produto entre uma tabela A com50 linhas e uma tabela B com 100 linhas resulta numa tabela C com5.000 linhas.
O SELECT a seguir efetua um produto entre as tabelas CLIENTE eCONTA_CORRENTE:
SELECT nome, saldoFROM cliente, conta_corrente;
42
-
7/28/2019 Apostila de Banco de Dados Em PDF
46/94
Considerando as amostragens das tabelas do sistema exemploreferenciadas no comando anterior, a tabela resultado teria 80 linhas,com o seguinte aspecto:
NOME SALDORITA 20.000,00RITA 250,00RITA 500,00. .. .MARCELO 20.000,00. .MARCELO 50,000,00
. .. .SNIA 30,00. .. .. .GETL IO 50,000,00
43
-
7/28/2019 Apostila de Banco de Dados Em PDF
47/94
3. OPERADORES RELACIONAIS
e. PROJEO
A Projeo consiste em obter um subconjunto de colunas deuma ou mais tabelas_base, como resultado de uma consultaparcial aos dados disponveis no banco de dados.
Geralmente utilizada em conjunto com as demais operaespara produzir resultados de consultas, ou ainda, para criarvises (VIEWs), que restringem o acesso do usurio a determinadosatributos da base de dados.
No sistema exemplo, uma consulta contendo nome e endereo dosclientes, corresponde a uma PROJ EO elaborada a partir da tabela-base CLIENTE, atravs da seguinte sentena SQL:
SELECT nome, endereoFROM cliente;
Considerando a amostragem da tabela CLIENTE do sistema exemplo, oresultado do SQL anterior seria:
NOME ENDEREORITA SQNMARCELO GUARCARLA GAMAVITOR SQSRAQUEL SQSBRUNO GUARSNIA CRUZEIROGETLIO SQN
44
-
7/28/2019 Apostila de Banco de Dados Em PDF
48/94
f. SELEO
Tambm conhecida como Restrio, essa operao tem por finalidadeselecionar um subconjunto de linhas de uma ou mais tabelas_base,
de acordo com critrios (where criteria), que envolvem atributos evalores para filtrar os dados desejados, gerando uma consulta parcialaos dados disponveis no banco de dados.
Geralmente utilizada em conjunto com as demais operaespara produzir resultados de consultas, ou ainda, para criarvises (VIEWs), que restringem o acesso do usurio a determinadaslinhas de tabelas na base de dados.
Os Critrios de Seleo so traduzidos na sintaxe do comandoSELECT, pela combinao de operadores lgicos (AND, OR, NOT),aritimticos (=, , >, = e
-
7/28/2019 Apostila de Banco de Dados Em PDF
49/94
g. JUNO
Essa operao relacional utilizada para compor informaescomplexas a partir de tabelas relacionadas. A juno de duas tabelas
A e B concatena as linhas das tabelas envolvidas, resultando numatabela virtual C.
Para efetuar a J UNO de duas tabelas essencial que elas estejamlogicamente relacionadas, conforme prev o modelo relacional, ouseja, o grau do relacionamento deve ser no mximo 1 : N , sendo quea chave primria da entidade 1 deve figurar como chave estrangeirada entidade N . Alm disso, os valores dessas chaves devem sercoincidentes, para as linhas que se deseja concatenar.
A juno notada na sintaxe do SQL, pela comparao de atributoschave primria / chave estrangeira, atravs da clusula WHERE docomando SELECT, o que denominamos condio de juno (joincondition). Quando o tcnico esquece de colocar o join condition emum SELECT que envolva duas ou mais tabelas o SGBD geralmenteefetua o PRODUTO.
O SELECT a seguir efetua uma juno entre as tabelas CLIENTE eCONTA_CORRENTE:
SELECT nome, saldoFROM cliente, conta_corrente
WHERE cliente.id-cli = conta_corrente.id-cli;
46
-
7/28/2019 Apostila de Banco de Dados Em PDF
50/94
Considerando as amostragens das tabelas do sistema exemploreferenciadas no comando anterior, a tabela resultado seria:
NOME SALDORITA 150,00MARCELO 30,00CARLA 500,00CARLA 0,00VITOR 20.000,00VITOR 50.000,00RAQUEL 50,00SNIA 10,00
GETLIO 20,00Note que a cliente de nome BRUNA no figura na tabela resultadoporque no possui registro na tabela CONTA_CORRENTE.
47
-
7/28/2019 Apostila de Banco de Dados Em PDF
51/94
PARTE II - PROJETO DE BANCO DE DADOS
INTRODUO
A modelagem de um sistema de processamento de dados pode ser feita a partir de doisenfoques:
1) Enfoque dos DADOS que so processados;
2) Enfoque das FUNES que tratam esses dados.
Esses dois enfoques so complementares e, usados conjuntamente, fornecem ao analista osdois principais ngulos do problema em anlise: DADOS E FUNES. O Diagrama defluxo de dados (DFD) e o Diagrama Hierrquico Funcional (DHF) so exemplos deferramentas com enfoque FUNCIONAL e o Modelo de Entidade e Relacionamentos (MER) o diagrama utilizado para prover a viso dos DADOS.
Os modelos Funcional e de Dados, ao integrarem um projeto de sistemas, constituem-se emimportantes instrumentos para, entre outras coisas:
_ Apresentar, atravs de diagramas, uma sntese do problema, destacando seus aspectosmais relevantes;
_ Oferecer uma viso contextual do sistema em anlise.
_ Facilitar a comunicao entre os integrantes da equipe de desenvolvimento (gerentes,analistas, usurios, etc);
_ Motivar a participao do usurio no projeto;
_ Documentar o processo de anlise, para que o trabalho no sofra soluo de continuidade;Apesar dos dois enfoques (Funcional e de Dados) do processo de anlise de sistemas, estetexto trata, especificamente, da MODELAGEM DE DADOS, com o emprego do MODELODE ENTIDADES E RELACIONAMENTOS e da tcnica de NORMALIZAO, adotandoa METODOLOGIA DE PROJETO DESCENDENTE (Setzer, Valdemar) como referencialmetodolgico para o proceso de modelagem.
48
-
7/28/2019 Apostila de Banco de Dados Em PDF
52/94
CAPTULO VIII
NVEIS DE ABSTRAO
Ao projetar um sistema de informaes para ser implantado no computador, o projetistaelabora um modelo da realidade, visando adequa-la s limitaes do ambiente docomputador. Devido complexidade do mundo real e seguindo a linha de abordagem TOPDOWN, o processo de modelagem atravessa diversas fases, s quais Setzer1 denominouNVEIS DE ABSTRAO, em sua Metodologia de Projeto Descendente, que usaremoscomo referncia neste texto e que encontra esquematizada na figura a seguir:
MUNDO REAL
MODELOOPERACIONAL
MODELOCONCEITUAL
MODELODESCRITIVO
MODELOINTERNO
Texto, documentos, entrevistas, relatrios,etc..
MER ou DFD
NORMALIZAO
MER Normalizado
DDL do banco de dados
1 Waldemar W. setzer - livro:Pro jeto de Banco de Dados
49
-
7/28/2019 Apostila de Banco de Dados Em PDF
53/94
Os NVEIS DE ABSTRAO, propostos por Setzer, representam as diferentes vises queum analista obtm de uma realidade (MUNDO REAL), a medida que avana no processo demodelagem, at chegar ao sistema implantado. A partir doMUNDO REAL , Setzer propequatro nveis de abstrao, que so os modelosDESCRITIVO, CONCEITUAL,OPERACIONAL E INTERNO.
1. MUNDO REAL
O MUNDO REAL envolve todos os objetos (normas, pessoas, eventos,fatos, organismos sociais, etc..), que compem o CENRIO, do qual, oanalista dever extrair a parte a ser representada no computador, quepode ser uma empresa, um departamento, setor, processo de negcio,etc..
2. MODELO DESCRITIVO
Este modelo representado por um texto contendo a descrio domundo real (ambiente alvo do estudo), explicitando as caractersticas doproblema a ser tratado atravs de regras do negcio, elenco denecessidades, a anlise de requisitos, questionrios, formulrios,
relatrios, informaes sobre volume, etc.. Constitui o primeiro nvel damodelagem, onde o analista estabelece as fronteiras do sistema.
Neste nvel de abstrao, o modelador identifica a rea alvo damodelagem, descreve o problema a ser solucionado e identifica oscomponentes sobre os quais se deseja armazenar e recuperarinformaes. Deve-se relatar o maior o nvel de detalhes possvel arespeito do problema, cuidando-se para no perder a objetividade.
O maior problema do modelo descritivo a falta de padro. Existemvrias maneiras de se descrever o mesmo problema, as palavraspossuem significados variados e podem causar dupla interpretao, ouseja, ambigidade. Para amenizar esse problema, deve-se evitarperodos longos, procurar trabalhar com tpicos, frases curtas e utilizarpalavras precisas e adequadas ao vocabulrio profissional do usurio.
50
-
7/28/2019 Apostila de Banco de Dados Em PDF
54/94
3. MODELO CONCEITUAL
um modelo baseado em smbolos PADRONIZADOS, que expressa,
graficamente, os CONCEITOS do MUNDO REAL delineados no ModeloDescritivo. A utilizao de uma simbologia padronizada torna a linguagemmais precisa, o que facilita a comunicao entre os integrantes da equipede desenvolvimento, especialmente, entre analistas e usurios. Portanto,esse modelo o mais adequado para o registro e validao dosconceitos do mundo real, nas fases do projeto que envolvem o usurio.
O produto dessa fase da anlise deve ser um MODELO DE ENTIDADESE RELACIONAMENTOS (MER) enfocando a viso dos DADOS com altonvel de abstrao, ou seja, voltado para o MUNDO REAL e sempreocupar-se com detalhes do ambiente operacional, como, por exemplo,o software e hardware no qual o sistema ser implantado.
Neste nvel da modelagem, deve-se ressaltar os aspectos maisrelevantes do problema, ou seja, representa-se principais entidades,relacionamentos, estruturas de dados e integrao com outros sistemas.Os detalhes do banco de dados (chaves primrias, estrangeiras,integridades, etc.) devem ser deixados para a fase seguinte, deconstruo do modelo operacional.
4. MODELO OPERACIONAL
O modelo Operacional decorre da anlise do modelo Conceitual, visandotorna-lo adequado ao ambiente operacional, no qual o sistema serimplantado. No caso especfico deste texto, essa anlise visa adaptar omodelo Conceitual s limitaes de um Sistema Gerenciador de Bancode Dados Relacional (SGBD-R).
Obter o projeto das tabelas do banco de dados o principal objetivodessa fase e para alcana-lo, o analista deve investigar cada entidade doModelo Conceitual, decompor estruturas em elementos de dados, utilizara NORMALIZAO e o conhecimento sobre o MODELO RELACIONALcomo balizadores de suas aes.
Nesta fase, o dicionrio de dados do Modelo Conceitual enriquecidocom a escolha das chaves primrias, definio de chaves estrangeiras,ndices, integridades, e outros detalhes essenciais para a criao do
banco de dados.
51
-
7/28/2019 Apostila de Banco de Dados Em PDF
55/94
5. MODELO INTERNO
Corresponde ao sistema implementado no computador, ou seja, representado pelo conjunto de linhas de cdigo geradas na linguagem do
SGBD, que no caso dos modelos Relacionais o SQL (structured querylanguage).
Do ponto de vista terico, o modelo Operacional seria o ideal para serimplantado. Porm, a prtica revela que esse modelo ainda pode sofrermodificaes antes que o BD seja criado. Os principais fatores quedeterminam essas modificaes so a MELHORIA DE PERFORMANCEe a DISTRIBUIO DE DADOS.
Visando aumentar a performance, podem ser criadas redundncias, coma desnormalizao e criao de tabelas totalizadoras para gerao deinformaes gerenciais. Nesses casos, deve-se ter especial cuidado coma consistncia do BD no processo de atualizao dos dados. Alm disso,deve-se considerar que a redundncia de dados aumenta os custos comprocessamento e armazenamento de dados, que devem sercompensados pelo benefcio esperado.
Com relao distribuio de dados comum a criao de cpias de
tabelas (distribuio por replicao) ou a fragmentao de uma entidadedo modelo operacional em vrias tabelas no redundantes (distribuiopor particionamento). Em ambos os casos, as partes resultantes sodistribudas em diversos ns da rede e a manuteno dessas partes serfacilitada caso o SGBD possua algum mecanismo de gerenciamentoautomtico de distribuio de dados.
52
-
7/28/2019 Apostila de Banco de Dados Em PDF
56/94
CAPITULO IX
MODELO DE ENTIDADES E RELACIONAMENTOS
O MODELO DE ENTIDADE E RELACIONAMENTOS (MER), foi propostooriginalmente por PETER CHEN em 1976. Seu objetivo, ao publicar esse trabalho,era consagrar um mtodo eficiente para representar os dados e ressaltar a diferenaentre as estruturas suportadas pelos SGBD HIERRQUICOS, REDE eRELACIONAL. Atualmente o MER tem sido utilizado para representar a viso dosdados no projeto de banco de dados.
A principal vantagem do MER a simplicidade. O Modelo de Entidades eRelacionamentos possui apenas trs componentes bsicos: ENTIDADE, ATRIBUTOe RELACIONAMENTO (e seus respectivos smbolos para diagramao).
A proposta original de CHEN foi enriquecida por trabalhos de diversos autores, queprocuraram atribuir maior capacidade semntica ao MER, o que gerou as camadasEXTENSES. As extenses ao MER possibilitam representar o mundo real commaior riqueza de detalhes. Por outro lado, elas provocaram a diversificao dospadres de notao e terminologia, contrastando com a proposta original de
simplicidade e acarretando problemas para a disseminao da cultura.Este captulo procura exprimir uma viso objetiva do Modelo de Entidades, parainstrumentalizar o analista frente necessidade de representar a viso dos dados deum projeto de sistema.
53
-
7/28/2019 Apostila de Banco de Dados Em PDF
57/94
1. NOTAO E TERMINOLOGIA
ENTIDADE a representao genrica de um COMPONENTE DO
MUNDO REAL, SOBRE O QUAL DESEJ AMOS ARMAZENARINFORMAES (ATRIBUTOS).
As ENTIDADES podem representar coisas tangveis (pessoal, material,patrimnio, etc.) ou intangveis (eventos, conceitos, planos, etc.).
Para NOTAR graficamente uma entidade emprega-se um RETNGULOidentificado por um substantivo (simples ou composto).
Exemplo:
CLIENTE CONTA_CORRENTE
54
-
7/28/2019 Apostila de Banco de Dados Em PDF
58/94
2. REGRAS PARA ATRIBUIO DE NOMES ENTIDADES
A literatura no consagra um padro para a atribuio de nomes a
entidades, mas, para alcanarmos um mnimo de padronizao,indicamos observar as seguintes regras:
- Nomes breves e objetivos, grafados em maisculas e, que identifiquemfacilmente o contedo da entidade;
- No singular, j que a pluralidade decorre, naturalmente, do nmero deocorrncias (linhas / tuplas), caracterstica prpria de toda entidade.
- Nomes compostos separados por hfen, eliminando-se o uso depreposies ou outros termos de ligao.
- Evitar abreviao de nomes. Se necessrio, ampliar o tamanho dafigura representativa da entidade.
55
-
7/28/2019 Apostila de Banco de Dados Em PDF
59/94
3. ATRIBUTO
Os atributos so os dados que devemos armazenar a respeito da
entidade, para atender s necessidades de informaes demandadaspelo usurio. Constituem tudo o que se pode relacionar como prprio(propriedade) da entidade e que, de alguma forma, estejam contidos noescopo do problema em anlise. Os atributos qualificam e distinguem asentidades no MER.
Em relao ao banco de dados, os atributos representam as colunas, queformam a estrutura de dados das tabelas. As colunas armazenam umvalor para cada linha. Esse valor armazenado designado por VALORDE ATRIBUTO.
O conjunto de valores de atributos, distintos por um identificador nico(chave primria) denomina-se OCORRNCIA. Esse conceito anlogoao de linha (tupla) em tabela relacional e de registro em arquivoconvencional.
Pode-se exprimir os atributos no MER, conforme mostrado na figuraabaixo:
0 tipo (1-poupana, 2- C/C)
0 cod-agncia
0 num-conta
CONTA_CORRENTE
0endereo
0nome
0identificador
CLIENTE
Cabe observar, que a representao de atributos no MER pode poluir ogrfico, comprometendo sua objetividade e viso contextual. Esserecurso deve ser reservado para situaes especiais, em que voc queiradestacar um atributo, por considera-lo elucidativo para o contexto.
56
-
7/28/2019 Apostila de Banco de Dados Em PDF
60/94
4. DICIONRIO DE DADOS
Os ATRIBUTOS so usualmente descritos sob a forma de estruturas e
elementos no Dicionrio de Dados, onde deve constar uma relao deatributos para cada entidade do MER. As notaes mais utilizadas paracriao de dicionrios de dados so as definidas por GANE2 e
YOURDON3.
Exemplo da notao de Gane para descrio de estruturas de dados:
CLIENTEIDENTIFICADORNOMEENDEREO
CONTA_CORRENTENUMERO_CONTA
TIPO-CONTA (1-poupana, 2-c/c)AGNCIA
CDIGO_AGNCIAENDEREO_AGNCIA
LANAMENTOS*
NUMERO_LANAMENTODATA
TIPO (deb, cre)VALOR
2 GANE, CHRIS - LIVRO: ANLISE ESTRUTURADA DE SISTEMAS3 YOURDON, EDWARD - LIVRO: ANLISE ESTRUTURADA MODERNA
57
-
7/28/2019 Apostila de Banco de Dados Em PDF
61/94
A figura a seguir ilustra conceitos vistos nesse captulo, representando a entidadeFUNCIONRIO sob a forma de uma tabela do banco de dados.
ENTIDADEDO MER
ENTIDADE FUNCIONRIO
TABELADO BD
FUNCIONRIO
MATRIC NOME CARGO DT-NASC
01 MIRIAM 01 25/09/6202 JUCA 03 18/04/7003 J OO 02 10/02/68
ATRIBUTOS
OCORRNCIA
CLULA
VALOR DE
ATRIBUTO
58
-
7/28/2019 Apostila de Banco de Dados Em PDF
62/94
5. RELACIONAMENTO
O relacionamento representa a relao existente entre entidades integrantes de umMER. notado por uma LINHA ligando as ENTIDADES envolvidas e possuem
NOME e CARDINALIDADE. Veja a figura a seguir.
CARDINALIDADE DORELACIONAMENTO
CONTA_CORRENTE
RELACIONAMENTO
NOME DO RELACIONAMENTO
1 MOVIMENTA NCLIENTE
Peter Chen4 utiliza um LOSANGO para representar oRELACIONAMENTO entre entidades, porm, a experincia demostra queo uso dessa notao contribui para poluir o grfico e no produzresultado prtico, exceto em casos de relacionamentos que envolvam
mais de duas entidades (relacionamento mltiplo - modelo conceitual).
Notao de CHEN
movimenta
1 NCLIENTE CONTA_CORRENTE
4CHEN, PETER - LIVRO: MODELO DE ENTIDADES E RELACIONAMENTOS
59
-
7/28/2019 Apostila de Banco de Dados Em PDF
63/94
6. CARDINALIDADE (GRAU DO RELACIONAMENTO)
A cardinalidade constitui um indicativo genrico da quantidade deocorrncias (mxima e mnima) de cada ENTIDADE envolvida no
relacionamento. expressa por sinais (flechas, ps-de-galinha, nmeros,letras, etc..), que so grafados sobre a linha do relacionamento, nas duasextremidades do mesmo.
A notao para a cardinalidade o item que apresenta maior variaoentre os autores que escrevem sobre o MER. Neste texto usaremos umabarra para notar a cardinalidade 1 e o p-de-galinha para acardinalidade N.
Exemplo:
CONTA_CORRENTECLIENTE MOVIMENT
CARDINALIDAD CARDINALIDADE N
Considerando a cardinalidade, o relacionamento pode ser de trs tipos:
1) 1:1 - L-se UM para UM
Exemplo:
MOVIMENTA
CLIENTE CONTA_CORRENTE
Indica que UMA ocorrncia da entidade CLIENTE relaciona-se com UMAocorrncia da entidade CONTA-CORRENTE e vice-versa,
60
-
7/28/2019 Apostila de Banco de Dados Em PDF
64/94
2) 1:N - L-se UM para MUITOS
Exemplo:
Indica que UMA ocorrncia da entidade CLIENTE relaciona-se commuitas ocorrncias da entidade CONTA-CORRENTE e vice-versa,
3) M:N - L-se MUITOS para MUITOS
exemplo:
CONTA_CORRENTECLIENTE MOVIMENT
CONTA_CORRENTEMOVIMENTA
CLIENTE
Indica que:
- UMA ocorrncia da entidade CLIENTE relaciona-se com MUITAS ocorrncias daentidade CONTA- CORRENTE e;
- UMA ocorrncia da entidade CONTA-CORRENTE relaciona-se com MUITASocorrncias da entidade CLIENTE. (cada das contas conjuntas)
61
-
7/28/2019 Apostila de Banco de Dados Em PDF
65/94
7. NOME DO RELACIONAMENTO
o componente do modelo E-R que identifica o relacionamento,
justificando e esclarecendo a importncia de sua existncia para ocontexto estudado.
Exemplo:
CONTA_CORRENTEMOVIMENTA
NOME DO RELACIONAMENTO
CLIENTE
Nos casos onde o relacionamento bvio torna-se dispensvel aatribuio de nome ao mesmo.
O nome do relacionamento recomendvel nas seguintes situaes:
- Quando existirem diversas possibilidades bvias de relacionamentos
entre o par de entidades, sendo que, deseja-se representar apenas em;- Por questo documentacional, para dar maior clareza ao modelo;
- Caso ocorra mais do que um relacionamento entre o par de entidades(relacionamento duplo, triplo, etc.);
- No caso de AUTO-RELACIONAMENTOS (entidade relacionando-secom ela mesma- recursividade)
- Quando da utilizao do MER para representar modelos a seremimplementados em SGBD REDE
- Quando da utilizao de CASE para desenho do MER ( caso aferramenta obrigue)
62
-
7/28/2019 Apostila de Banco de Dados Em PDF
66/94
8. PAPEL
O papel das entidades no relacionamento fica implcito no nome e na
cardinalidade do mesmo e pode ser inferido a partir dessescomponentes. Porm, especificar o PAPEL que cada entidadedesempenha uma alternativa, que pode substituir, com maior preciso,a colocao do nome no relacionamento, atribuindo ao MER maiorcapacidade semntica.
EXEMPLO:
PROJ ETO
LIDER
L IDERADO
GERENTE
OBS: A maioria das ferramentas CASE no utilizam o PAPEL comoalternativa para a construo de MER.
63
-
7/28/2019 Apostila de Banco de Dados Em PDF
67/94
9. SENTENAS (REGRAS DO NEGCIO)
Duas sentenas so derivadas da leitura do relacionamento. Elas
refletem as regras do negcio e ajudam na validao do modelo junto aousurio.
Exemplo:
TI TULARCLIENTE CONTA_CORRENTE
_ Sentena-1:
UM CLIENTE titular deVRIASCONTAS-CORRENTES.
CARDINALIDADE
_ Sentena-2:
UMA CONTA-CORRENTE tem como titular UM CLIENTE.
CARDINALIDADE 1
OBS: As sentenas sempre comeam com UM / UMA e a cardinalidadeconsiderada a do lado oposto ao da primeira entidade citada nasentena.
64
-
7/28/2019 Apostila de Banco de Dados Em PDF
68/94
10. INTEGRIDADE REFERENCIAL (IR)
A Integridade Referencial notada no MER atravs de sinalizao
colocada no relacionamento junto marca de carnalidade, que indica seo relacionamento OBRIGATRIO ou OPCIONAL (TOTAL / PARCIAL).Os sinais utilizados para notar a IR, variam muito, conforme os autores ouferramenta CASE adotados e se confundem com a marca decardinalidade.
Veja no quadro a seguir as notaes mais utilizadas para IR:
OPCIONAL OBRIGATRIO AUTOR(bolinha aberta) (bolinha fechada) JAMES MARTIN
sem marcao | ( uma barra vertical) DIVERSOS| (uma barra vertical) || (duas barras verticais) DIVERSOS
linha do relacionamento tracejada linha cheia no relacionamento BACHMAN / GANE
Exemplo:
MOVIMENT
CLIENTE CONTA_CORRENTE
65
-
7/28/2019 Apostila de Banco de Dados Em PDF
69/94
11. REGRAS GERAIS
- No podem existir duas entidades iguais no mesmo modelo, ou seja,
que representem o mesmo objeto do mundo real e possuam os mesmosatributos; mesmo que elas possuam nomes diferentes.
- Cada entidade deve possuir pelo menos dois atributos (colunas) e duasocorrncias (linhas).
_ No Modelo Operacional os relacionamentos devem envolver, nomximo, duas entidades.
- Os relacionamentos Mltiplos do Modelo Conceitual devem sertransformados em entidades em sua passagem para o modelooperacional.
- Pode existir mais do que um relacionamento entre o mesmo par deentidades (relacionamento duplo, triplo, etc..)
- Para cada relacionamento com cardinalidade N:N do ModeloConceitual, deve ser criada, no Modelo Operacional, uma ENTIDADEASSOCIATIVA. Essa entidade ser ligada s demais por dois
relacionamentos 1:N, sendo que as cardinalidades N de cadarelacionamento, sero marcadas ao seu lado.
- Deve-se avaliar os relacionamentos com cardinalidade 1:1, verificandose o par de entidades envolvidas pode ser representado por umaentidade nica.
- Cada entidade do MER deve participar de pelo menos umrelacionamento. Caso isso no ocorra provvel que a entidade isolada
no faa parte do contexto modelado.
66
-
7/28/2019 Apostila de Banco de Dados Em PDF
70/94
12. VANTAGENS E DESVANTAGENS DO MER
Vantagens:
- Simplicidade da notao e terminologia
- Rpida absoro dos conceitos por parte dos tcnicos
- Facilidade de compreenso por parte dos usurios
- Grande possibilidade de validao do modelo por parte do usurio
- Capacidade de representar diversos nveis de abstrao
- Compreenso mais objetiva, mais formal e portanto menos ambgua dado problema.
Desvantagens do MER:
- Diversidade da notao e terminologia
- Nenhuma nfase aos processos que manipulam as informaes.
67
-
7/28/2019 Apostila de Banco de Dados Em PDF
71/94
CAPITULO X
TIPOS ESPECIAIS DE RELACIONAMENTO
Os casos apresentados a seguir representam situaes especiais que ocorremesporadicamente. Geralmente os relacionamentos do MER so do tipo 1:N entre umpar de entidades.
1. AUTO-RELACIONAMENTO
O auto-relacionamento representa a relao entre linhas de uma mesma
tabela. tambm conhecido como RECURSIVIDADE.Exemplos:
COMPEPEAFUNCIONRIO GERENCIA
UM funcionrio gerencia N funcionrios UMA pea compe N peasUM funcionrio gerenciado por 1 funcionrio UMA pea componente de N peas
68
-
7/28/2019 Apostila de Banco de Dados Em PDF
72/94
2. MAIS DE UM RELACIONAMENTO (duplo, tr iplo, etc.)
Ocasionalmente pode ser necessrio representar mais de um
relacionamento entre o mesmo par de entidades. Esses relacionamentossero vlidos desde que denotem situaes distintas e independentes.Neste caso, existiro no Modelo Operacional, tantas chaves estrangeirasquantos forem os relacionamentos.
CHEFIA
LOTASETOR FUNCIONRIO
69
-
7/28/2019 Apostila de Banco de Dados Em PDF
73/94
3. RELACIONAMENTO MLTIPLO
O Relacionamento Mltiplo, previsto por PETER CHEN, aquele querelaciona mais do que duas entidades. Este tipo de relacionamento
somente ocorre em Modelos Conceituais e geralmente denota eventos.Para implementa-lo nos SGBD-R necessrio criar uma entidade, emprocedimento anlogo ao que adotado nos casos de relacionamentoN:N.
Exemplo:
CLIENTE
VENDEVENDEDOR PRODUTO
70
-
7/28/2019 Apostila de Banco de Dados Em PDF
74/94
CAPITULO XI
EXTENSES AO MER
EXTENSES AO MER so conceitos e simbologias criados por diversosautores que escrevem sobre o Modelo de Entidades, para representarsituaes especficas, no cobertas pela proposta original de PETERCHEN. As extenses possibilitam ao modelador tornar o modelo maisgenrico (conceitual) ou mais especfico (operacional), conforme anecessidade. Neste captulo destacamos algumas extenses as quais
julgamos importantes para a abordagem metodolgica que adotamosneste texto.
As extenses que abordaremos so as seguintes:
_ Generalizao (Setzer e outros) ou Supertipo (Gane)
_ Espe