prof. msc. wander medeiros introdução: banco de dados engenharia auxiliada por computador
TRANSCRIPT
PROF. MSC. WANDER MEDEIROS
Introdução: Banco de Dados
ENGENHARIA AUXILIADA POR COMPUTADOR
Sistema de Arquivos
Primeira arquitetura de sistemas para armazenamento e manipulação de dados e geração de informação.
Inconvenientes desta arquitetura: Definição das estruturas de arquivos inseridas no próprio
código do aplicativo (alta dependência entre dados e aplicação) dificultando os trabalhos de manutenção; compartilhamento de um arquivo por vários programas. definição das estruturas de arquivos duplicadas nos programas.
Arquivos e programas de um mesmo sistema são desenvolvidos de forma isolada por diferentes programadores e até mesmo em linguagens diferentes.
Inconsistência, redundância, dificuldade de acesso, isolamento de
dados e problemas com segurança. Falta de gerenciamento para acessos concorrentes aos dados e
recuperação de dados.
Sistemas de Arquivos - Problemas
Inconsistência e redundância de dados: Se a mesma informação está repetida em diversos lugares
(arquivos diferentes) ela: está redundante, aumentando os custos de armazenamento e; pode passar para um estado inconsistente, com valores divergentes
nas diferentes réplicas.
Dificuldade de acesso aos dados: A geração de informação pode surgir, durante o tempo em que
o sistema está em produção, sob diferentes aspectos. Cada requisição de informação diferente no sistema de arquivos, vai gerar a necessidade da criação de um programa aplicativo. A recuperação de informação não é atendida de modo eficiente.
Isolamento de dados: Os dados estão armazenados em arquivos distintos, que não
possuem qualquer tipo de relacionamento direto, e ainda podem conter diferentes formatos para o mesmo dado.
Sistemas de Arquivos - Problemas
Problemas de integridade: É difícil manter “restrições de integridade” automaticamente,
por exemplo: O balanço de uma conta bancária não pode cair abaixo de um
determinado valor. Sempre que o saldo de uma conta for superior a um valor X, parte
deste saldo deve ser automaticamente aplicado na poupança.
Problemas de atomicidade: Algumas operações em um sistema devem ser “atômicas”
(indivisíveis). Ou essas operações são, em seu conjunto, executadas até o fim, ou nenhuma delas deve ser executada.
Problemas de segurança: Nem todos os usuários do sistema devem estar autorizados a
ver/acessar todos os dados armazenados. Uma vez que os programas de aplicação são inseridos no sistema como um todo, é difícil implementar e garantir a efetividade de regras de segurança.
Sistemas de Arquivos - Problemas
Anomalias no acesso concorrente: A melhora de desempenho em um sistema pode ocorrer
pela execução simultânea de diversas operações. Geralmente, nos sistemas de arquivos, esta melhoria seria difícil de ser implementada sem levar a danos na consistência dos dados. Considere a seguinte situação num sistema bancário:
Suponha que o saldo de uma conta bancária A seja 500 reais.
Se dois clientes retiram fundos desta conta A ao mesmo tempo (acesso concorrente à conta A), um estado inconsistente pode ocorrer se na execução das duas instâncias do programa de débito, ambos os clientes leiam o saldo antigo e retirem, cada um, seu valor correspondente, e seja então armazenado o valor restante.
Instanciando o problema ... Ambos leêm o valor 500; Um tira 50 reais (resultando 450 reais) e o outro 100 reais
(resultado 400 reais); Dependendo de qual execução do programa de débito registre o
saldo restante primeiro, o valor do saldo da conta será 450 ou 400 reais, quando deveria ser 350 reais.
Sistema de arquivos x Sistemas de Banco de Dados
O acesso/gerenciamento aos/dos dados é feito diretamente pelos programas aplicativos.
O acesso/gerenciamento aos/dos dadosé feito pelo SGBD. O SGBD funciona como uma interface entre o BD e os programas aplicativos.
Dados(arquivos)
Dados(arquivos)SGBD
Sistema de arquivos Sistema de Banco de Dados
Aplicativos Aplicativos
Definições ...
Dados: são fatos que podem ser gravados e que possuem um significado implícito.
Banco de Dados (BD): é uma coleção de dados relacionados: Representa aspectos do mundo real (minimundo ou universo
de discurso) e mudanças no mundo real devem ser refletidas no BD.
É uma coleção lógica e coerente de dados com algum significado inerente. Uma organização randômica de dados não pode ser considerada um BD.
Um BD é construído em atendimento a uma proposta específica.
Definições ....
Um Sistema Gerenciador de Banco de Dados (SGBD) é uma coleção de programas que permite aos usuários criar e manter um banco de dados. É um sistema de software de propósito geral que
facilita os processos de definição, construção, manipulação e compartilhamento de bancos de dados entre vários usuários e aplicações.
Sistema de Banco de Dados (SBD): o banco de dados mais ou software SGBD
Programas de Aplicações / Consultas (Queries)
Usuários/ProgramadoresSISTEMA DE BANCODE DADOS
Programas para Processamento de consultas / gerenciamento de dados
Software para Acesso aos Dados Armazenados
Definição dos dados(metadados)
Banco de dadosarmazenados
SGBD
Exemplo 1
Arquitetura de Sistemas de Banco de Dados
Primeira arquitetura: Centralizada (uso de Mainframes)
O processamento principal e de todas as funções do sistema (aplicativos, interface e SGBD) eram executados nos mainframes.
Os usuários interagiam com o sistema via terminais sem poder de processamento, conectados ao mainframe por redes de comunicação.
Com o barateamento do hardware, os terminais foram sendo trocados por estações de trabalho e naturalmente a tecnologia de banco de dados começou a aproveitar esse potencial de processamento no lado do usuário.
Surge a segunda arquitetura.
Arquitetura de Sistemas de Banco de Dados
Segunda arquitetura: Cliente-Servidor
Dividiu as tarefas de processamento criando servidores especializados como os servidores de arquivos.
As máquinas clientes disponibilizavam as interfaces para os usuários, de forma a capacitá-lo ao uso de servidores. Também tinham autonomia para executar aplicações locais.
No caso específico de banco de dados, nesta arquitetura, um SGBD centralizado é implantado no servidor, assim as consultas (servidor SQL) e funcionalidades transacionais são executadas no servidor.
No lado do cliente é possível formular as consultas e desenvolver programas aplicativos.
O servidor SQLé conhecido como Back-End Machine e o cliente como Front-End Machine.
Tipos de arquitetura cliente-servidor
Simples Bi-nível
Servidor
Cliente
Servidor ServidorServidor
Cliente ClienteCliente
Tipos de arquitetura cliente-servidor
Múltipla Peer to Peer
Cliente ClienteCliente
Servidor ServidorServidor
Servidor/Cliente
Servidor/Cliente
Servidor/Cliente
Tipos de arquitetura cliente-servidor
Servidores locais e remotos
Servidor remoto
Servidor local
Aplicações
Aplicações
Arquitetura de Sistemas de Banco de Dados
Terceira arquitetura: sistemas de computador pessoal
Trabalham no sistema stand-alone, executando sozinhos todas as funções necessárias para o funcionamento do SBD.
Vantagem: simplicidade
Arquitetura de Sistemas de Banco de Dados
Quarta arquitetura: Distribuída (N camadas)
Os dados e o processamento são distribuídos para diversos servidores (ou hosts).
Cada host pode atua como um servidor de um sistema cliente-servidor, e como cliente.
Muito usados em base de dados corporativas onde o volume de informações é muito grande.
Desvantagem: aumento da complexidade de gerenciamento.
Arquitetura de Sistemas de Banco de Dados
Quinta arquitetura: Paralela
O processamento do sistema é realizado utilizando-se as técnicas de paralelismo.
Ou um computador multi-processado é utilizado ou vários computadores são utilizados para o processamento paralelo de uma única transação.
Desvantagem: custo e complexidade de gerenciamento.
Exemplos de sistemas comerciais
dBASE: Lançado pela Ashton-Tate e posteriormente adquirido pela Borland. Possuía uma linguagem de programação própria para desenvolvimento de aplicações, teve versões para DOS e Windows, trabalhava com gerenciamento de arquivos planos baseados em listas invertidas. A partir da versão 7, os direitos foram vendidos pela Borland.
Paradox: Possui ambiente integrado de desenvolvimento para criação de aplicativos. Os direitos de produção foram vendido pela Borland para a Corel. Teve versões para DOS e hoje possui apenas versões para Windows.
DataFlex: Popular para ambiente Unix, mas teve versões para DOS e Windows. Possui ambiente integrado para desenvolvimento de aplicações e hoje é comercializado com o nome de Visual Data Flex.
FoxBase/FoxPro: Concorrente do dBase com total compatibilidade em termos de arquivos e programas-fontes. Com recursos adicionais como a capacidade de pré-compilação dos códigos-fontes para melhorar performance. Hoje, após a aquisição pela Microsoft da Fox Software (produtora original), se chama: Visual FoxPro.
Exemplos de sistemas comerciais
Access: é padrão em banco de dados para microcomputadores do ambiente Windows. Possui ambiente integrado que permite a criação e gerenciamento do banco de dados, desenvolvimento de aplicações e geração de relatórios. A linguagem de programação usada neste ambiente deriva do Visual Basic.
Oracle: O primeiro em Banco de Dados Corporativos (cliente/servidor) possuindo grande variedade de distribuições (para Macintosh, Windows, Linux, FreeBSD, Unix) e para computadores de grande porte. É padrão SQL com uma linguagem própria para desenvolvimento de aplicações.
Interbase: Foi incluído, pela Borland, nas suas ferramentas de desenvolvimento (Delphi, C++Builder, JBuider). Teve uma versão liberada como Open Source.
MS-SQL Server: Produzido pela Microsoft, inicialmente era uma versão especial do Sybase. As versões atuais são independentes e opera exclusivamente sobre Windows.
Exemplos de sistemas comerciais
Sybase SQL Anywhere: Concorre com o Oracle no mercado corporativo. Aplicações para este banco são desenvolvidas com o PowerBuilder.
MySQL: Possui versões para Windows, Solaris, Unix, FreeBSD, Linux) e é gratuito. Muito poderoso, usado principalmente para desenvolvimento WEB como servidor de dados para comércio eletrônico.
PostgreSQL: Gratuito e com boa aceitação. Originalmente concebido para rodar em Linux. Possui versões para Windows. Principalmente usado para comércio eletrônico juntamente com linguagem PHP.
Informix: Boa escalabilidade e desempenho. Comercializado pela IBM.
BD2: Produzido pela IBM, nasceu nos ambientes de grande porte, sendo posteriormente portado para plataformas mais simples (microcomputadores).
Firebird: Nascido de uma iniciativa da Borland em abrir o código do InterBase 6, este sistema é open source e esbanja versatilidade e robustez. Possui recursos de trigger, store procedures e transações concorrentes.
Exemplos de sistemas comerciais
Além dos gerenciadores, pode-se citar algumas linguagens/ferramentas de desenvolvimento, que manipulam os banco de dados desses gerenciadores:
Clipper: Comumente utilizado junto ao dBase. O Brasil foi o líder mundial em vendas e uso dessa ferramenta.
Joiner: Produto nacional concorrente do Clipper, produzido por uma empresa paulista chamada Tuxon Software, com versões para DOS, Unix, e algum suporte para Windows.
Delphi/C++Builder/JBuilder: Ferramentas de desenvolvimento da Borland que possuem suporte nativo aos bancos de dados Interbase e MySQL. Delphi e C++Builder também podem acessar arquivos no formato dBase, Paradox e Access nativamente, enquanto outras bases de dados podem ser maipuladas através da tecnologia ODBC.
Visual Basic/Visual C++: O programador pode criar aplicações que acessam bancos de dados Access ou, por meio de ODBC, outros formatos.
Quando não usar um SGBDSGBDs são caros porque:
Exigem investimentos iniciais altos em hardware, software e treinamento.
Oferecem generalidade para definição e processamento de dados.
Tem altos custos de desenvolvimento.
Não se indica o uso de SGBDs:
O banco de dados e suas aplicações são simples, bem definidas e sem previsão de mudanças;
Há requisitos de tempo real para algums programas que são difíceis de serem atendidos por SGBDs;
O acesso de múltiplos usuários aos dados não é necessário.
Bibliografia Utilizada Sistemas de Banco de Dados. Silberchatz, Korth e Sudarshan.
Makron Books, Terceira Edição.
Sistemas de Banco de Dados. Elsmari e Navateh. Pearson-Addison Wesley, Quarta Edição.
Fundamentos de Bancos de Dados. William Pereira Alves. Editora Érica. 2004.
Apostila: Introdução a Banco de Dados. Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira. DCC-IME-USP – 2005
Revista INFO-Exame.No. 227. Editora Abril, fevereiro de 2005.