Banco e Modelagem de dados
SISTEMA
DE BANCO
DE DADOS
Sumário
Conceitos/Autores chave...
1. Introdução...
2. Arquiteturas de um Sistema Gerenciador...
3. Componentes de um Sistema...
4. Vantagens da Abordagem...
5. Conclusões...
Materiais complementares...
Bibliografi a...
3
4
5
8
10
12
13
13
É o valor do campo quando é armazenado no Banco de Dados. Ex. O valor do campo “nome do cliente” para quem está fazendo a entrada de dados.
Glossário
Dado:
Uma coleção organizada de dados relacionados.
Banco de Dados:
É o valor do campo armazenado no Banco de Dados. Ex. O valor do campo “nome do cliente” sem estar, momentaneamente, sendo utilizado.
Conteúdo do campo:
Um Sistema Gerenciador de Banco de Dados (SGBD) é um conjunto de programas de propósito geral que facilita o processo de construção e manipulação de bancos de dados para servir a diversas aplicações. Um Banco de Dados (BD) é uma coleção de dados inter-relacionados projetado para atender às necessidades de um grupo específico de aplicações e usuários. O conjunto desses dois elementos, SGBD e BD conformam um Sistema de Banco de Dados (SBD). A figura ao lado, ilustra estas diferenças.
Pontos críticos
Conceitos/Autores-chave
É um Dicionário de Dados que armazena informações sobre os dados criados pelo usuário, como por exemplo uma tabela, registro, restrições. Em um SBD, este dicionário ou diretório é consultado antes que o dado real seja modificado.
Metadados:
Diferenças entre SGBD,
SBD e BD.
SBD
SGBD
BD
Representação de um SBD, SGDB e um BDUm SBD é composto por um Sistema Gerenciador de Banco de Dados (SGBD), o qual tem como função gerenciar os dados de forma conveniente e eficiente, e o BD, o qual contém arquivos de dados e o esquema lógico do BD. As definições das estruturas são expressas em uma linguagem especial chamada Linguagem de Definição dos Dados (LDD), e o resultado da compilação de declarações LDD são armazenados em um arquivo especial chamado Dicionário de Dados (DD).
1. Introdução
O dicionário de dados é um arquivo que contém metadados, dados sobre os dados, do qual fazem parte as especifi cações das estruturas de dados, regras e métodos de acesso e outros detalhes necessários à implementação. Por outro lado, faz-se uso de uma linguagem de manipulação de dados (LMD), cuja fi nalidade é permitir que os usuários possam acessar ou manipular os dados organizados de acordo com um modelo de dados.
As linguagens utilizadas para o gerenciamento da informação
nos SBD’s são chamadas de linguagens de consulta. O
processador de consultas, componente do SGBD, traduz as
consultas em instruções de baixo nível, otimizando-as de forma
2. Arquiteturas de um Sistema
Gerenciador de Banco de dados
As primeiras arquiteturas usavam mainframes para executar o processamento principal e de todas as funções do sistema, incluindo os programas aplicativos, programas de interface com o usuário, bem como a funcionalidade dos SGBDs. Esta é a razão pela qual a maioria dos usuários fazia acesso aos sistemas via terminais que não possuíam poder de processamento, apenas a capacidade de visualização.
Todos os processamentos eram feitos remotamente, apenas as informações a serem visualizadas e os controles eram enviados do mainframe para os terminais de visualização, conectados a ele por redes de comunicação. Como os preços de hardware foram decrescendo, muitos usuários trocaram seus terminais por computadores pessoais (PC) e estações de trabalho. No começo os SGBDs usavam esses computadores da mesma maneira que usavam os terminais, ou seja, o SGBD era centralizado e toda sua funcionalidade, execução de programas aplicativos e processamento da interface do usuário eram executados em apenas uma máquina. Gradualmente, os SGBDs começaram a explorar a disponibilidade do poder de processamento no lado do usuário, o que levou à arquitetura cliente-servidor (Gordon, 2006).
A arquitetura cliente-servidor foi desenvolvida para dividir ambientes de computação onde um grande número de PCs, estações de trabalho, servidores de arquivos, impressoras, servidores de banco de dados e outros equipamentos são conectados juntos, por uma rede. A idéia é definir servidores especializados, tais como servidor de arquivos, que mantém os arquivos de máquinas-cliente, ou servidores de impressão que podem estar conectados a várias impressoras; assim, quando se desejar imprimir algo, todas as requisições de impressão são enviadas a este servidor.
As máquinas-cliente disponibilizam para o usuário as interfaces apropriadas para utilizar esses servidores, bem como poder de processamento para executar aplicações locais. Esta arquitetura se tornou muito popular por algumas razões.
Primeiro
A facilidade de
implementação dada à clara
separação das funcionalidade
e dos servidores.
Segundo
Um servidor é
inteligentemente utilizado
porque as tarefas mais
simples são delegadas às
máquinas-clientes mais
baratas.
Terceiro
O usuário pode executar
uma interface gráfica que
lhe é familiar, ao invés
de usar a interface do
servidor. Desta maneira, a
arquitetura cliente-servidor
foi incorporada aos SGBDs
comerciais.
•
•
•
Diferentes técnicas foram propostas para se implementar essa arquitetura, sendo que a mais adotada pelos Sistemas Gerenciadores de Banco de Dados Relacionais (SGBDRs) comerciais é a inclusão da funcionalidade de um SGBD centralizado no lado do servidor. As consultas e a funcionalidade transacional permanecem no servidor, sendo que este é chamado de servidor de consulta ou servidor de transação. É assim que um servidor SQL é fornecido aos clientes. Cada cliente tem que formular suas consultas SQL, prover a interface do usuário e as funções de interface usando uma linguagem de programação.
O cliente pode também
se referir a um dicionário
de dados o qual inclui
informações sobre a
distribuição dos dados em
vários servidores SQL, bem
como os módulos para
a decomposição de uma
consulta global em um
número de consultas locais
que podem ser executadas
em vários sítios
.
Comumente o servidor SQL também é chamado de back-end machine e o cliente de front-end machine. Como SQL provê uma linguagem padrão parao SGBDRs, esta criou o ponto de divisão lógica entre o cliente e
o servidor. Atualmente, existem várias tendências para
arquitetura de Banco de Dados, nas mais
Plataformas centralizadas
2.1
Alguns tipos de arquiteturas de SGBDs
Na arquitetura centralizada, existe um computador com grande capacidade de processamento, o qual é o hospedeiro do SGBD e emuladores para os vários aplicativos. Esta arquitetura tem como principal vantagem, a de permitir que muitos usuários manipulem grande volume de dados. Sua principal desvantagem está no seu alto custo, pois exige ambiente especial para mainframes e soluções centralizadas.
Sistemas de computador pessoal - PC
2.2
Os computadores pessoais trabalham em sistema stand-alone, ou seja, fazem seus processamentos sozinhos. No começo esse processamento era bastante limitado, porém, com a evolução do hardware, tem-se hoje PCs com grande capacidade de processamento. Eles utilizam o padrão Xbase e quando se trata de SGBDs, funcionam como hospedeiros e terminais. Desta maneira, possuem um único aplicativo a ser executado na máquina. A principal vantagem desta arquitetura é a simplicidade.
Banco de dados distribuídos
2.4
Nesta arquitetura, a informação está distribuída em diversos servidores. Como exemplo, observe a figura. Cada servidor atua como no sistema cliente-servidor, porém as consultas oriundas dos aplicativos são feitas para qualquer servidor indistintamente. Caso a informação solicitada seja mantida por outro servidor ou servidores, o sistema encarrega-se de obter a informação necessária, de maneira transparente para o aplicativo, que passa a atuar consultando a rede, independente de conhecer seus servidores. Exemplos típicos são as bases de dados corporativas, em que o volume de informação é muito grande e, por isso, deve ser distribuído em diversos servidores. Porém, não é dependente de aspectos lógicos de carga de acesso aos dados, ou base de dados fracamente acopladas, em que uma informação solicitada vai sendo coletada numa propagação da consulta numa cadeia de servidores. A característica básica é a existência de diversos programas aplicativos consultando a rede para acessar os dados necessários, porém, sem o conhecimento explícito de quais servidores dispõem desses dados.
Banco de dados cliente-servidor
2.3
Na arquitetura Cliente-Servidor, o cliente (front_end) executa as tarefas do aplicativo, ou seja, fornece a interface do usuário (tela, e processamento de entrada e saída). O servidor (back_end) executa as consultas no DBMS e retorna os resultados ao cliente. Apesar de ser uma arquitetura bastante popular, são necessárias soluções sofisticadas de software que
possibilitem: o tratamento de transações, as confirmações de transações (commits), desfazer transações (rollbacks), linguagens de consultas (stored procedures) e gatilhos(triggers). A principal vantagem desta arquitetura é a divisão do processamento entre dois sistemas, o que reduz o tráfego de dados na rede.
3. Componentes de um sistema
gerenciador de banco de dados
Tem a finalidade de traduzir os comandos utilizados para manipulação de dados (DML), tais como inserção de dados, exclusão de dados, atualização de dados e seleção de dados em instruções de baixo nível, que são interpretados pelo componente de execução de consultas. Também tem a função de transformar a solicitação feita pelo usuário, por meio da linguagem SQL, em uma forma mais eficiente, de modo a encontrar uma melhor estratégia para a execução da consulta. A finalidade desta estratégia é minimizar o acesso ao disco onde se encontram os dados da aplicação ou negócio.
Compilador DML
Os componentes de processamento de
consulta incluem:
Um sistema de Banco de Dados está dividido em módulos específicos, de modo a atender a todas as funções do sistema. Os componentes funcionais do Sistema de Banco de Dados podem ser divididos pelos componentes de processamento de consultas e pelos componentes de administração de memória.
Pré-compilador para Comandos DML: Tem a finalidade de converter os
comandos utilizados em programas de aplicação em chamadas de procedimentos normais da linguagem hospedeira. Este módulo interage com o módulo anterior.
Pré-compilador:
Tem a finalidade de interpretar comandos utilizados para criar uma tabela, eliminar uma tabela, criar índices, etc., definidos como linguagem de definição de dados (DDL) e armazená-los em um conjunto de tabelas que fazem parte dos meta-dados.
Gerenciamento de autorizações e integridade: Tem a finalidade de garantir
o cumprimento das regras de integridade e a permissão ao usuário no acesso ao dado.
Gerenciamento
Os componentes de administração de
armazenamento de dados incluem:
Administração de arquivos: Tem
a finalidade de gerenciar a alocação de espaço no armazenamento em disco e as estruturas de dados usadas para representar estas informações armazenadas em disco.
Administração
Utilizado para armazenar o próprio BD.
Arquivo de dados
Existem estruturas que são exigidas
e que fazem parte da implementação
física do Sistema de BD:
Proporcionam acesso rápido aos itens de dados.
Índices
Tem a finalidade de armazenar informações sobre a estrutura utilizada para armazenar o banco de dados.
Dicionário de dados
Na figura são consolidados os componentes do Banco de Dados:
Alguns dos principais componentes pertencentes s um SBD
Arq. de dados
Índices
Dic. de dados
Compilador DML
Pré compilador
Interpretador DDL
Ger. de autorizações
e integridade
Administração
de arquivos
•
•
•
•
•
U
S
U
Á
R
I
O
4. Vantagens do uso de um banco de dados
Redução ou Eliminação de Redundâncias
Possibilita a eliminação de dados privativos de cada sistema. Os dados, que eventualmente são comuns a mais de um sistema, são compartilhados por eles, permitindo o acesso a uma única informação sendo consultada por vários sistemas.
Eliminação de Inconsistências
Através do armazenamento da informação em um único local com acesso descentralizado e, sendo compartilhada em vários sistemas, os usuários estarão utilizando uma informação confiável. A inconsistência ocorre quando um mesmo campo tem valores diferentes em sistemas diferentes. Exemplo, o estado civil de uma pessoa é solteiro em um sistema e casado em outro. Isto ocorre porque esta pessoa atualizou o campo em um sistema e não o atualizou em outro. Quando o dado é armazenado em um único local e compartilhado pelos sistemas, este problema não ocorre.
Compartilhamento dos Dados
Permite a utilização simultânea e segura de um dado, por mais de uma aplicação ou usuário, independente da operação que esteja sendo realizada. Deve ser observado apenas o processo de atualização concorrente, para não gerar erros de processamento (atualizar simultaneamente o mesmo campo do mesmo registro). Os aplicativos são por natureza multiusuário.
Restrições de Segurança
Define para cada usuário o nível de acesso a ele concedido (leitura; leitura e gravação ou sem acesso) ao arquivo e/ou campo. Este recurso impede que pessoas não autorizadas utilizem ou atualizem um determinado arquivo ou campo.
Padronização dos Dados
Permite que os campos armazenados na base de dados sejam padronizados segundo um determinado formato de armazenamento (padronização de tabela, conteúdo de compôs, etc.) e ao nome de variáveis seguindo critérios padrões preestabelecido pela empresa.
Exemplo: Para o campo “Sexo” somente será
permitido armazenamento dos conteúdos
Independência dos Dados
Representa a forma física de armazenamento dos dados no Banco de Dados e a recuperação das informações pelos programas de aplicação. Esta recuperação deverá ser totalmente independente da maneira com que os dados estão fisicamente armazenados.
Manutenção da Integridade
Permite que os campos armazenados na base de dados sejam padronizados segundo um determinado formato de armazenamento (padronização de tabela, conteúdo de compôs, etc) e ao nome de variáveis seguindo critérios padrões preestabelecido pela empresa.
Quando um programa retira ou inclui dados o SGBD
compacta-os para que haja um menor consumo de
espaço no disco. Este conhecimento do formato de
armazenamento do campo é totalmente transparente
para o usuário. A independência dos dados
permite os seguintes recursos:
Os programas de aplicação definem apenas os
campos que serão utilizados independente da
estrutura interna dos arquivos.
Quando há inclusão de novos campos no arquivo,
será feita manutenção apenas nos programas
que utilizam esses campos, não sendo necessário
mexer nos demais programas. Obs.: Nos sistemas
tradicionais este tipo de operação requer a
alteração no layout de todos os programas do
sistema que utilizam o arquivo.
•
•
Exemplo: Um código de uma determinada
disciplina na tabela “Histórico Escolar” sem a
Neste módulo foram apresentados os conceitos básicos de Banco de Dados, Sistema Gerenciador de Banco de Dados e Sistema de Banco de Dados.
Importante
O essencial é que o projeto de banco de dados deve representar exatamente a realidade do domínio do problema,
independente da tecnologia ou ferramenta a ser utilizada. De modo contrário, não será possível obter os resultados esperados pela organização, ou muito pior, os resultados obtidos não vão refl etir a verdadeira situação do negócio, e
como conseqüência, serão tomadas decisões sobre dados incorretos ou inconsistentes.
Materiais complementares
ELMASRI, R.; NAVATHE, S.B. Sistemas de Banco de Dados: Fundamentos e Aplicações. 3. ed. Rio de Janeiro: LTC, 2002. 837p.
HEUSER, C. A., Projeto de Banco de Dados, Série Livros Didáticos, n.4. 5ª edição, Ed. Sagra Luzzatto, Porto Alegre, 2004. 236p.
WATSON, R. Data Management: Banco de Dados e Organizações, 3ª edição. Ed. LTC, Rio de Janeiro, 2004. 370p.
DATE, C. J. Introdução a Sistemas de Banco de Dados. 8.ed., Editora Elsevier - Campus, São Paulo, pp. 865. 2004.
ELMASRI, R.; NAVATHE, S.B. Sistemas de Banco de Dados: Fundamentos e Aplicações. 3ª.ed. Rio de Janeiro: LTC, 2002. 837p.
GORDON, J. R.; Gordon, Steven R. Sistemas de Informação: Uma abordagem Gerencial. LTC, 2006.
KORTH, H. F.; SILBERSCHATZ, A., SUDARSHAN, S. Fundamentos de bases de dados. Madrid, 3.ed. Makron Books, pp.778. 1999.
PAVON, J.; Representação de Estruturas de Conhecimento em Sistemas de Bancos de Dados,
dissertação de mestrado, Escola Politécnica da Universidade de São Paulo, São Paulo. 119p. 1996.