38
BANCO DE DADOS TI Teoria e Prática Prof. Jorge Cavalcante

Aula - Banco de dados, teoria e prática

Embed Size (px)

DESCRIPTION

Aula Banco de Dados - Tecnologia da Informação aplicado à Ciências Contábeis.

Citation preview

Page 1: Aula - Banco de dados, teoria e prática

BANCO DE DADOS – TITeoria e Prática

Prof. Jorge Cavalcante

Page 2: Aula - Banco de dados, teoria e prática
Page 3: Aula - Banco de dados, teoria e prática
Page 4: Aula - Banco de dados, teoria e prática
Page 5: Aula - Banco de dados, teoria e prática
Page 6: Aula - Banco de dados, teoria e prática
Page 7: Aula - Banco de dados, teoria e prática

“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.”

Page 8: Aula - Banco de dados, teoria e prática

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.

Page 9: Aula - Banco de dados, teoria e prática

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.

Page 10: Aula - Banco de dados, teoria e prática

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.

Page 11: Aula - Banco de dados, teoria e prática

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.

Page 12: Aula - Banco de dados, teoria e prática

Um relacao

Figura: Exemplo de um relacao: ESTUDANTE.

Page 13: Aula - Banco de dados, teoria e prática

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.

Page 14: Aula - Banco de dados, teoria e prática

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.

Page 15: Aula - Banco de dados, teoria e prática

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.

Page 16: Aula - Banco de dados, teoria e prática

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.

Page 17: Aula - Banco de dados, teoria e prática

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 ).

Page 18: Aula - Banco de dados, teoria e prática

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 .

Page 19: Aula - Banco de dados, teoria e prática

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

Page 20: Aula - Banco de dados, teoria e prática

Exemplo conceitual

Page 21: Aula - Banco de dados, teoria e prática

Relacoes

(a) Cliente Particular (b) Cliente Empresa

(c) Taxi

(d) Corrida

Page 22: Aula - Banco de dados, teoria e prática

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.

Page 23: Aula - Banco de dados, teoria e prática

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.

Page 24: Aula - Banco de dados, teoria e prática

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.

Page 25: Aula - Banco de dados, teoria e prática

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.

Page 26: Aula - Banco de dados, teoria e prática

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

Page 27: Aula - Banco de dados, teoria e prática

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.

Page 28: Aula - Banco de dados, teoria e prática

Exemplos (1)

◮ Superchaves◮ { Placa} ;◮ { Placa,Marca} ;◮ { Placa,Marca,Modelo} ;◮ { Placa, Marca, Modelo, AnoFab} .

Page 29: Aula - Banco de dados, teoria e prática

Exemplos (2)

◮ Chave:◮

{ Placa} .

Page 30: Aula - Banco de dados, teoria e prática

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} .

Page 31: Aula - Banco de dados, teoria e prática

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.

Page 32: Aula - Banco de dados, teoria e prática

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 ].

Page 33: Aula - Banco de dados, teoria e prática

Integridade referencial (2)

Figura: Placa e chave primaria em TAXI e chave estrangeira emCORRIDA.

Page 34: Aula - Banco de dados, teoria e prática

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.

Page 35: Aula - Banco de dados, teoria e prática

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.

Page 36: Aula - Banco de dados, teoria e prática

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.

Page 37: Aula - Banco de dados, teoria e prática

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.

Page 38: Aula - Banco de dados, teoria e prática

Restricoes × Atualizacoes (3)

◮ Remocao◮ Pode violar restricao de integridade referencial.