MODELO RELACIONAL



Apresentação da próxima etapa do projeto de banco de dados: o modelo lógico (relacional). atributos opcionais, compostos e multivalorados.





Francisco Escobar

MODELO RELACIONAL


TABELAS
CHAVE PRIMÁRIA
CHAVE ÚNICA
CHAVE ESTRANGEIRA
RELACIONAMENTOS
NOTAÇÃO RESUMIDA PARA MODELOS LÓGICOS RELACIONAIS
INTEGRIDADE DE DADOS
CONSTRAINTS
NOMENCLATURA DE TABELAS E DE CAMPOS
TIPOS DE DADOS

tabelas

Estrutura bi-dimensional composta por linhas (tuplas) e campos (ou atributos).

chave primária

Atributo através do qual seja possível identificar determinado registro. Uma chave primária não pode ser repetida, ou seja, o conjunto de valores que constituem a  chave primária deve ser único dentro de uma tabela.

Chave primária simples: apenas um atributo (campo) compõe a chave primária.
Chave primária composta: mais de um atributo compõe a chave primária.

chave primária

 

chave única

Utilizada quando determinado campo não deve ser repetido e não é chave primária. Aumenta a consistência do banco de dados. Exemplo: Cadastro de funcionários. Cada funcionário recebe um código único, que é a chave primária. Para maior segurança e consistência podemos optar que o campo CPF também seja único, evitando que o mesmo funcionário seja cadastrado duas vezes.

chave única

 

chave estrangeira

Utilizada quando queremos que o valor de um atributo seja validado a partir do valor de atributo de outra tabela. Criamos assim uma relação de dependência (um relacionamento) entre as tabelas. Exemplo: Antes de efetuar a alocação de um funcionário em um departamento, é necessário que o departamento em questão conste na tabela de departamentos.

chave estrangeira

 

relacionamentos

Associação estabelecida entre campos comuns de duas tabelas. Dessa forma permitimos o estabelecimento de correspondência entre registros de diferentes tabelas. Os relacionamentos apresentam a seguinte classificação quanto à sua cardinalidade:

Relacionamento um-para-um (1:1)
Cada ocorrência de uma tabela relaciona-se com uma e somente uma ocorrência da outra tabela.

relacionamentos

Relacionamento um-para-um (1:N)
Uma ocorrência da tabela pai relaciona-se com muitas ocorrências da tabela filho, mas cada ocorrência da tabela filho somente pode estar relacionada com uma ocorrência da tabela pai.

relacionamentos

Relacionamento muitos-para-muitos (N:N)
Apresenta em ambos os sentidos um ou mais relacionamentos de um-para-muitos.
No modelo relacional não é possível efetuar este tipo de relacionamento de forma direta. Neste caso, deve-se construir uma terceira tabela (tabela de associação ou tabela de detalhes). Essa tabela deve possuir chave primária composta de dois campos e as chaves estrangeiras provenientes das duas tabelas originais. Concluindo, um relacionamento de muitos-para-muitos deve ser dividido em dois relacionamentos de um-para-muitos com uma terceira tabela.

notação resumida para modelos lógicos relacionais

Notação compacta, útil para discussões sobre a estrutura geral do banco de dados, utilizada quando não se deseja entrar no nível maior de detalhamento. 

Exemplo:


notação resumida para modelos lógicos relacionais

A notação resumida acima representa o seguinte relacionamento entre as tabelas Departamento e Funcionario:
Observe que através da notação resumida não é possível determinar se o relacionamento é do tipo 1:1 ou 1:N (como no caso representado na figura acima).

integridade de dados

Impor a integridade de dados garante a qualidade dos dados em um banco de dados. Os dados devem refletir corretamente a realidade representada pelo banco e também devem ser consistentes entre si.

integridade de domínio

Zela pelos valores ideais e necessários para um atributo. Para isso definimos algumas regras de validação por meio de expressões compostas de valores constantes. 

Exemplos:

  • Não permitir um estoque negativo
  • Impedir uma data de nascimento superior à data atual
  • Não permitir que o valor de um produto seja negativo

integridade de entidade

Tem o objetivo de validar os valores permitidos a partir de valores já inseridos na própria entidade. Após uma “auto-consulta” a entidade vai permitir ou não a gravação do novo registro.

Exemplos:

  • Não permitir duas pessoas com o mesmo CPF
  • Impedir a locação uma fita que já está locada

integridade referencial

O registro vai “depender” diretamente de um registro de outra tabela.

Exemplos:

  • Um registro em uma tabela pai pode ter um ou mais registros em uma tabela filho.
  • Um registro em uma tabela filho sempre tem um registro coincidente em uma tabela pai.
  • Para a inclusão de um registro em uma determinada tabela filho, é necessário que exista um registro pai coincidente.
  • Um registro pai só poderá ser excluído se não possuir nenhum registro filho.

constraints

Observe a seguir as principais constraints ou restrições utilizadas nos bancos de dados relacionais, principalmente durante o processo de criação das tabelas, para implementar os tipos de integridade anteriormente descritos:

nomenclatura de tabelas e campos

Os sistemas gerenciadores de bancos de dados geralmente impõem certas restrições quanto aos caracteres válidos para denominar tabelas, campos (colunas), bem como outros objetos do banco de dados. Observe a seguir o que deve ser evitado:

  • Não utilizar caracteres especiais (exceto o underscore “_”);
  • Começar com uma letra e não com um número;
  • Evitar acentuação e “ç”;
  • Não utilizar espaços.

tipos de dados

Durante a criação das tabelas do banco de dados é necessário informar que tipo dedados cada coluna deverá armazenar. A tabela a seguir apresenta alguns tipos de dados compatíveis com o Oracle, um dos principais sistemas de gerenciamento de
banco de dados atualmente utilizado:

EXERCÍCIOS

  1. O que é um banco de dados relacional?
  2. O que é uma tabela no contexto dos bancos de dados relacionais?
  3. Explique o que você entende por cada um dos seguintes termos:
    • Chave primária
    • Chave única
    • Chave estrangeira
  4. O que são relacionamentos? Como podemos classificá-los quanto à cardinalidade?
  5. Que solução deve ser adotada no modelo relacional para relacionamentos com cardinalidade N:N (muitos para muitos)?

EXERCÍCIOS

6. O que você entende por: 
  • Integridade de domínio
  • Integridade de entidade
  • Integridade referencial


7. Explique o que há de errado nos casos apresentados a seguir:


EXERCÍCIOS

8. Utilize a notação resumida para representar os casos a seguir conforme o modelo relacional:


Modelagem de Dados 07

By hermanochico

Modelagem de Dados 07

  • 1,900