Baixe o app para aproveitar ainda mais
Prévia do material em texto
Conceitos e arquitetura do Sistema de Banco de Dados Disciplina: Banco de Dados Professor: Wandré Nunes de Pinho Veloso 2 Arquitetura Moderna de SGBD • SGBD antigos eram monolíticos e rígidos (indivisíveis e impenetráveis), voltados para funcionamento em ambientes centralizados (mainframes e etc.) • Hoje os SGBDs são projetados de maneira modular, para funcionar em redes de computadores de menor porte, dividindo tarefas – Módulos Cliente: interface com o usuário, aplicações – rodam no computador do usuário / estação de trabalho – Módulos Servidores: armazenamento de dados, acesso, pesquisas e outras funções – rodam em um ou mais computadores mais poderosos, centralizados ou distribuídos na rede 3 Modelos de Dados, Esquemas e Instâncias • O mundo real é muito complexo, e não é possível reproduzi-lo com todos os seus detalhes em um sistema informatizado • É necessário simplificar e generalizar a realidade: – Abstração de dados: técnica básica para modelagem de dados que, geralmente, se refere à supressão de detalhes da organização e armazenamento dos dados • Um modelo de dados é uma coleção de conceitos que podem ser usados para descrever a estrutura de um banco de dados – Necessariamente contém recursos para alcançar o grau desejado de abstração – Eventualmente contém um conjunto de operações básicas para especificar a recuperação de dados e a atualização 4 Modelos de Dados, Esquemas e Instâncias • Estrutura de um banco de dados: tipos de dados, relacionamentos e restrições que devem existir para que o banco de dados esteja correto e íntegro • Pode incluir um conjunto de operações básicas para especificar recuperações e atualizações no BD • Em modelos de dados mais modernos, costuma-se também especificar aspectos dinâmicos ou comportamentais das aplicações – Facilita a especificação de operações definidas pelo usuário e que são permitidas no BD – Necessários em BD orientados a objetos e em BD objeto-relacionais – Isso é tradicionalmente associado ao projeto do software: combinação de projeto de BD e projeto de software na mesma atividade (Engenharia de Software) 5 Modelos de Dados, Esquemas e Instâncias • Categorias de modelos de dados – Modelos de alto nível ou conceituais – Modelos de dados representativos ou de implementação – Modelos de baixo nível ou físicos 6 Modelos de Dados, Esquemas e Instâncias • Modelos conceituais: conceitos utilizados – Entidades: objetos ou conceitos do mundo real – Atributos: características ou propriedades de uma entidade – Relacionamentos: interações ou associações entre entidades • Modelos de implementação – Mais frequentemente usados nos SGBD comerciais – Amplo domínio do modelo relacional – Modelos legados: de rede e hierárquico – Nova família: modelos de dados e objetos • Mais próximos de modelos conceituais e em geral usados como tal em Engenharia de Software 7 Modelos de Dados, Esquemas e Instâncias • Modelos físicos – Descrevem o armazenamento dos dados como arquivos no computador – Registros: formato, ordenação – Caminhos de acesso: estruturas de dados que tornam eficiente a busca de determinados registros no BD • Indexação (utilização de índices) 8 Modelos de Dados, Esquemas e Instâncias • Esquema: descrição detalhada do banco de dados – Não é o mesmo que o banco de dados em si – Não é o modelo de dados, mas sim o produto da modelagem – Não se supõe que vá ser alterado com frequência, independente do nível de alterações que os dados possam ter • Diagrama do esquema – Apresentação (gráfica) do esquema, usando as técnicas do modelo de dados – Exibe apenas alguns aspectos do esquema, outros podem requerer o uso de recursos adicionais para apresentação, como é o caso das restrições • Componente do esquema: cada “objeto” presente nele 9 Diagrama esquemático 10 Modelos de Dados, Esquemas e Instâncias • Os dados contidos no BD em um determinado instante de tempo constituem o estado do BD naquele instante • Outros nomes: – instantâneo ou retrato (snapshot) do BD – conjunto atual de ocorrências ou instâncias do BD • Num determinado estado do BD, cada componente do esquema terá seu próprio conjunto de instâncias atual • Quando o esquema é definido e especificado para o SGBD, o estado do BD é o estado vazio • Quando os dados iniciais são carregados ou o BD é populado, o estado passa a ser o estado inicial 11 Modelos de Dados, Esquemas e Instâncias • Toda inclusão, exclusão ou alteração de dados no BD altera seu estado – O SGBD é parcialmente responsável por garantir que cada estado do BD seja um estado válido, ou seja, um estado em que todas as restrições de integridade são cumpridas • As descrições dos componentes e restrições do esquema (metadados) são mantidas no catálogo do SGBD • Mudanças na estrutura do BD são chamadas de evolução do esquema – SGBD possuem recursos para aplicar evoluções no esquema mesmo com o BD em operação 12 Arquitetura do SGBD • Características necessárias – Isolamento entre programas e dados – Suporte a múltiplas visões – Uso do catálogo para armazenar o esquema do BD • Essas características são melhor analisadas no contexto da arquitetura de três-esquemas ou arquitetura ANSI/SPARC 13 14 Arquitetura do SGBD • A maioria dos SGBD não separa completamente os níveis, mas suportam sua lógica de diversas formas • Nível interno → esquema interno – Descreve a estrutura de armazenamento do BD – Usa um modelo de dados físico e descreve detalhes completos sobre a forma de armazenamento dos dados e os caminhos de aceso a eles – Os dados existem apenas neste nível 15 Arquitetura do SGBD • Nível conceitual → esquema conceitual – Descreve a estrutura do BD para uma comunidade de usuários – Esconde detalhes de implementação e se concentra na descrição e entidades, tipos de dados, relacionamentos, operações definidas pelo usuário e restrições – Usa um modelo de dados conceitual ou um modelo de implementação 16 Arquitetura do SGBD • Nível externo ou de visão – Inclui diversos esquemas externos ou visões do usuário – Cada esquema externo descreve a parte do BD na qual um determinado grupo de usuários está interessado e esconde o restante do BD – Usa um modelo de dados conceitual ou um modelo de implementação 17 Arquitetura do SGBD • Todos os três esquemas são apenas descrições dos dados – Os dados encontram-se apenas no nível físico • Cada grupo de usuários se refere apenas a seu próprio esquema externo – O SGBD deve transformar uma requisição que se refira a um esquema externo em uma solicitação baseada no esquema interno, de modo que possa ser processada e resolvida junto ao BD armazenado – Se a solicitação envolver uma recuperação de dados, o resultado deve ser reformatado para corresponder à visão do usuário • Os processos de transformação de solicitações e resultados são chamados de mapeamentos (mappings) 18 Independência de dados • A arquitetura de três-esquemas define independência de dados como sendo a capacidade de alterar o esquema em um determinado nível sem ter que alterar o esquema no próximo nível mais elevado – Independência lógica de dados: capacidade de alterar o esquema conceitual sem ter que alterar os esquemas externos ou os programas de aplicação • Exemplo: acréscimo ou redução de um atributo – Independência física de dados: capacidade de alterar o esquema interno (físico) sem ter que alterar esquemas conceituas e externos • Exemplo: reorganização de índices e tabelas visando aumento de desempenho 19 Linguagens • Linguagem de Definição de Dados (DDL – Data Definition Language) – Especificaçãodos esquemas conceitual e interno em SGBD que não possuem uma separação estrita entre níveis • Linguagem de Definição de Armazenamento (SDL – Storage Definition Language) – Especificação do esquema interno em SGBD que mantêm separação entre os níveis conceitual e interno • Linguagem de Especificação de Visões (VDL – View Definition Language) – Especificação de visões do usuário e seu mapeamento para o esquema conceitual • Linguagem de Manipulação de Dados (DML – Data Maipulation Language) – Execução de operações de recuperação, inclusão, alteração e exclusão de dados 20 Linguagens • Na prática, o SGBD prevê apenas uma linguagem integrada com todas essas finalidades – A definição do armazenamento é geralmente mantida em separado para que seja possível realizar ajustes de desempenho no sistema (tuning) • SQL = DDL + VDL + DML • SDL era parte das versões primitivas da SQL, hoje não é mais (mantendo a SDL apenas nos níveis conceitual e externo) 21 Linguagens • Tipos de DML – Alto nível (não-procedural) • Especificar operações complexas de BD • Incluída em programas em outras linguagens, porém em destaque para processamento pelo SGBD • Recupera muitos registros a cada operação: DML orientada a conjunto • Indica que dados recuperar, mas não como fazê-lo • Linguagem de consulta – Baixo nível (procedural) • Embutida em uma linguagem de programação de uso geral • Recupera e processa um registro de cada vez: DML de um registro a cada vez • Sublinguagem de uma linguagem hospedeira (Exemplo: C++) 22 Interfaces • Baseadas em menus para clientes web ou de navegação – Utiliza lista de funções em menus pull-down • Baseadas em formulários – Exemplos: SQL*Forms e Oracle Forms • Gráficas (GUI) – Utiliza diagramas e, muitas vezes, menus e formulários também • Linguagem natural – Utiliza o inglês ou outra linguagem natural para retornar dados. Exemplo: Google • Voltadas para usuários paramétricos – Utiliza uma interface especial para entrada de parâmetros e retornar os dados solicitados • Voltadas para DBA – Contém comandos para criar contas, definir parâmetros do sistema, conceder autorização de conta, alterar um esquema, reorganizar a estrutura de armazenamento, etc. 23 Ambiente do SBD • Módulos ou componentes do SGBD – Gerenciador de dados armazenados (stored data manager) • Acesso aos dados armazenados em disco através do SO • Gerenciamento de buffers em memória – Compilador da DDL • Processa definições do esquema e constrói o catálogo – Processador de run-time do BD • Processa comandos de recuperação ou atualização de dados – Compilador de consultas • Otimiza consultas recebidas interativamente – Pré-compilador • Extrai comandos de DML de um programa hospedeiro – Compilador DML • Produz código-objeto para acesso ao BD 24 Módulos componentes de um SGBD e suas interações 25 Ambiente do SBD • Utilitários do SBD – Carga de dados (loading) – Ferramentas de conversão de formato – Cópia de segurança (backup) – Reorganização de arquivos – Monitoramento do desempenho – Ordenar arquivos – Compactar dados – Monitorar acesso dos usuários – Gerenciamento de perfis de usuários, etc. 26 Ambiente do SBD • Ferramentas de desenvolvimento – CASE (Computer-Aided Software Engineering) • Ferramentas que auxiliam as atividades de Engenharia de Software, desde análise de requisitos e modelagem até programação e testes – Sistema de gerenciamento de dicionários de dados – Ambientes de desenvolvimento de aplicações e prototipação rápida • Ferramentas de comunicação de dados e acesso remoto 27 Arquiteturas centralizadas 28 Arquitetura Cliente-Servidor • Evolução natural da arquitetura centralizada a partir da queda dos preços de PCs e estações de trabalho com poder computacional • A arquitetura Cliente-Servidor foi desenvolvida para funcionar em ambientes dotados de grandes quantidades de equipamentos conectados em rede, de modo a permitir o compartilhamento de recursos – Servidores especializados de arquivos, de impressão – Posteriormente de acesso à Web, de e-mail... – Inclui o uso de software especializado: SGBD • Arquitetura de duas camadas 29 Arquitetura Cliente-Servidor Arquitetura lógica Cliente-Servidor de duas camadas 30 Arquitetura Cliente-Servidor Arquitetura física Cliente-Servidor de duas camadas 31 Arquitetura de duas camadas para SGBD • Servidor de consultas ou servidor de transações – Servidor SQL • Requer uma conexão entre o Cliente e o Servidor – ODBC (Open Database Connectivity) API – JDBC (Java Database Connectivity) • Em SGBD orientados a objetos, surgiu uma estratégia de dividir os módulos do próprio SGBD entre cliente e servidor – Servidor: armazenamento, controle de concorrência local, buffering e caching de páginas do disco, etc. – Cliente: interface com o usuário, catálogo/dicionário de dados, interação com linguagens, otimização de consultas, acesso a múltiplos servidores, etc. 32 Arquiteturas de três camadas • Voltadas inicialmente para aplicações Web • Inclui uma camada intermediária – Servidor de aplicações – Servidor Web • O Servidor de Aplicações mantém regras de negócio para acessar dados do Servidor – O SA recebe requisições do cliente, processa a requisição e a transforma em comandos para o Servidor. depois filtra e repassa dados de volta para o Cliente • Alivia a carga de trabalho sobre o Servidor • Aumenta a segurança (potencialmente) 33 Arquitetura de três camadas Arquitetura lógica Cliente-Servidor de três camadas 34 Classificação dos SBD • Quanto ao modelo de dados – Relacionais – Orientados a objetos – Hierárquicos – Em rede – Objeto-relacionais – XML: usa estruturas hierárquicas, combinando a representação tradicional de dados com a representação de documentos (mais informações vide Elmasri e Navathe 6ª ed. capítulo 12) 35 Classificação dos SBD • Quanto ao número de usuários – Monousuário – Multiusuário • Quanto ao número de locais de acesso a dados – Centralizado – Distribuído • SGBDD homogêneos • SGBDD heterogêneos: SGBD federado ou sistema multibanco de dados 36 Classificação dos SBD • Quanto ao custo – Custos baixos, operação em micros (Exemplo: “Access”) – Custos elevados, operação em servidores (Exemplos: Oracle, SQL Server...) – Software livre (Exemplos: MySQL, PostgreSQL...) • Quanto a finalidade – Finalidade genérica: uso de SGBD genérico – Finalidade especial: uso de SGBD desenvolvido para a aplicação • Exemplo: reservas em companhias aéreas, catálogos telefônicos • OLTP: Online Transaction Processing – grande número de transações concorrentes sem causar atrasos excessivos 37 Preços • SQL Server 2005 – Enterprise Edition ($24,999) • OLTP; Data Warehousing; Data Mining – Standard Edition ($5,999) • E-commerce; Data Warehousing; Line-of-Business; Solutions – Workgroup Edition ($3,899) • Front-end Web server; Departmental or branch office operations – Developer Edition ($49 por projeto vendido) • Includes all the functionality of Enterprise Edition (só para desenvolvimento e teste de aplicações) – Express Edition (gratuito) – Compact Edition (gratuito) • Fonte: <http://www.microsoft.com/sqlserver/2005/en/us/pricing.aspx>, acesso em 02/09/09 38 Preços • SQL Server 2014 – Enterprise Edition ($6,874.00 x [# of cores] X [core factor]) • OLTP; Data Warehousing; Data Mining; Agrupamento Fuzzy – Business Intelligence ($8,592.00 + $199.00 por cliente) • Máximo 128GB de RAM além de 524 PB por Database – Standard Edition ($3,189.00) • E-commerce; Data Warehousing (criação de cubos) • Máximo 16 cores – Express Edition (gratuito) • Máximo 4 cores,1GB de RAM e 10 GB por Database • Fontes: – <http://www.microsoftstore.com/store/msusa/en_US/pdp/SQL-Server-2014-Standard-Edition/ productID.298540100>, acesso em 11/02/15 – <https://msdn.microsoft.com/pt-br/library/dn305848.aspx>, acesso em 11/02/15 – <https://msdn.microsoft.com/library/cc645993.aspx>, acesso em 11/02/15 39 Bibliografia • Capítulo 2: Elsmari Ramez; Navathe Shamkant B. Sistemas de Banco de Dados – Fundamentos e Aplicações. 6 ed. Pearson, São Paulo, 2011. • Date, C.J. Introdução a Sistema de Banco de Dados. 7 ed. Campus, Rio de Janeiro, 2000.
Compartilhar