apostila de banco de dados em pdf

Upload: leonardo-carvalho

Post on 03-Apr-2018

222 views

Category:

Documents


0 download

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