Baixe o app para aproveitar ainda mais
Prévia do material em texto
14/02/2014 1 Tecnologia em Gestão da Tecnologia da Informação BANCO DE DADOS Aula 2 Histórico Mauro Kendi Noda email : mk.noda@uol.com.br Histórico A princípio � Sistemas de arquivos dos SO. � Armazenamento e recuperação de informações. Hoje com a necessidade de maior eficiência � Sistema de Gerenciamento de Banco de Dados (SGBD). 14/02/2014 2 Problemas dos Sistemas de Arquivos Tradicionais � Redundância � Inconsistência � Dificuldade no acesso a dados � Isolamento dos dados � Múltiplos usuários � Segurança � Integridade � Atomicidade Problemas dos Sistemas de Arquivos Tradicionais � Redundância � Arquivos criados e mantidos por diferentes programadores. � Várias copias dos dados. � Informação retida em diversos lugares (arquivos). � Inconsistência � Arquivos com formatos diferentes. � Dados parcialmente atualizados. � Isolamento dos dados � Difícil escrever aplicações para recuperação, pois os dados podem estar em vários arquivos e formatos. 14/02/2014 3 Problemas dos Sistemas de Arquivos Tradicionais � Dificuldade no acesso aos dados � Necessidade de construir programas para obter qualquer informação. Exemplo: Caixa Econômica � Bolsa Família Alternativas: 1) Seleção manual. 2) Desenvolver um “programinha” específico. Ambas alternativas são insatisfatórias. Futuramente a empresa vai necessitar de outras informações. Problemas dos Sistemas de Arquivos Tradicionais � Múltiplos usuários � Atualizações concorrentes � Pode resultar em inconsistência. Exemplo: � Saldo = R$ 1000,00. � Dois clientes debitam simultaneamente R$50 e R$ 200, da conta X. � Ambos lêem o saldo antigo. � O saldo final da conta será R$ 950 ou R$ 800 (depende de quem finalizar o saque por ultimo). � O valor correto é R$ 750. 14/02/2014 4 Problemas dos Sistemas de Arquivos Tradicionais � Segurança � Autorização de acesso a diferentes usuários. � Integridade � Os dados armazenados devem obedecer restrições para manutenção da consistência. Exemplo: � Nota do aluno: entre 0 e 10. � Restrição é implementada no software. � Ao criar nova restrição � Dificuldade em alterar todos os programas. Problemas dos Sistemas de Arquivos Tradicionais � Atomicidade � Operações feitas de forma única, atômica, invariável, a fim de assegurar a integridade e consistência dos dados. Exemplo: � Ocorre um Falha ao transferir R$ 100,00 (conta A - > conta B). � Os 100 reais são debitados da conta A, e não são creditados na conta B. � Criando um estado inconsistente no banco de dados. � Para manter a Consistência, deve-se garantir que débito e crédito ocorram, ou nenhum deles seja efetuado. � A transferência deve ser uma operação atômica, deve ocorrer completamente, ou não ocorrer. 14/02/2014 5 Questões básicas � Dado ? � Metadados ? � Campo ? � Registro ? � Tupla ? � Arquivo ? � Banco de Dados ? � Sistema de Gerenciamento de Banco de Dados (SGBD) ? � Informação ? � Redundância ? � Inconsistência ? � Dados conflitantes. � Integridade ? � Garantia de Restrições. � Atomicidade ? SGBD � Onde fica o SGBD ? Usuário Programa de aplicação SGBD SO arquivos 14/02/2014 6 SGBD � Módulo (conjunto de programas) responsável pelo gerenciamento de uma base de dados. � Retira da aplicação cliente a responsabilidade de gerenciar o acesso, manipulação e organização dos dados. � Fornece a interface entre dados de baixo nível armazenados e um banco e os programas aplicativos. Gerenciador do Banco de Dados � Responsabilidades do Gerenciador: � Interação com o gerenciador de arquivos � Tradução dos comandos de alto nível para baixo nível. � Garantia de integridade. � Garantia de segurança. � Recuperação e backup. � Controle de concorrência. 14/02/2014 7 SGBD Um sistema de manipulação de dados é um SGBD, quando permite: � Auto-contenção – conter dados, suas descrições, relacionamentos e formas de acesso. � Independência dos Dados – aplicações independentes a mudanças na estrutura de armazenamento. � Abstração dos Dados – usuário não precisa saber detalhes sobre armazenamento real. � Visões – formas diferentes de ver os dados para cada usuário. É um subconjunto virtual derivado de dados armazenados. SGBD Um sistema de manipulação de dados é um SGBD, quando permite: � Multiusuários – vários usuários, controle de concorrência. Ex: e-commerce, Processamento de Transações On-Line. � Controle de Transações – auto gerenciar a integridade. � Transação – composta por 1 ou mais acessos ao BD. � Isolamento – sem interferência de outras transações. � Atomicidade – ou todas as operações são executadas ou nenhuma. 14/02/2014 8 SGBD Características de um SGBD � Manipulação dos dados – pesquisa e atualização. � Compartilhamento dos Dados – garantir concorrência ao acesso dos dados sem erro. � Controle de Acesso � Conta / Senha de usuário. � Permissões de acesso a base de dados. Ex: Financeiro. � Permissões de operações Consulta, atualização. SGBD Características de um SGBD � Interfaces – Interface Gráfica de Usuário (GUI). � Esquematização – Representar os relacionamentos entre os dados. � Controle de Integridade – aplicações não podem comprometer integridade dos dados. � Tipo de dado, tamanho, conteúdo do campo... 14/02/2014 9 SGBD Características de um SGBD � Backups – subsistema para recuperar falhas de hardware e software. � Garantia de voltar ao estado que estava antes da execução da transação. � Controle da Redundâncias � Informações podem ser armazenadas em um único lugar. � Redundância: Dados duplicados - Dificuldade de Atualização, Maior espaço de armazenamento, inconsistência) SGBD Características de um SGBD � Indexação – estrutura de dados responsável por aumentar a velocidade de recuperação de dados. � Estrutura de Dados Árvore. � Estrutura de Dados Hash. � Buffering – parte dos dados temporariamente na memória principal. 14/02/2014 10 Sistema de Arquivo x SGBD Arquivos SGBD Vantagens do SGBD Definição dos dados é parte do código de programas de aplicação Armazena Dados e Metadados Eliminação de redundâncias Dependência entre aplicação e dados Independência entre aplicação e dados Eliminação de redundâncias e facilidade de manutenção Representação de dados em nível físico Representação conceitual através de dados e programas Facilidade de manutenção Cada visão é implementada por módulos específicos Permite múltiplas visões Facilidade de consultas Arquitetura do BD Nível Externo (esquemas externos): descreve apenas uma parte do BD de interesse de um grupo de usuários. Nível Conceitual e Lógico : quais dados são armazenados e quais os relacionamentos. Nível Interno (Físico): descreve como os dados são armazenados fisicamente. Visão 1 Visão 2 Visão n Esquema Conceitual Esquema Lógico Esquema Interno 14/02/2014 11 Linguagem de BD Linguagem de Definição de Dados (DDL) � Data-Definition Language (DDL). � Especificação do esquema de dados. � Instruções DDL – definem um conjunto de tabelas que constituem o dicionário de dados. Exemplos : create table alter table drop table create view drop view Linguagem de BD Linguagem de Manipulação de Dados (DML) � Data-Manipulation Language (DML). � DML viabiliza o acesso (manipulação) dos dados. � Manipulação de dados: � Recuperação � Inserção � Remoção � Modificação 14/02/2014 12 Usuários do BD Desenvolvedores e Analistas � Interagem através de chamadas DML, embutidas nas linguagens hospedeiras (Cobol, VB, C, Delphi, Java, etc.) e API’s (Application ProgramInterface) para ter acesso ao BD. � Uso de linguagens de alto nível (4 a. geração). Ex: SQL. Usuários ocasionais � Formulam suas solicitações ao BD através de linguagens de consultas. Interagem sem escrever programas. Usuários simples � Interação com o BD através de aplicativos. Ex: menus, perguntas e respostas. Usuários especializados � Aplicações sofisticadas. Ex: CAD, sistemas especialistas. Administrador de Banco de Dados (ABD/DBA) � Identifica as informações relevantes � Define esquema conceitual � Define esquemas externos (com usuários) � Define esquema interno e mapeamentos � Especifica regras de integridade � Define aspectos de segurança � Preocupa-se com desempenho e ajustes Recursos para: � Carga, reorganização, gerenciamento do uso do BD, estatísticas, recuperação e back-up. 14/02/2014 13 DICIONÁRIO/DIRETÓRIO de DADOS (DDD) Metadados Contém: � Esquemas externos, conceitual e interno � Mapeamentos � Regras � Autorização de operações sobre arquivos � Senhas � Identificações e padronizações � Duplicação de arquivos � Meios de armazenamento (fita, disco) � Rótulos de arquivos � Espaço ocupado pelos arquivos DICIONÁRIO/DIRETÓRIO de DADOS (DDD) Metadados � Tamanho de registros � Números de registros � Posição dos itens nos registros � Tipos dos itens (carácter, decimal, binário) � Representação (ASCII, HEX, ...) � Método de acesso (chaves, acesso sequencial ou direto, índices, diretórios para endereçamento) � Algoritmos de compressão/descompressão 14/02/2014 14 Estrutura Geral do Sistema USUÁRIOS Usuários Analistas e Usuários Administrador Simples Programadores ocasionais do BD Programas de aplicação Chamadasde rotinas Consultas Esquema de Banco de Dados SGBD SO (Gerenciador de arquivos, Memória, Buffer..) Memória de disco Pré-compilador da manipulação de dados (DML) Código objeto dos programas de aplicação Compilador da Linguagem de Definição de dados (DDL) Processador de consultas Gerenciador do Banco de Dados Arquivos de dados Dicionário de dados Arquitetura Desktop Componentes lógicos de uma aplicação: Em um computador: Lógica de apresentação Lógica de processamento Regras de negócio Gerência de dados (Servidor de aplicação) Lógica de armazenamento 14/02/2014 15 Arquitetura Cliente-Servidor Servidor de arquivos: Cliente: Servidor: Lógica de apresentação Lógica de processamento Regras de negócio Gerência de dados (Servidor de aplicação) Lógica de armazenamento Arquitetura Cliente-Servidor Servidor de arquivos: � Armazena dados � Bloqueia registros � Disco extra para cliente � Não muito ocupado � Muito tráfego na LAN LAN Cliente GORDO: � Processa/varre tabelas � Interfaces � Gera consultas � SGBD � Integridade/segurança Entrega arquivos inteiros e estados dos bloqueios Pede dados e bloqueios dados 14/02/2014 16 Arquitetura Cliente-Servidor Servidor de BD – Duas camadas (two-tier): Cliente: Servidor: Lógica de apresentação Lógica de processamento Regras de negócio Lógica de armazenamento Lógica de processamento Gerência de dados Arquitetura Cliente-Servidor Servidor de BD: � Servidor de arquivos + � Integridade � Segurança � Processam. de consultas � Mais ocupado � Menos tráfego na LAN LAN Cliente: � Interfaces � aplicações � Gera consultas Entrega apenas resultados Pede dados (consultas) dados 14/02/2014 17 Arquitetura Cliente-Servidor Evolução.. Cliente: Servidor: Lógica de apresentação Lógica de processamento Regras de negócio Lógica de armazenamento Lógica de processamento Regras de negócio (stored procedures) Gerência de dados Arquitetura Cliente-Servidor Vantagens de stored procedures: � Melhor performance (consultas pré-compiladas). � Menor tráfego na rede (processamento se concentra mais no servidor). � Melhor segurança (encapsulamento dos dados). � Melhor integridade (mesma stored procedure para todos). � Cliente mais magro, servidor mais gordo. 14/02/2014 18 Arquitetura Cliente-Servidor Podem ocorrem alguns problemas: � Escalabilidade: � Mais clientes � Mais aplicações em clientes � Mais replicações das aplicações � Problemas de propagação de alterações. Arquitetura Cliente-Servidor Três camadas (three-tier): Cliente: Servidor de aplicações: Servidor BD: Lógica de apresentação Lógica de processamento Regras de negócio Lógica de armazenamento Lógica de processamento Regras de negócio (stored procedures) Gerência de dados 14/02/2014 19 Arquitetura Cliente-Servidor LAN Cliente magro: � Interfaces � Gera consultas servidor de BD Servidor de aplicações dados Arquitetura Cliente-Servidor Vantagens: � Escalabilidade: � Monitor de transações separado reduz carga do servidor BD diminuindo conexões. � Distribuição das aplicações � Flexibilidade de adaptação à evolução � Mudança de componentes de middleware ou módulos de software num servidor de aplicações não afeta o servidor BD e outros servidores de aplicações. 14/02/2014 20 Arquitetura Cliente-Servidor Desvantagens: � Revisão da arquitetura de software: componente de apresentação separada do componente de processo. � Quais dos padrões prevalecerá ? Sistemas Distribuídos REDE Um BD ou vários BD’s locais ?dados dados dados 14/02/2014 21 Sistemas Distribuídos Necessidade: � Descentralização dos dados � Principio da localidade � Integração / cooperação � Entre os sistemas de uma única empresa, ou entre empresas originalmente independentes; � Fator estimulador: � Redes / WWW Sistemas Distribuídos Infraestrutura: � Conectividade � Troca de pacotes de informação (ex: Internet – TCP/IP) � Interoperabilidade � Serviços padrões (ex: Internet – protocolos acima do TCIP/IP – transferência de arquivos (FTP), terminal virtual(telnet), correio eletrônico , WWW(http), etc.) 14/02/2014 22 Sistemas Distribuídos Na Web: � Muitas fontes � Muitos protocolos (http, ftp, telnet, ODBC, JDBC, etc.) � Muitos formatos (html, XML, tabelas, Word, etc.) � Muitas formas de consulta (SQL, forms, palavras chave) Aplicação Java Web Site Empresa Web Site Público Documentos BD relacional Web Site Sistemas Distribuídos Na Web: Aplicação Java Web Site Empresa Web Site Público “Fonte Integrada” 14/02/2014 23 Sistemas Distribuídos A idéia do Cliente-Servidor e Sistemas Distribuídos é “dividir para conquistar” Mas........ Sistemas Distribuídos Problemas da distribuição: � Onde colocar os diversos componentes ? (performance) � Como fazê-los interoperar ? (padrões e performance) � Como gerenciar a segurança ? � Como gerenciar recursos humanos num ambiente distribuído ? � Muitos custos escondidos..... 14/02/2014 24 Arquivos x SGBD � Quais são as principais diferenças entre um sistema de processamento de arquivos e um SGBD ? � Foram listadas algumas vantagens mais importantes de um sistema de banco de dados. Há alguma desvantagem ? � Nunca podemos utilizar redundância em um BD ? Pesquise em algum caso é indicado utilizar redundância de dados. 47
Compartilhar