Modelo ER Continuação_Modelo Relacional_AULA 03

47
MODELO E-R (cont.) E MODELO RELACIONAL Professor Victor Sotero 1 Banco de Dados

description

sfffdvffvf

Transcript of Modelo ER Continuação_Modelo Relacional_AULA 03

  • MODELO E-R (cont.) E MODELO RELACIONAL

    Professor Victor Sotero

    1Banco de Dados

  • PARTICIPAO TOTAL

    Uma entidade tem participao total em um relacionamento quando todos os indivduos participam desse relacionamento.

    Ex.: EMPREGADO e DEPARTAMENTO tm participao total no relacionamento TRABALHA_PARA.

    TRABALHA_PARA

    Banco de Dados 2

    e1e2e3

    ...

    e4e5

    d1

    ...

    d2

    d3

    r1

    ...

    r2

    r3

    r4

    r5

    EMPREGADO

    TRABALHA_PARA

    DEPARTAMENTO

  • PARTICIPAO PARCIAL

    Uma entidade tem participao parcial em um relacionamento quando nem todos os indivduos participam desse relacionamento.

    Ex.: EMPREGADO tem participao parcial no relacionamento GERENCIA.

    No entanto, DEPARTAMENTO tem participao total.

    Banco de Dados 3

    e1

    e2

    e3

    ...

    e4

    e5

    d1

    ...

    d2

    d3

    r1

    ...

    r2

    r3

    EMPREGADO GERENCIA DEPARTAMENTO

  • PARTICIPAO NO DIAGRAMA E-R

    Banco de Dados 4

  • MODELO E-R (cont.)

    ESPECIALIZAO

    Ocorre quando uma entidade tem subgrupos que precisam ser representados.

    Ex.: A entidade EMPREGADO pode ter os subgrupos ENGENHEIRO, TECNICO e GERENTE.

    Alm disso, o empregado pode ser:

    HORISTA (recebe por hora de trabalho, sem vnculo com a empresa)

    ou ASSALARIADO (recebe mensalmente, com carteira assinada).

    Note que todos esses subgrupos so empregados, mas tm suas particularidades.

    Banco de Dados 5

  • MODELO E-R (cont.)

    No Modelo ER:

    cada subgrupo chamado de subclasse,

    e a entidade principal chamada de superclasse.

    O relacionamento entre superclasse e subclasse indicado por um sinal de est contido :

    o mesmo sinal usado em Matemtica para indicar que um conjunto est contido em outro:

    Banco de Dados 6

  • EXEMPLO DE ESPECIALIZAO

    Ex.: Uma entidade CARRO (subclasse) tambm faz parte de VEICULO (superclasse).

    Banco de Dados 7

  • ESPECIALIZAO TOTAL E PARCIAL

    Especializao total:

    Toda entidade da superclasse deve pertencer a alguma subclasse.

    Banco de Dados 8

  • ESPECIALIZAO TOTAL E PARCIAL

    Especializao parcial:

    Nem toda entidade da superclasse precisa pertencer a alguma subclasse.

    Banco de Dados 9

  • DISJUNO E OVERLAP

    Disjuno:

    Indivduo de uma subclasse no pode pertencer a outra.

    Banco de Dados 10

  • DISJUNO E OVERLAP

    Sobreposio (overlap):

    Indivduo de uma subclasse pode pertencer a outra.

    Banco de Dados 11

  • HERANA DE ATRIBUTOS

    Banco de Dados 12

    Uma subclasse herda todos os atributos da superclasse, mas tambm pode ter seus atributos especficos. Ex.: A entidade CARRO tem os 3 atributos gerais e seus 2

    atributos especficos.

  • QUANDO CRIAR UMA ESPECIALIZAO?

    Em geral, ocorre pelos seguintes motivos:

    necessidade de ter atributos especficos para cada subgrupo;

    Ex.: A informao Tipo de Engenheiro (eletrnico, mecnico, civil, Ex.: A informao Tipo de Engenheiro (eletrnico, mecnico, civil, etc.) s faz sentido para o subgrupo ENGENHEIRO, e no para toda a entidade EMPREGADO.

    necessidade de ter relacionamentos que envolvem apenas um subgrupo, e no a entidade toda.

    Ex.: Um relacionamento de gerncia de projeto s faz sentido para o subgrupo GERENTE, e no para toda a entidade EMPREGADO.

    Banco de Dados 13

  • CATEGORIAS

    Nos casos vistos at agora, uma nica superclasse d origem a algumas subclasses.

    Em alguns casos, algumas superclasses do origem a uma nica subclasse.

    Ex.: Entidades PESSOA, BANCO e EMPRESA, que, vez por outra, podem ter o papel de proprietrio de um veculo.ter o papel de proprietrio de um veculo.

    Nesse caso, usa-se uma categoria.

    indicada no diagrama como um subconjunto da unio das entidades originais.

    As entidades so agrupadas em uma unio, e a categoria um subconjunto dessa unio.

    Banco de Dados 14

  • Exemplo de Categoria

    Um PROPRIETARIO de veculo pode ser uma PESSOA, um BANCO ou uma EMPRESA.

    Uma nica subclasse se origina de vrias superclasses.

    Banco de Dados 15

    Unio

    Categoria

  • HERANA EM UMA CATEGORIA

    Note que o conceito de herana um pouco diferente:

    Um PROPRIETARIO s herda os atributos de PESSOA, BANCO ou EMPRESA, dependendo do caso.

    Banco de Dados 16

  • CATEGORIA COM ATRIBUTO

    Uma categoria pode ter atributo prprio:

    Ex.: Quando CARRO ou CAMINHAO for VEICULO_REGISTRADO, ter uma placa de licena.uma placa de licena.

    Ser um atributo comum para qualquer caso.

    Os demais atributos vo depender de ser CARRO ou CAMINHAO.

    Banco de Dados 17

  • Especializao ou Categoria

    A escolha subjetiva, no entanto recomendvel:

    usar especializao quando h muitos atributos em comum;

    usar categoria em caso contrrio.

    Banco de Dados 18

  • MODELO RELACIONALMODELO RELACIONAL

    Banco de Dados 19

  • MODELO RELACIONAL

    Aps concluir o projeto conceitual do banco (diagrama ER), feito o projeto lgico.

    Para esse fim, o modelo mais usado o Modelo Relacional.

    O processo de transformar o Modelo ER no Modelo Relacional conhecido como mapeamento.conhecido como mapeamento.

    Enquanto o Modelo ER trabalha com conceitos mais abstratos (entidades e relacionamentos),

    o Modelo Relacional trabalha com conceitos mais concretos (tabelas).

    Nesta aula, veremos os passos para realizar esse mapeamento.

    Banco de Dados 20

  • MODELO RELACIONAL

    Conceito

    O modelo relacional representa os dados num BD como uma coleo de tabelas (relaes). Cada tabela ter um nome, que (relaes). Cada tabela ter um nome, que ser nico, e um conjunto de atributos com seus respectivos nomes e domnios.

    Banco de Dados 21

  • TERMINOLOGIAS

    Profissional Acadmica

    Tabela Relao

    Linha TuplaLinha Tupla

    Coluna Atributo

    Valor do Campo Valor do atributo

    Banco de Dados 22

  • EXEMPLO DE UMA TABELANOME DA TABELA

    ATRIBUTOS

    Banco de Dados 23

    VALORESObs.: no Banco de Dados Relacional tabela tambm chamada de Relao

    TUPLAS

  • EXEMPLOS

    Atributos (ou colunas)

    Nome da relao (ou tabela)

    Banco de Dados 24

    578 Ana Barbosa 25 4003-313123 Joo Silva 47 null149 Maria Santos 31 3391-627184 Pedro Gomes 29 null

    CDIGO NOME IDADE TELEFONE

    Tuplas(ou linhas)

    EMPREGADO

  • ORDENAO DE TUPLAS

    Matematicamente, os elementos de um subconjunto no tem ordem entre eles, portanto as tuplas em uma relao(tabela) portanto as tuplas em uma relao(tabela) no tem qualquer ordem particular.

    Banco de Dados 25

  • CHAVES CANDIDATAS E PRIMRIAS

    Uma chave um atributo cujo valor diferente para cada linha.

    Serve para identificar (diferenciar) as linhas.

    Uma tabela pode ter mais de uma chave. Uma tabela pode ter mais de uma chave.

    Nesse caso, cada uma chamada de chave candidata.

    Entre essas chaves candidatas, escolhemos uma para ser a chave primria da tabela.

    a principal identificadora da tabela.

    Banco de Dados 26

  • Escolha da Chave Primria

    Banco de Dados 27

    Entre as chaves candidatas, escolhe-se a chave primria.

    Obs.: Uma chave candidata no pode ter valores nulos.

    No h regra para essa escolha (depende de cada projeto). Em geral, escolhe-se a mais simples para o funcionamento do

    sistema.

  • Chave Composta

    Uma chave pode ser formada pela combinao de alguns atributos.

    Recebe o nome de chave composta.

    Nesse caso, cada atributo separado pode conter repeties, mas a combinao dos atributos nunca se repetir.

    Banco de Dados 28

  • Chave Estrangeira

    578 Ana Barbosa 323 Joo Silva 1

    MATR NOME NUM_DEPTEMPREGADO

    Chave estrangeira

    Uma chave estrangeira um atributo cujos valores fazem parte da chave primria de outra tabela.

    Banco de Dados 29

    23 Joo Silva 1149 Maria Santos84 Pedro Gomes 2

    1 Recursos Humanos2 Informtica3 Financeiro

    NUM NOMEDEPARTAMENTO

    estrangeira

    Chave primria

    Chave primria

  • MAPEAMENTO

    A partir de um diagrama ER, realizamos o mapeamento para obter um esquema relacional (tabelas).

    O mapeamento feito em uma seqncia de passos. O mapeamento feito em uma seqncia de passos.

    Em cada passo, convertemos cada tipo de estrutura do diagrama ER para tabelas do esquema relacional.

    Cada um dos passos ser visto a seguir.

    Banco de Dados 30

  • PASSO 1: ENTIDADE REGULARES

    Passo 1: Entidades regulares (normais)

    Cada entidade do diagrama ER se torna uma tabela.

    Os atributos simples se tornam colunas da tabela.

    Alguns atributos podem ter uma relao entre si. Por

    exemplo, idade e data-nascimento de uma pessoa. Para

    uma pessoa em particular, podemos determinar o valor

    atual de idade atravs do atributo data-nascimento.

    Ento idade chamado um atributo derivado e derivado do atributo data-nascimento.

    Se houver atributo composto, suas partes se tornam colunas da tabela.

    Se houver atributo derivado, no convertido para a tabela, pois ser calculado pela aplicao (no fica armazenado no banco).

    Por enquanto, devemos ignorar os atributos multivalorados.

    Devemos escolher um dos atributos chave para ser a chave primria da tabela.

    Banco de Dados 31

  • PASSO 1: ENTIDADES REGULARES

    Matricula DataNascIdade

    EnderecoRuaNum

    Apt BairroCidade

    Estado

    Nome

    NumLocalizacoes

    Banco de Dados 32

    EMPREGADONome

    Sexo

    Idade

    DEPARTAMENTO

    GERENCIA11

    TRABALHA_PARAN 1

    PROJETO

    Nome Num

    PARTICIPAN NHoras

    SUPERVISO1 N

  • PASSO 1: ENTIDADES REGULARES

    Banco de Dados 33

  • PASSO 1: ENTIDADES REGULARES

    Banco de Dados 34

  • PASSO 2: RELACIONAMENTOS 1:1 Passo 2: Relacionamentos 1:1

    Escolhemos uma das tabelas para acrescentar uma chave estrangeira, apontando para a chave primria da outra tabela.

    Recomendao: Dar preferncia entidade que tiver Recomendao: Dar preferncia entidade que tiver participao total no relacionamento (se houver).

    Porque essa tabela sempre ter a chave estrangeira preenchida.

    Acrescentamos, nessa mesma tabela escolhida, os atributos do relacionamento (se houver).

    Banco de Dados 35

  • PASSO 2: RELACIONAMENTOS 1:1

    Banco de Dados 36

  • PASSO 2: RELACIONAMENTOS 1:1

    Banco de Dados 37

  • PASSO 3: RELACIONAMENTOS 1:N

    Passo 3: Relacionamentos 1:N

    Na tabela do lado N, acrescentar uma chave estrangeira apontando para a chave primria da outra tabela.

    Porque, no lado N, cada indivduo se liga a apenas um indivduo do lado 1.

    Acrescentamos, na mesma tabela, os atributos do relacionamento (se houver).

    Banco de Dados 38

  • PASSO 3: RELACIONAMENTOS 1:N

    Banco de Dados 39

  • PASSO 3: RELACIONAMENTOS 1:N

    Banco de Dados 40

  • PASSO 4: RELACIONAMENTOS N:N

    Passo 4: Relacionamentos N:N

    Criamos uma nova tabela, que tem duas chaves estrangeiras, cada uma apontando para as chaves primrias das tabelas originais.primrias das tabelas originais.

    A composio dessas chaves estrangeiras forma a chave primria da nova tabela.

    Acrescentamos, na nova tabela, os atributos do relacionamento (se houver).

    Banco de Dados 41

  • PASSO 4: RELACIONAMENTOS N:N

    Banco de Dados 42

  • PASSO 4: RELACIONAMENTOS N:N

    Banco de Dados 43

  • PASSO 5: ATRIBUTO MULTIVALORADO

    Passo 5: Atributos Multivalorados

    Criamos uma nova tabela, contendo:

    uma coluna que guardar o atributo multivalorado; uma coluna que guardar o atributo multivalorado;

    e uma chave estrangeira que aponta para a chave primria da tabela original.

    A composio da coluna do atributo multivalorado com a chave estrangeira forma a chave primria da nova tabela.

    Banco de Dados 44

  • PASSO 5: ATRIBUTO MULTIVALORADO

    Banco de Dados 45

  • PASSO 5: ATRIBUTO MULTIVALORADO

    Banco de Dados 46

  • EXERCCIOEXERCCIO

    Banco de Dados 47