Buscar

Fundamentos de Banco de Dados Aurea Melo UEA

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 3, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 6, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes
Você viu 9, do total de 70 páginas

Faça como milhares de estudantes: teste grátis o Passei Direto

Esse e outros conteúdos desbloqueados

16 milhões de materiais de várias disciplinas

Impressão de materiais

Agora você pode testar o

Passei Direto grátis

Você também pode ser Premium ajudando estudantes

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

Outros materiais