Módulo I:
Introdução a Sistemas de
Banco de Dados
(Aula 1)
Clodis Boscarioli
Banco de Dados I 2007Agenda:
Apresentação do Plano de Ensino;
Aspectos Históricos;
Estrutura Geral de um SGBD;
Profissionais de BD;
Sistema de Arquivos
Primeiro sistema para armazenamento e manipulação de
dados e geração de informação.
Problemas:
Definição das estruturas de arquivos inseridas no próprio
código do aplicativo
Alta dependência entre dados e aplicação, dificultando as
atividades de manutenção;
Compartilhamento de um arquivo por vários programas
comprometido. A definição das estruturas dos arquivos eram duplicadas nos programas;
Arquivos e programas de um mesmo sistema desenvolvidos, de
forma isolada, por diferentes programadores, e até mesmo, em linguagens de programação diferentes.
Sistemas de Arquivos - Problemas
Inconsistência e redundância de dados:
Se a mesma informação está repetida em diversos lugares (arquivos
diferentes) ela:
está redundante, aumentando os custos de armazenamento e;
pode passar para um estado inconsistente, com valores divergentes
nas diferentes réplicas.
Dificuldade de acesso aos dados:
A geração de informação pode surgir, durante o tempo em que o
sistema está em produção, sob diferentes aspectos. Cada requisição de informação diferente, no sistema de arquivos, vai gerar a
necessidade da criação de um programa aplicativo. A recuperação de informação não é atendida de modo eficiente.
Isolamento de dados:
Os dados estão armazenados em arquivos distintos, que não
possuem qualquer tipo de relacionamento direto, e ainda, podem conter diferentes formatos para o mesmo dado.
Problemas de integridade:
É difícil manter “restrições de integridade” automaticamente, por
exemplo:
O balanço de uma conta bancária não pode cair abaixo
de um determinado valor.
Sempre que o saldo de uma conta for superior a um
valor X, parte deste saldo deve ser automaticamente aplicado na poupança.
Sistemas de Arquivos - Problemas
Problemas de atomicidade:
Algumas operações em um sistema devem ser “atômicas”
(indivisíveis). Ou essas operações são, em seu conjunto, executadas até o fim, ou nenhuma delas deve ser
executada.
Problemas de segurança:
Nem todos os usuários do sistema devem estar
autorizados a ver/acessar todos os dados armazenados. Uma vez que os programas de aplicação são inseridos no sistema como um todo, é difícil implementar e garantir a efetividade de regras de segurança.
Sistemas de Arquivos - Problemas
Anomalias no acesso concorrente:
A melhora de desempenho em um sistema pode ocorrer pela execução
simultânea de diversas operações. Geralmente, nos sistemas de arquivos, esta melhoria seria difícil de implementar sem levar a danos na consistência dos dados. Considere a seguinte situação num sistema bancário:
Suponha que o saldo de uma conta bancária A seja 500 reais. Se dois
clientes retiram fundos desta conta A ao mesmo tempo (acesso concorrente à conta A), um estado inconsistente pode ocorrer se na
execução das duas instâncias do programa de débito, ambos os clientes leiam o saldo antigo e retirem, cada um, seu valor correspondente, e seja então armazenado o valor restante.
Instanciando o problema:
Ambos lêem o valor 500;
Um retira 50 reais (resultando 450 reais) e o outro 100 reais (resultado 400
reais);
Dependendo de qual execução do programa de débito registre o saldo restante
primeiro, o valor do saldo da conta será 450 ou 400 reais, quando deveria ser 350 reais.
Sistema de Arquivos versus Sistemas de
Banco de Dados
O acesso/gerenciamento aos/dos dados é feito diretamente pelos programas aplicativos.
O acesso/gerenciamento aos/dos dados é feito pelo SGBD. O SGBD funciona como uma interface entre o BD e os programas aplicativos. Dados (arquivos) Dados (arquivos) SGBD
Sistema de arquivos Sistema de Banco de Dados (SBD)
SBDs: Independência de Dados
É a capacidade de modificar a definição dos esquemas em
determinado nível, sem afetar o esquema de nível superior.
Independência de dados física: é a capacidade de modificar o
esquema físico sem que, com isso, qualquer programa de aplicação precise ser reescrito. Modificações no nível físico são necessárias, ocasionalmente, para aprimorar desempenho. (mais fácil de ser alcançada nos SBDs)
Independência de dados lógica: é a capacidade de modificar o
esquema lógico sem que, com isso, qualquer programa de aplicação precise ser reescrito. Modificações no nível lógico são necessárias sempre que uma estrutura lógica do banco de dados é alterada (por exemplo, mudança do sistema monetário).
Sistema Gerenciador de Banco de Dados
Um Sistema Gerenciador de Banco de Dados (SGBD) é uma
coleção de programas que habilitam usuários a criar e
manter um banco de dados.
O SGBD é um software de propósito geral, que facilita o
processo de definição, construção e manipulação de um
bancos de dados.
O grande objetivo de um sistema de BD é oferecer uma
visão “abstrata” dos dados, com disponibilidade eficiente,
aos usuários.
Definição
de banco de dados envolve especificar estruturas e tipos de dados para serem gravados no banco de dados, com uma descrição detalhada de cada tipo de dado.Construção
de um banco de dados é oprocesso de consistir e gravar inicialmente dados no banco de dados.
Manipulação
de um banco de dados incluifunções como consulta por dados específicos e atualização para refletir as alterações no mundo real. SGBD PROGRAMAS Mundo real usuários
SGBDs - Propósitos Gerais
Visão Geral
de um SGBD
SGBD Usuários Interface com aplicações Programas de aplicações Consultas (queries) Esquema de Banco de Dados Usuários navegantes Programadores de aplicações Usuários sofisticados Administra-dores de BD Processador de consultas Gerenciador de memória Gerenciador de transações Gerenciador de buffer Gerenciador de arquivos Interpretador DDL Compilador DML Pré-compilador de comandos DML Programas de aplicações em código objeto Componentes de execução de consultas Armazenamento em disco Índices Arquivos de dados Dados estatísticos BD Dicionário de dadosSGBD - Linguagens dos Sistemas
1. Linguagem de Definição de Dados:
Um
esquema de dados é especificado por uma conjunto
de definições expressas por uma linguagem especial
chamada Linguagem de definição de dados (do inglês
Data-Definition Language – DDL).
O resultado da compilação dos parâmetros/comando
DDL geral os dicionário de dados (arquivo de
2. Linguagem de Manipulação de Dados:
Do inglês Data-Manipulation Language – DML) é a linguagem que viabiliza o acesso e a manipulação do dados. Podem ser:Procedurais: o usuário especifica procedimentos para recuperar os dados que necessita.
Não-procedurais: o usuário descreve os dados que necessita.
Manipulação de dados = recuperação de informações do
banco de dados e inserção, remoção e alteração de dados no banco de dados.
SGBD - Processamento de Consultas
Compilador DML: Traduz comandos DML em instruções de
baixo nível, entendidos pelo componente de execução de consultas. Além disso, otimiza a solicitação do usuário.
Pré-compilador para comandos DML inseridos em
programas de aplicação: Convertem comandos DML em chamadas de procedimentos normais da linguagem
hospedeira. Interage com o compilador DML e modo a gerar o código apropriado.
Interpretador DDL: Interpreta os comandos DDL e os registra
no dicionário de dados.
Componentes para tratamento de consultas: Executa
SGBD - Gerenciador de Memória
Um dos principais objetivos de um Sistema de Banco de Dados é
simplificar e otimizar o acesso aos dados.
O desempenho de um SBD depende diretamente da eficiência das
estrutura usadas na representação dos dados e do quanto este sistema está apto a operar essas estrutura de dados
Um dos principais módulos de um SGBD é o gerenciador de
memória, responsável por fazer a interface entre o armazenamento de dados em um nível mais baixo e as consultas e programas de aplicação submetidos ao sistema. Ele também realiza a interface do SBD com o Sistema de Arquivos do Sistema Operacional.
É o gerenciador de memória quem traduz os diversos comandos
SGBD - Gerenciador de Memória
Composto por:
Gerenciamento de autorizações e integridade: testam o
cumprimento das regras de integridade e a permissão ao usuário no acesso ao dado.
Gerenciamento de Transações: cuida da execução das transações.
Administração de buffer: responsável pela intermediação de dados
do disco para a memória principal e pela decisão de quais dados colocar em memória auxiliar.
Administração de arquivos: gerencia a alocação de espaço de no
armazenamento em disco e as estruturas de dados usadas para representar estas informações armazenadas em disco.
SGBD – Módulo Banco de Dados
Arquivo de dados: armazena os dados (o banco de dados propriamente
dito).
Dicionário de dados: metadados.
Índices: estrutura que otimizam o acesso aos itens de dados.
Estatística de dados: armazena informações estatísticas relativas aos
dados contidos no banco de dados. Essas informações são usadas pelo processador de consultas para seleção de meios eficientes para
• BD não contém somente os dados de conteúdo
armazenados, ele também armazena definições e descrições
sobre a estrutura que forma o BD (metadados);
• Os metadados contêm definições da estrutura de cada
arquivo, o tipo e formato de armazenamento de cada item de
dados, e várias restrições dos dados;
• O catálogo é usado pelo SGBD e ocasionalmente por
algum usuário do BD.
• Controle sobre a redundância
– Espaço para armazenamento; – Replicação;
• Compartilhamento de Dados
– Se diversos usuários tem aplicações integradas no BD, precisa-se de um software de controle de concorrência para a atualização do BD;
– Facilidade na definição da visão do usuário,
especificando uma porção do BD que tem interesse particular de um grupo de usuários;
• Restrição de acesso não autorizado
Possui um sistema de segurança garantindo o acesso específico a cada usuário (personalizado para grupos ou individual)
–Segurança no acesso ao BD; –Permissão de operação no BD;
–Proteção de contas pessoais (ou grupo) por senhas;
• Fornecimento de múltiplas interfaces
Diversos níveis de conhecimento entre os usuários,
onde o BD deve oferecer vários tipos de acesso aos
dados:
– Linguagem para consulta de usuários casuais;
– Linguagem de programação para o programador de
aplicações;
– Formulários e menus para acesso de outros usuários;
• Forçar restrições de integridade
São regras associadas aos dados:
– Identificação do tipo de dado (restrição mais trivial); – Unicidade de um dado;
– Impossibilidade do dado não ser informado (ser nulo); – Relacionamento entre os dados armazenados.
Dificultar o erro, mas ele ainda pode acontecer.
• Sistema de Backup e Recuperação:
–Facilidade e controle do BD no caso de falha do hardware ou do software.
• Vantagens adicionais na abordagem de BD:
–Desenvolvimento de padrões – permite ao DBA definir e forçar padrões (nomes, formatos, terminologias, etc.) facilitando a comunicação e cooperação entre os setores, projetos e usuários dentro da organização;
–Flexibilidade – algumas alterações na estrutura do BD não afetam “muito” os programas de aplicações existentes.
–Tempo de desenvolvimento reduzido – Projetar e implementar uma nova aplicação é mais rápido em um BD existente do que se ele não existisse ou fosse feito sobre a abordagem tradicional de arquivos;
–Disponibilidade de informação atualizada – Torna o BD disponível para todos os usuários (que tenham permissão de acesso) devido ao controle de concorrência e recuperação do SGBD;
Papéis em Sistemas de Banco de Dados
Os usuários diferenciados em quatro tipos:
Programadores de aplicações: profissionais em computação que
interagem com o sistema por meio de DMLs envolvidas em programas escritos em diferentes linguagens hospedeiras.
Usuários sofisticados: interagem com os sistemas usando DMLs.
Usuários especialistas: usuários sofisticados que escrevem
aplicações especializadas.
Usuários navegantes: usuários comuns que interagem com o
Exemplos de Sistemas Comerciais
dBASE: Lançado pela Ashton-Tate e posteriormente adquirido pela Borland.
Possuía uma linguagem de programação própria para desenvolvimento de
aplicações, teve versões para DOS e Windows, trabalhava com gerenciamento de arquivos planos baseados em listas invertidas. A partir da versão 7, os direitos foram vendidos pela Borland.
Paradox: Possui ambiente integrado de desenvolvimento para criação de
aplicativos. Os direitos de produção foram vendido pela Borland para a Corel. Teve versões para DOS e hoje possui apenas versões para Windows.
DataFlex: Popular para ambiente Unix, mas teve versões para DOS e Windows.
Possui ambiente integrado para desenvolvimento de aplicações e hoje é comercializado com o nome de Visual Data Flex.
FoxBase/FoxPro: Concorrente do dBase com total compatibilidade em termos de
arquivos e programas-fontes. Com recursos adicionais como a capacidade de pré-compilação dos códigos-fontes para melhorar performance. Hoje, após a
aquisição pela Microsoft da Fox Software (produtora original), se chama: Visual FoxPro.
Exemplos de Sistemas Comerciais
Access: é padrão em banco de dados para microcomputadores do ambiente
Windows. Possui ambiente integrado que permite a criação e gerenciamento do banco de dados, desenvolvimento de aplicações e geração de relatórios. A
linguagem de programação usada neste ambiente deriva do Visual Basic.
Oracle: O primeiro em Banco de Dados Corporativos (cliente/servidor) possuindo
grande variedade de distribuições (para Macintosh, Windows, Linux, FreeBSD, Unix) e para computadores de grande porte. É padrão SQL com uma linguagem própria para desenvolvimento de aplicações.
Interbase: Foi incluído, pela Borland, nas suas ferramentas de desenvolvimento
(Delphi, C++Builder, JBuider). Teve uma versão liberada como Open Source.
MS-SQL Server: Produzido pela Microsoft, inicialmente era uma versão especial
do Sybase. As versões atuais são independentes e operam exclusivamente sobre Windows.
Exemplos de Sistemas Comerciais
Sybase SQL Anywhere: Concorre com o Oracle no mercado corporativo.
Aplicações para este banco são desenvolvidas com o PowerBuilder.
MySQL: Possui versões para Windows, Solaris, Unix, FreeBSD, Linux) e é
gratuito. Muito poderoso, usado principalmente para desenvolvimento WEB como servidor de dados para comércio eletrônico.
PostgreSQL: Gratuito e com boa aceitação. Originalmente concebido para rodar
em Linux. Possui versões para Windows. Principalmente usado para comércio eletrônico juntamente com linguagem PHP.
Informix: Boa escalabilidade e desempenho. Comercializado pela IBM.
BD2: Produzido pela IBM, nasceu nos ambientes de grande porte, sendo
posteriormente portado para plataformas mais simples (microcomputadores).
Firebird: Nascido de uma iniciativa da Borland em abrir o código do InterBase 6,
este sistema é open source e esbanja versatilidade e robustez. Possui recursos de trigger, store procedures e transações concorrentes.
Bibliografia Utilizada:
Sistemas de Banco de Dados. (Cap. 1) Abraham
Silberchatz, Henry F. Korth e S. Sudarshan. 3ª
Edição. Makron Books, 1999.