Post on 06-Jun-2015
description
BANCO DE DADOS – TITeoria e Prática
Prof. Jorge Cavalcante
“Bancos de dados ou bases de dados são coleçõesorganizadas de dados que se relacionam de forma a criaralgum sentido(Informação) e dar mais eficiência durante umapesquisa ou estudo. São de vital importância para empresas,e há duas décadas se tornaram a principal peça dos sistemasde informação. Normalmente existem por vários anos semalterações em sua estrutura.
São operados pelos Sistemas Gerenciadores de Bancos deDados (SGBD), que surgiram na década de 70. Antes destes,as aplicações usavam sistemas de arquivos do sistemaoperacional para armazenar suas informações. Na década de80 a tecnologia de SGBD relacional passou a dominar omercado, e atualmente utiliza-se praticamente apenas ele.Outro tipo notável é o SGBD Orientado a Objetos, paraquando sua estrutura ou as aplicações que o utilizam mudamconstantemente.
A principal aplicação de Banco de Dados é controle deoperações empresariais. Outra aplicação também importanteé gerenciamento de informações de estudos, como fazem osBancos de Dados Geográficos, que unem informaçõesconvencionais com espaciais.”
Modelo relacional (1)
▪ ◮ Baseado no conceito de Relacao.
▪ ◮ Uma Relacao e um conceito matematico baseado na ideia de conjunto.
▪ ◮ O ponto forte da abordagem relacional e o fundamento formal dado pela
teoria das relacoes.
Modelo relacional (2)
▪ ◮ Proposto por E. F. Codd (IBM) em 1970: A Relational Model for Large
Shared Data Banks, Communications of the ACM, June 1970.
▪ ◮ ACM Turing Award.
▪ ◮ Num modelo relacional as estruturas sao tabelas (relacoes).
▪ ◮ Pode conter restricoes: de integridade, de domınio, deentidade e
referencial.
▪ ◮ As operacoes sao baseadas em algebra relacional.
Conceito
▪ ◮ Um banco de dados estruturado de acordo com o modelo relacional corresponde a
uma colecao de relacoes.
▪ ◮ Informalmente, uma relacao e uma tabela na qual cada linha expressa ema colecao de
dados relacionados, cujos valores podem ser interpretados como um fato que descreve uma
entidade ou um relacionamento.
Terminologia
▪ ◮ As linhas de uma relacao, ou tabela, sao chamadas de TUPLAS.
▪ ◮ O cabecalho das colunas representa ATRIBUTOS.
▪ ◮ O conjunto de valores que podem aparecer em cada coluna e chamado
de DOMINIO.
Um relacao
Figura: Exemplo de um relacao: ESTUDANTE.
Esquema de relacao
▪ ◮ E uma expressao da forma: R(A1,A2, ..., An) onde:▪ ◮ R – e o nome de uma relacao;
▪ ◮ Ai – e o nome de um atributo que representa um papel de umdomınio D em R – dom(Ai );
▪ ◮ n – e o grau da relacao.
Instancia de uma relacao (1)
◮ A instancia de uma relacao r(R) e um conjunto de n-tuplas r = { t1, t2, . . . , tn}
onde cada n-tupla t e uma lista de n valores t = hv1, v2, . . . , vni .
◮ Cada vi e um elemento do dom(Ai).
◮ Um valor especial null ou nulo e usado para representar valores
desconhecidos ou inaplicaveis a certas tuplas.
Instancia de uma relacao (1)
◮ Formalmente, r(R) ⊂ (dom(A1)×dom(A2)× . . .×dom(An)).
◮ Um subconjunto do produto cartesiano dos domınios de
atributos, que representam fatos do mundo real.
Caracterısticas de uma relacao
◮ As tuplas de uma relacao nao sao ordenadas.
◮ Uma tupla e uma lista ordenada de valores, portanto, a ordem dos valores em
uma tupla, e consequentemente, dos atributos na definicao de um esquema de
relacao e importante.
◮ Valor de cada atributo em uma tupla e atomico.
◮ Um esquema de relacao pode ser interpretado como uma declaracao, ou seja,
uma tupla satisfaz ou nao uma relacao.
Esquema de um BD relacional (1)
▪ ◮ Um esquema de BD relacional S define um conjunto deesquemas relacao R = {R1,
R2, . . . , Rn} e um conjunto de restricoes de integridade I .
▪ ◮ Portanto S = (R, I ).
Esquema de um BD relacional (1)
◮ Uma instancia B de S e um conjunto de relacoesB = { r1, r2, ...rn} , tal que, cada ri e uma instancia de Ri e satisfazem as restricoes
de integridade especificadas em I .
Relacao – Visao formal
Termos informais Termos formais
Tabela Relação
Coluna Atributo/Domí nio
Linha Tupla
Valores em uma coluna Dom ınio
Definiç ã oda tabela Esquema da relaç ã o
Tabela populada Extensão
Exemplo conceitual
Relacoes
(a) Cliente Particular (b) Cliente Empresa
(c) Taxi
(d) Corrida
Restricoes de integridade
▪ ◮ Restricoes sao condicoes que devem ser validas para todas as instancias de relacoes▪ ◮ Restricao de chave;
▪ ◮ Restricao de domınio;
▪ ◮ Restricao de integridade de entidade;
▪ ◮ Restricao de integridade referencial.
Restricoes de domınio
◮ Especificam que o valor de cada atributo A de uma relacao
deve ser um valor atomico do dom(A).
◮ Exemplo: CPF tem um domınio de 11 numeros.
Restricoes de chave (1)
◮ Superchave: subconjunto de atributos de um esquema R com
a propriedade de que duas tuplas, em qualquer estado de
relacao r ∈R, nao tenham as mesmas combinacoes de valores
para esses atributos.
Restricoes de chave (2)
▪ ◮ T1[SK ]6= T2[SK ];
▪ ◮ SK e um subconjunto de atributos;
▪ ◮ Uma superchave especifica uma restricao de unicidade;
▪ ◮ Superchave pode conter atributos redundantes.
Restricoes de chave (3)
▪ ◮ Chave: uma chave K e uma superchave com a propriedade adicional de, ao
remover qualquer atributo A de K , o conjunto de atributos K ′ restante nao e mais
superchave de R.
▪ ◮ Em geral, um esquema de relacao pode ter mais de uma
▪ chave.
▪ ◮ Cada uma e chamada de
▪ ◮ chave candidata.
▪ ◮ Uma delas e indicada como
▪ ◮ chave primaria
Restricoes de chave (4)
◮ Duas tuplas distintas, em qualquer estado, nao podem ter
valores identicos para (todos) os atributos chave.
◮ Um chave e uma superchave mınima.
(a) Superchave (b) Chave = superchave-minimal.
Exemplos (1)
◮ Superchaves◮ { Placa} ;◮ { Placa,Marca} ;◮ { Placa,Marca,Modelo} ;◮ { Placa, Marca, Modelo, AnoFab} .
Exemplos (2)
◮ Chave:◮
{ Placa} .
Integridade de entidade (1)
◮ Esquema de um banco de dados relacional: conjunto S de
relacoes que pertencem ao mesmo banco de dados.
◮ S e o nome do banco de dados
S = {R1, R2, ..., Rn} .
Integridade de entidade (2)
◮ Integridade de Entidade: os atributos que sao chave primaria PK de cada relacao R
em S nao podem ter valores nulos em nenhuma tupla de r(R).
◮ Motivo: os valores de chaves primarias sao usados para identificar tuplas t [PK
]6= NULO para toda ∀t ∈ r(R).
◮ Outros atributos de R podem ter restricao similar, mesmo nao sendo chave primaria.
Integridade referencial (1)
▪ ◮ Usado para especificar um relacionamento entre tuplas em duas relacoes.
▪ ◮ Relacao que referencia uma outra relacao / relacao que e referenciada por outra
relacao.
▪ ◮ Tuplas em uma relacao R1 tem atributos FK (chave estrangeira) que referencia
atributos chave primaria PK de uma outra relacao R2.
▪ ◮ Uma tupla t1 ∈R1 aponta para uma tupla t2∈R2 se
▪ t1[FK ] = t2[PK ].
Integridade referencial (2)
Figura: Placa e chave primaria em TAXI e chave estrangeira emCORRIDA.
Restricao de integridade referencial
▪ ◮ Os atributos FK de R1 tem o mesmo domınio que os atributos PK de R2.
▪ ◮ O valor de uma chave estrangeira FK de uma relacao R1 pode ser
▪ ◮ Um valor de uma chave primaria existente em uma outra relacao R2;
▪ ◮ Um nulo.
▪ ◮ No segundo caso, FK em R1 nao deve fazer parte da chave primaria de R1.
Outras restricoes
▪ ◮ Integridade semantica
▪ ◮ Baseada na semantica da aplicacao;
▪ ◮ Nao pode ser expressa no modelo em si;
▪ ◮ Exemplo: numero maximo de horas trabalhadas por um empregado naopode ultrapassar 40 horas por semana.
Restricoes × Atualizacoes (1)
▪ ◮ Insercao/Modificacao/Delecao.
▪ ◮ Restricoes de integridade nao podem ser violadas por operacoes de atualizacao.
▪ ◮ Atualizacoes podem ser propagadas, em cascata, automaticamente para respeitar as
restricoes de integridade.
Restricoes × Atualizacoes (2)
▪ ◮ Insercao
▪ ◮ Insercao de tupla com chave ja existente: viola restricao de chave;▪ ◮ Insercao de tupla com chave nula: viola restricao de integridade de entidade;
▪ ◮ Insercao de tupla com chave estrangeira invalida: viola restricao de integridadereferencial.
Restricoes × Atualizacoes (3)
◮ Remocao◮ Pode violar restricao de integridade referencial.