ESOF - 20/04/11

Revisão de 15h14min de 22 de abril de 2011 por Lclaudio (discussão | contribs) (Exercícios)
(dif) ← Edição anterior | Revisão atual (dif) | Versão posterior → (dif)

Dicionário de dados

  • Lista organizada dos elementos do sistema, com definições precisas e rigorosas


  • Permite que tenhamos uma compreensão comum dos fluxos de entrada e saída, dos componentes dos depósitos de dados e dos cálculos intermediários


  • Na descrição do dicionário é utilizada uma gramática, quase formal, para descrever o conteúdo dos elementos definidos durante a análise estruturada


  • Especifica os “valores ” e “unidades ” de partes elementares de informações dos fluxos de dados e dos depósitos de dados


  • Detalha os relacionamentos entre os depósitos especificados em um DER


Símbolo Notação
= é composto de
e
( ) opcional (pode estar presente ou ausente)
{ } iteração (zero ou mais ocorrências)
[ ] escolha uma das opções alternativas
* ...* comentário
@ identificador (campo chave) de um depósito
Barra Vertical separa as alternativas na construção [ ]



Notação:


Exemplos de notação:



  • { }
    • código_cartão = {número_válido}7 ou 7{número_válido}
    • caracter = {caracter-valido}
    • filmes = { Filme + (código-sócio) }



  • [ ]
    • número_válido = [0-9]
    • classe-social = [A-E]



  • |
    • sexo = [F | M]
    • status = [ativo | inativo]
    • titulo = [Sr. | Srta. | Sra. | Dr.]
    • situação = [ "alugado" | "disponível" ]
    • caracter-valido = [a-z | A-Z | ‘ | | - | .]



  • @
    • Aluno = @matricula + nome + cpf + identidade + cep + complemento
    • Carro = @placa + marca + modelo + ano + cor + (acessorios)
    • Filme = @código-filme + nome + realizador + (atorprincipal) + situação
    • Disciplina = @{cod-disciplina + cod-professor} + nome + CH



  • Quais são os possíveis significados das expressões abaixo?
  • endereço = (cidade) + (estado)
    • endereço é definido como uma cidade e um estado ou
    • endereço é definido como uma cidade ou
    • endereço é definido como um estado ou
    • endereço é definido como vazio.



  • Quais são os possíveis significados das expressões abaixo?
  • endereço = rua + cidade + (estado) + (codpostal)
    • endereço é definido como um rua e uma cidade e um estado e um código postal ou
    • endereço é definido como um rua e uma cidade e um estado ou
    • endereço é definido como um rua e uma cidade e um código postal ou
    • endereço é definido como um rua e uma cidade



  • comentário (*):
    • Caminhão = @placa + marca + carga * características de cada caminhão da empresa *
      *** matrícula = {digito}5
      • digito = [0-9]
      • marca = * possíveis marcas dos caminhões da empresa *
        • [ “BMW”|“Volvo”|“Mercedes”|“Outros”]
      • carga = * quantidade máxima de carga que o caminhão suporta *
        • * unidade: toneladas; intervalo: 10 – 100 *



Modelo Entidade-Relacionamento

  • Modelos Conceituais Comuns para Bases de Dados




  • Entidade Relacionamento:
    • Focaliza na estrutura dos dados/metadados
    • Modelagem funcional separada da Orientação a objeto




  • Entidade
    • Grupo de pessoas, coisas ou eventos que compartilham um conjunto de atributos
    • Caracterizada pelos relacionamentos com outros tipos
    • Uma entidade é descrita (em BD) usando um conjunto de atributos




  • Relacionamentos
    • Associações lógicas entre entidades




Exemplo: Entidade Clientes


  • Atributo identificador:
    • número do cliente



  • Atributos descritores:
    • nome, cidade, telefone, data nascimento, profissão, sexo



  • Exemplo de instância:
    • número do cliente: 125
    • nome: João Freitas Filho
    • cidade: Uberlândia
    • telefone: 3214-4657
    • data nascimento: 01/09/1984
    • profissão: carpinteiro
    • sexo: m




Relacionamento



  • Um relacionamento ou associação representa um conjunto de ligações entre entidades que necessitam ser guardadas pelo sistema



  • A associação é caracterizada pela conjunção dos atributos identificadores das entidades envolvidas



  • Cada relacionamento é definida por:
    • Substantivo + relação + Substantivo



Tipos de Relacionamento



  • Unária: Auto-associação ou relação entre uma entidade e ela própria



  • Binária: Relação entre duas entidades.




  • Complexa: Relação entre três ou mais entidades





Chaves



Chave Primária


  • Atributo usado como identificador do item da entidade, como por exemplo um produto que possui um código de barras que o difere dos demais produtos
  • Esse código de identificação deve ser único
  • Exemplos:
    • matricula
    • placa
    • cpf
    • email




Chave Estrangeira


  • Responsável pelo relacionamento entre duas entidades, como por exemplo, um produto que se relaciona com categoria deve conter como chave estrangeira o código (chave primária) da categoria a qual ele pertence
  • Permite que a partir dela se chegue na chave primária de outra entidade.
  • Exemplos:
    • cidade na Entidade Pessoa
    • professor na Entidade Disciplina
    • medico na Entidade Consulta
    • banco na Entidade movimento-conta




DER – Diagrama Entidade-Relacionamento


  • DER ou DEA é uma técnica de modelação que representa a visão estática dos dados e dos relacionamento (associações) entre eles


  • Um DER identifica:
    • as entidades internas do sistema (depósitos de dados)
    • as associações entre os dados
    • as características dos dados e das associações


  • Estes elementos encontram-se espalhados pelos requisitos do problema, modelo de circulação da informação (DFDs), dicionário de dados (DDs) e especificação de processos





  1. Será que um cliente pode ter alugado (ou pode alugar) vários filmes?
  2. Será que um cliente pode nunca ter alugado um filme?
  3. Será que um filme só pode ser alugado por um cliente, por nenhum ou por muitos?



  • Devemos completar as associações com a sua cardinalidade.



Cardinalidade



  • A cardinalidade define os graus de uma associação:





Relacionamento um-para-um (1:1)



  • Indica que uma única ocorrência de uma entidade pode se relacionar com apenas uma única ocorrência de outra entidade.



  • Este tipo de relacionamento é raro (no mundo cotidiano)



  • Exemplo: MARIDO (1) possui (1) ESPOSA







  • Exemplos de Maridos e suas respectivas Esposas







  • Uma forma interessante de armazenar:




  • Cada linha de uma tabela se relaciona facilmente com a linha de outra





Relacionamento um-para-muitos (1:N ou 1:M)



  • Indica que uma ocorrência de uma entidade pode se relacionar com muitas ocorrências de outra entidade


  • No entanto, a recíproca não é verdadeira


  • Este tipo de relacionamento é o mais encontrado








  • Uma situação comum: Um pai tem vários filhos







Relacionamento muitos-para-muitos (N:M)



  • Indica que várias ocorrências de uma entidade podem se relacionar com muitas ocorrências de outra entidade



  • Geralmente, um relacionamento desse tipo pode ser convertido e simplificado pela criação de uma entidade intermediária (do tipo associativa) e de dois relacionamentos do tipo 1:N (um-para-muitos)



  • Exemplo:
    • Sistema de compras: Um cliente pode comprar vários produtos, e um produto pode ser comprado por vários clientes
    • Nesse caso, existe a necessidade da implementação de uma entidade fraca entre as duas entidades



  • Essa entidade é chamada de entidade fraca pois sua chave primária é formada por duas chaves estrangeiras



  • Nesse caso, as chaves estrangeiras poderão se repetir, mas o conjunto delas duas nunca irá se repetir, formando a chave primária








  • Outra situação comum: Armazenar informações sobre professores e suas disciplinas.
  • Temos que levar em consideração duas premissas:
    • Um professor pode ministrar mais de uma disciplina
    • Uma disciplina pode ter mais de um professor







  • Essas condições forçam a ter uma segunda tabela para manter os relacionamentos acima.







Exercícios



  • Descrever cada Depósito de Dados com os principais atributos envolvidos e escolher atributo chave para cada conjunto de entidades abaixo:
  1. Funcionário = {Nome + Endereço + Salário + Data-ingresso}
  2. Cliente = {Nro-CPF + Nome + Endereço + Data-Nasc}
  3. Aluno = {Matrícula + Nome + Sexo + Data-nasc.}
  4. Dependente-Funcionário = {Matrícula-Func + Nome-dep + Data-nasc }
  5. Benefícios = {Matrícula-Func + CodBeneficio + Data-benef}
  6. Notas = {Matrícula + Disciplina + Sem + Notas}
  7. Pedido = {NroPedido + Cliente + DataPed + Produto}
  8. Conta = {nro-conta + saldo + juro + período}