Banco de Dados I – Aula 04A

Modelo Relacional

  • Banco de Dados representado por um conjunto de tabelas também chamadas de relações (relacionam um conjunto de valores).
  • Cada linha de uma tabela também é chamada de uma tupla. (n-upla).
  • Esquema de um BD Relacional: definição do conjunto de tabelas e seus atributos que irão compor a base de dados (estrutura do BD relacional)
  • Instância de um BD Relacional: conjunto de dados armazenados no BD em um determinado momento.

Exemplo de um esquema de um BD Relacional

usuários ( código inteiro [chave primária],
                   nome caracteres [30],
                   end_rua caracteres [20],
                   end_número inteiro,        ….)

livros ( código  inteiro [chave primária],
             título caracteres[20],
             editora caracteres[10],
             ano_pub inteiro)

empréstimos ( cod_usuário inteiro [chave primária],
                           cod_livro inteiro [chave primária],
                           data_ret   data [chave primária],
                          data_dev   data )

Obs: tipos de campos e descrição das chaves ainda são opcionais

Exemplo: Instância

Untitled

Mapeando MER para o Modelo Relacional

  • Um Diagrama de Entidade Relacionamento pode ser representado por um conjunto de tabelas (esquema do Modelo Relacional)
  • Conjunto de Entidades: cada conjunto de entidades do DER gera uma tabela no Modelo Relacional.
  • Entidades Fortes: tabela com seus atributos próprios
    • Exemplo:

Untitled

Contas (Número, saldo)

  • Entidades fracas: tabela com chave primária da entidade forte da qual ela depende  mais seus atributos próprios
    • Exemplo:

Untitled

Carros (chassi, marca, modelo, ano, cor, placa)
Reparos (chassi, data, tipo, valor, oficina)

Obs: Quando transfornado para MR, deve-se atentar aos campos que irão compor a chave primária

  • Conjunto de Relacionamentos: podem ou não gerar tabelas:

 

  • Relacionamentos Múltiplos ou Relacionamentos Binários de n para n: geram tabelas com as chaves primárias das entidades envolvidas mais os atributos próprios do relacionamento.Exemplo: Relacionamentos Binários de N para N:Untitled
    Usuários (COD, nome, fone)
    Livros  (No_tombo, título, ano, editora)
    Empréstimos (COD, No_tombo, data_ret, data_dev)

    Obs: No MR, é necessário analisar os campos que irão compor a chave

 

  • Relacionamentos Binários de 1 para n ou de 1 para 1:
    • Não geram tabelas.
    • Para associar as tuplas das tabelas no Modelo Relacional deve-se transpor a chave de um conjunto de entidades para o outro ( a chave da entidade do lado com 1 é transposta para a entidade do lado n).
    • A chave transposta nesse caso não compõe a chave primária da entidade que a recebeu (é uma chave estrangeira).
    • Obs: no caso da transposição de chave entre a entidade forte e a entidade fraca que dela depende, a chave transposta compõe a chave primária da entidade fraca).
    • Exemplo: Relacionamentos 1 para N:Untitled

Países (código, nome, continente)
Cidades ( código, nome, população, código_país)

OBS: Relacionamentos Binários de 1 para n podem gerar tabela quando                                 não há totalidade na associação.

  • Generalização e Especialização: há duas maneiras de definir as tabelas para uma generalização ou especialização:
    • Define-se uma tabela para o conjunto de entidades do nível mais alto (com os atributos comuns) e uma tabela para cada entidade do nível mais baixo (com seus atributos próprios + a chave primária da entidade do nível mais alto).
    • Exemplo: Generalização e EspecializaçãoUntitled 

      Contas (número, saldo)
      Contas_corrente (número, limite)
      Contas_poupança (número, data_base)

  • Generalização e Especialização: segunda maneira
    • Define-se tabelas apenas para os conjuntos de entidades do nível mais baixo (com seus atributos próprios, mais todos os atributos herdados do conjunto de entidades do nível mais alto). Essa opção só é permitida se a generalização / especialização for mutuamente exclusiva (uma entidade não pertence a mais do que um dos subconjuntos) e total (todas as entidades do nível mais alto pertencem a um dos subconjuntos do nível de baixo)
    • Exemplo: Generalização e EspecializaçãoUntitledContas_corrente (número, saldo, limite)
      Contas_poupança (número, saldo, data_base)
  • Atributos Multivalorados: novas tabelas devem ser criadas para armazená-los juntamente com a chave primária da entidade que os possui.
    • Exemplo: Atributos MultivaloradosUntitled                           Livros (No_tombo, título, ano, editora)
      Autores (No_tombo, autor)

 

  • Agregação: como a agregação é a representação de um conjunto de relacionamentos como se fosse um conjunto de entidades, o mapeamento para tabelas é semelhante ao mapeamento aplicado em entidades e relacionamentos normais.
  • Relacionamentos de 1 para 1: para decidir como será feita a transposição de chaves, deve-se observar a participação total com relação ao relacionamento
    • Exemplo: Relacionamentos de 1 para 1Untitled
    • Todo país tem uma capital, mas nem toda cidade é capital de um país, portanto a tabela de países é que deve receber a código da cidade que é capital.
      Países (código, nome, continente, código_capital)
      Cidades ( código, nome, população)

 

Para onde deve ser transportada a chave?

PAIS
COD NOME COD_CAP
1 BRASIL ?
2 JAPAO ?
3 ARGENTINA ?
4 USA ?

 

CIDADE
COD NOME POPULAC COD_PAIS
1 JUNDIAI 400 ?
2 TOKYO 2000 ?
3 BRASILIA 1000 ?
4 W. D. C. 800 ?
5 BUENOS AIRES 300 ?
6 RIO DE JANEIRO 2500 ?
7 DALLAS 400 ?

 

PS: Apostila adotada dos professores Cláudio e Carrilho, baixada em 03/2006

 

Video – Parte 01

 

 

 

 

Anúncios

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s