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