17/10/2008
Faculdade
INED
Curso Superior de Tecnologia:
B
Banco
d
de Dados
D d
Sistemas para Internet
Redes de Computadores
Disciplina: Banco de Dados
Prof.: Fernando Hadad Zaidan
1
Unidade 2
Imagem: BARBIERI, Carlos.
2
ARQUITETURA DE UM SISTEMA DE BANCO DE DADOS
2 1 Níveis de arquitetura.
2.1
arquitetura
2.2 Componentes e funcionamento de um SGBD.
2.3 Transações.
3
1
17/10/2008
Material usado na montagem
dos Slides
BARBIERI, Carlos. BI – Modelagem de Dados. Rio de Janeiro: Infobook,
1994.
CARVALHO, R. B. Slides da disciplina Banco de Dados I. Fumec, 2005.
ELMASRI, R.; NAVATHE, S. B. Sistemas de bancos de dados: fundamentos
p
ç
4. ed. São Paulo: Pearson Education,, 2005
e aplicações.
HEUSER, C. A. Projeto de Banco de Dados. 5a. Edição. Porto Alegre: Sagra
Luzzatto, 2004.
RAPOSO, Adriana. Apostila Banco de Dados, 2008.
SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S.
Sistema de banco de dados. Tradução da 5ª Edição. São Paulo:
Campus, 2006.
4
Usuários dos SGBDs
• O desenvolvimento, a manutenção e a utilização de um
banco de dados são executados por diferentes atores:
–
–
–
–
Administrador de dados ((AD))
Administrador de banco de dados (DBA)
Analista de sistemas
Usuário final
5
• Administrador de dados (AD):
– Define a estrutura de informação da empresa (base de
dados).
– Administra a descrição da base de dados (dicionário de
dados).
– Define padrões para codificação de objetos da base de dados
(tabelas, nomes de campos, etc.).
– Zela pelo modelo corporativo de dados.
• Administrador de Banco de Dados (DBA):
– Gerencia a base de dados instalada.
– Administra o Sistema Gerenciador de Banco de Dados.
– Modifica a estrutura de armazenamento e a organização
física.
– Fornece e controla as autorizações de acesso ao SGBD.
6
2
17/10/2008
• Analista de sistema:
– Desenvolve os sistemas que acessam bancos de
dados.
– Auxilia na definição dos dados armazenados em
bancos de dados.
• Usuário final:
– Insere, altera e/ou consulta os dados do banco de
dados ou dos sistemas que o acessam.
7
Arquitetura do sistema de banco de dados
Fonte: ELMASRI; NAVATHE, 2005
8
Níveis de Abstração do SGDB
Objetivo principal de um SGDB
Como o SGDB implementa este objetivo?
Tornar transparente para os usuários
dos dados (pessoas e aplicações) os
detalhes da implementação física dos
dados.
ATRAVÉS DE 3 NÍVEIS DE ABSTRAÇÃO:
- Nível externo
- Nível Conceitual
- Nível Interno
Níveis de Abastração
EXTERNO
CONCEITUAL
INTERNO
Descrição
Visão que cada usuário
(pessoas e/ou
programas) tem dos
dados;
Visão global dos dados
da organização;
QUAIS dados estão
armazenados?
É criada pelo DA a partir
do modelo conceitual;
Visão da estrutura física
dos dados;
COMO os dados estão
armazenados?
É criado pelo DBA;
Modelo gráfico
Prog 1
Prog 2
Prog 3
9
3
17/10/2008
Esquema de dados
O SGBD deve prover aos usuários uma visão abstrata dos dados.
Os níveis de abstração simplificam a interação do usuário com o
sistema.
• Nível Externo ou de Visão: visão de cada usuário, sejam estes
programadores ou usuários finais. Os usuários necessitam de
apenas uma parte do BD. Podem haver diferentes visões
providas pelo sistema para um mesmo BD
BD.
– Exemplo: interface com o usuário
• Nível Conceitual ou Lógico: este nível descreve QUAIS dados
são armazenados no BD e quais os relacionamentos entre eles.
– Exemplo: tipos de dados e relacionamentos
– Baseado na modelagem dos dados
• Nível Interno ou Físico: nível mais baixo, descreve COMO os
dados estão realmente armazenados.
– Exemplo: alocação de disco
10
Nível Externo
NÍVEL EXTERNO:EXEMPLO DE IMPLEMENTAÇÃO DE VISÕES PARA CADA ÁREA
Visão do Aplicativo 1
Visão Comum
(Gerencia de Benefícios)
Visão do Aplicativo 2
(Folha de Pagamento)
Empresa
Empresa
O ã
Orgão
O ã
Orgão
Empregado
Empregado
Empresa
Orgão
Empregado
Benefíicos
Salários
Salários
Benefíicos
11
Modelo Conceitual
12
4
17/10/2008
Nível Interno
4.1 – Randômica
4.2 Indexada
4.4 Aglomerada
4.5 Indice Aglomerado
4.3 Sequencial
13
Componentes e Funcionamento
de um SGBD
Um SGBD é o responsável por executar todas as ações sobre os
dados armazenados em um banco de dados.
O usuário faz uma requisição, o SGBD intercepta esta requisição,
analisa e executa as operações necessárias sobre o banco de
dados.
Um SGBD provê diversas funcionalidades para seus
diversos tipos de usuários.
14
Componentes funcionais de um
sistema de banco de dados
15
5
17/10/2008
Componente
1 SGDB
Característica
Sw que gerencia o BD;
Exemplo
2 Dicionário de dados
Banco de Dados utilizado
pelo SGDB para registro e
controle de todos os objetos
necessários ao armazenamento e acesso aos
dados;
Elemento de dado;
tabela;
programa;
usuário;
privilégios de acesso;
3 Linguagens de Definição
dos Dados (DDL)
Instruções para criar e
manter a estrutura dos dados
armazenados;
Permite definir as
características
t í ti
dos
d dados
d d
Instruções para acessar e
manipular os dados;
Procedural: QUAIS e COMO
os dados são acessados;
Não Procedural:QUAIS
dados desejo acessar;
Conjunto de programas que
integram o SGDB e
executam operações
auxiliares visando manter a
integridade e disponibilidade dos dados;
Create Table ATLETA(numatleta
char(6) not null
...............................
Pi
Primary
kkey ((num-atleta))
tl t ))
SQL:
4 Linguagens de
Manipulação dos dados
(DML)
5 Utilitários
Select nom-atleta from
ATLETA where nom-pais =
"Brasil"
Reorganização do DB;
Carga de arquivos em bath;
back-up e recovery do DB;
Geração de "log";
Auditoria do sistema;
Estatísticas de utilização;
16
Componentes funcionais de um
sistema de banco de dados
Gerenciador de arquivos Æ gerencia a alocação do espaço na
armazenagem do disco e as estruturas de dados usadas para
representar a informação armazenada no disco.
Gerenciador do banco de dados Æ fornece a interface entre
os dados de baixo nível armazenados no disco e os programas
aplicativos e de consulta submetidos ao sistema.
Processador de consultas Æ traduz os comandos numa
linguagem de consulta para instruções de baixo nível que o
gerenciador do banco de dados pode interpretar. Além disso, o
processador de consultas tenta transformar uma requisição do
usuário em uma forma compatível e mais eficiente com respeito
ao banco de dados, encontrando uma boa estratégia para a
executar a consulta.
17
Componentes funcionais de um
sistema de banco de dados
Pré-compilador da DML Æ converte comandos da DML
embutidos em um aplicativo para chamadas de procedimento
normal na linguagem. O pré-compilador precisa interagir com
o processador de consultas pra gerar o código apropriado.
Compilador da DDL Æ converte comandos da DDL em um
conjunto de tabelas contendo metadados ou "dados sobre
dados".
18
6
17/10/2008
DICIONÁRIO DE DADOS - catálogo do SGBD
Definição
Finalidade:
Banco de Dados para registro e controle de
dados do ambiente de banco de dados. Em
outras palavras, é um banco de dados
sobre dados, isto é, um repositório de
metadados. Contém, entre outros, os
seguintes objetos:
Prover uma fonte única de informações
sobre os componentes de sistemas e seus
relacionamentos.
- tabelas
- Elementos
El
t de
d D
Dados
d
- Views
- Índices
- Triggerrs
- Stored Procedures
- Sistemas
- Programas
- Usuários
- Privilégios de Acesso
- Outros
Evitar redundância não planejada e
inconsistências no desenvolvimento de
sistemas;
S
Suportar
t a implantação
i l t ã d
de padrões
d õ que
permitem melhor entendimento dos objetos
documentados;
Permitir a avaliação dos impactos de
alterações nos dados existentes;
Permitir a geração de documentação de
sistemas:
Lista de programas por aplicaçao
Lista de usuários por relatório
Lista de telas por aplicação
Lista de elementos de dados por entidade
19
Linguagens (DDL/DML)
Um esquema de banco de dados precisa de uma linguagem
para ser especificado, construído (DDL) e outra para a
manipulação dos dados (DML).
• DDL (Data Definition Language): linguagem de definição de
dados. Permite a especificação da base de dados, definindo
os arquivos,
q
, as ligações
g ç
entre arquivos,
q
, os registros
g
e as
variáveis dos registros.
Create table Funcionario ( ...)
Alter table Estoque ( ...)
20
• DML (Data Manipulation Language): linguagem de manipulação de
dados. Permite a consulta e atualização (inclusão, alteração e
exclusão) de informações da base de dados definida pela DDL. Pode
ser:
– Procedural: o usuário tem que especificar QUAL dado é
necessário e COMO obtê-lo.
– Não-procedural: o usuário não define COMO os dados serão
acessados.
• DMLs não-procedurais são mais fáceis de aprender, pois o usuário
não precisa especificar como chegar até os dados, mas apenas
quais dados deseja.
• Exemplo SQL - Selecionar os vôos com tarifa maior ou igual a 1000
SELECT voo, tarifa
FROM voo
WHERE tarifa >= 1000,00
21
7
17/10/2008
Instância e Esquemas
Esquema
Projeto geral do banco de dados (esquemas físico, lógico e
conceitual).
Descrição dos dados e relacionamentos entre eles.
• Ex: Definição das tabelas Ex: Vôo, Passageiro, Cias. Aéreas
Instância
• Coleção de informações armazenadas em um determinado
momento
• Ex: Os passageiros Jose Campos e Maria Silva, as cias.
Aéreas Air France e Varig, os vôos 147 e 455
22
Persistência de Dados
• Persistência de Dados
Os dados “persistem”, isto é, uma vez aceitos no banco de
dados, só podem ser removidos por alguma solicitação
explícita;
• Diferem de outros dados transientes, que são apenas
temporários: dados de entrada, dados de saída, resultados
intermediários, etc
23
Transação
• Unidades lógicas de processamento de bancos de
dados.
• Uma transação é uma unidade de execução de
programa composta por várias operações de banco de
d d
dados.
• Apesar de ser composta por diversas operações, uma
transação só pode ser efetivada se todas as operações
forem executadas corretamente.
24
8
17/10/2008
Transação
25
Controle de Transações
Propriedades ACID
• Atomicidade : Deve garantir que toda transação iniciada, ou
termina com sucesso ou é desfeita.
• Consistência : O banco de dados deve sair de um estado
consistente para outro estado consistente após a execução
de uma transação.
• Isolamento : A execução de uma transação não pode
interferir em outras transações executadas
concorrentemente
• Durabilidade : As transações confirmadas devem
permanecer persistentes
26
A execução de uma transação envolve os seguintes
comandos:
– BEGIN TRANSACTION
– COMMIT
– ROLLBACK
27
9
17/10/2008
Exemplo: O cliente 123, quer retirar 10.000
de sua conta para fazer um investimento.
BEGIN TRANSACTION
UPDATE conta
SET saldo_conta = saldo_conta - 10000
WHERE cod_cliente
cod cliente = 123
UPDATE investimento
SET saldo_investimento = saldo_investimento + 10000
WHERE cod_cliente = 123
COMMIT
28
SGBD - ORACLE
29
SGBD – SQL Server
30
10
17/10/2008
SGBD – FIREBIRD
(Ferramenta de administração - IBExpert)
31
SGBD - MySQL
32
Obrigado e Bons Estudos!
Estudos!
Prof.. Zaidan
Prof
Feliz aquele que transfere o que sabe
e aprende o que ensina.
Cora Coralina
33
11
Download

Unidade 2 - Fernando Zaidan