Slides-Carlos Heuser- Projecto de Banco de Dados

download Slides-Carlos Heuser- Projecto de Banco de Dados

of 32

Transcript of Slides-Carlos Heuser- Projecto de Banco de Dados

  • 1Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19991

    Projeto de Banco de Dados

    Transparncias selecionadas

    Autor: Prof Carlos Heuser (UFRGS)

    Livro: Projeto de Banco de Dados

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19992

    Modelo de Dados - nveis de abstrao

    abstrao

    modelo conceitual

    modelo lgico

    modelo fsico

  • 2Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19993

    Modelo conceitual

    Independente de tipo de SGBD

    Registra Estrutura dos dados podem aparecer no banco de

    dados

    No registra Como estes dados esto armazenados a nvel de

    SGBD

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19994

    Modelo conceitual - diagrama ER

    Tcnica mais difundida de modelagem conceitual Abordagem entidade-relacionamento (ER)

    Modelo conceitual representado atravs de diagrama entidade-relacionamento (DER)

  • 3Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19995

    Diagrama entidade-relacionamento

    Produt o

    cdigodescrio

    Tipo deprodut o

    cdigodescrio

    preo

    n 1

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19996

    Modelo lgico

    Nvel de abstrao visto pelo usurio do SGBD

    Dependente do tipo particular de SGBD que est sendo usado

  • 4Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19997

    Modelo lgico

    SGBD relacional para o exemplo

    ProdutoCodProd DescrProd PrecoProd CodTipoProd

    1 PC desktop modelo X 2.500 12 PC notebook ABC 3.500 13 Impressora jato de tinta 600 24 Impressora laser 800 2

    TipoDeProdutoCodTipoProd DescrTipoProd

    1 Computador2 Impressora

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19998

    Modelo lgico para o exemplo

    TipoDeProduto(CodTipoProd,DescrTipoProd)

    Produto(CodProd,DescrProd,PrecoProd,CodTipoProd)CodTipoProd referencia TipoDeProduto

  • 5Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 19999

    Modelo Fsico

    Contm detalhes de armazenamento interno de informaes

    Detalhes que no tm influencia sobre a programao de aplicaes

    no SGBD influenciam a performance da aplicaes

    Usados por profissionais que fazem sintonia de performance em banco de dados

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199910

    Idia fundamental do projeto de banco de dados

    Atravs da identificao das entidades que tero informaes

    representadas no banco de dados, possvel identificar os arquivos que

    comporo o banco de dados

  • 6Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199911

    Modelo conceitual tem dupla interpretao

    modelo da organizao Define as entidades da organizao que tem

    informaes armazenadas no banco de dados

    modelo do banco de dados Define que arquivos (tabelas) faro parte do banco de

    dados.

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199912

    Projeto de BD

    Duas fases:1 Modelagem conceitual2 Projeto lgico

    Adequado para a construo de um novo banco de dados

    Caso j exista um banco de dados ou um conjunto de arquivos convencionais usar reengenharia

  • 7Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199913

    Abordagem Entidade-Relacionamento

    Tcnica para construir modelos conceituais de bases de dados

    Tcnica de modelagem de dados mais difundida e utilizada

    Criada em 1976 por Peter Chen

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199914

    Abordagem Entidade-Relacionamento

    Padro de fato para modelagem conceitual

    No nica: NIAM/ORM (tcnica europia da dcada de 70) UML (Tcnica para modelos Orientados a Objetos)

    Tcnicas de modelagem orientada a objetos (UML) baseiam-se nos conceitos da abordagem ER

  • 8Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199915

    Abordagem Entidade-Relacionamento

    Modelo de dados representado atravs de um modelo entidade-relacionamento (modelo ER)

    Modelo ER representado graficamente diagrama entidade-relacionamento (DER)

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199916

    Conceitos centrais da abordagem ER

    Entidade

    Relacionamento

    Atributo

    Generalizao/especializao

    Entidade associativa

  • 9Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199917

    Entidade

    Conjunto de objetos da realidade modelada sobre os quais deseja-se manter informaes no banco de

    dados

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199918

    Entidade exemplos

    Sistema de informaes industrial produtos tipos de produtos vendas compras

  • 10

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199919

    Entidade exemplos

    Sistema de contas correntes clientes contas correntes cheques agncias

    Entidade pode representar objetos concretos da realidade (uma pessoa, um

    automvel) objetos abstratos (um departamento, um endereo)

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199920

    PESSOA DEPARTAMENTO

    Entidade no DER

    Representada atravs de um retngulo

    Retngulo contm o nome da entidade.

  • 11

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199921

    Entidade e instncia

    Para referir um objeto particularfala-se em instncia ou ocorrncia de entidade

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199922

    Entidade e instncia - terminologia

    conjunto elemento do conjunto

    entidade instncia

    classe instncia

    conjuntode entidades

    entidade

  • 12

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199923

    Propriedades de entidades

    Entidade isoladamente no informa nada

    necessrio atribuir propriedades s entidades

    Propriedades especificadas na forma de Relacionamentos Atributos Generalizaes/especializaes

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199924

    Relacionamento - conceito

    Conjunto de associaes entre entidades sobre as quais deseja-se manter informaes

    na base de dados

  • 13

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199925

    Relacionamento no DER

    DEPARTAMENTO LOTAO PESSOA

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199926

    Relacionamento e instncia

    Relacionamento um conjunto de associaes entre instncias de entidades

    Uma instncia (ocorrncia) uma associao especfica entre determinadas instncias de entidade

    Exemplo (relacionamento LOTAO) ocorrncia = par especfico formado por uma

    ocorrncia de PESSOA e uma ocorrncia de DEPARTAMENTO

  • 14

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199927

    Diagrama de ocorrncias

    p1 p8p7

    p5p6p4

    p3

    p2

    p1,,d1 p2,d1 p4,d2 p5,d3

    d1 d3d2

    entidadeEMPREGADO

    relacionamentoLOTAO

    entidadeDEPARTAMENTO

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199928

    Auto-relacionamento

    PESSOA

    CASAMENTOmarido esposa

  • 15

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199929

    Papel de relacionamento

    Funo que uma ocorrncia de uma entidade cumpre em uma ocorrncia de um relacionamento

    Relacionamento de casamento Uma ocorrncia de pessoa exerce o papel de marido Uma ocorrncia de pessoa exerce o papel de esposa

    Relacionamentos entre entidades diferentes: no necessrio indicar os papis das entidades

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199930

    Auto-relacionamentodiagrama de ocorrncias

    p1p8

    p7

    p5

    p6

    p4

    p3

    p2

    p1,p3

    p6,p8

    maridoesposa

    marido

    esposa

  • 16

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199931

    Cardinalidade de relacionamentos

    Propriedade importante de um relacionamento Quantas ocorrncias de uma entidade podem estar

    associadas a uma determinada ocorrncia de entidade atravs do relacionamento

    Chamada de cardinalidade de uma entidade em um relacionamento

    duas cardinalidades mxima mnima

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199932

    Cardinalidade mxima no DER

    LOTAODEPARTAMENTO

    EMPREGADOn1

  • 17

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199933

    Cardinalidade mxima - DER

    LOTAODEPARTAMENTO

    EMPREGADOn1

    expressa que a uma ocorrncia de EMPREGADO (entidade do lado oposto da anotao) pode estar associada ao mximo uma (1) ocorrncia de DEPARTAMENTO

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199934

    Cardinalidade mxima no DER

    expressa que a uma ocorrncia de DEPARTAMENTO (entidade ao lado

    oposto da anotao) podem estar associadas muitas (n) ocorrncias de

    EMPREGADO

    LOTAO

    DEPARTAMENTO

    EMPREGADOn1

  • 18

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199935

    Cardinalidade mxima - valores

    Para projeto de BD relacional no necessrio distinguir entre diferentes

    cardinalidades mximas > 1

    Dois valores de cardinalidades mximas so usados cardinalidade mxima 1 cardinalidade mxima muitos, referida pela letra n

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199936

    Classificao de relacionamentos

    Cardinalidade mxima pode ser usada para classificar relacionamentos binrios

    Relacionamento binrio aquele cujas instncias envolvem duas instncias de

    entidades

    Relacionamentos binrios n:n (muitos-para-muitos) 1:n (um-para-muitos) 1:1 (um-para-um)

  • 19

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199937

    Relacionamentos 1:1

    PESSOA

    CASAMENTO

    marido1 1

    EMPREGADO

    ALOCAO

    1

    1

    MESA

    esposa

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199938

    Relacionamentos 1:n

    ALUNO INSCRIO CURSO1n

    EMPREGADO DEPENDENTE1 n

    EMPREGADO

    SUPERVISO

    1 nsupervisor supervisionado

  • 20

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199939

    Relacionamentos n:n

    ENGENHEIRO ALOCAO PROJETOn n

    MDICO CONSULTA PACIENTEn n

    PEA CAPACIDADE FORNECEDORn n

    PRODUTO

    COMPOSIO

    n ncomposto componente

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199940

    Relacionamento ternrio

    DISTRIBUIDORCIDADE

    PRODUTO

    DISTRIBUIO

  • 21

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199941

    Cardinalidade em relacionamento ternrio

    DISTRIBUIDORCIDADE

    PRODUTO

    DISTRIBUIO

    1

    n

    na cardinalidade1 refere-sea um parcidade eproduto

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199942

    Cardinalidade mnima

    Nmero mnimo de ocorrncias de entidade que so associadas a uma ocorrncia de uma entidade atravs de um relacionamento

    Para fins de projeto de BD, consideram-se apenas duas cardinalidades mnimas cardinalidade mnima 0 cardinalidade mnima 1

    Denominao alternativa: cardinalidade mnima 1 = associao obrigatria cardinalidade mnima 0 = associao opcional

  • 22

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199943

    Cardinalidade mnima - DER

    EMPREGADO

    ALOCAO

    e1e4

    e3

    e2

    e1,m1 e2,m

    2

    (0,1)

    (1,1)

    MESA

    e4,m4

    m1 m6m4m3

    m2 m5

    e3,m6

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199944

    Exemplo - entidades e relacionamentos

    DEPARTAMENTO RESPONSVEL DISCIPLINA(1,1) (0,n)

    ALUNO INSCRIO CURSO(1,1)(0,n)

    (0,n)

    (0,n)

    DISC-CURSO

    PR-REQUIS

    (0,n) (0,n)liberadora

    liberada

  • 23

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199945

    PROJETO

    tipo

    cdigonome

    Atributo

    Dado ou informao que associado a cada ocorrncia de uma entidade ou de um relacionamento

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199946

    Atributos com cardinalidade

    Cardinalidade mnima atributo obrigatrio (cardinalidade mnima 1)

    cada entidade possui no mnimo um valor associado) atributo opcional (cardinalidade mnima 0)

    Cardinalidade mxima atributo monovalorado (cardinalidade mxima 1)

    cada entidade possui no mximo um valor associado) atributo multivalorado (cardinalidade mxima n)

  • 24

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199947

    Atributo com cardinalidade

    CLIENTE

    telefone (0,n)cdigo

    nome Atributo opcionale multi-valorado

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199948

    Atributo em relacionamento

    ENGENHEIRO ATUAO PROJETO(0,n) (0,n)

    Cdigo Nome TtuloFuno Cdigo

  • 25

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199949

    Atributo em relacionamento 1:n

    FINANCEIRA FINANCIAMENTO

    VENDA(0,1)

    taxa de juros

    (0,n)

    n de parcelas

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199950

    Identificador de entidade

    Cada entidade deve possuir um identificador

    identificador=conjunto propriedades de uma entidade (atributos e relacionamentos) cujos valores servem para distinguir uma ocorrncia da entidade das demais ocorrncias da mesma entidade

  • 26

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199951

    Atributo identificador

    PESSOAendereo

    cdigonome

    PRATELEIRAnmero da prateleira

    capacidadenmero do corredor

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199952

    Relacionamento identificador

    Entidade fraca

    EMPREGADO DEPENDENTE(1,1) (0,n)

    nomeseqnciacdigonmero

    nome

  • 27

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199953

    Relacionamento identificador (recurso)

    (1,1)

    (0,n)

    GRUPO cdigo

    nmero daempresa

    FILIAL

    (1,1)

    (0,n)

    nmero dafilial

    EMPRESA

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199954

    Identificador de relacionamento

    Uma ocorrncia de relacionamento diferencia-se das demais do mesmo relacionamento pelas ocorrncias de entidades que dela participam.

    ENGENHEIRO ALOCAO PROJETOn n

  • 28

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199955

    Relacionamento com atributo identificador

    MDICO CONSULTA PACIENTEn n

    data/hora

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199956

    Generalizao/especializao

    Conceito permite atribuir propriedades particulares

    a um subconjunto das ocorrncias (especializadas) de uma entidade genrica

  • 29

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199957

    Generalizao/especializao

    CLIENTE

    PESSOAFSICA

    PESSOAJURDICA

    nomecdigo

    CIC CGC

    FILIAL(1,1) (0,n)

    sexo tipo deorganizao

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199958

    Generalizao/especializao

    Herana de propriedades

    Herdar propriedades significa cada ocorrncia da entidade especializada possui

    alm de suas prprias propriedades) tambm as propriedades da ocorrncia da entidade

    genrica correspondente

  • 30

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199959

    Entidade associativa (BD1: agregado)

    Modificar modelo:

    Adicionar medicamentos prescritos em uma consulta

    MDICO CONSULTA PACIENTEn n

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199960

    Substituindo relacionamento por entidade

    MDICO PACIENTE

    MEDICAMENTO

    PRESCRIO

    (1,1)

    n n

    (1,1)

    n

    n

    CONSULTA

  • 31

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199961

    Entidade associativa

    MDICO CONSULTA PACIENTEn n

    PRESCRIO

    MEDICAMENTO

    n

    n

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199962

    SmbolosDER

    Conceito Smbolo

    Entidade

    Relacionamento

    Atributo

    Atributoidentificador

    Relacionamentoidentificador

    Generalizao/especializao

    Entidadeassociativa

    (1,1)

  • 32

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199963

    DER de uma farmcia

    PRODUTO

    FABRICANTE

    LOTE

    FORNECEDOR

    MEDICAMENTO PERFUMARIA

    VENDA

    RECEITAMDICA

    (1,n)(0,n)

    (1,1)

    (0,n)

    (1,n)(0,n)

    (1,1)

    (0,n)

    (0,n)

    (0,n)(0,n)(0,1)

    (0,n)

    (1,n)

    Carlos A. Heuser - Transparncias para uso com o livro Projeto de Banco de Dados, Ed. Sagra&Luzzatto, Porto Alegre, 199964

    DER recursos humanos

    EMPREGADO DEPARTAMENTO

    GERENTE SECRETRIA ENGENHEIRO

    PROCESSADORDE TEXTOS

    PROJETO

    DOMNIO PARTICIPAO

    LOTAO

    tipo deempregado

    nome

    CREA

    CIC(1,1)(0,n)

    (1,n)

    (0,n) (0,n)

    (0,n)

    GERNCIA

    (1,n)

    (0,1)

    p