MATA60 – BANCO DE DADOS Aula 2- Sistema Gerenciador de Banco de Dados Prof. Daniela Barreiro Claro Agenda SGBD Visão Geral Componentes Vantagens Arquitetura de um SGBD FORMAS - UFBA 2 de X SGBD Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que habilitam usuários a criar e manter um banco de dados. O SGBD é um software de propósito geral, que facilita o processo de definição, construção e manipulação de um banco de dados. O grande objetivo de um SGBD é oferecer uma visão “abstrata” dos dados, com disponibilidade eficiente, aos usuários. FORMAS - UFBA 3 de X SGBD FORMAS - UFBA 4 de X SGBD FORMAS - UFBA Fonte: Notas de aulas do Prof. Clodis Bocarioli 5 de X SGBD – Processador de Consultas Compilador DML Pré-compilador para comandos DML inseridos em programas de aplicação: Convertem comandos DML em chamadas de procedimentos normais da linguagem hospedeira. Interpretador DDL Traduz comandos DML em instruções de baixo nível, entendidos pelo componente de execução de consultas. Além disso, otimiza a solicitação do usuário. Interpreta os comandos DDL e os registra no dicionário de dados. Componentes de execução das consultas Executa instruções de baixo nível gerada pelo compilador DML. 6 de X SGBD – Gerenciador de Memória Um dos principais objetivos de um Sistema de Banco de Dados é simplificar e otimizar o acesso aos dados. O desempenho de um SGBD depende diretamente da eficiência das estruturas usadas na representação dos dados e do quanto este sistema está apto a operar essas estruturas de dados Um dos principais módulos de um SGBD é o gerenciador de memória, responsável por fazer a interface entre o armazenamento de dados em um nível mais baixo e as consultas e programas de aplicação submetidos ao sistema. Ele também realiza a interface do SGBD com o Sistema de Arquivos do Sistema Operacional. FORMAS - UFBA 7 de X SGBD – Gerenciador de Memória Gerenciamento de autorizações e integridade Gerenciamento de Transações Cuida da execução das transações. Administração de buffer Testam o cumprimento das regras de integridade e a permissão ao usuário no acesso ao dado. Responsável pela intermediação de dados do disco para a memória principal e pela decisão de quais dados colocar em memória auxiliar. Administração de arquivos: Gerencia a alocação de espaço no armazenamento em disco e as estruturas de dados usadas para representar estas informações armazenadas em disco. FORMAS - UFBA 8 de X SGBD – Armazenamento em Disco Arquivo de dados Dicionário de dados Metadados - definições e descrições sobre a estrutura que forma o BD (metadados); Definições da estrutura de cada arquivo, o tipo e formato de armazenamento de cada item de dados, e várias restrições dos dados; Índices: armazena os dados (o banco de dados propriamente dito). estrutura que otimizam o acesso aos itens de dados. Estatística de dados: armazena informações estatísticas relativas aos dados contidos no banco de dados. Essas informações são usadas pelo processador de consultas para seleção de meios eficientes para 9 de X execução de consultas. SGBD – Usuários Diferentes usuários podem acessar a mesma parte de dados no mesmo momento (acesso concorrente). Pessoas que trabalham com SGBDs Desenvolvedores do SGBD Projetista do Banco de Dados Constrõem o software do SGBD Determinam a estrutura e identificam os dados que serão armazenados Usuário Final Pessoas cujas profissões requerem um acesso a um banco de dados para consultas, atualizações e relatórios. 10 de X SGBD – Usuários Analistas de Sistemas e Programadores de Aplicações Administrador de Banco de Dados (DBA- Database Administrator) Desenvolvem pacotes que facilitam o acesso aos dados pelos usuários finais Os analistas determinam as solicitações dos usuários finais, além de desenvolver as especificações. Os programadores implementam essas especificações como programas. Autorização de acesso, coordenação e monitoração, segurança e tempo de resposta do sistema, sintonização. Cientista de Dados FORMAS - UFBA 11 de X SGBD – Principais Vantagens Independência dos Dados Os dados podem ser compartilhados O SGBD provê uma visão abstrata dos dados. Disponibilização de um conjunto de interfaces de alto nível, o que facilita o desenvolvimento de aplicativos. Acesso concorrente aos dados simulando um único usuário. A redundância pode ser reduzida Integração de dados pode reduzir ou até eliminar a redundância. 12 de X SGBD – Principais Vantagens A inconsistência pode ser evitada Suporte a transação Transação é uma unidade lógica de trabalho, envolvendo diversas operações (várias operações de atualização). Integridade pode ser mantida Há restrições de integridade que garantem que dados são inseridos sem prejudicar a integridade dos dados cadastrados. Assegurar que todos os dados no BD estão corretos. Segurança pode ser reforçada Pode forçar os controles de acesso que governam quais dados estão visíveis a diferentes classes de usuários. 13 de X SGBD – Um “bom”SGBD Um “bom” SGBD deve ter as seguintes características: Definição de dados Manipulador de Dados Aceitar definições de dados (esquemas externos, conceitual, interno) Lidar com requisições dos usuários para buscar, atualizar, incluir e excluir dados Otimização e execução As requisições devem ser processadas por um otimizador, cuja finalidade é determinar o modo eficiente de implementar a requisição. 14 de X SGBD – Um “bom”SGBD Segurança e integridade Recuperação de Dados e Concorrência O SGBD deve rejeitar toda tentativa de violar as restrições de segurança e integridade definidas pelo DBA Deve impor controles de recuperação e concorrência através do gerenciador de transações Dicionário de Dados Deve conter um catálogo com informações sobre os dados Também conhecido como metadados FORMAS - UFBA 15 de X Evolução dos SGBDs Os precursores do SGBD – década de 60 Arquivos ligados por ponteiros Exemplos: IDS.I (Honeywell) e IMS.I (IBM) PRIMEIRA GERAÇÃO – fim da década de 60 Separaram a descrição dos dados da manipulação pelos programas Baseado nos modelos de rede e hierárquico Exemplos: SGBD TOTAL, IDMS, IDS 2 e IMS 2 FORMAS - UFBA 16 de X Evolução dos SGBDs SEGUNDA GERAÇÃO – década de 70 TERCEIRA GERAÇÃO – década de 80 (in vitro) Modelo relacional, comercializado a partir de 1980 (SQL) Oracle, SQL Server, DB2, Informix, INGRES OO e OR QUARTA GERAÇÃO NoSQL, NewSQL, DW FORMAS - UFBA 17 de X Arquitetura de SGBD Final de 1972, ANSI/X3/SPARC estabeleceram o relatório final do STUDY GROUP Objetivos do Study Group Determinar quais áreas da tecnologias de BD eram adequadas para PADRONIZAÇÃO Study Group Relatório: Somente as interfaces eram adequadas 18 de X Arquitetura de Banco de dados Este relatório deu origem a arquitetura ANSI/X3/SPARC Arquiteturas podem ser classificadas quanto a funcionalidade e quanto a operacionalidade Funcional ANSI/X3/SPARC Referência Operacional Centralizada, Cliente/Servidor, 3 camadas e n-camadas 19 de X Arquitetura Funcional ANSI/X3/SPARC Se divide em 3 níveis EXTERNO, CONCEITUAL e INTERNO Nível Externo Nível do usuário individual O programador lida com linguagens de programação Que tem DSL (Data Sublanguage) como por exemplo SQL SQL pode ser usada como linguagem de consulta autônoma Incorporada em outras linguagens como Java 20 de X Q Arquitetura Funcional Nível externo É o conteúdo do BD visto por um usuário Exemplo Prisão Cartório Procurador MP Penal Movimentação Processo Desembargador Juiz Banco de Dados do Judiciário 21 de X Arquitetura Funcional Nível Conceitual Visão do BD como os dados são realmente A visão conceitual permite definir o esquema conceitual Tipos de dados elementares dos objetos As entidades Os relacionamentos Eventualmente as regras que acompanham os dados, ou seja, restrições de domínio e cardinalidades. 22 de X Arquitetura Funcional Nivel Interno Também conhecido como nível físico É o mais próximo do meio de armazenamento físico A definição do esquema interno necessita da prévia definição do BD O esquema interno define como os registros são armazenados e também os índices Mantém informações como: Registros (tamanho, campos que o compõe, etc) Caminhos de acesso ao registro (índice, etc) 23 de X Mapeamento entre os níveis Dois principais mapeamentos Mapeamento Conceitual/Interno Mapeamento Externo/Conceitual Especifica como a estrutura conceitual é armazenada fisicamente Define a correspondência entre a visão externa específica e a conceitual Exemplo: Vários campos conceituais podem ser combinados em um único campo externo 24 de X Arquitetura Funcional de Referência Arquitetura ANSI/X3/SPARC Compreender e distinguir os níveis de descrição e manipulação de dados Poucos SGBDs seguem/utilizam esta arquitetura atualmente Proposta: Arquitetura de referência Mais próxima dos SGBD atuais Baseada em dois níveis Esquema – integra nível interno+nível conceitual Visão – nível externo 25 de X Arquitetura Funcional de Referência Analisador Análise Sintática (conforme a gramática) Análise Semântica (conforme o esquema ou a visão) Controlador Consulta é traduzida (modificada) em um formato interno Normalmente Álgebra relacional Otimizador Elaborar o plano de acesso otimizado 26 de X Arquitetura Operacional Analisando as arquiteturas sob uma perspectiva de mais alto nível Ponto de vista operacional SGBD é um conjunto de processos e tarefas para satisfazer o usuário Operacionalmente, as arquiteturas de BD podem ser divididas em: Centralizadas, Cliente/Servidor, 3-camadas, n-camadas 27 SGBDs Comerciais FORMAS - UFBA 28 de X SGBDs Comerciais FORMAS - UFBA 29 de X SGBDs Comerciais DB2: FORMAS - UFBA 30 de X Arquitetura dos SGBDs Comerciais PostgreSQL Arquitetura Trabalha Ha com a memória compartilhada um processo coordenador postmaster Funciona O segue o modelo Processo por transação como o monitor de processos backend segue a arquitetura de referência Análise, otimização e execução 31 Arquitetura dos SGBDs Comerciais IBM DB2 Aplicações clientes remotas utilizam um agente para se conectar ao BD Cada BD possui um conjunto de processos que realizam as tarefas É uma thread chamada Db2agent Busca prévia, limpeza do pool de buffer, logging e detecção de impasses Segue o Servidor de Transação, mas a memória compartilhada é particionada em memórias específicas MC de Servidor, de BD, de aplicação 32 Arquitetura dos SGBDs Comerciais Oracle Pode trabalhar ainda como Servidor Dedicado ou Compartilhado Servidor Dedicado processo servidor processo de segundo plano executa SQL Tarefas administrativas e de desempenho Servidor Compartilhado Aumenta o número de usuários que processos servidores podem admitir Processo é compartilhado com outras instruções. 33 www.dcc.ufba.br/~dclaro Disciplina: MATA60 (2016.1) Semantic Formalisms and Applications Research Group Facebook: /formasresearchgroup Twitter: /formasresearchgroup FORMAS - UFBA