Livro de Banco de Dados I

Embed Size (px)

Citation preview

  • 7/24/2019 Livro de Banco de Dados I

    1/127

    Banco de Dados I

  • 7/24/2019 Livro de Banco de Dados I

    2/127

    2Banco de Dados I

    Sumrio

    Introduo a Banco de Dados ....................................................... 4

    Entendendo os Modelos de Base de Dados ...................................... 16Modelagem Entidade Relacionamento ........................................... 28

    Exemplos de Implementao do Modelo Conceitual ........................... 42

    Modelagem Lgica .................................................................. 54

    Modelagem Fsica, Normalizao de Dados e lgebra Relacional ............ 68

    Introduo a SQL .................................................................... 80

    Operaes CRUD .................................................................... 92

    Critrios de Seleo de Dados ................................................... 103Consultas Envolvendo mais de uma Tabela .................................... 113

  • 7/24/2019 Livro de Banco de Dados I

    3/127

    3Banco de Dados I

    Apresentao

    Prezados(a) alunos(a)

    Sejam vem vindos(as) a disciplina de Banco de Dados I . Nesta disciplinavocs entendero a importncia da utilizao de banco de dados, alm dosconceitos relacionados a este.

    Tambm sero abordados modelos os quais so utilizados pararepresentar os dados, tendo como foco o modelo Relacional, onde seroestudados conceitos sobre entidades, relacionamentos, atributos e chavesprimrias e estrangeiras.

    Durante a disciplina, voc estar se capacitando a analisar e criar umbanco de dados, passando por todas as etapas do processo de banco de dados.

    Tambm ter conhecimento necessrio para criar e manipular tabelasatravs de instrues SQL de insero, alterao, remoo e seleo dedados. Tendo em vista que a seleo de dados possui uma srie eespecificaes, este material foi elaborado com exemplos prticos dautilizao de critrios existentes do comando de seleo como, junes,produto cartesiano e subconsultas.

    Assim, ao concluir a disciplina voc ter conhecimento necessrio paracriar um projeto de banco de dados e manipular as informaes nelearmazenado, podendo aplicar o conhecimento adquirido em diversossegmentos da rea de computao, como programao, anlise e gerente deinfraestrutura.

    Prof. Christiano Cadon

  • 7/24/2019 Livro de Banco de Dados I

    4/127

    4Banco de Dados I

    Introduo a banco de Dados

    Christiano Cadon1

    Introduo

    Este captulo tem por objetivo contextualizar o aluno quanto importncia de banco de dados e os principais conceitos relacionados a estetema.

    Sero destacadas as vantagens e as desvantagens do uso de sistemas debanco de dados, alem de entender o principal papel do administrador debanco de dados.

    Importncia da Informao no mundo moderno

    O momento em que vivemos na histria definitivamente marcado pelaera digital. Tudo ou quase tudo que possumos, possui alguma funcionalidadedigital. E o que mais impressiona, que estamos to atrelados a estatecnologia, que no conseguimos mais nos separar desta relao, criando umadependncia de tecnologia. H muito que se debater, se isto bom ou ruimpara humanidade, contudo, uma coisa certa, no vivemos mais sem

    comunicao, controles e funcionalidades automatizadas. Esta insero detecnologia trouxe uma srie de benefcios vida moderna. Muitos controles,principalmente controles operacionais, proporcionaram s organizaes seucrescimento e principalmente a possibilidade de conhecer melhor seunegcio, produtos e seus clientes.

    Estamos na era da informao, onde capital social fsico de umaempresa no to valioso quanto qualidade das informaes geradas nossistemas de informao.

    O Google e Facebook so bons exemplos de empresas muito valiosas, ese analisadas possuem como maior ativo, os dados nelas armazenadas. Vocj avaliou o quanto e quais informaes somente estas duas empresaspossuem relacionadas populao mundial? Somente o Brasil,possuano anode 2013 mais de 47 milhes de usurios do Facebook, e o Gmail (produto daGoogle) possua em 2012 mais de 286 milhes de usurios no mundo todo.Estas empresas sabem exatamente, onde cada usurio mora, o que maisgostam que tipo de informao recebe, quais so os amigos que se

    1Especialista em Desenvolvimento de Software para Web. Professor coordenador deatividades dos cursos superiores de tecnologia em Redes de Computadores e Anlise eDesenvolvimento de Sistemas

  • 7/24/2019 Livro de Banco de Dados I

    5/127

    5Banco de Dados I

    relacionam,o local onde esteve, entre outras informaes que cada usurioautorizaestas empresas a coletar dados no momento em que se cadastrampara usufruir das funcionalidades oferecidas por estas. Neste momento setorna simples imaginar o quanto destas informaes estrategicamenteimportante para gestores de empresas. Sendo assim, justifica-se o valor quecada uma possui no mercado de negcios.

    Agregado a isto, o avano do uso de sistemas inteligentes (Sistemas derecomendao, sistemas de apoio a deciso, minerao de dados, OLAP, etc.)como mecanismo de diferencial competitivo de uma empresa, potencializaainda mais a necessidade de obteno de um nmero cada vez maior de dadosarmazenados nas bases de dados.

    Avaliando este contexto, possvel entender o porqu as empresas quemais faturam do mundo possuem como fator estratgico ou principal insumode seus resultados o uso de sua base de dados. Bancos, empresas de energia,empresas de Telecom, empresas de TI, entre outras se destacam das demais,e se observar, ambas necessitam de seus dados armazenados para sobreviver.

    O governo brasileiro, aps muitos anos, se deu conta da necessidade deinformatizar suas autarquias de forma a possuir maiores controles e porconsequncia melhorar o atendimento e principalmente a arrecadao.

    Se avaliar os contextos at aqui apresentados, possvel concluir quebanco de dados est ligado diretamente com todas as aes do mundomoderno. Desta forma, fica clara a dependncia existente da tecnologia emtodos os segmentos. No possvel imaginar o mundo em que vivemos sem osprocessos automatizados sejam eles aplicados a qualquer tipo de segmento.Vivemos cercados de informao e ficamos cada dia mais sedentos dadisponibilidade desta.

    Agora imagine um colapso em um sistema, cujas informaes soapresentadas de forma errada e ou simplesmente no so apresentas, devidoa problemas no armazenamento, o quanto impactante seria esta experincia,

    tanto para o usurio final, quanto para a empresa e ou governo que odetentor destes dados. Por exemplo, imagine, se por algum motivo, todos ose-mails da conta do Gmail e ou todas as contas do Facebook simplesmentesumissem. O impacto seria significativo. Agora imagine algo muito pior como,por exemplo,erros nos registros de documentos de veculos e ou remoo detodas as informaes cadastrais dos proprietrios de veculos? Qual seria otamanho do impacto? Realmente, no h como descrever o colapso causadopor algum evento desta magnitude. Falhas deste tipo, geralmente ocorrem norepositrio de dados.

    Tendo em vista todos os fatos apresentados, inevitvel entendercomo, e porque, to necessrio o estudo dos repositrios de armazenamento

  • 7/24/2019 Livro de Banco de Dados I

    6/127

    6Banco de Dados I

    destes sistemas. Entender os conceitos e melhores prticas de modelagem,armazenamento e manipulao de dados so competncias indispensveis deum profissional da rea de computao.

    Banco de dados

    Banco de dados uma coleo de dados inter-relacionados,representando informaes sobre um domnio especfico. Tendo comopremissa esta definio, possvel concluir que no momento que existir umgrupo de informaes que caracterizam (representam) algo, como porexemplo, uma planilha eletrnica contendo informaes estruturadas deprodutos estamos tratando de um banco de dados.

    Em sua forma mais primitiva, o exemplo apresentado pode sim serconsiderado como um banco de dados. possvel ainda agregar que, os dadoscontidos no banco de dados,devem ser armazenados de forma independentedos programas que faam uso destes, possibilitando que estas informaespossam ser acessadas por mltiplas solues computacionais. No caso de umaplanilha, possvel que suas informaes sejam acessadas por aplicativosdiferentes do Excel por exemplo, como uma soluo desenvolvida emlinguagem PHP, Java ou C#.

    Sendo assim, podemos concluir que qualquer repositrio de informao,que esteja organizado representando algo, e suas informaes possam seracessadas caracteriza a existncia de um banco de dados.

    Esta definio pode ser um tanto quanto genrica, pois um textoescrito em um jornal ou em um site, por exemplo, possui um conjunto depalavras que esto organizadas, caracterizando um banco de dados. Contudoo termo banco de dados mais restrito e tem as seguintes particularidades(Elmasri, 2011):

    Um banco de dados representa algum aspecto domundo real, s vezes chamado de minimundo ouuniverso de discurso.

    Um banco de dados uma coleo logicamentecoerente de dados com significado inerente. Umavariedade aleatria de dados no pode sercorretamente chamada de banco de dados

    Um banco de dados projetado, construdo e populadocom dados para uma finalidade especfica. Ele possui

    um grupo definido de usurios e algumas aplicaes

  • 7/24/2019 Livro de Banco de Dados I

    7/127

    7Banco de Dados I

    previamente concebidas nas quais esses usurios estointeressados.

    Desta forma, somente ser chamado de banco de dados, um conjuntode informaes que possuir relao com algo que represente a realidade, eque possa sofrer alguma interao, como por exemplo, ser utilizado comorepositrio de informaes de um sistema comercial, ou contedo dinmicode um site.

    Sistema de Gerenciamento de Bancos de Dados (SGBD)

    muito comum confundir os conceitos de banco de dados e Sistema deGerenciamento ou Gerenciador de Banco de Dados, porm so coisas muitodistintas. O SGBD um software ou conjunto de softwares (no o repositriode dados) com recursos especficos para facilitar a manipulao dasinformaes dos bancos de dados e o desenvolvimento de programasaplicativos.

    " um sistema cujo objetivo principal gerenciar o acesso e acorreta manuteno dos dados armazenados em um banco de dados."

    Por exemplo, o ORACLE, Mysql e SQLServer, so sistemas gerenciadores

    de banco de dados, e possuem um conjunto de bancos de dados que sogerenciados por estes.

    O conceito de SGBD determina que os dados do banco de dados nuncasero acessados por uma aplicao final e sim sempre sero acessados atravsdo seu SGBD.

    A figura 1 apresenta um esquema que ilustra a forma tpica de acessorealizada por aplicativos desenvolvidos por linguagens de programao atuais.

  • 7/24/2019 Livro de Banco de Dados I

    8/127

    8Banco de Dados I

    Figura 1 Esquema tpico de conexo a dados utilizando SGBD

    Perceba no exemplo apresentado na figura 1 que as linguagens deprogramao (Java, .NET e PHP) no realizam acesso direto ao banco dedados (Banco X, Y e Z), mas sim ao SGBD que por sua vez, realiza operaescom os dados de cada banco.

    Sistema Bancos de Dados

    O sistema de banco de dados no pode ser confundido com SGBD. Umsistema algo muito maior, que possui um SGBD como parte do sistema. Podeser definido como um sistema de manuteno de registros porcomputador. Ele dividido em quatro componentes principais:

    Dados: Representam a informao armazenada em cada bancode dados. Estes dados, dependendo do porte da empresa, podemser armazenados fisicamente de forma centralizada (emaplicaes de dispositivos mveis ou aplicaes comerciais de

    pequeno porte) ou distribudas (como o caso de empresas comoGoogle e a Receita Federal). Para quem acessa as informaesno percebe qualquer diviso de informaes. Estes dadostambm podem ser compartilhados permitindo, por exemplo,que de forma simultnea seja possvel visualizar dadoscadastrados de um cliente em um terminal e em outro terminal,o cadastro de outro cliente no mesmo repositrio de informao(banco de dados);

    Hardware: Um SBGD necessita de recurso de hardware parasuportar suas funcionalidades. Geralmente os recursos de

  • 7/24/2019 Livro de Banco de Dados I

    9/127

    9Banco de Dados I

    hardware esto relacionados capacidade de disco, memriaprincipal, processador e dispositivos de entrada e sada;

    Software: So os conjuntos de arquivos existentes que realizamtodo o controle sobre os dados armazenados. neste conjunto

    de aplicaes que o SGBD est inserido no sistema. O SGBD ,de longe, o componente mais importante de todo o sistema, masno o nico. Existem outros componentes como ferramentasde modelagem, ferramentas de monitoramento entre outras, quefazem parte do conjunto de software do sistema de banco dedados;

    Usurios: so personagens que interagem diretamente com osdados armazenados e ou com SGBD. Estes podem ser divididos

    em trs grupos, sendo o primeiro o de programadores que soresponsveis por elaborar aplicaes utilizando o repositrio dedados. O segundo formado por usurios finais, que em geral soos clientes dos aplicativos desenvolvidos, e por fim, osadministradores de bancode dados (DBA), com responsabilidadedireta sobre os dados e o sistema de banco de dados.

    Existe uma srie de objetivos de um sistema de banco de dados,contudo dois deles resumem todo o conjunto. O primeiro o de isolar osusurios dos detalhes mais internos do banco de dados (abstrao de dados).

    Para os usurios do banco sejam eles programadores, usurios finais e ouadministradores, no necessrio saber qual a rotina que realiza a gravaodos dados no disco fsico, ou como que ele recupera do banco de dados umainformao armazena. O que importa, quando encaminhado uma solicitaode armazenamento de um cadastro de cliente, por exemplo, o sistema realizeo procedimento, sem que ocorra inferncia do usurio.

    J o segundo o de prover independncia de dados s aplicaes(estrutura fsica de armazenamento e estratgia de acesso). O sistema devepossibilitar que os dados possam ser armazenados de forma distribuda caso

    necessrio, alm de proporcionarmecanismos de segurana no acesso a estesdados, como o uso de permisso de acesso a um bancoou a um conjunto detabelas.

    Vantagens de um sistema de bancode dados

    Alm claro dos objetivos que um sistema de banco de dadosproporciona existe uma srie de vantagens em sua utilizao:

    Rapidez na manipulao e no acesso informao: como em

    geral os sistemas de banco de dados possuem uma linguagem demanipulao de registros universal, no se torna necessrio criar

  • 7/24/2019 Livro de Banco de Dados I

    10/127

    10Banco de Dados I

    rotinas que possibilitem a manipulao de registros, alm destespossurem rotinas de otimizao de cdigo internas o quemelhora de forma significativa a busca por informaes;

    Reduo do esforo humano (desenvolvimento e utilizao):

    Como para o usurio no interessa a rotina que o sistema debanco de dados utiliza para manipular as informaes, no necessrio perder tempo construindo rotinas automatizadas, poisestas j existem. Desta forma o desenvolvedor apenas deveexecutar comandos de manipulao de dados, pois todos oscontroles j esto previamente codificados no sistema de bancode dados;

    Disponibilizao da informao no tempo necessrio: como j

    relatado no necessrio construir rotinas de acesso, bastautilizar as j existentes possibilitando que em pouco tempo sejapossvel elaborar um relatrio apenas com comandos de busca adados, por exemplo. A grande parte dos sistemas de banco dedados est configurada para apresentar o retorno de informaesem tempo real.

    Controle integrado de informaes distribudas fisicamente: Osistema de banco de dados possui rotinas de integrao em basesdistribudas fisicamente, possibilitando ao usurio uma nica

    fonte de informao. A distribuio realizada de formaautomtica. Imagine que, o Google, por exemplo, no possuaapenas um servidor de dados, e sim muitos e suas informaesesto sim distribudas fisicamente, inclusive entre pasesdiferentes, entretanto para quem realiza uma pesquisa no site, ainformao aparece para o usurio de forma nica.

    Reduo de redundncia de informaes: redundncia fazreferencia a duplicidade de informaes armazenadas. Podeocorrer que existam aplicaes distintas onde cada uma cadastrea mesma informao de forma separada. Imagineem uma escolaum sistema que cadastre alunos de uma chamada, e outrosistema que cadastre as parcelas de pagamento dos alunos.Ambos compartilham dados de alunos. Com o uso de sistemas debanco de dados possvel elaborar a estrutura de forma queambos os sistemas cadastrem em apenas um local os alunos,reduzindo a redundncia de informaes.

    Reduo de inconsistncia de informaes: A inconsistncia pode

    ser derivada da redundncia de informao, pois sem o controlede redundncia, conforme o exemplo citado, os dois sistemas

  • 7/24/2019 Livro de Banco de Dados I

    11/127

    11Banco de Dados I

    cadastrariam informaes distintas sobre alunos. Caso sejaalterada uma das informaes de um aluno em apenas umsistema como sua data de nascimento, o outro sistema no teriaa informao atualizada. Neste caso, dizemos que o banco estinconsistente, pois no sabemos qual das datas de nascimento dealuno a correta. Existem outros tipos de inconsistncia ainconsistncia de dados, chaves e relaes que sero abordadasnos prximos captulos de forma mais detalhada. Mas em abas asinconsistncias relacionadas, o sistema de bancode dados possuimecanismos de controle automatizados;

    Compartilhamento de dados: Um dos grandes fatores dossistemas de banco de dados terem evoludo, est associado aofato de compartilhar um nico repositrio de dados com vrias

    aplicaes distintas;

    Aplicao automtica de restries de segurana: O sistema debanco de dados possibilita uma srie de mecanismos desegurana ao acesso e manuteno dos dados armazenados. Otipo de restrio mais comum deserencontrado em sistema debanco de dados o uso obrigatrio de usurios e senhas deacesso base. Porm possvel impor, dependendo o bancodedados, restries de acesso a tabelas e campos especficos. Istodepender de cada sistema de banco de dados.

    Reduo de problemas de integridade: A integridade asseguraque os dados armazenados esto corretos. Pode parecer estranhoimaginar que possvel armazenar informaes incorretas,contudo mais comum do que se imagina. Por exemplo, existeuma srie de modelagens de banco que permitem que sejaarmazenado um valor de salrio ou idade negativa. Caso sejaarmazenada uma informao em um destes campos negativa,podemos concluir que os dados esto incorretos ou no ntegros.

    Um sistema de banco de dados possui regras para imporintegridade em suas informaes armazenadas.

    Desvantagens de um Sistema de banco de dados

    A escolha e implantao de um sistema de banco de dados proporcionauma srie de vantagens j apresentas. Porm existe algumas desvantagensinerentes implantao do sistema. So elas:

    Sem dispositivos de controle adequados, a segurana pode ficarcomprometida, como por exemplo, no caso de acesso noautorizado a dados. Nunca esquea que na base de dados, esto

  • 7/24/2019 Livro de Banco de Dados I

    12/127

    12Banco de Dados I

    as informaes mais importantes do negcio de uma empresa. indispensvel mant-las em segurana;

    A integridade das informaes pode ser comprometida se nohouver mecanismos de controle quando ocorrer manipulaes de

    dados de forma concorrente. Imagine um sistema onde duaspessoas acessam e alteram ao mesmo tempo dados de umamesma informao como o produto Abacaxi. Dependendo daforma como for implementado o processo concorrente, um dosusurios sobrescrever a informao que o outro acabou dealterar, tornando os dados no ntegros;

    A operao do sistema de banco de dados e o desenvolvimentode aplicaes precisam ser feitos com muita preciso para evitar

    que informaes no correspondam realidade; A administrao do sistema de banco de dados pode se tornar

    muito complexa em ambientes distribudos, com grande volumede informaes manipuladas por uma grande quantidade deusurios. Se no for planejada e documentada a estrutura decontrole do sistema de banco de dados, a administrao tende ase tornar complexa mesmo em empresas de mdio porte.

    Administrador de Banco de dados (DBA)

    O Administrador de Banco de dados DBA (Database Administrator)possui um papel importante no sistema de banco de dados. ele que toma asdecises estratgicas e de normas e geralmente quem as implementa noSGBD. Segue algumas das atribuies de um DBA dentro do sistema de bancode dados:

    Definio e atualizao do esquema dos bancos de dados(definem quais e como as informaes sero mapeadas para obanco);

    Definio da estrutura de armazenamento e da estratgia (oumtodo) de acesso;

    Concesso de autorizao para acesso a dados;

    Definio de controles de integridade;

    Definio de estratgias de cpia de segurana e recuperao;

    Monitorao de desempenho;

    Execuo de rotinas de desempenho;

  • 7/24/2019 Livro de Banco de Dados I

    13/127

    13Banco de Dados I

    Atualizao da organizao fsica.

    Linguagem de definio de dados (DDL)

    A linguagem de definio de dados DDL (data-definition language)

    utilizada para definir a estrutura (esquema) de um banco de dados,principalmente nos nveis conceitual e de vises de usurio. A DDL define, porexemplo, quais sero os dados que so armazenados (tipo de dado: nmero,texto, data) e os ndices de pesquisa. O conjunto de parmetros da DDL armazenado no que chamados de dicionrio de dados. O dicionrio de dadospossui uma estrutura contendo todas as definies que o banco de dadospossui.

    Linguagem de manipulao de dados (DML)

    A linguagem de manipulao de dados DML (Data ManipulationLanguage), permite aos usurios e aplicaes, acessar ou manipular asinformaes contidas num banco de dados. Manipular dados envolve incluir,alterar, remover e consultar dados no banco de dados.

    Em geral os bancos de dados relacionais (foco principal destadisciplina), trabalham com a linguagem SQL (Structured Query Language), ouLinguagem de Consulta Estruturada. O Sistema de banco dados interpretacomandos emitidos em SQL e realiza o processamento da operao.

    importante salientar, que o SQL no a nica linguagem existentecomo DDL de um sistema de banco de dados. Geralmente cada SGBD, possuicomandos prprios que podem ser utilizados para operacionalizar rotinas comos dados armazenados.

    Recapitulando

    Como foi percebido neste captulo, a informao armazenada nosbancos de dados indispensvel em nosso contexto de mundo moderno. Tantousurios finais como as empresas, esto dependentes das informaesarmazenadas nestes repositrios. Da a importncia do estudo em banco dedados.

    Percebemos que banco de dados em sua essncia, nada mais , do queum repositrio de dados organizados que representam algo de um domnioespecfico. J os SGBDs compem uma estrutura de aplicaes quepossibilitam o gerenciamento destes bancos de dados.

    O sistema de banco de dados ento formado no apenas pelos dados eaplicativos armazenados e sim, por um conjunto composto de dados,hardware, software e usurios deste sistema. Entre os usurios de banco de

  • 7/24/2019 Livro de Banco de Dados I

    14/127

    14Banco de Dados I

    dados, destaca-se o DBA que responsvelpelacorreta definio, criao emanuteno do sistema de banco de dados.

    Por fim, em um sistema de banco de dados existem duas linguagensprincipais: a DDL que define o banco de dados e a DML que possibilita a

    interao de aplicaes com os dados armazenados.

    Atividades

    1) Assinalar (V) para as assertivas Verdadeiras e (F) para as Falsas

    V F Assertivaa) ( ) ( ) Um exemplo de banco de dados o Mysqlb) ( ) ( ) Arquivos texto estruturados so exemplos de banco de dadosc) ( ) ( ) Uma planilha do Excel com dados de clientes pode ser

    considerada como banco de dados

    2) Tendo como base o contedo apresentado no captulo 1, marque somente aalternativa que est errada

    a) ( ) Sistema gerenciador de banco de dados possui um conjunto deaplicaes para gerenciamento do banco de dados

    b) ( ) DDL, a linguagem de manipulao de registrosc) ( ) O sistema de banco de dados possibilita uma srie de mecanismos de

    segurana ao acesso e manuteno dos dados armazenados

    3)No uma vantagem dos sistemas de banco de dados

    a) ( ) Reduo a inconsistncia de informaesb) ( ) Compartilhar o mesmo banco de dados com mais de uma aplicaoc) ( ) Administrao do banco de dados se torna simples em ambientes de

    distribudos

    4)A partir dos estudos desenvolvidos nesse captulo, marque (X) somente nasassertivas verdadeiras(mltipla escolha).

    a) ( ) Um DBA responsvel por executar rotinas de gerenciamento nosistema de banco de dados

    b) ( ) O dicionrio de dados possui a concesso de autorizao para acessoa dados

    c) ( ) Um sistema de banco de dados pode ser dividido em 4 componentesprincipais: Dados; Usurios; Hardware e Software

  • 7/24/2019 Livro de Banco de Dados I

    15/127

    15Banco de Dados I

    5) uma desvantagem do uso de sistemas de banco de dados.

    a) ( ) Sem dispositivos de controle adequados, a segurana pode ficarcomprometida

    b) ( ) Monitorao de desempenho

    c) ( ) A rapidezna manipulao e no acesso informao

    Gabarito:

    Questo 1 [ a)F, b) V, c) V]

    Questo 2 [ b]

    Questo 3 [ c]

    Questo 4 [ marcaralternativasA e C]

    Questo 5 [ A]

  • 7/24/2019 Livro de Banco de Dados I

    16/127

    16Banco de Dados I

    Entendendo os Modelos de Base de Dados

    Christiano Cadon

    Introduo

    Este captulo tem por objetivo apresentar os principais modelos demodelagem de banco de dados e trazer caractersticas mais especficas domodelo de dados relacional que o foco de nosso estudo. Assim, o leitor teruma viso das principais modelagens e um aprofundamento na modelagemrelacional.

    Modelo de Base de Dados

    Um modelo de base de dados a forma na qual possvel estruturar osdados. o instrumento que permite uma representao do mundo real apartir de informaes. No decorrer da histria, foram definidos vrios modelosde base de dados. A deciso de qual modelo o ideal, depende do objetivo,da complexidade e do volume de dados esperados para um domnio desejado.Os modelos de dados diferenciam-se principalmente pela forma com que osdados so representados. Geralmente possuem uma representao simples,

    normalmente grfica, sendo que os mais difundidos so o modelo hierrquico,modelo em redes, modelo relacional e modelo orientado a objetos.

    O modelo hierrquico foi desenvolvido na dcada de 1960, com oobjetivo de gerenciar grandes quantidades de dados. Foi a primeira grandeevoluo em relao ao formato de armazenamento. No modelo hierrquico,as informaes so estruturadas no formato de rvores hierrquicas, ondecada um dos ns (registros) contm uma coleo de atributos e cada atributo,contm apenas uma informao (ELSMARI e NAVATHE, 2011). Neste modelocada n pai pode possuir vrios ns filhos e um n filho somente pode possuir

    um nico n pai. Em banco de dados chamamos isto de uma relao 1:N (umpara muitos).

    A Figura 2 demonstra um exemplo de modelagem hierrquica. Nelapercebemos que cada derivao de um n pai chamada de nvel ousegmento. No exemplo o Componente C que est no nvel 1, pai nos nsMontagem B e Montagem C, que esto no nvel 2. Por sua vez, o nComponente C, filho do n Montagem Final.

  • 7/24/2019 Livro de Banco de Dados I

    17/127

    17Banco de Dados I

    Figura 2 Modelo de dados Hierrquico (modificado de Peter Rob e Carlos Coronel,2011)

    O acesso aos dados armazenados no modelo hierrquico feita atravsde ponteiros, ou seja, ela iniciada atravs do topo da rvore (n raiz) e daesquerda para a direita, at alcanar o n que contm a informaopretendida.

    O modelo hierrquico se tornou predominante na dcada de 1970, noentanto este modelo possua suas limitaes como a complexidade nasconsultas, a limitao das ligaes entre os ns (um n filho pode ter apenas

    um n pai) e possibilidade de se trabalhar apenas com dados primitivos. Estaslimitaes desencadearam anlises de alternativas para soluo dosproblemas por parte de profissionais de banco de dados, o que resultou emmodelos alternativos, sendo o mais promissor o Modelo de Rede.

    O modelo de rede surgiu como uma alternativa aos problemasapontados pelo modelo hierrquico. Sua principal mudana foi a eliminaodo conceito de hierarquia. Com isso, o modelo de redes permitiu que um n,possusse vrias associaes (N:N muitos para muitos) caso necessrio. Outramodificao a implementao do conceito de conjunto. Um conjunto

    representa um relacionamento entre o seu proprietrio e um membro dodiagrama.

    O exemplo apresentado por Peter Rob e Carlos Coronel (20011),representado na figura 3, ilustra uma representao de uma organizao devendas comum. Neste modelo, CLIENTE, REPCOMERCIAL, FATURA, FAT_LINHA,PRODUTO e PAGAMENTO representam os tipos de registro. Neste exemplo aFATURA de propriedade tanto do REPCOMERCIAL, como do CLIENTE. Osconjuntos so identificados no prprio diagrama, como o caso do conjuntode vendas, formado pelos tipos CLIENTE e FATURA.

  • 7/24/2019 Livro de Banco de Dados I

    18/127

    18Banco de Dados I

    Figura 3 Modelo de Rede (modificado de Peter Rob e Carlos Coronel, 2011)

    Ao contrrio do modelo hierrquico, em que qualquer acesso a dadospassa pela raiz, no modelo em redes o acesso aos dados pode ser realizadoatravs de qualquer n da rede. De forma prtica, com este modelo possvelacessar os dados de pagamento, sem que seja necessrio acessar os dados decliente, o que no modelo hierrquico era impossvel (ELSMARI e NAVATHE,2011).

    O modelo relacional surgiu como alternativa do modelo hierrquico ede redes. Utilizada uma srie de conceitos destes, porm diferencia-se por

    possuir um aumento de independncia de dados, alm de prover um conjuntode funes apoiadas em lgebra relacional tanto para o armazenamentoquanto para a recuperao de dados. O modelo relacional foi concebido pelomatemtico britnico Edgar Frank Codd enquanto pesquisador da IBM nos anos70, como uma nova maneira de representao de dados atravs de uma visorelacional dos dados, o que permite a descrio dos mesmos de uma formanatural, sem a necessidade de estruturas adicionais, alm de prover umamaior independncia dos dados em relao aos programas. Sua estruturasimples de ser interpretada, e a forma de recuperao de dados, agradoutanto que desencadeou uma adaptao deste modelo para o modelo entidaderelacionamento, o qual praticamente domina a grande parte das aplicaesque atualmente conhecemos.

    Sua estrutura formada por tabelas, e relaes entre colunas (campos)destas tabelas. Cada linha com contedo chamada de registro ou tupla erepresenta de forma nica uma informao. Da mesma forma que o modelo derede, o acesso s informaes no modelo relacional pode ser realizado porqualquer tabela, diferentemente do modelo hierrquico.

    A figura 4 apresenta um exemplo de contedo armazenado em umaestrutura relacional contendo uma tabela de fornecedor e uma tabela de

  • 7/24/2019 Livro de Banco de Dados I

    19/127

    19Banco de Dados I

    produtos. Observe como o conceito de tabela se torna mais simples de serassimilada, como tambm a implementao do conceito de relacionamento.

    Figura 4 Modelo de relacional

    Neste exemplo, o produto Uva, possui como fornecedor o fornecedorde nome Central. Tambm possvel fazer outro tipo de leitura, como porexemplo, dizer que o fornecedor Comrcio de alimentos, possui 2 produtosassociados a ele o Abacaxi e o Abacate. Observe que isto ocorre tendo emvista que existe uma informao codFornecedor que gera uma relao entreas duas tabelas. Sabendo que o modelo Entidade Relacionamento muitoutilizado no contexto atual pelas empresas desenvolvedoras e grandes

    corporaes, no prximo tpico sero abordadas outras caractersticassignificativas deste modelo.

    Por fim, o modelo orientado a objetos veio como alternativa ao uso domodelo relacional. A finalidade de existir um banco de dados orientado aobjetos, implementar uma srie de benefcios que a programaoorientao a objetos possui em relao a programao estruturada, alm depossibilitar o armazenamento e recuperao de dados da mesma forma comoocorre a construo de um obejeto nestas linguagens, sem que ocorra oprocesso de mapeamento objeto relacional. Neste modelo possvel, por

    exemplo, lidar com construtores de tipo que permitem especificar objetos

  • 7/24/2019 Livro de Banco de Dados I

    20/127

    20Banco de Dados I

    mais complexos contendo tuplas e arrays, encapsulamento de operaes emecanismos de herana e polimorfismo. Mesmo com todas essascaractersticas, os modelos de dados orientados ao objeto so implementadosfisicamente atravs de tabelas, ou seja, da mesma forma que no modelorelacional, tendo a semntica da aplicao modelada e representada atravsde objetos, enquanto sua implementao fsica feita de forma relacional(GALANTE et all, 2007).

    A figura 5 apresenta um exemplo de uma modelagem orientada aobjetos, contendo as classes cliente e conta. Perceba que o diagramautilizado para modelagem o mesmo que utilizado para representar classesna UML (Unified Modeling Language). O que ocorrem em geral que namodelagem, no se especifica os mtodos no diagrama.

    Figura 5 Modelo de relacional

    Por mais que o modelo orientado a objetos tenha sido constitudo

    posterior ao modelo relacional, pesquisas apontam que o modelo relacionalser utilizado por muito tempo, tendo em vista a confiana e autonomia queeste apresentou durante o decorrer dos tempos.

    Outro fator que deve ser considerado que na prtica, observamos queo paradigma de programao orientado a objetos utilizado de forma maciano desenvolvimento de aplicaes, sejam elas para qualquer fim. Porm emsua maioria, estas aplicaes armazenam os dados em banco de dadosrelacionais e no em banco de dados orientados a objeto. A etapa dearmazenamento e busca de dados dentro de uma aplicao que utiliza banco

    de dados relacional e desenvolvida com lingual de programao orientada aobjetos, chama-se mapeamento objeto relacional. Esta etapa ento responsvel pela transformao dos dados armazenados em estruturarelacional para objetos dentro da linguagem de programao.

    Modelo Relacional

    Como j mencionado o modelo relacional um modelo lgico de dados,

    baseado em registros, que prov abstrao de dados nos nveis conceituaisede vises do usurio. Neste modelo, tabelas representam dados e

  • 7/24/2019 Livro de Banco de Dados I

    21/127

    21Banco de Dados I

    relacionamentos entre dados. A grande maioria dos SGBD que atualmenteconhecemos e so consagrados implementam este modelo como estrutura, porexemplo, Oracle, SqlServer, Postgress, Mysql, Firebrid, entre outros.

    As principais caractersticas do modelo relacional so:

    Estrutura tabular: os dados so representados na forma detabelas, onde cada linha representa um registro (ou tupla), e ascolunas representam os atributos ou domnios;

    lgebra Relacional: a manipulao destas tabelas feira atravsde operadores que permitem qualquer tipo de acesso a umatabela ou a um conjunto de tabelas (seleo, unio, juno - joinetc). Nos prximos captulos falaremos especificadamente sobrelgebra relacional;

    Linguagem DDL: definindo, o esquema de dados do banco dedados;

    Linguagem DML: possibilidade de acesso e manipulao dosdados armazenados em alto nvelatravs de uma linguagem demanipulao;

    Esquema Conceitual: representa o ponto de vista global daempresa sobre a organizao dos dados. Neste esquema entra

    em cena o papel do administrador de dados, que identificapadro de entidades, atributos e relacionamentos, determinandorestries de integridade e segurana ao modelo de dados;

    Esquema Fsico: O esquema fsico est associado aoarmazenamento de dados, acesso, local de armazenamento,tipos de dados, entre outras especificaes;

    Ao direta do DBA: No modelo relacional, o DBA possui umpapel indispensvel. Geralmente ele que realiza o

    mapeamento do modelo lgico para o fsico, define as estruturasde acesso, ndices, modo de transmisso de dados entre outrasatividades.

    Como j estudados existem uma srie de sistemas gerenciadores debancos de dados disponveis no mercado. Em sua maioria, so modeladosutilizando o conceito de modelagem relacional. Como forma de garantir queum sistema de bancode dados possua caractersticas de um banco de dadosrelacional, este deve possuir as seguintes caractersticas:

    O sistema de banco de dados deve gerenciar o banco de Dadosexclusivamente atravs de capacidades relacionais;

  • 7/24/2019 Livro de Banco de Dados I

    22/127

    22Banco de Dados I

    Toda a informao apresentada sempre em nvel lgico porvalores em tabelas;

    Todo o dado tem a garantia de ser logicamente acessvel. Se odado existir e estiver armazenado, deve ser possvel recuper-lo;

    Os valores nulos so representados por ausncia de valores.Caracteres especiais ou zero no representa ausncia de valor.Geralmente neste caso, existe um smbolo chamado NULL quepode ser utilizado para representar ausncia de valores norespectivo campo do registro;

    Deve haver pelo menos uma linguagem que permita a definiodos dados, definio de viso, manipulao dos dados, restriesde integridade, autorizao de acesso, limites de transao. No

    existe uma regra, mas a grande parte dos SGBDs existentespossuem SQL como linguagem padro de manipulao;

    Insero, atualizao e remoo de alto nvel. Isto significa queno interessa como o SGBD ir manipular os dados de formafsica (como ele far para arquivar ou alterar um dado nobanco). Em um banco de dados relacional apenas devemosinformar um comando de alterao e este dever implementarinternamente a funcionalidade;

    Independncia de dados fsicos onde, os programas devempermanecer inalterados quando ocorre mudana nos mtodos deacesso ou nas representaes de memria;

    Independncia de dados lgicos onde programas devempermanecem inalterados quando ocorre mudana no banco dedados;

    Independncia de integridade definida na linguagem DML e DDL;

    Linguagem de acesso no pode ferir princpios de integridade.

    O modelo relacional composto por tabelas ou relaes, chaves erestries de integridade. A seguir sero apresentados de forma maisdetalhada as partes do modelo relacional.

    Tabelas ou Relaes

    Uma tabela um conjunto no ordenado de registros (linhas ou tuplas).Cada linha composta por uma srie de valores de campo (valor de atributo),

    identificados, cada um, por nome de coluna (nome de atributo domnio). Afigura 6 apresenta um exemplo de uma tabela com suas devidas partes.

  • 7/24/2019 Livro de Banco de Dados I

    23/127

    23Banco de Dados I

    Figura 6 Tabela no modelo relacional

    As tabelas e relaes possuem como principais caractersticas:

    Cardinalidade de uma tabela: nmero de linhas que faz relaocom outra entidade. A cardinalidade somente ir existir sehouver relaes entre tabelas. Como o exemplo da figura 5apresenta apenas uma tabela, no possvel representarcardinalidade entre tabelas. A cardinalidade ser melhordetalhada no prximo captulo;

    Grau de uma tabela: nmero de colunas existente em umatabela. No caso do exemplo da figura 5, o grau da tabela 4,pois a tabela formada por 4 colunas (cdigo, nome, valor efornecedor)

    Linhas de uma tabela no esto ordenadas: As informaes deuma tabela no so armazenadas de forma ordenada. Perceba oexemplo da figura 5, que no existe ordem por nenhuma coluna.Caso seja necessrio listar um conjunto de dados de formaordenada, o SGBD relacional poder disponibilizar algum

    comando.

    No possvel referenciar linhas de uma tabela por posio: damesma forma que o conceito de ordenao, o banco relacionalno possui acesso pelo nmero da linha armazenado. O SGBDpoder disponibilizar algum artifcio (em geral comando) querealize uma consulta desta forma.

    Valores de campo de uma tabela so atmicos, ou seja, no serpossvel armazenar mais do que um tipo de informao em cada

  • 7/24/2019 Livro de Banco de Dados I

    24/127

    24Banco de Dados I

    campo. Um campo de valor de um registro especfico, somenteconter um valor;

    Dados podem ser recuperados por quaisquer critrios envolvendoos campos de uma ou mais linhas. A linguagem DDL, deve

    possibilitar que seja possvel acessar qualquer campo contendoqualquer informao armazenada.

    Chaves

    So atributos utilizados para identificao de registros e ou relaesentre entidades. Elas so classificadas em chaves primrias, candidatas ouchaves alternativas e chaves estrangeiras.

    Uma chave primria composta por uma ou mais colunas de uma

    tabela cujos valores distinguem uma linha das demais dentro deuma tabela. Desta forma, existem algumas propriedadesindispensveis para atender esta premissa, como o valor contidoem seu campo nunca se repetir, e este no permitir que sejaarmazenado valores nulos. Uma chave primria pode ser simplesou composta. Como definio toda entidade deve possuir umachave primria. A figura 7 apresenta um exemplo onde estosendo definidas as chaves primrias das tabelas de produto edependente. Na tabela de produto a chave primria simples est

    sendo definida no atributo cdigo, que por sua vez nuncapoder se repetir. Na tabela de dependente ocorre a definiode uma chave primria composta pelos atributos Cod_emp eNum_dep.

    Figura 7 Exemplo de chaves primrias simples e compostas

  • 7/24/2019 Livro de Banco de Dados I

    25/127

    25Banco de Dados I

    Chamamos de chave alternativa ou candidata colunas ou umacombinao de colunas que podem servir para distinguir umalinha das demais. De certa forma toda chave primria umachave alternativa, porm no as definimos como tal, pois foram

    definidas como sendo chaves primrias. Neste caso, no existenecessidade que exista uma chave alternativa em uma entidade,se a chave primria j foi definida. O exemplo apresentado nafigura 8 ilustra a entidade aluno, contendo como chave primriacdigo e como chave alternativa o campo CPF. Isto se devepelo fato que o campo CPF representa de forma nica umregistro. Por exemplo, o CPF 8579 pertence ao aluno Carlose somente ao aluno Carlos.

    Figura 8 Exemplo de chaves Alternativa ou Candidata (CPF)

    A Chave Estrangeira uma coluna ou uma combinao decolunas, cujos valores aparecem necessariamente na chaveprimria de outra tabela ou da mesma tabela. um mecanismoque permite a implementao de relacionamentos em um bancode dados relacional. No exemplo apresentado na figura 9, a

    chave estrangeira existente na tabela de produto chamadaCdigo_Fornecedor, contm em seu contedo os valoresexistentes na chave primria cdigoda tabela de fornecedor.Para garantir o conceito de integridade em um banco de dadosrelacional, necessariamente o valor contido nos atributos dechave estrangeira devem ter elementos contidos em chavesprimrias associadas e ou serem nulos (NULL). Isto depender daforma como for modelada a integridade das informaes.

  • 7/24/2019 Livro de Banco de Dados I

    26/127

    26Banco de Dados I

    Figura 9 Exemplo de chaves estrangeira (Codigo_fornecedor)

    Restries de Integridade

    Restries de Integridade so regras de consistncia de dados que sogarantidas pelo prprio SGBD. Um dos objetivos primordiais de um SGBD aintegridade de dados. Dizer que os dados de uma base de dados esto ntegrossignifica dizer que eles refletem corretamente a realidade e so consistentesentre si. A restrio de integridade classificada em:

    Integridade de Vazio: campos de uma coluna podem ou no servazios (se a coluna obrigatria ou opcional). No esquea queos campos que compem a chave primria devem ser semprediferentes de vazio;

    Integridade Referencial: os valores dos campos que aparecemem uma chave estrangeira devem aparecer na chave primria databela referenciada ou devem ter valor igual NULL;

    Integridade de Chave: os valores da chave primria e alternativa

    devem ser nicos;

    Integridade de Domnio: o valor de um campo deve obedecer definio de valores admitidos para a coluna. Por exemplo, sefor definido que no campo de idade, somente dever serarmazenado nmeros inteiros maiores ou iguais a zero, nodever ser possvel, por exemplo, que seja armazenada umaidade negativa.

  • 7/24/2019 Livro de Banco de Dados I

    27/127

    27Banco de Dados I

    Recapitulando

    Aps o trmino deste captulo possvel ter uma viso dos principaismodelos de dados (hierrquico, redes, relacional e objeto), assim comoentender algumas caractersticas de cada modelo.

    Constatamos que o modelo relacional definido na dcada de 1970,ainda muito utilizado e ter um bom espao por ser um modelo consagradopor sua confiana e autonomia no decorrer do tempo.

    Por fim, foram aprofundadasalgumas caractersticas e a estrutura domodelo relacional onde foi ilustrado exemplos dos conceitos de tabelas,chaves e integridade.

    Atividades

    Tendo como base nas afirmaes abaixo relacionadas marque (V) para asassertivas Verdadeiras e (F) para as Falsas

    V F Assertiva1) ( ) ( ) O modelo hierrquico uma evoluo do modelo em rede, pois

    resolveu o problema de ordem de acesso a dados. No modeloHierrquico, os dados so acessados de sua raiz para os nveismais inferiores, utilizando o conceito de rvore.

    2) ( ) ( ) O modelo orientado a objetos utiliza conceitos do paradigma de

    orientao a objeto, porm em sua maioria, fisicamentearmazena em estrutura tabular.

    3) ( ) ( ) O modelo relacional o modelo mais utilizado, tendo em vistaque ele aplica o conceito de todos os demais modelos.

    4) ( ) ( ) No modelo relacional, os dados so armazenados em formato detabelas, as quais so constitudas por colunas e tuplas. Esta tabeladeve possuir uma coluna que identifique uma tupla de formanica. Para isto existe o conceito de chave primria

    5) ( ) ( ) Toda entidade deve possuir pelo menos uma chave estrangeira

    Gabarito:Questo 1 F

    Questo 2 V

    Questo 3 F

    Questo 4 V

    Questo 5 F

  • 7/24/2019 Livro de Banco de Dados I

    28/127

    28Banco de Dados I

    Modelagem Entidade Relacionamento

    Christiano Cadon

    Introduo

    Neste captulo ser apresentado os conceitos relevantes quanto amodelagem Entidade Relacionamento (E-R), alem de apresentar o processo deimplementao desta modelagem, apresentando as suas partes ecomponentes. Desta forma o aluno ter conhecimento necessrio paramodelar situaes prticas de contextos de armazenamentos, alm deentender mais a fundo as caractersticas do modelo relacional j apresentadoanteriormente.

    Modelo Entidade Relacionamento

    O modelo Entidade Relacionamento (E-R) foi proposto por Peter Chenem 1976 e teve como base a teoria relacional criada por Codd (1970). Eleutiliza praticamente todos os conceitos do modelo relacional, alm de proporuma viso mais conceitual do mundo real. O principal objetivo era levar aosprojetistas ou analistas a possibilidade de ter uma nica viso de uma

    realidade sem redundncia e bem resumida. O modelo E-R prope que omundo real formado por um conjunto de objetos que so denominados deentidades e relacionamentos entre estas entidades. O modelo E-R um dosmodelos com maior capacidade semntica (refere-se tentativa derepresentar o significado dos dados). Seu autor enfatizava que:

    O mundo est cheio de objetos (entidades), quepossuem caractersticas prprias (atributos) e que serelacionam entre si (relacionamentos). (Peter Chen)

    importante destacar que em geral modelamos utilizando o modeloEntidade Relacionamento, porm criamos o banco e manipulamos asinformaes utilizando banco de dados relacional (Oracle, SqlServer,Mysql,...). Esta distino deve ficar clara, para continuar o entendimentosobre o modelo E-R. O que ocorre que em certa etapa do processo decriao de um banco de dados, convertemos o modelo de forma que este sejarepresentado conforme o modelo relacional de cada banco de dados.

  • 7/24/2019 Livro de Banco de Dados I

    29/127

    29Banco de Dados I

    Processo de Implementao de um Banco de dados E-R

    O processo de elaborao de Banco de dados foi elaborado como formade definir etapas as quais podem ser seguidas que resultaro na criao deforma fsica de toda estrutura de armazenamento. A figura 10 apresenta umesquema que demonstra o processo de banco de dados, onde podem serdestacadas as etapas de anlise de requisitos, modelagem conceitual,mapeamento lgico e projeto fsico.

    Figura 10 Exemplo de processo de implementao de banco E-R

    O processo inicia a etapa de anlise de requisitos que faz parte doprocesso de desenvolvimento de um sistema. A etapa de anlise consiste emidentificar os requisitos e funcionalidades que um sistema deva possuir. Soselecionadas todas as caractersticas e particularidades que estorelacionadas modelagem de banco.

    Somente aps conhecer as especificaes necessrias para o

    desenvolvimento do sistema, ser possvel avanar de forma a no implicarem futuras modificaes na estrutura de armazenamento e ou alteraes quepossam ser implementadas de forma simples com menos risco. Como japresentado na disciplina de engenharia de software, um dos custos que maisimpacta o desenvolvimento de um sistema, est atrelado em sua possvelmanuteno. Geralmente estas alteraes esto associadas a modificaesdaestrutura de armazenamento de dados, e isto pode resultar em possvelinconsistncia de informao, o que segundo conceito de modelagem E-R,viola regras de modelagem.

  • 7/24/2019 Livro de Banco de Dados I

    30/127

    30Banco de Dados I

    A prxima etapa a modelagem conceitual que relataa descrio docontedo da base de dados, e no das estruturas de dados usadas pararepresent-lo. Seu enfoque a compreenso e descrio da realidade, daspropriedades relevantes da informao alm de desconsiderar todo e qualqueraspecto de implementao. Esta sem dvida a maior contribuio de PeterChen para comunidade de banco de dados, pois atravs desta modelagem,descrevemos a realidade sem se preocupar em qual bancode dados iremosimplantar, possibilitando uma viso macro da estrutura de armazenamento.Como resultado da implementao do modelo conceitual, teremos umdigrama que representa o esquema conceitual da estrutura dearmazenamento. Este captulo tratar em mais detalhes desta modelagem noprximo tpico.

    Assim que o modelo conceitual estiver definido, este convertido para

    o modelo lgico o qual descreve as estruturas que representam a base dedados. Sua modelagem depender do tipo de SGBD alvo (relacional, rede,hierrquico, OO). Nesta etapa possui como principal caracterstica a definiono diagrama, das chaves primrias e estrangeiras, o que define de forma fsicaas relaes entre as entidades. Perceba que a partir desta etapa, necessrio conhecer o SGDB que se pretende trabalhar. Como resultado destaetapa, ser gerado um diagrama que representa a estrutura lgica do bancode dados.

    Por fim e no menos importante, o modelo lgico ser transformado no

    modelo fsico, onde cada entidade, e seus atributos sero representados deforma que o banco de dados possa ser construdo. Nesta modelagem ocorre aescolha ou refinamento das estruturas de armazenamento e mtodos deacesso. O modelo fsico leva em considerao o produto de SGBD especfico.Como resultado, ser gerada uma descrio do esquema na DDL do SGBD. comum nesta etapa que no modelo fsico j esteja implementado atravs deuma DML, cdigos que executem a criao do banco de dados, como linhas decomando em SQL que criam tabelas e estabeleam relaes entre estas.

    Esquema ConceitualComo j apresentado, o esquema conceitual tem como objetivo

    desenvolver um diagrama que representea realidade, sem se preocupar emqual SGBD ser implementado. Seu enfoque est na compreenso e descrioda informao, na seleo das propriedades relevantes da informao e nadescrio das restries sobre estes dados. Este esquema possui comocaracterstica o dilogo com usurios finais do sistema, de forma que possaser modificado para atender os requisitos, sem se preocupar com aspectos deimplementao.

  • 7/24/2019 Livro de Banco de Dados I

    31/127

    31Banco de Dados I

    O seu formalismo grfico possui um padro que possibilita a suainterpretao de forma universal. Assim, fica mais fcil de aprender,compreender e associar com um requisito de sistema.

    Seu formalismo grfico possui como primitivas bsicas:

    Entidade Relacionamento Atributo Cardinalidade

    Entidade

    Uma entidade descreve caractersticas comuns a todos os elementosque deseja representar. Ela representa algo concreto como, por exemplo,

    informaes de uma pessoa, dados de um veculo ou pode ser algo abstrato,como departamento de uma empresa ou informaes de um curso. Asentidades so os primeiros elementos a serem identificados, principalmentepelo fato destes estarem explcitos ou evidentes. Uma entidade possui umnome (que define a entidade), atributo (caractersticas da entidade) e umaidentificao (atributo que identifica de forma nica uma informaoarmazenada. Em geral este campo a chave primria da entidade). Oexemplo 1 apresenta uma especificao de uma entidade chamada produto.

    Sua representao grfica um retngulo contendo em seu centro onome da entidade que est representando. Por conveno o nome de umaentidade deve ficar sempre no singular. A figura 11 apresenta um exemplo deduas entidades Produto e Fabricante.

    Figura 11 Exemplo de definio de entidades

    Exemplo 1:Entidade Produto: Descrevem caractersticas comuns a todos osprodutos que possam existir em um sistema de informao em umdado momento, como Cdigo, nome do produto, seu estoque e valorde venda.

    Nome: Produto Atributos: Cdigo, nome do produto, seu estoque e valor de venda. Identificao: Cdigo

  • 7/24/2019 Livro de Banco de Dados I

    32/127

    32Banco de Dados I

    Atributo

    Caracterstica, propriedade ou qualidade de uma ocorrncia deentidade ou de relacionamento. Atributos so usados na definio deconjuntos de entidades e de conjuntos de relacionamento. Atributos tambm

    so conhecidos como propriedades, ou campos de uma entidade. No exemplo1 j apresentado, os atributos da entidade produto so: cdigo, nome,estoque e valor de venda.

    A figura 12 apresenta sua representao grfica de acordo com omodelo proposto por Peter Chen. Neste modelo, cada entidade possui umconjunto de atributos. Como premissa, toda entidade necessita ter pelomenos um atributo para existir. Observe que o atributo que identifica umelemento especfico possui como representao um crculo fechado, enquantoos demais atributos so representados por crculos abertos.

    Figura 12 Exemplo de atributos em entidades

    Um atributo pode ser simples (monovalorado) ou repetitivo(multivalorado). No caso de ser simples, este possui um nico valor associadoa cada ocorrncia de uma entidade ou relacionamento. Por exemplo, oatributo valor Venda,da entidade Produto da figura 12, possui apenas umnico valor de venda para cada produto armazenado. J se este for repetitivoou multivalorado, um atributo poder possuir mais do que uma informaoarmazenada no mesmo atributo, como o caso do atributo Fone daentidade Fabricante, que poder armazenar mais do que um telefone paraum mesmo fabricante.

    Outra caracterstica importante de um atributo se este obrigatrioou opcional. Dizemos que o atributo obrigatrio, quanto necessrio queexista uma informao armazenada no atributo para que seja possvelarmazenar um registro. Por exemplo, se for definido que o campo nome daentidade Produto obrigatrio, s ser possvel armazenar um registro natabela de Produto, se for informado algo no campo nome. Caso ocorrauma tentativa de armazenamento sem que seja informada uma informaoneste campo, o SGBD no permitir o armazenamento e retornar um erro.Porm se o campo for definido como opcional, o SGBD permitir oarmazenamento mesmo que no informada nada no atributo.

  • 7/24/2019 Livro de Banco de Dados I

    33/127

    33Banco de Dados I

    Um valor de um atributo corresponde ao contedo existente em umregistro em um dado momento (dado armazenado na base de dado). Porexemplo, o contedo armazenado no campo nome da tabela produto dode um registro especfico Abacaxi.

    Cada atributo possui um domnio, que caracteriza o que pode serarmazenado na coluna especfica, como exemplo, tipo de informao (umadata, uma hora, um nmero inteiro, um nmero real, um texto,...). Nestedomnio possvel especificar uma regra de armazenamento como permitirsomente nmeros inteiros no intervalo de 10 a 200.

    Relacionamento

    Segundo Peter Chen, 1976 um relacionamento uma associao entre2 ou mais entidades. Desta forma, quanto existir uma associao entre

    entidades distintas dizemos que existe um relacionamento entre estasentidades. A figura 13 apresenta um exemplo da implementao de umrelacionamento. As entidades Professor e Curso possuem um conjunto deelementos que esto associados na relao chamada Atuao Docente.

    Figura 13 Exemplo de conjuntos de dados relacionados

    Cada ocorrncia da entidade participante desempenha um papel norelacionamento. Na figura 13 possvel atribuir um papel para o professor eum papel para o curso. Exemplo:

    Ana ministrou o curso de PHP, ou o curso de PHP foiministradopela Ana

    Carla professorade... ou Java possui como professor...

    Desta forma, um conjunto de relacionamentos possui:

    Nome: ATUAO-DOCENTE Conjuntos de entidades participantes: PROFESSOR, CURSO Para cada conjunto de entidades (ex: PROFESSOR)

    - cardinalidade (mxima): N- cardinalidade (mnima): 0

  • 7/24/2019 Livro de Banco de Dados I

    34/127

    34Banco de Dados I

    - papel desempenhado (opcional): ministra- atributos (opcional): ano/sem

    Existe uma srie de notaes para modelagem de dados, contudoutilizaremos neste documento o modelo proposto por Peter Chen. Assim a

    figura 14 demonstra o modelo ER gerado de uma relao entre as entidadesProfessor e Curso, denominada Atuacao_Docente.

    Figura 14 Exemplo de relacionamento

    A entidade professor possui como atributos o CPF, nome, endereo efone, sendo o atributo CPF, selecionado como sendo atributo que identifica osregistros, ou atributo que ser definido como sendo atributo de chaveprimria. A entidade Curso possui dois atributos, o cdigo e nome. Da mesmaforma que o atributo CPF, o atributo cdigo, est definido como sendoatributo de chave primria. O relacionamento Atuao_Docente, tambmpossui 2 atributos, o semestre e o ano. Observe que neste modelo, no existenecessidade de especificar uma chave primria em um relacionamento, como o caso dos atributos CPF e Cdigo das demais entidades. Tambm importante destacar que no existe obrigatoriedade da existncia de atributosno relacionamento como o caso da obrigatoriedade da existncia deste tipode atributo em entidades. Os atributos semestre e ano foram criados parailustrar a possibilidade da existncia de atributos em uma relao.

    O exemplo, tambm aborda o conceito dos papis (ministra e ministrado) os quais so exercidos por cada uma das entidades. Observe queneste caso os papis so colocados no lado oposto da entidade que o origina.Exemplo: o papel do professor ministra e est ao lado do curso,possibilitando que seja possvel realizar uma leitura da relao da seguinteforma. Um professor ministra Curso. J o papel de curso ( ministrado)est ao lado da entidade professor. Neste caso l-se um curso ministradopor professor. Os papis servem para realizar uma leitura da relaoexistente entre as entidades e no so obrigados a serem apresentados nodiagrama. Contudo, sugere-se que seja colocado para melhor compreenso

  • 7/24/2019 Livro de Banco de Dados I

    35/127

    35Banco de Dados I

    dos conceitos envolvido, principalmente quando o processo deconhecimentode banco de dados est na etapa inicial.

    Outra caracterstica importante no modelo apresentado a existnciadas cardinalidades de uma relao, representadas no exemplo 14 pelos

    valores (1,n).

    Cardinalidade

    As cardinalidade identificam dentro de uma relao quantasocorrncias de uma entidade participam no mnimo e no mximo dorelacionamento. So divididas em:

    Cardinalidade Mnima: define se o relacionamento entre duasentidades obrigatrio ou no. Para isto o diagrama define os

    valores 0 (zero) para no obrigatrio e 1 como sendo obrigatrio. Cardinalidade mxima: Define a quantidade mxima de

    ocorrncias da entidade que pode participar do relacionamento.Neste caso a cardinalidade mxima sempre ser maior do quezero. A cardinalidade mxima define as restries deintegridade, adicionando semntica (significado) ao diagrama. Omodelo proposto por Peter Chen,define 1 como uma ocorrnciamxima ou N para representar mais de uma ocorrncia derelao.

    A figura 15 demonstra de forma prtica a aplicao do relacionamentoemprego, gerado entre a relao professor e escola. A cardinalidade mnimasempre informadaprimeiro, seguida da cardinalidade mxima. No exemplo(0,n) definimos o elemento 0 (zero) como cardinalidade mnima e n comocardinalidade mxima.

    Figura 15 Exemplo de Cardinalidade Mnima e Mxima

    Neste exemplo, um professor trabalha em pelo menos uma universidade(cardinalidade mnima) e no mximo em uma escola (cardinalidade mxima),j uma escola emprega nenhum (cardinalidade mnima) ou vrios professores(cardinalidade mxima).

  • 7/24/2019 Livro de Banco de Dados I

    36/127

    36Banco de Dados I

    Tipos de Cardinalidade de Acordo com o Relacionamento

    Como j apresentado, as cardinalidades definem a quantidade deocorrncias de uma entidade que esto presentes na relao com outraentidade. Tambm constatamos que existem dois tipos de cardinalidade amnima e a mxima. A grande parte dos modelos de dados apenas leva emconsiderao a cardinalidade mxima, pois esta identifica o tipo decardinalidade de acordo com o relacionamento. Existem apenas 3 tipos:

    1:1(um para um) 1:N(um para muitos) N:N(muitos para muitos)

    A figura 15, possui uma relao 1:N, j a figura 14 possui uma relao

    N:N. Observe que para definir estes tipos de cardinalidade ou tambmconhecido como tipos de relao, foram utilizadas apenas as cardinalidadesmximas de cada um dos exemplos apresentados nas figuras 14 e 15.

    Cardinalidade Um para UM (1:1)

    Dada duas entidades definidas como entidades A e B, dizemos queexiste uma cardinalidade 1:1, quando uma entidade em A est associada nomximo a uma entidade em B e uma entidade em B est associada no mximoa uma entidade em A. A figura 16 apresenta o conjunto de elementos de duas

    entidades A e B distintas com cardinalidade 1:1. Observe que cada elementode cada uma das entidades possui apenas uma relao com um elemento daoutra entidade.

    Figura 16 Exemplo um conjunto de dados de Cardinalidade 1:1

    A figura 17 apresenta um exemplo de uma relao 1:1 entre asentidades Homem e Mulher, chamada casamento monogmico.

    Figura 17 Exemplo de Cardinalidade 1:1 Casamento Monogmico

  • 7/24/2019 Livro de Banco de Dados I

    37/127

    37Banco de Dados I

    Neste exemplo cada homem pode participar (desempenhar o papel deesposo) em no mximo uma ocorrncia de CASAMENTO, e cada mulher podeparticipar (desempenhar o papel de esposa) em no mximo uma ocorrnciade CASAMENTO

    Cardinalidade Um para Muitos (1:N)

    Dada duas entidades definidas como entidades A e B, dizemos queexiste uma cardinalidade 1:N, quando uma entidade em A est associada aqualquer nmero de entidades em B, enquanto uma entidade em B estassociada no mximo a uma entidade em A. A figura 18 apresenta um exemplode dois conjunto de dados A e B com relao 1:N

    Figura 18 Exemplo um conjunto de dados de Cardinalidade 1:N

    Os diagramas apresentados na figura 19 descrevem exemplos do uso de

    relaes 1:N. Observe que o exemplo a da figura 19 praticamente idnticaao apresentado na figura 17, porm ao alterar a cardinalidade o sentido dodiagrama modificou-se completamente.

    Figura 19 Exemplo de Cardinalidade 1:N

    No exemplo a casamento Poligmico, cada homem pode participar(desempenhar o papel de esposo) em vrias ocorrnciasde CASAMENTO, jcada mulher pode participar (desempenhar o papel de esposa) em nomximo uma ocorrncia de CASAMENTO.

  • 7/24/2019 Livro de Banco de Dados I

    38/127

    38Banco de Dados I

    No exemplo b que representa a participao de engenheiros em umprojeto, cada engenheiro pode participar em uma ou mais ocorrncias deprojeto, j cada projeto pode possui como responsvel no mximo umaocorrncia de PARTICIPAO de um engenheiro.

    Cardinalidade Muitos para Muitos (N:N)

    Dada duas entidades definidas como entidades A e B, dizemos queexiste uma cardinalidade N:N, quando uma entidade em A est associada aqualquer nmero de entidades em B, e uma entidade em B est associada aqualquer nmero de entidades em A. A figura 20 apresenta um exemplo dedois conjunto de dados A e B, onde seus elementos podem se relacionar comquaisquer elementos da outra entidade e vice versa.

    Figura 20 Exemplo um conjunto de dados de Cardinalidade N:N

    Os diagramas apresentados na figura 21 descrevem de forma prticacomo ocorre a definio de cardinalidade N:N.

    Figura 21 Exemplo de Cardinalidade N:N

    No exemplo a da figura 21, que representa a participao deengenheiros em um projeto, cada engenheiro pode participar em uma ou mais

    ocorrncias de projeto, e cada projeto tambm pode possui como responsvelno mximo uma ou vrias ocorrncias de PARTICIPAO de um engenheiro. O

  • 7/24/2019 Livro de Banco de Dados I

    39/127

    39Banco de Dados I

    exemplo b de fornecimento de produto, um produto pode ser fornecido porvrios fornecedores, j um fornecedor pode fornecer mais do que um produto.

    importante ressaltar que foram apresentados exemplos que possuemas mesmas entidades e relacionamentos, entretanto o que mudou foi apenas o

    tipo de relao entre eles. Pode parecer sem muita importncia estaalterao, porm esta definio implicar em elaborar o banco de dados comestruturas completamente diferentes de acordo com a definio do tipo. Adefinio correta implicar tambm em elaborar uma interface correta paracada tipo de relao. A escola equivocada trar um grande retrabalho para aequipe de desenvolvimento. Desta forma fica o questionamento: como sabero correto tipo de relao a ser aplicado?. A resposta simples, ela est naetapa de levantamento de requisitos que foi elaborada junto ao cliente, antesde dar incio ao desenvolvimento do projeto de banco. Uma anlise mal

    elaborada causar a aplicao de forma errada do tipo de relao e com isto,o desenvolvimento equivocado. Certamente ao apresentar parte do projeto aocliente, ser identificado o erro, porm o processo j gerou custos, e atrasosem sua entrega. Sendo assim, sempre analise cada relao de forma aimplementar o tipo de relao que atenda as necessidades do cliente. Amesma relao poder possuir tipos diferentes de acordo com aimplementao que se deseja realizar. A correta implantao depender decada caso. Isto pode ser evidenciado no exemplo b da figura 19 e noexemplo a da figura 21, onde o que muda apenas a cardinalidade da

    relao. Ambas esto corretas, mas sua aplicao depender de cada cliente.Neste caso necessrio saber se o cliente realmente deseja que um projetopossua como responsvel apenas um engenheiro ou mais de um. Somente deposse desta informao ser possvel aplicar o tipo correto que atender anecessidade do cliente final.

    Generalizao/Especializao

    Muitas vezes, quando analisamos um conjunto de entidades,percebemos contedos iguais, que geralmente implicam em criar atributos

    iguais em entidades diferentes. Por exemplo, imagine aluno e professor,ambos possuem nome, CPF, data de nascimento entre outros campossemelhantes. Normalmente criamos entidades distintas para ambos ereplicamos os atributos, adicionando outras caractersticas especficas paracada entidade (carteira de trabalho, por exemplo, na entidade professor enome dos pais na entidade aluno). Em alguns casos existe outra alternativa derepresentao. Ao invs de criar vrias entidades cria-se uma nica entidadeagrupando atributos comuns e outras entidades contendo somente osatributos no compartilhados, em uma relao de generalizao ou

    especializao. Este conceito de generalizao e especializao aplicado abanco de dados. Por exemplo, vamos imaginar que seja necessrio armazenar

  • 7/24/2019 Livro de Banco de Dados I

    40/127

    40Banco de Dados I

    informaes cadastrais de motoristas e engenheiros ambos empregados deuma empresa. Dependendo o cenrio, estes podem possuir ambos nome,endereo, bairro e CPF. Porm um motorista deve possuir o nmero de suacarteira de habilitao e categoria. J um engenheiro deve possuir o seuregistro junto ao CREA(conselho de regulamentao de Engenheiros eArquitetos).

    Neste caso ao invs de criarmos duas entidades contendo informaesespecficas de cada entidade (engenheiro e motorista) possvel utilizar oconceito de generalizao/especializao. A figura 22 apresenta como seria aimplementao deste conceito.

    Figura 22 Exemplo de Generalizao/Especializao

    Na soluo proposta foi criado uma nova entidade chamada deempregado que contm todas as informaes comuns entre os engenheiros emotoristas. Em seguida foi definidas as entidades restantes contendo apenasinformaes peculiares a estas. Pela representao, foi adicionado umtriangulo representando a ligao entre a entidade emprego e as entidadesmotorista e engenheiro, permitindo realizar uma leitura dizendo que alm doscampos categoria e car_habilitacao existentes em motorista, este tambmpossui como campos todos os campos da entidade empregado. O mesmoocorre com a entidade engenheiro.

    Recapitulando

    Ao concluir este captulo, o leitor percebeu que o processo deimplementao de um banco de dados E-R, possui etapas importantes queiniciam no levantamento de requisitos e concludo na implementao deforma fsica dobancode dados.

    Tambm foi estudadaa estrutura proposta pelo modelo de Peter Chen,onde foram apresentas as definies de entidades, atributos, relaes entreentidades e cardinalidades.

    Segundo estudos, a definio correta do tipo de relao (1:1 , 1:N eN:N) indispensvel para atingir os objetivos do projeto elaborado de

  • 7/24/2019 Livro de Banco de Dados I

    41/127

    41Banco de Dados I

    desenvolvimento da aplicao, minimizando a ocorrncia de aumento decustos e atraso no desenvolvimento.

    Atividades

    Tendo como base nas afirmaes abaixo relacionadas marque (V) para asassertivas Verdadeiras e (F) para as Falsas

    V F Assertiva1) ( ) ( ) Na etapa do esquema conceitual que compreende a modelagem

    conceitual do processo de implementao de um banco de dados,no necessrio saber qual o banco de dados que serimplementado, pois a viso da informao no implica em qualbanco ser implementado.

    2) ( ) ( ) Um atributo possui como caracterstica pode conter dadosMonovalorado ou dados repetitivos alm de permitir a

    obrigatoriedade ou no da existncia de informao em seucontedo.3) ( ) ( ) Os tipos de Cardinalidade esto associados cardinalidade mnima

    de uma relao4) ( ) ( ) No modelo conceitual, um relacionamento possui:

    - Nome

    - Entidades que participam do relacionamento

    - Cardinalidades mnimas e absolutas

    - Papel desempenhado por cada entidade

    5) Marque a alternativa que identifica o tipo de relao utilizada no exemploque segue:

    a) ( ) 1:1b) ( ) 1:Nc) ( ) N:Nd) ( ) 0:Ne) ( ) 0:1

    Gabarito:Questo 1 V

    Questo 2 V

    Questo 3 F (o correto associao pela cardinalidade mxima)

    Questo 4 F (o erro est em que no existe cardinalidade e absoluta)

    Questo 5 B

  • 7/24/2019 Livro de Banco de Dados I

    42/127

    42Banco de Dados I

    Exemplos de Implementao do Modelo Conceitual

    Christiano Cadon

    Introduo

    Neste captulo sero retomados alguns conceitos do modelo conceituale apresentado algumas novas especificidades deste modelo, atravs deexemplos deconstruo deste diagrama. Desta forma, o aluno estar diantede exemplos prticos que subsidiaro a elaborao destes diagramascontribuindo na correta elaborao de um projeto de banco de dados.

    Modelo Conceitual

    Como j abordado no captulo anterior, o modelo conceitual, apresentauma viso de armazenamento, independente do SGBD que serimplementado. Atravs deste modelo possvel identificar todas as entidadese relaes existentes entre estas entidades, alm dos atributos necessrios decada entidade de um determinado domnio.

    Partindo deste pressuposto, importante retomar que o modelodepender exclusivamente do que a etapa de levantamento de requisitostrouxe de informao para a elaborao do diagrama. Desta forma osexemplos que seguem sero fruto exclusivo dos domnios que esto sendoapresentados em cada exemplo. importante que seja destacado que odiagrama poderia ser diferente dependendo da descrio do exemplo.

    O diagrama conceitual a base para o desenvolvimento do modelolgico e por consequncia o modelo fsico. Assim sua correta elaboraoimplicar na correta elaborao dos demais modelos, j que pelo processo,um depende do outro.

    Exemplo passo a passo de criao do Diagrama Conceitual

    Tendo em vista, a necessidade da elaborao correta dos diagramasconceituais, este tpico abordar um exemplo de uma descrio que tercomo consequncia a criao de um diagrama conceitual. No existe umaordem exata de desenvolvimento do diagrama, a nica premissa que existaum domnio estabelecido contendo as necessidades a serem implementadas.Contudo ser adotado neste documento um processo de elaborao, ondeinicialmente a partir de informaes do domnio, sero identificadas as

    entidades, seus atributos, a relao entre as entidades determinado o tipo derelao (1:1,1:N ou N:N) e por fim, determinar os atributos identificadores.

  • 7/24/2019 Livro de Banco de Dados I

    43/127

    43Banco de Dados I

    importante que seja especificado que no est sendo considerado e aplicadonestes primeiros exemplos o conceito de normalizao de dados, tema esteque ser abordado nos prximos captulos. Desta forma, caso exista algumaluno que j conhea este conceito, perceber esta caracterstica.

    Assim, o exemplo 2 apresenta uma descrio de um domnio hipottico,no qual servir de base para elaborao do diagrama conceitual.

    Como sugesto, vamos inicialmente identificar as entidades que esto

    presentes na descrio. Uma entidade possui caractersticas especficas sobrealgo. Observe que as informaes sobre os dados das entidades estomisturadas ao texto, por isso, o correto seria realizar mais de uma leitura. Aoterminar a leitura possvel identificar princpio 5 entidades: Animal,Cliente, Veterinrio, Atendimento e Venda, pois em cada uma destasentidades o texto relata informaes para serem armazenadas. Neste pontoj possvel desenhar as entidades e identificar os atributos que cada umadas entidades faz parte. A figura 23 apresenta um esboo da elaborao destaetapa. Note na realizao da primeira leitura do texto, cria-se uma falsa

    impresso de que existem outros atributos em algumas entidades, como, porexemplo, no trecho ...Uma venda possui um cliente, um nico animal, umadata, e um valor que faz referencia ao valor venda do animal.... Neste casoa tendncia que o cliente e o animal sejam atributos da entidade Venda,porm tanto o animal e o cliente so entidades, pois no texto, ambos possuemsuas caractersticas estabelecidas. Na verdade o que ser criado umarelao entre estas entidades, que refletir no mesmo efeito de formaprtica. Sendo assim, no se preocupe inicialmente, em colocar esteselementos como atributos e, ao perceber que o domnio descreve outrasinformaes, gere uma entidade. Lembre-se que futuramente ser geradauma relao.

    Exemplo 2: - PetshopUma Petshop deseja obter alguns controles sobre os animais vendidos em seuestabelecimento e atendimentos realizados a estes. Segundo levantamento necessrio armazenar o nome do animal, raa, data de nascimento e peso. Umavenda possui um cliente, um nico animal, uma data e um valor que faz referencia aovalor de venda do animal. Um animal somente pertencer a uma nica venda. necessrio armazenar alguns dados sobre o cliente como seu nome, CPF, endereocompleto e telefone. Este cliente poder efetuar vrias compras de animais. Umanimal possui uma raa, j uma raa de vrios animais. A clnica tambm gostariade registrar os atendimentos realizados para cada animal. Cada atendimento possuium animal, um veterinrio, uma data de atendimento e um cdigo de atendimento.Um veterinrio poder atender nenhum ou vrios animais. Um animal poder seratendido vrias vezes, porm um atendimento possui apenas um animal. Umveterinrio possui nome, registro no rgo responsvel e fone de contato. Umveterinrio dever conter um nome, um cdigo de registro e um telefone de contato.

  • 7/24/2019 Livro de Banco de Dados I

    44/127

    44Banco de Dados I

    Figura 23 Exemplo parcial 1 - Petshop

    O prximo passo a definio das relaes existentes entre cada uma

    das entidades. Como j abordado, atributos que inicialmente faziam parte daentidade e no decorrer do texto se transformaram em outra entidade,proporcionaro uma relao entre as entidades que originalmente faziamparte com a entidade criada. o caso dos atributos cliente e animal quedavam a impresso de serem atributos da entidade venda. Neste caso sercriada uma relao entre as entidades cliente e venda e outra entre asentidades animal e venda. O mesmo ocorre na entidade atendimento, onde otexto informava que o atendimento possui animal e veterinrio e ambos setransformaram em entidades. Neste caso deve haver duas novas relaes,

    sendo a primeira entre as entidades animal e a entidade atendimento e aoutra entre as entidades veterinrio e atendimento. A figura 24 apresentauma nova verso do diagrama agora com os respectivos relacionamentos.

    Figura 24 Exemplo parcial 2 - Petshop

    Outro ponto a ser destacado no diagrama da figura 24 a criao daentidade Raa, que na figura 23 era atributo da entidade animal. Isto se deu

  • 7/24/2019 Livro de Banco de Dados I

    45/127

    45Banco de Dados I

    pelo fato que o texto induz a criao da entidade. Segundo o texto ...Umanimal possui uma raa, j uma raa de vrios animais.... Perceba que otexto relata um tipo de relao 1:N. Neste caso devemos criar uma novaentidade e determinar um relao ligando a entidade que originou (neste casoa entidade animal) e a nova entidade (neste caso a entidade Raa).

    Os demais tipos de relao tambm foram determinados de acordo como texto. Segundo o exemplo temos 5 relaes com os respectivos tipos derelao:

    Relao compraentre as entidades Cliente e Venda: a relaoficou definida como 1:N, pois o texto informa ...Uma venda

    possui um cliente... o que determina que a cardinalidademxima do lado do cliente ser 1, e ...Este cliente poderefetuar vrias compras de animais... que determina acardinalidade N ao lado da venda. A figura 25 ilustra a definiodo tipo de relao 1:N, representando atravs do texto extradoas cardinalidades mximas da relao.

    Figura 25 Relao compra entre entidades cliente e venda

    Relao compraentre as entidades Animal e Venda: a relaoficou definida como 1:1, pois o texto informa ...Uma venda

    possui...um nico animal... o que determina que acardinalidade mxima do lado do animal ser 1, e ...Um animal

    somente pertencer a uma nica venda... que determina acardinalidade 1 ao lado da venda. A figura 26 descreve atravsdo texto, como foi definida a relao 1:1.

  • 7/24/2019 Livro de Banco de Dados I

    46/127

    46Banco de Dados I

    Figura 26 Relao 1:1 entre as entidades Venda e Animal

    Relao Caractersticaentre as entidades Animal e Raa: Comoj mencionado anteriormente o texto induziu a criao de umanova entidade, pois definiu uma relao 1:N. Sendo assim foicriada uma nova entidade e definida uma relao que aqui foidenominada de caracterstica. A figura 27 apresenta a definiodo tipo de relao 1:N, juntamente com o trecho que texto queoriginou a relao.

    Figura 27 Relao Caracterstica (1:N)

    Relao Consulta entre as entidades Veterinrio e

    Atendimento: Como possvel observar na figura 28, a relaodenominada consulta possui um tipo de delao 1:N, onde umveterinrio realiza N atendimentos e um atendimento realizado por 1 veterinrio.Da mesma forma que os exemplosanteriores esta definio estava especificada no texto.

  • 7/24/2019 Livro de Banco de Dados I

    47/127

    47Banco de Dados I

    Figura 28 Relao consulta (1:N)

    Relao Pacienteentre as entidades Animal e Atendimento: Damesma forma que os demais tipos de relao, o tipodeterminado para a relao paciente teve origem no texto

    apresentado no exemplo 2. Segundo o mesmo, a relaopaciente possui o tipo 1:N, onde um animal pode ser atendidoem vrios(N) atendimentos e um atendimento possui apenas umanimal. A figura 29 ilustra de acordo com o trecho do exemplo 2a definio do tipo 1:N

    Figura 29 Relao Paciente (1:N)A figura 24 tambm apresentou alm dos tipos de relao s

    cardinalidades mximas e mnimas definidas. A cardinalidade mxima estexplicita no texto, tanto que foram criados os tipos de relao. J acardinalidade mnima at aparece em alguns trechos do texto, mas no osuficiente para elaborao completa do diagrama apresentado na figura 24.Esta caracterstica no exclusividade somente no nosso exemplo 2. Em suamaioria, as especificaes determinam somente as relaes e no aobrigatoriedade de todas estas relaes. Isto se deve pelo fato de que quando

    se realiza o levantamento de requisitos, no de desenvolve um digramaconceitual, at porque, isto somente ser realizado posterior o levantamento

  • 7/24/2019 Livro de Banco de Dados I

    48/127

    48Banco de Dados I

    de dados. Nestes casos a soluo contar com a expertise ou a lgica doanalista de banco de dados, que dever sempre validar seu diagrama junto aocliente em caso de dvida.

    O exemplo apresentado na figura 29.a demonstra aplicao das duas

    cardinalidades na relao de compra e a forma de como deve ser lida arelao compra. Segundo o texto uma venda possui um cliente. Se possui umcliente entende-se que obrigado que exista um cliente para que a vendaexista, e neste caso a cardinalidade mnima foi definida como sendo 1. Otexto relata que o cliente possui vrias compras, mas no relata nada se estepode no possuir compra alguma. Neste caso foi optado em imaginar que umcliente deva possuir pelo menos uma venda. Porm observe que neste caso necessrio consultar o nosso cliente final para ter certeza desta informao.

    29.a Definio de cardinalidades mnimas

    A ltima etapa a definio dos atributos identificadores quefuturamente sero determinados como chaves primrias. Devemos selecionarum atributo de cada entidade como sendo atributo identificador. Caso noseja possvel, pois o contedo do atributo no garanta integridade de chave,devemos selecionar mais de um atributo, criando uma chave composta, e oucriar um novo atributo que gere a identificao. O diagrama apresentado nafigura 30 est finalizado e contm em cada uma das entidades um atributoque o identifique.

  • 7/24/2019 Livro de Banco de Dados I

    49/127

    49Banco de Dados I

    Figura 30 Exemplo final do Diagrama Conceitual da Petshop

    Observe que foi criado um atributo novo nas entidades Venda, Animal eAtendimento chamado de cdigo, o qual foi utilizado como atributoidentificador da entidade. Geralmente a soluo quando no existe umidentificador entre os atributos acriao de um cdigo. Constate tambmque a entidade raa s possui um atributo denominada nome e este foiutilizado como atributo identificador, pois pela lgica, no ser cadastradaraas com o mesmo nome. Alguns analistas neste caso, preferem criar umnovo atributo (cdigo) e coloca-lo como atributo identificador.

    O exemplo 3 apresenta outra descrio como forma de exemplificar acriao do modelo conceitual. O domnio do exemplo 3 um hotel quenecessita controlar seu processo de hospedagem

    Tendo como base o exemplo 3, podemos seguir o mesmo processorealizado no exemplo 2, onde inicialmente identificamos as entidades. Emseguida os atributos e relaes e por fim definir quais sero os atributosidentificadores. A figura 31 apresenta o diagrama conceitual gerado nadescrio apresentada no exemplo 3.

    Exemplo 3: - HotelUm hotel deseja informatizar seu processo de hospedagem. Sabe-se que necessrio

    armazenar informaes de seus clientes, hospedagens por ele realizadas, e produtos

    consumidos na hospedagem. O cliente possui cdigo, nome, endereo, cidade, estado,

    CPF, RG e data de nascimento. Uma hospedagem possui um cliente, j um cliente pode

    se hospedar nenhuma ou vrias vezes. Uma hospedagem possui tambm uma data de

    entrada e uma data de sada. Uma hospedagem possui um quarto associado a ela j um

    quarto pode estar relacionado a vrias hospedagens. Um quarto de uma categoria, j

    uma categoria, pode estar relacionada com vrios quartos. Um quarto possui nome,

    andar, categoria e nmero de camas.

  • 7/24/2019 Livro de Banco de Dados I

    50/127

    50Banco de Dados I

    Figura 31 Diagrama Conceitual parcial do Hotel

    Aparentemente o diagrama possui todas as etapas definidas, entidade,atributos, relacionamento, cardinalidades e atributos identificadores. Emexperincias j constatadas com alunos, ao apresentar o texto do exemplo 3,

    estes em sua maioria, desenvolve um diagrama muito semelhante ao da figura31. Ocorre que, se prestarmos ateno, faltou um item importantssimo nodiagrama que passou despercebido. A segunda frase do exemplo 3 relata...Sabe-se que necessrio armazenar informaes de seus clientes,hospedagens por ele realizadas, eprodutos consumidos na hospedagem....Como o restante do texto no fala nada sobre produtos consumidos nahospedagem a tendncia desenvolver um diagrama idntico ao diagrama dafigura 31. Alguns at identificam esta informao e adicionamum atributo aentidade hospedagem chamado produtos. Estaria at correto porm a nica

    informao que temos produtos consumidos, est no plural o que leva adizer que uma hospedagem possui mais de um produto. Da mesma forma queno atributo Raa da entidade Animal descrito no exemplo 2, a soluo corretaseria criar uma nova entidade, relacionando-a com a entidade hospedagem.

    A figura 32 apresenta uma forma de soluo do exemplo 3 onde foicriada uma nova entidade chamada produto relacionada com a entidadehospedagem.

    Figura 32 Diagrama Conceitual do Hotel Soluo 1

  • 7/24/2019 Livro de Banco de Dados I

    51/127

    51Banco de Dados I

    Nesta soluo foram adicionados atributos que no so mencionados notexto, como valor do produto na entidade produto e o atributo quantidade narelao produto consumido. Isto ocorreu pela experincia do administradorde banco que ao identificar que se trata de controlar o consumo de produtos,imaginou que seja necessrio saber quanto de cada produto foi consumido e ovalor que cada produto custou. Neste exemplo o atributo quantidade ficouassociado relao, pois quantidade faz referencia a quantidade consumida eno ao produto. Neste exemplo um produto possui caractersticas prprias deprodutos. A relao criada lida da seguinte maneira. Um produto pode serconsumido em nenhuma ou em vrias hospedagens. Exemplo: possvelvender refrigerante para vrias hospedagens. J uma hospedagem podepossuir nenhum ou vrios produtos consumidos (exemplo: em umahospedagem possvel vender um refrigerante e um salgadinho).

    Outra soluo no armazenar os dados de produtos de forma separadado consumo realizado. Neste caso, o diagrama conceitual dever sermodificado. A figura 33 apresenta esta outra soluo para os produtosconsumidos.

    Figura 33 Diagrama Conceitual do Hotel Soluo 2

    Nestasegunda soluo todos os atributos foram colocados na entidadedenominada Produtos Consumidos, alm do tipo de relao ter sido

    alterada. A primeira soluo apresentada na figura 32 possua relao N:N, ja soluo da figura 33 possui relao 1:N. Na prtica isto depender do que ocliente final desejar implementar, pois se a implementao for a soluo 1,este ter uma listagem de produtos e selecionar o produto que foiconsumido. J na soluo 2, ele no ter uma listagem de produto e simdever cadastrar sempre os produtos que foram consumidos. Novamente noexiste soluo correta at que esta informao seja validada junto ao cliente.Este tipo de situao novamente ocorre por problemas na etapa delevantamento de requisitos, pois nesta etapa que se obtm informaes

    suficientes para soluo deste tipo de problema, o que na prtica no ocorreuno exemplo 3.

  • 7/24/2019 Livro de Banco de Dados I

    52/127

    52Banco de Dados I

    Sendo assim, a implementao do diagrama conceitual, dependersempre do correto levantamento de requisitos. Outro fator importante a serconsiderado que em geral no existe uma nica soluo de desenvolvimentodo diagrama conceitual. Isto justifica o porqu existem tantos sistemasdesenvolvi