Baixe o app para aproveitar ainda mais
Prévia do material em texto
Ramon Gomes Costa, Prof. D.Sc. Aula Expositiva Arquitetura de Sistemas Gerenciadores de Bancos de Dados Arquitetura de Sistemas Gerenciadores de Bancos de Dados Banco de Dados 2 Plano de Curso Arquitetura de Sistemas Gerenciadores de Bancos de Dados Introdução Arquitetura de três esquemas Linguagens de interface Arquiteturas de comunicação Interfaces múltiplas de usuário Módulos componentes do SGBD Exercícios. Banco de Dados 3 Introdução Antigamente, um SGBD era um Sistema Monolítico, hoje os SGBDs utilizam uma arquitetura cliente-servidor. Módulo Cliente – Projetado para ser executado em uma estação de trabalho ou computador pessoal. De certo modo, o módulo cliente lida com a intervenção com o usuário e fornece uma interface amigável ao mesmo. Módulo Servidor – Lida com os armazenamentos dos dados, acessos, e tratam de retornar ao cliente qualquer operação feita. Banco de Dados 4 Introdução Sistema Gerenciador de Bancos de Dados (SGBD) – Um sistema que possibilita que os usuários criem e mantenham um banco de dados (Ex.: Firebird, MySQL, Access, Oracle, etc). Banco de Dados 5 Introdução Mapeamento (mapping) – É o processo de transformação de solicitações e de resultados. Como por exemplo, o passo de transformar uma consulta externa para uma linguagem ou consulta interna. Os mapeamentos podem consumir tempo, portanto, alguns SGBDs não suportam visões externas. Banco de Dados 6 Arquitetura de três esquemas A independência de dados Independência lógica de dados – É a capacidade de alternar o esquema conceitual sem ter que alterar esquemas externos ou programas de aplicação. Alterações em restrições de integridade podem ser aplicadas da mesma forma ao esquema conceitual, sem afetar os esquemas externos ou os programas de aplicação. Independência física de dados – É a capacidade de alterar o esquema interno sem ter que alterar os esquemas conceituais ou externos. Arquitetura de três esquemas (ANSI/SPARC) Banco de Dados 7 Arquitetura de três esquemas Isolamento programas, dados e operações Se utilizarmos um SGBD, apenas modificamos os metadados, sem que precisamos (na maioria das vezes) fazer mudanças no programa. Chamamos essa propriedade de Independência entre programas e dados. (ex.: Acrescentar registros, modificar tipos de float para double, etc). Em alguns casos, podemos definir operações e guardá-las no catálogo. Através deste processo, chegamos à chamada Independência entre programa e operação. (ex.: Uso de Store Procedures). A característica que permite isto é a abstração de dados. struct aluno { char nome[35]; int numero_aluno; int tipo_aluno; char curso[2]; }; Banco de Dados 8 Arquitetura de três esquemas Representação Conceitual – Representação fornecida pelo SGBD que não inclui detalhes de armazenamento ou implementação de operações. Banco de Dados 9 Arquitetura de três esquemas Modelo de dados – É o tipo de abstração de dados utilizada para fornecer uma representação conceitual. Modelo Relacional: Modelo Orientado a Objetos: Banco de Dados 10 Arquitetura de três esquemas Modelo de dados – É o tipo de abstração de dados utilizada para fornecer uma representação conceitual. Modelo Hierárquico: Banco de Dados 11 Arquitetura de três esquemas Modelo de dados – É o tipo de abstração de dados utilizada para fornecer uma representação conceitual. Modelo Hierárquico: Banco de Dados 12 Arquitetura de três esquemas Modelo de dados – É o tipo de abstração de dados utilizada para fornecer uma representação conceitual. Modelo de redes: Banco de Dados 13 Arquitetura de três esquemas A natureza autodescritiva de um SGBD Um SGBD contém uma definição completa e descrições das restrições e da estrutura do banco de dados. Catálogo – é o local onde são armazenadas as definições de um banco de dados. Metadados – são as definições de dados guardadas no catálogo. O Catálogo é local onde os metadados estão armazenados. Banco de Dados 14 Arquitetura de três esquemas Metadados Banco de Dados 15 Linguagens de interface Linguagens do SGBD Linguagens de definição de Dados (DDL – Data Definition Language) É utilizada para especificar os esquemas conceitual e interno para o banco de dados. O SGBD deve ter um compilador para DDL cuja função é processar declarações e armazenar a descrição do esquema no catálogo do SGBD. Ex.: (SQL) → CREATE TABLE, DROP TABLE, ALTER TABLE, etc. (XML) → DTD, XML Schema. (OO) → Classes. Banco de Dados 16 Linguagens de interface Linguagens do SGBD Linguagens de manipulação de dados (DML – Data Manipulation Language) É utilizada para manipulações típicas, que incluem a recuperação, a exclusão e a modificação dos dados. Ex: (SQL) → SELECT, INSERT, DELETE, UPDATE. Banco de Dados 17 Linguagens de interface Linguagens do SGBD Linguagens de definição de visão (VDL – View Definition Language) É utilizada para especificar visões do usuário. Em alguns casos, a DDL também faz o papel de VDL. Ex: CREATE VIEW, DROP VIEW. Banco de Dados 18 Linguagens de interface Linguagens do SGBD Linguagens de definição de visão (VDL – View Definition Language) É utilizada para especificar visões do usuário. Em alguns casos, a DDL também faz o papel de VDL. Ex: CREATE VIEW, DROP VIEW. Uma visão pode ser um subconjunto de banco de dados ou pode conter apenas metadados que sejam derivados das tabelas de banco de dados. Os usuários comuns não precisam saber se uma tabela é uma visão ou não. Banco de Dados 19 Linguagens de interface Linguagens do SGBD Linguagens de definição do armazenamento (SDL – Storage Definition Language) É utilizada para especificar o esquema interno e, neste caso, deixar que a DDL especifique apenas o esquema conceitual. Obs.1: Atualmente, A SDL é utilizada de forma automática pelo SGBD. Obs.2: Nos SGBDs atuais, não utilizamos todas estas linguagens como sendo distintas, mas uma única linguagem pode conter todas (ou várias) destas linguagens. EX: a SQL, ela pode representar a DDL, VDL e DML. Linguagem hospedeira – Linguagem de programação de uso geral, que utiliza de forma embutida, algumas das linguagens descritas anteriormente. Linguagem de consultas (Query) – São as linguagens (DDL, VDL, DML) utilizadas de uma maneira interativa individualizada. Banco de Dados 20 Arquiteturas de comunicação Arquitetura Cliente/Servidor para SGBDs – Os componentes de sistemas que foram movimentados para o lado cliente foram a interface com o usuário e os programas de aplicação. As funcionalidades de transação permanecem do lado servidor. Quando o acesso ao SGBD é necessário, o programa cliente estabelece uma conexão com o programa que está do lado servidor. Os resultados da consulta são enviados de volta para o programa cliente. Banco de Dados 21 Arquiteturas de comunicação Arquitetura Cliente/Servidor de três camadas (para aplicações Web) – A arquitetura de três camadas possui uma camada intermediária entre o cliente e o servidor de banco de dados. Esta camada intermediária se chama servidor WEB, que desempenha um papel intermediário, armazenando as regras de negócio (procedimentos ou restrições) que são utilizadas para acessar os dados do servidor de banco de dados. O servidor web pode retornar uma requisição em um formato mais adequado (ex: HTML). Banco de Dados 22 Interfaces múltiplas de usuário Linguagens de Consulta Ex: SQL, XPATH, XLINK, XQUERY, OQL, etc.Banco de Dados 23 Interfaces múltiplas de usuário Interfaces com Linguagem de Programação Nativas ou através do uso de drivers (ex: JDBC) Interfaces Gráficas DBExpress, MySQL Administrator, MySQL Workbench, XML Spy, etc Banco de Dados 24 Interfaces múltiplas de usuário Interfaces WEB Enabling Ex: PhpMyAdmin, PhpPgAdmin, etc. Interfaces em Modo texto Prompt, Konsole, etc. Banco de Dados 25 Arquiteturas para SBDs Exemplo de interação entre vários Servidores de bancos de dados DNS – Domain Name System 1 – recuperar IP para www.ufla.br 2 – recuperar IP para www.ufla.br 3 – Servidor de Nomes Responsável: fapesp (dominios .br) 4 – recuperar IP para www.ufla.br 5 – Servidor de Nomes Responsável: dns.ufla.br 6 – recuperar IP para www.ufla.br 7 – IP para www.ufla.br é 200.131.250.54 8 – IP = 200.131.250.54 Banco de Dados 26 Módulos componentes do SGBD Wrappers – wrappers são construídos para homogenizar a aparência das fontes de dados. Driver – Software que possibilita a comunicação de uma linguagem hospedeira e um SGBD especifico, fornecendo métodos que criam a interface com este. O driver faz uma interface com a linguagem de programação e uma interface com o SGBD, fazendo o papel de cliente/servidor. Componente Controle - faz a orquestração da comunicação entre os serviços componentes. Banco de Dados 27 Módulos componentes do SGBD Gerente de metadados – componente responsável por gerenciar as fontes de dados, os metadados globais e as informações de mapeamento. Componente Processamento de Consultas - responsável por processar as requisições globais feitas pelas aplicações. Ele é composto por: parser, reescritor, otimizador de consultas e máquina de execução de consultas. Parser – Responsável pela análise léxica e sintática da consulta global submetida, de acordo com as informações contidas nos metadados, existindo a possibilidade de rejeição da consulta no caso de erros de sintaxe, de semântica ou de tipos incorretos. Quando acontece a rejeição, a consulta é retornada à aplicação cliente, com o respectivo motivo da rejeição (código de retorno). Banco de Dados 28 Módulos componentes do SGBD Reescritor – reescreve a consulta submetida, agrupando as informações que devem ser fornecidas por cada fonte de dados. Otimizador – Responsável por produzir um plano de execução de consulta otimizado para a consulta. A permutação da ordem das operações dentro da árvore de operações pode fornecer muitas estratégias de execução. O papel do otimizador de consulta é encontrar a ordenação ótima destas operações. Máquina de Execução de Consultas – Controla o acesso ao banco de dados em tempo de execução, recebe os comandos para a recuperação ou atualização e os executa no banco de dados. Banco de Dados 29 Ramon Gomes Costa, Prof. D.Sc. ramongomescosta@gmail.com Arquitetura de Sistemas Gerenciadores de Bancos de Dados Arquitetura de Sistemas Gerenciadores de Bancos de Dados Slide 1 Slide 2 Slide 3 Slide 4 Slide 5 Slide 6 Slide 7 Slide 8 Slide 9 Slide 10 Slide 11 Slide 12 Slide 13 Slide 14 Slide 15 Slide 16 Slide 17 Slide 18 Slide 19 Slide 20 Slide 21 Slide 22 Slide 23 Slide 24 Slide 25 Slide 26 Slide 27 Slide 28 Slide 29
Compartilhar