terça-feira, 23 de outubro de 2012

Modelo de Banco de Dados

- Banco de dados orientado a objetos
- Banco de dados relacional
- Banco de dados hierarquico
- Banco de dados em redes
                   
Modelo orientado a objetos
Um banco de dados orientado a objetos é um banco de dados em que cada informação é armazenada na forma de objetos, ou seja, utiliza a Estrutura de dados denominada Orientação a objetos, a qual permeia as linguagens mais modernas. O gerenciador do banco de dados para um orientado a objeto é referenciado por vários como ODBMS ou OODBMS.
Recursos Técnicos
Num banco de dado orientado a objetos puro, os dados são armazenados como objetos onde só podem ser manipulados pelos métodos definidos pela classe de que estes objetos pertencem. Os objetos são organizados numa hierarquia de tipos e subtipos que recebem as características de seus supertipos. Os objetos podem conter referências para outros objetos, e as aplicações podem conseqüentemente acessar os dados requeridos usando um estilo de navegação de programação.
A maioria dos bancos de dados também oferece algum tipo de linguagem de consulta, permitindo que os objetos sejam localizados por uma programação declarativa mais próxima. Isto é, na área das linguagens de consulta orientada a objetos. A integração da consulta com a interface de navegação faz a grande diferença entre os produtos que são encontrados. Uma tentativa de padronização foi feita pela ODMG (Object Data Management Group) com a OQL (Object Query Language).
O acesso aos dados pode ser rápido porque as junções são geralmente não necessárias (como numa implementação tabular de uma base de dados relacional), isto é, porque um objeto pode ser obtido diretamente sem busca, seguindo os ponteiros.
Outra área de variação entre os produtos é o modo que este schema do banco de dados é definido. Uma característica geral, entretanto, é que a linguagem de programação e o schema do banco de dados usam o mesmo modo de definição de tipos.
Aplicações multimídia são facilitadas porque os métodos de classe associados com os dados são responsável pela correta reprodução.
Muitos bancos de dados orientados a objetos oferecem suporte a versões. Um objeto pode ser visto de todas as várias versões. Ainda, versões de objetos podem ser tratadas como objetos na versão correta. Alguns bancos de dados orientados a objetos ainda provem um suporte sistemático a triggers e constraints que são as bases dos bancos ativos.

Modelo relacional
O modelo relacional é um modelo de dados, adequado a ser o modelo subjacente de um Sistema Gerenciador de Banco de Dados (SGBD), que se baseia no princípio em que todos os dados estão guardados em tabelas (ou, matematicamente falando, relações). Toda sua definição é teórica e baseada na lógica de predicados e na teoria dos conjuntos.
O conceito foi criado por Edgar Frank Codd em 1970, sendo descrito no artigo "Relational Model of Data for Large Shared Data Banks". Na verdade, o modelo relacional foi o primeiro modelo de dados descrito teoricamente, os bancos de dados já existentes passaram então a ser conhecidos como (modelo hierárquico, modelo em rede ou Codasyl e modelo de listas invertidas).
O modelo relacional
O modelo relacional para gerência de bases de dados (SGBD) é um modelo de dados baseado em lógica e na teoria de conjuntos.
Em definição simplificada, o modelo baseia-se em dois conceitos: conceito de entidade e relação - Uma entidade é um elemento caracterizado pelos dados que são recolhidos na sua identificação vulgarmente designado por tabela. Na construção da tabela identificam-se os dados da entidade. A atribuição de valores a uma entidade constrói um registro da tabela. A relação determina o modo como cada registro de cada tabela se associa a registros de outras tabelas.
Historicamente ele é o sucessor do modelo hierárquico e do modelo em rede. Estas arquiteturas antigas são até hoje utilizadas em alguns data centers com alto volume de dados, onde a migração é inviabilizada pelo custo que ela demandaria; existem ainda os novos modelos baseados em orientação ao objeto, que na maior parte das vezes são encontrados como kits em linguagem formal.
O modelo relacional foi inventado pelo Dr. Codd e subsequentemente mantido e aprimorado por Chris Date e Hugh Darwen como um modelo geral de dados. No Terceiro Manifesto (1995) eles mostraram como o modelo relacional pode ser estendido com características de orientação a objeto sem comprometer os seus princípios fundamentais.
A linguagem padrão para os bancos de dados relacionais, SQL, é apenas vagamente remanescente do modelo matemático. Atualmente ela é adotada, apesar de suas restrições, porque ela é antiga e muito mais popular que qualquer outra linguagem de banco de dados.
A principal proposição do modelo relacional é que todos os dados são representados como relações matemáticas, isto é, um subconjunto do produto Cartesiano de n conjuntos. No modelo matemático (diferentemente do SQL), a análise dos dados é feita em uma lógica de predicados de dois valores (ou seja, sem o valor nulo); isto significa que existem dois possíveis valores para uma proposição: verdadeira ou falsa. Os dados são tratados pelo cálculo relacional ou álgebra relacional.

segunda-feira, 22 de outubro de 2012


Modelo hierárquico
Uma base de dados hierárquica é um tipo de sistema de gerenciamento de banco de dados que conecta registros numa estrutura de dados em árvore através de ligações de tal modo que cada tipo de registro tenha apenas um possuidor. A base de dados se baseia em um Modelo de Entidades e Relacionamentos: cada registro é uma coleção de atributos (campos), cada um dos quais contendo somente uma informação; uma ligação é a associação entre dois registros. Por exemplo: em uma dada base de dados comercial, uma encomenda (i.e. registro) é possuída por um único cliente.
As estruturas hierárquicas foram muito usadas nos primeiros sistemas de gestão de bases de dados mainframe. No entanto, devido às suas restrições, é freqüente que não possam ser usados para relacionar estruturas que existem no mundo real. As relações hierárquicas entre diferentes tipos de dados podem tornar muito fácil a resposta a algumas questões, mas muito difícil a resposta a outras. Se a relação um-para-muitos for violada (por exemplo, um paciente pode ter mais do que um médico) a hierarquia transforma-se numa rede
Os registros são organizados como árvores com raiz. Cada árvore tem uma raiz, que é um pseudonó (cada nó é um registro, mas a raiz tem apenas a função de ser uma origem comum). Cada árvore com raiz é referida como uma árvore de base de dados; a base de dados hierárquica é uma coleção de árvores da base de dados (que formam uma floresta). Para ser mais preciso sobre o que significa uma árvore com raiz:
1. Não podem existir ciclos entre os nós (registros);
2. Ligações formadas na árvore devem ser tais que somente retratem relações um-para-um ou um-para-muitos entre um pai e um filho.
Assim, o conteúdo de um registro particular pode ter que ser replicado em vários locais diferentes. A réplica de registro possui duas grandes desvantagens: pode causar inconsistência de dados quando houver atualização, e o desperdício de espaço é inevitável.
Usa-se um diagrama de estrutura de árvore para apresentar o esquema para uma base de dados hierárquica. Consiste de dois componentes básicos: caixas (que correspondem ao tipo registro) e linhas (que correspondem às ligações). Seu propósito é especificar a estrutura lógica geral da base de dados.



Modelo em Redes
O modelo em redes surgiu como uma extensão ao modelo hierárquico, eliminando o conceito de hierarquia e permitindo que um mesmo registro estivesse envolvido em várias associações. No modelo em rede, os registros são organizados em grafos onde aparece um único tipo de associação (set) que define uma relação 1:N entre 2 tipos de registros: proprietário e membro. Desta maneira, dados dois relacionamentos 1:N entre os registros A e D e entre os registros C e D é possível construir um relacionamento M:N entre A e D. O gerenciador Data Base Task Group (DBTG) da CODASYL (Committee on Data Systems and Languages) estabeleceu uma norma para este modelo de banco de dados, com linguagem própria para definição e manipulação de dados. Os dados tinham uma forma limitada de independência física. A única garantia era que o sistema deveria recuperar os dados para as aplicações como se eles estivessem armazenados na maneira indicada nos esquemas. Os geradores de relatórios da CODASYL também definiram sintaxes para dois aspectos chaves dos sistemas gerenciadores de dados: concorrência e segurança. O mecanismo de segurança fornecia uma facilidade na qual parte do banco de dados (ou área) pudesse ser bloqueada para prevenir acessos simultâneos, quando necessário. A sintaxe da segurança permitia que uma senha fosse associada a cada objeto descrito no esquema. Ao contrário do Modelo Hierárquico, em que qualquer acesso aos dados passa pela raiz, o modelo em rede possibilita acesso a qualquer nó da rede sem passar pela raiz. No Modelo em Rede o sistema comercial mais divulgado é o CAIDMS da Computer Associates. O diagrama para representar os conceitos do modelo em redes consiste em dois componentes básicos: Caixas, que correspondem aos registros e Linhas, que correspondem às associações.