Uma Avaliação de Métodos Orientados a Objetos e Modelos de Processo
Bancos de Dados Orientados a Objetos
-
Upload
xander-hebert -
Category
Documents
-
view
29 -
download
0
description
Transcript of Bancos de Dados Orientados a Objetos
![Page 2: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/2.jpg)
BDs Orientados a Objeto
• Histórico– Historicamente os sistemas de Bancos de Dados
caminharam abraçados à tecnologia mais difundida.
– Assim que surgiram, BDs estavam suportados em MainFrames.
![Page 3: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/3.jpg)
BDs Orientados a Objeto
• Histórico– Para compreender melhor é necessária uma
rápida visita à arquitetura MainFrame:
Aplicação
SGBD
BD
Terminal
MainFrame
![Page 4: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/4.jpg)
BDs Orientados a Objeto
• Histórico– O usuário tem diante de si um terminal cuja
função única é entrada e saída de dados– A aplicação (que está no MainFrame) acessa o
SGBD, que cuida do BD em todos os aspectos, conforme mostrado.
![Page 5: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/5.jpg)
BDs Orientados a Objeto
• Histórico– Opcionalmente a aplicação poderia acessar
diretamente os arquivos– O MainFrame permitia a execução de muitos
programas ao mesmo tempo– Compartilhar um único arquivo através da
estratégia de Time Sharing– Uma fatia de tempo para cada processo, assim
todos estavam sempre sendo executados
![Page 6: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/6.jpg)
BDs Orientados a Objeto
• Histórico– As vantagens desse modelo eram a segurança e
a integração, pois os sistemas estavam suportados numa única plataforma de HW e SW
– A principal desvantagem era o custo. Os MainFrames muitas vezes eram até alugados
![Page 7: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/7.jpg)
BDs Orientados a Objeto
• Histórico– Com a popularização e o barateamento dos
microcomputadores, surgem os sistemas menores, que acessavam arquivos
– Na prática, é importante ressaltar, não há ação de um SGBD, pois os aplicativos acessam o arquivo de dados diretamente
![Page 8: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/8.jpg)
BDs Orientados a Objeto
• Histórico– Esta estratégia ganhou força com o
aparecimento do Dbase, fabricado pela Aston Tate, que trazia inúmeras facilidades de manipulação interativa de dados, usando os famosos arquivos .DBF.
– Aston Tate hoje é Borland Inc.
![Page 9: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/9.jpg)
BDs Orientados a Objeto
• Histórico– Fenômeno 1: Popularização das redes locais de
computadores, – Fenômeno 2: Aparecimento das versões mais
populares dos sistemas operacionais de rede, – Conseqüência: A orientação mudaria um pouco
![Page 10: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/10.jpg)
BDs Orientados a Objeto
• Histórico– O servidor de arquivos
EstaçõesServidor de Arquivos
![Page 11: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/11.jpg)
BDs Orientados a Objeto
• Histórico– Provia mecanismos de compartilhamento de
arquivos por mais de um processo – Estando, inclusive, em máqinas diferentes – Semelhante ao que o MainFrame fazia – Um aplicativo agora podia acessar os arquivos
compartilhando-os com outros
![Page 12: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/12.jpg)
BDs Orientados a Objeto
• Histórico– Os aplicativos cuidariam de acessar o servidor a
partir de muitos pontos– Atendendo a diversos usuários como o
MainFrame, mas a custo bem inferior– Além disso uma estação de trabalho tinha
vantagens sobre o terminal “burro”
![Page 13: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/13.jpg)
BDs Orientados a Objeto
• Histórico– As desvantagens eram todas ligadas ao fato de
que não havia um SGBD, – Os dados ficavam à mercê das aplicações para
ter seus aspectos de segurança e integridade respeitados
– E Concorrência?
![Page 14: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/14.jpg)
BDs Orientados a Objeto
• Histórico– Este modelo arquitetural de Banco de Dados
ficou conhecido como Sistemas tipo Servidor de Arquivos
– A partir das criticas feitas ao modelo tipo Servidor de Arquivos surge uma alternativa, a instalação de um SGBD para atender a todos. Ou seja, criar um Servidor de Banco de Dados.
![Page 15: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/15.jpg)
BDs Orientados a Objeto
• Histórico– A arquitetura fica um pouco mais parecida com
a do MainFrame, – A diferença é que a aplicação agora funcionaria
em outra máquina (na verdade poderia ser na mesma)
– Seria cliente do serviço prestado pelo SGBD, ou seja, acesso aos dados.
![Page 16: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/16.jpg)
BDs Orientados a Objeto
• Histórico– Modelo Cliente-Servidor
EstaçõesServidor de Banco de Dados
SGBD
BD
Aplicativo
Aplicativo
Aplicativo
![Page 17: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/17.jpg)
BDs Orientados a Objeto
• Histórico– A principal vantagem é que o Servidor de BD
implementava os aspectos de – Concorrência– Integridade– Segurança– Recuperação de falhas
![Page 18: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/18.jpg)
BDs Orientados a Objeto
• Histórico– A desvantagem surge ironicamente do fato que
levou muita gente a se afastar da arquitetura MainFrame: A Estação Cliente
– Argumento dos detratores do MainFrame:– Aplicações nas pontas permite-se rodar
aplicações em máquinas muito mais baratas. Isso é realmente um fato
![Page 19: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/19.jpg)
BDs Orientados a Objeto
• Histórico– Os problemas: – Manutenção das aplicações: cada nova versão
tinha que ser instalada em muitas máquinas, e isso começou a representar um custo excessivo
– Dependência tecnológica: Escolhido o SO e o SGBD, qualquer mudança teria custos por vezes proibitivos
![Page 20: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/20.jpg)
BDs Orientados a Objeto
• Histórico– Por outro lado, a crescente sofisticação das
aplicações exigia investimentos pesados no fortalecimento do poder de processamento dos clientes
– Passou-se a olhar, então, esta arquitetura como um modelo em duas camadas:
![Page 21: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/21.jpg)
BDs Orientados a Objeto
• Histórico– Cliente processa dados e apresentação – Cliente se conecta diretamente aos servidores. – Cliente “Robusto” (e caro) – Aplicações grandes, e baixa reutilização – Dificuldade na distribuição das versões
![Page 22: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/22.jpg)
BDs Orientados a Objeto
• Histórico– A solução – Implementar múltiplas camadas (no mínimo 3)
a invés de apenas duas.
![Page 23: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/23.jpg)
BDs Orientados a Objeto
• Histórico– Apresentação, Lógica do Negócio e Acesso a
Dados.– Cliente “Magro” – Serviços da camada de negócios
compartilhados – Atualização de versões centralizado – Independência de Plataforma
![Page 24: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/24.jpg)
BDs Orientados a Objeto
• Histórico– A grande modificação fica no cliente “magro”– Opcionalmente (e normalmente é uma boa
idéia), pode-se quebrar a camada intermediária (Lógica do Negócio) e a de acesso a dados em componentes (ou objetos)
![Page 25: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/25.jpg)
BDs Orientados a Objeto
• Histórico– Objetos de lógica do negócio– Encapsulam regras de negócio do mundo real
independente de como os dados estão armazenados
– Usualmente possuem múltiplas operações acessando vários objetos de dados
![Page 26: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/26.jpg)
BDs Orientados a Objeto
• Histórico– Objetos de acesso a dados – Deve ser o único meio de acesso a dados
(incorpora especificamente a DML do Banco de Dados)
– Provê um conjunto de métodos que permitem lhe serem solicitados serviços
![Page 27: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/27.jpg)
BDs Orientados a Objeto
• Histórico– Necessidade: Mapeamento Objetos de Dados –
Objetos de Negócio– O modelo é, então, estendido para N camadas– É possível, se desejável, até a re-inclusão do
próprio MainFrame na estrutura
![Page 28: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/28.jpg)
BDs Orientados a Objeto• Histórico
– Multicamadas
![Page 29: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/29.jpg)
BDs Orientados a Objeto
• Histórico– O SGBD não “vê” a estrutura complexa que se
construiu ao seu redor.– Os acessos aos dados, do ponto de vista do
SGBD permanecem da mesma forma– A camada de acesso a dados atua como cliente
do servidor de Banco de Dados
![Page 30: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/30.jpg)
BDs Orientados a Objeto
• Histórico– O cliente pode ser tão magro quanto possível.
Idealmente, trata-se apenas de um navegador Web
– Pela Web, as conexões podem ser feitas
– No cliente funciona apenas um componente (ASP, Java, ...)
– Provê a visualização, e a entrada/saída de dados
– Quase um terminal do MainFrame, mas executa efetivamente processos.
![Page 31: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/31.jpg)
BDs Orientados a Objeto
• Histórico– Ao ser ativado o processo (componente)– Verifica-se se a data do que está instalado é
defasada em relação ao do servidor– Então houve uma atualização– A versão mais recente é transportada
automaticamente
![Page 32: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/32.jpg)
BDs Orientados a Objeto
• Histórico– Vantagens– Pode-se trocar de plataforma com propagação
mínima de efeitos colaterais• Ex. Para trocar o SGBD é necessário apenas um
ajuste nos objetos de acesso a dados.
– Atualizações de versões automáticas e imediatas, sem a necessidade de reinstalação on site.
![Page 33: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/33.jpg)
BDs Orientados a Objeto
• Histórico– Os componentes podem (e tendem a) ser
projetados preservando-se os princípios de encapsulamento – Como?
– Os problemas de coesão baixa e acoplamento alto precisam ser minimizados – Como?
![Page 34: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/34.jpg)
BDs Orientados a Objeto
• Histórico– Preserva-se o legado do MainFrame, do qual
muitas organizações nunca puderam se desfazer.
– O cliente magro pode ter uma capacidade de processamento mais modesta, o que diminui os custos.
– Esta estrutura, é conhecida como Servidor Web.
![Page 35: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/35.jpg)
BDs Orientados a Objeto
• Histórico– Mas alguma coisa havia mudado– A necessidade de componentes e de
encapsulamento– Este ambiente é o natural para a orientação a
objetos.– Os ambientes de programação precisam ser OO
– além de gráficos
![Page 36: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/36.jpg)
BDs Orientados a Objeto
• Histórico– Java começa, então, a ganhar muito espaço
neste contexto. Surgem aplicações visuais Java– Provêem todas as facilidades dos ambientes de
Visual Basic e Delphi– Mais Orientação a Objetos
![Page 37: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/37.jpg)
BDs Orientados a Objeto
• Histórico– Contra a força de Java a Microsoft propõe
padrões proprietários, integrados ao Visual Basic, mas encontra resistência
– Delphi, por sua vez, passa a ser aproveitada nos conceitos de Orientação a Objeto
– Sistemas distribuídos em Java, Delphi e Visual Basic vão se multiplicando a cada dia
![Page 38: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/38.jpg)
BDs Orientados a Objeto
• Histórico– As arquiteturas de SGBDs evoluíram também– Até 1960: Sistemas de Arquivos Integrados –
ISAM, VSAM (IBM).– Crítica: pouco encapsulamento– Controles de segurança, concorrência,
integridade e recuperação de falhas ficavam a cargo dos programas aplicativos
![Page 39: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/39.jpg)
BDs Orientados a Objeto
• Histórico– Se houvesse alguma modificação no modelo,
como garantir que todos os programas respeitariam a “nova ordem”? Muito trabalhoso!
– Final dos aos 60: Modelo hierárquico – IMS (IBM).
![Page 40: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/40.jpg)
BDs Orientados a Objeto
• Histórico– Uma estrutura de registros pai-filho dispostos
em seqüência, implementando relação um para muitos de cima para baixo
– Implementava regras de integridade, embora com limitações, e aspectos de segurança, recuperação de falhas e controle de concorrência
![Page 41: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/41.jpg)
BDs Orientados a Objeto
• Histórico– 1970 e início dos anos 80: Modelo de redes
(Codasyl) – IDMS, DBMS-II (Unisys).– Extensão do modelo hierárquico, com relações
muitos para um estabelecidas e todas as direções.
– Modelava toda sorte de relacionamentos com facilidade.
![Page 42: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/42.jpg)
BDs Orientados a Objeto
• Histórico– Final dos anos 70: Modelo Relacional (Codd) –
SQL-DS, DB2, (IBM), Oracle, Ingres.– Relação entre dados, não através de estruturas
internas do banco– Modela, como o em Rede, toda sorte de
relacionamentos
![Page 43: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/43.jpg)
BDs Orientados a Objeto
• BDs Relacionais X Redes– Relacionais Tem performance inferior ao em
Redes– Mas tem linguagens DDL e DML como Quel e
SQL mais simples. Fator decisivo.– São dominantes hoje– Final dos anos 80: Modelo reacional-estendido.
Orientado a Objeto. BDOO, O2, Oracle (a partir da versão 9) ...
![Page 44: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/44.jpg)
BDs Orientados a Objeto
• SQL– O argumento decisivo a favor dos relacionais– Fácil de usar– Eficiente Eficaz– Padrão– Consagrada em todos os produtos hoje
![Page 45: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/45.jpg)
BDs Orientados a Objeto
• BDOO – Objetos (Apontadores)
• Vantagens prometidas:– Simplicidade – BDs OO estão para BDs
Relacionais como Java está para C– Promessa: A performance de BDs em rede sem
a complicação da operação de endereços internos
![Page 46: Bancos de Dados Orientados a Objetos](https://reader035.fdocumentos.tips/reader035/viewer/2022070400/56813518550346895d9c6cf1/html5/thumbnails/46.jpg)
BDs Orientados a Objeto
• Relacionais Estendidos– Um BD relacional sob uma casca orientada a
objeto– OIDs– Métodos– Classes– Ex: PostGres