01 - modelagem de dados

24
MODELAGEM DE DADOS

Upload: william-velasco

Post on 10-Nov-2015

25 views

Category:

Documents


5 download

DESCRIPTION

01 - Modelagem de Dados

TRANSCRIPT

  • MODELAGEM DE DADOS

  • i

    ndice

    INTRODUO............................................................................ ERRO! INDICADOR NO DEFINIDO.

    ANLISE DE DADOS ............................................................................................................................... 4

    1. INTRODUO ............................................................................................................................... 4

    2. MODELOS ...................................................................................................................................... 4

    3. MODELO DE DADOS ................................................................................................................... 4

    3.1. MODELO DE DADOS CONCEITUAL ..................................................................................................... 53.2. MODELO DE DADOS LGICO .............................................................................................................. 53.3. MODELO DE DADOS FSICO ................................................................................................................ 53.4. CONCEITUAL X LGICO ..................................................................................................................... 53.5. ELEMENTOS COMPONENTES DE UM MODELO DE DADOS CONCEITUAL .............................................. 6

    3.5.1. Entidade .................................................................................................................................. 63.5.2. Atributo ................................................................................................................................... 63.5.3. Identificador (Chave Primria) .............................................................................................. 73.5.4. Relacionamento ...................................................................................................................... 7

    3.5.4.1. Cardinalidade ............................................................................................................................... 73.5.4.2. Opcionalidade .............................................................................................................................. 83.5.4.3. Tipos de Relacionamentos............................................................................................................ 8

    3.5.4.3.1. Relacionamento Reflexivo ou Recursivo (auto-relacionamento) ............................................ 83.5.4.3.2. Relacionamento Hierrquico (1 x 1 ou 1 x N) ......................................................................... 83.5.4.3.3. Relacionamento Simtrico (N x N) ......................................................................................... 93.5.4.3.4. Outros tipos de relacionamento ............................................................................................. 10

    Relacionamento Binrio ...................................................................................................................... 10Relacionamento Ternrio / Quaternrio .............................................................................................. 10

    3.5.5. Supertipo e Subtipo (sub-entidade) ...................................................................................... 113.5.6. Regras de negcio ................................................................................................................ 11

    3.6. ELEMENTOS COMPONENTES DE UM MODELO DE DADOS FSICO ...................................................... 123.6.1. Database ............................................................................................................................... 123.6.2. Database Link ....................................................................................................................... 123.6.3. Tablespace ............................................................................................................................ 123.6.4. Datafile ................................................................................................................................. 123.6.5. Instance ................................................................................................................................ 123.6.6. User ...................................................................................................................................... 123.6.7. Schema .................................................................................................................................. 133.6.8. Role ....................................................................................................................................... 133.6.9. Table ..................................................................................................................................... 133.6.10. View ...................................................................................................................................... 153.6.11. Snapshot ............................................................................................................................... 153.6.12. Column ................................................................................................................................. 153.6.13. Line ....................................................................................................................................... 153.6.14. Reference .............................................................................................................................. 153.6.15. Restrio de Integridade ...................................................................................................... 163.6.16. Constraint ............................................................................................................................. 16

    y Not Null ..................................................................................................................................... 16y Unique ........................................................................................................................................ 16y Primary Key ............................................................................................................................... 16y Check ......................................................................................................................................... 16y Foreign Key (Integridade Referencial) ....................................................................................... 16

    3.6.17. Trigger .................................................................................................................................. 173.6.18. Procedure ............................................................................................................................. 173.6.19. Function ................................................................................................................................ 173.6.20. Package ................................................................................................................................ 173.6.21. Index ..................................................................................................................................... 18

  • ii

    3.6.22. Sequence ............................................................................................................................... 183.6.23. Synonym ................................................................................................................................ 183.6.24. Cluster .................................................................................................................................. 19

    4. NORMALIZAO ....................................................................................................................... 19

    4.1. PRIMEIRA FORMA NORMAL ............................................................................................................. 194.2. SEGUNDA FORMA NORMAL ............................................................................................................. 194.3. TERCEIRA FORMA NORMAL ............................................................................................................. 194.4. EXEMPLOS DE NORMALIZAO ....................................................................................................... 20

    4.4.1. Primeira Forma Normal ....................................................................................................... 204.4.2. Segunda Forma Normal ....................................................................................................... 214.4.3. Terceira Forma Normal ....................................................................................................... 21

    BIBLIOGRAFIA ...................................................................................................................................... 23

  • iii

    ndice de Figuras

    Figura 1 Entidade ..................................................................................................................................... 6Figura 2 Atributo ....................................................................................................................................... 6Figura 3 Chave Primria .......................................................................................................................... 7Figura 4 Cardinalidade ............................................................................................................................. 7Figura 5 Opcionalidade ............................................................................................................................ 8Figura 6 Auto-Relacionamento ................................................................................................................. 8Figura 7 Relacionamentos 1 x 1 ................................................................................................................ 8Figura 8 Relacionamentos 1 x N ............................................................................................................... 9Figura 9 Relacionamentos Simtricos ..................................................................................................... 10Figura 10 Relacionamento Binrio ......................................................................................................... 10Figura 11 Relacionamento Ternrio ....................................................................................................... 10Figura 12 Supertipo e Subtipo ................................................................................................................ 11Figura 13 Modelo Conceitual ................................................................................................................. 14Figura 14 Modelo Fsico ......................................................................................................................... 14Figura 15 Referncia ............................................................................................................................... 16Figura 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

    3.1. Modelo de Dados Conceitual Forma de apresentao do modelo de dados que visa simplesmente retratar a realidade,

    sem considerar qualquer tipo de restrio em nvel hardware ou software. O Modelo Conceitual, representado atravs de um Diagrama Entidade-Relacionamento (DER), tem como objetivo representar os requisitos de informao do negcio. Este modelo deve ser totalmente independente da tecnologia de hardware e software a ser utilizada na implementao.

    o modelo no implementvel.

    3.2. Modelo de Dados Lgico Forma de apresentao do modelo de dados que incorpora consideraes sobre as

    restries de hardware e software existentes na instalao.

    Exemplos:

    y Modelo Hierrquico y Modelo Relacional (teoria dos conjuntos) y Modelo em Rede y Lista Invertida o modelo implementvel.

    3.3. Modelo de Dados Fsico Forma de apresentao do modelo de dados representada pelo conjunto de parmetros

    fsicos que retratam a estrutura de armazenamento dos dados.

    o modelo implementado.

    3.4. Conceitual x Lgico Algumas metodologias de trabalho utilizam apenas dois nveis de abstrao: conceitual e

    fsico. Nelas o nvel conceitual assume, na prtica, caractersticas do nvel lgico, incorporando ao modelo algumas consideraes sobre as restries de ambiente.

    A partir de agora, portanto, iremos considerar somente estes dois nveis.

  • MODELAGEM DE DADOS Pg. 6

    3.5. Elementos componentes de um Modelo de Dados Conceitual

    Apesar de existirem diversas representaes grficas possveis para o Modelo de Dados Conceitual, os elementos componentes de um modelo invariavelmente so:

    y Entidades y Atributos y Identificadores y Relacionamentos y Supertipo e Subtipo y Regras de negcio

    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

    EMPREGADO uma entidade porque representa um conjunto de objetos a respeito do qual se guardam dados. O conjunto finito, possui mais de um objeto e cada um deles pode ser individualmente identificado.

    3.5.2. Atributo

    Um atributo um dado especfico que qualifica ou caracteriza os objetos de uma entidade ou as instncias de um relacionamento. Os atributos so as informaes de uma entidade que precisam ser conhecidas do ponto de vista do negcio.

    Figura 2 Atributo COD_EMPREGADO, NOM_EMPREGADO e VLR_SALARIO so atributos da entidade EMPREGADO.

    EMPREGADO

    EMPREGADOCOD_EMPREGADONOM_EMPREGADOVLR_SALARIO

  • MODELAGEM DE DADOS Pg. 7

    3.5.3. Identificador (Chave Primria)

    o atributo, ou conjunto de atributos, capaz de identificar com unicidade cada objeto de uma Entidade ou ocorrncia de um Relacionamento.

    O Atributo Identificador possui algumas regras para a sua existncia. So elas:

    y O identificador deve ser nico para cada ocorrncia da Entidade; y O identificador no pode conter valores nulos; y O valor do identificador deve ser conhecido quando uma ocorrncia criada; y O identificador no deve sofrer alteraes; y O identificador deve estar no comeo da tabela.

    Figura 3 Chave Primria

    COD_EMPREGADO identificador da entidade EMPREGADO.

    3.5.4. Relacionamento

    Os diversos objetos manipulados por um sistema podem possuir associaes que so importantes registrar e analisar. Estas associaes so representadas, no Modelo de Dados, mediante relacionamentos.

    Um Relacionamento a representao de um vnculo entre os objetos de duas ou mais entidades. Tambm Relacionamento a associao entre diferentes objetos de uma mesma entidade (auto-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

    Considerando-se o relacionamento empregado pertence a uma diviso, dizemos que a cardinalidade de empregado N (representado graficamente por um p de galinha), porque mais de um empregado pode pertencer a uma diviso; e dizemos que a cardinalidade da diviso 1, porque um empregado pertence a uma e somente numa diviso.

    EMPREGADOCOD_EMPREGADONOM_EMPREGADOVLR_SALARIO

    PERTENCE

    DIVISAO EMPREGADO

  • MODELAGEM DE DADOS Pg. 8

    3.5.4.2. Opcionalidade Expressa, conceitualmente, se o relacionamento obrigatrio ou opcional.

    Figura 5 Opcionalidade

    Considerando-se o relacionamento Cliente subcontrata projeto, constata-se que um cliente pode ou no subcontratar projetos (opcional representado graficamente pelo crculo vazado), porm um projeto sempre subcontratado por um e somente um cliente (obrigatrio representado graficamente pelo trao cruzando o relacionamento).

    3.5.4.3. Tipos de Relacionamentos Os tipos mais comuns de relacionamentos so:

    y Relacionamento Reflexivo ou Recursivo (auto-relacionamento); y Relacionamento Dependente ou Hierrquico; y Relacionamento Simtrico.

    3.5.4.3.1. Relacionamento Reflexivo ou Recursivo (auto-relacionamento)

    Associao entre diferentes objetos de uma mesma entidade.

    Figura 6 Auto-Relacionamento

    Um empregado supervisor de outros empregados. Isto implica que existe um auto-relacionamento na entidade EMPREGADO, que poderia ser nomeado como SUPERVISIONA.

    3.5.4.3.2. Relacionamento Hierrquico (1 x 1 ou 1 x N)

    Um relacionamento hierrquico quando a ocorrncia de uma entidade se relaciona com nenhuma, uma ou mais ocorrncias de outra entidade e uma ocorrncia desta ltima se relaciona exclusivamente com uma da primeira.

    Figura 7 Relacionamentos 1 x 1 Cada equipe participa de NENHUM (ZERO) ou UM projeto. Cada projeto gerenciado por NENHUMA (ZERO) ou UMA equipe.

    SUPERVISIONA

    EMPREGADO

    SUBCONTRATA

    CLIENTE PROJETO

    PARTICIPA

    PROJETOEQUIPE

  • MODELAGEM DE DADOS Pg. 9

    Cada equipe participa de NENHUM (ZERO) ou UM projeto. Cada projeto gerenciado por UMA e SOMENTE UMA equipe. Cada equipe participa de UM e SOMENTE UM projeto. Cada projeto gerenciado por NENHUMA (ZERO) ou UMA equipe.

    Figura 8 Relacionamentos 1 x N Cada diviso PODE ter NENHUM (ZERO) ou MAIS empregados. Cada empregado PODE pertencer a NENHUMA (ZERO) ou UMA diviso. Cada diviso DEVE ter UM ou MAIS empregados. Cada empregado PODE pertencer a NENHUMA (ZERO) ou UMA diviso. Cada diviso PODE ter NENHUM (ZERO) ou MAIS empregados. Cada empregado DEVE pertencer a UMA e SOMENTE UMA diviso.

    Cada diviso DEVE ter UM ou MAIS empregados. Cada empregado DEVE pertencer a UMA e SOMENTE UMA diviso. Cada diviso PODE ter NENHUM (ZERO) ou MAIS empregados. Cada empregado DEVE pertencer a UMA e SOMENTE UMA diviso. Cada empregado IDENTIFICADO UNICAMENTE pelo nmero da diviso e nmero do empregado. Cada diviso DEVE ter UM ou MAIS empregados. Cada empregado DEVE pertencer a UMA e SOMENTE UMA diviso. Cada empregado IDENTIFICADO UNICAMENTE pelo nmero da diviso e nmero do empregado.

    3.5.4.3.3. Relacionamento Simtrico (N x N)

    Um relacionamento simtrico quando a ocorrncia de uma entidade se relaciona com nenhuma, uma ou mais ocorrncias de outra entidade e uma ocorrncia desta ltima se relaciona com nenhuma, uma ou mais da primeira. Relacionamentos com cardinalidade NxN iro gerar uma tabela no modelo fsico.

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PROJETOEQUIPE

    PARTICIPA

    PROJETOEQUIPE

    PARTICIPA

  • MODELAGEM DE DADOS Pg. 10

    Figura 9 Relacionamentos Simtricos

    Cada diviso PODE ter NENHUM (ZERO), UM ou MAIS empregados. Cada empregado PODE pertencer a NENHUMA (ZERO), UMA ou MAIS divises. Cada diviso DEVE ter UM ou MAIS empregados. Cada empregado PODE pertencer a NENHUMA (ZERO), UMA ou MAIS divises. Cada diviso PODE ter NENHUM (ZERO), UM ou MAIS empregados. Cada empregado DEVE pertencer a UMA ou MAIS divises. Cada diviso DEVE ter UM ou MAIS empregados. Cada empregado DEVE pertencer a UMA ou MAIS divises.

    Nos exemplos anteriores utilizamos a notao grfica que foi criada por Chris Gane.

    3.5.4.3.4. Outros tipos de relacionamento

    Algumas metodologias dividem os relacionamentos de acordo com o nmero de entidades que fazem parte da relao. So eles:

    Relacionamento Binrio

    Associao entre duas entidades.

    Figura 10 Relacionamento Binrio Um CLIENTE compra um PRODUTO. Este relacionamento poderia ser indicado por CLIENTE_COMPRA_PRODUTO.

    Relacionamento Ternrio / Quaternrio

    Associao entre trs (ternrio) ou quatro (quaternrio) entidades.

    Figura 11 Relacionamento Ternrio Um PROFESSOR escalado para uma MATRIA de um determinado CURSO. Este relacionamento poderia ser indicado por ESCALA_PROFESSOR_CURSO_MATERIA.

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PERTENCE

    DIVISAO EMPREGADO

    PRODUTOCOMPRA

    CLIENTE

    CURSOPROFESSOR

    MATERIA

    ESCALA

  • MODELAGEM DE DADOS Pg. 11

    Nos exemplos anteriores utilizamos a notao grfica que foi criada por Peter Chen.

    3.5.5. Supertipo e Subtipo (sub-entidade)

    til s vezes, para melhor entendimento do problema, particionar ou dividir o conjunto de objetos de uma entidade em uma srie de subconjuntos. A cada um desses conjuntos d-se o nome de SUBTIPO (sub-entidade) e entidade principal d-se o nome de SUPERTIPO.

    O conceito de subtipo til principalmente quando:

    a) Alm dos atributos da entidade maior, cada subtipo possui atributos especficos;

    b) Um subtipo participa de relacionamentos de que a entidade maior (supertipo) no participa.

    Uma entidade pode ser dividida, simultaneamente, atravs de mais de um critrio; e um subtipo, por sua vez, pode ser particionado em subtipos menores.

    Figura 12 Supertipo e Subtipo

    Num Sistema de Cadastro de Pessoas de um Banco, a entidade PESSOA pode ser dividida nas sub-entidades FSICA e JURDICA. A sub-entidade JURDICA pode, ainda, ser subdividida nas sub-entidades PBLICA e PRIVADA.

    3.5.6. Regras de negcio

    A finalidade das regras de negcio permitir a documentao de informaes que no podem ser intuitivamente extradas do modelo em si. As regras de negcio so classificadas em quatro tipos. So eles:

    1. Definition a definio de um objeto no mbito do sistema de informao. Exemplo: O cliente a pessoa qualificada por nome e endereo.

    2. Fact a descrio de um fato no mbito do sistema de informao. Exemplo: O cliente pode fazer um ou mais pedidos.

    3. Formula a descrio de um clculo utilizado no mbito do sistema de informao.

    FISICAJURIDICA

    PESSOA

    PUBLICA PRIVADA

  • MODELAGEM DE DADOS Pg. 12

    Exemplo: O total do pedido a soma do valor de todas as linhas do pedido.

    4. Validation a descrio de uma regra de validao no mbito do sistema de informao. Exemplo: A soma dos totais dos pedidos de um cliente no pode ser maior do que o valor de seu limite de crdito.

    3.6. Elementos componentes de um Modelo de Dados Fsico

    O Modelo de Dados Fsico a representao grfica da estrutura fsica de um Banco de Dados, gerado a partir do Modelo de Dados Conceitual. Nem sempre um elemento componente de um modelo de dados fsico corresponde a um objeto fsico no banco ou vice-versa. Neste captulo incluiremos os conceitos de ambos os casos.

    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

    Uma base de dados (database) dividida em uma ou mais unidades lgicas de armazenamento chamada Tablespace. Para cada sistema devem ser criadas tablespaces diferenciadas para armazenar dados e ndices.

    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

    Uma Instance um sistema em funcionamento, considerando seus requisitos ambientais (alocao de recursos de memria, disco, etc.).

    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

    uma unidade bsica de armazenamento de dados, representando o nvel fsico de uma entidade ou de um relacionamento de cardinalidade NxN. composta por linhas (tuplas) e colunas, onde os dados so armazenados. Toda tabela tem um nome nico e um conjunto de colunas com um tipo para cada uma delas. Uma linha , portanto, uma coleo de colunas contendo dados correspondentes a um nico registro.

    Nos SGBDs em geral, a tabela utilizada para armazenar dados, que podem ser inseridos, modificados, excludos e recuperados atravs da linguagem SQL. Mostramos a seguir a representao grfica de um modelo de dados fsico e o modelo conceitual do qual ele foi derivado.

    Quando a tabela for referente a um detalhamento ou complementao de tabelas (em geral Kernel) que no podem receber colunas, usamos o sufixo _DETALHE.

    Exemplo: MPUTMTAB_DETALHE (tabela que contm colunas complementares tabela Kernel MPUTMTAB, e que tem com ela um relacionamento de cardinalidade 1X1, com Foreign Key definida, e mesma Primary Key).

    Quando a tabela for referente ao resultado de um relacionamento de cardinalidade NxN (tabela associativa), usamos o prefixo REL_ seguido do mnemnico das duas tabelas envolvidas, separados por underscore.

    Exemplo: REL_THUFITAB_MPUFCTAB (tabela resultante do relacionamento de cardinalidade NxN entre as tabelas THUFITAB e MPUFCTAB).

  • MODELAGEM DE DADOS Pg. 14

    Figura 13 Modelo Conceitual

    Figura 14 Modelo Fsico

    REALIZA

    E_COMPOSTO_DE

    SUPERVISIONA

    PARTICIPA

    SUBCONTRATA

    POSSUITEM

    USAPERTENCE

    E_MEMBRO_DE

    DIVISAO CLIENTEEQUIPE

    PARTICIPACAO

    PROJETO

    MATERIAL TAREFA

    EMPREGADO

    EQUIPEMEMBRO

    CLIENTE

    PARTICIPACAO

    DIVISAO

    UTILIZA

    EMPREGADO

    MATERIAL

    COMPOE TAREFA

    PROJETO

  • 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

    Nesta referncia, a tabela PROJETO considerada me de TAREFA (filha). A chave primria NUM_PROJETO foreign key em tarefa, e como esta dependente de PROJETO, NUM_PROJETO faz parte, tambm, da sua chave primria. Nesta referncia, a tabela DIVISO considerada me de EMPREGADO (filha). A chave primria NUM_DIVISAO foreign key em EMPREGADO e, como esta no dependente de NUM_DIVISAO, apenas um atributo.

    3.6.15. Restrio de Integridade

    uma condio que precisa ser cumprida para que o modelo seja considerado ntegro. Esta condio pode ser estabelecida em nvel de um atributo (coluna), de uma entidade (tabela) ou de um relacionamento (referncia).

    A restrio de integridade uma forma de implementar regras de negcio, seja via trigger, stored-procedure ou constraint.

    Exemplo: Podemos estabelecer que o atributo sexo s pode assumir os valores M ou F.

    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 para impedir nulos em uma coluna. y Unique para garantir valores nicos em uma coluna ou conjunto de colunas. Est sempre

    associada a um ndice. y Primary Key associada a valores primrios de identificao de uma tabela (chave de acesso). y Check constraint de integridade para regras de integridade complexas

    y Foreign Key (Integridade Referencial) 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?

    TAREFANUM_PROJETONOM_TAREFA

    PROJETONUM_PROJETO

    DIVISAONUM_DIVISAONOM_DIVISAO

    EMPREGADONUM_EMPREGADONOM_EMPREGADOVLR_SALARIONUM_DIVISAO

  • 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.

    4.1. Primeira Forma Normal Uma tabela est na primeira forma normal se e somente se no contm grupos

    repetitivos.

    4.2. Segunda Forma Normal Uma tabela est na segunda forma normal se e somente se est na primeira forma

    normal e todos os atributos no identificadores so dependentes de toda a chave primria, e no somente de parte dela.

    4.3. Terceira Forma Normal Uma tabela est na terceira forma normal se e somente se est na Segunda forma

    normal e todos os atributos no identificadores dependem exclusivamente da chave e so mutuamente independentes entre si (dois ou mais atributos so mutuamente independentes, se nenhum deles for funcionalmente dependente de qualquer combinao de outros. Assim, independncia implica em que cada atributo pode ser atualizado independentemente de todo o resto.

  • MODELAGEM DE DADOS Pg. 20

    4.4. Exemplos de Normalizao Tomemos como exemplo a seguinte tabela, que est desnormalizada:

    Figura 16 Tabela Desnormalizada

    4.4.1. Primeira Forma Normal

    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.

    Eliminando a repetio, obtemos:

    FUNCIONARIOCOD_FUNCIONARIONOM_FUNCIONARIOIND_SEXOCOD_CURSO1NOM_CURSO1DAT_CONCLUSAO_CURSO1COD_CURSO2NOM_CURSO2DAT_CONCLUSAO_CURSO2COD_CURSO3NOM_CURSO3DAT_CONCLUSAO_CURSO3COD_NIVELVLR_SALARIO

    FUNCIONARIOCOD_FUNCIONARIONOM_FUNCIONARIOIND_SEXOCOD_CURSO1NOM_CURSO1DAT_CONCLUSAO_CURSO1COD_CURSO2NOM_CURSO2DAT_CONCLUSAO_CURSO2COD_CURSO3NOM_CURSO3DAT_CONCLUSAO_CURSO3COD_NIVELVLR_SALARIO

    gruporepetitivo

    FUNCIONARIOCOD_FUNCIONARIONOM_FUNCIONARIOIND_SEXOCOD_NIVELVLR_SALARIO

    CURRICULOCOD_FUNCIONARIOCOD_CURSONOM_CURSODAT_CONCLUSAO_CURSO

  • MODELAGEM DE DADOS Pg. 21

    4.4.2. Segunda Forma Normal

    Note que o atributo NOM_CURSO dependente exclusivamente de COD_CURSO e no de COD_FUNCIONARIO.

    Aplicando a Segunda Forma Normal, obtemos:

    4.4.3. Terceira Forma Normal

    Note que o atributo SALARIO dependente de NIVEL_SALARIAL, que tambm um atributo no identificador.

    FUNCIONARIOCOD_FUNCIONARIONOM_FUNCIONARIOIND_SEXOCOD_NIVELVLR_SALARIO

    CURRICULOCOD_FUNCIONARIOCOD_CURSONOM_CURSODAT_CONCLUSAO_CURSO

    dependentes

    FUNCIONARIOCOD_FUNCIONARIONOM_FUNCIONARIOIND_SEXOCOD_NIVELVLR_SALARIO

    CURRICULOCOD_FUNCIONARIOCOD_CURSODAT_CONCLUSAO_CURSO

    CURSOCOD_CURSONOM_CURSO

    dependentes

    FUNCIONARIOCOD_FUNCIONARIO NOM_FUNCIONARIOIND_SEXOCOD_NIVELVLR_SALARIO

    CURRICULOCOD_FUNCIONARIO COD_CURSO DAT_CONCLUSAO_CURSO

    CURSOCOD_CURSO NOM_CURSO

  • MODELAGEM DE DADOS Pg. 22

    Aplicando a Terceira Forma Normal, obtemos:

    Vamos colocar em prtica o que foi aprendido!

    FUNCIONARIO

    COD_FUNCIONARIONOM_FUNCIONARIOIND_SEXOCOD_NIVEL

    CURRICULOCOD_FUNCIONARIOCOD_CURSODAT_CONCLUSAO_CURSO

    CURSOCOD_CURSONOM_CURSO

    NIVEL_SALARIALCOD_NIVELVLR_SALARIO

  • 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.