Baixe o app para aproveitar ainda mais
Prévia do material em texto
•••••••••••••••••••••••••••••••••• 27 29 22 22 23 24 24 25 25 26 CAPíTULO 1 ________ ~ __"L.Lis.taJ:le.£igw:a...s. Figura 1.1 - Exemplos de tipos de banco de objetos do mundo real: (a) Agênciabancária,(b) Bancode embriões, (c) Banco de sangue., . ., 18 Figura 1.2 - A problemática do mundo moderno - o grande volume de dados - para mater. 19 Figura 1.3 - IBM360 - Fonte: http://www-03.ibm.com/ibm/history/ history / decade_1960. html 19 Figura 1.4 - O arquivo de aço era o banco dedados físico. 20 Figura 1.5 - Evolução do banco de dados. . 21. Figura 1.6(a) - A evolução da abstração: Funcionário do mundo real Figura 1.6(b) - A evolução da abstração: Ficha funcional Figura 1.6 (c) - A evolução da abstração: Ficha cadastral de um c' sistema computacional. Figura 1.7{a) - Coleção de laranjas. Figura 1.7{b). Coleção de automóveis. Figura 1.8 . Modelos de copos. Figura 1.9 . Representação computacional' do registro de um aluno. Figura 1.10 - Exemplo de Modelo Hierárquico. Figura 1.11 - Modelo hierárquico dos dados de disco de computador. I Figura 1.12 . Hierarquia de uma empresa relacionando o SETOR com os seus respectivos funcionários. Figura 1.13 . No modelo de rede o registro-filho (e) se relaciona com dois registros-pai (A e B).29 Figura 1.14 - Exemplo de modelo de rede - Diagrama de estrutura de dados cliente. Conta corrente. 30 Figura 1.15 . Exemplo de modelo relacional. 31 Figura 1.16. - Exemplo de modelo orientado a objetos. 33 95 96 103 103 104 104 105 107 108 110 I 113 115 117 119 122 '139 141 143 Exercícios CAPITULO 3 Modelo Relacional 3, i Introdução 3.2 Visão geral . 3.2.1 Banco de Dados, Modelo de Dados e Esquema 3.2.2 Sistemas de Gerenciamento de Banco de Dados 3.3 Os modelos de dados pré-relacionais significativos 3.4 O modelo de dados relaciona I 3.4.1 Elementos do modelo relacional 3.5 A visão relacional dos dados 3.6 Normalização 3.6.1 Dependência funciona.l 3.6.2. Formas Normais 3.7 Álgebra relacional 3.8 Resumo Exercícios Referências ~,~:fi,,>,":{~ti~~I~1~{~;W~~~~' ~ 2.5 Relacionamentos e conjuntos de relacionamentos 63 ~ 2.5.1 Classificação 65 ~ 2.5.2 Multiplicidade de relacionamentos 66 2.5.3 Atributos de relacionamentos 70 2.5.4 Auto-relacionamento 71 2.5.5 Grau do relacionamento 73 2.5.6 Relacionamentos n-ários 73 2.5.7 Regras/Sugestões de modelagem 78 2.6 Agregações 79 If 2.6.1 Regras/Sugestões de' modelagem 84 2.7 Especializações e generalizações de conjuntos de entidades 85 2.7.1 Restrições de herança 89 2_8 Resumo I -1'--.., ') - •••••• 13 • 16 •• I•17 •17 •18 22 • 26 • 26 •29 •31 •32 •33 •39 •40 44 • 45 • 45 • 47 •••51 •51 •52 •53 53 • 54 I. 55 I. 55 I1. 56 I 57 ,., 62 --~_.l;::'-i' 1'~' t . Lista de Figuras Lista de Tabelas CAPITULO1 Introdução ao banco de dados 1.1 Introdução 1.2 Histórico 1.3 Terminologias 1.4 Modelos de dados 1.4.1 Modelo hierárquico 1.4.2 Modelo em rede 1.4.3 Modelo relacional 1.4.4 Modelo orientado a objetos 1.5 Arquitetura de banco de dados 1.5.1 Profissionais de banco de dados 1.5.2 Aevolução dos SGBDs 1.5.3 Quando não utilizar um SGBD 1.6 Linguagens de base de dados 1.7 Resumo Exercícios CAPiTULO2, Modelo Entidade Relacionamentos 2:1 Introdução 2.2 Sistema principal 2.3 Conjuntos de entidades 2.3.1 Representação Gráfica 2.3.2 Classificação 2.3.3 Regras/Sugestões de modelagem 2.4 Atributos de entidades 2.4.1 Representação gráfica 2.4.2 Classificação 2.4.3 Regras/Sugestões de modelagem , --I~,,1-0-',' 1'~ .'.:' I I 1I, III "li" 1 1' ,I , I , I ! I , I I li I , li : II! ; , ~~~ .~,~;~.:.~~:~;5~t~;;i~1[{~:'~~Ti~Pr~~~~.J~~~\':~~~.',~.".' ._,~.'-.•".,.".'.•...•..•,...•"'_"..""~;."";I.:.h.\":~\.;;.~~.nti~l.l.~el{11.:i\';.~ Figura 1.17 - Arquitetura de um Sistema de Gerenciamento 'de' ' Banco de Dados. 34 Figura 1.18 - Exemplo da' arquitetura cliente-servidor. 35 Figura 1. 19 - Modelo de visão de um Sistema de Gerenciamento' de Banco de Dados. 38 I I __ I ;;,'",r:::t.r 78 80 84 86 86 88 88 88 89 90 91 91 94 CAPíTULO 3 ur~~r~Uf{rE. BI8UOP~CA ~~~~0T~{ii~~~~:~~;.~0&jTi;'J'i~Ú:~;,~ç.._,,:~/,~ , ~"'_~."';"<:":"~~""-"~~~"".'.~,:;'%i~:fij£~!j- ... i''''.=. ~.,~';.' .~•..,,-,..••< ••. ';'.,", •. - •..>::'U'_h'.,n..'Jk"~'-~..,::'.:..' E:f~~4_.~ Figura 2. 28(b) - Mapeamento correto do atributo codigo_setor da tabela "Setores" Figura 2.29 - Médico consulta paciente e solicita exame Figura 2.30 - Relacionamento entre relacionamentos consulta e solicita 80 Figura 2.31 - Relacionamentos binários para Consulta e solicitação de exames 81 Figura 2.32 - Relacionamentos com agregação 81 Figura 2.33 - Representação gráfica alternativa para agregação 83 Figu~a 2.34 - Uma agregação se auto. relacionando com uma das entidades por ela envolvida Figura 2.35 - Exemplo de Generalização Figura 2.36 - Exemplo de uma Especialização. Figura 2.37 - Relacionamento com a entiadade de nivelsuperior. Figura 2.38 - Relacionamento especifico com entiadade de nível inferior. Figura 2.39 - Relacionamento entre entidades de nível inferior. Figura 2.40 - Restrição de disjunção Figura 2.41 - Restrição de sobreposição Figura 2.42 - Exemplo 1 de herança por atributo Figura 2.43 - Exemplo 2 de herança por atributo Figura 2.44 - DIagrama Geral da Clíca Salva Vidas Figura 3.1 - A camada do SGBD 106 Figura 3.2. Normalização da tabela Avaliações 116 Figura 3.3 - Solucionando uma violação da segunda forma normal. 121 Figura 3.4 . Sistema de clínica médica. 123 Figura 3.5 - Tabelas Médico, Paciente e Consulta. 124 78 53 54 54 56 56 58 59 60 60 61 61 64 65 I 65 66 67 67 68 68 69 69 70 70 71 72 75 75 76 Figura 2.1 - Representação de um conjunto de entidades Figura 2.2- Entidade Forte Pacientes Figura 2.3 - Entidade Fraca Dependentes Figura 2.4 - Representação de tributos dada por Navathe Figura 2.5 - Representação de tributos dada por Setzer Figura 2.6 - Atributo Multivalorado Fones " Figura 2.7 - Atributo Endereço composto de Rua, Num e CEP Figura 2.8 - Atributo Multivalorado Composto Endereços Figura 2.9 - Atributo Identificador Código Figura 2.10 - Atributo identificador IdPessoa+RG Figura 2.11 - Atributo derivado Idade Figura 2.12 - Relacionamento' consulta Figura 2. 13(a) - Relacionamento solicita Figura 2.13(b) - Relacionamento solicitações Figura 2.14 - Relacionamento parcial e relacionamento total. Figura 2.15 - Multiplicidade 1: 1 Figura 2.16 - Multiplicidade 1: 1 Figura 2.17 - Multiplicidade N:1 Figura 2.18 - Multiplicidade N:1 Figura 2.19 - Multiplicidade N:M Figura 2.20 - Multiplicidade N:M Figura 2.21 - Limites de cardinalidade. Figura 2.22 - Limite máximo explicito. Figura 2.23 - Atributos do relacionamento. Figura 2.24 - Auto- relacionamento Figura 2.25 - Três relacionamentos binários Figura 2.26 - Relacionamento ternário "consultam". Figura 2.27 - Auto-relacionamento ternário. Figura 2.28(a) - Mapeamento incorreto do atributo codigo_setor da tabela "Setores" CAPíTULO 2 I I I I ! ~ j ~ j ili•I 'i"••Ihd 1.1 Introdução • - A idéia de banco de dados é intuitiva e tem o m<:smoobjetivo dos mais diversos tipos de bancos que é de armazenqr coisas!. De for- ma ilustrativa, nas Figuras 1.1 (a), (b), (c), apresentamos os exemplos de agência bancária que guarda "dinheiro", o banco de embrião que armazena nos barris de nitrogênio os futuros bebês e o banco.de.san- gue que armazena o soro sanguíneo. Ou seja, a terminologia banco de dados também segue essa linha de pensamento e armazena dado. Ini- cialmente, o banco de dados apenas agrupava os dados sem nenhuma organização e estruturação, esse tipo de tecnologiaé.conhecido como arquivo textual. • ~*2r.W1~~~ji~lfZi~ill?i~~~I~~tJ:;->'j1~:" CAPíTULO 1 Introducão_---"ao B...a..nkQde--.Dados. CAPíTULO 1 Lista de Tab-e1as CAPíTULO 3 Tabela 3.1'- Equivalência entre conceitos 109 Tabela 3.2 - Principais elementos do modelo relacional. 111 Tabela 3.3 - Tabelas: (a) Funcionários, (b) Departamentos. 112 Tabela 3.4 . Tabela Avàliações 116 Tabela 3.5. Dependência funcional 118 Tabela 3.6 . Violação da segunda Forma Nórmal. 121 Tabela 3.7 . Violação da terceira forma normal (3NF). 121 Tabela 3.8 - Operações da álgebra relacional. 123 Tabela 3.9 - Produto Cartesiano entre Consulta e Médico. 130 Tabela 3.10 - Seleção sobre o Produto Cartesiano da Tabela 3.5 131 Tabela 3.11 - Resultado da consulta (Médico x Consulta) 132 Tabela 1.1 . A evolução entre o processamento tradicional versus a base de dados. 40 I , I t'19!r;"r.-.,:::..L I '.~.;;:=;:;:: Figura 1.2: A prOblemática do mundo moderno. o grande volume de dados - para mater. A primeira proposta de um supercomputador para gerenciar grande volume de dados, Figura 1.2, foi comercializada no final de 1960 pela IBM, denominado de IBM 36.0 Esse computador inaugurou a terceira fase de computadores que. utilizavam circuitos integra. dos (transistores e outros componentes. eletrônicos miniaturi.zados e montados numa única pastilha de silício). Além disso, este equipa. mento, Figura 1.3, introduziu o conceito de família dec~mputado'res compatíveis no qual permitia um.s;stema computacional migrar para outra arquitetura de computador mais avançada . 1.2 Histórico . Figura 1.1: Exemplos de tipos de-banco de objetos do mundo reaL: (a) Agência bancária, (b) Banco de embriões, (c) Banco de sangue. Com o advento tecnológico, impulsionado pela evolução indus' trial, as empresas encontraram uma problemática: a imensa quantida- de de dados e informações para serem analisados e tratados. I I : i I I q "i I !, ii I 'I .1 :iI I ,íl "I ;1 I 'li! 1\: til I ill [lli ~~< •E~<H> ~E ~ o oãr ê".~<w ~ > "S cr illJ ~ o.:;- ~ o 2• {~<H> .~i~ ~~ o.~ "~ ,'"E õ; < 2< /.~ /~ [0 ~:;;~.~.g ~ ~-g~~ o o~>õ; ~ ~ li o ~~, ~ ~ o ~ S j.< ~.g ~ '5~o :::;::.2 ~~Õ> ~ E ~w ôE i~ 2ãl õ• õ; ~ Figura 1.5: Evolução do banco de dados. Figura 1.4: O arquivo de aço era o banco de dados físico. " ~~'fT}Y;l;r1:~¥8tf:yijf~~~£f[~~~4 ! Antes dessa fase, também conhecida de Terceira Geração, exis-! tiram duas outras fases. Aprimeira foi a mais primitiva, Figura 1.4, um sistema manual de arquivamento de dados em fichas de registros_ A segunda fase, Figura 1.5, já informatizada, foi o sistema de processa- mento de arquivos. Era básica apesar de demonstrar certo aspecto de organização de dados e informações estruturadas em formas de siste- mas de hierarquia de pastas- e arquivos, mas infelizmente este tipo de sistema de processamento de arquivo apresentava inúmeras falhas. O principal problema era a demora nas pesquisas de dados, pois no siste- ma de processamento de arquivo o tipo de pesquisa é sequencial. Na próxima seção detalharemos algumas terminologias técnicas contempladas pela disciplina de banco de dados (BD). • I -,i Instância: representa um valor de um atributo (ou conjun- to de atributos) em um determinado instante de tempo. Por exemplo, o atributo "nome", em um instante pode ter o valor "André", em outros instantes pode ter o valor "Joâo", etc. Dessa forma, André e João são instâncias do atributo nome. • Coleção: é um conjunto de elementos com as mesmas carac- terísticas_ Quando falamos de um conjunto de elementos pen- samos que todos os elementos são iguais e isso não é verdade. Vamos pensar em uma coleção de laranjas, Figura 1.7(a), que a partir de uma visão superficiaL não se percebe a diferença existente entre as diversas laranjas. É claro que a diferença pode ser mínima como as manchas; mas elas existem e são esses detalhes que garantem a unicidade entre os elementos . Outro exemplo é uma coleção de carros, Figura 1.7(b), que mesmo tendo a mesma cor, tamanho e modelo possuem o nú- mero do chassi diferente. Figura 1.6 (c): A evolução da abstração: Ficha cadastral de um sistema computacional. Figura 1.6(b): A evolução da abstração: Ficha funciona! Figura 1.6(a): A evolução da abstração: Funcionário do mundo reaL 1J"'.".DtC.TODOSn •••.•••....ooo<UI•• I~-.e.o PO.NW<J, __ ..•....-...•._ •••......,"".•...•.•...•...•.",...•"...•.•._ ••.•e- ."r(>(>I03?l41-7 l_r I-I-----JI;&oI ••""'l.-1 Uooh<v'''l-l ~l .n's, DI. SlLV" I 1><-(;001,( C"""IQ 1 •.•••'~I- O•• """"'~'£!.-/~C01,r43of>:;~1)~\l-15 I ~ •••••L_"'ltl'l wy •. Y!+"J<'r,(I<It'3 D'" JOI,,",J" "',...:!.!!J .-r.L..JlJ...J _,r-.li-J ODO,(.,g.iL1 "-:;1 J02<6-"'''H 1'''''''''-:1 !lUl-1l55 J a- ••I....::.orT'llC 1 C.•_L..C/.l!.l.'..... I " .••..1 00,000-000 I •••.~ •..""""PU',,! •••••••••lIa I V••••"'-'"•••_'l la"" ''''1_1 (DeU >I,f"'IS c c]~~rl"tl\'(l.,l}l'tl'C C.,,,•. ,,vos-l I ;:.;;; •............• ..:. ••• DOOU«ltIol0 111'0 S*OOC&UlAl>O"l oi""" O( no.t.Ou,o~•.•..••.. 1 •..._. :-'"-",,.... .••....•..•.•... 1"_.... .ar "'_,, f' •..-.... O_UI_ :O 'cw.>""""""1ol i O ~IC ••••tI••,U..[~UI,.;=----':-:D:------To:~:~_.-C.IC~D~~~.- ~ ~ I~ ~ ;~ ~ . Abstração: é a técnica de representar, computacionalmente, "coisas" do mundo real por meio de regras e processos que especifiquem como essas "coisas" são estruturadas (carac- terísticas) e como se comportam (funcionam)_ Dessa forma, abstrair um FUNCIONÁRIO(Figura 1_6(a» de uma empresa real para um banco de dados deve-se primeiro estruturar as suas caracteristicas, tais como o nome, cpf, sexo, endereçq e te- lefone_ O primeiro resultado dessa abstração seria a sua ficha funcional (Figura L6(b») em papel e a evolução dessa abstra- ção seria a ficha cadastral em sistema computacional (Figura 1.6(c». -_ ...__ ..-•.•...... ~~G=vJ:& v::-;- 1.3 Terminologias •• I ftS-[ Vila RealRua Vic.enteMoreira27Júlio César Figura 1.9: Representação computacional do registro' deum aluno. Padrão: é sinõnimo de modelo: Na língua inglesa é conhecido como defa,ult ou standard. • Registro: é uma representação computacional de uma instân- cia de um banco de dados. Por exemplo, se o meu nome é Júlio César da Silva, com 27 anos e morador da Rua Vicente Moreira do bairro Vila Real. Então o registro será composto pelos dados dessa pessoa, como mostra a figura a seguir. Figura 1.3: Modelos de copos. UI'm,,;!U~1t: 'BIBUOTECA ~~ ••• rr:r"':.;"'ii7¥P';t1''''''5b%:{(''';'f;Ci;.;;.;.C.- •- '"; .",=w.mr.m ~~~\~~cl";'QM!";::'~':0!~2f.'tWit¥b:\,,:;<:'.t<~::~.'.".:<,::'" ~V:"Aqmffl1!£~ Metadado: é a descrição (especificação) dos dados_ Por exem- plo, o metadado da nota final do aluno desta disciplina de banco de dados é a especificação do tipo de dado, nesse caso. será numérico, mas precisamente do tipo real (fracionário). Modelo: é um padrão, uma forma, que será usada para produ- zir mais elementos, mais objetos, mais registros e todos com as mesmas características, mas nunca esquecendo que, mes- mo sendo mínimas, sempre existírão diferenças. Um exemplo é a máquina de injeção plástica que possui um modelei de copo, Fígura 1.8, que possibilita a produção em série. Figura 1.7(a): Coreção de laranjas. Dados integrados: um banco de dados que possui dados inte- grados é aquele que é desenvolvido para atender as necessi- dades de informação de vários sistemas da empresa, ou seja, quando um banco interrelaciona mais de arquivo de dados. • Sistemas integrados e compartilhados: possibilitam que os usuários e as aplicações possam acessar um ou mais arquivos de dados de forma integrada. Banco de dados: é uma coleção de dados interrelacionados e organizados de forma estruturada que representa um mundo real específico. Como por exemplo, banco de dados de dados. acadêmico, banco de material de construção e banco de da- dos de espécies de animais. . • Dados compartilhados: quando um arquivo de dados pode ser acesso por maisde um usuário! aplicação. I I I I Figura 1.11: Modelo, hierárquico dos dados de disco de computador. Roal Directory Diretório / Raiz Área de Dados G/l~. /~ 8 ~'"9}J0/ \000 File' 8 8 /1\ /1~ 000 000 I ~.J!'if!~UKB.!.: I'"" V'" l ' . I.!?~~~~iOTECAI ~~~~1~t~~1~~t%}i~'(Q;,j}~:~~~~;.:;;.,~.'~. Tabela de Bbal sector Alocação . . ~ . de Espaço ~ iij~/~ Nesse modelo de dados, os dados são estruturados em hierar. . quias denominadas árvores, em que a raiz da hierarquia é a identifica- ção da memória secundária (disco rígido ou hard disk) do computador, também conhecido como "C:/". Os nós (DOCS,APPS, DOS, SPREADe Figura 1.10: Exemplo de Modelo hierárquico. Seguindo a mesma idéia, o modelo hierárquico foi considerado o primeiro modelo de dados, Figura 1.11, e o seu desenvolvimento só foi possível devido à consolidação dos discos de armazenamento endere' çáveis, pois esses discos possibilitaram a exploração de sua estrutura de endereçamento fisico para viabilizar a representação hierárquica. das informações. Presidente 1.4.1 Modelo hierárquico Ahierarquia é uma herança do modelo das organizações empresa. riais que descreve os níveis de subordinação. Por exemplo: presidente, diretor, gerente, coordenadores e supervisores. Veja a figura abaixo: Modelos de Dados são padrões de organização e estruturação de dados que servirão de "fõrma" para armazenar os dados. O principal objetivo do modelo de banco de dados é prover niveis de abstração de dados e esconder detalhes de implementação. A seguir abordaremos resumidamente alguns modelos. ~w~V-V' Y?LL7Rt; ,.':.~ 1.4 Modelos dedados RECURSOS HUMANOS TÉCNICO FINANCEIRO ADMINISTRATIVO! FINANCEIRO COMPRADOR 1.4.2 Modelo em rede Figura 1.12: Hierarquia de uma empresa relacionando o S~OR com os seus respectivos funcio- nários. . ; O mqdelo em rede seguiu como uma evolução do modelo hie. rárquico. A sua principal característica é a eliminação do conceito de hierarquia e possibilidade que um mesmo registro fosse envolvido em várias associações. A Figura 1.3 apresenta o modelo.e seus relaciona. mentos: Figura 1; 13: No modelo de rede o regi~tro~filho(C) se relaciona com dois registros-pai (A e B). fIi~~~£I '5::.;:;,::},;)\~];~jl~~íi~~~1~~~1 GAMES) contêm ocorrências de registros (arquivos), em que cada re. gistro é uma coleção de campos (atributos, características ou metada. dos). O registro da hierarquia que precede a outros é o registro.pai, os outros são chamados de registros.filhos. Por exemplo, o registro'pai APPSpossui os seguintes registros. filhos SPREADe GAMES.Outro termo utilizado para o "nó" é entidade. A entidade representa uma abstração mais realista da "coisa" que se deseja modelar no banco de dados que pode ser um FUNCIONÁRIO,AUTOMÓVEL,ALUNO, METAL, etc. Essa linha que liga o registro. pai (APPS)com os registros-filhos é denominada de associação entre dois registros. Para garantir as regras de associação devemos. conhecer o que é um relacionamento entre um registro-pai e vários registros.filhos. Essaregra, também conhecida de relacionamento significa que existe uma quantidade de vezes que um registro pai (APPS) pode se associar com o registro filho (SPREADe GAMES), definindo-se a cardinalidade 1 (APPS):N(SPREADe GAMES) (lê. se: de um para muitos ou um registro pai para vários registros filhos). Os dados organizados neste modelo podem ser acessados segundo uma sequência hierárquica com uma navegação do topo (pai) para as folhas (filhos) e da esquerda para a direita. Um dos principais problemas des. se modelo é quando um registro pode estar associado a vários registros diferentes, a replicação. Nesse caso, o mesmo registro.filho (GM"ES) poderia estar em mais de um registro-pai (por exemplo, em APPSe em DOS), ocasionando a inconsistência de dados quando houvesse atuali. zação (mudar o nome do registro GAMES)e o desperdício de espaço (o registro.filho GAMESestará armazenado em mais de um registro-pai). O modelo hierárquico foi implementado e comercializado pela IBM com o nome de Information Management System. Outro problema, não menos importante, eram as regras de restrições e consistências de dados desse sistema de gerenciamento de informação, exigindo um esforço dobrado para "na listas e programadores escrever em um pro. grama para cada tipo de aplicação. E, para seguir um padrão visual na construção do esquema do banco de dados hierárquico foram especificados dois componentes bá. sicos: a Caixa, as quais correspondem as entidades e as Linhas; que correspondem às ligações entre os tipos de registros. Veja a figura a seguir: I I i i -1'?~0 I Cod Cliente Num CC 1 20121 2 21582 2 .21352 Cod Cliente Nome Rua Cidade 1 Pedro A São Paulo 2 Maria B Jundiai Num CC Saldo 20121 1200 21582 1320 21352 ... 652 _~.tf.~Pt'l'tfl.~'""'+7,." ..t:'"J,~;;,~,"'.';'''~¥~:''';;.•l~''-'~O-'.:'.-"',"",_. " ~ r';;j:;"'t;.: •••,~" """l~_:l"JWj.;.~"I(1f.Y""''t.ó'\~,:",,{, .•..cd.,..,,-..,vC.:i'':\''_-"''';'''' , ~ -. ," - • 0'-' - •.• -' k~~~ú\'l:C~~ .J~_",~~.r\i:;l::f!{~i:;..dJ41-~:';:.;,<,i~;;'1¥:';,;L~..:;~;:: ':;::..1,,,,_. '. ,-...... _ . ,_." ., Estes dois modelos: Hierárquico e Rede são Orientados a Re- gistroS, isto é, qualquer acesso à base de dados - inserção, consulta, alteração ou remoção - é feito em um registro de cada vez. Omodelo relaciona I é atualmente o mais utilizado comercialmen- te. Essapermanência no mercado desde os anos 60 é devido às seguin- tes filosofias: aumentar a independência de dados nos sistemas geren. ciadores de banco de dados; prover um conjunto de funções apoiadas em álgebra relacional para armazenamento e recuperação de dados. A fundamentação com base na teoria dos conjuntos e álgebra relacional foi resultado de um estudo teórico realizado por CODD.O modelo rela~ cional revelou-se ser o mais flexível e adequado ao solucionar os vários problemas que se colocam no nível da concepção e implementação da base de dados. A estrutura fundamental do modelo relaéional é a relação (tabela); Uma relação é constituída por um ou mais atributos (campos) que traduzem o tipo de dados a armazenar. Cada instância do esquema (linha) é chamada de tupla (registro). O modelo relacioná I não tem caminhos pré-definidos para se fazer acesso aos dados como nos modelos que o precederam. Porém, para trabalhar com essas ta. belas, algumas restrições precisaram ser impostas para evitar aspectos indesejáveis, como: repetição de informação, incapacidade de repre- sentar parte da informação e perda de informação. Essasrestrições são conhecidas como integridade referencial, chaves e integridade de jun- ções de relações. A Figura 1.15 traz exemplos de tabelas sob o modelo relacional com certa simplicidade, pois no Capítulo 3; este assunto será trabalhado com mais profundidade e objetividade. Figura 1.15: Exemplo de modelo relaciona!. 1.4.3 Modelo relaciona I 2.00020578 Jundial São Paulo ~--R 1 R5 I Barueri f------1_2_2_4_58_~_1._2_50_José Pedro Maria _N_o_m_e R_u_a__ C_i_da_d_e_--~INum_CC I Saldo Dessa maneira, de um relacionamento 1:N entre os registros A e B e entre os registros C e B é possível construir um relacionamento M:N entre A e B. Para garantir isto foi estabelecido uma norma para este modelo de dado, com linguagem própria para definição e manipula. ção de dados. Os dados tinham uma forma limitada de independência física. A única garantia era que o sistema deveria recuperar os dados para as aplicações como se eles estivessem armazenados na maneira. indicada nos modelos. Outras regras também foram definidas para dois aspectos chaves dos sistemas gerenciadores de dados: concorrência e segurança. O mecanismo de segurança fornecia uma facilidade na qual parte do banco de dados (ou área) pudesse ser bloqueada para prevenir acessos simultâneos, quando necessário. A sintaxe da segu. ; rança permitia que umasenha fosse associada a cada objeto descrito no esquema. Ao contrário do modelo hierárquico, em que qualquer acesso .aos dados passa pela raiz, o modelo em rede possibilita acesso a qualquer nó da rede sem passar pela raiz. No modelo em rede o sis- tema comercial mais divulgado foi o CAIDMSda Computer Associates. O diagrama para representar os conceitos do modelo em redes consiste em dois componentes básicos: Caixas, que correspondem aos registros. e Linhas, que correspondem às associações. A Figura 1.14 ilustra um exemplo de diagrama do modelo em rede. No modelo em rede, os registros são organizados em grafos onde aparece um único tipo de associação (set) que define uma relação 1:N entre 2 tipos de registros: proprietário e membro. Figura 1.14: Exemplo de mOdelo de rede. Diagrama de estrutura de dados' cliente ..Conta corrente. .,. :+:,Cliente Conta'Nome: string Num_CC: InteiroRua: string Saldo: real Cidade: string Possuir alto grau de abstração de dados, possibilitando confia- bilidade e eficiência no armazenamento dos dados e permitin- do a utilização de diferentes tipos de gerenciadores de dados através de linguagens de consultas padronizadas; Interface ágil a todos os níveis de usuários, no intuito de mini- mizaro esforço cognitvo; figura 1.16: Exemplo de modelo orientado a objetas. Múltiplas plataformas (UNIX, Windows NT, Windows Work- group, etc); Conversão e mapeamento da diferença semântica entre os paradigmas utilizados no desenvolvimento 'de interfaces (im- perativo (ou Procedural), Orientado' a Objeto, Orientado a Evento), Servidores de Dados (Relacional) e Programação dos Aplicativos (Imperativo, Orientado a Objetos). 1.5 Arquitetura de banco de dados ,. Os modelos são apenas modelos e como isso poderá ser imple- mentado? Organizar a implementação é possibilitar uma arquitetura consistente. Mas o que é uma arquitetura. Arquitetura no dicionário Aurélio é Planejar e Projetar. Agora com os modelos de dados bem de- finidos outras características deveriam ser incorporadas na arquitetura do banco de dados, tais como: Os projetos lógico e funcional do Banco de Dados devem ser capazes de manter grande volume de informações armazena- das a curto, médio e longo prazo, Contudo, estes sistemas necessitam guardar representações das' estruturas de dados' que utilizam no armazenamento permanente. A,' estrutura padrão para os bancos de dados orientados a objetos foi feita pelo Object Database Management Group (ODMG), o qual é formado por representantes dos principais fabricantes de banco de dados orien. tados a objeto disponíveis comercialmente, tendo o compromisso de incorporar o padrão em seus produtos. Os bancos de dados chegaram ao seu ápice a partir da definição de modelo orientado a objeto, o qual é um dos modelos mais recentes e que por seu alto grau de abstração foi pouco implementado até o momento. Dentre as principais características do modelo orientado a ob. jetos que contribuíram para a evolução dos bancos de dados estão o limite de armazenamento e representação semântica impostas no modelo relaciona!. Alguns exemplos são os sist~mas de informações geográficas (SIG), os sistemas CAD,e CAM, que são mais facilmente construídos usando tipos complexos de dados. A habilidade para criar, os tipos de dados necessários é uma característica das linguagens de programação orientadas a objetos. it~~kI4m~ ';'::'~,'{;i'.:i;':~:~~~~if~r0r~W~~t~r'fi1r~í~H~~r;,~}D~"~I'',o- ~,~{r.?~"~.~.,~.J,lJ;,'J'",..,;,-YLJ4;,~.,~,;f,::.if'~,'I~,j,~,J[~.;~,:,;,;,~",j,:,:,;:,_~,~,-:,;:>,;'~._':~,~.:~:.;,3,'~~'''£'lo'iLJj;,:;''@GV1!'.~W:;n ,::~~~,,;>;:.',~t'.~;:it.~~-:::~:;fA'J:.U.l'['.l..,t~t.~.:::&.~~'..it;ft:t'1E.~Ja~.Jua1f....."~ . ~_."~_ _.,,''- _, ~ _ ", T ••.,- 1.4.4 Modelo orientado a objetos t O termo modelo orientado a objetos é usado para documentar o padrão que contém a descrição geral das facilidades de um conjunto de linguagens de programação orientadas a objetos e a biblioteca de classes que pode formar a base para o Sistema de Banco de Dados. Quando os bancos de dados orientados a objetos foram introduzidos, algumas das falhas perceptíveis do modelo relacional pareceram ter sido solucionadas com esta tecnologia e acreditava-se que tais bancos de dados ganhariam grande parcela do mercado. Hoje, porém, acre. dita.se que os bancos de dados orientados a objetos serão usados em aplicações especializadas, enquanto os sistemas relacionais continua- rão a sustentar os negócios tradicionais, em que as estruturas de dados baseadas em relações sejam suficientes. O diagrama de classes UML serve, geralmente, como o esquema para o modelo de dados orientado a objetos. Observe o exemplo da Figura'1. 16, e compare as diferenças com o modelo anterior. II " , I I i I, i I I I I ';3S::1-h....•....::.:, Base de '-- Dados SQL ------> ~----- Tabela Servidor de Dados: Relacional , I, I C~se -f7,,,, I I,,, Cu~sor ~ , I, I,,, Aplidativo,, <------ Objetos de Interface Evento~de Interface -----,-7 Construção Intefaces Paradigma de Interfaces: Imperativo Orientado a Objeto Orientado a Evento Figura 1.18: Exemplo da arquitetura cliente-servidor. ~;.~1.l~.fJ:{L~lI~~Fi~:ftr~~.â~~~~~'~i~;:>;':';~l"}'_ No começo os SGBDsusavam esses computadores da mesma ma- neira que usavam os terminais, ou seja, o SGBDera centralizado e toda suafuncionalidade, execução de programas aplicativos e processamen- to da interface do usuário eram executados em apenas uma máquina. Gradualmente, os SGBDs começaram a explorar a disponibilidade do poder de processamento no lado do usuário, o que levou à arquitetura cliente-servidor- Na arquitetura cliente-servidor a idéia principal era dividir am- bientes de computação onde um grande número de PCs, estações de trabalho, servidores de arquivos, impressoras, servidores de banco de dados e outros equipamentos são conectados juntos por uma rede_ Dessaforma, começaram a serem definidos os servidores especializa- dos, tais como servidor de arquivos, que mantém os arquivos de máqui- nas clientes, ou servidores de impressão que podem estar conectados a várias impressoras; assim, quando se desejar imprimir algo, todas as requisições de impressão são enviadas a este servidor_ As máqui- ,...~. Consultas/Programas de Aplicações ~.~. ~.~ Sistema de Base de Dados' Figura 1. ~7: Arquitetura de um.sistema de gerenciamento de banco de dados. Usuá rios/Progr amadores Reií"'<-,,~:\'.,';:};':~i:~;:P;';~~~~:~#~1'i~~~!4!~~1.~1~ As primeiras arquiteturas' funcionaram nos primeiros sistemas computacionais, os mainframes, para executar o processamento prin- cipal e de todas as funções do sistema, incluindo os programas aplica-o tivos, programas de interface com o usuário. Mas toda essa robustez' deveria possuir um sistema maior e capaz de prover uma manutenção' do banco de dados, respeitando o modelo de dados e garantido os as-. pectos arquiteturais_ Foi partindo dessa convergência de tecnologias e' robustez que surgiu os Sistemas de Gerenciamento de Banco de Dados, também conhecido pelas siglas SGBD_Agora o banco de dados não es- tava mais sozinho tinha um sistema e uma arquitetura_ Tecnicamente falando, um SGBDé uma coleção de programas que permitem aos usu-' ários criarem e manipularem uma base de dados. Um SGBD é, assim, um sistema de software de propósito geral que facilita o processo de definir, construir e manipular bases de dados de diversas aplicações. Definir uma base de dados envolve a especificação de tipos de dados a serem armazenados na base de dados_ Construir uma base de dados é o processo de armazenar os dados em algum meio que seja contro- lado pelo SGBDe manipular uma base de dados indica a utilização de funções como a de consulta, para recuperar dados específicos, modifi- cação da base de dados para refletir mudanças no mini-mundo (inser- ções,atualizações e remoções), e geração de relatórios. 3. O nível externo ou visão possui esquemas externos ou visões de usuários. Cada esquema externo descreve a visão da base de dados de um grupo de USUáriosda base de dados. ~~~t:lNI.;l~~~~gt~t1f~Jí-~~tt,:~'-'-\-,flm~ Uma base de dados representa algum aspecto do mundo real, algumas vezes chamado de "mini-mundo". Mudanças no mini- mundo provocam mudanças na base de dados. Aarquitetura mais difundida na literatura é a Arquitetura "Three- Schema" (também conhecida como arquitetura ANSI/SPARC), proposta por Tsichritzis & Klug em 1978. A meta desta arquitetura, exibida na Fi- gura 1.19, é separar as aplicações de usuários da base de dados física. Nesta arquitetura, esquemas podem ser definidos em três níveis: 1. O nível interno tem um esquema interno 'que descreve a estru-' tura de armazenamento físico da base de dados. O esquema interno usa um modelo de dados físico e descreve todos os detalhes de armazenamento de dados e caminhos de acesso à base de dados; 2. O nivel conceitual tem um esquema conceitual que' desúeve' a estrutura de toda a base de dados. O esquema conceitual é uma descrição global da base de dados, que omite detâlhes da estrutura de armazenamento fisico e se concentra na'des- crição de entidades, tipos de dados, relacionamentos eres- trições. Um modelo de dados de alto-nível ou um modelo de dados de implementação podem ser utilizados neste nível. Cada visão descreve, tipicamente, a parte da base de dados que' um particular grupo de usuários está interessado e esconde deste o restante da base de dados. Um modelo de dados de alto-nivelou um modelo de dados de implementação podem ser usadosneste 'nível. Uma base de dados é uma coleção de dados logicamente re- ; - lacionados, com algum significado. Associações aleatórias de i~ dados não podem ser chamadas de base de dados. Uma base de dados é projetada, construída e preenchida (ins- tanciada) com dados para um propósito específico. Ela tem um grupo de usuários e algumas aplicações pré-concebidas para atendê-los_ ~~~., ' "';<.:,;, ;,;,'.i~".:i',:!é.E~.f.?;gl,.,~.,:.'~~,",.,~~~i(~,',q.,~';':f1J;iJ;;,~,;~'';;~3Z~' ,-o _~." .• ",'",.-; __"•• """"':'0,.", .• _"',, ..:,. .•.W&'•....~l.'t~; .....•!~..".;.! nas clientes disponibilizam para o usuário as interfaces apropriadas para utilizar esses servidores, bem como poder de processamento para executar aplicações locais. Esta arquitetura se tornou muito popular' por algumas razões. Primeiro, a facilidade de implementação dada era a clara separação das funcionalidades e dos servidores. Segundo, um . servidor é inteligentemente utilizado porque as tarefas mais simples são delegadas às máquinas clientes mais baratas. Além disso, o usu-: ário pode executar uma interface gráfica que lhe é familiar, ao invés:' de usar a interface do servidor_ Desta maneira, a arquitetura cliente-;, servidor foi incorporada aos SGBDscomerciais. Diferentes técnicas fo- ram propostas para se implementar essa arquitetura, sendo que a mais adotada pelo's Sistemas Gerenciadores de Banco de Dados Relacionais (SGBDRs) comerciais é a inclusão da funcionalidade de um SGBDcen. tralizado no lado do servidor. As consultas e a funcionalidade transa- cional permanecem no servidor, sendo que este é chamado de servidor .. de consulta ou servidor de transação_ É assim que um servidor SQL é ••• fornecido aos clientes. Cada cliente tem que formular suas consultas , SQL, prover a interface do usuário e as funções de interface usando. 'uma linguagem de programação_ O cliente pode também se referir a um dicionário de dados o qual inclui informações sobre a distribuição dos dados em vários servidores SQL, bem como os módulos para a de- composição de uma consulta global em um número de consultas locais que podem ser, executadas em vários sitios. Comumente o servidor SQL também é chamado de back-end machine e o cliente de front-end , machine. Como SQLprovê uma linguagem padrão para o SGBDRs,esta' criou o ponto de divisão lógica entre o cliente e o servidor. Foram esses aspectos que permitiram uma definição precisa das principais características dos sistemas de gerenciamento de banco de l', dados: 11 I li2.~.£j I, I, 1.5.1 Profissionais de banco de dados Administrador da Base de Dados: em qualquer organização onde muitas pessoas compartilham muitos recursos, existe a necessidade de um administrador chefe para supervisionar e gerenciar estes recursos. Num ambiente de base de dados, o recurso primário é a própria base de dados e os recursos secundários são o próprio SGBD'e softwares ;elacioriàdos .. A administração desses recursos é de responsabilidade do DBA ("Database Administrator"). O DBA é responsável por autori- zar acesso à base de dados e coordenar'e monitorar seu uso. O DBAé responsável por problemas, tais como, quebra de segu- rança ou baixo desempenho. Em grandes organizações; o DBA .. é auxiliado por técnicos; ~",..~l!JI'{f'!J'ii:'l:?1i'w]i'''"''i':p::.~"}(i'''' 'c.; "',,' =!"',11!:t",~~~~Gm,~~~i:::lÇ~'2;i0f:~;~:,.':Ú:~Yf~\~~{':;~'z.,~ ~gZW.¥tiL~ de dados removendo um tipo de registro. Neste último caso, .esquemas externos que se referem apenas aos dados remanes- centes não devem ser afetados; Independência Fisica de Dados: É a capacidade de alterar o esquema interno sem ter que alterar o esquema conceitual externo. Mudanças no esquema interno peidem ser necessárias devido a alguma reorganização de arquivos físicos para melho- rar o desempenho nas recuperações e/ou modificaçóes. Após a reorganização, se nenhum dado foi adicionado ou perdido, .não haverá necessidade de modificar o esquema conceitual. •USUÁRIOS FINAIS F.i~ura1.19 Mode:ta de visão de um Sistema de Gerenciamento de Banco de Dados. BASE DE DADOS ARMAZENADA NíVEL INTERNO . Muitos SGBD's não separam os três níveis completamente. Pode acontecer que alguns SGBD's incluam detalhes do nível interno no es. quema conceitual. Em muitos SGBD's que permitem visões, os esque. mas externos são especificados com o mesmo modelo de dados usado no nível conceitual. Note que os três esquemas são apen'as descricões dos dados. A arquitetura "three.schema" pode ser utilizada para explicar conceitos de independência de dados, que podem ser definidos como a capacidade de. alterar o esquema de um nível sem ter que alterar o esquema no próximo nível superior. Dois tipos de independência de dados podem ser definidos: Independência Lógica de Dados: É a capacidade de alterar o esquema conceitual sem ter que mudar os esquemas ex- ternos ou programas de aplicação. Pode.se mudar o esquema conceitual para expandir a base de dados, com a adição de novos tipos de registros (ou itens de dados), ou reduzir a base " '. Usuários Finais: existem profissionais que precisam ter acesso à base de dados para consultàr, modificar e gerar relatórios, A base de dados existe para estes usuários. L • Compartilhamento de dados: SGBD~smultiusuários devem fornecer controle de concorrência para assegurar que atu- alizações simultãneas resultem em modificações corretas. Um outro mecanismo que permite a noçãó de compartilha' menta de dados em um SGBDmultiusuário é a' facilidade de dennir visões de usuário, que é usada para especifiéar a' porção da base de dados que é de interesse para um grupo particular de usuários; • Tipicamente, usuários e grupos de usuários recebem uma conta protegida por palavras-chaves, que é usada para se obter acesso à' base de dados, o que significa dizer que contas diferentes possuem restrições de acesso diferentes. Restrições de acesso multiusuário: quando multiplos usu- ários compartilham uma base de dados, é comum que'al- guns usuários não autorizados não tenham acesso a todas as informações da base de dados. Por exemplo, 05 dados financeiros são frequentemente considerados confidenciais e, desse modo, somente pessoas autorizadas devem teracesso. Além disso, pode ser permitido a alguns usuários, apenas a recuperação dos dados. Já, para outros, sâo per- mitidas a recuperação e a modificação. Assim, o tipo de operação de acesso - recuperação ou modificação" pode também ser controlado. o Desperdício de espaço; o Inconsistência: alteração em alguns arquivos e em outros não, ou em todos os arquivos, porém, de maneira independe'nte; o Duplicação de esforços; Problemas: ~~~l'Jl'utt'fr.h~:;,;~~";g:F0"':;';,;;?;i,.';:';'" .~~1<.1 ~~~t~~4h'&,;.gm~".iÇ:.h{,", ~JS~.:~j:;)':,:,:'~;",~"':.'----' ;:;;; ;':;':1;z; Essa evolução possibilitou a definição da verdadeirà' capacidade que um SGBDdeveria ter, tal como: Controle de redundância: no processamento tradicional de ar. quivos, muitos grupos de usuários mantêm seus próprios arquivos para manipular suas aplicações de processamento, que pode provocar o ar- mazenamento de informações redundantes; I • Analistas de Sistemas e Programadores de Aplicação; - Projetistas e Implementadores de SGBD; - Desenvolvedores de Ferramentas; - Operadores de Manutenção. Profissionais de Apoio: 1.5.2 A evolução dos SGBDs Tabela 1.1: A evoLuçãoentre o processamento tradicional versus a base de dados. =~~~~':WV- projeto da base dedados possa ser capaz de dar subsídio aos requisitos de todos os grupos de usuários; , i !.Podemos visualizar a evolução gradativa que os bancos de dados tiveram até aos Sistemas de Gerenciamento de Banco de Dados. Na Tabela 1.1 são mostradas as principais características que diferem um sistema desenvolvido na perspectiva de banco de dados versus um desenvolvimento pelo tradicional gerenciamento.de arquivos. Processamento < tradi- Basede Dados Vantagensda base decionat de Arquivos Dados Definição dos dados é Eliminação de re.parte do código de pro. Meta Dados dundânciasgramas de aplicação Dependência entre Capazde permitir di- Eliminação de re-aplicação especifica e versas aplicações dundânciasdados Independências entre Facilidade de manuten. dados e programas ção Representação de da- Representação con- Facilidade de manuten-ceitual através dedos ao nível físico dados e programas ção Cadavisão é imple. Permite múltiplasmentada por módulos visões Facilidade de consultasespecíficosI -h9'. I rg;r.4i!~~ ,:,'!::.r:)~\:E-:lt~:~:~~t~~~t3lt~~W~[~~l~~!tI;-4 Um SGBOdeve fornecer um subsistema de autorização e.. segurança, que é usado pelo OBApara criar contas e espe- cificar restrições nas contas. O SGBOdeve então obrigar estas restrições automaticamente. Note que um controle similar pode ser aplicado ao software do SGBO; Fornecimento de múltiplas interfaces: devido a6s vários i tipos de usuários, com variados níveis de conhecimento técnico, um SGBOdeve fornecer uma variedade de interfa- cés a tendê-los_ Os tipos de interfaces incluem linguagens de consulta para usuários ocasionais, interfaces de lingua. gem de programação para programadores de aplicações, formulários e interfaces dirigidas por menus para usuários ~ comuns; ~ Representação de relacionamento complexo entre da-I dos: uma base de dados pode possuir uma variedade de da. dos que estão inter-relacionados de muitas maneiras. Um SGBOdeve ter a capacidade de representar uma variedade de relacionamentos complexos entre dados, bem como re. cuperár e modificar dados relacionados de maneira fácil e eficiente; Reforçar restrições de integridade: muitas aplicações de base de dados terão certas restrições de integridade de dados. A fprma mais elementar de restrição de integridade é a especificação do tipo de dado de cada item. Existem, tipos de restrições'mais'complexas. Um tipo de restrição que ocorre freqüentemente é a especificação de que um registro de um arquivo deve estar relacionado a registros de outros arquivos. Um outro tipo de restrição especifica a unicidade sobre itens de dados. Estas restrições são de- ' rivadas da semântica dos dados e do mini-mundo que eles representam. Algumas restrições podem ser especificadas ao SGSOe automaticamente executadas. Outras restrições podem ser verificadas pelos programas de' atualização ou no tempo da entrada de dados. Note que um item de dados pode ser "inserido" erroneamente, mas ainda atender as restrições de integridade; Fornecer backup e restauração: Um SGBOdeve fornecer _ ~~.g~~~:Mr~!t~!?~~4:~;[i;;/~;.':~fB£i'£?1JE~ recursos para res~auração caso ocorram falhas de hardwa- re ou software. O subsistema de backup e restauracão do SGBOé o responsável pela restauração ..Por exempl~, se o sistema de computador falhar no meio da execução de um programa que esteja realizando uma alteração complexa na base de dados, o subsistema de restauração é responsá- vel por assegurar que a base de dados seja restaurada ao estado anterior ao início da execução do programa. Alter- nativamente, o subsistema de restauração poderia assegu- . rar que o programa seja reexecutado a partir do ponto em que havia sido interrompido. • Potencial para obrigar a pàdronização: a abordagem de base de dados permite que o OBAdefina e obrigue a pa- dronização entre os usuários da base de dados em grandes organizações. Isso facilita a comunicação ,e a cooperação entre vários departamentos, projet~s e usuários. Padrões podem ser definidos para formatos de nomes, elementos de dados, telas, relatórios, terminologia's, etc. O DBApode obrigar a padronização em um ambiente de base de dados centralizado, muito mais facilmente que em um ambiente onde cada usuário ou grupo tem o controle de seus próprios arquivos e programas de aplicação;, Flexibilidade: mudanças na estrutura de,uma base de da- dos podem ser necessárias devido a mudanças nos requisi- tos. Por exemplo, um novo grupo de usuários pode surgir com necessidade de informações adicionais, ainda não dis- poníveis na base de dados. Alguns SGBO's permitem que tais mudanças na estrutura da base de dados sejam rea- lizadas sem afetar a maioria dos ,programas de aplicações existentes; • Redução do tempo de desenvolvimento de aplicações: uma das principais características de venda da abordagem de base de dados é o tempo reduzido' para (, desenvolvi- mento de novas aplicações, c0rl)0 a recuperação de certos dados da base' de dados para a impressão de novos relató- rios. Projetar e implementar uma nová base"de dados pode ••• li I ~tti:r .~ ',.,- '.' 0<- ,.' • _, •••• le dados ,, ! , ••10 padrónizado de desenvolvi- (~ipular os dados com totalliberda- a e física de dados. Para isto, foram i(Standard Query Language). I, • Linguagem de Der.. 'toados ("Data Definitian Language" - DDL):é utilizada pek A e projetistas de base de dados para definir seus esquemas. J SGBDtem um.éompilador para pro- - cessar desCrições em DDLe construir a descrição do esquema armazenado no catálogo; • Linguagem de Manipulação de Dados ("Data Manipulatian Lan- guage" - DML):uma vez que o esquema é compilado e a base de dados preenchida com dados, os usuários têm que ter al- gum modo de manipular os dados. Manipulações comuns como recuperação, inserção, remoção e modificação de dados são realizadas pela DML. 1.7 Resumo Os dados, as informações, a organização, a estruturação, o pa- drão ou modelo, os níveis e entre outros termos que estão intirT)amen- te ligados ao conceito de Banco de Dados é apenas áto~o no meio do mundo dos Sistemas de Gerenciamento de Banco de Dados. Entre os conceitos introdutórios a abstração de dados e a mode- lagem são os mais desafiadores para os estudantes que desejam de- senvolver seus primeiros sistemas computacionais. A abstração mexe como imaginário e por isso você precisa ser criativo na hora descrever as características de um objeto que não se vê, como por exemplo, os • Economia de escala: a abordagem de SGBD's permite a consolidacão de dados e de aplicações reduzindo-se, des- se modo, '0 desperdício em atividades redundantes de pro.. cessamentoem diferentes projetos ou departamentos. Isto possibilita à organização como um todo investir em proces' sadores mais poderosos, e periféricos de armazenamento e de comunicação mais eficientes. 1.5.3 Quando não utilizar um SGBD Os investimentos com SGBDssão elevados e por isso não justifica implementá-lo quando as bases de dados e as aplicaç~es são simpl~s e. bem definidas sem expectativa de mudança. Tambem quando nao existem re~trições de tempo que não podem ser satisfeitas em SGBDs., Além disso, não justificar usar quando não há necessidade de acesso ~ multiusuário. ., . ~ -:-"-";'.:"":i",>;"lJ,j;_:'1f:'\}j.1;~;;::-;:::t~~,)t{':F:lN~J:ti\4}~~~.." •-~;;;~"m,~:~~=,y- '-'~'-,..,"',,'',<,~~,~i">-.,~.,,,'1í-~{~'t-l.!.<!',~:t~~~';i¥'~';'-;'l''''''''''''iii!~~~ ',' -:'c;"\~:',';\''''",?::N;.'~,;}:~-~;:;:,,,,;;,'-!..:.'~;~,*,.~$''~,~,,-:-,'~'- .•.__ tomar mais tempo do que escrever uma simples aplicação. .;~R.,;",." !8778! ---- .- de arquivos especializada. Porém, uma vez que a base de }~l;.';:o~,:!.!rrca!"::~ntG$_!J& b~J1cC'~e'H(jos ~:~~: =~~71:ç;:, u~~~n~:~~~m~;t~;urts:~Pdoep~~a;~B~i~ ;~~};:;~:~:,;;:;~:" W"3J<v14 bastante reduzido. O tempo para se desenvolver uma nova ; ~~~o~_!.~~_9~~_~_~mpr%ti[i!j~;üSicanEt, aplicação em um SGBDé estimado em 1/4 a 1/6 do que ------ _ o tempq' de desenvolvimentoJ• usando.se apenas o sistema t".._,-<vl2'jli!l('i::.~d~ lírigúàgen.' de arquivos tradicionill, devido às facilidades de interfaces' disponíveis em um SGBD; Disponibilidade de informações atualizadas: tão logo um usuário modifique uma base de dados, todos os outros usu. ários "sentem" imediatamente esta modificação. Esta dis. ponibilidade de informações atualizadas é essencial para muitas aplicações, tais como sistemas de reservas de pas. sagens aéreas ou bases de dados bancárias. Isso somente é. possível devido ao subsistema de controle de concorrência e restauração do SGBD; i II ( I ,i "~ '" !:" ,.c.XerC]CIOS d) Sistema manual, linear e de banco de dados e) Nenhuma das respostas. c) Ficha de registro manual, processamento de arquivos e banco de dados. e) Elevar a velocidade de uma corrente elétrica. 1. As grandes descobertas normalmente acontecem em 'função de alo gum problema, como exemplo, o transporte surgiu da nec~ssida:de de se locomover rapidamente, a eletricidade para gerar energia, o computador para automatizar e etc. Dessa.forma, marque a altero nativa correta que corresponde ao principal motivo do surgimento dos bancos de dados computacional? a) Para possibilitar a edição de texto eletrônico. b) Criar um mecanismo de automação de uma imagem 3D: c) Executar filmes digitais. d) Manter grande quantidade de dados. 2. Marque a alternativa correta que enumera, por ordem cronológica, as três fases de evolução do Banco de Dados a) Válvulas, transistores e banco de dados. b) Manual, mecânica e banco de dados. dados sobre o comportamento do clima e do tempo. Outras caracterís. ticas são mais fáceis de serem identificada, por exemplo, os dados de. um funcionário e quando isso é feito estamos definindo a estrutura do dado. Mas quando criamos um conjunto de estruturas de dados esta.. mos na verdade modelando o que será em seguida o Banco de Dados. Como vimos, criar uma estrutura requer conhecimento sobre o objeto estudàdo e quando mais complexo mais dificil será encontrar a~ sua forma (modelo). Então, para especificarmos um conjunto de estru .. turas desses dados notoriamente precisaremos de uma linguagem de' modelagem de dados com regras bem definidas. . Para isto, nos próximos capítulos iremos detalhar e usar efeti. vamente todos esses aspectos introdutórios. Então não se esqueça de; estudar tudo novamente e verifique se ainda ficou alguma dúvida para f que a compreensão dos conteúdos a seguir não seja prejudicada. f I i I -~4~, a) "Jairo tem dois filhos chamados de Lúcia e Miguel. Cintia tem uma filha chamada Júlia. b) "Jairo tem dois filhos chamados de Lúcia e Miguel. Cintia tem uma filha chamada Júlia. Recentemente, o Miguel e a Júlia se casaram e tiveram um filho chamado de Marco". Terminologias ) e.news ou jornal eletrônico. ) O endereço de email do aluno. ) O número do chassi de automóvel. ) Um conjunto de casas residenciais. ) O CPF é composto por onze números inteiros do sistema decimal. ) Imagem de uma peça em três dimensôes. ) Uma forma de bolo. l Biblioteca digital. ) Biblioteca de livros. ) Abacaxi, R$3,00, kg. ) 373.473.783.00. (A) Modelo ( B )Coleção ( C.) Instância ( D )Registro ( E )Metadados ( F )Abstração Exemplos relacionas com as terminologias. a) Organização de dados, repetição de dados e padronização. b) Padrão, modelo e fôrma. c) Hierarquia, sincronismo e redundância. d) Flexibilidade, organização e desperdício de espaço. e) Formato registro, fundamentação matemática e pesquisa se- quencial. 3. Relacione a primeira coluna com a segunda: 4. Marque a alternativa correta que melhor caracteriza a definição de Modelos de Dados. 2.1 Introdução Modelo Entidade Reladonamentos--------- De acordo com os níveis de abstração vistos no Capítulo 1, o nÍ- vel conceitual corresponde ao nível em que, a partir da escolha de um modelo de dados, devemos seguir os conceitos pertinentes a realidade a ser modelada. Dessa forma, neste capítulo apresentaremos, deta. lhadamente, ~Modelo Entidade e Relacioname~to (MER),o qual é um modelo conceitual de dados introduzido por Peter Chen em 1976. Importante ressaltar que, ao se escolher um modelo de dados, devemos respeitar e seguir os conceitos por ele definidos. Daí porque, é íncorreto chamar, por exemplo, entidade de tabela, pois tabela COf- "responde a um conceito usado em outro modelo de dados, no caso "o ModeloRelacional, que por sua vez pertence a outro nível denominado nível lógico. OMERé uma execelente ferramenta para se fazer a modelagem de dados de um sistema .. Por pertencer ao nível conceitual, esse mo- delo contempla ""quaisos dados deverão ser armazenados no banco de dados, não se preocupando como. Além disso, uma boa modelagem usando o MER,permíte ao projetista de banco de dados validar se os dados modelados atendem aos requisitos levantados. Aseguir estudaremos cada conceito desse modelo, apresentando sua palicabilidade, utilizando, como estudo de caso, um sistema que • I Uma entidade é uma abstração (isto é, um modelo puramente mental) de um ente existente no mundo real. Assim, uma entidade pode ser a abstração de um ser, De um fato, de uma coisa, de um organismo social, etc. Por exemplo, com base no estudo de caso, são entidades as representações abstratas de um médico, de um paciente, de um exame, etc. Em outras aplicações, são entidades as abstrações dosmateriais usados por uma empresa, os departamentos e divisões da mesma, os seus funcionários, etc. (SETZER,2005). MÉDICOS Figura 2.1 Representação de um conjunto de entidades Uma coleção de entidades que têm características semelhantes é denomida de conjunto de entidades ou tipo de entidades. Sendo assim, um conjunto de entidades somente deve representar objetos no mundo real da mesma categoria. Muitas vezes, o conjunto de en- , tidades é chamado simplesmente de entidades. Porém é importante esclarecer que entidade é o elemento individual dentro do conjunto de entidades. Por exemplo podemos ter o conjunto de entidades PACIEN- TES,e dentro da mesma termos a entidade João,' a entidade Ana, etc, ou seja, o conjunto de entidades PACIENTEScontém o agrupamento dos diferentes p,acientes existentes no contexto do sistema. Por representar o agrupamento de várias "coisas", determina- remos como padão para os nomes desses conjuntos sempre palavras no plural. Ressaltanto que, por questões de senso comum, usaremos o termo entidade para determinar um conjunto de entidades, embora este tenha um sentido mais amplo e completo. 2.3.1 Representaçãográfica Um conjunto de entidades é representado graficamente po, um retângulo com o nome da entidade ao meio, conforme Figura 2.1. Ge- , ralmente, esse nome é umsubstantlvo no plural. controla atendimento de consultas e solicitações de exames de uma Clínica, o qual está descrito como Sistema Principal na seção a seguir. 2.2 Sistema principal Sobre os médicos é necessário que o sistema armazene o CRM, nome, endereço, fones (residencial e celular) e as especialidades (note o plural) em que atuam (oftalmologista, ortopedista, etc). Cada espe' cialidade também pode ter mais deum médico atuando. Sobre os pacientes deve-se armazenar o nome, endereço formado por rua, número, CEPe bairro, fones (residencial, celular e contato). Para se consultar o paciente pode agendar a data e hora da consulta e o nome do médico. Durante uma consulta o médico captura e repassa ao sistema os sintomas do paciente e.o diagnóstico e ao final desta, ele pode fazer a solicitação de um exame, para que o paciente faça. É necessário que o sistema mantenha o controle sobre qual médico solicitou e qual realizou o exame (já que o médico que realiza não é o mesmo que solicita). Sobre a realização do exame deve-se guardar a data da realização e o resultado. Para melhor atender seus clientes, a clínica Salva Vidas deseja informatizar seus serviços de forma a gerar controle sobre os agenda. mentos e realização de consultas, solicitação e realização de exames. Para isso, é necessário 'cadastrar os dados sobre os pacientes, exames, médicos, especialidades dos médicos e funcionários, entre outros. Com base nas informações descritas faça a modelagem de dados para o sistema. Se necessário complemente ou incremente a descri. ção. !, i, -- I~_--:-I\~z:: I I I e I. I••I. I.I. e•• 11: ie~e--•e••~. IJ-ie:-•le iei., ie['eL lil!._ Il'le ,ílj. _I~-,-; ,54?.Ue 1, ' ..•.. ~~"Jr.di2:v>. 2.3.2 Classificação o conjunto de entidades pode ser classificado em 2 tipos distin- tos: a) Entidades Fortes - que é uma entidade que tem existência . própria, ou seja, não depende de outra para existir. Sua nota- ção é dada por um retângulo com o nome ao centro, conforme Figura 2.2. b) Entidades Fracas - Aocontrário das Entidades Fortes as Enti- dades Fracas não existem por si só, ou seja, elas dependem de uma entidade Forte para existir. Portanto, podemos afirmar que uma entidade Fraca sempre depende existencialmente de uma Entidade Forte. Sua representação é um retângulo duplo conforme mostra a Figura 2_3. PACIENTES Figura 2.2 - Entidade Forte Pacientes [~~D~EP~E~ND~E~NT~E~S~II Figura 1.3 - Entidade Fraca Dependentes '.~"::,::,_;..._' Dicas:"';""':: ';";/;.~, . ".:':,~'f. ,\ ..:,,-:,,,--c-.o ,_"-,' _ . "_,,_' " ,',- •..•. , ••. - 0.0 .>:,:','~~_." :."'., i'.~'..',:' .,••, .. , .: ';~~'.' Para identificai: um~'entidad~ 'f~~t~, obsé;.y~ seel",'re' : '. ., pr~s~nta ~lg6 que será inseridà de forma independente , , •,,:.~',::-":~~x~:~:,e;oar:i,~~~,;desenvol~i~~;;.~~.s~ja" ve!ifi,qÚe;{~el~ -:.' ',' ' ': ' • Os nomes dos conjuntos de entldades 'devem ser sempre ", ,C" ",:' substantivos;' pois apii~am-'sé::i:om~ditàanterià;'mente," ,', a entes c~m existênciáprópria;' , . ':' -" .. :- e_~ ' .•••..•••••. o., -"', " ,.:};;;:~~I~:~~~~~~al~~;~t~1~:'~;:~~i~a;~~~;d~;~l:~:~:~~~;,'~::::~,.' " .f-.: outra coisa:'.Por exempló; 'um,funcionário,de, umaem,' ',' , "'~:presâpode' terdepen'dentes p~~a'~ecebeiem b~nefbos. ' :\~~y-\'~. '-.~<.- -"'~';.-", _ .':' _,_.~ :,' "'~' ,.::: <, /"'-, -~,<.,::.• '-,.,~'.,.:'~'.'-:, '-,"'-. -'o :,':'-:'- c." ',-, -/:- :':"~''- c>; ;:.::' c",": .--:":-::.'....-.',."". "'c":"" ',., .,.Dessa,.forma;~sera ,necessano',efetuar' um' cadastro ,dos~ , "::[mesmos: Entrétàni:~;'~aso'o: funi:ioná~;õs~ja demitido - '.,.':~\S~:~;~s~_~':cada_s~rp:.-;ser~~~'êluid~:,~;:':'.é:on~eq'uente'mente;: tÓdb~:~: '>:'/':,,~:~...:.~- ":.":-:,,,.,,;..'..-....:.< \-,-t':.~'<,:."'.,,:;i.' --'....:..'_~...:,.'.-.:~...,_';.' :;-, ,',' '>" ',:",,-:,~ '-'i.,:''''' :',:,-,';',' _:•.,:,." ",',',:.' C',,,":",; , ';5;:: 'os depel}dentes cadastrados para'ele também o serão'-' :,""_.-.,_. __ .'.' •.. __ .,.' ... ,' "-"""_'-"-"_".' __,' ,."_, .. ,,,"'._"',, __u_',,",-,_, ", .~.,-' __ ... _- •. , 2.3.3 Regras/Sugestões de modelagem 1.. Nomes de conjuntos de entidades deverão estar sempre no pluraL 2. Umconjunto de entidades deve ser único na modelagem, ou seja, em uma modelagem de um sistema não pode existir dois conjuntos de entidades com o mesmo nome. 3, Umconjunto de entidades fracas não pode depender de mais de uma entidade forte ou seja, a entidade fraca só pode de- pender de uma única entidade forte no modelo. 2.4 Atributos de entidades Cada entidade de um conjunto de entidades possui proprieda- des que 'a caracterizam. Por exemplo, para cada entidade do conjunto ,Je entidades "Médicos" tem-se propriedades tais' como: nome, CRM, fone, entre outras. Taiscaracterísticas são abstraídas noMERpelo con- ceito de atributos. Sendo assim, os atributos representam todas as propriedades ne- I cessárias para se caracterizar uma entidade dentro de um determinado _,_' _ conjunto de entidades. Por exemplo, a entidade PACIENTESpode ter , 9,,52.1 I • " i I I I ! I I I I i ! I I, Um atributo simples é aquele que só pode assumir um único va- Iar, isto é, não pode assumir vários valores e nem pode ser decomposto em subvalores. Por exemplo, Sexo tem um só valor para cada entidade de Pacientes, o qual pode ser Mou F e que, obviamente, não podem ser decompostos. O mesmo ocorre com Nome e Endereço: assumimos que cada paciente tenha. um único endereço, o que é um exemplo do que se denomina uma restrição de integridade dos dados, isto é, uma condição que os dados devem satisfazer. Sendo assim se o cliente pos- suir mais de um endereço o mesmo não pode ser modelado (abstraído) como atributosimples. Além disso, assumindo que Nome é um atributo, o exemplo de atributo usado até aqui foi do tipo mais comum, também chamado de atributo simples. O MERcontempla 5 tiDoSde atributos para representar as diferentes características das entidades do mundo real. São eles: atributo simples ou monovalorado, multi. valorado, composto, calculado ou derivado e atributo identificador. A seguir detalharemos cada um desses atributos. 2.4.2 Classificação Atributo simples I ~".m!l!'o!Uf'(I t: I i~FY !Ol'f:C 11. ~~"ss..Ji~if = ...J.jJ ~r/a~M{{;Tlf~~tKim!~~Z{~tYja,:':; ~4~~ .que torna o diagrama mais simples e, visualmente, limpo, porém cada .analista deve desenvolver sua modelagem usando a representação gráfica que mais lhe agrade e pareça clara. Note que, na representação gráfica, os atributos de um conjunto de entidades (Pacientes, no caso) parecem pertencer a ele, mas na verdade eles referem. se a qualquer entidade do conjunto. AFigura 2.4 (OU 2.5) deve ser entendida, portanto, como "cada entidade de Pa. cientes tem atributos Nome, Endereço e Sexo", ou ainda, cada pacien. te deverá ser caracterizado pelo seu nome, endereço e sexo. Como - os atributos que estamos exemplificando assumem apenas um valor para cada entidade (por exemplo, Ana Pereira tem um único nome, um único sexo, etc.), o nome do atributo deve estar sempre no singular, exceto quando ele for do tipo multivalorado conforme será visto na próxima seção. PACIENTES Figura 2.4 - Representação de tributos dada por Navathe 0-1 ~I'omeSexo PACIENTES O E.ndereço Figura 2.5 . Representação de tributos dada por Setzer os seguintes atributos (características): nome, endereço,. fone e data do nascimento. Portanto, um atributo de uma entidade pode ser visto como um dado que a qualifica. 2.4.1 Representação gráfica Neste livro seguiremos a notação dada por Setzer, por acharmos., Importante diferenciarmos atributos de valores de atributos, ou seja, um valor de atributo representa um valor real para um atributo(também chamado de instância) de uma determinada entidade. Por exemplo, para o conjunto de entidade PACIENTES,podemos identificar uma entidade qualquer cujo atributo "nome" tenha o valor "Ana Pe. reira", e o atributo "endereço" tenha o valor "Rua dos Anzóis, 23", e assim por diante, ou seja, o nome Ana Pereira e seus demais dados são qualificações da entidade correspondente a.esse paciente. Na literatura corrente, deferentes autores .usam diversas formas de representar atributos. Por exemplo, Navathe (Navathe, 2007), re. presenta atributos como elipses com o nome dentro ligadas por um segmento de reta ao conjunto de entidades, conforme a Figura 2.4. Já Setzer (SETZER,2005) representa os atributos como pequenos círculos com o nome ao lado, também ligados por segmentos de reta, que por sua vez ligam.se ao conjunto de entidades, conforme pode ser visualF zado na Figura 2.5. •••••'.•I.i. •'.'.•I:.I.i. Ii. I•i'.:.:.I.il•',e•••••••'.•.1;;,Mi~ , , ele deve ser considerado por inteiro como um único valor, não podendo ser decomposto em nome próprio e sobrenome, o mesmo acontecendo com Endereço em relação à rua, número, CEP,etc. Atributo multivalorado o atributo multivalorado (do inglês multivalued) é o tipo de atri- buto que permite mais de um valor, isto porque existem casos de enti- dades, no mundo real, que possuem alguma característica para a 'qual é possível s€ determinar mais de um valor. Um exemplo típico é o caso de telefone, pois, atualmente, a maioria das pessoas possuem mais de um telefone (um celular, um residencial, etc). Sendo assim: Para atender essa necessidade temos que modelar essa realidade usando um atributo multivalorado. A Figura 2.6 apresenta a notação para o atributo multivalorado Fones, a qual é dada por um duplo circulo Nome Idade Fones~_1 . I PACIENT~Endereço . Figura 2.6 - Atributo Mu!tivalorado Fones Importante ressaltar que o nome do atributo mutlivalorado deve estar no plural (Fones) para indicar que ele pode assumir mais de um valor. Os iniciantes em modelagem de dados com MERpodem ter difi- culdades em abstr,!ir, do mundo real, esse tipo de atributo, uma ve:z: que é mais natural (para os iniciantes) modelar cada telefone como um atributo simples (fonel, fone2 ou celular, residencial) ao invés de um multivalorado. A princípio, o problema parece estar resolvido, entre- ~~~~fiT~4í~tlll~iff~1~g£9~Z~~~J~~~'i[~;};;:,>';'.,'~~~ ._,anto, é perigoso em um projeto introdu:z:ir-se uma restrição de inte- igridade tão particular, pois se as regras do negócio mudarem (isto é, passar-se a cadastrar, três ou mais telefones por pessoa), muita coisa teria que ser refeita, o que não ocorreria no caso multivalorado . Atributo composto O atributo composto é aquele que é formado por outros atribu- tos. Por exemplo, é comum dizer-se que um endereço é composto de "local, CEPe cidade" e que, por sua vez, um local é composto de "lo- gradouro, número e complemento", .("Logradouro" é a nomenclatura' dos Correios do Brasil, podendo ser nome de rua, praça, avenida, etc.) Isto é,. dado um local, ele pode ser decomposto no logradouro, no nú- mero e no complemento. Portanto, em comparação com o que foi dito anteriormente, um endereço pode, além de ser visto como um atributo único, ser formado por outros atributos. AFigura 2.7 apresenta uma notação (representação gráfica) para o atributo composto, o qual é representado por meio de uma estrutura em forma de árvore de dados. No exemplo, Endereço é o atributo-raiz da árvore, e Rua, Num e CEP são os atributos-folhas. Os atributos- folhas não devem ser 'Compostos. Nome Idade Fones O PACIENTES Figura 2.7 - .Atributo Endereço compo~tode Rua, Num e CEP Com essa representação, é possível referir-se ao valor do atri- buto Endereço de um determinado paciente, como um todo, suben- tendendo-se toda a estrutura, com seus vários níveis, ou seja, dado o endereço de um paciente, pode-se fazer referência ao seu CEP,Rua e Num. . Um atributo composto pode ser simples (quando possui um único i i I I I, I I, r~??ir I I I •,•i:: ::•.'j:, CEP Código Nome DataNasc Idade Figura Z. 11 - Atributo derivado Idade Atributo derivado"" RG 10 Paciente Figura 2.10 - Atributo identificador IdPessoa+RG ~~JMl.,F7p:ri!'ff.o/ifstr~'@2::;j?~,,'::7'/::';,";(-,:,::-' "', ~V;YY0; ,-7~ !i17%'.~"'~~S"'@1!'::'º}M~Jt;~i-~1<!~/?JJ:¥:!:-:\~}.""'.,':."< M~.íl&!~ Na prática, outros exemplos de atributos determinantes seriam o ~'número de matrícula" dos alunos de uma universidade, os códigos dos "materiais usados em uma empresa, os códigos de seus produtos, etc. Em geral, denominaremos os atributos determinantes de "10" eventu- almente seguido de uma qualificação. Isso porque "código" implica em alguma codificação pré-determinada. " Vários atributos podem, juntos, sêr determinantes para uma en- tidade. Por exemplo, o documento de identidade (RG) das pessoas no Brasil não é um atributo determinante, pois duas pessoas podem ter o mesmo número de identidade, diferenciando-se pelo Estado. No en- tanto, se compormos o CPF com o RGconseguiremos determinar unica- mente cada entidade. Na Figura"2; 10, mostramos a notação para mais de um atrubuto identificador. A notação que definimos para esse tipo de atributo é um asteris- co n ao lado do nome do atributo conforme pode ser visualizado na Figura 2.11 o atributo Idade. Atributo derivado, também conhecido como calculado, é aquele cujo valor é determinado a partir do valor de outro(s) atributo(s). Por exemplo, o valor do atributo Idade pode ser calculado (ou derivado) a partir do valor do atributo Data Nascimento (Abreviado para DataNasc). CEP RuaIdade PESSOAS PESSOAS Nome Figura 2.9 - At~buto Identificador Código Código Fones o . Figura "2.a - Atributo MultivaLorado Composto Endereços Atributos identificadores ou determinantes Nome Idade e$jg~ '~'f~\~~;~:~~~~!{t~~lit~~~~W~~ valor) ou multivalorado (quando possui diversos valores). Por exemplo, cada paciente, podem ter" vários endereços; nesse caso, deve-se colei- car um círculo duplo no atributo raiz, no caso Endereço_ A Figura 2.8 faz essa representação (note o nome agora no plural). A notação usada para ilustrar tal atributo é"uma círculo fechado (preenchido) com uma pequena linha perpendicular a reta que liga o atributo ao conjunto de entidades, conforme podemos visualizar na Figura 2.9. Uma restrição de integridade muito comum em conjuntos de enti- dades, devido à sua importãncia em todos os modelos computacionais, é um atributo monovalorado, cujo valor não pode ser repetido, ou seja, nenhuma outra-entidade do conjunto pode ter um valor que pertence a outra entid~de. Em outraspala¥Fas, dado um valor para ~sse atributo, esse valor determipa a qual entidade ele está assoCiado. Tal atributo-:7_ é denominado de atributo determinante ou atributo identificador_ Por exemplo, supondo no nos-ss-estudo de caso, que daremos um "código" único para cada paciente. Dessa forma, dado um certo valor para o código de paciente, ele determinará univocamente de qual paciente se trata. Assim, o atributo código representará o atributo identificador para cada entidade do conjunto de entidades pacientes. .L [?'JX I Um relacionamento é uma associação entre duas ou mais enti- dades. e vice-versa. Por exemplo, ao vermos os atributos rua, núme- ro bairro e CEP temos a certeza que se trata de um endereço e vice-versa. 2.5 Relacionamentos e conjuntos de re!acio- namehtos Para esclarecer melhor vejamos o seguinte: o paciente André Luiz, é caracterizado pelos seus atributos nome, data do nascimento, sexo, endereço e telefones. Entretanto, existem outras características que são necessárias para completar a descrição de um paciente, tais como as datas das consultas realizadas por este paciente, quais médi- cos lhe atenderam, o que foi diagnosticado, etc.Nesse exemplo; estão envolvidos os conjuntos de entidades Pacientes e Médicos. Aquestão é onde colocaremos os dados da consulta desse paciente por qual médi- co? Obviamente, não deve ser em Pacientes, pois os dados da consulta envolvem dados do médico. ' Por outro lado, não cabe adicionar os dados ,da consulta em Médicos, pois nesse conjunto de entidades só devem constar atributos de médicos, e na cosulta há algo concernente aos pacientes. Portanto, sempre que se fala de uma consulta, deve.se fazer re- ferência tanto a um paciente, quanto a um médico. Percebe-se, então, que os dados referentes àquela consulta devem ser colocados fora de Pacientes e de Médicos. Sendo assim, o que necessitamos é algo que represente uma associação no mundo real entre o ente-paciente, cujo nome é André Luiz, com o ente-médico, cujo nome é João de Barros. Na realidade a ser modelada, devemos relacionar um elemento de um desses conjuntos (Pacientes) a um elemento do outro (Médicos), 2.4.3 Regras/Sugestões de modelagem 1. Os nomes dos atributos devem sempre iniciar com uma letra maiúscula e estar no singular se for um atributo simples ou no plural se for um atributo multivalorado. 2. Cada atributo deve ocorrer uma única vez em apenas um con- junto de entidade. 3. Em um atributo composto, o nome dado ao atributo-raiz deve dar uma idéia significativa dos elementos de sua composição Dicas . " .. "~5e~m co~j~nt~'cie '~~tidadest~m um (,nico atrl6~t?; provável: , mentetal conjunto é atributode um outroconjuntodeentida. 'des. Mas há casos em que o contrário não é verdaaeini, isto é, 'umá coleção de atributos que dizemrespeito amesrn" entid~de, não indica que se trata dos atributosd~ um conjunt~ deentlda. des, " sim .umatributo composto (SETZER,2005). ,,' :"/> , • A e~colha de se rep~esentar algo como urna entidadeou~àm? atributo é arbitráriaidependendoem ger"l d",. aplicação. Por exemplo, para uma Biblióteca:o autor de um certo li.yroéçlará. mente um atributo desse livro. Maspara uma editora'oilutor,de , um livro que ela publica não é simplesmente uri')atributo,~ess" livro: ela encontra esse autor, combina como será'olançarne~. to do livro envia.lhe direitos autorais, etc. Em ger~ll,para 'urna pessoa que compra um livro ou o empresta numa biblioteta~:o, autor resume.se ao nome que está impresso no livro, equal1fica , esse último, .isto é, comportil.se com~ atributo domé~",o. Para, a editora o autor é'um'énte, q~eexisie no mundo real/ com, quem ela faz contatos, Para o leitor, o 'atributo "auto!':de~m!i-. vro resume-se ao' nome; isto é, o mais i_Tldic~dóseriél ~_erio~ina~> esse atributo de Nome doAutor. Jápara,à,éditàra;~sa~tor,,~ devem ser representados por meio de um conjunto de entldades Autores,' com vários atributos:' nàme, .ende,reço, )~t~fon,e~:"ÇPFJ;' conta bancária, etc. (SETZER,2005). . ." '. ' ,.' ' ". Um atributo pode ser identifiéado co~o aq"Uele,que qualifica ,?U • caracteriza uma entidade. Por exemplo: pessoas, temcor,' altura, peso, etc, ou ainda nome, CPF, dentre outros. i, ! I I I-P2) • !• 2,5,1 Classificação MEDicas ~~--~XAMES ._--- a) Relacionamento total - Um relacionamento total é aquele que exige a existência de uma ligação entre as entidades envolvidas, ou seja, toda vez que houver a necessidade de se armazenar dados de uma entidade juntamente com os dados do relacionamento, este deve ser do tipo total. Um relacionamento pode ser de 2 tipos: total ou parcial. MEDicas ~---[ EXAMES figura 2. 13(a) ~ Relacionamento soLicita b) Relacionamento parcial" Ao contrário do relacionamento to- tal, o relacionamento parcial não exige a existência de urna ligação entre as entidades, ou seja, a ligação é opcional. Para exemplificarmos esses dois tipos de relacionamento, con- Figura 2.13(b) - Relacionamento solicitações UNINORTE-r - ~l~J" 'f" "r ,.,.'~~~>,;ti:t'!.IÃ:l.7".:%';1);'","' g,t$uO ECA ~'~\;l 1i1ftil"J..~1k.qill?Jflit.':f"4!.'"ltt.~~~;f.:~;;_"''{.;[~~''~i:';.~''''~"",,~,,'".: . ., ~~0v=&,s~ , •.pêl~ fato de um'~~l~i:i8;;~inê~io p6der.~~r tld""os ~oi{sé~tidos, ,ficaestran ha 'a~leitura" de que' um!'pa~iênte'consú lta -médico: Dess'àforina ;po'dem ps t~mbe;TIcolocaru in.s~?staríti~õ '(no plú- ral) dent~od8ícisa~g?dE.' forma a representaraaçãodo'relaciCJ- namento .em 'questã? 'Devi do': es'pecificamen te ,.nes te'.'exemplo não. fi~ar,visível' tal diferença,' damos um outroéxelTIplo 'na•Fi. gura 2:13(â)eL1 3(b),em' queparanã"ficar estranha a leitura :(um exame solicita niédko",ti-ocamos apatilVra~'solkita pelo ::,'.'~j,.~u .~.~t~~Si,~?::~~'~"~'?'~',~c:1.t~.'~~,f~..;_~'~.'~';n':,!~':••T~'i:.::i-::':\:',~},{:",~;Y;:;!~~:\!}J~::}::::"'~;:H\:.~;.;S:;~,.;7;?:,'. , .'Ainda"pelo;fatode urn relacionarllento.P?derser, lidon05,dois s""ntidos; pode~Os ler, no ex:e'mplod~Figura 2; 13a, médico con- 'sulta pâdéiítes (no sentido médico-padente) ou paciente "é(:on, " iultadp. pe(CJ'rr;édicà(nôsen~idàinvêrso),<~;" '.', MEDicas --~~~ PACIENTESI ----- Figura 2.12 . Relacionamento consulta Portanto, um novo conceito é introduzido, de modo que fique claro que, dados dois conjuntos de entidades como Médicos e Pacien. tes, elementos de um podem relacionar'se com elementos do outro. Tal conceito é o que conhecemos por relacionamento, o qual é repre. sentado graficamente por meio de um losango conectando um conjun. to de entidades a outro, conforme podemos ver na Figura 2.12 repre. sentando o relacionamento consulta. mas esse dado não pertence diretamente nem a um nem a outro. Pelo contrário, ele é decorrência da preexistência de ambos, e ainda do fato de médicos consultarem pacientes. Ele é denominado de conjunto de relacionamentos, uma vez que, na verdade, representa o conjunto das várias consultas realizadas pe. los diferentes médicos nos diferentes pacientes existentes. Tal como nos conjuntos de entidades, colocamos dentro do losango o nome do relacionamento, no caso consulta, indicando que pacientes foram con. sultados por médicos e médicos consultam pacientes. a relacionamento representa o fato de elementos de um conjun. to de entidades poderem estar conectados (relacionados, associados) a elementos do outro conjunto. "~o; ~icas, , ..... :<, .• ,", .., ". ".' ".:;Associações, geralmente, existem parap""rmitir açõesentre as i entidades. Como açõe~ ,dão ,idéia ae verbo,o' nome rnaisadequa- '., ".'do para,ur;; relacionament~deve ser"derivado dover!)oq~e indi: 'ca a'acão repres'entada pelaassociação. por exé'mplo, consulta" ':,':: empre~ta, possui""tc.' ..:' .. ,",. ',<"'.; E,M, Leitura do exemplo de cardinalidade 1: 1: cada médico possui uma especialidade e cada especialidade pertence a um único médico. Multiplicidade 1:N Médicos Especialidades 1 : 1 I MÉDICOS 1_1_-<<S> 1.. 1 ESPECIALIDADES I Figura 2.15 - Multiplicidade 1:1 Figura 2.16 - Multiplicidade 1:1 ~~.;@.#i1,- - '. '!/II •••r~at"" ~"~ .Figura 2.15 ilustra em termos de conjuntos como é feita essa relação e a Figura 2.16 ilustra a devida representação no MER. Diz-se que um relacionamento tem cardinalidade 1:N (lê-se um para muitos) quando uma entidade de um determinado conjunto pode se relacionar com até N entidades de outro conjunto. Podemos tomar o exemplo anterior, agora supondo que cada médico só pode ter uma Única especialidade, porém uma especialidade pode ser de vários mé- dicos, ou seja, um médico só pode ser ou ortopedista ou oftamologista (nunca ambos), entretanto, a clínica pode ter mais de um oftamolo- gista, mais de um ortopedista etc. A Figura 2.17 ilustra em termos de conjuntos como é feita essa relação e a Figura 2.18 ilustra a devida representação no MER. A cardinalidade 1:N refere-se, obviamente, ao sentido em que se .leem os relaCionamentos. Pode-se dizer que "possuem" é N:1 (muitos Multiplicidade 1: 1 2.5.2 Multiplicidade de relacionamentos Portanto, dado um determinado médico do conjunto de entida- des
Compartilhar