Escolar Documentos
Profissional Documentos
Cultura Documentos
Sistema de Banco de Dados
Sistema de Banco de Dados
Sistema de Banco de Dados
SO PAULO
2011
SO PAULO
2011
AGRADECIMENTOS
Agradeo aos meus pais, que me apoiaram durante toda a minha vida e sem o
apoio e incentivos de ambos no teria chegado a este momento.
A Deus, por estar presente em todos os momentos e me fornecendo fora nas
dificuldades enfrentadas.
Aos meus amigos, que contriburam para o meu crescimento pessoal e tornaram
o perodo do desenvolvimento do trabalho mais prazeroso.
Por fim agradeo ao meu orientador e a todos que contriburam de alguma forma
para a criao deste trabalho.
iii
SUMRIO
LISTA DE FIGURAS......................................................................................................vi
LISTA DE SIGLAS........................................................................................................vii
RESUMO.........................................................................................................................ix
ABSTRACT......................................................................................................................x
1 INTRODUO..............................................................................................................1
1.2 OBJETIVOS................................................................................................................2
2 CONCEITOS DE BANCO DE DADOS.......................................................................3
2.1 DADOS.......................................................................................................................4
2.2 ABSTRAO DE DADOS........................................................................................4
3 MODELOS DE DADOS................................................................................................6
3.1 MODELO HIERRQUICO........................................................................................6
3.2 MODELO DE REDE..................................................................................................7
3.3 MODELO RELACIONAL..........................................................................................8
3.4 MODELO RELACIONAL NO-NORMALIZADO.................................................9
3.5 MODELO ENTIDADE-RELACIONAMENTO......................................................10
4 PARADIGMA DA ORIENTAO A OBJETOS......................................................12
4.1 O QUE UM OBJETO ? .........................................................................................13
4.2 CLASSE DE OBJETOS............................................................................................14
4.3 HERANA................................................................................................................15
4.4 POLIMORFISMO.....................................................................................................16
4.5 ENCAPSULAMENTO.............................................................................................16
5 BANCO DE DADOS ORIENTADOS A OBJETOS..................................................18
5.1 O QUE SO ? ..........................................................................................................19
5.3 CONCEITO DE ORIENTAO A OBJETOS PARA BDOO................................21
5.3.1 PERSISTNCIA DOS OBJETOS.........................................................................21
iv
LISTA DE FIGURAS
Figura 2.1 Conceitos de bancos de dados
Figura 2.2 Os nveis de abstrao
Figura 3.1 Modelo Hierrquico
Figura 3.2 Modelo de Rede
Figura 3.3 Modelo Relacional
Figura 3.4 Modelo Relacional No-Normalizado
Figura 3.5 Relacionamento do MER
Figura 4.1 Declarao de Classes
Figura 4.2 Herana entre Classes
Figura 5.1 Estrutura de BDOO
Figura 6.1 Declarao de Dados do O2
Figura 6.2 Manipulao de Dados do O2
Figura 6.3 Declarao de Dados do Objectstore
Figura 6.4 Manipulao de Dados do Objectstore
Figura 6.5 Declarao de Dados do Postgres
Figura 6.6 Manipulao de Dados do Postgres
Figura 6.7 Declarao de Dados do Jasmine
Figura 6.8 Manipulao de Dados do Jasmine
vi
LISTA DE SIGLAS
BD
Banco de Dados
SGBD
MR
Modelo Relacional
1FN
MRNN
CAD
Computer-Aided Design
CAM
Computer-Aided Manufacture
CASE
GIS
SQL
OQL
ODQL
MER
Modelo de Entidade-Relacionamento
OO
Orientao a Objetos
Xerox PARC -
POO
BDOO
OID
Identificadores de Objetos
ACID
TPS
vii
SGBDOO
Objetos
viii
RESUMO
Sistemas de banco de dados representam um papel fundamental em aplicaes
de processamento de informao no-numrica, onde a utilizao de tais sistemas
permite facilitar a manuteno de dados consistentes que podem ser compartilhados por
diversas aplicaes, as quais no precisam conhecer o modo como tais dados so
internamente armazenados ou representados. A tecnologia de banco de dados j est
madura para diversas aplicaes, principalmente nas reas administrativas e comerciais.
Entretanto, novas categorias de aplicaes tm demandado o gerenciamento de
dados mais complexos. Para essas aplicaes, o paradigma de orientao a objetos surge
como alternativa adequada para a representao e manipulao dos dados, mas preciso
ainda integrar de forma adequada esta tecnologia a sistemas de banco de dados.
Sistemas gerenciadores de bancos de dados orientados a objetos constituem a
proposta corrente para a soluo desse problema. Neste trabalho apresentam-se os
aspectos bsicos da modelagem e da tecnologia de tais sistemas, com um breve estudo
sobre a evoluo dos bancos de dados e seus respectivos modelos, analise dos
paradigmas da orientao a objetos e dos conceitos de banco de dados.
ix
ABSTRACT
Database systems represent an essential part in the nom-numeric information
processing application, where the use of such systems allows to make easier the
maintenance of consistent data and can be shared by various applications without
needing to know the way where such data are internally stored or represented. The
database technology is already mature for various applications, mainly in administrative
and commercial areas.
However, new categories of application have demanded more complete data
management. For those application, the object-oriented paradigm emerges as a suitable
alternative for representation and handling of data, but its still needed a properly
integration of this technology to database systems.
Object-oriented database management systems form a current proposal for
solving this problem. In this paper are presented the basic aspects of the modeling and
of the technology of such systems with a brief study about the evolution of database and
their respective models, object-oriented paradigms and database concepts.
1 INTRODUO
A cada dia as empresas dependem mais de grandes e crescentes volumes de
informao para suas decises de negocio, e essa informao deve estar sempre correta
e de fcil acesso. Por isso essas empresas exigem sistemas de informao que atendam
no s a suas necessidades funcionais, mas tambm estejam integrados com a
necessidade de mudanas no negocio.
Para atender essas necessidades, surgem inmeros avanos computacionais a fim
de possibilitar esse desenvolvimento dos negcios. Entre todos esses avanos
computacionais pode-se citar a tecnologia de orientao a objetos.
As tecnologias de orientao a objetos esto cada vez mais presentes em todas
as reas da computao, desde linguagens de programao at os bancos de dados.
Atravs do modelo orientado a objeto pode-se expressar problemas do mundo real de
forma mais fcil e naturalmente usando-se componentes modularizados. [KHO94]
Est nova tecnologia ao mesmo tempo em que trouxe inmeras vantagens
computacionais, tambm trouxe alguns problemas, dentre eles o fato que sistemas que
utilizam a tcnica de orientao a objetos necessitam armazenar seus registros e estes
so armazenados em banco de dados relacionais, dos quais tem uma enorme difuso no
mercado. Entretanto tal medida no uma boa prtica, pois o mundo real est sendo
representado na forma de tabelas e uma possvel adaptao do modelo orientado a
objetos para o modelo relacional exige um gasto enorme de tempo e produo. Alm
desses motivos, bancos de dados relacionais apresentam-se inadequados a algumas
necessidades dos novos avanos de sistemas computacionais.
Diante disso, este trabalho aborda uma das possveis solues para a correo
desta divergncia entre sistemas baseados no paradigma da orientao aos objetos e
banco de dados relacionais. Soluo esta denominada como Banco de Dados Orientados
a Objetos.
Os bancos de dados orientados a objetos integram os conceitos de orientao a
objetos como herana, identidade do objeto e tipo abstrato de dados com aptides de um
banco de dados como transaes, segurana, recuperao, etc. Atravs de construes
orientadas a objetos, os usurios podem esconder os detalhes de implementao de seus
mdulos, compartilhar a referencia a objetos e expandir seus sistemas atravs de
mdulos existentes. As aptides de banco de dados so necessrias para assegurar o
compartilhamento simultneo e a continuidade das informaes nas aplicaes.
[KHO94]
1.1 OBJETIVOS
O objetivo deste trabalho abordar a rea de Bancos de Dados Orientados a
Objetos de uma forma unificada, atravs de uma viso conceitual tendo por base o
Modelo de Entidade e Relacionamento.
Sero apresentados os conceitos das tecnologias de Banco de Dados e suas
respectivas evolues seguidas pelos conceitos de Orientao a Objetos. Diante disso
estabelece-se uma base para o desenvolvimento da tecnologia de Bancos de Dados
Orientados a Objetos.
Com isso espera-se preencher todo tipo de lacuna e dvidas a respeito dessa
tecnologia de Banco de Dados que pouco utilizada pelo mercado, entretanto uma
tecnologia de alto desempenho.
2
2.1 DADOS
Dado a estrutura fundamental sobre a qual um sistema de informao
constitudo. Smbolo intencionalmente destacado para representar uma caracterstica ou
propriedade da realidade a ser tratada. [Pompilho, 1995].
Nvel Visual o mais alto nvel de abstrao e descreve apenas parte do banco
de dados representado por uma viso. Este nvel definido para simplificar a
interao dos usurios com os BD.
3 MODELO DE DADOS
Modelo de Dado uma coleo de ferramentas conceituais que ajudam a formar
e descrever a estrutura de dados de um SGBD. Os primeiros modelos de dados
utilizados foram o modelo hierrquico e o modelo de rede. Em meados anos 70 um
novo modelo se imps como padro nos SGDB da poca. Esse modelo foi o modelo
relacional, que possua uma estrutura extremamente simples, sendo essa uma das razes
pela sua rpida difuso entre os ambientes comercias. Acompanhado por essa rpida
difuso estavam suas limitaes que no demoraram a aparecer. Decorrente a essas
limitaes, no demorou a surgir novas extenses do modelo relacional a fim de efetuar
correes e melhorias.
Dentre todas as novas extenses, destaca-se o modelo relacional nonormalizado. Outro destaque desse perodo o surgimento de alguns modelos
conceituais, com o objetivo de facilitar a modelagem de dados, em um nvel mais
elevado que no modelo relacional. Nessa categoria ser abordado o modelo de entidade
e relacionamento.
Cada registro pode ter quantos registros-filho quiser, porm s poder ter apenas
um registro-pai. Diante disso as ligaes entre registro-pai para registro-filho de um
para zero ou muitos.
Devido restrio citada acima, o contedo de um registro-pai pode ser
repetidos diversas vezes. Este fato pode ocasionar tanto desperdcio de espao devido
quantidade de informaes repetidas, como tornar o banco inconsistente caso uma
possvel atualizao no seja efetuada em todos os registros repetidos.
Nome
Matria
Mdia
Jos
Lgica
Carlos
Clculo
Nome
Matria
Nota
Jos
Lgica
7
8
Carlos
Clculo
7
7
11
executado pelo analista que usando um processo intelectual capaz de abstrair esse
estudo da realidade e representar os objetos dentro de um contexto.
14
4.3 HERANA
Comparando e analisando objetos do mundo real, podemos evidenciar atributos
e comportamentos em comuns entre objetos, fazendo com que esses sejam agrupados
em um mesmo tipo de classes. Entretanto, aprofundando um pouco mais na analise e
observao, descobre-se que alguns desses objetos pertencentes a essa classe ainda
possuem caractersticas prprias alem daquelas em comum. Diante disso o mecanismo
de herana consegue suprir essa diferena entre as caractersticas dos objetos.
De um modo mais especifico podemos definir herana como a capacidade de
uma classe herdar os atributos e comportamentos de outra classe. Neste casso a classe
herdada denominada de superclasse e a classe herdeira denominada de subclasse.
Assim a subclasse herda atributos e comportamentos da classe imediatamente superior
a superclasse.
15
A herana na OO pode ser nica onde uma classe herda caractersticas de apenas
uma classe ou mltipla onde uma classe pode herdar caractersticas de uma ou mais
classes. No so todas as linguagens de POO que tem suporte para heranas mltiplas.
Um fator muito importante na herana o fato de que se deve tomar um enorme
cuidado na manuteno desse recurso, pois qualquer tipo de mudana de uma
superclasse acarreta imediatamente a propagao para as subclasses.
4.4 Polimorfismo
Pelo dicionrio temos a seguinte definio de polimorfismo: Particularidade de
certas substancias que tomam formas muito diversas; multiforme; que se apresenta sob
numerosas formas.
Para OO, polimorfismo o principio em que classes derivadas de uma mesma
superclasse
podem
invocar
operaes
que
tm
mesma
assinatura,
mas
4.5 ENCAPSULAMENTO
O encapsulamento ou tambm conhecido como ocultao de informaes, uma
tcnica que consiste em separar os aspectos internos dos aspectos externos de um
objeto, isto determinados detalhes ficam ocultos, assim como o nome sugere, aos
demais objetos tendo como referencia apenas ao prprio objeto. De outra forma pode-se
16
afirmar que encapsulamento a proteo da estrutura interna do objeto por traz dos
mtodos.
Essa caracterstica muito importante, pois possibilita uma maior independncia
de dados, uma vez que a implementao das estruturas de dados dos objetos no precisa
ser conhecida por quem utiliza os objetos.
Vale lembra que o encapsulamento estabelece uma dependncia com a relao
de herana, pois objetos da subclasse herdam todas as definies de atributos e
operaes da superclasse.
17
19
20
Por chamada explcita onde o objeto pode se tornar persistente aps a sua
criao atravs de comandos reservados.
5.3.4 ENCAPSULAMENTO
De acordo com [NAU99], o conceito de encapsulameno para BDOO continua
sendo o mesmo, porm, quando se faz uma consulta ao banco de dados, no possvel
prever todas as consultas e atualizaes que o usurio possa desejar. Assim, no se pode
agregar todos os mtodos nas classes de antemo.
Sendo assim pode-se considerar que o encapsulamento no adequado aos
BDOO em algumas situaes, entretanto o encapsulamento uma das caractersticas
fundamentais para POO e descartar o seu uso em BDOO pode descaracterizar
parcialmente o conceito de OO.
24
5.4.1 TRANSAES
Tradicionalmente, uma transao um programa que l ou grava objetos
persistentes. [KHO94]
Transao um conceito fundamental de todo sistema de banco de dados. O
conceito fundamental de transao englobar vrios passos em uma nica operao. Os
espaos intermedirios entre esses passos no so vistos pelas demais transaes
simultneas e caso alguma falha impea por ventura a finalizao da transao, ento
nenhum dos passos intermedirios ir afetar o banco de dados, esteja ela em estado de
executado, em execuo ou a executar.
Uma transao deve levar o banco de dados de um estado coerente para outro.
Para que essa coerncia ocorra, cada transao de um banco de dados deve passar pelo
teste de ACID (Atomicidade, Coerncia, Isolamento e Durabilidade).
Atomicidade emprega o conceito de que uma transao executada por
completo ou no executada.
25
5.4.2 CONCORRNCIA
Concorrncia para SGBD permite o acesso simultneo aos dados para diferentes
usurios. O mais notvel algoritmo de controle de concorrncia existente para SGBD
so os bloqueios, que se baseiam em uma estratgia de no deixar transaes serem
executadas atravs de bloqueios, caso haja conflito no acesso e/ou atualizao de um
objeto. Em SGBDOO cada objeto persistente pode ser bloqueado. Isto normalmente
feito por meio de uma tabela de bloqueio que armazena os OID dos objetos bloqueados.
Existem vrios tipos (modos) de bloqueios, porm os dois modos mais simples
so:
27
Modo de Leitura
Modo de Gravao
O modo de leitura (modo compartilhado) permite que diversas transaes de
operaes de leituras sejam executadas no mesmo objeto concorrentemente. O modo de
gravao (modo exclusivo) reserva o acesso (operaes de leitura e gravao) de um
objeto transao que contem esse bloqueio no momento. Quando uma transao
mantm um bloqueio exclusivo, sobre um objeto, nenhum outro bloqueio pode ser
disponibilizado. Esse controle do uso de bloqueio feito por um recurso conhecido
como matriz de compatibilidade. Essa matriz gerencia se a solicitao de bloqueio
pode ser concedida ou no.
Segundo [KHO94] existem dois aspectos relevantes no que diz respeito ao
controle de concorrncia em SGBDOO.
Bloqueio de hierarquia de classe: as classes em BDOO so organizadas
em hierarquias de herana. Caso uma superclasse venha a ser bloqueada,
o mesmo ocorrer de forma implcita para todas as suas subclasses, que
so descendentes diretas da superclasse.
Bloqueio de objeto complexo: os BDOO podem conter objetos que
referenciam ou incorporam outros objetos, isto pode causar problemas,
pois algum objeto complexe pode possuir subobjetos bloqueados,
ocasionando problemas de atualizaes e/ou possveis problemas de
acesso. Tal problema pode ser resolvido pelo bloqueio de inteno. Neste
bloqueio as subclasses de uma classe no so bloqueadas implicitamente.
28
29
5.4.4 VERSIONAMENTO
O controle de verso uma caracterstica importante e presente em alguns
sistemas como, por exemplo, CAD ou CASE. A necessidade de armazenar verses
anteriores devido a uma possvel situao que seja imprescindvel o uso desta verso
muito comum hoje em dia em determinadas aplicaes. Com isto, assim que um objeto
sofre uma alterao no banco de dados, essencial o armazenamento da verso recm
atualizada.
De acordo com [KHO94], o gerenciamento de verses de um BDOO consiste
em um conjunto de ferramentas e construes que automatizam ou simplificam a
construo e a organizao de verses ou configuraes. Sem estas ferramentas, caberia
ao usurio criar e manter suas prprias verses.
Assim que um objeto versionado, uma espcie de raiz que aponta para todas as
verses do objeto criada. Durante o versionamento, um objeto pode sofrer desde
alteraes em seu estado at modificaes estruturais. A OID a propriedade comum
entre todas as verses de um objeto.
5.4.5 CONSULTAS
O acesso a dados armazenados feito basicamente de duas formas. Uma pela
linguagem de programao, da qual utiliza os OID dos objetos e a outra por
linguagem de consulta, em geral derivadas as SQL.
O acesso aos dados por meio de linguagem de programao vem tentar resolver
umas das principais criticas que os SGBD relacionais sofrem o chamado no
casamento de impedncias. Quando se utiliza uma linguagem de programao
30
31
6 EXEMPLOS DE BDOO
Nos ltimos anos foram produzidas inmeras implementaes de BDOO, entre
prottipos de empresa, pesquisas de universidades e produtos comerciais. Pode-se citar
o O2,ObjectStore, Orion, Postgres entre outros.
A seguir sero apresentadas as principais caractersticas de alguns sistemas
existentes. Tambm sero abordadas as estruturas de linguagens de definio e de
manipulao de dados dos respectivos sistemas.
6.1 O2
O sistema O2 inicialmente foi criado na Frana em 1988 atravs de um projeto
experimental conveniado. Com o fim do convnio em 1991 o sistema passou de projeto
experimental para um produto sendo comercializado pela empresa recm criada O2
Technology.
O sistema O2 fornece um ambiente grfico para criao de telas (O2Look), um
browser para navegar entre os objetos do banco de dados. Para facilitar a migrao a
partir de SGBD relacionais, h uma ferramenta de converso e migrao
(O2DBAccess). O sistema O2 fornece integrao com as linguagens de programao C,
C++ e recentemente Java.
A declarao de dados ocorre atravs de uma linguagem (O2C) que se originou a
partir da linguagem C. Esta linguagem permite herana mltipla e no tem distino na
declarao de objetos persistentes dos no-persistentes.
32
33
6.2 OBJECTSTORE
O sistema Objectstore um banco de dados produzido pela empresa Object
Design Inc. Este sistema foi criado com o intuito de tornar a linguagem C++ uma
linguagem para banco de dados.
A principal caracterstica do sistema Objectstore a uniformidade no tratamento
de objetos comuns e persistentes, sem grande perda de desempenho, graas a um
esquema de uso de memria virtual.
34
35
6.3 POSTGRES
O sistema Postgres um prottipo desenvolvido na universidade da California,
Berkeley. Foi construdo em linguagem C e teve como referncia o Ingress (banco de
dados relacional).
O Postgres baseado em um modelo relacional estendido, oferecendo objetos,
OID, objetos compostos, herana mltipla, verses, dados histricos (sendo esta uma
das principais caractersticas do banco de dados em questo) e uma linguagem de
consulta denominada Postquel.
A declarao de dados no Postgres tem como base o modelo relacional. O
sistema oferece um tipo abstrato de dados, para que se possa definir um novo tipo de
base de dados.
36
6.4 JASMINE
O sistema Jasmine foi criado no Japo pela empresa Fujitsu. Inicialmente o
gerenciador de objetos foi implementado como um tipo de casca de um banco de
dados relacional no-normalizado. Atualmente o Jasmine comercializado pela
Computer Associates, sendo um dos primeiros BDOO a ser comercializado por uma
empresa de software de grande porte.
Para definio e manipulao de dados o Jasmine utiliza a linguagem ODQL
(Object Database Query Language). A ODQL pode ser usada tanto como linguagem de
consulta, como pode ser embutida em aplicativos escritos em C e C++.
37
O Jasmine possui recursos de herana mltipla. Sempre que uma classe criada,
existe a necessidade de informar a qual famlia a mesma pertence. A unicidade do nome
da classe dentro de uma famlia um fator fundamental.
7 CONCLUSO
Com o crescimento da utilizao dos conceitos OO para desenvolvimento de
aplicaes de alto nvel, torna-se cada vez mais necessrio que se utilize uma forma de
armazenamento em que os objetos possam ser modelados e armazenados sem que haja a
necessidade de transformao dos mesmos.
As necessidades de funcionalidade e desempenho da nova dimenso da
computao exigem bancos de dados que transcendam os limites do modelo relacional.
Com a utilizao dos conceitos de OO possvel uma representao realista do mundo
dos dados complexos.
Ao estudar BDOO percebe-se que sua conceituao traz novos recursos antes
no existentes em bancos de dados puramente relacionais. Estes recursos surgiram pelo
largo uso de linguagens de programao orientada a objetos. Um dos desafios, em face a
este contexto de evoluo da modelagem de dados sugerido pelos desenvolvedores de
bancos orientados a objetos, a grande quantidade de aplicaes estveis que usam
bancos relacionais. Por isso, grande o esforo em prol de padronizar as linguagens de
acesso aos BDOO de forma a difundir seu uso e aplicabilidade.
errado pensar puramente que o BDOO so os substitutos da tecnologia atual
de banco de dados relacionais. Eles esto disponveis para situaes distintas, que
devem ser bem medidas para evitar sub aproveitamento de seus detalhes de
funcionamento.
Talvez motivado por esta situao que grandes projetos de bancos de dados
relacionais j adotaram alguns conceitos da orientao a objetos como a herana, tipos
abstratos de dados e funes personalizadas. Estes bancos, conhecidamente, como
39
40
REFERNCIAS BIBLIOGRFICAS
[SET05]
41