You are on page 1of 30

Banco de Dados I 2007

Mdulo I: Introduo a Sistemas de

Banco de Dados
(Aula 1)

Clodis Boscarioli

Agenda:
Apresentao do Plano de Ensino; Aspectos Histricos; Estrutura Geral de um SGBD; Profissionais de BD; Exemplos de SGBDs Comerciais.

Sistema de Arquivos
Primeiro sistema para armazenamento e manipulao de dados e gerao de informao. Problemas: Definio das estruturas de arquivos inseridas no prprio cdigo do aplicativo
Alta dependncia entre dados e aplicao, dificultando as atividades de manuteno; Compartilhamento de um arquivo por vrios programas comprometido. A definio 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 programao diferentes.

Sistemas de Arquivos - Problemas


Inconsistncia e redundncia de dados:
Se a mesma informao 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 rplicas.

Dificuldade de acesso aos dados:


A gerao de informao pode surgir, durante o tempo em que o sistema est em produo, sob diferentes aspectos. Cada requisio de informao diferente, no sistema de arquivos, vai gerar a necessidade da criao de um programa aplicativo. A recuperao de informao no atendida de modo eficiente.

Sistemas de Arquivos - Problemas


Isolamento de dados:
Os dados esto armazenados em arquivos distintos, que no possuem qualquer tipo de relacionamento direto, e ainda, podem conter diferentes formatos para o mesmo dado.

Problemas de integridade:
difcil manter restries de integridade automaticamente, por exemplo:

O balano de uma conta bancria no 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 poupana.

Sistemas de Arquivos - Problemas


Problemas de atomicidade:
Algumas operaes em um sistema devem ser atmicas (indivisveis). Ou essas operaes so, em seu conjunto, executadas at o fim, ou nenhuma delas deve ser executada.

Problemas de segurana:
Nem todos os usurios do sistema devem estar autorizados a ver/acessar todos os dados armazenados. Uma vez que os programas de aplicao so inseridos no sistema como um todo, difcil implementar e garantir a efetividade de regras de segurana.

Sistemas de Arquivos - Problemas


Anomalias no acesso concorrente:
A melhora de desempenho em um sistema pode ocorrer pela execuo simultnea de diversas operaes. Geralmente, nos sistemas de arquivos, esta melhoria seria difcil de implementar sem levar a danos na consistncia dos dados. Considere a seguinte situao num sistema bancrio: Suponha que o saldo de uma conta bancria 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 execuo das duas instncias do programa de dbito, ambos os clientes leiam o saldo antigo e retirem, cada um, seu valor correspondente, e seja ento armazenado o valor restante. Instanciando o problema:
Ambos lem o valor 500; Um retira 50 reais (resultando 450 reais) e o outro 100 reais (resultado 400 reais); Dependendo de qual execuo do programa de dbito 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


Sistema de arquivos Sistema de Banco de Dados (SBD)

Aplicativos

Dados (arquivos)

Aplicativos

SGBD

Dados (arquivos)

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.

SBDs: Independncia de Dados


a capacidade de modificar a definio dos esquemas em determinado nvel, sem afetar o esquema de nvel superior.
Independncia de dados fsica: a capacidade de modificar o esquema fsico sem que, com isso, qualquer programa de aplicao precise ser reescrito. Modificaes no nvel fsico so necessrias, ocasionalmente, para aprimorar desempenho. (mais fcil de ser alcanada nos SBDs) Independncia de dados lgica: a capacidade de modificar o esquema lgico sem que, com isso, qualquer programa de aplicao precise ser reescrito. Modificaes no nvel lgico so necessrias sempre que uma estrutura lgica do banco de dados alterada (por exemplo, mudana do sistema monetrio).
Discusso sobre o BUG do Milnio.

Sistema Gerenciador de Banco de Dados


Um Sistema Gerenciador de Banco de Dados (SGBD) uma coleo de programas que habilitam usurios a criar e manter um banco de dados. O SGBD um software de propsito geral, que facilita o processo de definio, construo e manipulao de um bancos de dados. O grande objetivo de um sistema de BD oferecer uma viso abstrata dos dados, com disponibilidade eficiente, aos usurios.

SGBDs - Propsitos Gerais


Definio de banco de dados envolve
especificar estruturas e tipos de dados para serem gravados no banco de dados, com uma descrio detalhada de cada tipo de dado.
usurios

Construo de um banco de dados o


processo de consistir e gravar inicialmente dados no banco de dados.

PROGRAMAS

Manipulao de um banco de dados inclui


funes como consulta por dados especficos e atualizao para refletir as alteraes no mundo real.
SGBD

Mundo real

Viso Geral de um SGBD


Processador de consultas

Usurios navegantes

Programadores de aplicaes

Usurios sofisticados Consultas (queries)

Administradores de BD Esquema de Banco de Dados

Usurios

Interface com Programas de aplicaes aplicaes

Programas de aplicaes em cdigo objeto

Pr-compilador de comandos DML

Compilador DML

Interpretador DDL

SGBD

Componentes de execuo de consultas Gerenciador de transaes Gerenciador de buffer Gerenciador de arquivos

Gerenciador de memria

Armazenamento em disco

ndices Arquivos de dados

Dados estatsticos Dicionrio de dados

BD

SGBD - Linguagens dos Sistemas


1. Linguagem de Definio de Dados: Um
esquema de dados especificado por uma conjunto de definies expressas por uma linguagem especial chamada Linguagem de definio de dados (do ingls Data-Definition Language DDL). O resultado da compilao dos parmetros/comando DDL geral os dicionrio de dados (arquivo de metadados).

SGBD - Linguagens dos Sistemas


2. Linguagem de Manipulao de Dados: Do ingls
Data-Manipulation Language DML) a linguagem que viabiliza o acesso e a manipulao do dados. Podem ser:
Procedurais: o usurio especifica procedimentos para recuperar os dados que necessita. No-procedurais: o usurio descreve os dados que necessita.

Manipulao de dados = recuperao de informaes do banco de dados e insero, remoo e alterao de dados no banco de dados.

SGBD - Processamento de Consultas


Compilador DML: Traduz comandos DML em instrues de baixo nvel, entendidos pelo componente de execuo de consultas. Alm disso, otimiza a solicitao do usurio. Pr-compilador para comandos DML inseridos em programas de aplicao: Convertem comandos DML em chamadas de procedimentos normais da linguagem hospedeira. Interage com o compilador DML e modo a gerar o cdigo apropriado. Interpretador DDL: Interpreta os comandos DDL e os registra no dicionrio de dados. Componentes para tratamento de consultas: Executa instrues de baixo nvel gerada pelo compilador DML.

SGBD - Gerenciador de Memria


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 eficincia das estrutura usadas na representao dos dados e do quanto este sistema est apto a operar essas estrutura de dados Um dos principais mdulos de um SGBD o gerenciador de memria, responsvel por fazer a interface entre o armazenamento de dados em um nvel mais baixo e as consultas e programas de aplicao submetidos ao sistema. Ele tambm realiza a interface do SBD com o Sistema de Arquivos do Sistema Operacional. o gerenciador de memria quem traduz os diversos comandos DML em comandos de baixo nvel de sistemas de arquivos.

SGBD - Gerenciador de Memria


Composto por:
Gerenciamento de autorizaes e integridade: testam o cumprimento das regras de integridade e a permisso ao usurio no acesso ao dado. Gerenciamento de Transaes: cuida da execuo das transaes. Administrao de buffer: responsvel pela intermediao de dados do disco para a memria principal e pela deciso de quais dados colocar em memria auxiliar. Administrao de arquivos: gerencia a alocao de espao de no armazenamento em disco e as estruturas de dados usadas para representar estas informaes armazenadas em disco.

SGBD Mdulo Banco de Dados


Arquivo de dados: armazena os dados (o banco de dados propriamente dito). Dicionrio de dados: metadados. ndices: estrutura que otimizam o acesso aos itens de dados. Estatstica de dados: armazena informaes estatsticas relativas aos dados contidos no banco de dados. Essas informaes so usadas pelo processador de consultas para seleo de meios eficientes para execuo de consultas.

SGBD Mdulo Banco de Dados


BD no contm somente os dados de contedo armazenados, ele tambm armazena definies e descries sobre a estrutura que forma o BD (metadados); Os metadados contm definies da estrutura de cada arquivo, o tipo e formato de armazenamento de cada item de dados, e vrias restries dos dados; O catlogo usado pelo SGBD e ocasionalmente por algum usurio do BD.

Caractersticas de um bom SGBD


Controle sobre a redundncia
Espao para armazenamento; Replicao;

Compartilhamento de Dados
Se diversos usurios tem aplicaes integradas no BD, precisa-se de um software de controle de concorrncia para a atualizao do BD; Facilidade na definio da viso do usurio, especificando uma poro do BD que tem interesse particular de um grupo de usurios;

Caractersticas de um bom SGBD


Restrio de acesso no autorizado
Possui um sistema de segurana garantindo o acesso especfico a cada usurio (personalizado para grupos ou individual) Segurana no acesso ao BD; Permisso de operao no BD; Proteo de contas pessoais (ou grupo) por senhas;

Caractersticas de um bom SGBD


Fornecimento de mltiplas interfaces
Diversos nveis de conhecimento entre os usurios, onde o BD deve oferecer vrios tipos de acesso aos dados: Linguagem para consulta de usurios casuais; Linguagem de programao para o programador de aplicaes; Formulrios e menus para acesso de outros usurios;

Caractersticas de um bom SGBD


Forar restries de integridade
So regras associadas aos dados:
Identificao do tipo de dado (restrio mais trivial); Unicidade de um dado; Impossibilidade do dado no ser informado (ser nulo); Relacionamento entre os dados armazenados.

Dificultar o erro, mas ele ainda pode acontecer.

Caractersticas de um bom SGBD


Sistema de Backup e Recuperao:
Facilidade e controle do BD no caso de falha do hardware ou do software.

Vantagens adicionais na abordagem de BD:


Desenvolvimento de padres permite ao DBA definir e forar padres (nomes, formatos, terminologias, etc.) facilitando a comunicao e cooperao entre os setores, projetos e usurios dentro da organizao; Flexibilidade algumas alteraes na estrutura do BD no afetam muito os programas de aplicaes existentes.

Caractersticas de um bom SGBD


Tempo de desenvolvimento reduzido Projetar e implementar uma nova aplicao mais rpido em um BD existente do que se ele no existisse ou fosse feito sobre a abordagem tradicional de arquivos; Disponibilidade de informao atualizada Torna o BD disponvel para todos os usurios (que tenham permisso de acesso) devido ao controle de concorrncia e recuperao do SGBD;

Papis em Sistemas de Banco de Dados


Os usurios diferenciados em quatro tipos:
Programadores de aplicaes: profissionais em computao que interagem com o sistema por meio de DMLs envolvidas em programas escritos em diferentes linguagens hospedeiras. Usurios sofisticados: interagem com os sistemas usando DMLs. Usurios especialistas: usurios sofisticados que escrevem aplicaes especializadas. Usurios navegantes: usurios comuns que interagem com o sistema atravs das interfaces.

Exemplos de Sistemas Comerciais


dBASE: Lanado pela Ashton-Tate e posteriormente adquirido pela Borland. Possua uma linguagem de programao prpria para desenvolvimento de aplicaes, teve verses para DOS e Windows, trabalhava com gerenciamento de arquivos planos baseados em listas invertidas. A partir da verso 7, os direitos foram vendidos pela Borland. Paradox: Possui ambiente integrado de desenvolvimento para criao de aplicativos. Os direitos de produo foram vendido pela Borland para a Corel. Teve verses para DOS e hoje possui apenas verses para Windows. DataFlex: Popular para ambiente Unix, mas teve verses para DOS e Windows. Possui ambiente integrado para desenvolvimento de aplicaes 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 prcompilao dos cdigos-fontes para melhorar performance. Hoje, aps a aquisio pela Microsoft da Fox Software (produtora original), se chama: Visual FoxPro.

Exemplos de Sistemas Comerciais


Access: padro em banco de dados para microcomputadores do ambiente Windows. Possui ambiente integrado que permite a criao e gerenciamento do banco de dados, desenvolvimento de aplicaes e gerao de relatrios. A linguagem de programao usada neste ambiente deriva do Visual Basic. Oracle: O primeiro em Banco de Dados Corporativos (cliente/servidor) possuindo grande variedade de distribuies (para Macintosh, Windows, Linux, FreeBSD, Unix) e para computadores de grande porte. padro SQL com uma linguagem prpria para desenvolvimento de aplicaes. Interbase: Foi includo, pela Borland, nas suas ferramentas de desenvolvimento (Delphi, C++Builder, JBuider). Teve uma verso liberada como Open Source. MS-SQL Server: Produzido pela Microsoft, inicialmente era uma verso especial do Sybase. As verses atuais so independentes e operam exclusivamente sobre Windows.

Exemplos de Sistemas Comerciais


Sybase SQL Anywhere: Concorre com o Oracle no mercado corporativo. Aplicaes para este banco so desenvolvidas com o PowerBuilder. MySQL: Possui verses para Windows, Solaris, Unix, FreeBSD, Linux) e gratuito. Muito poderoso, usado principalmente para desenvolvimento WEB como servidor de dados para comrcio eletrnico. PostgreSQL: Gratuito e com boa aceitao. Originalmente concebido para rodar em Linux. Possui verses para Windows. Principalmente usado para comrcio eletrnico 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 cdigo do InterBase 6, este sistema open source e esbanja versatilidade e robustez. Possui recursos de trigger, store procedures e transaes concorrentes.

Bibliografia Utilizada:
Sistemas de Banco de Dados. (Cap. 1) Abraham Silberchatz, Henry F. Korth e S. Sudarshan. 3 Edio. Makron Books, 1999. Introduo a Banco de Dados (Apostila). (Cap. 13) Osvaldo Kotaro Takai, Isabel Cristina Italiano, Joo Eduardo Ferreira. DCC-IME-USP, 2005.

You might also like