SGBD Funções Básicas de um SGBD

Propaganda
SGBD
• Definição
“Sistema cujo objetivo principal é gerenciar o
acesso e a correta manutenção dos dados
armazenados em um banco de dados.”
• Funções básicas
– Métodos de acesso
– Integridade Semântica
– Segurança
– Concorrência
– Independência
Funções Básicas de um SGBD
•
Métodos de acesso
– DDL (Data Definition Language)
•
especificação do esquema do BD (dados e seus
tipos de dados, índices, ...)
– DML (Data Manipulation Language)
•
manipulação de dados (I, A, E, C)
– processamento eficaz de consultas
•
considera relacionamentos, predicados de
seleção, volume de dados, índices, ...
– exemplo: buscar professores que lecionam em turmas
lotadas em salas do quarto andar
1
Alternativas de Processamento
Professores
(10 dados)
1
N
Turmas
(20 dados)
N
1
Salas (10 dados)
andar (=4 -> 5 dados)
Alternativa 1: (partindo de Professores)
1. Profs – Turmas: 10x20 acessos (pior caso!) para associar os profs
às suas turmas = 200 acessos (resultado: 20 dados)
2. Profs com Turmas – Salas: 20x10 acessos (pior caso!) para associar
as turmas com seus profs às suas salas = 200 acessos (resultado: 20 dados)
3. Profs com Turmas com Salas: filtrar as salas do 4o andar = 20 acessos
TOTAL: 200 + 200 + 20 = 420 acessos
Alternativa 2: (partindo de Salas)
1. Salas: filtrar as salas do 4o andar = 10 acessos (resultado: 5 dados)
2. Salas – Turmas: 5x20 acessos (pior caso!) para associar as salas com
as suas turmas = 100 acessos (resultado: 6 dados – supor algumas turmas)
3. Salas com Turmas – Profs: 6x10 acessos (pior caso!) para associar as
turmas aos seus profs = 60 acessos
TOTAL: 10 + 100 + 60 = 170 acessos
Funções Básicas de um SGBD
• Integridade semântica
– garantia de dados sempre corretos com
relação ao domínio de aplicação
– exemplos
• estados válidos para os dados (I sexo; A salário)
• relacionamentos válidos entre os dados
(turma N:1 disciplina; apenas professores doutores
lecionam disciplinas de pós-graduação)
– especificação de RIs
• testes, ações
• parte integrante da DDL
2
Funções Básicas de um SGBD
• Segurança
– evitar violação de consistência dos dados
– segurança de acesso (usuários e aplicações)
• matrizes de autorização
• visões
– segurança contra falhas (recovery)
• monitoração de transações
– Transação
» conjunto de operações a serem realizadas no BD
» princípio do “tudo ou nada”
• categorias de falhas
– transação, sistema e meio de armazenamento
• manutenção de histórico de atualizações (logs) e
backups do BD
Exemplos de Registros Históricos
Transação (transferência bancária)
begin transaction
update Contas
set saldo = saldo – 50.00
where número = 100
update Contas
set saldo = saldo + 50.00
where número = 200
commit transaction
...
<begin transaction T256>
...
<T256,update,Contas,100,
500.00,450,00>
...
<T256,update,Contas,200,
350.00,400,00>
...
<end transaction T256>
...
Arquivo de Log
3
Funções Básicas de um SGBD
• Concorrência
– evitar conflitos de acesso simultâneo a dados por
transações (scheduler)
– principais técnicas
• bloqueio (lock) e timestamp
• Independência
– transparência da organização dos dados
– níveis de independência
• Independência física
– transparência de organização (esquema) física dos dados
– exemplos: organização dos arquivos, indexação,
distribuição, agrupamento
• Independência lógica
– transparência do esquema lógico do BD
– exemplo: visões (vários esquemas externos)
Funções Básicas de um SGBD
• Níveis de independência (níveis de abstração)
– definem uma arquitetura de três esquemas
Usuários finais
...
Esquema Externo 1
Esquema Externo n
Mapeamento externo-lógico
Esquema Lógico
Mapeamento lógico-físico
Esquema Físico
BD
4
SGBD em Detalhe
Aplicação
Externa
DBA
Usuário
ad hoc
Interface
DML ad hoc
Ambiente de
Administração
Tradutor
Comandos
Privilegiados
SGBD
Ambiente de
Desenvolvimento
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
Programador
Processador
run-time
Gerenciador
de
Transações
Log
Backup
BD
DD
Código da
Aplicação
Meios de Armazenamento
Aplicação
Externa
DBA
Usuário
ad hoc
Interface
DML ad hoc
Ambiente de
Administração
Tradutor
Comandos
Privilegiados
DD
SGBD
Ambiente de
Desenvolvimento
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
Programador
Processador
run-time
BD
Código da
Aplicação
Gerenciador
de
Transações
Log
Backup
5
Meios de Armazenamento
Aplicação
Externa
DBA
Programador
SGBD
Interface
DML ad hoc
Ambiente de
Administração
Tradutor
DDL
Usuário
ad hoc
Ambiente de
Desenvolvimento
Tradutor
DML
Otimizador
de Consultas
Repositório de:
Tradutor
Comandos
Privilegiados
• arquivos de dados operacionais
• arquivos de índices
Processador
run-time
Gerenciador
de
Transações
Log
Backup
BD
DD
Código da
Aplicação
Meios de Armazenamento
Aplicação
Externa
DBA
Ambiente de
Administração
Tradutor
DDL
Usuário
ad hoc
Interface
DML ad hoc
Programador
SGBD
Ambiente de
Desenvolvimento
Catálogo do SGBD (metadados):
• especificação
Otimizador do esquemaTradutor
ProcessadorDML
• restrições
de integridade
de Consultas
run-time
• autorizações de acesso
Tradutor• visões
Comandos
Processador
• localização de arquivos
do BD
Privilegiados
run-time
• configurações e estimativas
DD
BD
Código da
Aplicação
Gerenciador
de
Transações
Log
Backup
6
Meios de Armazenamento
Aplicação
Externa
DBA
Usuário
ad hoc
Programador
SGBD
Interface
DML ad hoc
Ambiente de
Administração
Ambiente de
Desenvolvimento
Exemplos de configurações:
-dispositivos para dados, backup e log
Tradutor
DDL
Código da
Aplicação
Tradutor
- Otimizador
tamanho logs
- nro. máximo de usuários
de
Consultas
DML
- nro. máximo de locks
- tamanho de buffer
- intervalo backup automático
Tradutor -tempo timeout
Gerenciador
...
Comandos
de
Processador
Privilegiados
Transações
run-time
Log
Backup
BD
DD
Meios de Armazenamento
Aplicação
Externa
DBA
Ambiente de
Administração
Tradutor
DDL
Usuário
ad hoc
Programador
SGBD
Interface
Ambiente de
Exemplos de estimativas:
DML ad hoc
Desenvolvimento
- espaço ocupado do log, BD e backup
- estimativas sobre cada arquivo de dado:
Código da
* número de registros
Aplicação
Tradutor
Otimizador
* número de valores distintos para cada campo
de Consultas
DML
* índices utilizados para acesso
Tradutor * tempo médio de processamento de transaçõesGerenciador
Comandos* . . .
de
Processador
Privilegiados
DD
run-time
BD
Transações
Log
Backup
7
Meios de Armazenamento
Aplicação
Externa
DBA
Usuário
ad hoc
Interface
DML ad hoc
Ambiente de
Administração
Tradutor
Comandos
Privilegiados
SGBD
Ambiente de
Desenvolvimento
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
Programador
Código da
Aplicação
Gerenciador
Repositório de:
de
Processador
• cópias do BD
Transações
run-time
• histórico de transações
Log
Backup
BD
DD
Usuários do SGBD
Aplicação
Externa
DBA
Usuário
ad hoc
Interface
DML ad hoc
Ambiente de
Administração
Tradutor
Comandos
Privilegiados
DD
SGBD
Ambiente de
Desenvolvimento
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
Programador
Processador
run-time
BD
Código da
Aplicação
Gerenciador
de
Transações
Log
Backup
8
DBA
Aplicação
Externa
DBA
Usuário
ad hoc
Programador
SGBD
SuperUsuário doInterface
SGBD:
Ambiente de
• projeto de BDsDML
(DA)
ad hoc
Desenvolvimento
• definição do esquema dos dados
• definição de índices
Código da
• definição de restrições de integridade, visões
Aplicação
Otimizador de acesso Tradutor
e autorizações
de Consultas
DML
• recuperação manual de falhas (undo transações,
Tradutorbackup do BD, ...)
Gerenciador
• monitoramento da performance
de acesso ao BD e de
Comandos
Processador
Privilegiados
modificação de configurações
do SGBD
Transações
run-time
(aumento tamanho buffer, criação índices)
• ...
Ambiente de
Administração
Tradutor
DDL
Log
Backup
BD
DD
DBA
Usuário
Aplicação
DBA
Tarefa: definir BD, RIs,
visões ou autorizações
Ambiente de
Administração
instruções DDL
Programador
ad hoc central
Módulo
do SGBD:
• controle de acesso físico
• principais responsabilidades:
SGBD
Interface
• gerência de
arquivos
Ambiente
de
DML ad •hoc
gerênciaDesenvolvimento
de buffers
• notificação de falhas ao
Gerenciador de Transações Código da
Tradutor
DDL
Tradutor instruções internas
Comandos
Privilegiados
DD
gravação
do esquema
do BD
Aplicação
Tradutor
DML
transação(ões)
Otimizador
de Acesso
Processador
run-time
criação ou
modificação
de arquivos
do BD
BD
Gerenciador
de
Transações
gravação
Log
Backup
9
DBA
Usuário
ad hoc
Aplicação
DBA
Programador
Tarefas: monitorar o desempenho do BD;
definir ou alterar configurações
instruções de
configuração/consulta
Otimizador
de Acesso
Tradutor
DDL
SGBD
Interface
DML ad hoc
Ambiente de
Administração
Tradutor
Comandos
Privilegiados
Ambiente de
Desenvolvimento
Código da
Aplicação
Tradutor
DML
transação(ões)
instruções internas
Gerenciador
de
Transações
Processador
run-time
gravação
gravação ou
consulta
Log
Backup
BD
DD
DBA
Usuário
ad hoc
Aplicação
DBA
Programador
Tarefa: recuperação manual do BD
Interface
DML ad hoc
Ambiente de
Administração
SGBD
Ambiente de
Desenvolvimento
instruções de recuperação do BD
Tradutor
DDL
dados para backup
Tradutor
Comandos
Privilegiados
Processador
run-time
dados
localização de
dados
DD
Código da
Aplicação
Tradutor
DML
Otimizador
de Acesso
BD
undo e/ou
redo de
transações
Gerenciador
de
Transações
histórico e/ou
dados backup
gravação
Log
Backup
10
Aplicação (Desenvolvida no SGBD)
Ambiente de
Administração
Tradutor
DDL
Usuário
ad hoc
Aplicação
DBA
Programador
SGBD
Interface
• acesso ao BD através
de comandosAmbiente
DML de
DML ad hoc
pré-compilados e embutidos no seuDesenvolvimento
código
• SGBDs suportam bindings com várias LPs (LHs)
• exemplo: SQL Server (SQL embutido em C
Tradutor
Otimizador
(ferramenta
ESQL/C)):
de Consultas
DML
...
EXEC SQL BEGIN DECLARE SECTION;
Tradutor
integer mat;
Comandos
char nomeProf[30]; Processador
Privilegiados
EXEC SQL END DECLARE SECTION;
run-time
...
printf(“Informe matrícula: ");
scanf("%i", &mat);
EXEC SQL SELECT nome INTO :nomeProf
FROM Professores
BD
DD
WHERE matrícula = :mat;
Código da
Aplicação
Gerenciador
de
Transações
Log
Backup
Aplicação
Aplicação
DBA
instrução(ões)
Ambiente de DML traduzida(s)
Administração
Usuário
ad hoc
Interface
DML ad hoc
Tradutor
Comandos
Privilegiados
SGBD
Ambiente de
Desenvolvimento
transação(ões)
Processador
run-time
dados
DD
verificação de Ris,
autorizações de acesso
e localização de dados
Código da
Aplicação
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
Programador
BD
Gerenciador
de
Transações
gravação
Log
Backup
11
Usuário ad hoc
Aplicação
DBA
Usuário
ad hoc
• acesso direto ao SGBD SGBD
Ambiente de
•Desenvolvimento
executa operações DML sem
estar vinculado a uma aplicação
que acessa o BD
Interface
DML ad hoc
Ambiente de
Administração
Código da
Aplicação
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
Programador
Tradutor
Comandos
Privilegiados
Gerenciador
de
Transações
Processador
run-time
Log
Backup
BD
DD
Usuário ad hoc
Aplicação
DBA
Usuário
ad hoc
Programador
definição de operações
SGBD
Interface
DML ad hoc
Ambiente de
Administração
Ambiente de
Desenvolvimento
Instrução(ões) DML
consulta
Tradutor
DML
Otimizador
de Acesso
Tradutor
DDL
plano de acesso
Tradutor
Comandosexecutável
Privilegiados
estimativas sobre
os dados
estimativas
verificação de RIs,
autorizações de acesso
e localização de dados
Gerenciador
de
Transações
Processador
run-time
transação(ões)
dados
DD
Código da
Aplicação
instrução(ões)
DML
traduzido
BD
gravação
Log
Backup
12
Programador
Usuário
ad hoc
Aplicação
DBA
Programador
SGBD
Interface
DML ad hoc
Ambiente de
Administração
Ambiente de
Desenvolvimento
• desenvolve aplicações no próprio SGBD
• utiliza um ambiente de desenvolvimento:
- ferramentas LP + DML embutida
Tradutor
Otimizador
- ferramentas 4GL
(linguagem integrada)DML
de Consultas
exemplo: PL/SQL (Oracle)
Tradutor
DDL - geradores
Tradutorde relatórios
Comandos
- geradores
de formulários
Processador
- . .Privilegiados
.
run-time
Gerenciador
de
Transações
Log
Backup
BD
DD
Código da
Aplicação
Programador
Usuário
Programador
ad hoc
Tarefa: desenvolvimento de aplicações
Aplicação
DBA
SGBD
Interface
DML ad hoc
Ambiente de
Administração
Ambiente de
Desenvolvimento
geração
Instrução(ões) DML
Otimizador
de Acesso
Tradutor
DDL
Tradutor
Comandos
Privilegiados
consulta
instrução(ões)
DML
Tradutor
traduzida(s)
DML
plano de
acesso
estimativas
Processador
run-time
Código da
Aplicação
Gerenciador
de
Transações
estimativas sobre
os dados
DD
BD
Log
Backup
13
Download