Buscar

02 Conceitos e arquitetura do Sistema de Banco de Dados

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.

Continue navegando

Outros materiais