Aula 3
3. Modelo Relacional
O modelo relacional e' baseado no conceito de relacao matematica.
Relacao ~= tabela.
dominio: conjunto de valores atomicos
tipo:    especifica um dominio
esquema de relacao: R(A1, ..., An), onde
R: nome da relacao
Ai: nome do atributo
dom(Ai): dominio do atributo Ai
Ex: Aluno (RA, nome, curso, data de nascimento)

relacao ou instancia de um esquema de relacao:

Def 1: conjunto de n-tuplas r={t1,..., tm}, onde cada tupla ti e' uma lista ordenada de n valores t=<v1,..., vn>

Def 2: r(R) subconjunto (dom(A1) x dom(A2) x ... x dom(An))

Def 3: r(R) e' um conjunto de mapeamentos r={t1, ..., tm}, onde cada tupla e' um mapeamento de R para D (D e' a uniao dom(A1) U dom(A2) U ... U dom(An)), e uma tupla e' um conjunto de pares (<atributo>, <valor>). Neste caso, a ordem dos atributos nao e' importante.

Caracteristicas de uma relacao:

  1. uma relacao (sendo um conjunto) nao e' ordenada
  2. atributos possuem como dominio, um conjunto de valores atomicos.
  3. uma relacao pode ser interpretada como um conjunto de fatos.


Notacao:

  1. R(A1,...,An) e'um esquema da relacao R
  2. t=<v1,...,vn> e' um tupla
  3. t[Ai] e t.Ai: valor do atributo Ai da tupla t t[Ai,.., Aj] e t.(Ai,..., Aj): lista dos valores dos atributos Ai,...,Aj da tupla t


Restricoes:

1. Restricoes de Dominio:
   definem os valores que um atributo pode conter

2. Restricoes de Chaves:
   Superchave (SK): e' um subconjunto do conjunto de atributos de uma relacao R tal que para qualquer par de tuplas distintas t1, t2:

t1[SK] diferente de t2[SK].
Chave: e' uma superchave minima, ou seja, uma superchave da qual nao podemos remover qualquer atributo e sustentar a restricao de unicidade.

Chave Candidata/Chave primaria: uma relacao pode ter diversas chaves. Elas sao chamadas de chaves candidatas.  Uma delas e' escolhida como principal forma de identificacao de tuplas na relacao: a chave primaria. 


Banco de Dados Relacionais:

O esquema de um BD relacional e' um conjunto de esquemas de relacao,

S= {R1,..., Rm}.
Uma instancia de S e' um conjunto de relacoes BD={r1,...,rm}, onde cada ri e' uma instancia do esquema de relacao Ri.

- Representacao de relacionamentos
- Representacao de chave primaria

- Restricao de Integridade da Entidade: restricao que determina que o valor da chave primaria nao pode ser nulo.

- Restricao de Integridade Referencial: 

DEF: um conjunto de atributos FK no esquema da relacao R1 e' uma chave estrangeira de R1 que referencia R2 se:

  1. os atributos em FK possuem os mesmos dominios que os atributos da chave primaria PK de R2; diz-se que os atributos FK fazem referencia a relacao R2.
  2. para qualquer tupla t1 de r1(R1), ou existe uma tupla t2 em r2(R2) tal que t1[FK]=t2[PK], ou t1[FK] e' nulo.


Exemplos: de FK e auto-relacionamento.

Atualizacoes no BD e violacoes de restricoes que podem ocorrer:

1) inserir(v1,...,vn):

  • pode causar: violacao de integridade de identidade (chave prim. nula)
    • violacao de restricao de chave
    • violacao de integridade referencial
  • em geral nestes casos a insercao e' rejeitada


2) excluir(PK):

  • pode causar: violacao de integridade referencial
  • como lidar com a violacao:
    • rejeitar
    • propagar a exclusao
    • modificar os valores dos atributos referenciados para nulo


3) atualizacao(PK, atributo, novo_valor):

  • podem causar as mesmas violacoes vistas anteriormente quando ou a chave primaria ou chave estrangeira sao atualizadas.
[voltar]