Professional Documents
Culture Documents
de Dados
2015
Editorial
Comit Editorial
Fernando Fukuda
Simone Markenson
Jeferson Ferreira Fagundes
Autor do Original
Geraldo Henrique Neto
Modelagem de Dados
Su
ri o
Ap
res
ent
Prezados(as) alunos(as)
A cada minuto, uma quantidade significativa de dados sero gerados, independentemente do cenrio, seja ele empresarial ou no.
Com o surgimento das mdias sociais a gerao de
informaes cresceu de maneira avassaladora, provenientes de diversas fontes distintas, a citar, smartphones,
redes de relacionamentos, dentre outros.
Para atender adequadamente essa demanda, s tecnologias
de banco de dados, sobretudo o Big Data, o qual considerado um tema emergente que discorre sobre a evoluo das tecnologias de datawarehouse e business intelligence, cujo objetivo
proporcionar o armazenamento e anlise de dados, sejam esses,
estruturados, semiestruturados e ou no estruturados considerando
grandes volumes de dados.
Dessa maneira, considerando a importncia em se realizar um armazenamento adequado desses dados para a obteno do xito empresarial, independentemente da regra de negcio, a disciplina Modelagem de Dados tem
como propsito explorar os principais assuntos acerca de banco de dados.
Para tanto, o contedo abordado na disciplina est segmentado da seguinte forma:
Captulo 1 estudaremos sobre o surgimento e a evoluo dos bancos
de dados, apresentando tambm as principais caractersticas dos Sistemas Gerenciadores de Bancos de Dados (SGBD).
Captulo 2 abordaremos as fases constituintes de um projeto de
banco de dados considerado bem estruturado.
Captulo 3 esmiuaremos o Modelo Entidade-Relacionamento
detalhando seus principais componentes.
Captulo 4 veremos os principais conceitos do Modelo de
Dados Relacional.
Captulo 5 abordaremos as principais regras aplicadas ao
processo de normalizao de dados.
Bons estudos
Profo. Me. Geraldo Henrique Neto
CCC
CC C
CCC
Voc se lembra?
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
Ser que voc consegue identificar quais foram os motivos que levaram os a realizao de investimentos macios nos estudos destinados ao
armazenamento de dados em meios mais acessveis e eficazes?
H tempos atrs, organizaes empresariais de pequeno, mdio e
grande porte gastavam cifras significantes de recursos financeiros na contratao de um nmero expressivo de pessoas para trabalhar no processo
de armazenamento e organizao de vrios arquivos, mencionar, arquivos referente as informaes de clientes, produtos, funcionrios, produo
industrial, etc.
Em meados da dcada de 70, a empresa intitulada de IBM, juntamente com seu colaborador chamado de Ted Codd, considerado pioneiro
na publicao de um artigo cientfico, o qual discorria sobre banco de dados relacionais, sugeriu o uso de clculo e lgebra relacional. Esses dois
temas permitia aos usurios finais a manipulao de informaes.
O objetivo principal de Codd era implementar um sistema onde
fosse possvel o usurio manipular as informaes, essas armazenadas em
tabelas (relao), esse o motivo do termo relacional, por meio do uso de
instrues especficas.
Diversas pessoas consideraram no adequadas aplicar as notaes
matemticas de Codd na manipulao de informaes provenientes de
tabelas, no despertando assim, o interesse da maioria das pessoas. Entretanto, ningum imaginava que as teorias propostas por Codd se tornaria
conceitos triviais na evoluo no que tange o armazenamento e recuperao de informaes.
Nesse mesmo perodo, a IBM criou o System R, o qual promoveu
subsdios para a elaborao de um prottipo de banco de dados relacional,
conduzindo mais adiante, a criao da linguagem SQL (Structured Query
Language) e do conhecido DB2. No restam dvidas que, na rea de banco de dados, a linguagem SQL considerada um padro para os principais
fabricantes de bancos de dados relacional.
Inoportunamente, a IBM deixou o System R em segundo plano
por um grande perodo (diversos anos). O interesse da IBM era em um
sistema de banco de dados com credibilidade que utilizava tecnologia de
ponta, conduzindo, no ano de 1968, o IMS. Assim, a IBM no mediu esforos em publicar os resultados dos trabalhos cientficos produzidos pela
sua equipe, ora responsvel pelo System R. Posteriormente, o criador de
uma pequena e singela empresa, Larry Ellison, se deparou com o artigo
9
Modelagem de Dados
10
normal a utilizao da denominao informao, quando na verdade estamos nos referenciando a um dado, ou at mesmo, um conjunto
de dados. Na prtica, nas empresas essa substituio se tornou relativamente normal. Todavia, imprescindvel destacar que dado e informao,
embora intimamente ligados, possuem conceitos distintos. Saber diferencia-los importante, sobretudo para a anlise da qualidade da informao.
Imagine que voc seja responsvel por identificar a satisfao de
uma parcela de usurios no que diz respeito a um sistema computacional
especialista. Voc poderia incialmente, obter essa informao realizando
entrevistas aos usurios do sistema, questionando os mesmos sobre determinados aspectos pontuais.
Pensando em facilitar seu trabalho, voc poderia elaborar um formulrio on-line, disponibilizado na Web, permitindo a disseminao do
mesmo entre os diversos usurios. Posteriormente, ao armazenamento dos
dados das inmeras respostas provenientes do formulrio on-line, temos
os dados em sua forma bruta, isto , eles no possuem nenhum significado. Dessa maneira, necessitamos transforma-los em dados que possam
gerar algum tipo de informao. A lapidao dos dados brutos, torna o
mesmo com maior valor agregado, possibilitando extrairmos respostas
objetivas e eficazes do repositrio, como exemplo, podemos mencionar:
O mdulo responsvel para gerao dos relatrios analticos so de fcil
usabilidade?
Sendo assim, podemos contextualizar que quando os dados brutos so
manipulados adequadamente, podemos extrair o seu significado e, dessa forma, gerar as informaes necessrias para uma possvel tomada de deciso.
Para alguns, esse tipo de processo de gerar informao a partir de
dados brutos, pode ser considerado simples, ou complexo, principalmente
se considerarmos a confeco de relatrios estatsticos.
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
Esse outro exemplo, refere-se a utilizar um dado que ora representa uma temperatura qualquer. Nenhuma novidade de considerarmos 43
como sendo um dado em sua forma bruta. Porm, nesse exemplo, 43 no
est vinculado a nenhuma informao, ou seja, no possui significado
algum, ao menos que, seu contexto seja evidenciado, como: Esse valor
representa a temperatura da cidade de Ribeiro Preto em plena primavera?
Ou, esse valor de temperatura a mdia de temperatura trimestral da regio metropolitana de So Paulo?
Dessa forma, correto dizer, que os dados constituem os pilares
para que alcancemos as informaes, tornando-se quesito extremamente
importante na tomada de deciso empresarial, independentemente da rea
de atuao e porte, sejam empresas governamentais, privadas e ou de
prestao de servio.
Retomando nosso exemplo inicial, os dados provenientes das questes do formulrio on-line, podem identificar os principais pontos favorveis ou no favorveis do mdulo responsvel pela gerao de relatrios
analticos, conduzindo a uma melhor tomada de deciso a fim de atender
os principais apontamentos de seus usurios.
Podemos classificar os bancos de dados de acordo com suas caractersticas e aplicabilidade dos dados neles armazenados. Por exemplo, essa
classificao pode variar de acordo com o nmero de usurios, localizao, e, tipo de uso. Na sequncia, correlacionaremos os principais tipos de
banco de dados. importante mencionar que, em algumas literaturas, essa
classificao pode possuir discretas alteraes.
A primeira classificao baseada pelo nmero de usurios:
Banco de Dados Monousurio: esse tipo de banco de dados
promove o suporte de apenas um nico usurio por vez. Ou
seja, para que voc possa entender, imagine que o usurio Fernando Collor se encontra utilizando o banco de dados, e os usurios Fernando Henrique e Paulo Maluf, por sua vez, necessitam aguardar o usurio Fernando Collor finalizar sua transao
para obter o respectivo acesso ao mesmo repositrio (banco de
dados). Nesse tipo de banco de dados, no existe, em hiptese
alguma, o que denominamos de controle de concorrncia;
11
Modelagem de Dados
Na sequncia, apresentaremos outro tipo de classificao, essa considera a localizao do banco de dados:
Banco de Dados Centralizado: realiza a centralizao dos dados em um nico local fisicamente existente, realizando o devido suporte ao mesmo;
Banco de Dados Distribudo: nesse tipo de banco de dados o
suporte destinado a distribuio dos dados por diversos locais,
esses, normalmente, residente em locais fisicamente distintos.
12
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
Modelagem de Dados
Para encerrar esse tpico, devemos deixar explcito que os termos banco de dados e base de dados no podem ser considerados como sinnimos,
isso porque, uma base de dados, normalmente, gerenciado por ferramentas
de suporte a deciso empresarial, como exemplo, podemos mencionar, o sistema ERP (Enterprise Resource Planning). Entretanto, o gerenciamento de
um banco de dados ou um conjunto de banco de dados promovido pelo uso
de um sistema de gerenciamento de banco de dados (SGBD).
14
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
por sua vez, foram evoluindo com o transcorrer do tempo, bem como a
inevitvel melhoria da segurana e capacidade de armazenamento.
Bem, agora imagine que voc tenha a necessidade de gravar um
vdeo (filme de DVD) em uma mdia de armazenamento especfica, para
exemplificar, o seu prprio Pen-Drive. Voc tem ideia de como o sistema
de arquivo ir trabalhar? Antes de qualquer coisa, necessrio conhecer
o funcionamento de um sistema de arquivo, que utiliza um tipo de tabela
para armazenar todos os detalhes da localizao dos dados de cada arquivo. Por exemplo, o sistema de arquivo FAT fragmenta a rea do dispositivo de armazenamento em pequenos blocos, permitindo assim que um nico arquivo possa ocupar diversas posies distintas, onde, esses blocos,
necessariamente, no necessitam estar alocados continuamente.
Podemos considerar que os sistemas de arquivos foram os pioneiros
no que se refere aos sistemas de armazenamento e manipulao de dados.
Tais sistemas sofreram melhorias ao longo de dcadas, cujo objetivo era
acompanhar a evoluo tecnolgica. Entretanto, infelizmente, alguns problemas podem ser caracterizados, a citar:
A estrutura de arquivos definida pelo prprio cdigo-fonte do
sistema computacional, prejudicando consideravelmente sua
manuteno;
O controle de acesso desses arquivos apresentam grandes obstculos quando mencionamos o compartilhamento;
A falta de compatibilidade entre os sistemas computacionais
prejudica consideravelmente a funcionalidade dos sistemas,
pelo simples fato de criar arquivos e sistemas voltados a um
nico e exclusivo sistema operacional, e que, na maioria das
vezes so realizados por diversos desenvolvedores distintos
que utilizam linguagens de programao dspares;
Sistemas computacionais com dados distintos conduz a inconsistncia dos mesmos;
O uso de formatos especficos acarreta o isolamento de dados;
A duplicidade no supervisionada dos dados leva a redundncia dos mesmos;
O fcil acesso aos dados direciona a srios problemas de segurana;
A falta de controle de acesso concorrente promovido por diversos usurios acessando o mesmo dado.
15
Modelagem de Dados
Usurios
Aplicao
Segurana
Dados
16
Uma dvida que pode ter surgido em voc, diz respeito se a utilizao de sistemas de arquivos no gerenciamento e manipulao dos dados
uma boa alternativa, nos dias de hoje? Para que voc possa contextualizar
ainda mais os problemas provenientes do uso de sistemas de arquivos,
principalmente, o que se refere inconsistncia e controle de acesso,
suponha que dois clientes estejam buscando produtos ora disponveis
para comercializao em um e-commerce qualquer. Ainda para agravar a
situao, o e-commerce possui apenas uma nica unidade de um DVD, e,
prontamente, o sistema apresenta essa informao para ambos os clientes.
Ao mesmo tempo, os dois clientes escolhem o mesmo DVD para aquisio. Percebe-se que essa simples transao acarretar em problema no sistema, promovendo a inconsistncia dos dados. Esse problema que gerou
a inconsistncia foi produzido devido ausncia de bloqueio da compra
de um dos clientes, e a exibio de uma mensagem informando que no
existe mais o produto em estoque.
Dessa maneira, percebe-se que o armazenamento e manipulao de
dados por meio do uso de sistemas de arquivos podem levar a diversos
dissabores. Esse mesmo exemplo hipottico pode ser ampliado para outros tipos de sistemas, tais como, sistemas bancrios, sistemas de hotelaria, sistemas hospitalares, etc..
Devido a alguns problemas apresentados pelo uso de sistemas de
arquivos para o armazenamento de dados, e, pela necessidade de utilizar novas estruturas de armazenamento nesses sistemas computacionais,
como tambm, o alto custo aplicado na manuteno para solucionar esses
dissabores, criou-se a evoluo dos sistemas de arquivos, os extraordin-
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
Um Sistema de Gerenciamento de Banco de Dados (SGBD) constitudo por um conjunto de aplicativos que possibilitam a criao e manipulao de diversos bancos de dados. Como exemplo de SGBDs mais
utilizados no mercado, podemos citar o MySQL, Oracle, FireBird, DB2,
SQL Server e PostgreSQL.
Quando se utiliza um SGBD, o acesso e o gerenciamento dos dados
so promovidos pelo prprio SGBD, diferenciando-se do armazenamento e gerenciamento de
Conexo:
dados por meio de sistemas de arquivos.
SGBD uma coleo de
aplicativos computacionais
Ou seja, se assemelha a uma interface
responsveis pelo gerenciamento de
inserida entre o banco de dados fsico
uma conjunto de banco de dados. (Rob
(discos, mdias de armazenamento, etc.)
et al., 2011).
e os usurios. Como voc pode visualizar na Figura 1.2, o SGBD recebe todas
as requisies de inmeras aplicaes
computacionais, realiza a devida interpretao a fim de melhor atende-las, escondendo
a complexidade interna existente dos bancos de
dados dos usurios finais.
Aplicao 1
Aplicao 2
Aplicao 3
SGBD
Banco
de
dados
Aplicao 4
Modelagem de Dados
18
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
Infelizmente, a ausncia de conhecimentos triviais dos recursos disponveis dos SGBDs pode promover uma pssima manipulao dos dados
e, inevitavelmente, provocar falhas no acesso, produzindo assim, o que
denominamos de falha de segurana.
Aps o surgimento dos SGBDs, todo aquele trabalho desempenhado
pelos programadores para realizar o devido controle de acesso aos dados,
implementar a integridade e evitar redundncia
dos dados, felizmente, deixaram de ser
necessrios, entretanto, se consideVimos que dado e informararmos alguns itens, os sistemas de
o no so sinnimos, e que a
informao resultante de um procesarquivos podem possuir benefcios
samento aplicado no dado bruto, considesuperiores aos SGBDs. No tenha
rando um determinado contexto, ou seja, a
dvida que essa afirmao lhe pa- informao o dado atribudo a um determinado significado, assim temos:
rece muito estranha, mas por mais
Informao = (dado + significado).
bizarro que ela possa ser, a performance, quando utilizamos sistemas
de arquivos, considerada superior
em relao ao dos SGBDs, isso porque
realizado a implementao especfica e
exclusiva destinada a uma determinada aplicao, j os SGBDs so utilizados por aplicaes consideradas genricas,
visto que, o objetivo atender diversas e variadas necessidades.
Modelagem de Dados
20
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
21
Modelagem de Dados
22
Antigamente, as primeiras arquiteturas de SGBD utilizavam computadores de grande porte, denominados mainframes. A utilizao do
mainframe tornava-se necessrio para realizar processamento de todas
as funes do sistema, isso inclua os aplicativos, as interfaces com o
usurio, bem como todos os demais processos responsveis por prover as
funcionalidades bsicas dos SGBDs. Grande parte dos processamentos
eram desempenhados de maneira remota, isso , somente os dados a serem visualizados eram submetidos para os terminais de visualizao, ora
conectados ao mainframe por meio do uso de uma rede de comunicao.
Atualmente, identificamos o decremento do custo de aquisio de
equipamentos de hardware, porm, na contra mo, o aumento significante
da capacidade de processamento e armazenamento digna de nota. Isso
favoreceu imensamente a substituio dos terminais por computadores
pessoais pelos usurios. No incio, os SGBDs faziam uso dos computadores pessoais da mesma forma que utilizavam os terminais, isto , o SGBD
trabalhava de maneira centralizada e toda as demais funcionalidades,
como, a execuo de programas aplicativos e processamento de interface
do usurio eram processados em uma nica e exclusiva mquina.
Com o transcorrer do tempo os SGBDs comearam a usufruir do
processamento existente do lado do usurio, que por sua vez, assumia o
papel de cliente do SGBD. Essa filosofia conduziu a uma arquitetura
denominada cliente/servidor, que se destina a segmentar os processamentos provenientes dos aplicativos, esses localizados do lado do cliente e o
gerenciamento dos dados, esse sendo executado do lado do servidor.
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
23
Modelagem de Dados
24
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
End users
Database structure
Data
http://
Application
request
DBMS
(Database
management
system)
Application
request
Single
View of data
Integrated
Metadata
Customers
Invoices
End-user
data
Products
End users
Figura 1.3 Sistema de Gerenciamento de Banco de Dados. Extrado de: Rob, 2005 p. 8
Podemos visualizar na Figura 1.3 acima que o SGBD o eixo central que promove acessos dos diversos tipos de usurios e ou aplicativos
computacionais aos dados. Isso o SGBD recebe diversas solicitaes
dos aplicativos e converte em operaes mais elaboradas para o acesso
aos dados. Assim, a complexidade de acesso as fontes nativas dos dados
so encapsuladas pelo prprio SGBD, reduzindo esforos no que se refere
a implementao dessas funcionalidades na aplicao do cliente.
totalmente indicada a adoo do uso de um SGBD em qualquer
cenrio empresarial que necessita de manipular dados de maneira correta
e em sua totalidade. A seguir apresentaremos as principais vantagens do
uso de um SGBD:
Compartilhamento de Dados: o SGBD fornece mecanismos os
quais permitem que os usurios finais consigam acessar os dados
facilmente, mesmo lidando com um grande volume de dados;
Segurana de Dados: em um cenrio que possui uma quantidade
expressiva de usurios que acessam os dados, os riscos do quesito
segurana tambm so aumentados. Com a adoo dos SGBDs
torna-se factvel criar um modelo para melhor determinar as polticas de segurana empresarial, promovendo a segurana a nvel de
usurio, refletindo em uma maior privacidade no acesso aos dados.
Diversas regras de segurana podem ser elaboradas determinando
assim quais usurios podem ou no acessar o banco de dados e,
ainda determinar, quais objetos os mesmos podero acessar;
25
Modelagem de Dados
26
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
Atividades
01. Cite pelo menos trs exemplos de Dados e Informaes, num contexto
de empresarial qualquer. Detalhe cada um.
02. Apresente quatro diferenas significativas existentes entre um sistema
de arquivo e um SGBD.
03. Identifique cinco caractersticas de um sistema de gerenciamento de
banco de dados (SGBD).
Reflexo
Modelagem de Dados
Na sequncia, estudamos como os sistemas de arquivos e os sistemas de gerenciamento de banco de dados funcionam, detalhando suas
principais caractersticas e benefcios.
Por fim, aprendemos acerca dos principais tipos de usurios (leigos,
desenvolvedores, avanados, especialistas e DBAs), que de alguma maneira, utilizam os recursos de um SGBD.
Leitura recomendada
Artigos on-line: para voc aumentar anda mais o seu nvel de aprendizagem envolvendo os conceitos de Dados e Informao e demais assuntos desta unidade, consulte as sugestes de links abaixo:
http://www.ime.usp.br/~vwsetzer/dado-info.html
http://gestorescomvisao.blogspot.com.br/2008/11/dado-x-informao.html
Referncias
ELMASRI, R.; NAVATHE, S.B. Sistemas de bancos de dados. So
Paulo: Pearson (Addison Wesley), 2005.
KORTH, H.; SILBERCHATZ, A. Sistemas de bancos de dados. 3. ed.
So Paulo: Makron Books, 1998.
HEUSER, C. A. Projeto de Bancos de Dados. 2. ed. Porto Alegre: Sagra Luzzatto, 1999.
PRESSMAN, R.S. Engenharia de software. So Paulo: Makron Books,
1995.
ROB, P.; CORONEL, C. Sistemas de Banco de Dados: Projeto, Implementao e Administrao. 8. Ed. So Paulo: Cengage Learning, 2011.
28
Viso Geral: Banco de Dados e os Sistemas de Gerenciamento de Banco de Dados (SGBD) Captulo 1
No prximo captulo
No prximo captulo, estudaremos sobre Projeto de Banco de Dados. Ser apresentado os principais detalhes existente por trs de um projeto de banco de dados bem estruturado, sobretudo, suas principais fases
inerentes a modelagem de dados.
29
Modelagem de Dados
Minhas anotaes:
30
Projeto de Banco de
Dados
Cap
t u
lo
Voc se lembra?
Modelagem de Dados
Modelo externo
Modelo externo
Modelo
conceitual
Viso do projetista
Independncia
lgica
Viso do SGBD
Independncia
lgica
Independncia
fsica
Modelo
fsico
34
O modelo externo considera o cenrio do ambiente de dados de todos os tipos de usurios, porm, em especial, os usurios finais. Recapitulando os conceitos j estudados, consideramos como usurios finais a nomenclatura utilizada aos usurios que utilizam aplicativos computacionais
para promover a manipulao dos dados, obtendo como resultado final a
produo de informaes relevantes para o ambiente empresarial.
Acredito que seja evidente para voc que, a maioria das empresas
segmentada em diversos departamentos, como por exemplo: departamento
de recursos humanos, financeiro, vendas, etc. Onde cada departamento dever atender certas restries e requisitos especficos. Dessa maneira, cada
usurio final que desempenha suas atividades nesses diversos departamentos possui uma viso de apenas um subconjunto de dados, especficos do
seu departamento, desprezando os detalhes dos outros departamentos.
Aluno
(1,1)
Faz
(0,N)
Matrcula
(0,50)
feita em
(1,1)
Professor
(1,3)
Ensina
(0,N)
Turma
(0,N)
(0,N)
(1,N)
Gera
(1,1)
Disciplina
(0,N)
utilizada por
(1,N)
Sala
Pode ministrar
35
Modelagem de Dados
36
Quando o projetista de banco de dados chega nessa fase, imprescindvel que o mesmo j tenha escolhido a tecnologia de sistema de gerenciamento de banco de dados (SGBD) que ser
empregado. O objetivo do modelo interno realizar o mapeamento do
modelo conceitual para um determinado SGBD.
37
Modelagem de Dados
Sendo assim, quando voc utiliza um modelo relacional, consequentemente, voc tambm dever escolher um banco de dados que permita o
mapeamento do modelo conceitual para as tabelas (relaes) existentes
no modelo relacional. Provavelmente, voc deve estar interrogando como
formado o modelo interno? Diramos que essa uma tima pergunta!
O esquema/modelo interno formado pela utilizao da linguagem SQL
(Structured Query Language), assim que definimos o SGBD-R (Sistema
de Gerenciamento de Banco de Dados Relacional). A fim de elucidar
melhor o que efetivamente realizado nessa fase, a Figura 2.3 a seguir,
representa um modelo interno, constituindo as relaes (tabelas) aluno,
departamento, disciplina e curso.
Departamentos
(0,n)
(1,1)
Responsvel
(0,n)
Aluno
(0,n)
Inscrio
interger,
varchar(40),
varchar(40);
Disciplina
(0,n)
Disc_Curso
(1,1)
liberada
(0,n)
Curso
Pr_Requis
(0,n)
liberadadora
38
O modelo de dados pode ser conceituado como sendo uma representao simples que, normalmente, simboliza graficamente as estruturas
dos dados. Podemos dizer que o modelo de dados uma abstrao de um
ambiente real, cujo objetivo subsidiar o compreendimento adequado
dos requisitos, sejam esses simples ou complexos, inclusos em cenrios
empresariais.
O projetista de dados dever utilizar o bom senso para que seja
possvel a obteno de modelos de dados bem estruturados e aceitveis.
O processo relacionado elaborao de um modelo de dados no uma
tarefa considerada nada fcil, e, certamente uma verso satisfatrio do
modelo de dados ser atingida, posteriormente diversas correes e adaptaes.
39
Modelagem de Dados
40
Modelagem de Dados
Bem, mencionamos diversas vezes o conceito de regra de negcio, porm, ainda no contextualizamos. Podemos considerar como uma
regra de negcio uma descrio simples, clara e sem impreciso no que
tange as transaes ou objetos de uma empresa qualquer, sem considerar
o seu porte (pequena, mdia ou grande). Por meio do uso das regras de
negcio podemos identificar as possveis entidades, atributos, relacionamentos e, eventuais restries. No tenha dvida que, sem perceber, voc
j se esbarrou em alguma regra de negcio e nem se deu conta. Em nossos
exemplos anteriores, quando referimos que um funcionrio pode atender
n clientes, porm, cada cliente pode ser atendido por um exclusivo funcionrio, essa descrio considerada como sendo uma regra de negcio.
Agora que j desmitificamos o conceito de regra de negcio, podemos apresentar os diversos modelos de dados, ora constitudos para promover
o melhor gerenciamento dos dados, que tiveram como objetivo solucionar
eventuais falhas provenientes dos antigos sistemas de arquivos. Constitumos
uma tabela, essa intitulada de Tabela 2.1, a fim de demonstrar resumidamente
os modelos de dados mais habituais, considerando a evoluo do tempo:
Perodo
Exemplos
Comentrios
IBM faz uso em seus
mainframes
1960 a
1970
Sistema de arquivos
VMS/VSAM
1970
Modelo de dados
hierrquico e em
rede
IMS, ADABAS,
IDS-II
1970 at o
presente
Modelo de dados
relacional
DB2, Oracle,
MS SQL Server,
MySQL
Utiliza os conceitos
bsicos (simples) e
objetivos.
1980 at o
presente
42
Modelo
Do presente ao
futuro
Orientado a
objetos
Relacional estendido
XML
PostgreSQL,
Versant, Cach,
FastObjects.Net
Objectivity/
DB, DB/2 UDB,
dbXML, Tamino,
DB2 UDB, Oracle
10g, MS SQL Server, PostgreSQL
No utiliza relacionamentos
Usado na manipulao
de dados considerados
complexos.
Disseminao de banco
de dados na web
Permite a manipulao e
gerenciamento de dados
semiestruturados.
Suporte a documentos
no formato XML
O modelo hierrquico foi criado em meados de 1960, com o propsito de gerenciar adequadamente grandes volumes de dados provenientes
de projetos complexos. A estrutura lgica do modelo hierrquico constituda por uma estrutura semelhante a estrutura de uma rvore, essa visualizada de cima para baixo, possibilitando visualizar suas ramificaes.
No modelo hierrquico, consideramos um segmento como sendo
um registro em um sistema de arquivo. Internamente, o modelo hierrquico possui uma camada superior, essa denominada de raiz (n pai) do
segmento subsequente abaixo desse. A Figura 2.4 exemplifica o uso de
um modelo hierrquico, onde possvel identificarmos o segmento pai
considerado raiz (voo) dos segmentos filhos (escala, reserva e bilhete),
onde escala e bilhete, por sua vez, so considerados pais dos fragmentos
cidade e cliente. De maneira intuitiva, os segmentos ora localizados abaixo de outros segmentos so considerados filhos. Sendo assim, se observarmos detalhadamente, factvel de identificar que o modelo hierrquico
representa exclusivamente o relacionamento um para muitos (1:M) existente entre o segmento pai e seus respectivos filhos, ou seja, cada segmento pai possui diversos segmentos filhos, porm, cada segmento filho, por
sua vez, possui apenas vinculado a ele um segmento pai.
VOO
voo_cod
ESCALA
voo_data voo_hora
BILHETE
bil_valor
RESERVA
res_cod voo_cod res_ticket res_data res_cliente
CIDADE
cid_cod
CLIENTE
cid_nome
cid_estado
Modelagem de Dados
CIDADE
VOO
voo_cod
BILHETE
voo_data voo_hora
cid_cod
cid_nome
cid_estado
ESCALA
bil_valor
RESERVA
res_cod voo_cod res_ticket res_data res_cliente
44
45
Modelagem de Dados
Tabela: Funcionrio
ID_FUNC
ID_FUNC
987
NOME
NOME
Jos
SOBRENOME
SEXO
CPF
RG
SOBRENOME
CPF
Abro
M SEXO 111222333444
RG
1234567890
321
Mrcia
Marina
555333123098
2347698243
112
Wagner
Moura
765234509876
123543-MG
Tabela: Cliente
ID_CLI
NOME
SOBRENOME
SEXO
CPF
RG
ID_FUNC
89710
Geraldo
Alckmin
7687171398
1233456
112
89711
Acio
Neves
6534982615
2455455
987
65412
Joo
Gilberto
1235566615
2342353
987
23113
Marina
Silva
6509090456
4563434
112
65514
Dbora
Santos
1236451324
3425633
112
46
Atividades
01. Descreva detalhadamente o conceito de Entidade e Relacionamento.
Cite pelo menos trs exemplos onde podemos utilizar ambos.
02. Analise o cenrio do ambiente acadmico, mais especificamente, de
uma sala de aula. A partir dessa analise, represente por meio de um DER,
o conjunto de carteiras e o conjunto dos tipos de mveis.
03. Discorra sobre os detalhes pertinentes ao Modelo Hierrquico, apontando suas desvantagens comparando com o Modelo em Rede.
04. Realize uma pesquisa na Internet e descreva trs caractersticas de um
Banco de Dados XML. Cite pelo menos trs nomes de banco de dados que
manipulam arquivos XML.
05. D pelo menos trs exemplos de restrio aplicada a um modelo de
dados. Na sequncia, descreva os trs tipos de relacionamentos que podem
ser utilizado para associar entidades.
Reflexo
47
Modelagem de Dados
Leitura recomendada
Artigos on-line: para voc incrementar mais o seu nvel de aprendizagem relativo ao Projeto de Banco de Dados:
http://juliobattisti.com.br/artigos/office/modelorelacional_p5.asp
http://www.dicasdeprogramacao.com.br/como-criar-um-projetode-banco-de-dados/
http://www.devmedia.com.br/dbdesigner-modelagem-e-implementacao-de-banco-de-dados/30897
Livro: Introduo a Sistemas de Banco de Dados; 8. Ed., DATE,
C. J, voc encontrar mais conceitos acerca de SGBDs, sua utilizao e
vantagens. Estude mais sobre a arquitetura dos SGBDs, este livro faz uma
abordagem bastante densa e completa do assunto. Aprofunde seus conhecimentos!
Referncias
ELMASRI, R.; NAVATHE, S.B. Sistemas de bancos de dados. So
Paulo: Pearson (Addison Wesley), 2005.
KORTH, H.; SILBERCHATZ, A. Sistemas de bancos de dados. 3. ed.
So Paulo: Makron Books, 1998.
HEUSER, C. A. Projeto de Bancos de Dados. 2. ed. Porto Alegre:
Sagra Luzzatto, 1999.
PRESSMAN, R.S. Engenharia de software. So Paulo: Makron
Books, 1995.
ROB, P.; CORONEL, C. Sistemas de Banco de Dados: Projeto, Implementao e Administrao. 8. Ed. So Paulo: Cengage Learning,
2011.
48
No prximo captulo
No prximo captulo, estudaremos com detalhes o modelo entidaderelacionamento. Estudaremos a importncia de constituirmos um modelo
conceitual bem estruturado. Para elaborar um bom projeto de banco de
dados, devemos aprender as caractersticas relevantes do Modelo Entidade-Relacionamento.
49
Modelagem de Dados
Minhas anotaes:
50
Modelo Entidade
-Relacionamento
Cap
t u
lo
Voc se lembra?
53
Modelagem de Dados
54
Mdico
(1,n)
CRM
Nome
Especialidade
atende
(1,n)
Paciente
Cdigo
Nome
Sobrenome
55
Modelagem de Dados
56
O modelo lgico pode ser considerado o oposto do modelo conceitual, visto que o mesmo depende exclusivamente do SGBD que ser
utilizado na criao do banco de dados. Esse modelo tem como objetivo
descrever o banco de dados em um nvel de abstrao visto pelo usurio
do SGBD.
Na fase constituinte do modelo lgico, o projetista de dados decidir
as tabelas (relaes) que formaro o banco de dados e, ainda, definir para
cada tabela, os respectivos nomes de suas colunas, por exemplo: tabela intitulada de mdico ser constituda pelas colunas (atributos) crm, nome
e sobrenome. J por sua vez, a tabela nomeada de paciente ser formada
pelas colunas cod_paciente, nome, sobrenome e crm.
Esses detalhes, ora visualizados pelo usurio do SGBD correspondem ao armazenamento interno dos dados, que normalmente, interferem
no desempenho da aplicao computacional.
Na primeira fase do projeto de banco
Conexo:
de dados, uma das principais atividades
Leia mais sobre modelo de
o que denominados de levantamento de
dados:
http://www.linhadecodigo.com.br/
requisitos, atendendo as necessidades
artigo/332/planeje-o-seu-modelo-deorganizacionais de um ambiente emdados.aspx
presarial qualquer, atravs da anlise
de requisitos, criando assim, subsdios
para a elaborao do projeto conceitual,
ora representado pelo modelo entidaderelacionamento (MER). O MER trata-se de
um modelo de dados considerado de alto nvel
de abstrao, que independe da tecnologia do SGBD adotado para a realizao do armazenamento dos dados.
Bem, agora chegou o momento de esmiuarmos as principais caractersticas do modelo entidade-relacionamento (MER). Peter Chen, na
dcada de 70, constituiu o modelo entidade-relacionamento, o qual, atualmente considerado clssico (padro) para a modelagem conceitual de
banco de dados. O objetivo principal do MER criar adequadamente as
entidades e seus respectivos relacionamentos, ora abstrados de um ambiente empresarial real qualquer, o qual desejamos modelar.
O Modelo Entidade-Relacionamento (MER) descreve conceitualmente como os dados sero manipulados por meio de um sistema computacional.
Uma vasta gama de conceitos aplicada ao MER, porm, esses
conceitos so considerados simples de entender, facilitando consideravelmente as tarefas dos projetistas de dados no que se refere ao entendimento
adequado dos conceitos referente aos dados utilizados nos aplicativos
computacionais, independentemente da tecnologia do SGBD que ser
utilizada na implementao do banco de dados. O Diagrama Entidade-Relacionamento (DER), por sua vez, considerado como sendo um esquema
conceitual, ora elaborado a partir dos conceitos do modelo entidade-relacionamento.
Devemos tambm deixar evidente de que, mesmo que o diagrama
entidade-relacionamento possua um elemento chamado de entidade, ora
representado graficamente pelo uso de um retngulo, tal elemento no
possui nenhuma relao com a entidade externa, essa representado por
sua vez, por um diagrama de fluxo de dados.
57
Modelagem de Dados
3.2.1 Entidade
Uma entidade tem como propsito representar um conjunto de objetos de um ambiente organizacional real qualquer, ora a ser modelado.
Como exemplo, podemos tomar um funcionrio chamado de Willian
Bonner, inscrito no RG sob o nmero 12.345.678-9. O nmero do RG de
Willian Bonner considerado como sendo uma entidade, pelo simples
fato de permitir identificar exclusivamente um determinado funcionrio
em comparao com os demais. Destaca-se ainda que uma entidade possa
assumir duas caractersticas, isso ser concreta (uma pessoa funcionrio) e ou abstrata (uma instituio acadmica).
Dessa maneira, voc pode perceber que um conjunto de entidades
por sua vez, forma um agrupamento de entidade de um mesmo tipo. Esses
conceitos lhe deixaram confuso? No se preocupe, tentaremos explica-los
para a sua melhor aprendizagem. Suponha um conjunto de funcionrios
de uma empresa qualquer, por exemplo, a Oracle, sendo assim, permitido definirmos esse conjunto de funcionrios como um conjunto de entidades, essas intituladas de FUNCIONARIO.
A Figura 3.2 a seguir, representamos graficamente suas entidades
por meio do uso de um diagrama entidade-relacionamento (DER):
Funcionrio
Empresa
58
Para uma entidade, sempre aconselhvel a existncia de um atributo identificador, esse por sua vez, pode ser simples
ou composto. O atributo identificador, como
Conexo:
o prprio nome diz, permite a identificao
Leia mais sobre Diagrama
nica e exclusiva de uma ocorrncia de
Entidade-Relacionamento (DER):
http://imasters.com.br/artigo/8568/
entidade. Todavia, em casos especiais,
banco-de-dados/documentacao-deisso , em tipos especficos de entidade,
projetos-web-der/
no encontraremos atributos identificadores. Esse tipo de entidade, a qual no
carece do uso de um atributo identificador chamado e entidade fraca.
Funcionrio
(1,n)
possui
Cdigo
Nome
Sobrenome
(1,1)
Dependente
Nome
Sexo
Data_Nascimento
3.2.2 Relacionamento
59
Modelagem de Dados
No diagrama entidade-relacionamento, um relacionamento representado graficamente atravs do uso de um losango, ora conectado
por meio de linhas as entidades (retngulos). A Figura 3.4 a seguir nos
permite visualizar um exemplo de relacionamento, ora identificado de
trabalha, representando o vinculo existente entre as entidades FUNCIONARIO e EMPRESA.
Funcionrio
Empresa
trabalha
gerencia
gerenciado
60
O uso de papel em uma entidade vinculada em um auto-relacionamento tem como objetivo promover a identificao correta de uma instncia da entidade dentro de uma instncia do relacionamento, ou seja, uma
ocorrncia de funcionrio poder desempenhar o papel de gerente e a
outra ocorrncia de funcionrio, por sua vez, poder assumir o papel de
gerenciado.
3.2.3 cardinalidade
Funcionrio
trabalha
Empresa
Na sequncia, torna-se possvel realizarmos a interpretao da cardinalidade mxima imposta sobre as entidades nomeadas de FUNCIONARIO e EMPRESA.
A entidade FUNCIONARIO apresenta uma cardinalidade mxima
ilimitada (muitos), essa podendo ser representada pelas letras N ou
M. Dessa maneira, uma empresa pode ter at N funcionrios trabalhando nela. Por outro lado, a entidade EMPRESA apresenta uma cardinalidade mxima 2, por sua vez, nos habilita interpretar que um FUNCIONARIO pode trabalhar em no mximo 2 empresas.
Considere o prximo exemplo, esse representado pela Figura 3.7.
Repare que utilizamos simultaneamente a representada das cardinalidades
mnima e mxima. Observe tambm que um FUNCIONARIO pode coordenar no mximo 2 (dois) projetos, e por sua vez, um PROJETO pode ser
coordenado por no mximo um funcionrio.
61
Modelagem de Dados
Funcionrio
(1,1)
coordena
(0,2)
Projeto
Agora que realizamos uma breve apresentao do uso de cardinalidades mxima e mnima, possvel descrever os principais tipos de
cardinalidades aplicados em relacionamentos binrios. Um detalhe, no se
esquea de que, possvel aplicar esses mesmos tipos de cardinalidades
em um auto-relacionamento, isso , em um relacionamento formado por
uma nica entidade (relacionamento unrio).
O primeiro tipo de cardinalidade um-para-um, por exemplo, um
empregado gerencia apenas um departamento, que por sua vez, gerenciado por um nico empregado, conforme visualizado na Figura 3.8 abaixo:
Funcionrio
gerencia
Departamento
O segundo tipo de cardinalidade um-para-muitos, para exemplificar, considere que um empregado gerencia apenas um departamento;
todavia, um departamento pode ser gerenciado por muitos empregados,
conforme apresentado na Figura 3.9 a seguir:
Funcionrio
62
gerencia
Departamento
J o terceiro tipo de cardinalidade a ser estudada, refere-se a muitos-para-muitos, como exemplo, considere que um empregado gerencia
muitos departamentos, e que, por sua vez, um departamento pode ser gerenciado por muitos empregados. Esse exemplo pode ser visualizado por
meio da Figura 3.10:
Funcionrio
gerencia
Departamento
Cidade
(1,n)
distribuio
(0,1)
Distribuidor
(0,n)
Produto
Modelagem de Dados
Bem, para clarear ainda mais esse conceito, quando nos depararmos
com relacionamentos de duas (binrio), trs (ternrio), ou n (nrio)
entidades, a cardinalidade a ser aplicada trabalha de maneira anloga a
cardinalidade aplicada em relacionamentos binrios, isso , torna-se necessrio trabalharmos com pares de entidades.
No exemplo da Figura 3.11, dizemos que as ocorrncias provenientes das entidades CIDADE e PRODUTO esto associadas a , no mximo
uma ocorrncia de DISTRIBUIDOR.
3.2.4 Atributo
64
No modelo entidade-relacionamento MER, possvel realizar a especificao de propriedades relacionadas s entidades. Essas propriedades
so nomeadas de atributo. Um atributo promove mecanismos para que
seja possvel associar informaes a ocorrncias de entidades e ou relacionamentos. Resumidamente, um atributo tem como propsito vincular
um determinado dado a cada ocorrncia de uma entidade especfica ou,
eventualmente, at mesmo a um relacionamento.
Aps apresentarmos o conceito de um atributo, podemos estender
nosso aprendizado sobre os vrios tipos de atributos existentes, como
tambm apresentar suas devidas utilizao. Os detalhes so apresentados
logo a seguir:
Atributo Simples: tipo de atributo que armazena um dado atmico, ou seja, um dado considerado indivisvel;
Atributo Composto: considerado como sendo um tipo especial
de atributo, pelo simples fato de permitir que sejam vinculados
a ele diversos dados segmentados de forma isolada por meio
de outros atributos. Similar ao atributo simples, um atributo
composto tambm carece de que o dado seja atmico. Como
exemplo, podemos mencionar o atributo endereo, pois, o mesmo possui vrios dados, como tipo de logradouro, o prprio logradouro, nmero, complemento, bairro, cidade, CEP e estado;
Atributo Multivalorado: esse atributo permite armazenar vrios
dados para uma nica entidade. Um exemplo clssico para o
uso desse tipo de atributo o nmero de telefone de uma determinada pessoa. Atualmente, uma pessoa pode ter dois ou mais
nmeros de telefones, a citar, telefone fixo e telefone celular de
mais de uma operadora;
Atributo Derivado: o atributo derivado armazena um dado proveniente de um processamento especfico. Por exemplo, o atributo idade de uma pessoa qualquer pode ser obtido a partir do
processamento da data de nascimento e data atual do aplicativo
computacional;
Atributo Identificador: tipo de atributo imprescindvel em uma
entidade. Esse atributo permite que identifiquemos exclusivamente uma ocorrncia de entidade. O atributo identificador
aplicado a uma entidade qualquer pode ser um atributo simples
ou composto. Para exemplificar, suponha a existncia de uma
entidade chamada de Pessoa. Voc consegue imaginar os possveis atributos identificadores que poderamos utilizar para essa
entidade? Como possveis respostas, teramos o nmero do
CPF, RG ou um nmero identificador produzido automaticamente pelo banco de dados.
65
Modelagem de Dados
Com o objetivo de exemplificar esse conceito de entidade especializada, considere a entidade FUNCIONARIO que por sua vez tem como
propsito descrever o tipo (atributos e relacionamento) de cada entidade
de funcionrio em um banco de dados qualquer. Normalmente, esse tipo
de entidade pode vincular diversos subgrupos ou subtipos de suas entidades que expressam algum tipo de relevncia e carecem de ser representados de maneira correta.
No exemplo apresentado pela Figura 3.12, ser que voc consegue
identificar os tipos de entidade FUNCIONARIO existente? Vamos l!
Considere que a entidade do tipo funcionrio representada ora pelas
entidades nomeadas de secretria, engenheiro e tcnico. possvel
interpretar que esse conjunto de entidades esto por sua vez vinculadas ao
um conjunto de entidades funcionrio, isso , cada entidade considerada tambm membro de qualquer um desses subtipos de funcionrio.
Sendo assim, o tipo de entidade nomeada de FUNCIONARIO
considerado superclasse (genrica) ou supertipo de cada uma das subclasses (especializadas).
Funcionrio
velocidade_digitao
Secretaria
Tcnico
CPF
data_nascimento
endereo
nome
Engenheiro
CREA
tipo_engenheiro
grau_tcnico
66
Dessa maneira, podemos considerar que especializao um processo pelo qual possvel determinar um conjunto de subclasses de um
tipo de entidade. Tal subconjunto de subclasses forma uma especializao
tomando como referncia as variadas caractersticas da superclasse, a citar como exemplo, secretria, engenheiro e tcnico, ou seja, simplesmente
se refere s especializaes da superclasse FUNCIONARIO, que distingue as entidades de funcionrio pelo uso do tipo de cargo.
Modelagem de Dados
Funcionrio
CPF
data_nascimento
endereo
nome
velocidade_digitao
Secretaria
Tcnico
Engenheiro
CREA
tipo_engenheiro
grau_tcnico
68
Funcionrio
CPF
data_nascimento
endereo
nome
t,c
Tcnico
Engenheiro
CREA
tipo_engenheiro
grau_tcnico
Figura 3.14 Especializao/generalizao do tipo COMPARTILHADA
Modelagem de Dados
Placa
Cdigo_veculo
Velocidade_mxima
Preo
Nmero_passageiros
Carro
ID_veculo
Placa
Nmero_eixos
Preo
Capacidade_peso
Caminho
Repare que foi realizado o processo oposto do processo de especializao, cujo objetivo foi estabelecer a generalizao. Visualize por intermdio da Figura 3.16 que CARRO e CAMINHO tornam-se especializaes da entidade genrica VECULO.
Cdigo_Veculo
Placa
Veculo
Preo
t,c
Nmero_eixos
Capacidade_peso
Caminho
Carro
Velocidade_mxima
nmero_passageiros
70
Conclumos mais um tpico importante da disciplina de Modelagem de Dados, explorando corretamente o recurso de herana, que permite que uma subclasse herde as propriedades consideradas comuns da
superclasse.
Mdico
(0,n)
consulta
(0,n)
Paciente
71
Modelagem de Dados
Mdico
(0,n)
consulta
(0,n)
Paciente
prescreve
(0,n)
Medicamento
72
Mdico
(0,n)
consulta
(0,n)
Paciente
prescreve
(0,n)
Medicamento
73
Modelagem de Dados
Antes de iniciarmos esse novo tpico, considere o diagrama entidade-relacionamento de um banco de dados de uma empresa imaginria, ora
representado pela Figura 3.12 abaixo:
Pnome
Nmero
Snome
Nome
Sexo
Nss
Localizao
Nome
N
Endereo
Salrio
EMPREGADO
TRABALHA PARA
consulta
NmeroDeEmpregados
DataIncio
DEPARTAMENTO
DataNasc
1
supervisor
GERENCIA
supervisiona
1
SUPERVISIONA
SUPERVISIONA
Horas
M
1
TRABALHA EM
DEPENDENTE DE
PROJETO
Nome
Nmero
Localizao
DEPENDENTE
Nome
Sexo
DataNasc
Relao
74
Modelagem de Dados
quando necessitamos de representar graficamente no DER uma dependncia existente entre entidades, utilizamos linhas paralelas.
Outro detalhe considerado relevando que devemos prestar muita
ateno, discorre sobre a existncia de um auto-relacionamento. Vimos
anteriormente que, quando existe um auto-relacionamento em um DER
qualquer, fundamental o uso de papis a fim de identificar adequadamente qual o tipo de relacionamento desempenhado em um determinado
instante. Como exemplo, considere ainda o nosso DER da Figura 3.12, o
auto-relacionamento nomeado de SUPERVISIONA assume o uso de dois
papis dspares, ou seja, ora o empregado assume o papel de SUPERVISOR ora o papel de SUPERVISIONADO.
Cdigo
Quantidade
Nome
fornece
Fornecedor
Projeto
Cdigo
Nmero
76
Pea
Nome
A Figura 3.14 nos demonstra um DER a fim de exemplificar um relacionamento binrio. Repare que o relacionamento intitulado de CURSO
emprega apenas dias entidades (ALUNO e DISCIPLINA).
RA
Nome
fornece
Aluno
Disciplina
Cdigo
Nome
A Figura 3.15 nos apresenta outro exemplo, onde possvel identificarmos que o grau do relacionamento CASAMENTO unrio (grau um), simplesmente por existir uma nica entidade, essa chamada de PESSOA. Voc
no deve se esquecer de que, quando fazemos uso de um relacionamento
unrio, imprescindvel o emprego de papis. Nesse tipo de relacionamento,
os papis possui um importante objetivo, o qual representar corretamente
uma associao entre ocorrncias de uma mesma entidade (isso , ora pessoa
assume o papel homem ora pessoa assume o papel mulher).
CPF
Nome
Homem
casamento
Pessoa
Mulher
Figura 3.15 Relacionamento unrio (grau um)
Modelagem de Dados
CPF
Quantidade
Nome
Candidato
CNPJ
realiza
Empresa
Entrevista
resultado
Nome
Trabalho
Depto/Data
Departamento
Data
Voc deve ter percebido as variadas notaes utilizadas para representar uma entidade, entidade-fraca, relacionamento, atributo, atributo
identificador, etc., em um diagrama entidade-relacionamento (DER). A
Tabela 3.1 a seguir apresenta as diversas notaes com suas respectivas
descries, empregadas at o presente momento nos exemplos de DER.
Lembrando que, eventualmente, essas representaes grficas (smbolos)
podem sofrer variao dependendo o tipo de ferramenta utilizada na elaborao dos diagramas entidade-relacionamento.
Notao (Simbologia)
Descrio
Entidade
78
Entidade-Fraca
Relacionamento
Relacionamento Identificador
Atributo
Atributo-chave (identificador)
Atributo Multivalorado
Atributo Composto
Atributo Derivado
Modelagem de Dados
identificao e cada bloco de salas, por sua vez, identificado por uma
letra. As salas so numeradas de forma sequencial dentro de cada bloco.
desejvel que o sistema de informao disponibilize algumas informaes, como por exemplo: nome e endereo de cada um dos Campus; para
cada campus, quais so os blocos de sala de aula e para cada bloco qual
o nmero de salas que possui, juntamente com a quantidade de andares;
para cada sala de aula, importante conhecer o nmero de carteiras, seu
tamanho (rea) e quais so as carteiras existente em cada sala (nmero do
patrimnio da carteira e se o brao de apoio est localizado do lado direito
ou esquerdo).
Aps abstrairmos os requisitos necessrios, podemos confeccionar
uma verso preliminar do DER, o qual deve atender de forma adequada
todas as funcionalidades expostas na descrio do Sistema de Informao
a ser criado pela Universidade. A Figura 3.17 apresenta um exemplo de
DER que teve como propsito atender os requisitos triviais do Sistema de
Informao da Universidade. Voc pode identificar a utilizao de duas
entidades-fracas, uma chamada de bloco e outra de sala de aula. Visualize os detalhes pertinentes a essas entidades-fracas no box cinza.
Campus
(1,1)
EndCampus
NomeCampus
IdentCampus
possui
(0,n)
Campus x Bloco:
cada instncia desse conjunto
ser identificada por
(IdentCampus + IdentBloco)
Bloco
QtdeSalas
TotalAndares
IdentBloco
(0,n)
localizada
(0,n)
Carteira
(0,n)
alocado
LadoBraoCart
NroPatrimnio
80
(1,1)
Sala de aula
NroSala
MetragemSala
QtdCarteirasSala
Sala de Aula:
a identificao unvoca de
cada sala dada por
(IdentCampus + IdentBloco + NroSala)
Atividades
01. Conceitue adequadamente um atributo, e discorra sobre os seus principais tipos. Na sequncia, d pelo menos um exemplo de cada tipo.
02. Conceitue um relacionamento e classifique os relacionamentos em relao ao nmero de objetos envolvidos.
03. Imagine um contexto acadmico, o qual, poderamos considerar uma
sala de aula. Qual seria a cardinalidade mxima de um professor em relao aos alunos, como tambm, dos alunos em relao ao professor?
Reflexo
Parabns! Voc finalizou mais um captulo, essa sem dvida foi uma
densa unidade de estudos! Foi possvel aprendermos acerca das principais
caractersticas do Modelo Entidade-Relacionamento, e como esse modelo
se torna imprescindvel para a criao de um bom projeto de banco de
dados.
Acreditamos que voc tenha maximizado seu conhecimento referente ao MER, como seus principais componentes, a citar: tipos de
entidades, relacionamentos, cardinalidade (um-para-um; um-para-muitos
e muitos-para-muitos), tipos de atributos (simples, composto, multivalorado, derivado e identificador).
Foi possvel ainda estudarmos acerca da representao grfica do
MER, essa imposta pelo uso do que chamamos de diagrama entidaderelacionamento (DER), sobretudo interpretarmos corretamente o grau dos
relacionamentos existentes nele.
Voc consegue lembrar-se dos principais graus que podemos abstrair de um determinado relacionamento?
O grau de um relacionamento factvel de ser abstrado levando em
considerao o nmero de entidades participantes (unrio, binrio, ternrio, quaternrio e nrio).
Leitura Recomendada
Artigos on-line: para voc aumentar ainda mais o seu nvel de conhecimento sobre os MER e DER:
http://www.devmedia.com.br/projeto-de-bd-tatico-para-informacoes-da-concorrencia/31392
81
Modelagem de Dados
http://imasters.com.br/artigo/8568/banco-de-dados/documentacaode-projetos-web-der/
Livros:
Modelagem Lgica de Dados: construo bsica e simplificada, de Eduardo Bernardes Castro.
Banco de Dados: Implementao em SQL, PL/SQL e Oracle
11g, Sandra Puga, Edson Frana e Milton Goyga;
Nestes livros voc encontra um bom contedo para complementar
os estudos apresentados pela apostila. Aprofunde seus conhecimentos!
Referncias
ELMASRI, R.; NAVATHE, S.B. Sistemas de bancos de dados. So
Paulo: Pearson (Addison Wesley), 2005.
KORTH, H.; SILBERCHATZ, A. Sistemas de bancos de dados. 3. ed.
So Paulo: Makron Books, 1998.
HEUSER, C. A. Projeto de Bancos de Dados. 2. ed. Porto Alegre: Sagra Luzzatto, 1999.
PRESSMAN, R.S. Engenharia de software. So Paulo: Makron Books,
1995.
ROB, P.; CORONEL, C. Sistemas de Banco de Dados: Projeto, Implementao e Administrao. 8. Ed. So Paulo: Cengage Learning, 2011.
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de
Banco de Dados. 5. ed. Rio de Janeiro: Elsevier, 2006.
82
No prximo captulo...
No prximo captulo iremos esmiuar o modelo de dados relacional! Pratique exaustivamente modelagem de dados, os tipos de relacionamentos e os seus principais conceitos.
83
Modelagem de Dados
Minhas anotaes:
84
Modelo de Dados
Relacional
Cap
t u
lo
Voc se lembra?
Modelagem de Dados
tb_ Disciplina
tb_pr_requisito
86
RA
Nome
Sala
Departamento
192
Ana Paula
Computao
324
Ceclia
Computao
Cdigo
Nome
Crditos
Departamento
C123
ICC
Computao
C342
Estrutura de
Dados
Computao
M098
Clculo I
Matemtica
C124
Banco de
Dados
Computao
Cdigo
Pr_requisito
C124
C324
C124
M098
C324
C123
tb_seo
Cdigo
Disciplina
Semestre
Ano
Professor
45
C123
2012
52
C324
2012
124
C124
2013
132
M098
2012
139
C324
2013
155
C124
2013
tb_histrico
RA
Cdigo_Seo
Nvel
192
155
192
139
324
132
324
124
324
52
324
45
88
}
7,0
23
8723-8877
Figura 4.2 Tabela aluno com suas respectivas instncias
null
Igor Afonso
523
4,8
20
null
3634-0987
Murilo Henrique
21
Rua Javari, 23
9,0
19
8345-0912
null
Bruno Freitas
709
7,8
26
9123-0989
null
Av. Pio XII, 1562
Marcia Garcia
324
6,5
21
null
3412-0909
Alice Martins
123
Rua Piau, 87
Mdia
Ponderada
Idade
Celular
Telefone
Endereo
Nome
Nessa relao, consideramos que aluno o nome da relao, a qual possui sete
atributos, por isso podemos interpretar que
essa relao de grau sete. possvel ainda,
detalhar alguns domnios para cada atributo
presente na relao aluno, por exemplo, o
domnio RA (registro acadmico numrico ou literal), nome (nomes dos alunos
- literal), telefone (nmero do telefone
fixo numrico ou literal), celular (nmero
do telefone mvel numrico ou literal) e
media_ponderada (valor correspondente a
mdia ponderada de um determinado aluno
- numrico).
A Figura 4.2 nos apresenta a relao
intitulada de aluno, onde podemos abstrair
que cada tupla (linha) representa uma entidade aluno. Essa relao representada por
sua vez como uma tabela considera cada
Aluno
RA
Tuplas
Modelagem de Dados
Modelagem de Dados
90
Em um esquema relacional, S formado por um conjunto de relaes S={R1, R2, ..., Rn}, e, concomitantemente, por um conjunto de restries de integridade (RI). Normalmente, atendemos duas consistncias,
essas consideradas cruciais, a citar Restrio de Integridade de Entidade
(RIE) e a Restrio de Integridade Referencial (RIR). A RIE tem como
propsito garantir o acesso aos dados sem nenhuma ambiguidade. Para
exemplificar o emprego da RIE, considere uma tupla qualquer, ora existente na relao R, dizemos que o valor de cada atributo que constitui a
chave-primria de (t) deve ser diferente de nulo e, ainda, no poder haver
uma outra tupla (t) em R com o mesmo valor da chave-primria de (t).
A fim de exemplificar a RIR, imagine uma tupla (t) e uma chaveestrangeira (foreign key) em (t), o valor da chave-estrangeira pode ser
nulo se e somente se os atributos de chave-estrangeira no formarem a
chave-primria de (t), e ainda, o valor da chave-estrangeira poder ser
diferente de nulo apenas se existir uma tupla (t) na relao referenciada tal
que a chave-primria de (t) possuir o mesmo valor da chave-estrangeira
de (t).
Existem ainda, outras implicaes que devemos nos atentar referente a RIR, por exemplo, suponha a existncia de duas relaes, essas
identificadas de R1 e R2, respectivamente e uma chave-estrangeira (fk)
aplicada R1 que referencia por sua vez chave-primria de R2, trs
aes bsicas podem ser consideradas:
I. Impedimento: uma operao de atualizao no ser concluda;
II. Cascata: se ocorrer uma excluso de uma tupla (t) qualquer ora
armazenada em R2, ento dever ser removida todas as tuplas de R1 tal
que a chave-estrangeira referencie a chave-primria de (t); se ocorrer
uma alterao da chave-primria de uma tupla (t) de R 2, dever ento
ser alterado todas as tuplas de R1 que faa referncia ao valor anterior
da chave-primria de (t) para o novo valor da chave-primria de (t);
91
Modelagem de Dados
III. Anulao: se ocorrer uma excluso ou uma alterao de uma tupla (t) de R 2, dessa maneira para toda tupla de R1 tal que a chaveestrangeira referencie a chave-primria de (t) dever configurar o valor
da chave-estrangeira para nulo.
Na Figura 4.3, podemos visualizar um esquema de banco de dados
relacional o qual atende os requisitos bsico de uma empresa fictcia qualquer. O conceito de banco de dados relacional discorre de um esquema e
suas respectivas instncias.
Empregado
Cd.
Emp
Nome
Sobrenome
DataNasc
Endereo
Sexo
Cd.
Depto
Salrio
Departamento
Cd.Depto
Nome
Cd.Gerente
Depto_Localizao
Cd.Depto
Depto.Localizao
Projeto
CdProjeto
Nome
ProjLocalizao
Cd.Depto
Trabalho_Projeto
Cd.Empregado
Cd.Projeto
Horas
Dependente
Cd
Empregado
Cd
Dependente
Nome
Sexo
DataNasc
Relao
92
aplicado ao atributo intitulado de CdDepto presente nas relaes EMPREGADO e PROJETO. Para o nosso exemplo, utilizamos nomes iguais,
todavia, isso no regra, podemos utilizar nomes diferentes para os mesmos atributos, sem qualquer tipo de restrio. Normalmente, atributos que
simbolizam conceitos dspares podem utilizar o mesmo nome desde que
estejam presentes em relaes distintas. A carter de exemplificao, o
atributo ora identificado de NOME presente na relao EMPREGADO,
por sua vez, utiliza o mesmo identificador, NOME, na relao DEPARTAMENTO.
Eventuais restries de integridade podero ser utilizadas no esquema de banco de dados relacional apresentado pela Figura 4.3, como, por
exemplo, as restries de chave-primria que tem como objetivo especificar as chaves-candidatas de cada relao em nosso esquema. Isso significa
que, os valores atrelados s chaves-candidatas devero garantir exclusividade para todas as tuplas. Outros dois tipos de restries podero ser aplicadas em nosso modelo relacional, a restrio de integridade de entidade
(RIE) e a restrio de integridade referencial (RIR).
A restrio de integridade de entidade (RIE) que tem como objetivo
determinar que absolutamente nenhum valor vinculado chave-primria
seja nulo, simplesmente por utilizamos esse valor de chave-primria para
identificar unicamente as tuplas na relao. Como exemplo, assuma que
existam duas tuplas ou mais com valores nulos associados chave-primria. Dessa forma, no existiria nenhuma maneira de identificar exclusivamente uma tupla da outra.
A outra restrio chamada de restrio de integridade referencial
(RIE) possui como propsito contemplar uma restrio associada entre
duas relaes, que garante a consistncia entre tuplas das mesmas. Ou
seja, a RIR garante que uma tupla de uma relao, essa associada por
sua vez outra relao, dever, referenciar a uma tupla existente naquela
mesma relao. A Figura 4.4, factvel observar que o atributo chamado
de CdDepto da relao EMPREGADO referencia um nmero de departamento em que cada empregado realiza suas atividades. Ou seja, todos os
valores associados coluna CdDepto da relao EMPREGADO devero
pertencer ao conjunto de valores da coluna CdDepto da relao DEPARTAMENTO.
93
Modelagem de Dados
As restries de integridade referencial so provenientes dos relacionamentos entre conjuntos de entidades que por sua vez, representam um determinado esquema de banco de dados.
Outras regras de integridade podem ser aplicadas no modelo relacional, a citar as restries
no-nula (NOT NULL) e no-redundante (UNIQUE). A restrio no-nula poder ser aplicada
em uma coluna para garantir que todas as tuplas da tabela apresentem um valor para essa
coluna. A restrio no-redundante implementada em uma coluna para garantir que no
exista nenhum valor duplicado na mesma. (DATE, 2003)
Empregado
Cd.
Emp
Nome
Sobrenome
DataNasc
Endereo
Sexo
Salrio
CdDepto
101
Joaquim
Mendes
09/01
/1995
Rua
A, 1
R$3.500,00
15
102
Elton
da Cruz
08/12
/1965
Rua B,
234
R$2.350,00
15
103
Juliano
Batista
19/07
1965
Av C,
78
R$1.775,00
24
104
Vanda
da Silva
30/06
1961
Rua D,
98
R$4.565,00
24
105
Emersom
Frota
16/09
/1968
Rua E,
21
R$9.100,00
15
106
Fabrcio
dos
Santos
31/07
/1986
Av J,
1347
R$8.100,00
15
107
Michelle
Pavereli
30/03
/1989
Av H,
76
R$2.450,00
24
108
Venilton
Jos
02/11
/1965
Rua T,
76
R$8.899,00
11
Departamento
94
Cd
Depto
Nome
CdGerente
11
Recursos Humanos
105
20/05/2000
15
Contabilidade
108
13/01/1996
24
Tcnologia da Informao
106
13/02/2009
Depto_Localizao
CdDepto
DeptoLocalizao
11
Sertzinho
15
Mococa
24
RibeiroPreto
Projeto
CdProjeto
Nome
ProjLocalizao
CdDepto
11
Matriz
Sertzinho
11
12
Alpha
Sertzinho
11
13
Genexus
RibeiroPreto
24
20
IRPF 2013
Mococa
15
30
ERP
RibeiroPreto
24
40
SAP
RibeiroPreto
24
Trabalho_Projeto
CdProjeto
Horas
101
11
40
101
11
55
108
40
67
103
30
90
105
20
120
108
13
102
12
30
104
30
24
106
40
18
107
11
CdEmpregado
95
Modelagem de Dados
Dependente
Cd
Empregado
Cd
Dependente
Nome
Sexo
DataNasc
Relao
101
Joo
28/02/2000
Filho
101
Pedro
10/10/2007
Filho
108
Sandra
01/07/2005
Sogra
105
Marcia
28/09/1940
Filha
105
Sabrina
17/04/2003
Filha
107
Guilherme
09/09/2008
Filho
103
Izadora
10/12/2012
Filha
96
Dando sequencia nos conceitos de restrio de integridade referencial RIR, torna-se necessrio apresentar o conceito de chave-estrangeira
(CE). Uma chave-estrangeira (do ingls foreign key) determina a existncia de uma integridade referencial aplicada entre duas relaes (R1 e R2)
e ou, eventualmente, aplicada em uma mesma relao.
Voc j aprendeu que normalmente um banco de dados, independentemente da regra de negcio, possui vrias relaes, essas por sua vez,
utilizam n restries de integridade referencial. O DBA (ou projetista
de dados) deve conhecer a fundo o significado correto dos atributos existentes nas diversas relaes que constituem o esquema de banco de dados,
para que se possa obter sucesso na elaborao dessas restries. Tais
restries, frequentemente, so provenientes dos vrios relacionamentos
existentes entre as entidades ora representadas pelo esquema de banco
de dados. Como exemplo, considere o banco de dados representado pela
Figura 4.4. Verifique que na relao EMPREGADO, o atributo CdDepto refere-se ao departamento em que cada empregado est associado, ou
seja, desempenha suas atividades, dessa maneira, esse atributo considerado uma chave-estrangeira de EMPREGADO, que tem como propsito,
referenciar valores vinculados ao atributo CdDepto, esse existente na
relao DEPARTAMENTO. Para finalizar esse exemplo, considere que o
valor associado ao atributo CdDepto independentemente da tupla da relao EMPREGADO, dever, impreterivelmente, estar associado um valor correspondente chave-primria da relao DEPARTAMENTO. Esse
mesmo valor, eventualmente, pode ser nulo somente se o empregado no
Nome
Sobrenome
Departamento
CdDepto
Nome
CdGerente DataInicioGerente
Depto_Localizao
CdDepto
Projeto
CdProjeto
Dependente
CdEmpregado
Endereo
Sexo
Salrio
CdDepto
DeptoLocalizao
Nome
Trabalha_Projeto
CdEmpregado
DataNasc
ProjLocalizao CdDepto
CdProjeto
CdDependente
Horas
Nome
Sexo
DataNasc
Relao
Modelagem de Dados
a definio dos variados tipos de restries, assegurando que essa verificao seja realizada pelo SGBD-R de forma automtica.
Estudamos at aqui apenas as restries de integridade de entidade
e referencial, porm, outras restries, a citar, restries de integridade semntica, tambm podem ser aplicadas em um banco de dados relacional.
Para exemplificar o uso de restrio de integridade semntica, suponha
que o salrio de um empregado no pode ser superior ao salrio do seu
diretor e, ou, o nmero mximo de horas dirias trabalhadas no pode
exceder 8 horas.
Para finalizar esse tpico, importante mencionar a existncia de
trs operaes triviais (insero, alterao e remoo) empregadas em
um esquema de banco de dados relacional qualquer. A primeira operao
discorre sobre a insero, a qual responsvel por inserir novas tuplas
em uma relao. A segunda operao a de alterao, onde os valores de
um ou mais atributos so alterados, e, por fim, a terceira operao, essa
nomeada de remoo, como o prprio nome sugere, realiza a remoo
das tuplas. Dessa forma, independente do tipo de operao aplicada em
um esquema relacional, as restries devem ser atendidas a fim de evitar
eventuais inconsistncias indesejveis.
98
nmero de junes entre as tabelas, evitar atributos opcionais, evitar tabelas subutilizadas, evitar excesso de controles de integridade no banco de
dados e evitar organizaes de dados em tabelas que possuem um nmero
significante de controle de integridade.
Normalmente, a fase que constitui o processo de mapeamento formado pelas seguintes etapas:
1. Mapeamento preliminar de entidades e seus atributos
2. Mapeamento de especializaes
3. Mapeamento de relacionamentos e seus atributos
Para exemplificar, considere a Figura 4.6, ora representada por uma
entidade chamada de EMPREGADOS, que por sua vez, incorpora os atributos RG (atributo identificador) nome e idade. Repare que o processo de
mapeamento para esse exemplo bem simples e objetivo e que, o atributo
identificador (chave-primria) representado pelo uso de um sublinhado
no nome do atributo.
Empregados
RG
Nome
Idade
CP Chave Primria
Em relao ao mapeamento de entidades-fracas, deve-se observar que o identificador da entidade considerada forte, constitui parte da
chave-primria da tabela correspondente entidade-fraca e, por outro
lado, torna-se chave-estrangeira na tabela fraca. Esse exemplo pode ser
visualizado na Figura 4.7. Lembre-se que a entidade-fraca nesse exemplo
ITENS. Note que foi utilizada uma chave-primria composta para esse
exemplo.
99
Modelagem de Dados
(1,1)
Pedido
(1,n)
composto
Cdigo
Produto
Quantidade
Itens
Nmero
CE Chave Estrangeira
Itens (NrPedido, CdItem, Produto, Quantidade)
CP Chave Primria Composta
J o exemplo apresentado pela Figura 4.8, realizado o mapeamento dos atributos (obrigatrio, opcional e composto):
PlanoSade (0,1)
Telefone (1,n)
Rua
Nmero
Cidade
Endereo
Empregados
RG
Nome
Idade
100
Endereo
Empregados
RG
Nome
Idade
101
Modelagem de Dados
SERVIDORES
Funo
FUNCIONRIOS
CPF
Nome
PROFESSORES
Titulao
Categoria
Para a 2 alternativa de mapeamento de entidade genrica e especializada, considere como exemplo a Figura 4.11, a qual foi realizada o mapeamento
de forma separada entre a entidade genrica SERVIDORES e suas entidades
especializadas, intituladas de FUNCIONARIOS e PROFESSORES.
SERVIDORES
Funo
102
FUNCIONRIOS
CPF
Nome
PROFESSORES
Titulao
Categoria
SERVIDORES
Funo
FUNCIONRIOS
CPF
Nome
PROFESSORES
Titulao
Categoria
103
Modelagem de Dados
CONFERNCIAS
Sigla
(1,1)
(1,1)
Organizao
COMISSES
Endereo
eMail
Nmero
DataInstalao
Nome
Como outro exemplo, podemos tomar o mapeamento de um relacionamento que possui duas cardinalidades, a primeira (1:1) e a segunda
cardinalidade (0:1), isso simboliza, opcional em um dos sentidos. A
Figura 4.14 demonstra o resultado desse mapeamento, perceba que foi
similar ao exemplo anterior, ou seja, fundimos em uma nica tabela.
Opcional: cardinalidade(mnima, mxima)
PESSOAS
Cdigo
(1,1)
Nome
Posse
(0,1)
CARTEIRAS_MOTORISTA
DataRetirada
DataExpedio
Validade
Categoria
Nmero
104
Existe ainda uma outra alternativa para esse caso, apresentado pela
Figura 4.15 que promove tambm o mapeamento do mesmo MER (opcional em um dos sentidos), todavia, utiliza duas tabelas (PESSOAS e CARTEIRAS_MOTORISTA).
PESSOAS
Cdigo
(0,1)
Posse
CARTEIRAS_MOTORISTA
DataRetirada
Nome
DataExpedio
Validade
Categoria
Nmero
HOMENS
RG
(0,1)
Nome
(0,1)
Casamento
Data
MULHERES
RG
Nome
Modelagem de Dados
HOMENS
Nome
RG
(0,1)
Casamento
MULHERES
Data
RG
Nome
Quando se trata de um relacionamento 1:N, isso , um relacionamento obrigatrio e ou opcional do lado N. O exemplo a seguir, ora representado pela Figura 4.18, possvel identificar que a entidade nomeada
de EMPREGADO trabalha com duas alternativas de cardinalidade, uma
representando a cardinalidade 1:N e a outra 0:N, a qual caracteriza opcional no lado N. No exemplo apresentado, torna-se possvel visualizar o
mapeamento final utilizando duas tabelas, essas nomeadas de DEPARTAMENTOS e EMPREGADOS e, ainda, que o atributo referente ao relacionamento LOTAO se encontra includo na tabela EMPREGADOS.
Obrigatrio/Opcional do lado n
(1,n)
(1,1)
Lotao
EMPREGADOS
DEPARTAMENTOS
(0,n)
Cdigo
Nome
Data
Cdigo
106
Nome
AUTOMVEIS
(0,1)
PESSOAS
(0,n)
Ano
Modelo
Chassi
DataCompra
RG
Nome
107
Modelagem de Dados
Opcional no lado 1
(1,n)
Posse
AUTOMVEIS
(0,1)
PESSOAS
(0,n)
Ano
Modelo
Chassi
DataCompra
RG
Nome
EMPREGADOS
(0,n)
Nome
RG
(1,n)
PROJETOS
(0,n)
DataIncio
Cdigo
Nome
108
(0,1)
Gerncia
EMPREGADOS
(0,n)
subordinado
Idade
Nome
RG
1 Alternativa:
EMPREGADOS (RG, Nome, Idade)
GERNCIA (RGempregado, RGgerente)
2 Alternativa:
EMPREGADOS (RG, Nome, Idade, RGgerente)
Em relao ao processo de mapeamento de uma entidade associativa, pode-se utilizar as mesmas recomendaes estudadas at o momento.
Apenas uma ressalva, importante identificar corretamente a entidade
associativa junto ao MER. A Figura 4.23 exemplifica o mapeamento de
entidades associativas.
109
Modelagem de Dados
EMPRSTIMOS
LIVROS
(0,n)
(0,1)
Emprstimo
CLIENTES
DataDevoluo
(0,n)
(1,1)
Cadastro
BIBLIOTECRIAS
INSTITUIES
110
(1,n)
Pesquisa
(0,n)
Sigla
PROJETOS
Nmero
(1,n)
PESQUISADORES
RG
(1,n)
PESQUISADORES
RG
Caso: N:N:N
INSTITUIES (Sigla, ...)
PROJETOS (Nmero, ...)
PESQUISADORES (RG, ...)
PESQUISA (Sigla, Nmero, RG, DataIncio)
Figura 4.24 Mapeamento de um relacionamento Grau 3 (N:N:N).
PRODUTOS
Distribuio
(0,n)
Cdigo
CIDADES
Cdigo
(0,1)
DISTRIBUIDORES
RG
Caso: 1:N:N
PRODUTOS (Cdigo, ...)
CIDADES (Cdigo, ...)
DISTRIBUIDORES (RG, ...)
DISTRIBUIO (CdProduto, CdCidade, RG)
111
(0,1)
Modelagem de Dados
DISTRIBUIDORES
RG
Caso: 1:N:N
PRODUTOS (Cdigo, ...)
CIDADES (Cdigo, ...)
DISTRIBUIDORES (RG, ...)
DISTRIBUIO (CdProduto, CdCidade, RG)
Figura 4.25- Mapeamento de relacionamento ternrio (1:N:N).
CORRESPONDNCIAS
(0,n)
Entrega
Peso
Cdigo
(0,n)
Cdigo
(0,1)
CARTEIROS
BAIRROS
RG
Caso: 1:1:N
BAIRROS(Cdigo, ...)
Proibida a reproduo UniSEB
112
(1,1)
Peso
Cdigo
Veculo
(1,1)
MOTORES
(1,1)
Fabricante
Cdigo
LATARIAS
Modelo
Cdigo
Caso: 1:1:1
VECULO (Cdigo, PesoPainel, CdMotor, FabrMotor,
CdLataria, ModLataria)
Figura 4.27 Mapeamento do relacionamento ternrio (1:1:1).
Atividades
01. Conceitue chave-primria simples e composta. D pelo menos trs
exemplo de cada tipo de chave-primria.
02. Utilize suas prprias palavras para discorrer sobre os conceitos de
Restrio de Integridade de Entidade (RIE) e Restrio de Integridade Referencial (RIR). Cite exemplos para ambos os conceitos.
03. Analise os requisitos a seguir e constitua sua modelagem relacional
que atenda algumas necessidades de informao, a citar: Qual o cdigo e
113
Modelagem de Dados
Reflexo
114
Leitura Recomendada
Artigos on-line: para que voc possa aumentar ainda mais o seu nvel de aprendizagem referente ao modelo de dados relacional:
http://imasters.com.br/artigo/2419/banco-de-dados/o-modelo-relacional-de-dados-parte-01/
http://imasters.com.br/artigo/2419/banco-de-dados/o-modelo-relacional-de-dados-parte-02/
http://imasters.com.br/artigo/2419/banco-de-dados/o-modelo-relacional-de-dados-parte-03/
Livros:
Sistemas de Banco de Dados: Projeto, Implementao e Administrao. ROB e CORONEL.
Sistemas de Bancos de Dados. Elmasri e Navathe;
Nesses dois livros possvel encontrar com detalhes todo o contedo explorado nesta unidade. fortemente recomendado que voc maximize seus conhecimentos nestas bibliografias.
Referncias
ELMASRI, R.; NAVATHE, S.B. Sistemas de bancos de dados. So
Paulo: Pearson (Addison Wesley), 2005.
KORTH, H.; SILBERCHATZ, A. Sistemas de bancos de dados. 3. ed.
So Paulo: Makron Books, 1998.
HEUSER, C. A. Projeto de Bancos de Dados. 2. ed. Porto Alegre:
Sagra Luzzatto, 1999.
Modelagem de Dados
No prximo captulo
No prximo captulo, estudaremos sobre o processo de normalizao, conceito tambm considerado importantssimo para obtermos projetos de banco de dados ntegros e concisos!
116
Normalizao
Cap
t u
lo
Voc se lembra?
Voc se lembra de nossa discusso no captulo 4 sobre os conceitos do modelo de dados relacional?
Estudamos nos captulos anteriores sobre os nveis de abstrao, voc ainda se lembra?
Em relao s chaves-primrias, estrangeiras e regras
de integridade, voc capaz de defini-los?
Modelagem de Dados
5.1 Normalizao
118
Normalizao Captulo 5
As fases do processo de normalizao de dados devem ser realizadas de maneira contnua (em cascata), ou seja, inicialmente deve-se
aplicar a primeira forma normal (1FN), na sequncia, deve-se aplicar
a segunda forma-normal (2FN), logo aps, deve-se conduzir a terceira
forma-normal (3FN), posteriormente, a quarta forma-normal (4FN) e,
para finalizar o processo, deve-se aplicar a quinta forma-normal (5FN).
Conceitualmente, a forma normal mais elevada possui melhor eficincia
se comparamos com sua antecessora, isto , a 5FN mais eficaz que a
4FN, que por sua vez, melhor que a 3FN, e assim, sucessivamente.
importante mencionar que, apesar do processo de normalizao de dados
ser constitudo por cinco formas normais, normalmente, em cenrios empresarias convencionais, realizamos a aplicao das trs primeiras regras
de normalizao de dados, ou seja, 1FN, 2FN e 3FN, resultando em um
esquema de banco de dados considerado aceitvel. As regras que constituem a 4FN e 5FN tornam-se aconselhvel apenas em estrutura de banco
de dados que realmente carecem da aplicao de tais regras.
119
120
Sistema ERP
Desenvolvimento de
Solfware
Manuteno
PSI001
PSI034
Sistema Apoio
Deciso
Descrio
Tipo
CdProjeto
A2
Joo de
Freitas
2141
A1
Sonia
Purcini
1189
C1
A1
Sonia
Purcini
1189
Jos
Ribeiro
A2
Carlos da
Silva
6162
4211
C1
Jos
Ribeiro
A2
Fbio
Cardoso
5134
4211
A1
Victor Nunes
6124
Categoria
Nome
Cd
Empregado
Salrio
Empregado
11/01/2002
01/04/2001
05/01/2003
11/01/2002
10/04/2002
10/03/2002
10/02/2001
11/01/2001
Data incio
24
48
24
24
36
36
48
48
Tempo
Modelagem de Dados
Normalizao Captulo 5
Pode-se identificar a existncia de aninhamento entre tabelas, sobretudo por ser fcil de identificar duas tabelas aninhadas, ou seja, uma tabela
com os dados referente aos empregados e outra tabela ora armazenando os
dados acerca dos projetos desempenhados por esses mesmos empregados.
Caso seja aplicado o processo de mapeamento da tabela utilizada como
exemplo (Figura 5.1), seria obtido como resultado final o esquema de dados abaixo:
PROJETOS (CdProjeto, Tipo, Descrio, CdEmpregado, Nome,
Categoria, Salrio, DataIncio, Tempo)
Com base nesse esquema ora no normalizado, iniciaremos o processo de normalizao de dados, aplicando as regras necessrias para que
essa tabela possa ser considerada como bem projetada, livre de redundncia de dados e eventuais inconsistncias, ou seja, sem a presena do que
denominamos anomalias de insero, alterao e remoo.
O processo de normalizao de dados deve seguir obrigatoriamente
a hierarquia apresentada pela Figura 5.2.
Tabela
Aninhada
Esquema
na 1FN
Esquema
na 2FN
Esquema
na 3FN
121
Modelagem de Dados
1FN (1 Alternativa):
PROJETOS (CdProjeto, Tipo, Descrio, CdEmpregado, Nome,
Categoria, Salrio, DataIncio, Tempo)
122
Normalizao Captulo 5
1FN (2 Alternativa)
PROJETOS (CdProjeto, Tipo, Descrio).
Modelagem de Dados
1FN:
2 Fase: constituir uma nova tabela, essa constituda pelas
chaves-primrias de cada uma das tabelas na qual a tabela em
questo se encontra aninhada, e, outra tabela constituda pelas
colunas da prpria tabela aninhada.
Tabela No-Normalizada (Aninhada):
(CdProjeto, Tipo, Descrio, (CdEmpregado, Nome, Categoria,
Salrio, DataIncio, Tempo)).
1FN:
(CdProjeto, Tipo, Descrio) (CdProjeto, CdEmpregado,
Nome, Categoria, Salrio, DataIncio, Tempo)).
124
Normalizao Captulo 5
125
Modelagem de Dados
CdProjeto
Tipo
Descrio
PSI001
Desenvolvimento de
Solfware
Sistema ERP
PSI034
Manuteno
Empregado
CdProjeto
Cd
Empregado
Nome
Categoria
Salrio
Data incio
Tempo
PIS001
6124
Victor
Nunes
A1
11/01/2001
48
PIS001
5134
Fbio
Cardoso
A2
10/02/2001
48
PIS001
4211
Jos
Ribeiro
C1
10/03/2002
36
PIS001
6162
Carlos da
Silva
A2
10/04/2002
36
PIS001
1189
Sonia
Purcini
A1
11/01/2002
24
PSI034
1189
Sonia
Purcini
A1
05/01/2003
24
PSI034
4211
Jos
Ribeiro
C1
01/04/2001
48
PSI034z
2141
Joo de
Freitas
A2
11/01/2002
24
126
Normalizao Captulo 5
...
Cdigo
...
Salrio
...
...
Emp01
...
R$6.059,00
...
...
Emp03
...
R$6.059,00
...
...
Emp01
...
R$6.059,00
...
...
Emp02
...
R$3.750,00
...
...
Emp02
...
R$6.059,00
...
...
Emp03
...
R$3.750,00
...
...
Emp01
...
R$6.059,00
...
Cdigo Salrio
A prxima Figura 5.5, factvel identificar a ausncia da dependncia funcional entre as colunas intituladas de A e B.
A
20
15
20
20
15
15
10
18
12
18
10
18
20
15
10
18
15
127
Modelagem de Dados
20
15
20
20
15
15
10
18
12
18
10
18
20
15
10
18
15
(A, B) C
128
Normalizao Captulo 5
Empregado
CdProjeto
Cd
Empregado
Nome
Categoria
Salrio
Data incio
Tempo
PIS001
6124
Victor
Nunes
A1
11/01/2001
48
PIS001
5134
Fbio
Cardoso
A2
10/02/2001
48
PIS001
4211
Jos
Ribeiro
C1
10/03/2002
36
PIS001
6162
Carlos da
Silva
A2
10/04/2002
36
PIS001
1189
Sonia
Purcini
A1
11/01/2002
24
PSI034
1189
Sonia
Purcini
A1
05/01/2003
24
PSI034
4211
Jos
Ribeiro
C1
01/04/2001
48
2141
Joo de
Freitas
A2
11/01/2002
24
Note que as colunas nome, categoria e salrio dependem por sua vez
apenas de parte da chave-primria composta, isso , apenas da coluna CdEmpregado, no tornando necessrio a associao entre as duas colunas
(CdProjeto e CdEmpregado) para identificar exclusivamente os valores
pertinentes as colunas nome, categoria e salrio.
129
Modelagem de Dados
130
Normalizao Captulo 5
2FN:
Projetos_Empregados (CdProjeto, CdEmpregado, DataIncio, Tempo)
Como resultado final, ou seja, posteriormente aplicar as regras referente a 2FN, o esquema de banco de dados pode ser resumido como:
2FN:
Projetos (CdProjeto, Tipo, Descrio)
Projetos_Empregados (CdProjeto, CdEmpregado, DataIncio,
Tempo)
possvel ainda representar o esquema de banco de dados anterior
por meio do uso de tabelas, essas identificadas por sua vez de Projetos,
Empregado e Projetos_Empregados, conforme a Figura 5.8.
Projetos
CdProjeto
Tipo
Descrio
PSI001
Desenvolvimento de
Solfware
Sistema ERP
PSI034
Manuteno
Modelagem de Dados
Tabela: Projetos_empregados
CdProjeto
Cd
Empregado
Data incio
Tempo
PIS001
6124
11/01/2001
48
PIS001
5134
10/02/2001
48
PIS001
4211
10/03/2002
36
PIS001
6162
10/04/2002
36
PIS001
1189
11/01/2002
24
PSI034
1189
05/01/2003
24
PSI034
4211
01/04/2001
48
PSI034
2141
11/01/2002
24
Tabela: Empregados
Cd
Empregado
Nome
Categoria
Salrio
6124
Victor Nunes
A1
5134
Fbio
Cardoso
A2
4211
Jos
Ribeiro
C1
6162
Carlos da
Silva
A2
1189
Sonia
Purcini
A1
1189
Sonia
Purcini
A1
4211
Jos
Ribeiro
C1
2141
Joo de Freitas
A2
132
Normalizao Captulo 5
Detalhando o esquema apresentado anteriormente, note que a coluna Salrio determinada pela coluna Categoria. Nessa caso, salrio
pago para uma determinada categoria, ora armazenada diversas vezes
independentemente do nmero de empregados vinculados mesma categoria. A Figura 5.9 exemplifica esse tipo de problema, ora aplicada na
tabela Empregados.
Tabela: Empregados
Cd
Empregado
Nome
Categoria
Salrio
6124
Victor Nunes
A1
5134
Fbio
Cardoso
A2
4211
Jos
Ribeiro
C1
6162
Carlos da
Silva
A2
1189
Sonia
Purcini
A1
1189
Sonia
Purcini
A1
4211
Jos
Ribeiro
C1
2141
Joo de Freitas
A2
A seta de cor azul escura representa o que denominamos de dependncia funcional transitiva.
Uma tabela se encontra na 3FN, se e somente se, alm de atender
as regras da 2FN e no possuir dependncias funcionais transitivas. Para
que a tabela Empregados atenda as regras da 3FN, torna-se necessrio eli133
Modelagem de Dados
3FN:
Empregados (CdEmpregado, Nome, Categoria)
Dessa maneira, as colunas que dependem de uma coluna que no
chave-primria devem constituir uma nova tabela, conforme apresentado
pelo esquema abaixo, onde criamos uma nova tabela intitulada de Categoria com os atributos CdCategoria e Salrio.
3FN:
Categorias (CdCategoria, Salrio )
134
3FN:
Projetos (CdProjeto, Tipo, Descrio)
Projetos_Empregados (CdProjeto, CdEmpregado, DataIncio,
Tempo)
Empregados (CdEmpregado, Nome, Categoria)
Normalizao Captulo 5
Finalizando o processo de normalizao que atende a 3FN, apresentamos o esquema anterior constitudo pelas tabelas Projetos, Empregados,
Projetos_Empregados e Categorias com suas respectivas instncias, conforme podemos visualizar na Figura 5.10.
CdProjeto
Tipo
Descrio
PSI001
Desenvolvimento de
Solfware
Sistema ERP
PSI034
Manuteno
Tabela: Projetos_empregados
CdProjeto
Cd
Empregado
Data incio
Tempo
PIS001
6124
11/01/2001
48
PIS001
5134
10/02/2001
48
PIS001
4211
10/03/2002
36
PIS001
6162
10/04/2002
36
PIS001
1189
11/01/2002
24
PSI034
1189
05/01/2003
24
PSI034
4211
01/04/2001
48
PSI034
2141
11/01/2002
24
Tabela: Empregados
Cd
Empregado
Nome
Categoria
6124
Victor Nunes
A1
5134
Fbio Cardoso
A2
4211
Jos Ribeiro
C1
6162
Carlos daSilva
A2
1189
Sonia Purcini
A1
1189
Sonia Purcini
A1
4211
Jos Ribeiro
C1
2141
Joo de Freitas
A2
135
Modelagem de Dados
Tabela: Categorias
CdCategoria
Salrios
A1
A2
C1
Cdigo
Nome
EQUIPAMENTO
Cdigo
Nome
Utilizao
EMPREGADO
Cdigo
Nome
136
Normalizao Captulo 5
Vamos considerar esses dados para a tabela UTILIZAO, conforme apresentado na Figura 5.12.
Tabela: Utilizao
CdProjeto
CdEmpregado
CdEquipamento
137
Modelagem de Dados
Tabela: Utilizao
Tabela: Utilizao
CdProjeto
CdEmpregado
CdProjeto
CdEquipamento
4FN:
Projetos_Empregados (CdProjeto, CdEmpregado)
Projetos_Equipamentos (CdProjeto, CdEquipamento)
Dessa forma, podemos concluir que as tabelas Projetos_Empregados e Projetos_Equipamentos presentes no esquema anterior contemplam
as regras pertinentes a 4FN.
138
Normalizao Captulo 5
Disciplina
Banco de Dados 1
Jos Ribeiro
Bancos de Dados 2
Fernando Feliciano
Engenharia de Software
Anlise de Projeto de Sistemas
Ainda existe a possibilidade de um ou vrios professores escreverem uma ou diversas apostilas, formando assim a dependncia funcional
cclica, conforme podemos constatar na tabela Professor_Apostila representada pela Figura 5.15.
Tabela: Professor_Apostila
Professor
Apostila
Banco de Dados 1 e 2
Gerenciamento de Projetos
Modelagem de Dados
Apostila
Banco de Dados 1
Banco de Dados 1 e 2
Bancos de Dados 2
Engenharia de Solfware
Engenharia de Solfware
Anlise e Projeto de Sistemas
140
Conexo:
Leia mais sobre normalizao de dados em:
http://imasters.com.br/artigo/7020/
Posteriormente a visualizao
banco-de-dados/modelagem-de-dadosdas trs tabelas (Professor, Profesfinal-normalizacao/
sor_Apostila e Disciplina_Apostila),
possvel identificar a relao cclica
existente entre Professor Disciplina;
Disciplina Apostila e Professor
Apostila.
No processo de normalizao de bancos de
dados relacionais, eventualmente, podemos nos deparar com alguns problemas, por exemplo, o uso de chaves primrias incorretas ou at mesmo
omitidas; atributos considerados relevantes no representados corretamente e possveis atributos no relevantes, redundantes ou derivados.
Chaves-primrias omitidas ou utilizadas de forma inadequada podem surgir em uma tabela devido ao conceito de uma chave-primria no
ser obrigatria, dessa forma, existe a possibilidade de encontrarmos tabelas onde a chave-primria se encontra ausente.
Caso voc se deparar com uma tabela que no possui uma chaveprimria ou, se a chave-primria existente nessa tabela seja distinta da
chave-primria usual, para o processo de normalizao de dados, deve-se
considerar como se a chave-primria estivesse presente e, principalmente,
inseri-la na forma no normalizada.
Normalizao Captulo 5
Atividades
01. Conceitue adequadamente o processo de normalizao de dados. Cite
suar principais formas.
02. Defina com suas palavras o conceito de dependncia funcional parcial.
03. Apresente um exemplo de dependncia funcional transitiva.
04. Define adequadamente as dependncias funcionais existentes em uma
tabela que no contempla as regras da 4FN e 5FN.
Reflexo
Leitura Recomendada
Artigos on-line: para voc incrementar mais o seu nvel de aprendizagem do processo de normalizao de dados:
http://www.devmedia.com.br/normalizacao-de-banco-de-dados/29555
http://www.devmedia.com.br/passo-a-passo-para-modelagem-dedados/28326
Livro: Sistema de Banco de Dados, Silberschatz, A., Korth, H. F.,
Sudarshan, S. Neste livro voc encontrar um contedo especfico de normalizao de dados, muito desta unidade foi baseada nos conceitos deste
141
Modelagem de Dados
Referncias
ELMASRI, R.; NAVATHE, S.B. Sistemas de bancos de dados. So
Paulo: Pearson (Addison Wesley), 2005.
KORTH, H.; SILBERCHATZ, A. Sistemas de bancos de dados. 3. ed.
So Paulo: Makron Books, 1998.
HEUSER, C. A. Projeto de Bancos de Dados. 2. ed. Porto Alegre:
Sagra Luzzatto, 1999.
PRESSMAN, R.S. Engenharia de software. So Paulo: Makron
Books, 1995.
ROB, P.; CORONEL, C. Sistemas de Banco de Dados: Projeto, Implementao e Administrao. 8. Ed. So Paulo: Cengage Learning,
2011.
SILBERSCHATZ, A.; KORTH, H. F.; SUDARSHAN, S. Sistema de
Banco de Dados. 5. ed. Rio de Janeiro: Elsevier, 2006.
DATE, C. J.; Introduo a Sistemas de Banco de Dados; 8. Ed.;
Trad. Daniel Vieira; Rio de Janeiro: Elsevier, 2003.
142
Normalizao Captulo 5
Gabarito
Captulo 1
01. Cite pelo menos trs exemplos de Dados e Informaes, num contexto de empresarial qualquer. Detalhe cada um.
Sugesto de Resposta: Podemos exemplificar dados e informaes da seguinte maneira.
Imagine respectivamente que voc encontre esses trs dados em um e-mail existente em
sua caixa de mensagens: R$ 2.567,00, Rafael Carvalho e Elizabeth Mendes da Costa.
Bem, voc pode concordar que esses dados no evidenciam nenhuma informao, por
simplesmente desconhecermos o contexto o qual os mesmos esto inseridos. Agora,
suponha que o primeiro dado (R$ 2.567,00) esteja associado ao contexto de uma conta
bancria, assim, poderamos subtender que esse dado agora seria a informao do saldo
atual dessa mesma conta. Por sua vez, o segundo dado se encontra incluso no contexto
acadmico, sendo assim, Rafael Carvalho se trataria do nome do aluno que foi aprovado
em uma determinada disciplina. E, por fim, o dado Elizabeth Mendes da Costa, esteja
associado ao contexto hospitalar, gerando a informao de que esse dado diz respeito
ao nome de uma paciente qualquer. Dessa maneira, podemos concluir de que o dado nico e exclusivamente sozinho no nos gera nenhuma informao, tornando-se imprescindvel conhecermos o contexto (regra de negcio) o qual o mesmo se encontra associado.
02. Apresente quatro diferenas significativas existentes entre um sistema de arquivo e um SGBD.
Sugesto de Resposta: Se compararmos o armazenamento de dados utilizando-se um
sistema de arquivo e um SGBD, alguns problemas podem ser evidenciado quando utilizamos a primeira opo, a citar: a estrutura de arquivos definida pelo prprio cdigofonte do sistema computacional, prejudicando consideravelmente sua manuteno; o
controle de acesso desses arquivos apresentam grandes obstculos quando mencionamos
o compartilhamento; o uso de formatos especficos acarreta no isolamento de dados e por
fim, a ausncia de controle de acesso concorrente pode gerar inconsistncias nos dados.
J o armazenamento de dados por meio do uso de um SGBD elimina esses problemas reportados anteriormente, e ainda, implementa o uso de uma linguagem padro (SQL) para
promover adequadamente o acesso (DCL) e manipulao dos dados (DML) e objetos
(DDL) de um banco de dados.
03. Identifique cinco caractersticas de um sistema de gerenciamento de banco de
dados (SGBD).
Sugesto de Resposta: Evidenciamos como 5 principais caractersticas associadas a um
SGBD o: controle de acesso aos dados; controle de redundncia; compartilhamento de
dados com controle de concorrncia; mltiplas vises do mesmo conjunto de dados e
restries de integridade, seja a nvel de entidade e ou referencial.
143
Modelagem de Dados
Captulo 2
01. Descreva detalhadamente o conceito de Entidade e Relacionamento. Cite pelo
menos trs exemplos onde podemos utilizar ambos.
Sugesto de Resposta: Entidade pode ser considerada como algo que desejamos armazenar no banco de dados, a citar como exemplos: um carro, um funcionrio e ou um aluno,
que, por sua vez, representa um determinado tipo de objeto abstrado do mundo real. Um
relacionamento tem como propsito descrever um vnculo (associao) entre uma ou
vrias entidades. Como primeiro exemplo, suponha a existncia de um relacionamento o
qual associa as entidades Funcionrio e Cliente essa nomeada de atende, que pode
ser interpretado da seguinte maneira: um funcionrio atende um ou vrios clientes. Um
cliente atendido por nenhuma, ou no mximo um funcionrio. Para o segundo exemplo, considere um relacionamento nomeado de trabalha que associa as entidades Departamento e Funcionrio. A interpretao desse relacionamento seria algo similar a:
em um departamento pode trabalhar nenhum ou vrios funcionrios, por outo lado, um
funcionrio pode trabalhar em no mximo um departamento. E para finaliza os exemplos
de relacionamentos, suponha a existncia das entidades Professor e Disciplina, um
relacionamento sugestivo seria ministra. Sua interpretao poderia ser algo como: um
professor ministra um ou vrias disciplinas, e pode sua vez, uma disciplina pode ser ministrada por um ou vrios professores.
02. Analise o cenrio do ambiente acadmico, mais especificamente, de uma sala de
aula. A partir dessa analise, represente por meio de um DER, o conjunto de carteiras e o conjunto dos tipos de mveis.
Sugesto de Resposta:
CNPJ
Razo_Social
Endereo
Universidade
Nmero_Sala
Tamanho
Andar
(1,1)
(1,n)
possui
Sala de Aula
(1,1)
contm
(0,n)
Cdigo
Descrio
144
Tipo Mvel
(1,1)
possui
(0,n) Mvel/Mobilia
Cdigo
Descrio
Normalizao Captulo 5
Captulo 3
01. Conceitue adequadamente um atributo, e discorra sobre os seus principais tipos. Na sequncia, d pelo menos um exemplo de cada tipo.
Sugesto de Resposta: um atributo conceituado como uma caracterstica particular de
uma entidade, ou at mesmo de um relacionamento especfico. Os atributos podem ser
segmentados em diversos tipos, a citar: simples , composto, multivalorado, derivado e
identificador.
Exemplos: Simples: nome; Composto: endereo; Multivalorado: telefone; Derivado:
idade e Identificador: CPF.
02. Conceitue um relacionamento e classifique os relacionamentos em relao ao
nmero de objetos envolvidos.
145
Modelagem de Dados
(1,n)
possui
(0,n)
Aluno
Captulo 4
01. Conceitue chave-primria simples e composta. D pelo menos trs exemplo de
cada tipo de chave-primria.
Sugesto de Resposta: uma chave-primria possui algumas caractersticas relevantes, a
citar: os atributos definidos para constituir a chave-primria, por definio, tm que possuir valores nicos para cada registro na relao; nenhum dos atributos que constituem a
chave-primria poder, em hiptese alguma, possuir valores nulos em nenhum registro
e no caso da chave-primria ser composta, no poder ser adicionado mais atributos do
que os mnimos necessrios para identificar os registros de forma unvoca. Uma chaveprimria simples necessita de apenas um atributo para identificar exclusivamente uma
ocorrncia de uma entidade qualquer, todavia, uma chave-primria composta, precisa de
mais de um atributo para identificar uma ocorrncia de endidade.
02. Utilize suas prprias palavras para discorrer sobre os conceitos de Restrio de
146
Normalizao Captulo 5
03. Analise os requisitos a seguir e constitua sua modelagem relacional que atenda
algumas necessidades de informao, a citar: Qual o cdigo e a descrio de cada
projeto desempenhado na empresa? Qual o nmero da matrcula e nome de cada
funcionrio? Quais so as possveis funes desempenhadas na empresa?
Sugesto de Resposta:
Funcionrio
(1,1)
possui
(1,n)
Funcionrio
(1,n)
participa
(0,n)
Projeto
(0,n)
desempenha
(1,n)
Funo
Sugesto de Resposta: (similar ao DER anterior, porm, agora incrementamos as cardinalidades a fim de atender as regras).
05. Quais caractersticas so desejveis para uma chave-candidata?
Sugesto de Resposta: Uma chave-candidata uma chave que apresenta obrigatoriamente as duas caractersticas a seguir: (1) unicidade: no h duas linhas (tuplas) distintas na
tabela com o mesmo valor para os atributos da chave; (2) irredutibilidade: no existe um
subconjunto de atributos da chave que apresentem a caracterstica de unicidade.
147
Modelagem de Dados
Captulo 5
01. Conceitue adequadamente o processo de normalizao de dados. Cite suas principais formas
Sugesto de Resposta: O processo de normalizao tem como objetivo promover a reestruturao dos dados a fim de eliminar qualquer tipo de redundncia caracterizada como
indesejvel, ora presentes em alguns esquemas de banco de dados. Esse mesmo processo
constitudo por cinco formas normais (1FN, 2FN, 3FN, 4FN e 5FN), entretanto, se for
considerado as trs primeiras formas normais (1FN, 2FN e 3FN), j se possvel alcanarmos satisfatoriamente um modelo de banco de dados estruturado e conciso.
02. Defina com suas palavras o conceito de dependncia funcional parcial.
Sugesto de Resposta: Uma dependncia funcional parcial quando um determinado
atributo (coluna) depende de apenas parte de uma chave-primria composta, ou seja, no
depende da chave-primria composta inteira para identificar exclusivamente uma ocorrncia dessa entidade (relao/tabela).
03. Apresente um exemplo de dependncia funcional transitiva.
Sugesto de Resposta: Uma dependncia funcional transitiva quando um atributo
(coluna) depende de outro atributo (coluna) que no a chave-primria e nem faz parte
de uma chave-primria composta para identificar uma ocorrncia de entidade (relao/
tabela) exclusivamente.
Exemplo: Considere a relao abaixo intitulada de Funcionrios:
Funcionrios (CdFuncionrio, Nome, Sobrenome, Endereo, Funo, Salrio)
Os valores do atributo nomeado de Salrio depende dos valores do atributo Funo e
no da chaveprimria CdFuncionrio para identificar exclusivamente uma ocorrncia
de entidade (relao/tabela), caracterizando o que chamamos de dependncia funcional
transitiva.
04. Define adequadamente as dependncias funcionais existentes em uma tabela
148
Normalizao Captulo 5
Minhas anotaes:
149
Modelagem de Dados
Minhas anotaes:
150
Normalizao Captulo 5
Minhas anotaes:
151
Modelagem de Dados
Minhas anotaes:
152