ndice
INTRODUO............................................................................ ERRO! INDICADOR NO DEFINIDO.
ANLISE DE DADOS ............................................................................................................................... 4
1.
INTRODUO ............................................................................................................................... 4
2.
MODELOS ...................................................................................................................................... 4
3.
3.5.5.
Supertipo e Subtipo (sub-entidade) ...................................................................................... 11
3.5.6.
Regras de negcio ................................................................................................................ 11
3.6. ELEMENTOS COMPONENTES DE UM MODELO DE DADOS FSICO ...................................................... 12
3.6.1.
Database ............................................................................................................................... 12
3.6.2.
Database Link....................................................................................................................... 12
3.6.3.
Tablespace ............................................................................................................................ 12
3.6.4.
Datafile ................................................................................................................................. 12
3.6.5.
Instance ................................................................................................................................ 12
3.6.6.
User ...................................................................................................................................... 12
3.6.7.
Schema.................................................................................................................................. 13
3.6.8.
Role....................................................................................................................................... 13
3.6.9.
Table ..................................................................................................................................... 13
3.6.10. View ...................................................................................................................................... 15
3.6.11. Snapshot ............................................................................................................................... 15
3.6.12. Column ................................................................................................................................. 15
3.6.13. Line ....................................................................................................................................... 15
3.6.14. Reference .............................................................................................................................. 15
3.6.15. Restrio de Integridade ...................................................................................................... 16
3.6.16. Constraint ............................................................................................................................. 16
y
y
y
y
y
3.6.17.
3.6.18.
3.6.19.
3.6.20.
3.6.21.
Trigger .................................................................................................................................. 17
Procedure ............................................................................................................................. 17
Function................................................................................................................................ 17
Package ................................................................................................................................ 17
Index ..................................................................................................................................... 18
ii
3.6.22.
3.6.23.
3.6.24.
4.
Sequence ............................................................................................................................... 18
Synonym................................................................................................................................ 18
Cluster .................................................................................................................................. 19
NORMALIZAO....................................................................................................................... 19
iii
ndice de Figuras
Figura 1 Entidade ..................................................................................................................................... 6
Figura 2 Atributo....................................................................................................................................... 6
Figura 3 Chave Primria .......................................................................................................................... 7
Figura 4 Cardinalidade............................................................................................................................. 7
Figura 5 Opcionalidade ............................................................................................................................ 8
Figura 6 Auto-Relacionamento ................................................................................................................. 8
Figura 7 Relacionamentos 1 x 1 ................................................................................................................ 8
Figura 8 Relacionamentos 1 x N ............................................................................................................... 9
Figura 9 Relacionamentos Simtricos ..................................................................................................... 10
Figura 10 Relacionamento Binrio ......................................................................................................... 10
Figura 11 Relacionamento Ternrio ....................................................................................................... 10
Figura 12 Supertipo e Subtipo ................................................................................................................ 11
Figura 13 Modelo Conceitual ................................................................................................................. 14
Figura 14 Modelo Fsico ......................................................................................................................... 14
Figura 15 Referncia............................................................................................................................... 16
Figura 16 Tabela Desnormalizada.......................................................................................................... 20
MODELAGEM DE DADOS
Pg.
4
Modelagem de Dados
1. Introduo
A evoluo constante da tecnologia faz com que as empresas necessitem cada vez mais
de sistemas estveis e confiveis. fato que a espinha dorsal de um sistema sua arquitetura de
dados, ou seja, um sistema desenvolvido com uma arquitetura de dados incorreta causa grandes
transtornos empresa, gerando manutenes constantes e aumentando os custos com
desenvolvimento at que o sistema se torne invivel. Para solucionar este tipo de problema,
necessrio que seja executado um trabalho minucioso sobre a funcionalidade do sistema
prevendo as possveis oscilaes de mercado e regras de negcios abrangentes, elaborando sua
arquitetura de forma efetiva. Para este fim, as modernas tcnicas de desenvolvimento de
sistemas recomendam a utilizao da Anlise de Dados.
A Anlise de Dados , portanto, um conjunto de tcnicas que visa representar, atravs de
modelos, o negcio da empresa enfocado pelo ponto de vista dos dados que o compem e de
forma independente dos processos que manipulam esses dados.
2. Modelos
Os modelos so instrumentos de representaes abstratas de uma realidade existente
(Modelo Descritivo) ou de uma soluo para um determinado problema (Modelo Normativo).
Exemplos:
y Mapa / Globo;
y Planta Arquitetnica;
y Pauta Musical;
y Modelos Matemticos (Simulao, Programao Linear, Filas);
y Modelo de Sistemas;
y Modelo de Dados.
3. Modelo de Dados
Todo o sistema (manual ou computadorizado) manipula, nas suas diversas funes,
objetos. As mais modernas tcnicas de anlise so unnimes em reconhecer a importncia de
analisar estes objetos com independncia das funes que o sistema executa, assim como de
abstrair, mediante um modelo grfico, as caractersticas essenciais destes objetos, Este modelo
, em geral, conhecido como Modelo de Dados.
Modelos de Dados esto para Sistemas assim como mapas esto para reas geogrficas.
MODELAGEM DE DADOS
Pg.
5
A Anlise de Dados admite trs nveis de abstrao de modelos, que representam seu grau
de detalhamento em relao implementao. So eles:
y Modelo Conceitual
y Modelo Lgico
y Modelo Fsico
MODELAGEM DE DADOS
Pg.
6
3.5.1.
Entidade
Uma entidade um conjunto de objetos do mundo real, semelhantes entre si, a respeito
dos quais guardam-se a mesma espcie de dados, ou seja, qualquer coisa concreta ou conceitual
que tenha significado para o negcio e sobre a qual seja necessrio guardar informaes.
Para a anlise de dados, ela composta de um nmero finito de objetos, maior que um,
cada um deles possvel de ser univocamente identificado, e normalmente denominada pelo
substantivo que designa cada um dos objetos que a compem.
Convm observar que desde a popularizao dos Sistemas de Gerenciamento de Bancos
de Dados Relacionais, comum chamar as entidades de tabelas.
Figura 1 Entidade
EMPREG ADO
3.5.2.
Atributo
MODELAGEM DE DADOS
3.5.3.
Pg.
7
3.5.4.
Relacionamento
3.5.4.1. Cardinalidade
a indicao do nmero mximo de objetos de uma entidade aos quais os objetos de
outra(s) entidade(s) podem estar vinculados.
Figura 4 Cardinalidade
DIVISAO
EMPREGADO
PERTENCE
MODELAGEM DE DADOS
Pg.
8
3.5.4.2. Opcionalidade
Expressa, conceitualmente, se o relacionamento obrigatrio ou opcional.
Figura 5 Opcionalidade
CLIENTE
PROJETO
SUBCONTRATA
EMPREGADO
Um empregado supervisor de outros empregados. Isto implica que existe um autorelacionamento na entidade EMPREGADO, que poderia ser nomeado como
SUPERVISIONA.
SUPERVISIONA
PROJETO
PARTICIPA
MODELAGEM DE DADOS
EQUIPE
PROJETO
PARTICIPA
EQUIPE
PROJETO
PARTICIPA
Pg.
9
Figura 8 Relacionamentos 1 x N
DIVISAO
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
EMPREGADO
PERTENCE
DIVISAO
MODELAGEM DE DADOS
Pg.
10
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
DIVISAO
EMPREGADO
PERTENCE
Nos exemplos anteriores utilizamos a notao grfica que foi criada por Chris Gane.
Relacionamento Binrio
Associao entre duas entidades.
Figura 10 Relacionamento Binrio
CLIENTE
PRODUTO
COMPRA
CURSO
ESCALA
MATERIA
MODELAGEM DE DADOS
Pg.
11
Nos exemplos anteriores utilizamos a notao grfica que foi criada por Peter Chen.
3.5.5.
PESSOA
FISICA
JURIDICA
PUBLICA
3.5.6.
PRIVADA
Regras de negcio
MODELAGEM DE DADOS
Pg.
12
3.6.1.
Database
Um Database ou Banco de Dados uma coleo de dados tratada como uma unidade. O
principal objetivo de um Database armazenar e reter informaes relacionadas entre si.
3.6.2.
Database Link
Database Link o nome do objeto que descreve um caminho de uma base de dados
para outra.
3.6.3.
Tablespace
3.6.4.
Datafile
Uma Tablespace formada por um ou mais Datafiles, nos quais todos os dados da base
ficam fisicamente armazenados. Um Datafile sempre est associado a uma Tablespace e a um
Database.
3.6.5.
Instance
3.6.6.
User
Para acessar os dados armazenados no banco, necessrio que seja executado algum tipo
de aplicao (SQL*PLUS, programa compilado, etc.). Essa execuo feita no banco atravs de
usurios, que so permisses de acesso aos dados do banco segundo restries de segurana
MODELAGEM DE DADOS
Pg.
13
impostas. Essas restries limitam, em vrios nveis, o que e como acessar no mbito de um
banco de dados especfico.
3.6.7.
Schema
Um Schema uma coleo de objetos (tabelas, views, sequences, stored procedures, etc.)
que referencia de forma lgica os dados no banco. Apesar de ter um conceito semelhante ao da
Tablespace, no tem com ela nenhuma relao, o que vale dizer que objetos de um mesmo
schema podem estar em diferentes tablespaces, e uma tablespace pode conter objetos de
diferentes schemas.
3.6.8.
Role
Uma estrutura que visa facilitar a administrao de segurana e privilgios de acesso aos
objetos do banco de dados. Pode ser definida como um conjunto de privilgios determinados,
aos quais podemos associar diferentes Users.
3.6.9.
Table
Pg.
14
MODELAGEM DE DADOS
DIVISAO
EQUIPE
CLIENTE
SUBCONTRATA
E_MEMBRO_DE
EMPREGADO
PROJETO
PERTENCE
USA
PARTICIPA
SUPERVISIONA
TEM
MATERIAL
PARTICIPACAO
POSSUI
TAREFA
REALIZA
E_COMPOSTO_DE
MEMBRO
DIVISAO
EQUIPE
EMPREGADO
PROJETO
UTILIZA
CLIENT E
MATERIAL
PART ICIPACAO
COMPOE
T AREFA
MODELAGEM DE DADOS
Pg.
15
3.6.10. View
Representao lgica de uma tabela ou combinao de tabelas e/ou views, ou seja, uma
apresentao sob medida dos dados de uma ou mais tabelas e/ou views.
Uma view no possui ou armazena dados fisicamente. Seus dados so derivados de
tabelas ou views, sobre as quais esto baseados. Entretanto, como as tabelas, os dados
manipulados pelas views podem ser consultados, alterados, inseridos e apagados; porm, estas
operaes afetam apenas as tabelas nas quais a view foi baseada.
O uso de views indicado para situaes em que o sistema precisa atualizar dados de
uma tabela corporativa ou de domnio de um outro sistema, ou ainda para situaes em que se
deseja disponibilizar dados restritos, de acordo com o nvel de privilgio que o perfil de cada
usurio lhe confere.
3.6.11. Snapshot
Mtodo automtico para replicao de tabelas previsto em diversos SGBDs que consiste
em copiar dados de uma ou mais tabelas disponibilizando-os apenas para leitura. Esta cpia
funciona como um retrato peridico que reflete um estado consistente da tabela ou tabelas s
quais ele se refere, no momento em que a cpia feita. A este processo d-se o nome de
Refresh.
Um snapshot assemelha-se a uma view, pois ambos baseiam-se em scripts com selects
pr-definidos. A diferena consiste apenas no fato de que em uma view a busca dos dados
dinmica, permitindo portanto atualizaes.
3.6.12. Column
o conjunto de valores que um determinado elemento pode assumir. Corresponde ao
atributo do modelo conceitual.
3.6.13. Line
Cada uma das combinaes de valores de domnio de uma entidade ou tabela.
3.6.14. Reference
Uma Referncia representa o nvel fsico de um Relacionamento.
A referncia indica a ligao entre a tabela me e a tabela filha. A coluna
referenciada deve pertencer chave primria da tabela me e ser, na tabela filha, considerada
uma foreign key (chave estrangeira), independentemente de fazer parte ou no da chave
primria da tabela filha. Temos portanto colunas existentes em tabelas distintas, que
representam a mesma informao.
MODELAGEM DE DADOS
Pg.
16
Figura 15 Referncia
PROJETO
NUM_PROJETO
TAREFA
NUM_PROJETO
NOM_TAREFA
EMPREGADO
DIVISAO
NUM_DIVISAO
NOM_DIVISAO
NUM_EMPREGADO
NOM_EMPREGADO
VLR_SALARIO
NUM_DIVISAO
3.6.16. Constraint
Uma constraint um dos recursos que o SGBD utiliza para implementar e garantir
automaticamente o cumprimento de regras determinadas no projeto conceitual. H vrios tipos
diferentes de constraint:
y
Not Null
Unique
para garantir valores nicos em uma coluna ou conjunto de colunas. Est sempre
associada a um ndice.
y
Primary Key
Check
Para cada referncia podem ser definidas regras responsveis pela manuteno da
integridade do banco, conhecidas como integridade referencial e estas regras aplicam-se s
operaes bsicas (incluso, excluso e alterao). Devem responder questes como:
y Para se inserir uma linha ou atributo numa tabela necessrio existir ocorrncias em
outras tabelas?
y Para se excluir uma linha ou atributo de uma tabela necessrio verificar o impacto
(incluso, excluso, alterao) em outras tabelas?
MODELAGEM DE DADOS
Pg.
17
y Para se alterar uma linha ou atributo de uma tabela necessrio verificar o impacto em
outras tabelas?
y A excluso de uma linha ou atributo pode implicar na excluso automtica de
ocorrncias em outras tabelas?
y A incluso de uma linha ou atributo exige a incluso tambm em outras tabelas no
mesmo momento?
De acordo com as respostas obtidas s perguntas acima, pode-se, automaticamente,
associar referncia as seguintes regras:
y CASCADE DELETE: A excluso de linhas da tabela me implica na excluso
automtica das linhas correspondentes da tabela filha.
y CASCADE MODIFY: A modificao da chave primria da tabela me implica na
modificao automtica das foreign key correspondentes da tabela filha.
y RESTRICT DELETE: A excluso de linhas da tabela me implica na verificao de
linhas correspondentes na tabela filha.
y RESTRICT MODIFY: A modificao da chave primria da tabela me implica na
verificao da inexistncia de linhas correspondentes na tabela filha.
y SET NULL: A excluso de linhas da tabela me implica na alterao automtica da
foreign key para NULL nas linhas correspondentes da tabela filha.
3.6.17. Trigger
So procedimentos executados automaticamente quando uma declarao Insert, Update
ou Delete aplicada a uma tabela. Quando um trigger definido, pode ser especificado o
nmero de vezes que deve ser executado. Triggers somente podem ser definidos sobre tabelas,
no sobre views ou snapshots.
3.6.18. Procedure
Consiste em um conjunto de declaraes SQL e PL/SQL que so unidas para resolver
problemas especficos, para realizar uma srie de tarefas relacionadas ou para garantir a
implementao de regras de negcio. Uma Procedure criada e gravada na forma compilada na
base de dados e pode ser executada por um usurio ou por uma aplicao.
As procedures no retornam valores.
3.6.19. Function
Procedures e Functions so idnticas, exceto que Functions sempre retornam valor ao
chamador, enquanto que Procedures no.
3.6.20. Package
Prov um mtodo de encapsulamento e armazenamento de Procedures, Functions e
variveis, unindo tudo num pacote nico. Alm dos Packages permitirem ao administrador ou
desenvolvedor de aplicaes a habilidade para organizar cada rotina, tambm oferecem uma
maior funcionalidade (por exemplo, um package de variveis globais, podem ser declaradas e
MODELAGEM DE DADOS
Pg.
18
usadas por qualquer procedure dentro do mesmo package) e maior performance (por exemplo:
todos os objetos do package so compilados e carregados em memria).
3.6.21. Index
Um Index (ndice) uma estrutura fsica usada para garantir a unicidade das linhas e/ou
acelerar o acesso aos dados. ndices so sempre definidos nas primary keys e unique keys, e
podem ser definidos para foreign keys ou qualquer outra coluna ou associao de colunas.
Um index prov um caminho de acesso, em geral mais rpido, sobre os dados de uma
tabela, podendo reduzir o nmero de I/O em disco. A ausncia ou presena de um index no
requer mudanas na declarao de um SQL. Um index meramente um caminho de acesso mais
rpido para os dados, afetando somente a velocidade de execuo. O index aponta diretamente
para a localizao das linhas que contm o valor indexado.
Indexes so lgica e fisicamente independentes dos dados aos quais esto associados.
Podem ser criados ou retirados a qualquer hora sem efeito sobre as tabelas da base ou outros
indexes. Um index requer espao para armazenagem, e uma vez criado, automaticamente
mantido e usado. Alteraes dos dados, como insero, alterao ou deleo de linhas, so
automaticamente refletidas nos indexes. A presena de muitos indexes sobre uma tabela pode
decrementar a performance de alteraes, delees e inseres, pois os indexes associados
tabela tambm devem ser atualizados.
3.6.22. Sequence
Gera uma lista de nmeros nicos para colunas numricas de tabelas. Sequences
simplificam programas de aplicao por gerar automaticamente valores numricos nicos para
as linhas de uma ou mltiplas tabelas.
Nmeros sequence so independentes das tabelas. A mesma sequence pode ser usada por
uma ou mais tabelas. Aps a criao, uma sequence pode ser acessada por vrios usurios para a
atualizao dos nmeros seqenciais.
Por exemplo, dois usurios esto inserindo simultaneamente registros de empregados na
tabela EMP. Por usar uma sequence para gerar nmeros de empregados nicos para a coluna
EMPNO, nenhum dos usurios tem que esperar o outro para incluir o prximo nmero de
empregado disponvel. A sequence gera automaticamente os valores corretos para cada usurio.
A gerao de nmeros seqenciais freqentemente usada para gerar unique primary keys
dos dados automaticamente.
3.6.23. Synonym
Um Synonym (Sinnimo) um alias de qualquer tabela, view, snapshot, sequence,
procedure, function ou package. Como um synonym simplesmente um alias, no requer outra
definio no dicionrio de dados.
Dois tipos de synonyms podem ser criados: Public e Private. Um Public Synonym
possui um usurio especial de nome Public e acessado por todo usurio na base. Um Private
Synonym est contido no schema de um usurio especfico e disponvel para o mesmo e para
outros usurios com permisso.
MODELAGEM DE DADOS
Pg.
19
3.6.24. Cluster
So mtodos opcionais para gravao de dados, de uma ou mais tabelas. Um Cluster um
grupo de tabelas que compartilham o mesmo bloco de dados, pois compartilham as mesmas
colunas e so freqentemente acessadas separadamente. Reduz I/O em disco e melhora o tempo
de acesso.
4. Normalizao
Normalizao uma tcnica de Anlise de Dados que procura eliminar redundncias e
identificar estruturas complexas a serem simplificadas. Existem vrios nveis de normalizao,
porm, as regras alm da chamada terceira forma normal aplicam-se a casos muito especiais. Na
prtica, considera-se que a terceira forma normal j possibilita simplicidade e ausncia de
redundncia suficientes para um bom projeto. Assim, o termo modelo normalizado, segundo
este raciocnio, refere-se a um modelo na terceira forma normal, pelo menos.
Pg.
20
MODELAGEM DE DADOS
4.4.1.
Observe
que
os
atributos
COD_CURSO,
NOM_CURSO
e
DAT_CONCLUSAO_CURSO formam um grupo que se repete trs vezes. Para que esta tabela
esteja na primeira forma normal preciso eliminar esta repetio.
FUNCIONARIO
grupo
repetitivo
COD_FUNCIONARIO
NOM_FUNCIONARIO
IND_SEXO
COD_CURSO1
NOM_CURSO1
DAT_CONCLUSAO_CURSO1
COD_CURSO2
NOM_CURSO2
DAT_CONCLUSAO_CURSO2
COD_CURSO3
NOM_CURSO3
DAT_CONCLUSAO_CURSO3
COD_NIVEL
VLR_SALARIO
CURRICULO
COD_FUNCIONARIO
COD_CURSO
NOM_CURSO
DAT_CONCLUSAO_CURSO
Pg.
21
MODELAGEM DE DADOS
4.4.2.
CURRICULO
COD_FUNCIONARIO
NOM_FUNCIONARIO
IND_SEXO
COD_NIVEL
VLR_SALARIO
COD_FUNCIONARIO
COD_CURSO
NOM_CURSO
DAT_CONCLUSAO_CURSO
dependentes
FUNCIONARIO
COD_FUNCIONARIO
NOM_FUNCIONARIO
IND_SEXO
COD_NIVEL
VLR_SALARIO
CURRICULO
COD_FUNCIONARIO
COD_CURSO
DAT_CONCLUSAO_CURSO
CURSO
COD_CURSO
NOM_CURSO
4.4.3.
FUNCIONARIO
dependentes
COD_FUNCIONARIO
NOM_FUNCIONARIO
IND_SEXO
COD_NIVEL
VLR_SALARIO
CURRICULO
COD_FUNCIONARIO
COD_CURSO
DAT_CONCLUSAO_CURSO
CURSO
COD_CURSO
NOM_CURSO
MODELAGEM DE DADOS
Pg.
22
NIVEL_SALARIAL
COD_NIVEL
VLR_SALARIO
CURRICULO
COD_FUNCIONARIO
COD_CURSO
DAT_CONCLUSAO_CURSO
CURSO
COD_CURSO
NOM_CURSO
MODELAGEM DE DADOS
Pg.
23
Bibliografia
DATE, C.J. An Introduction to Database Systems. The Systems Programming Series USA:
Addison Wsley Puglishing Company, Inc., Sixth Edition, 1995.
FURTADO, A.L. e SANTOS, C.S. Organizao de Bancos de Dados. Rio de Janeiro: Editora
Campus. Terceira Impresso, 1982.
Data Model Designer for Oracle Guia de Referncia. Brasil: ASSESYS
Multimtodo Guia de Referncia (Anlise de Dados, Definio de Restrio de Integridade,
Projeto Lgico de Banco de Dados, Projeto Fsico de Banco de Dados). Brasil:
Multinformtica, Julho/1991
Oracle 11g Server Concepts Manual. Part Number 6693-70-1292, December 2009.
S-Designor Reference Guide, Release 4.2. USA: Powersoft Corporation, 1995.