Introdução: Banco de Dados

Propaganda
Introdução: Banco de Dados
PROF. MSC. WANDER MEDEIROS
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
Sistema de arquivos
Aplicativos
Dados
(arquivos)
O acesso/gerenciamento aos/dos
dados é feito diretamente pelos
programas aplicativos.
Sistema de Banco de Dados
Aplicativos
SGBD
Dados
(arquivos)
O acesso/gerenciamento aos/dos dados
é feito pelo SGBD. O SGBD funciona
como uma interface entre o BD e os
programas 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
SISTEMA DE BANCO
DE DADOS
Usuários/Programadores
Programas de Aplicações / Consultas (Queries)
SGBD
Programas para Processamento de consultas /
gerenciamento de dados
Software para Acesso aos Dados Armazenados
Definição dos dados
(metadados)
Banco de dados
armazenados
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
 Bi-nível
 Simples
Servidor
Servidor
Servidor
Cliente
Cliente
Cliente
Servidor
Cliente
Tipos de arquitetura cliente-servidor
 Múltipla
Servidor
 Peer to Peer
Servidor
Servidor
Servidor/
Cliente
Servidor/
Cliente
Cliente
Cliente
Cliente
Servidor/
Cliente
Tipos de arquitetura cliente-servidor
 Servidores locais e remotos
Servidor
remoto
Aplicações
Servidor
local
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 SGBD
 SGBDs 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.
Download