46 Kb

Propaganda
Introdução a Banco de Dados
Prof. Mário A. Nascimento, Ph.D.
[email protected]
http://www.dcc.unicamp.br/~mario
Material de autoria original de Raghu Ramakrishnan.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
1
Bibliografia
❖
Ramakrishnan R., Database Management
Systems, WCB McGraw-Hill, 1998.
❖
Elmasri, R. & Navathe, S., Fundamentals of
Database Systems, Benjamin/Cummings, 1994,
2nd Ed.
❖
Korth, H.F.& Silberschatz, A., Sistemas de Banco
de Dados, Makron do Brasil, 1995, 2a Ed.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
2
1
Introdução
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
3
O que é um SGBD?
❖
❖
Uma grande coleção integrada de dados.
Modelos do mundo real (enterprise)
– Entidades ( ex. estudantes, cursos)
– Relacionamentos (ex., Madonna está tendo
CS564)
❖
Um Sistema de Gerenciamento de Banco de
Dados (SGBD) é um pacote de software
designado para guardar e gerenciar banco de
dados.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
4
2
Porque usar um SGBD?
❖
❖
❖
❖
❖
Acesso independente e eficiente a dados.
Redução no tempo de desenvolvimento da
aplicação.
Integridade e segurança dos dados.
Administração uniforme dos dados.
Acesso concorrente, recuperação de
“crashes”.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
5
Porque estudar Banco de Dados ?
❖
Mudança da computação para a informação.
– Em uma ponta: webspace (confuso !)
– Na outra ponta: aplicações científicas
❖
Conjuntos de dados aumentando em
diversividade e volume. .
– Bibliotecas digitais, videos interativos, Projeto de
Genoma Humano, projeto EOS, ...
– Necessidade de SGBD cada vez maior
❖
SGBD permeia a maior parte da Computação.
– SOs, linguagens, teoria, IA, multimidia ...
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
6
3
Modelos de Dados
❖
❖
❖
Um modelo de dados é uma coleção de
conceitos para descrever dados.
Um esquema é uma descrição de uma coleção
particular de dados , usando algum modelo
de dados.
O modelo de dado relacional é o modelo mais
usado hoje.
– Principal conceito: relação, basicamente uma tabela
com linhas e colunas.
– Toda relação tem um esquema, que descreve as
colunas, ou campos.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
7
Níveis de Abstrações
❖
Muitas visões simples,
esquema conceitual (lógico)e
esquema físico .
– Visões descreve como
usuários vêem o dado.
– Esquema conceitual define
estrutura lógica.
– Esquema físico descreve o
arquivo e indices usados.
Visão 1
...
Visão N
Esquema Conceitual
Esquema Físico
☛ Esquemas são definidos usando uma DDL; Dados são modificados /
consultados usando uma DML.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
8
4
Ex.: Banco de Dados de uma Escola
❖
Esquema conceitual:
– Students(sid: string, name: string, login: string,
age: integer, gpa:real)
– Courses(cid: string, cname:string, credits:integer)
– Enrolled(sid:string, cid:string, grade:string)
❖ Esquema Físico:
– Relações guardadas como arquivos desordenados.
– Índices na primeira colunas de estudantes.
❖
Esquema externo (Visão):
– Course_info(cid:string,enrollment:integer)
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
9
Independência de Dados
❖
❖
❖
Aplicações isoladas da maneira que os dados são
estruturados e armazenados .
Independência lógica de dados Proteção de
mudanças na estrutura lógica de dados.
Independência física de dados Proteção de
mudanças na estrutura física de dados.
☛ Um dos mais importantes benefícios de usar um SGBD!
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
10
5
Controle da Concorrência.
❖
Execução da concorrência de processos é
essencial para uma boa performance do SGBD.
– Acessos a discos são frequentes e lentos, é
importante deixar a CPU alocada a diversos
processos concorrentemente.
❖
❖
Executar ações de diferentes processos pode
levar a contradições: p.ex., o cheque
compensado enquanto o saldo é computado.
O SGBD evita tais problemas: usuários podem
fingir que estão usando um sistema único.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
11
Transação: Execução de um programa de BD
❖
❖
O conceito chave é transação, uma seqüência
atomica de ações no BD (leituras/gravações).
Cada transação, executada completamente, deve
deixar o BD num estado consistente (se o BD é
consistente quando a transação começa).
– Usuários podem especificar algumas restrições de
integridade, e o SGBD reforçará estas restrições.
– O SGBD não entende a semântica dos dados.
– Assim, assegurar que a transação preserve a
consistência é definitivamente de responsabilidade do
usuário !
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
12
6
Escalonando Transações Concorrentes
❖
SGBD garante que a execução de {T1, ... , Tn} é
equivalente a alguma execução em série T1’ ...Tn’.
– Antes de ler/escrever um objeto, uma transação requer
um lock neste objecto, e espera até o SGBD retornar o
lock. Todos os locks são liberados no final da transação.
(protocolo 2PL estrito.)
– Idéia: Se uma ação de Ti, escrevendo X, afeta Tj, que lê X,
um deles, digamos Ti, obterá o lock em X primeiro e Tj
é forçado a esperar até Ti completar; isto efetivamente
ordena as transações.
– E se Tj já tem um lock em Ye Ti mais tarde requer um
lock em Y? (Deadlock!) Ti ou Tj é abortada e reiniciada.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
13
Assegurando Atomicidade
❖
❖
SGBD assegura atomicidade (tudo ou nada) sempre.
Idéia: Construir um log (história) de todas ações
realizadas pelo SGBD.
– Antes de uma mudança ser feita no BD, a entrada do log
correspondente é forçada para um lugar seguro (WAL).
– Depois de um crash, os efeitos das transações
parcialmentes executadas são desfeitos (undone) usando
o log. (Devido ao WAL, se a entrada do log não foi salva
antes do crash, a mudança correspondente não foi
aplicada para o banco de dados !)
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
14
7
O Log
❖
As seguintes ações estão arquivadas no log:
– Ti escreve um objeto: valor anterior e novo.
◆
Registro de log deve ser gravado antes de da mudança efetiva.!
– Ti commits/aborts: um registro no log indicando tal ação.
❖
❖
❖
Registros no log são ligado por ids de transação,
assim é fácil para desfazer uma específica transação.
Log é “seguro” e frequentemente duplicado.
Todas atividades relacionadas ao log (e de fato,
todas atividades relacionadas a CC) são gerenciadas
transparentemente pelo SGBD.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
15
BDs fazem estas pessoas felizes...
❖
❖
❖
Usuários e “fabricantes”de BDs
Programadores de aplicações em BD
Administrador de BD (DBA)
– Projeta esquema logico e físico
– Gerencia segurança e autorizações
– Disponibilidades de dados, recuperação de
desastres (crashes)
– “Acerto” do BD com o passar do tempo
Tem que entender como um SGDB funciona !
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
16
8
Estrutura de um SGBD
❖
❖
❖
Um típico SGBD tem
um arquitetura de
camadas
A figura não mostra CC
e componentes de
recuperação.
Esta é uma das
possíveis deferentes
arquiteturas: cada
sistema tem sua própria
variação.
Otimização e execução
de consultas
Operadores relacionais
Arquivos e índices
Gerenciamento de buffers
Gerenciamento do disco
BD
Estas camadas
tem que considerar CC e recuperação
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
17
Resumo
❖
❖
❖
❖
❖
❖
SGBD usados para preservar, consultar grande
conjuntos de dados.
Benefícios: recuperação de crashes, acesso
concorrente, agilidade no desenvolvimento,
integridade e segurança dos dados, etc.
Níveis de abstração independentes dos dados .
Um SGBD típico tem uma arquitetura de
camadas.
Bons DBAs podem ganhar bem !
Bastante P&D já feita e a ser feita.
Database Management Systems, R. Ramakrishnan
(tradução, autorizada, de Anna & Mario Nascimento)
18
9
Download