Aula 1: introdução ao modelo relacional - UFMT

Propaganda
O Modelo de Dados Relacional
(Capítulo 3)
Origem do Modelo Relacional
 Este modelo foi proposto primeiramente pelo Dr.
E.F. Codd da IBM em 1970 no seguinte artigo:
"A Relational Model for Large Shared Data
Banks," Communications of the ACM, June 1970.
Este artigo causou uma verdadeira revolução na
área de banco de dados, hoje a maioria dos
SGBDs implementam tal modelo (e.g. DB2,
Oracle, Sybase, MySql, SQLServer, Access e
PostgreSQL).
2
Conceitos do Modelo Relacional
 O Modelo de Dados relacional é fundamentado no
conceito de relação matemática.
 Uma relação é um conceito matemático
fundamentado na teoria dos conjuntos.
 Atualmente os SGBDs relacionais são os mais
populares, devido a simplicidade do modelo de
dados e sua forte fundamentação matemática.
3
Definições informais
 Relação: Uma tabela de valores
– Uma relação pode ser pensada como um conjunto de linhas (tuplas)
ou, alternativamente, um conjunto de colunas que formam uma
tabela.
– Cada linha representa um fato correspondente a uma entidade ou
relação do mundo real.
– Cada linha tem um valor de um item (ou conjunto de itens) que
identifica de forma única aquela linha na tabela (chave).
– Cada coluna recebe um nome usado como identificador para o
atributo.
4
Definições Formais
 Uma relação pode ser definida de várias formas.
 O esquema da relação: R (A1, A2, .....An)
define a relação R sobre os atributos A1, A2, .....An
Por exemplo CLIENTE (Cli-id, Cli-nome, Endereço, Telefone)
Aqui, CLIENTE é uma relação definida com quatro atributos
Cli-id, Cli-nome, Endereço, Telefone, cada um dos quais tem
um domínio ou conjunto de valores válidos.
5
Sumário de definições
Termos informais
Termos formais
Tabela
Coluna
Linha
Valores de coluna
Definição da tabela
Tabela “povoada”
Relação
Atributo/domínio
Tupla
Domínio
Esquema da relação
Extensão
6
Exemplo - Figura
3.1 do livro
7
Características das Relações
 Ordem das tuplas em uma relação r(R): Não
consideramos as tuplas como estando ordenadas, embora
elas apareçam em forma tabular.
 Ordem dos atributos no esquema R (and of values
within each tuple): Os atributos são considerados
ordenados R(A1, A2, ..., An).
 Valores em uma tupla: Todos os valores são
considerados atômicos (indivisíveis). Um valor especial
chamado null é usado para representar valores que são
desconhecidos ou inaplicáveis para certas tuplas.
8
Caracterísiticas das relações
Notação:
- Para nos referir ao atributo Ai da tupla t
usamos t[Ai] = vi.
Similarmente, t[Au, Av, ..., Aw] refere-se a
subtupla de t contendo os atributos Au, Av,
..., Aw, respectivamente.
9
Restrições de integridade
relacional
 Restrições são condições que devem ser
garantidas para todas as instâncias de
relações válidas. Existem três tipos
principais de restrições:
1. Restrições de chave.
2. Restrições de entidade.
3. Restrições de integridade referencial.
10
Restrição de chave


Superchave de R: Um conjunto de atributos SK de R
such that para quaisquer tuplas distintas t1 e t2 em r(R),
t1[SK]  t2[SK].
Chave de R: Uma superchave mínima; isto é, uma
superchave K tal que a remoção de qualquer de seus
atributos resulta em um conjunto que não é superchave.
Exemplo: O esquema de relação CAR (CARRO):
CAR(State, Reg#, SerialNo, Make, Model, Year)
tem duas chaves Key1 = {State, Reg#}, Key2 = {SerialNo}, as quais
são também superchaves. {SerialNo, Make} é uma superchave,
mas não uma chave.

Se uma relação tem várias chaves candidatas uma é
escolhida arbitrariamente para ser a chave primária. Os
atributos da chave primária devem ser sublinhados na
definição do esquema.
11
Integridade de Entidade
 Esquema do banco de dados relacional: Um conjunto S
de esquemas de relações que pertencem ao mesmo banco
de dados. S é o nome do Banco de Dados.
S = {R1, R2, ..., Rn}
 Integridade de entidade: Os atributos da chave primária
de qualquer esquema de relação em S não podem ter
valores null em qualquer tupla r(R). Isto porque a chave
primária é usada para identificar tuplas individuais.
t[PK]  null para qualquer tupla em r(R)
 Nota: Na verdade essa restrição (implicita no caso de
chaves primárias) pode ser aplicada a outros atributos.
12
Integridade referencial
 Uma restrição envolvendo duas relações (As restrições
anteriores envolvem apenas uma relação).
 Usadas para especificar relacionamentos entre tuplas em
duas relações: A relação referenciadora e a relação
referenciada.
 Tuplas na relação referenciadora R1 tem atributos FK
(chamados de chave estrangeira) que referenciam atributos
da chave primária PK da relação referenciada R2. Uma
tupla t1 em R1 referencia uma tupla t2 em R2 se t1[FK] =
t2[PK].
 Podemos ilustrar uma restrição de integridade referencial
usando um arco direcionado de R1.FK to R2.PK.
13
Restrição de integridade
referencial
Os valores da chave estrangeira FK de uma
realção R1 podem ser:
(1) Um valor da chave primária da relação
referenciada R2,, or..
(2) a null.
No caso (2), a FK em R1 Não deve ser parte de sua
chave primária.
14
Outros tipos de restrições
Restrições de integridade semânticas:
- Baseada na semântica da aplicação e não
podem ser expressas pelo modelo.
- Normalmente isso é tratado nas aplicações e
em alguns casos com triggers (mais sobre
isso no futuro).
15
Exercício em classe
ESTUDANTE(RA, nome, deptCurso, dataNascimento)
Disciplina(codigo, nomeDisc, dept)
MATRÍCULA(RA, CodigoDisciplina, Semetre, Nota)
LIVRO_ADOTADO(CodigoDisc, Semestre, livro_ISBN)
LIVRO(ISBN, titulo, editora, autor)
16
Download