You are on page 1of 10

PARTE 1 CONCEITOS BÁSICOS

1.1 INTRODUÇÃO
Base de Dados: “Coleção de dados inter-relacionados”;
Dado: “Valor de um campo armazenado, matéria-prima para obtenção de
informação”;
Informação: “Dados compilados e processados de acordo com solicitação de
consultas e análises”.

Há uma grande necessidade em realizar o armazenamento de informações que não se


encontram isoladas umas das outras. Além de uma forma adequada para definir o
armazenamento destas informações, os usuários desejam realizar (consultar) um
determinado subconjunto de dados, atualizar ou modificar a estrutura dos dados e
eliminar informações não mais necessárias.

Uma solução para este problema foi apresentada com o advento da tecnologia em Banco
de Dados (ou Base de Dados ou BD). Uma definição mais precisa de Banco de Dados
não existe formalmente, contudo pode-se dizer que:

• Um Banco de Dados é uma coleção logicamente coerente de dados com um


determinado significado inerente. Isto significa que um conjunto aleatório de
dados não pode ser considerado um Banco de Dados.

• Um Banco de Dados é projetado, construído e composto por um conjunto de


dados para um propósito específico. Existe um grupo de usuários ou algumas
aplicações pré-concebidas onde estes dados serão utilizados.

• Um Banco de Dados representa aspectos de uma parte restrita do mundo


real, denominado de mini-mundo. Alterações que ocorra no mini-mundo são
refletidas no Banco de Dados.

Resumindo, um BD representa uma fonte de onde informações são derivadas, possui um


nível de interação com eventos que ocorrem no mundo real, e uma audiência que está
interessada em seu conteúdo.

1.1.1 SGBD – Sistema Gerenciador de Banco de Dados


Além do conceito de BD, outros são necessários para se compreender o ambiente de um
BD. Um Sistema de Gerenciamento de Banco de Dados (SGBD) é uma coleção de
programas que permite ao usuário definir, construir e manipular Banco de Dados para as
mais diversas aplicações.

Definir um BD envolve a especificação e a descrição detalhada dos tipos de


dados a serem armazenados.
Construir um BD é o processo de armazenamento dos dados em si em um
determinado meio físico que é controlado pelo SGBD.

Manipular um BD inclui uma série de funções para se realizar operações de


consulta, atualizações e remoções de dados do BD.

O Banco de Dados e o conjunto de programas para acessá-lo são juntos denominados


de Sistema Gerenciador de Banco de Dados (SGBD).

O trabalho com uma base de dados implica diversos tipos de operações sobre os
ficheiros e os dados que eles contêm, tais como:

• Inserir novos registos;


• Procurar e visualizar um registo;
• Eliminar registos existentes;
• Selecionar registos e/ou campos;
• Ordenar os registos de um ficheiro;
• Juntar ou intercalar registos de ficheiros diferentes;
• Fazer cópias ou duplicações de ficheiros;
• Alterar a estrutura de campos de um ficheiro;
• Eliminar ficheiros;

O SGBD tem como principais funções:

• Controle de Redundância: em um sistema tradicional de controle de arquivos


cada usuário normalmente apresenta seus próprios arquivos armazenando o
conjunto de dados que é de seu interesse, e nestes casos é comum ocorrer
redundância de dados. Esta redundância consiste no armazenamento de uma
mesma informação em locais diferentes, o que pode provocar sérios
problemas. Alguns destes problemas consistem inicialmente no aumento do
esforço computacional para realizar a atualização destes dados e também o
aumento do espaço necessário para o armazenamento dos dados. Mas o
problema mais sério é que a representação dos dados desta forma pode tornar-
se inconsistente, pois duas informações podem aparecer em locais distintos,
mas apresentando valores diferentes. Em um sistema de BD as informações só
se encontram armazenadas em um único local ou estão existindo duplicação
controlada dos dados.

• Compartilhamento dos Dados: o SGBD deve incluir um software para o


controle de concorrência ao acesso dos dados em um ambiente multi-usuário,
de forma a possibilitar o compartilhamento dos dados, garantindo que se
vários usuários tentar realizar operações de atualização sobre um mesmo
conjunto de dados, o resultado destas operações possa ser correto. Outro
mecanismo que suporta a noção de compartilhamento de dados consiste na
facilidade para definir visões de usuário, o qual torna disponível uma porção
específica dos dados do BD de acordo com o seu interesse.
• Controle de Acesso: quando vários usuários compartilham os dados, é comum
que alguns não apresentem autorização para acesso a todo o BD. Além disso,
alguns usuários podem apresentar a autorização para apenas leitura dos dados,
sendo impedido a este de realizar qualquer modificação no BD. O SGBD deve
fornecer serviços que permitam ao DBA definir os níveis de segurança e de
autorização para os usuários do BD.

• Controle de Transações: uma transação é um conjunto de operações sobre o


BD que devem ser executados integralmente e sem falhas ou interrupções. O
SGBD deve realizar o controle das transações para que sejam executadas com
segurança.

• Possibilidade de Múltiplas Interfaces: vários usuários representam também


necessidades diversas no que refere aos tipos de interfaces fornecidas pelo
SGBD. Interfaces para consultas de dados, programação, e interfaces baseadas
em menus ou em linguagem natural são exemplos de alguns tipos que podem
estar disponíveis.

• Reforçar Restrições de Integridade: a maioria dos aplicativos apresenta


serviços que possibilitam garantir a integridade dos dados no BD. A restrição
de integridade mais simples consiste na especificação do padrão de formato
para os dados ou valores assumidos como “default”.

• Providenciar “Backup” e Recuperação de Dados: o SGBD deve apresentar


facilidades para recuperação de falhas provocadas pelo hardware ou pelo
software.

• Independência de Dados: o SGBD possibilita o desenvolvimento de


programas aplicativos que não possuem a descrição real de como os dados
(arquivos) estão fisicamente armazenados. Desta forma, alterações nas
estruturas dos arquivos do BD não afetam os programas aplicativos. Os três
níveis podem ser utilizados para melhor compreender o conceito de
independência de dados. Podem-se apresentar dois tipos de independência de
dados:

• Independência Lógica dos Dados: consiste na capacidade de alterar o


esquema conceitual sem provocar modificações nos esquemas externos ou nos
programas aplicativos.

• Independência Física dos Dados: consiste na capacidade de alterar o


esquema interno sem provocar modificações no esquema conceitual.

Apesar de todas as vantagens citadas anteriormente sobre um SGBD, há situações em


que deve-se ponderar sobre sua utilização, como por exemplo, o alto investimento
inicial e possibilidade de compra de um novo hardware; ou a possibilidade de
insatisfação no desempenho geral do sistema que pode ser provocado pelas funções de
segurança, controle de concorrência, recuperação e manutenção de integridade dos
dados.

Para que um SGBD possa fornecer as características de independência de dados, suporte


a múltiplas visões de vários usuários, entre outras, torna-se necessário a existência de
uma organização no sistema para que isto seja possível.

1.1.2 SBD – Sistemas de Banco de Dados


O Sistema de Banco de Dados (SBD): é um sistema de manutenção de registros por
computador, envolvendo quatro componentes principais:
• Dados,
• Hardware,
• Software e
• Usuários.

O sistema de bancos de dados pode ser considerado como uma sala de arquivos
eletrônica [Date91].

A base de dados e o software de gerenciamento da base de dados compõem o chamado


Sistema de Base de Dados. A Figura 1.1 apresenta um esquema genérico de um Sistema
de Banco de Dados em sua interação com seus usuários.

Figura 1.1 – Sistemas de Banco de Dados


Objetivos:

Isolar os usuários dos detalhes mais internos do banco de dados (abstração de dados);
Prover independência de dados às aplicações (estrutura física de armazenamento e à
estratégia de acesso).

Vantagens:

• Rapidez na manipulação e no acesso à informação;


• Redução do esforço humano (desenvolvimento e utilização);
• Disponibilização da informação no tempo necessário;
• Controle integrado de informações distribuídas fisicamente;
• Redução de redundância e de inconsistência de informações,
• Compartilhamento de dados;
• Aplicação automática de restrições de segurança;
• Redução de problemas de integridade.

1.1.3 Dicionário de Dados


Bons SGBD’s normalmente apoiam a inclusão de descrições textuais sobre cada um dos
arquivos do BD, como também de cada usuário e programas aplicativos que são
utilizados. Estas informações são incluídas no Dicionário de Dados para servirem de
apoio aos novos projetistas ou programadores que possam ser colocados no grupo de
trabalho, e deste modo, facilitar o entendimento dos ambientes que está sendo utilizado.

1.1.4 Usuários
Um Banco de Dados pode apresentar diversos usuários cada qual com uma necessidade
em particular, e com um envolvimento diferente com os dados do BD. Os usuários
podem ser classificados nas seguintes categorias:

• Administradores do BD (DBA): o DBA é responsável por controlar o acesso


aos dados, e por coordenar e monitorar a sua utilização, administrando os
recursos disponíveis no BD.

• Projetistas do BD: possuem a responsabilidade de identificar os dados a


serem armazenados no BD e pela escolha da estrutura apropriada utilizada
para armazená-los. Eles devem se comunicar com os possíveis usuários do
BD, obter a visão dos dados que cada um possui, integrando-as de forma a se
obter uma representação adequada de todos os dados.

• Usuários Finais: são as pessoas que interagem diretamente com o SGBD,


solicitando acesso às informações armazenadas no BD.
• Analistas de Sistemas e Programadores de Aplicações: analistas de sistemas
determinam os requisitos dos usuários finais, especialmente de usuários que
necessitam de maior interação com o BD, enquanto que os programadores de
aplicações utilizam-se destas especificações para desenvolver uma aplicação.

1.2 CONCEITOS E ARQUITETURAS DE SGBD’S

1.2.1 Modelos de Dados, Esquemas e Instâncias

Uma das características fundamentais da abordagem de base de dados é que ela fornece
algum nível de abstração de dados, pela omissão de detalhes de armazenamento de
dados que não são necessários para a maioria dos usuários. O modelo de dados é a
principal ferramenta que fornece esta abstração. Um Modelo de Dados é um conjunto de
conceitos que podem ser usados para descrever a estrutura de uma base de dados. Por
estrutura de uma base de dados entendem-se os tipos de dados, relacionamentos e
restrições pertinentes aos dados. Muitos modelos de dados também definem um
conjunto de operações para especificar como recuperar e modificar a base de dados.

1.2.1.1 Categorias de Modelos Dados

Muitos modelos de dados têm sido propostos. Podem-se classificar os modelos de dados
baseando-se nos tipos de conceitos que fornecem para descrever a estrutura da base de
dados. Modelos de Dados Conceituais ou de Alto-Nível fornecem conceitos próximos à
percepção dos usuários. Já os Modelos de Dados Físicos ou de Baixo-Nível fornecem
conceitos que descrevem os detalhes de como os dados são armazenados no
computador.

Modelos de alto-nível utilizam conceitos tais como Entidades, Atributos e


Relacionamentos. Uma entidade é um objeto que é representado na base de dados. Um
atributo é uma propriedade que descreve algum aspecto de um objeto. Relacionamentos
entre objetos são facilmente representados em modelos de dados de alto-nível, que são
algumas vezes chamados de Modelos Baseados em Objeto devido, principalmente, a
sua característica de descreverem objetos e seus relacionamentos.

Modelos de Dados de Baixo-Nível descrevem como os dados são armazenados no


computador, representando informações em formato de registros, ordem dos registros e
caminho de acesso. Um Caminho de Acesso é uma estrutura de que facilita a busca de
um registro particular na base de dados.

1.2.1.2 Esquemas e Instâncias

Em qualquer modelo de dados é importante distinguir entre a descrição da base de


dados e a base de dados propriamente dita. A descrição de uma base de dados é
chamada Esquema da Base de Dados. Um esquema de base de dados é especificado
durante o projeto da base de dados, sendo que a expectativa de mudanças não é grande.
A forma de visualização de um esquema é chamada Diagrama do Esquema. Muitos
modelos de dados têm certas convenções para, diagramaticamente, mostrar esquemas
especificados no modelo.

Os dados atualmente existentes em uma base de dados podem mudar com relativa
freqüência. Os dados da base de dados em um particular momento do tempo são
chamados Instâncias da Base de Dados (ou Ocorrências ou Estados). A base-esquema é
algumas vezes chamada de Base-Intencional e uma instância é chamada de Base-
Extensional do esquema.

Um esquema de banco de dados corresponde à definição do tipo em uma linguagem de


programação. Uma variável de um dado tipo tem um valor em particular em dado
instante. Assim, esse valor corresponde a uma instância do esquema do banco de
dados.

1.2.2 Arquitetura e Independência de Dados de SGBD’s


A arquitetura mais difundida na literatura é a Arquitetura “Three-Schema” (também
conhecida como arquitetura ANSI/SPARC), proposta por Tsichritzis & Klug em 1978.
A meta desta arquitetura, exibida na figura 1.2, é separar as aplicações de usuários da
base de dados física. Nesta arquitetura, esquemas podem ser definidos em três níveis:

• Nível Interno: tem um esquema interno que descreve a estrutura de


armazenamento físico da base de dados. O esquema interno usa um modelo de
dados físico e descreve todos os detalhes de armazenamento de dados e
caminhos de acesso à base de dados;

• Nível Conceitual: tem um esquema conceitual que descreve a estrutura de


toda a base de dados. O esquema conceitual é uma descrição global da base de
dados, que omite detalhes da estrutura de armazenamento físico e se concentra
na descrição de entidades, tipos de dados, relacionamentos e restrições. Um
modelo de dados de alto-nível ou um modelo de dados de implementação
podem ser utilizados neste nível.

• Nível Externo: ou visão possui esquemas externos ou visões de usuários.


Cada esquema externo descreve a visão da base de dados de um grupo de
usuários da base de dados. Cada visão descreve, tipicamente, a parte da base
de dados que um particular grupo de usuários está interessado e esconde deste
o restante da base de dados. Um modelo de dados de alto-nível ou um modelo
de dados de implementação podem ser usados neste nível.

!
Figura 1.2 - Arquitetura Three-Schema

Muitos SGBD’s não separam os três níveis completamente. Pode acontecer que alguns
SGBD’s incluam detalhes do nível interno no esquema conceitual. Em muitos SGBD’s
que permitem visões, os esquemas externos são especificados com o mesmo modelo de
dados usado no nível conceitual. Note que os três esquemas são apenas descrições dos
dados.

A arquitetura “three-schema” pode ser utilizada para explicar conceitos de


independência de dados, que podem ser definidos como a capacidade de alterar o
esquema de um nível sem ter que alterar o esquema no próximo nível superior. Dois
tipos de independência de dados podem ser definidos:

• Independência Lógica de Dados: É a capacidade de alterar o esquema


conceitual sem Ter que mudar os esquemas externos ou programas de
aplicação. Pode-se mudar o esquema conceitual para expandir a base de
dados, com a adição de novos tipos de registros (ou itens de dados), ou
reduzir a base de dados removendo um tipo de registro. Neste último caso,
esquemas externos que se referem apenas aos dados remanescentes não
devem ser afetados;

"
• Independência Física de Dados: É a capacidade de alterar o esquema interno
sem ter que alterar o esquema conceitual externo. Mudanças no esquema
interno podem ser necessárias devido a alguma reorganização de arquivos
físicos para melhorar o desempenho nas recuperações e/ou modificações.
Após a reorganização, se nenhum dado foi adicionado ou perdido, não
haverá necessidade de modificar o esquema conceitual.

1.3 LINGUAGENS E INTERFACES

1.3.1 Linguagens de Banco de Dados


Uma vez que o projeto do BD tenha se completado e um determinado SGBD tenha sido
escolhido para a sua implementação, a primeira "ordem do dia" consiste em realizar
uma especificação dos esquemas conceituais e internos, e os respectivos mapeamentos
entre eles. Para estas etapas o SGBD oferece uma série de linguagens. A primeira delas
consiste da Linguagem de Definição de Dados (DDL), a qual é utilizada pêlos analistas
e projetistas do BD para a definição dos esquemas. O SGBD também apresentará um
interpretador para a DDL, o qual será responsável pelo processamento dos comandos da
DDL, e realiza o armazenamento do esquema definido em estruturas internas do BD.

Uma vez definido e preenchido o BD com os seus dados, estes normalmente sofrerão
uma série de operações de acesso às informações nele armazenadas. O SGBD fornece a
Linguagem de Manipulação de Dados (DML) para a especificação destas operações. Os
comandos da DML podem aparecer embutidos em uma outra linguagem (geralmente
uma linguagem de programação de alto nível), e neste caso esta é denominada de
linguagem hospedeira, a DML é denominada de sub-linguagem de dados. De outra
forma se DML for utilizada isoladamente de uma forma interativa, possa a ser
denominada de linguagem de consulta (ou "query language").

Podemos distinguir os seguintes agrupamentos de operações típicas do trabalho com


bases de dados:

DDL - Linguagem de Definição de Dados (Operações de definição e alteração da


estrutura de uma BD).

• Criação de uma nova base de dados;


• Criação de um novo ficheiro ou tabela;
• Alteração da estrutura de campos de uma tabela;
• Criação e alteração de ficheiros de índices;
• Eliminação de ficheiros ou tabelas de uma base de dados;

DML - Linguagem de Manipulação de Dados (Operações de manipulação de dados sem


alteração da estrutura da BD).

• Consultas ou pesquisas de dados;

#
• Inserção de novos dados (registos);
• Alteração de dados existentes (campos e registos);
• Eliminação de dados (registos);

No controle de acesso e transações dos dados utiliza-se uma Linguagem de Controle de


Dados (DCL), que inclusive possibilita estabelecer os diversos níveis de segurança de
cada usuário.

1.3.2 Interfaces
Para interagir com o SGBD além de linguagens descritas anteriormente, o sistema deve
apresentar interfaces que sejam amigáveis. Estas interfaces podem ser de diversas
formas:

• Interfaces baseadas em Menus: permite ao usuário selecionar o trabalho a


ser realizado através de uma lista de opções apresentada na forma de Menus.
Neste tipo de interface uma consulta pode ser construída através da escolha
apropriada de um conjunto de opções;

• Interfaces Gráficas: apresenta ao usuário o esquema de Base em uma forma


de diagrama, e a criação de consultas é realizada através da manipulação
deste diagrama. Normalmente se apresenta associada a um conjunto de
menus;

• Interfaces Baseadas em Formulários: o sistema apresenta ao usuário um


formulário, através do qual pode ser preenchida certa entrada. Através destes
formulários pode ser realizada operação de consultas, inserções a remoções
de dados;

• Interface em Linguagem Natural: aceita comandos ou requisições escritas


em uma linguagem natural ou em alguma outra linguagem de consulta,
sendo capaz de "compreender" o que está sendo pedido;

• Interface para Usuários Comuns: normalmente estes usuários, como o de


um terminal bancário, podem realizar apenas um conjunto limitado de
operações e de forma repetitiva. Sendo assim, é oferecida uma interface que
seja fácil de compreender e com um número reduzido de informações a
serem manipuladas a poucas opções disponíveis.