32
Modelo de Dados Prof. Msc Denival A. dos Santos

1. Modelo de Dados

Embed Size (px)

DESCRIPTION

dADOS BANCO

Citation preview

  • Modelo de Dados Prof. Msc Denival A. dos Santos

  • Pgina 2

    Banco de dados

    Banco de dados uma coleo de dados referentes a um assunto ou propsito especfico, com o objetivo de organizar os dados de modo a tornar a vida dos usurios do negcio em questo mais prtica, precisa, rpida e confivel.

    Com a centralizao dos dados, torna-se muito mais rpida a consulta e manuteno deles, pois permanecem todos em um mesmo lugar, tornando o acesso mais rpido.

    Um dos benefcios dos bancos de dados a confiabilidade.

    Supondo que os dados sejam verdadeiros, possvel saber a qualquer momento diversas informaes sobre a empresa, tais como andamento de vendas, listas de fornecedores, produtos em falta no estoque, entre outros fatores.

  • Pgina 3

    Modelo de Dados

    Um modelo de banco de dados uma descrio dos tipos de informaes que esto armazenados em um banco de dados (HEUSER, 2004).

    Todo bom sistema de banco de dados deve apresentar um projeto, que visa organizao das informaes e utilizao de tcnicas para que o

    futuro sistema obtenha boa performance e tambm facilite

    infinitamente as manutenes que venham a acontecer.

    O projeto de banco de dados tem o objetivo de transformar as necessidades de informaes no negcio em um banco de dados.

    O projeto ocorre em trs fases: Modelagem conceitual, Modelo lgico e Modelo fsico.

  • Pgina 4

    Modelo de Dados

    Modelo Conceitual - uma descrio do banco de dados de forma independente de implementao em um SGBD. O modelo conceitual

    registra que dados podem aparecer no banco de dados, mas no registra

    como estes dados esto armazenados a nvel de SGBD.

    Pode conter relacionamentos n para m (desejvel).

    A abordagem entidade-relacionamento (ER) a tcnica mais difundida de modelagem conceitual e representado atravs de um Diagrama

    entidade-relacionamento (DER).

  • Pgina 5

    Modelo de Dados

    Modelo Lgico uma descrio de um banco de dados no nvel de abstrao visto pelo usurio do SGBD. Assim, o modelo lgico dependente do tipo

    particular de SGBD que est sendo usado.

    Em um SGBD relacional, os dados esto organizados na forma de tabelas e relaes.

    Representao textual (esquema)

    TipoDeProduto (CodTipoProd, DescrTipoProd)

    Produto(CodProd, DescrProd, PrecoProd, QuantProd, CodTipoProd)

  • Pgina 6

    Bancos de dados relacionais

    Um banco de dado pode ou no ser relacional. Esse termo indica que o banco possui relacionamentos entre seus dados (tabelas, entidades). De certa forma, esse recurso gera como consequncia um melhor controle na consistncia das informaes do banco de dados, impedindo que sejam cadastrados dados no coerentes no sistema.

    Uma das vantagens dos bancos de dados relacionais que as consultas termo que representa uma solicitao de dados ao banco aos dados e informaes do banco podem unir diversas tabelas para a gerao do resultado, devido aos relacionamentos existentes entre estas, tornando muito mais amplo o seu uso.

    Todos os bancos de dados relacionais possuem algumas semelhanas entre si no que diz respeito s suas arquiteturas. Suas formas de armazenamento, componentes para a criao de relacionamentos, estruturas para indexao de seus dados, organizao interna, entre outras caractersticas.

  • Pgina 7

    Tabela

    Todos os dados de um banco conceitualmente so organizados no formato de tabelas, onde cada coluna ser um campo e cada linha ser um registro.

    Os limites de linhas e colunas possveis de serem alocados para uma tabela pode variar em cada banco de dados.

    Se pode ordenar uma tabela baseando-se em qualquer campo (ou campos) que a forma; alm disso, cada consulta ao banco pode necessitar de uma ordenao diferente.

    Normalmente os bancos de dados armazenam suas tabelas pela ordem de chegada dos dados, sendo responsabilidade das consultas ordenar os resultados.

    Exemplo de tabela:

  • Pgina 8

    Registro

    As linhas das tabelas so chamadas registros.

    Cada registro formado por um conjunto de campos os mesmo campos que formam a tabela que esto relacionados entre si nativamente, pois cada linha representa uma resultado da tabela.

    A figura abaixo demonstra um registro retirado da tabela de fornecedores, a qual possui quatro registros.

  • Pgina 9

    Campos

    Os campos podem ser reconhecidos pelas colunas de uma tabela.

    Cada coluna est representando um campo, o qual tem a responsabilidade de armazenar as informaes sobre o tipo de dados que

    ser armazenado em sua regio.

    possvel configurar campos para delimitarem os valores de entrada possveis de serem armazenados, utilizarem formatao, controle de

    valores nulos, entre outras propriedades.

    Um integridade referente aos campos, que deve ser observada, o fato de uma tabela no poder possuir duas colunas (ou campos) com o mesmo

    nome.

    Exemplos de campos:

  • Pgina 10

    Chaves

    O termo chave refere-se coluna da tabela que responsvel pela identificao dos registros. Em outras palavras, o campo que est

    frente dos demais em um conjunto de campos.

    O no uso de chaves pode tornar o banco de dados vulnervel a diversos problemas, como a redundncia de dados e inconsistncias geradas pela

    falta de relacionamentos entre as tabelas.

    por meio das chaves que so criados os relacionamentos entre as tabelas, por meio do uso de chaves estrangeiras.

  • Pgina 11

    Chave primria

    Uma chave primria (do ingls PK Primary Key) uma coluna ou uma combinao de colunas cujos valores distinguem uma linha das demais

    dentro de uma tabela.

    Exemplo de tabela com chave primria:

    Funcionrio (CodFuncionario, CPF, Nome_Funcionario)

    As chaves primrias compostas ou concatenada possuem caractersticas semelhantes s das primrias, contudo a diferena que a chave composta utilizando mais de uma coluna (campo) da tabela para a composio de seu valor nico.

    Em outras palavras, no caso das chaves compostas, poder haver valores repetidos para cada coluna-chave, porm a unio das colunas dever prover resultados nicos.

    Exemplo de tabela com chave primria composta:

    Amigos (nome, telefone)

  • Pgina 12

    Chave estrangeira

    Uma chave estrangeira (do ingls Foreign Key) uma coluna ou uma combinao de colunas, cujos valores aparecem necessariamente na chave

    primria de uma tabela. A chave estrangeira o mecanismo que permite a

    implementao de relacionamentos em um banco de dados relacional.

    Esse termo utilizado para caracterizar as colunas de uma tabela que possam armazenar somente valores de uma chave primria de outra tabela. essa chave, com o complemento de uma chave primria, que forma os relacionamentos entre tabelas.

    Supondo-se duas tabelas: a primeira, um cadastro de clientes, e a segunda, um cadastro de vendas, uma forma prtica de relacionar as vendas aos clientes como mostrado na figura abaixo.

    Tabelas:

    Cliente (Codigo (PK), Nome)

    Vendas (NotaFiscal (PK), cliente (FK), produto)

  • Pgina 13

    Notaes para diagramas ER

    Atualmente existem muitas e variadas formas de construo de um diagrama ER (Entidade Relacionamento) que utilizam diferentes tipos de

    notao.

    Algumas das ferramentas de modelagem de esquemas existentes no mercado permitem-nos escolher qual a notao que queremos utilizar.

    As principais encontradas so:

    Chen

    Crows Foot

    IDEF1X

    Baseada em sombras (shading)

    Baseada em UML

    Observao: Para um melhor entendimento dos modelos conceitual e lgico, utilizaremos a notao de Chen para o modelo

    entidade-relacionamento e a Crows Foot para o modelo relacional.

  • Pgina 14

    Notaes Chen

  • Pgina 15

    Notao Crows Foot

  • Pgina 16

    Notao IDEF1X

  • Pgina 17

    Notao de sombras (shading)

  • Pgina 18

    Notao baseada em UML

  • Pgina 19

    Relacionamentos

    O conceito de relacionamento depende muitas vezes da existncia de chaves (primrias e estrangeiras) em um banco de dados. Na verdade, o uso das funcionalidades de chaves primria e estrangeira que forma os relacionamentos.

    Um relacionamento pode ser definido pelos elos (ou ligaes) existentes entre tabelas. Quando se liga um (ou mais) campo(s) de uma tabela com um (ou mais) campo(s) de outra tabela, forma-se um relacionamento, sendo normalmente o campo da primeira tabela uma chave primria e o campo da segunda tabela uma chave estrangeira (pois repetem os valores da primeira tabela).

    Um dos objetivos dos relacionamentos auxiliar nas consistncias dos dados armazenados no banco.

    H trs tipos bsicos de relacionamentos entre tabelas, que so:

    1:1

    1:N

    N:M

  • Pgina 20

    Relacionamento 1:1

    O relacionamento 1 para 1 diz respeito s ligaes entre tabelas onde para cada registro da primeira tabela possa existir um registro na

    segunda tabela.

    Um exemplo para este tipo de relacionamento a ligao entre o RG e o CPF de uma pessoa. Cada cidado brasileiro possui um nico nmero de

    RG, que, por sua vez, pode estar vinculado a um nico CPF ativo, assim

    como cada CPF ativo obrigatoriamente esta ligado a um nmero de RG.

  • Pgina 21

    Relacionamento 1:N

    Os relacionamentos 1 para N (um para muitos) permitem que cada tupla de uma tabela pode-se relacionar com N tuplas da outra tabela. Porm,

    cada tupla da segunda tabela s se relaciona com um nico tupla da

    primeira.

    Neste relacionamento, um exemplo que pode ser citado a ligao entre cliente e compras realizadas em uma loja. Informalmente, um

    cliente pode realizar uma ou mais (N) compras em uma loja, contudo,

    cada compra da loja (ou seja, cada nota fiscal emitida) estar em nome

    de exclusivamente um cliente.

  • Pgina 22

    Relacionamento N:M

    De todos os tipos de relacionamento, o tipo N para M (muitos para muitos) , sem dvida, o mais amplo de todos. Pode-se dizer que este relacionamento a combinao do tipo 1 para N (1:N|N:1) nos dois sentidos do relacionamento (da primeira para segunda tabela e vice-versa). Neste caso, pode haver um ou mais registros na segunda tabela ligados a um registro da primeira, assim como pode haver um ou mais registros na primeira tabela para cada registro da segunda.

    Um exemplo para este caso o controle de matrcula de alunos nos cursos de treinamento oferecidos por uma escola qualquer. No h restries de que o alunos no possa assistir a mais de um curso, portanto, um aluno pode estar matriculado e um ou mais cursos da escola. Do outro lado da ligao, um curso pode ser frequentado por um ou mais alunos.

  • Pgina 23

    Restries de integridade - RI

    Condio que especificada sobre um esquema de relao e deve ser satisfeita para qualquer instncia do BD.

    RIs so especificadas na definio do esquema;

    RIs so checadas pelo SGBD quando o BD modificado.

    Objetivos

    Evitar que o BD entre em um estado inconsistente

    RIs podem ser especificadas e foradas em diferentes nveis.

    Durante a criao de um esquema de relao

    Exemplo: o domnio de um atributo.

    Durante a execuo de uma aplicao o SGBD impede operaes que violem as RIs.

  • Pgina 24

    Restries de integridade - RI

    Um dos objetivos primordiais de um SGBD a integridade de dados. Dizer que os dados de um banco de dados esto ntegros significa dizer que eles refletem

    corretamente a realidade representada pelo banco de dados e que so

    consistentes entre si. O controle de integridade de dados embutido nos SGDBs

    garante que todos os dados inclusos ou alterados no banco estaro de acordo com

    regras criadas para estes. No abordagem relacional, costuma-se classificar as

    restries de integridade nas seguintes categorias:

    Integridade de domnio - restries deste tipo especificam que o valor de um campo deve obedecer a definio de valores admitidos para a coluna (o

    domnio da coluna);

    Integridade de chave - no podem existir duas tuplas de uma relao com valores iguais na chave primria;

    Integridade de vazio (entidade) a chave primria no pode conter um valor nulo (NULL). O NULL no o valor 0 (zero) nem o caractere branco,

    simplesmente a no existncia de contedo neste campo;

    Integridade referencial - a restrio que define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primria

    da tabela referenciada.

  • Pgina 25

    Integridade Referencial com opo de excluso

    Notao:

    onde op a opo de excluso, dentro as seguintes:

    Bloqueio (restrict): se alguma tupla referencia a tupla a ser excluda, atravs de uma chave estrangeira, a excluso no efetuada;

    Propagao (cascade): todas as tuplas que referenciam a tupla a ser exclda, atravs de uma chave estrangeira, so excludas tambm automaticamente;

    Substituio por nulos (set null): todas as tuplas que referenciam a tupla a ser excluda, atravs de uma chave estrangeira, tm os valores dos atributos

    da chave estrangeira modificada para nulo (se for permitido nulo) e a

    excluso efetuada.

  • Pgina 26

    Operaes de atualizao sobre relaes

    Insero (insert) insere novas tuplas em uma relao.

    Pode violar qualquer dos quatro tipos de restries discutidas.

    Excluso (delete) exclui tuplas de uma relao

    Pode violar somente restries de integridade referencial.

    Modificao (update ou modify) muda os valores de alguns atribuitos em tuplas existentes.

    Modificar um atributo que no chave primria nem chave estrangeira pode violar somente a restrio de domnio;

    Modificar a chave primria similar a excluir uma tupla e inserir uma outra no seu lugar; assim, pode violar qualquer das quatro restries discutidas;

    Modificar uma atributo de uma chave estrangeira pode violar a restrio de integridade referencial ou de domnio.

  • Pgina 27

    Diagrama de tabelas relacionais - DTR

    O diagrama de tabelas relacionais uma representao grfica deste modelo, normalmente utilizamos a notao Crows Foot de James Martin (comumente conhecida como P de Galinha, devido a simbologia utilizada). A maioria das ferramentas CASE atuais

    implementam apenas este diagrama.

  • Pgina 28

    Diagrama de tabelas relacionais - DTR

    1:1

    1:N

    N:N

    Observao: Em BD relacionais no possvel implementar uma relacionamento N:M. Quando acontecer deve ser transformado em

    1:N|M:1.

    1:N|M:1

  • Pgina 29

    Transformaes entre modelos

    A transformao de um modelo mais abstrato (DER) para um modelo que contm mais detalhes (Relacional) de implementao conhecida como engenharia

    direta. J o processo inverso chamado de engenharia reversa de BD relacional.

    Neste processo, parte-se de um modelo relacional e obtm-se um diagrama ER,

    que representa de forma abstrata os dados armazenados no BD.

    Regra bsica da transformao

    Engenharia Direta

    N:M -> 1:N|M:1 (entidade associativa)

    Engenharia Reversa

    1:N|M:1 -> N:M

    Obs.: Nos demais casos no ocorre nenhuma

    mudana.

  • Pgina 30

    Transformaes entre modelos - Exemplo

    Engenharia Direta Engenharia Reversa

  • Pgina 31

    Dicionrio de dados

    Aps o modelo relacional ter sido descrito ou diagramado, necessrio criar um Dicionrio de dados para a base de dados.

    O dicionrio de dados tem por objetivo descrever as propriedade de uma tabela, sua estrutura fsica e as restries que cada atributo possui.

    Assim, o desenvolvedor ir implementar o banco de dados saber

    exatamente como a base deve ser criada;

    No dicionrio de dados cada tabela do modelagem dever ser descrita e dever conter os seguintes campus: nome do atributo, descrio do

    atributo, tamanho, tipo, restries (valor nulo, regra de domnio,

    chaves, valor default e unique).

  • Pgina 32

    Dicionrio de dados - exemplo