Modelo Relacional
Ana Maria de Carvalho Moura
e-mail:anamaria.moura@gmail.com
LNCC – Rio de Janeiro
Sumário
¡
Modelo Relacional
lConceitos básicos
lChaves
lRestrições de Integridade
AMCM 3 Requisitos de Dados
Projeto
Conceitual
Projeto
Lógico
Projeto
Físico
Esquema Conceitual Esquema Físico Esquema Lógico Modelo do SGBD SGBD específico Não Não Sim Não/Sim Sim SimDependência nível de Projeto X SGBD
Projeto de Banco de Dados
AMCM 4
MODELO DE DADOS
Conjunto de conceitos bem definidos com base em mecanismos de abstrações, utilizados para descrever o mundo real em estruturas capazes de serem processadas por um computador.
<estrutura, operações, restrições>
Modelo de Dados
AMCM 5
MODELOS DE DADOS
–estrutura: define as regras gerais p/
especificação de estruturas de dados do
modelo;
–
operações: definem as operações possíveis
s/ a estrutura.
–
restrições: regras p/ definição de
propriedades estáticas/ dinâmicas da
aplicação, não convenientemente expressas
pelo modelo.Podem ser inerentes, explícitas
ou implícitas.
Classificação dos Modelos de Dados
¡
Primitivos: registros / arquivos
operações: read/ write sobre registros
¡Clássicos:
hierárquico, redes, relacional
nível de abstração: entre esquema físico/
lógico
¡
Semânticos
Ex: ERE,SDM,SAM,SHM +, UML, ONTOUML...
¡
R-O e Orientados a Objeto:
comportamentoAMCM 7
Categorias de Modelos de Dados
•
Modelos conceituais:representam a realidade a um nível alto de abstração. Ex: Entidades-Relacionamentos, Redes Semânticas, Modelos Semânticos
• Modelos lógicos ou de implementação:
suportam descrições de dados que possam ser processadas por computador. Ex: Hierárquico, Redes,
Relacional, R-O, OO • Modelos físicos:
descrevem como os dados são armazenados no computador através de informações como tipos de arquivos, formatos e ordenação de registros, caminhos de acesso. Ex: Sistemas de arquivos (seqüenciais indexados, diretos, invertidos)
AMCM 8
Modelo Relacional
Ø
Introduzido pelo pesquisador da IBM, Edward Codd, em
1970, gerou uma grande quantidade de pesquisa
acadêmica ao longo da década de 70.
E. Codd: A Relational Model for Large Shared Data
Banks, Communications of the ACM, 13(6), June
1970
Ø
Características marcantes: modelo
formal
por natureza,
estruturas de dados simples e uniformes.
Ø
O modelo relacional baseia-se na teoria matemática de
conjuntos, onde os dados são representados através de
uma coleção de relações ou tabelas.
AMCM 9
Objetivos do Modelo
¡Prover esquemas de fácil utilização
¡
Melhorar a independência lógica e física de
dados
¡
Prover usuários com linguagens de
manipulação de BD de alto nível, permitindo o
seu uso por usuários não experientes
¡
Otimizar o acesso ao BDs
¡
Melhorar a integridade e segurança dos dados
¡
Permitir a sua utilização em uma variedade
ampla de aplicações
¡
Prover uma abordagem metodológica para o
projeto de esquemas
Definições
¡Relação (R)
Subconjunto do produto cartesiano de
domínios.
¡
Domínio
D é um conjunto de valores atômicos, isto é, cada valor
no domínio é indivisível no modelo relacional. Um tipo de dados ou formato é também associado a cada domínio.
Exemplos: conjunto dos inteiros, dos caracteres de comprimento 20, das cores, dos brasileiros, etc.
AMCM 11
Produto cartesiano
tupla
relação
Sejam D1, D2, D3, ..., Dk os domínios dos tipos de dados de uma relação. O produto cartesiano representado por D1, X D2 X D3 X ... X Dk é o conjunto de todas as k-ênuplas (v1,v2,..., vk) onde vi ∈ Di. . Exemplo: K=2 (grau da relação) D1= { 0,1} D2= { a,b,c } D1 XD2 = { (0,a), (0,b), (0,c), (1,a), (1,b), (1,c) }
Relação: r(R) ⊆ ( dom(A1) X dom(A2) X ... X dom(An) )
Grafo de uma relação
¡ Relação Binaria R(A1,A2)
¡ Uma relação N-ária é uma
generalização da relação binária
DOM(A1) DOM(A2) DOM(A1) DOM(A2) 1 2 3 4 • • • • • a b c a b c 1 2 3 4
AMCM 13
Conceitos Básicos
Ø
Esquema de relação
R (entidade)
q
R(A
1, A
2, ..., A
n): conjunto de atributos {A
1, A
2, ...,
A
n}.
q
Atributo A
i:papel desempenhado por algum
domínio D no esquema de relação R.
q
Domínio de A
i:dom(A
i).
q
Um esquema de relação é usado para descrever
uma relação.
Exemplo:
ESTUDANTE (Nome, CPF, Tel_Res, Endereço, Tel_Trab, Idade, CR)
Conceitos Básicos - cont
¡ Instância de relação r de um esquema de relação R(A1,
A2, ..., An), denotado por r(R), é um conjunto de n-uplas r = { t1, t2, ..., tm } .
¡ Cada ênupla ou tupla é uma lista ordenada de n valores
t = { v1, v2, ..., vn }, onde cada valor vi é um elemento do domínio dom(Ai) ou um valor nulo especial. t[Ai ] refere-se ao valor vi em t para o atributo Ai
¡ São também usados os termos intensão da relação para
o esquema R e extensão da relação para uma instância r(R) da relação.
AMCM 15
ESTUDANTE
Nome CPF Tel_Res Cidade Tel_Trab Idade CR
Benjamim 305612435-20 (021)373-1616 Caxias 19 3,21 Catarina 381621245-10 (021)375-4409 Niteroi 18 2,89 Ricardo 422112320-00 Santos (021)749-1253 25 3,53 Carlos 489221110-02 (011)376-9821 São Paulo (021)749-6492 28 3,93 Barbara 533691238-11 (021)839-8461 Rio de Janeiro 19 3,25
atributos
tuplas
nome da relação
Exemplo
k (ESTUDANTE)=7
Cardinalidade da relação Estudante= 5 (n0 de tuplas)
Resumo : Create Table
¡
Criação de tabelas em SQL
CREATE TABLE <relation name>
(<attribute definition>+)
[{PRIMARY KEY | UNIQUE} (<attribute name>
+)]
¡
com :
<attribute definition> ::= <nome atributo>
<data type>
[NOT NULL [{UNIQUE | PRIMARY KEY}] ]
¡
Exemplo :
CREATE TABLE Estudante
( matricula INTEGER PRIMARY KEY nome varchar(150,
AMCM 17
Características das Relações
ØOrdem das tuplas
Uma relação é um conjunto de tuplas, onde não existe uma ordem específica para as mesmas. Todas as tuplas devem ser distintas entre si.
Ø
Ordem dos valores dentro de uma tupla
Uma tupla é uma lista ordenada de valores, assim a ordem dos valores é importante. Uma forma alternativa de definir uma relação é considerar cada tupla como um conjunto de pares ( <atributo>,
<valor> ), onde cada par representa o mapeamento entre um
atributo Ai e um valor vi do domínio dom(Ai ). Neste caso, a ordem dos atributos não importa.
Características das Relações
¡Atomicidade dos valores
Cada valor numa tupla é atômico. Em conseqüência, atributos compostos e multivalorados não são permitidos no modelo relacional. (primeira forma normal)
¡
Valor nulo (null)
Pode assumir diferentes interpretações:
“valor desconhecido”, “valor inexistente”, “atributo não aplicável”. Algumas implementações tentam incorporar essa interpretações.
AMCM 19
Chaves
¡ Super-chave(SK):sub-conjunto de atributos de um esquema de relação R
com a propriedade de que duas tuplas não tenham a mesma combinação de valores para esses atributos. Para quaisquer duas tuplas distintas t1 e t2 numa instância r da relação R,
t1 [SK] ≠ t2 [SK]
l Todo esquema de relação tem pelo menos uma super-chave: o conjunto de todos os seus atributos.
¡ Chave (K):num esquema de relação R, K é uma super-chave mínima, isto
é, uma super-chave da qual não podemos remover nenhum atributo, do contrário teríamos um conjunto de atributos não super-chave. Exemplo: {CPF} é uma chave de ESTUDANTE, e qualquer conjunto de atributos que inclua CPF, como {CPF, Nome, Idade} é uma super-chave de ESTUDANTE.
¡ Chave candidata:uma chave é determinada pelo significado dos atributos
no esquema da relação. Em geral, um esquema de relação pode ter mais de uma chave (por exemplo, Nome e CPF). Neste caso, cada uma das chaves é chamada de chave candidata.
¡ Chave primária: éuma chave escolhida dentre uma das candidatas.
AMCM 20
Chaves
¡Chave Estrangeira (FK):
Sejam 2 relações R1 e R2 . Um atributo de uma relação é dito chave estrangeira se ele não é chave primária de R1 mas é chave primária de R2 . R1 e R2 não são necessariamente distintos.
Exemplos:
Aluno
(matr , nome, periodo,
n
0.dept
)
Departamento
(
n
0.dept
, nome, chefe)
Empregado
(matr, nome,
mat_chefe
,
salário)
AMCM 21
Restrições de Integridade
Ø
Um esquema de banco de dados relacional é um
conjunto de esquemas de relação S = {R
1, R
2, ... , R
m} e
um conjunto de restrições de integridade (RI) .
Ø
Uma instância de banco de dados relacional de S é um
conjunto de instâncias de relações DBI = { r
1, r
2, ... , r
m}
tal que cada r
ié uma instância de R
ique satisfaça as
restrições especificadas em RI.
Ø
Restrições de integridade
:
q
chave, entidade, referencial, semântica
Restrições de Integridade
¡ Restrições de chave
Especificam as chaves candidatas de cada esquema de relação; valores de chaves candidatas devem ser distintos.
¡ Restrição de integridade de entidade
Nenhum valor de chave primária pode ser nulo, porque este valor identifica a tupla numa relação.
¡ Restrição de integridade referencial
• Especificada para manter a consistência entre tuplas de
duas relações. Uma tupla em uma relação que se refere a outra relação deve se referir a uma tupla existente naquela relação. A integridade referencial é especificada através do conceito de chave estrangeira (FK, “foreign
AMCM 23
Restrições de Integridade (cont)
l Se uma relação R2 inclui uma FK
correspondente a chave primária de uma relação R1 , então todo valor FK de R2 deve ser ou:
1. igual ao valor da PK em alguma tupla de R1 , isto é, t1 [FK] = t2 [PK]. Diz-se que a tupla t1
referencia ou se refere à tupla t2. .
2.totalmente nulo, isto é, cada valor do atributo que participa da FK deve ser nulo (R1 e R2 não necessariamente distintos).
AMCM 24
Restrições de Integridade
¡ Restrições de integridade semântica:
são restrições especificadas e mantidas num banco de dados relacional pelo programa de aplicação. Exemplos:
§ “o salário de um empregado não deve ser maior do que
o salário do seu supervisor”;
§ “o número máximo de horas por semana que um
empregado pode trabalhar em projetos é 40”.
§ Tais restrições usualmente necessitam ser programadas
em cada aplicação que usa o banco de dados; começam a ser mantidas automaticamente em modernos SGBDs que possuem capacidade ativa.
AMCM 25
Esquema de um BD Relacional
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept
Nome Número Gerente Data-Inicio
Num-Dept Localização
Nome Número Local Dept
CPF-Emp Num-Proj Horas
CPF-Emp Nome-Dep Sexo Data-Nasc Relacionamento
EMPREGADO DEPARTAMENTO LOCAL_DEPT PROJETO TRABALHA_EM DEPENDENTE
Um esquema de banco de dados relacional
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept
Nome Número Gerente Data-Inicio
Num-Dept Localização
Nome Número Local Dept
CPF-Emp Num-Proj Horas
EMPREGADO DEPARTAMENTO LOCAL_DEPT PROJETO TRABALHA_EM restrições de integridade referencial
AMCM 27 Uma instância de banco de dados relacional
Nome CPF Data-Nasc Endereço Sexo Salário Supervisor Dept
Nome Núm Gerente Data-Inicio
Num-Dept Localização
Nome Núm Local Ndep
CPF-Emp Num-Proj Horas
CPF-Emp Nome-Dep Sexo Data-Nasc Relacionamento
EMPREGADO DEPARTAMENTO LOCAL_DEPT PROJETO TRABALHA_EM DEPENDENTE Joao Frank Alicia Jane Ramon Joyce Ahmad James 123456789 333445555 999887777 987654321 666884444 453453453 987987987 888665555 09Jan55 08Dez45 19Jul58 20Jun31 15Set52 31Jul62 29Mar59 10Nov27 333445555 888665555 987654321 888665555 333445555 333445555 987654321 nulo Santos,SP Santos,SP Tatui,SP Lins,SP Marilia,SP Santos,SP Santos,SP Santos,SP M M F F M F M M 30000 40000 25000 43000 38000 25000 25000 55000 5 5 4 4 5 5 4 1 Pesq Adm Sede 5 4 1 333445555 987654321 888665555 22Mai88 01Jan92 19Jun91 1 4 5 5 5 Santos Campinas Lins Bauru Santos 123456789 123456789 666884444 453453453 453453453 333445555 123456789 333445555 333445555 123456789 999887777 123456789 987987987 987654321 123456789 888665555 ProdutoX ProdutoY ProdutoZ Informat. Reorgan. Beneficios 1 2 3 10 20 30 Lins Bauru Santos Campinas Santos Campinas 5 5 5 4 1 4 1 2 3 1 2 2 3 10 20 30 10 10 30 30 20 20 32,5 7,5 40,0 20,0 20,0 10,0 10,0 10,0 10,0 30,0 10,0 35,0 5,0 20,0 15,0 nulo 333445555 333445555 333445555 987654321 123456789 123456789 123456789 Alice Teo Joy Abner Miguel Alice Beth F M F M M F F 05Abr76 25Out73 03Mai48 29Fev32 01Jan78 31Dez78 05Mai57 Filha Filho Esposa Esposo Filho Filha Esposa AMCM 28
Operações de Atualização sobre Relações
Ø Inserções podem violar as três restrições de integridade: chave,
entidade e referencial. Existem duas opções quando ocorre uma violação: rejeitar a inserção ou tentar corrigir a razão da violação. Ø Deleções podem violar apenas a restrição de integridade
referencial. Existem três opções quando isto ocorre: rejeitar a deleção, tentar propagar a deleção às tuplas que referenciam a tupla sendo deletada ou modificar os valores dos atributos referenciados que causam a violação.
Ø Modificações de atributos que não são chaves primárias ou
chaves estrangeiras não causam problemas (apenas o tipo de dado e o domínio precisam ser checados). Modificar uma chave primária corresponde a deletar uma tupla e inserir outra em seu lugar. Se o valor de uma chave estrangeira é modificado, deve-se assegurar que o novo valor se refere a uma tupla existente na relação referenciada.
AMCM 29
Bibliografia - Livros
§ Elmasri, R, Navathe, S.B. Fundamentals of DatabaseSystems, Benjamin-Cummings, 3a edição, 2000.
§ RamakrishnanR., Gehrke J., Database Management Systems, Mc Grw Hill, 2nd edition, 2000.
§ Implementação de Sistemas de Bancos de Dados
Hector Garcia-Molina, Jeffrey D. Ullman,Jenifer Widom, 2000. Ed. Campus
§ Silberschatz,Korth. Database Systems Concepts, Mc Graw-Hill,2006.
§ Ullman,J. Principles of Database and Knowledge-Base Systems, vol I,II. ed Computer Science Press, 1992. § Jeff Ullman & Jennifer Widom, A First Course in Database
Systems.. Prentice-Hall, 1997
§ S. Abiteboul, R. Hull e V. Vianu, Foundations of Databases, Addison Wesley 1995
§ Chao-Chig Yang, Relational Databases Ed. Prentice Hall, 1986