AULA 2

Abordagem Relacional

Um banco de dados relacional é composto de tabelas ou relações. A terminologia tabela é mais comum nos produtos comerciais e na prática. Já a terminologia relação foi utilizada na literatura original sobre a abordagem relacional.

1. Tabelas

  • Uma tabela é um conjunto não ordenado de linhas (tuplas) onde cada linha é composta por uma série de campos (atributos).
  • Cada campo é identificado por um nome e o conjunto de campos homônimos de todas as linhas de uma tabela formam uma coluna.
EMP
CodigoEmp
Nome
CodigoDepto
CategFunc
E5
Souza
D1
C5
E3
Santos
D2
C5
E2
Silva
D1
C2
E1
Soares
D1
C4

1.1. Diferenças entre Arquivos e Tabelas

  • As linhas das tabelas não tem ordenação, não podendo selecionar as linhas por posição, como na referência por registros.
  • Os valores de campo de uma tabela são atômicos e monovalorados. Em arquivos convencionais, campos podem ser compostos por outros campos e campos podem ser multivalorados ("arrays" de Pascal).
  • As linguagens de consulta a base de dados relacionais permitem o acesso por quaisquer critérios envolvendo os campos de uma ou mais linhas. Em arquivos convencionais, para buscar registros com base em valores de seus campos de forma rápida é usualmente necessário que exista algum tipo de caminho de acesso ou arquivo de índice.
2 Chaves

A chave é o conceito básico para identificar linhas e estabelecer relações entre linhas de uma tabela de um banco de dados relacional.

2.1. Chave Primária

  • É a coluna ou a combinação de colunas cujos valores distinguem uma linha das demais dentro de uma tabela.
  • A chave primária tem como regra ser obedecida em todos os estados válidos do BD, no caso, a regra é a de unicidade de valores nas colunas que compõem a chave.
  • A chave primária é uma restrição de integridade.
  • Chave composta é quando mais de um campo é necessário para identificar a linha na tabela. Exemplo: Quando um empregado possui vários dependentes, na tabela de dependente existirá uma chave para identificar o empregado e outra para diferenciar cada um dos dependentes deste empregado.


Dependentes
CodigoEmp
CodDepend
Nome
Tipo
DataNasc
E1
01
João
Filho
12/12/1991
E1
02
Maria
Esposa
01/01/1950
E2
01
Ana
Esposa
05/11/1955
E6
01
Paula
Esposa
04/07/1975
E6
02
José
Filho
03/02/1990

2.2. Chave Estrangeira

  • A chave estrangeira é uma coluna ou combinação de colunas, cujo valores aparecem necessáriamente na chave primária de uma tabela.
  • É um mecanismo que permite a implementação de relacionamentos em um banco de dados relacional.
  • A existência de uma chave estrangeira impõe restrições que devem ser garantidas ao executar diversas operações de alteração do banco de dados:
    • Quando na inclusão de uma linha que contenha chave estrangeira, deve ser garantido que o valor da chave estrangeira esteja na coluna da chave primária referenciada.
    • Quando na alteração de uma chave estrangeira, deve ser garantido que o valor da nova chave estrangeira esteja na coluna da chave primária referenciada.
    • Quando na exclusão de uma linha que contenha uma chave que é estrangeira em outra tabela, deve ser garantido que a linha não será excluída enquanto alguma linha que a referencie na outra tabela, ainda exista. No exemplo abaixo, deve ser garantido que não se exclua um departamento X, se existe ainda algum empregado que faça parte deste departamento.
    • Quando na alteração de uma chave, que seja referenciada em outra tabela como estrangeira, deve ser garantido que a outra tabela não permaneça com o valor antigo da chave.
  • Pode existir uma chave estrangeira que referencie uma chave na mesma tabela. Como por exemplo a Chave Estrangeira CodEmpGer (Código Empregado Gerente), que faz referência a chave primária da própria tabela de empregados.


Depto
CodigoDepto NomeDepto
D1 Compras
D2 Engenharia
D3 Vendas

Emp
CodigoEmp Nome CodDepto CategFunc CIC CodEmpGer
E1 Saulo D1 C1 132.121.331-20 ----
E2 Roberto D2 C5 891.111.225-11 E10
E3 Patricia D2 C5 951.258.154-88 E2
E5 Cristiano D1 C2 356.188.554-54 E14

3. Domínios e Valores Vazios

  • Quando uma tabela é definida, para cada coluna deve ser especificado o conjunto de valores que os campos podem assumir. Este conjunto de valores é chamado de domínio.
  • Deve ser especificado se os campos da coluna podem estar vazios ou não. Um campo vazio significa que não recebeu nenhum valor de seu domínio. Ex: CodEmpGer do Emp de CodEmp E1.
  • Normalmente, nos SGBDs relacionais exigem que todas as colunas que compôem a chave primária sejam obrigatórias. A mesma exigência não ocorre para as demais chaves.
4. Restrições de Integridade
  • Um dos objetivos primordiais de um SGBD é a integridade de dados.
  • Dizer que um banco de dados está íntegro, significa dizer que ele reflete corretamente a realidade representada pelo banco de dados e que é consistente entre si.
  • Restrições de integridade:
    • Integridade de domínio: especifica que um campo deve obedecer a definição de valores admitidos para a coluna (domínio).
    • Integridade de vazio: especifica se os campos de uma coluna podem ou não ser vazios.
    • Integridade de chave: define que os valores da chave primária deve ser único.
    • Integridade referencial: define que os valores dos campos que aparecem em uma chave estrangeira devem aparecer na chave primária da tabela referenciada.
  • Estas restrições devem ser garantidas automaticamente por um SGBD relacional, não deve ser exigido que o programador escreva procedimentos para garanti-las.


[voltar]