Anda di halaman 1dari 26

24/3/2010

Banco de Dados Relacional

Modelo Relacional - Conceitos


Restrições de Integridade

Modelo Lógico Relacional

 Criado por Edgar Codd, nos anos 70


 É um modelo formal, baseado na teoria matemática
das relações
° Entretanto, é o mais simples e com estrutura de dados
mais uniforme

 Tornou-se um padrão para aplicações comerciais,


devido à sua simplicidade e performance
 System R (IBM) foi um dos primeiros SGBDs
Relacionais, dando origem a outros
° DB2 (IBM), SQL/DS (IBM), Oracle, Informix, Ingres, entre
outros.

1
24/3/2010

Modelo Lógico Relacional

 Princípio básico:
“As informações em uma base de dados podem ser
consideradas como relações matemáticas e estão
representadas de maneira uniforme, informalmente,
através do uso de TABELAS”
 Definição Clássica:
“São conjuntos de dados vistos segundo um conjunto
de RELAÇÕES/TABELAS e as operações sobre
elas são feitas por linguagens que manipulam a
álgebra relacional, manipulando conjuntos de uma
só vez”

Estrutura básica do Modelo Relacional

 Trabalha sobre 5 pilares


° Relação
• Informalmente chamada de tabela
° Atributo
• Colunas da tabela
° Domínio
• Valores permitidos para cada atributo
° Tupla
• Uma linha inteira
° Chave
• Define a unicidade de uma tupla na tabela

2
24/3/2010

Tabela

 Dados são representados em forma de


tabelas (relações), ou seja, através de linhas
(tuplas) e colunas

coluna TABELA 1

linha

Tuplas

 Linha de uma tabela ou relação


 Tupla = set of (<atributo>,<valor>)
° Representam objetos
• Instâncias ou ocorrências da tabela

 Uma tabela é um conjunto de tuplas


° Não é possível haver tuplas duplicadas ou
repetidas

3
24/3/2010

Exemplo

Atributo/Domínio

O modelo relacional exige que cada componente ou


atributo da tupla seja atômico
° Por atômico, entende-se que cada valor no
domínio é indivisível
• Deve pertencer a um tipo elementar, como, por
exemplo, inteiro ou caracter
• Não pode ser uma estrutura, lista, conjunto ou
vetor

4
24/3/2010

Domínio

Acada atributo da relação encontra-se associado


um domínio que é de um tipo elementar
° Cada ocorrência de atributo pertence a esse
domínio de valores especificado
• Número_fone: cadeia de caracteres no formato
(ddd)dddd-dddd
– d é um dígito numérico, e os três primeiros dígitos
formam um código de área de telefone válido.

• Sexo: 1 caracter; valores pertencem a [‘M’,’F’]

Exemplos - Tabelas

Domínio: tipo DATE


Tabela: FUNCIONÁRIO
Matrícula Nome Data de Admissão Cargo
Tupla 3478 José Carlos 29/04/95 01
6754 Maria Célia 23/07/99 02
1256 Pedro Góes 21/09/02 03
4568 Ana Dias 01/02/03 01

Tabela: CARGO
CodCargo Descrição Salário Base
01 Técnico Administrativo 700,00
03 Vigilante 300,00
02 Secretária 1000,00

5
24/3/2010

Características das Relações/Tabelas

 Elementosde um conjunto não possuem uma


ordem entre eles: tuplas numa tabela não têm
ordem também
• A consulta pode levar a um resultado ordenado a
partir de um de seus atributos
• As tabelas seguintes são idênticas ??

CodArtista NomeArtista CodArtista NomeArtista


23 Julia Roberts 05 Luana Piovani
12 Harrison Ford 24 Selton Melo
24 Selton Melo 12 Harrison Ford
05 Luana Piovani 23 Julia Roberts

Características das Relações/Tabelas

 Atributos não possuem ordem


° Mas, a ordem dos atributos pode ser importante para
identificar a correspondência entre os mesmos e seus
respectivos valores
(cod_artista, nome_artista, data_nasc,cidade, país)

(1,’Julia Roberts’,’23/09/66’,’Boston’,’USA’)

 Oselementos armazenados em atributos


possuem valores atômicos e não compostos

6
24/3/2010

Características das Relações/Tabelas

 Umvalor pode ser “desconhecido” ou “indefinido”,


sendo assim chamado de “null” ou valor nulo
(cod_artista, nome_artista, data_nasc,cidade, país)

(1,’Julia Roberts’,’23/09/66’,’Boston’,’USA’)
(2,’Tom Hanks’, null, null, ‘USA’)

° A característica do nulo poderá ser interrogada em


consultas ou atualizada com valores válidos,
mudando, assim, o status do atributo

Características das Relações/Tabelas

 Interpretação de uma relação/tabela


° O modelo relacional representa fatos tanto sobre
entidades quanto relacionamentos uniformemente
através do conceito de “relação/tabela”

° Como interpretar as assertivas?


• “Um estudante possui um nome, telefone,
matrícula e média geral”
• “O estudante “Marcos” possui telefone
“32242345”, matrícula 5648976 e média 8,0”
• “O estudante pertence a curso”

7
24/3/2010

Esquema

O esquema de uma relação/tabela é a definição de


seu nome e de sua estrutura (atributos com seus
domínios)
É pouco atualizado
° Uma instância de uma relação, por sua vez, pode ser
constantemente atualizada
Nome Nulo? Tipo
----------------------------------------- -------------- ----------------------------
COD_ARTISTA NOT NULL NUMBER
NOME_ARTISTA VARCHAR2(25)
CIDADE VARCHAR2(20)
PAIS VARCHAR2(20)
DATA_NASC DATE

Esquema Geral

O esquema geral (catálogo) de um BD


relacional deve conter no mínimo:
° Tabelas que formam o banco
° Colunas que as tabelas possuem
° Restrições de Integridade

 Asnotações do “esquema/catálogo” variam de


um SGBD para outro

8
24/3/2010

Chaves

O conceito básico para estabelecer relações


entre tuplas de tabelas é o de chave

° Primária

° Candidata/Alternativa

° Estrangeira

Chave Primária

 Atributo ou conjunto de atributos concatenados que


identificam uma única ocorrência dentro de uma
tabela
° Define a unicidade da tupla na tabela
° Primary Key = PK
Dependente
MatrículaEMP NumDep NomeDep TipoDep DataNasc

23 01 Ana Guedes Esposa 12/12/70

12 01 Carlos Dias Filho 01/01/90

23 02 André Marques Filho 10/10/99

9
24/3/2010

Chave Primária (PK)

A chave primária não pode ter valor nulo


A chave primária deve ser mínima
° Todas as suas colunas são efetivamente
necessárias para garantir o requisito de unicidade
de valores

 Ao se definir uma PK está-se definindo uma


restrição de integridade, que deve ser
obedecida em todos os estados válidos do BD

Chaves Candidatas

 Atributos habilitados a se tornarem chave


primária

** Somente uma chave candidata se tornará


primária; o restante passa a ser considerada
como chave alternativa

10
24/3/2010

Exemplo

 Atributos da Tabela ELEITOR


° Nome do Eleitor
° Junta Eleitoral
° Seção Eleitoral
° Número de Identidade
° Número de CPF
° Número do Título de Eleitor

 Quais as chaves candidatas?


 Qual a chave primária?

Exemplo

Tabela: ELEITOR
° Chaves Candidatas:
• Número do Título de Eleitor
• Número de Identidade
• Número de CPF
° Chave Primária Escolhida:
• Número do Título de Eleitor

11
24/3/2010

Chave Estrangeira

 Coluna cujo valor aparece necessariamente na


chave primária de outra tabela
 As chaves estrangeiras são os elos de ligação entre as
tabelas
° Mecanismo que permite a implementação dos relacionamentos
em um BDR

 Estrangeira por quê?


° É uma chave pertencente a uma tabela;
° Não está no seu local de origem, mas sim no local
para onde foi migrada (estrangeiro)

Exemplo

N 1 UNIDADE
ELEITOR vota FEDERACÃO

Tabela UNIDADE FEDERACÃO


Chave Primária: SIGLA-UF
Atributos Descritivos: Nome, Área-m2

Tabela ELEITOR
Chave Primária: NUM-TITULO-ELEITOR
Atributos Descritivos: CPF,RG, Nome, Estado-Civil
Chave Estrangeira: SIGLA-UF

12
24/3/2010

Exemplo – Chave Estrangeira

Tabela: FUNCIONÁRIO
Matrícula Nome Data de Admissão Cargo
3478 José Carlos 29/04/95 01
6754 Maria Célia 23/07/99 02
1256 Pedro Góes 21/09/02 03
4568 Ana Dias 01/02/03 01

Tabela: CARGO
CodCargo Descrição Salário Base
01 Técnico Administrativo 700,00
03 Vigilante 300,00
02 Secretária 1000,00

Chave Estrangeira

 Umachave estrangeira pode referenciar a


chave primária da própria tabela
** Auto-relacionamento

CódigoEMP Nome Depto CodEMPGerente

23 José Santos 01 Null

12 Carlos Santana 01 23

24 Carla Soares 01 23

13
24/3/2010

Resumo do Modelo Relacional

 Modelo constituído de tabelas/relações, cada


qual contendo linhas (registros, tuplas) e colunas
° Uma tabela é acessível por qualquer campo (atributo)
independente dele ser chave
° É através da CHAVE primária que se identifica uma
(somente uma) ocorrência do valor contido no campo
° Os registros NÃO precisam estar ordenados

Resumo do Modelo Relacional

 O relacionamento entre tabelas não existe


fisicamente
° Ele é apenas lógico e representado através
das chaves estrangeiras

14
24/3/2010

Restrições de Integridade

Restrição de Integridade

 Um dos objetivos primordiais em um BD


relacional é a integridade dos dados
° Dados íntegros refletem corretamente a
realidade representada pelo banco e estão
consistentes entre si.
° Para prover essa característica, deve-se
habilitar o mecanismo de restrições de
integridade

15
24/3/2010

Restrição de Integridade

 Regra de consistência de dados que é


garantida pelo próprio SGBD
° Definidas com o intuito de garantir que os dados
fiquem protegidos contra “estragos” acidentais
° Devem assegurar que a atualização dos dados não
resulta na perda da consistência
• Esta garantia deve ser automática, sem a
necessidade de implementação de
procedimentos

Restrição de Integridade

I. Integridade de Domínio
II. Integridade de Nulo
III. Integridade de Chave
IV. Integridade Referencial

 Integridade Semântica

16
24/3/2010

Restrições de Integridade

I. Integridade de Domínio:
° O valor de um campo deve obedecer à definição de valores
admitidos para o domínio da coluna
° Domínios: número inteiro, número real, alfanumérico, data,
etc.

II. Integridade de Nulo:


° Especifica se o valor de um campo pode ser nulo
• Obrigatório
• Opcional
° Campos que compõem a PK não podem ser nulos

Restrições de Integridade

III. Integridade de Chave:


° Define que os valores de chave primária e alternativa
devem ser únicos

IV. Integridade Referencial:


° Os valores dos campos que aparecem em uma
chave estrangeira (FK) devem aparecer na chave
primária(PK) da tabela referenciada

17
24/3/2010

Restrições de Integridade

 Integridade Semântica
° Exemplos:
• “Nenhum empregado pode ganhar mais do que
seu gerente”
• “o número máximo de horas que um
empregado pode trabalhar por semana é 44
horas”
° Pode ser implementada através de mecanismos
como regras e triggers

Integridade Referencial

 Sistema de regras que garantem que os


relacionamentos entre tuplas de tabelas permaneçam
válidos
 Regras Básicas:
° Na inclusão de uma linha que contém uma chave
estrangeira
• O valor deve existir como PK
° Na alteração da FK
• O novo valor da chave estrangeira deve existir
como PK

18
24/3/2010

Integridade Referencial

 Regras Básicas:
° Ou seja: não se pode entrar com valor de FK sem este
existir como PK
° Pode-se entrar com null para FK, especificando que as
tuplas não estão relacionadas
° Não se pode remover/modificar uma tupla de uma
tabela cuja PK seja referenciada como FK por outra
tabela
=>operações de manipulação devem ser feitas com
cuidado, de acordo com definições de restrições!!!

Exemplo – Restrições de Integridade

Tabela: FUNCIONÁRIO
Matrícula Nome Data de Admissão Cargo
3478 José Carlos 29/04/95 01
6754 Maria Célia 23/07/99 02
1256 Pedro Góes 21/09/02 03
4568 Ana Dias 01/02/03 01

Tabela: CARGO
CodCargo Descrição Salário Base
01 Técnico Administrativo 700,00
03 Vigilante 300,00
02 Secretária 1000,00

19
24/3/2010

Operações versus
Restrições de Integridade

 Operação Insert
1. Inserir (null, ‘Ana Paula’, ’19/07/2004’,02)
° Viola a restrição de nulo na PK => rejeitada
2. Inserir (3478, ‘Ana Paula’, ’19/07/2004’,02)
° Viola a unicidade da PK => rejeitada
3. Inserir (3477, ‘Ana Paula’, ’19/07/2004’,07)
° Viola a integridade referencial =>rejeitada
4. Inserir (3378, ‘Ana Paula’, ’19/07/2004’,02)
° Satisfaz as restrições => inserida

Operações versus
Restrições de Integridade
 Operação Delete
1. Remover funcionário cuja matrícula = 3478
° aceita
2. Remover tupla da tabela Cargo cujo código é 01
° Viola a integridade referencial
Opções:
° rejeitar a remoção
° propagar a remoção em “cascata” das tuplas que
referenciam aquela sendo removida
° modificar o valor do atributo de referência para “null”
ou outro específico

20
24/3/2010

Operações versus
Restrições de Integridade
 Operação Update
1. Atualizar data de admissão do funcionário cuja
matrícula = 3478
° aceita
2. Atualizar registro de Cargo cujo código é 01 para 10
° Viola a integridade referencial
Opções:
° rejeitar a atualização
° propagar a atualização em “cascata” das tuplas que
referenciam aquela sendo removida
° modificar o valor do atributo de referência para “null”
ou outro específico

Consultas

21
24/3/2010

Consulta no Modelo Relacional

 Meio estruturado de solicitar informações


armazenadas em tabelas
° possibilita extrair tuplas das mesmas, com base em
critérios
 Linguagem de Consulta: linguagem por meio da
qual os usuários realizam consultas e obtêm
informações do BD
 Linguagem SQL: Padrão para BDs Relacionais
• Independência de fabricante
• Portabilidade
• Redução de custos de treinamento

Consulta através da SQL

 Inglês estruturado de alto nível


 Permite:

° Consulta interativa
° Múltiplas visões dos dados

SELECT nome
FROM cliente
WHERE saldo > 1.000,00;

22
24/3/2010

Instruções SQL

Comando Descrição
Select Realiza consultas ao BD
Insert Realizam a Manipulação de Dados – DML
Update
Delete
Create Promovem a definição de dados – DDL
Alter
Drop
Rename
Truncate
Commit Gerenciam as mudanças feitas pelas instruções DML
Rollback
Savepoint
Grant Permitem o controle dos dados e estruturas - DCL
Revoke

Exemplos - SQL

CREATE TABLE Vendedor


(código_vendedor smallint not null unique,
nome_vendedor char(20),
salário money));

SELECT nome_vendedor, salário


FROM vendedor;

23
24/3/2010

SGBDs Relacionais

Oracle
PostGreSQL
DB2
Informix
MySQL
SQLServer

As 12 Regras de Codd

1. Toda informação num BDR é apresentada no nível


lógico por valores em tabelas/relações
2. Todo dado tem a garantia de ser logicamente
acessível
° Combinação do nome da tabela, o valor de chave e o
nome da coluna
3. Tratamento sistemático de valores nulos
4. O dicionário ou catálogo dos metadados deve ser
baseado no modelo relacional
5. O SGBD relacional deve ter uma linguagem para
definição, detalhamento e manipulação dos dados

24
24/3/2010

As 12 Regras de Codd

6. Tratamento das atualizações das visões de


dados
7. Tratamento de alto nível para inserção,
atualização e eliminação de dados
8. Independência dos dados físicos
9. Independência dos dados lógicos
10. Independência das restrições de integridade
11. Independência de distribuição
12. Não subversão das regras de integridade

Fragmento de um Estado de um BD
Relacional

25
24/3/2010

E agora? Identifique os tipos de chaves...

Entidade: ATLETA
Atributo Tipo Chave
Número_atleta Atributo de identificação ??
Número_CPF_atleta Atributo de Identificação ??
alternativo
Nome_atleta Atributo de Qualificação ??
(descritor)
Sexo_atleta Atributo de Qualificação ??
(descritor)
Olimpíada_participada Atributo de Ligação com ??
tabela Olimpíadas

Exercício – Analise o esquema abaixo

Aluno (CódigoAluno, Nome, CodigoCurso)


Curso (CodigoCurso, Nome)
Disciplina (CodigoDisciplina, Nome, Creditos,
CodigoDepartamento)
Departamento (CodigoDepartamento, Nome)
Currículo (CodigoCurso, CodigoDisciplina, Obrigatoria-
Opcional)
Conceito (CodigoAluno, CodigoDisciplina, Ano-Semestre,
NotaSemestral)

1. Identifique PKs e FKs


2. Crie tabelas, incluindo instâncias (tuplas),
verificando as chaves

26

Anda mungkin juga menyukai