aula - banco de dados, teoria e prática
DESCRIPTION
Aula Banco de Dados - Tecnologia da Informação aplicado à Ciências Contábeis.TRANSCRIPT
![Page 1: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/1.jpg)
BANCO DE DADOS – TITeoria e Prática
Prof. Jorge Cavalcante
![Page 2: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/2.jpg)
![Page 3: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/3.jpg)
![Page 4: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/4.jpg)
![Page 5: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/5.jpg)
![Page 6: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/6.jpg)
![Page 7: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/7.jpg)
“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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/8.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/9.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/10.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/11.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/12.jpg)
Um relacao
Figura: Exemplo de um relacao: ESTUDANTE.
![Page 13: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/13.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/14.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/15.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/16.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/17.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/18.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/19.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/20.jpg)
Exemplo conceitual
![Page 21: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/21.jpg)
Relacoes
(a) Cliente Particular (b) Cliente Empresa
(c) Taxi
(d) Corrida
![Page 22: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/22.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/23.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/24.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/25.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/26.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/27.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/28.jpg)
Exemplos (1)
◮ Superchaves◮ { Placa} ;◮ { Placa,Marca} ;◮ { Placa,Marca,Modelo} ;◮ { Placa, Marca, Modelo, AnoFab} .
![Page 29: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/29.jpg)
Exemplos (2)
◮ Chave:◮
{ Placa} .
![Page 30: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/30.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/31.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/32.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/33.jpg)
Integridade referencial (2)
Figura: Placa e chave primaria em TAXI e chave estrangeira emCORRIDA.
![Page 34: Aula - Banco de dados, teoria e prática](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/34.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/35.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/36.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/37.jpg)
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](https://reader033.vdocuments.com.br/reader033/viewer/2022042512/5572386ad8b42a78548b4966/html5/thumbnails/38.jpg)
Restricoes × Atualizacoes (3)
◮ Remocao◮ Pode violar restricao de integridade referencial.