| |
ARTIGOS
|
| Modelos de Bases de Dados |
| Modelo Relacional |
| SGBD - Sistema Gestor de Bases de Dados |
| SQL - Structured Query Language |
|
| Modelos de Bases de Dados |
A maneira mais prática de classificar bases de dados é de acordo com a forma que seus dados são vistos pelo usuário, ou seja, seu modelo de dados. Diversos modelos foram e vem sendo utilizados ao longo da história, com vantagens para um ou para outro por determinados períodos.
Actualmente, a classificação mais comum citaria 4 modelos básicos:
- Modelo Hierárquico
- Modelo em Rede
- Modelo Relacional
- Modelo Orientado a Objecto
Porém, outros modelos podem ser citados, incluindo:
- Modelo de Entidades e Relacionamentos
- Modelo de lista invertida
- Modelo Relacional Estendido
- Modelo Semi-Estruturado
Historicamente, o modelo de bases de dados em rede foi implementado primeiro; porém o primeiro produto comercial usava o modelo de bancos de dados hierárquico, que nada mais é que uma versão simplificada do primeiro. Ambos os modelos foram resultado da busca de usar mais efectivamente os novos dispositivos de memória secundária de acesso directo, que substituiam os cartões perfurados e as fitas magnéticas. Isso aconteceu na década de 1960.
Em 1970 E.F. Codd propôs o modelo de dados relacional que surgiu e ganhou destaque teórico imediato. Porém, a implementação do modelo exigia pesquisas e só na década de 1980 eles iam começar a ganhar o mercado, se estabilizando totalmente como líder do mercado a partir da década de 1990.
Podemos identificar o aparecimento do que pode ser chamado modelo plano (tabular) para fins mais directos e simples. Nesse caso, os dados estão simplesmente arranjados em uma única matriz bi-dimensional de elementos de dados na qual todos os membros de uma dada coluna possuem valores de mesmo tipo, e todos os membros de uma linha estão relacionados entre si. Seu melhor exemplo são as folhas de excell.
O único modelo que foi extensamente tratado de forma teórica foi o modelo relacional. Os modelos pré-existentes foram fruto de implementações, enquanto os modelos subsequentes, como o modelo orientado a objectos, não apresentavam um campo tão rico para novas teorias, mas apresentam grandes desafios para a implementação eficiente das operações necessárias.
INICIO
|
|
| Modelo Relacional |
O modelo relacional para gestão de bases de dados (SGBD) é um modelo de dados baseado em lógica de predicados e na teoria de conjuntos.
Outros modelos são o modelo hierárquico e o modelo em rede. Alguns sistemas utilizando estas arquitecturas antigas ainda estão em operação hoje dia em data centers com alto volume de dados ou onde sistemas existentes são tão complexos que o custo de migração para o modelo relacional é muito elevado. Existem ainda os novos modelos baseados em orientação ao objecto, apesar que muitos destes são kits de construção de SGBD's, ao invés de um SGBD propriamente dito.
O modelo relacional foi o primeiro modelo de bases de dados formal. Depois deste ser definido, modelos formais foram feitos para descrever bases de dados hierárquicas e em rede. Estes modelos existiam antes do modelo relacional, mas somente passaram a ter modelos formais depois que o modelo relacional foi definido.
O modelo relacional foi inventado por Dr. Ted 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 ao objecto sem comprometer os seus princípios fundamentais.
A linguagem padrão para as bases de dados relacionais, SQL, é apenas vagamente remanescente do modelo matemático. Actualmente ela é adoptada, apesar de suas restrições, porque é antiga e muito mais popular que qualquer outra linguagem de bases 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.
O modelo relacional permite ao projectista criar um modelo lógico consistente da informação a ser armazenada. Este modelo lógico pode ser refinado através de um processo de normalização. Uma base de dados construída puramente baseada no modelo relacional estará inteiramente normalizada. O plano de acesso, outras implementações e detalhes de operação são tratados pelo SGBD, e não devem ser reflectidos no modelo lógico. Isto se contrapõe à prática comum para SGBD's SQL nos quais o ajuste de desempenho frequentemente requer mudanças no modelo lógico.
Os blocos básicos do modelo relacional são o domínio, ou tipo de dado. Um tuplo é um conjunto de atributos que são ordenados em pares de domínio e valor. Uma variável relacional é um conjunto de pares ordenados de domínio e nome que serve como um cabeçalho para uma relação. Uma relação é um conjunto desordenado de tuplos. Apesar destes conceitos matemáticos, eles correspondem basicamente aos conceitos tradicionais das bases de dados. Uma relação é similar ao conceito de tabela e um tuplo é similar ao conceito de linha.
O princípio básico do modelo relacional é o princípio da informação: toda informação é representada por valores em relações. Assim, as variáveis relacionais não são relacionadas umas às outras no momento do projecto. Entretanto, os projectistas utilizam o mesmo domínio em várias variáveis relacionais, e se um atributo é dependente de outro, esta dependência é garantida através da integridade referencial.
INICIO
|
| |
| SGBD - Sistema Gestor de Bases de Dados |
| Um sistema gestor de bases de dados é um sistema extremamente complexo, responsável pela persistência, organização e recuperação dos dados. As funções básicas que este sistema deve disponibilizar são:
-
um modelo que defina o esquema dos dados armazenados no sistema. Os três modelos mais conhecidos são: hierárquico, em rede e relacional;
-
estruturas de dados optimizadas, que possam manipular grandes quantidades de informação;
-
uma linguagem que possibilite a consulta e actualização dos dados armazenados. Esta linguagem também é responsável pelo controle de acesso dos usuários do sistema, um mecanismo transaccional que garanta a consistência, entre as operações, dos dados armazenados
O SGBD como interface entre aplicações e a base de dados
|
| INICIO |
| |
| SQL - Structured Query Language |
|
Structured Query Language, ou Linguagem de Questões Estruturadas ou SQL, é uma linguagem de pesquisa declarativa para bases de dados relacionais. Muitas das características originais do SQL foram inspiradas na álgebra relacional.
Embora o SQL tenha sido originalmente criado pela IBM, rapidamente surgiram vários "dialectos" desenvolvidos por outros produtores. Essa expansão levou à necessidade de ser criado e adaptado um padrão para a linguagem. Esta tarefa foi realizada pela American National Standards Institute (ANSI) em 1986 e ISO em 1987.
O SQL foi revisto em 1992 e a esta versão foi dado o nome de SQL-92. Foi revisto novamente em 1999 e 2003 para se tornar SQL:1999 (SQL3) e SQL:2003, respectivamente. O SQL:1999 usa expressões regulares de emparelhamento, queries recursivas e triggers. Também foi feita uma adição controversa de tipos não-escalados e algumas características de orientação a objecto. O SQL:2003 introduz características relacionadas ao XML, sequências padronizadas e colunas com valores de auto-generalização (inclusive colunas-identidade).
Tal como dito anteriormente, o SQL, embora padronizado pela ANSI e ISO, possui muitas variações e extensões produzidos pelos diferentes fabricantes de sistemas gestores de bases de dados. Tipicamente a linguagem pode ser migrada de plataforma para plataforma sem mudanças estruturais principais.
Outra aproximação é permitir código de idioma processual ser embutido e interagir com a base de dados. Por exemplo, o Oracle e outros incluem Java na base de dados, enquanto o PostgreSQL permite que funções sejam escritas em Perl, Tcl, ou C, entre outras linguagens. |
| INICIO |
|