Sem resumo de edição
Linha 73: Linha 73:


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




* [ ]
* [ ]
** númeroválido = [0-9]
 
** Classesocial = [A-E]
** número_válido = [0-9]
 
** classe-social = [A-E]
 
<br>
<br>




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




* @
* @
** filme = @código-filme + nome + realizador + (atorprincipal) + situação
 
** 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
 
<br>
<br>




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




* Quais são os possíveis significados das expressões abaixo?
* Quais são os possíveis significados das expressões abaixo?
** endereço = rua + cidade + (estado) + (codpostal)
 
* 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 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 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 e um código postal ou
** endereço é definido como um rua e uma cidade
** endereço é definido como um rua e uma cidade
<br>
<br>




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


= Modelo Entidade-Relacionamento =
= Modelo Entidade-Relacionamento =
Linha 130: Linha 171:


* Modelos Conceituais Comuns para Bases de Dados
* Modelos Conceituais Comuns para Bases de Dados
<br><br>
 
<br>
 
<br>




* Entidade Relacionamento:
* Entidade Relacionamento:
** Focaliza na estrutura dos dados/metadados
** Focaliza na estrutura dos dados/metadados
** Modelagem funcional separada Orientado a objeto
<br><br>


** Modelagem funcional separada da Orientação a objeto
<br>
<br>


* Modela objetos:
** pelo encapsulamento dos metadados (estrutura) e métodos (funções)
<br><br>


* Entidade


* Tipo ou Classe de uma Entidade
** Grupo de pessoas, coisas ou eventos que compartilham um conjunto de atributos
** Grupo de pessoas, coisas ou eventos que compartilham um conjunto de atributos
** Caracterizada pelos relacionamentos com outros tipos
** Caracterizada pelos relacionamentos com outros tipos
** Uma entidade é descrita (em BD) usando um conjunto de atributos
** Uma entidade é descrita (em BD) usando um conjunto de atributos
<br><br>


* Relacionamento
<br>
 
<br>
 
 
* Relacionamentos
 
** Associações lógicas entre entidades
** Associações lógicas entre entidades
<br><br>


<br>
<br>
'''


'''Exemplo: Entidade Clientes'''
Exemplo: Entidade Clientes'''




* Atributo identificador:
* Atributo identificador:
** número do cliente
** número do cliente
<br>
<br>




* Atributos descritores:
* Atributos descritores:
** nome, cidade, telefone, data nascimento, profissão, sexo
** nome, cidade, telefone, data nascimento, profissão, sexo
<br>
<br>




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


= Relacionamento =
= Relacionamento =
Linha 184: Linha 256:


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




* A associação é caracterizada pela conjunção dos atributos identificadores das entidades envolvidas
* A associação é caracterizada pela conjunção dos atributos identificadores das entidades envolvidas
<br>
<br>




* Cada relacionamento é definida por:
* Cada relacionamento é definida por:
** Substantivo + relação + Substantivo
** Substantivo + relação + Substantivo
<br><br>
 
 
<br>
 
<br>


== Tipos de Relacionamento ==
== Tipos de Relacionamento ==
<br>
<br>




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


Linha 206: Linha 287:


* Binária: Relação entre duas entidades.
* Binária: Relação entre duas entidades.
<br>
<br>


[[Arquivo:MER-Binaria.png|center]]
[[Arquivo:MER-Binaria.png|center]]
<br>
<br>




* Complexa: Relação entre três ou mais entidades
* Complexa: Relação entre três ou mais entidades
<br>
<br>




[[Arquivo:MER-Complexa.png|center]]
[[Arquivo:MER-Complexa.png|center]]
<br>
<br>




== Chaves ==
== Chaves ==
<br>
<br>




'''Chave Primária'''
'''Chave Primária'''
<br>
<br>


Linha 230: Linha 317:
* 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
* 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.
* Esse código de identificação deve ser único
<br><br>
 
* Exemplos:
 
** matricula
 
** placa
 
** cpf
 
** email
 
<br>
 
<br>






'''Chave Estrangeira'''
'''Chave Estrangeira'''
<br>
<br>


Linha 241: Linha 342:
* 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
* 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 chega na chave primária de outra entidade.
* Permite que a partir dela se chegue na chave primária de outra entidade.
<br><br>
 
* Exemplos:
 
** cidade na Entidade Pessoa
 
** professor na Entidade Disciplina
 
** medico na Entidade Consulta
 
** banco na Entidade movimento-conta
 
<br>
 
<br>
 


= DER – Diagrama Entidade-Relacionamento =
= DER – Diagrama Entidade-Relacionamento =
<br>
 


* 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
* 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
<br>
 


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




* 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
* 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
<br>
<br>




[[Arquivo:DER-01.png|center]]
[[Arquivo:DER-01.png|center]]
<br>
<br>




# Será que um cliente pode ter alugado (ou pode alugar) vários filmes?
# Será que um cliente pode ter alugado (ou pode alugar) vários filmes?
# Será que um cliente pode nunca ter alugado um filme?
# Será que um cliente pode nunca ter alugado um filme?
# Será que um filme só pode ser alugado por um cliente, por nenhum ou por muitos?
# Será que um filme só pode ser alugado por um cliente, por nenhum ou por muitos?
<br>
<br>




* Devemos completar as associações com a sua cardinalidade.
* Devemos completar as associações com a sua cardinalidade.
<br>
<br>




== Cardinalidade ==
== Cardinalidade ==
<br>
<br>




* A cardinalidade define os graus de uma associação:
* A cardinalidade define os graus de uma associação:
<br>
<br>




[[Arquivo:DER-02.png|center]]
[[Arquivo:DER-02.png|center]]
<BR>
<BR>




== Relacionamento um-para-um (1:1) ==
== Relacionamento um-para-um (1:1) ==
<br>
<br>




* Indica que uma única ocorrência de uma entidade pode se relacionar com apenas uma única ocorrência de outra entidade.
* Indica que uma única ocorrência de uma entidade pode se relacionar com apenas uma única ocorrência de outra entidade.
<br>
<br>




* Este tipo de relacionamento é raro (no mundo cotidiano)
* Este tipo de relacionamento é raro (no mundo cotidiano)
<br>
<br>




* Exemplo: MARIDO (1) possui (1) ESPOSA
* Exemplo: MARIDO (1) possui (1) ESPOSA
<br>
<br>




[[Arquivo:Rel-um-pra-um.png|center]]
[[Arquivo:Rel-um-pra-um.png|center]]
<br><br><br>
<br><br><br>




* Exemplos de Maridos e suas respectivas Esposas
* Exemplos de Maridos e suas respectivas Esposas
<br>
<br>




[[Arquivo:Rel-um-pra-um-B.png|center]]
[[Arquivo:Rel-um-pra-um-B.png|center]]
<br><br><br>
<br><br><br>




* Uma forma interessante de armazenar:
* Uma forma interessante de armazenar:
<br>
<br>




[[Arquivo:Rel-um-pra-um-C.png|center]]
[[Arquivo:Rel-um-pra-um-C.png|center]]
<br>
<br>


* Cada linha de uma tabela se relaciona facilmente com a linha de outra
* Cada linha de uma tabela se relaciona facilmente com a linha de outra
<br><br><br>
<br><br><br>




== Relacionamento um-para-muitos (1:N ou 1:M) ==
== Relacionamento um-para-muitos (1:N ou 1:M) ==
<br>
<br>


Linha 335: Linha 474:


* Este tipo de relacionamento é o mais encontrado
* Este tipo de relacionamento é o mais encontrado
<br><br>
<br><br>




[[Arquivo:Rel-um-pra-n.png|center]]
[[Arquivo:Rel-um-pra-n.png|center]]
<br><br><br>
<br><br><br>




* Uma situação comum: Um pai tem vários filhos
* Uma situação comum: Um pai tem vários filhos
<br>
<br>




[[Arquivo:Rel-um-pra-n-b.png|center]]
[[Arquivo:Rel-um-pra-n-b.png|center]]
<br><br><br>
<br><br><br>




== Relacionamento muitos-para-muitos (N:M) ==
== Relacionamento muitos-para-muitos (N:M) ==
<br>
<br>




* Indica que várias ocorrências de uma entidade podem se relacionar com muitas ocorrências de outra entidade
* Indica que várias ocorrências de uma entidade podem se relacionar com muitas ocorrências de outra entidade
<br>
<br>




* 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)
* 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)
<br>
<br>




* Exemplo:
* Exemplo:
** Sistema de compras: Um cliente pode comprar vários produtos, e um produto pode ser comprado por vários clientes
** 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
** Nesse caso, existe a necessidade da implementação de uma entidade fraca entre as duas entidades
<br>
<br>




* Essa entidade é chamada de entidade fraca pois sua chave primária é formada por duas chaves estrangeiras
* Essa entidade é chamada de entidade fraca pois sua chave primária é formada por duas chaves estrangeiras
<br>
<br>




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




[[Arquivo:Rel-n-pra-n.png|center]]
[[Arquivo:Rel-n-pra-n.png|center]]
<br><br><br>
<br><br><br>


Linha 383: Linha 535:


* Temos que levar em consideração duas premissas:
* Temos que levar em consideração duas premissas:
** Um professor pode ministrar mais de uma disciplina
** Um professor pode ministrar mais de uma disciplina
** Uma disciplina pode ter mais de um professor
** Uma disciplina pode ter mais de um professor
<br>
<br>




[[Arquivo:Rel-n-pra-n-B.png|center]]
[[Arquivo:Rel-n-pra-n-B.png|center]]
<br><br><br>
<br><br><br>




* Essas condições forçam a ter uma segunda tabela para manter os relacionamentos acima.
* Essas condições forçam a ter uma segunda tabela para manter os relacionamentos acima.
<br>
<br>


Linha 398: Linha 555:


[[Arquivo:Rel-n-pra-n-C.png|center]]
[[Arquivo:Rel-n-pra-n-C.png|center]]
<br><br><br>
<br><br><br>


= Exercícios =
= Exercícios =

Edição das 23h35min de 19 de abril de 2011

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?
  1. Será que um cliente pode nunca ter alugado um filme?
  1. 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:

a) Funcionário = {Nome + Endereço + Salário + Data-ingresso}

b) Cliente = {Nro-CPF + Nome + Endereço + Data-Nasc}

c) Aluno = {Matrícula + Nome + Sexo + Data-nasc.}

d) Dependente-Funcionário = {Matrícula-Func + Nome-dep + Data-nasc }

e) Benefícios = {Matrícula-Func + CodBeneficio + Data-benef}

f) Notas = {Matrícula + Disciplina + Sem + Notas}

g) Pedido = {NroPedido + Cliente + DataPed + Produto}

h) Conta = {nro-conta + saldo + juro + período}