25
PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

Embed Size (px)

Citation preview

Page 1: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

PROF. MSC. WANDER MEDEIROS

Introdução: Banco de Dados

ENGENHARIA AUXILIADA POR COMPUTADOR

Page 2: 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.

Page 3: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 4: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 5: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 6: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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

Page 7: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 8: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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

Page 9: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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

Page 10: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

Exemplo 1

Page 11: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR
Page 12: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 13: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 14: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

Tipos de arquitetura cliente-servidor

Simples Bi-nível

Servidor

Cliente

Servidor ServidorServidor

Cliente ClienteCliente

Page 15: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

Tipos de arquitetura cliente-servidor

Múltipla Peer to Peer

Cliente ClienteCliente

Servidor ServidorServidor

Servidor/Cliente

Servidor/Cliente

Servidor/Cliente

Page 16: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

Tipos de arquitetura cliente-servidor

Servidores locais e remotos

Servidor remoto

Servidor local

Aplicações

Aplicações

Page 17: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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

Page 18: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 19: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 20: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 21: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 22: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 23: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 24: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.

Page 25: PROF. MSC. WANDER MEDEIROS Introdução: Banco de Dados ENGENHARIA AUXILIADA POR COMPUTADOR

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.