SG Definição Sistema cujo objetivo principal é gerenciar o acesso e a correta manutenção dos dados armazenados em um banco dados. Funções básicas Métodos acesso Integrida Semântica Segurança Concorrência Inpendência Funções Básicas um SG Métodos acesso L (Data Definition Language) especificação do esquema do (dados e seus tipos dados, índices,...) (Data Manipulation Language) manipulação dados (I, A, E, C) processamento eficaz consultas consira relacionamentos, predicados seleção, volume dados, índices,... exemplo: buscar professores que lecionam em turmas lotadas em salas do quarto andar 1
Alternativas Processamento Professores Turmas Salas (10 dados) (10 dados) 1 N (20 dados) N 1 andar (=4 -> 5 dados) Alternativa 1: (partindo 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 4 o andar = 20 acessos TOTAL: 200 + 200 + 20 = 420 acessos Alternativa 2: (partindo Salas) 1. Salas: filtrar as salas do 4 o 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 um SG Integrida semântica garantia dados sempre corretos com relação ao domínio 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 pós-graduação) especificação RIs testes, ações parte integrante da L 2
Funções Básicas um SG Segurança evitar violação consistência dos dados segurança acesso (usuários e aplicações) matrizes autorização visões segurança contra falhas (recovery) monitoração transações Transação» conjunto operações a serem realizadas no» princípio do tudo ou nada categorias falhas transação, sistema e meio armazenamento manutenção histórico atualizações (logs) e backups do Exemplos 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 3
Funções Básicas um SG Concorrência evitar conflitos acesso simultâneo a dados por transações (scheduler) principais técnicas bloqueio (lock) e timestamp Inpendência transparência da organização dos dados níveis inpendência Inpendência física transparência organização (esquema) física dos dados exemplos: organização dos arquivos, inxação, distribuição, agrupamento Inpendência lógica transparência do esquema lógico do exemplo: visões (vários esquemas externos) Funções Básicas um SG Níveis inpendência (níveis abstração) finem uma arquitetura três esquemas s finais Esquema Externo 1... Esquema Externo n Mapeamento externo-lógico Esquema Lógico Mapeamento lógico-físico Esquema Físico 4
SG em Detalhe SG L Acesso Meios Armazenamento SG L Acesso 5
Meios Armazenamento SG L Consultas Repositório : arquivos dados operacionais arquivos índices Meios Armazenamento SG L Catálogo do SG (metadados): especificação do esquema restrições Consultas integrida autorizações acesso visões localização arquivos configurações e estimativas 6
L Meios Armazenamento SG Exemplos configurações: - dispositivos para dados, backup e log - nro. logs - nro. máximo usuários - nro. Consultas máximo locks - tamanho buffer - tempo timeout - intervalo backup automático - tamanho logs -... L Meios Armazenamento Exemplos estimativas: - espaço ocupado do log, e backup - estimativas sobre cada arquivo dado: * número registros * número buffers utilizados Consultas * índices utilizados para acesso * tempo médio processamento transações *... SG 7
Meios Armazenamento SG L Acesso Repositório : cópias do histórico transações s do SG SG L Acesso 8
L SG Super do SG: projeto s (DA) finição do esquema dos dados finição índices finição restrições integrida, visões e autorizações acesso Consultas recuperação manual falhas (undo transações, backup do,...) monitoramento da performance acesso ao e modificação configurações do SG (aumento tamanho buffer, criação índices)... Tarefa: cria, RIs, visões ou autorizações SG comandos L L gravação Acesso criação arquivos do transação(ões) gravação 9
Tarefas: monitorar o sempenho do ; finir ou alterar configurações SG L comandos configuração/consulta Acesso gravação ou consulta transação(ões) gravação L Tarefa: recuperação manual do Acesso localização dados comandos recuperação do dados para backup undo e/ou redo transações histórico e/ou dados antigos SG gravação 10
(Desenvolvida no SG) L acesso ao através comandos Ambiente pré-compilados e embutidos no seu código SGs suportam bindings com várias LPs (LHs) exemplo: SQL Server (SQL embutido em C (ferramenta ESQL/C)):... Consultas EXEC SQL BEGIN DECLARE SECTION; integer mat; char nomeprof[30]; EXEC SQL END DECLARE SECTION;... printf( Informe matrícula: "); scanf("%i", &mat); EXEC SQL SELECT nome INTO :nomeprof FROM Professores WHERE matrícula = :mat; SG comando(s) traduzido(s) SG L Acesso transação(ões) dados gravação verificação Ris, autorizações acesso e localização dados 11
L Acesso acesso direto ao SG executa operações sem estar vinculado a uma aplicação que acessa o SG L estimativas sobre os dados Acesso plano acesso executável finição operações consulta SG comando(s) comando(s) traduzido dados transação(ões) gravação verificação RIs, autorizações acesso e localização dados 12
senvolve aplicações no próprio SG utiliza um ambiente senvolvimento: - ferramentas LP + embutida - ferramentas 4GL (linguagem integrada) Consultas exemplo: PL/SQL (Oracle) L - geradores relatórios - geradores formulários -... SG L estimativas sobre os dados Tarefa: senvolvimento aplicações Acesso comando(s) consulta plano acesso comando(s) traduzido(s) SG geração 13