30
Módulo I: Introdução a Sistemas de Banco de Dados (Aula 1) Clodis Boscarioli Banco de Dados I 2007

Introdução a Sistemas de Banco de Dados

Embed Size (px)

DESCRIPTION

Introdução a Sistemas deBanco de Dados

Citation preview

Page 1: Introdução a Sistemas de Banco de Dados

Módulo I: Introdução a Sistemas de Banco de Dados

(Aula 1)

Clodis Boscarioli

Banco de Dados I

2007

Page 2: Introdução a Sistemas de Banco de Dados

Agenda:

� Apresentação do Plano de Ensino;

� Aspectos Históricos;

� Estrutura Geral de um SGBD;

� Profissionais de BD;

� Exemplos de SGBDs Comerciais.

Page 3: Introdução a Sistemas de Banco de Dados

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ópriocódigo do aplicativo

� Alta dependência entre dados e aplicação, dificultando as atividades de manutenção;

� Compartilhamento de um arquivo por vários programascomprometido. A definição das estruturas dos arquivos eramduplicadas nos programas;

� Arquivos e programas de um mesmo sistema desenvolvidos, de forma isolada, por diferentes programadores, e até mesmo, emlinguagens de programação diferentes.

Page 4: Introdução a Sistemas de Banco de Dados

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.

Page 5: Introdução a Sistemas de Banco de Dados

� 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

Page 6: Introdução a Sistemas de Banco de Dados

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.

Page 7: Introdução a Sistemas de Banco de Dados

Sistemas de Arquivos - Problemas

� Anomalias no acesso concorrente:� A melhora de desempenho em um sistema pode ocorrer pela execuçãosimultâ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.

Page 8: Introdução a Sistemas de Banco de Dados

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)

Aplicativos Aplicativos

Page 9: Introdução a Sistemas de Banco de Dados

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çãoprecise 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çãoprecise 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).

Discussão sobre o “BUG do Milênio”.

Page 10: Introdução a Sistemas de Banco de Dados

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.

Page 11: Introdução a Sistemas de Banco de Dados

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 é o

processo de consistir e gravar inicialmente dados

no banco de dados.

Manipulação de um banco de dados inclui

funçõ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

Page 12: Introdução a Sistemas de Banco de Dados

Visão Geral de um SGBD

SGBD

Usuários

Interface comaplicações

Programas deaplicações

Consultas(queries)

Esquema de Banco de Dados

Usuáriosnavegantes

Programadoresde aplicações

Usuáriossofisticados

Administra-dores de BD

Processadorde consultas

Gerenciadorde memória

Gerenciadorde transações

Gerenciador de buffer

Gerenciadorde arquivos

InterpretadorDDL

CompiladorDML

Pré-compiladorde comandos

DML

Programas deaplicações em código objeto

Componentes de execuçãode consultas

Armazenamentoem disco Índices

Arquivos dedados

Dados estatísticos BD

Dicionáriode dados

Page 13: Introdução a Sistemas de Banco de Dados

SGBD - 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 metadados).

Page 14: Introdução a Sistemas de Banco de Dados

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 - Linguagens dos Sistemas

Page 15: Introdução a Sistemas de 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 instruções de baixo nível gerada pelo compilador DML.

Page 16: Introdução a Sistemas de Banco de Dados

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 DML em comandos de baixo nível de sistemas de arquivos.

Page 17: Introdução a Sistemas de Banco de Dados

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.

Page 18: Introdução a Sistemas de Banco de Dados

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 execução de consultas.

Page 19: Introdução a Sistemas de Banco de Dados

• 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.

SGBD – Módulo Banco de Dados

Page 20: Introdução a Sistemas de Banco de Dados

• 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ênciapara 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;

Características de um “bom” SGBD

Page 21: Introdução a Sistemas de Banco de Dados

• 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;

Características de um “bom” SGBD

Page 22: Introdução a Sistemas de Banco de Dados

• 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;

Características de um “bom” SGBD

Page 23: Introdução a Sistemas de Banco de Dados

• 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.

Características de um “bom” SGBD

Page 24: Introdução a Sistemas de Banco de Dados

• 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.

Características de um “bom” SGBD

Page 25: Introdução a Sistemas de Banco de Dados

–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;

Características de um “bom” SGBD

Page 26: Introdução a Sistemas de Banco de Dados

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 sistema através das “interfaces”.

Page 27: Introdução a Sistemas de Banco de Dados

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.

Page 28: Introdução a Sistemas de Banco de Dados

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 especialdo Sybase. As versões atuais são independentes e operam exclusivamente sobre Windows.

Page 29: Introdução a Sistemas de Banco de Dados

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.

Page 30: Introdução a Sistemas de Banco de Dados

Bibliografia Utilizada:

� Sistemas de Banco de Dados. (Cap. 1) AbrahamSilberchatz, Henry F. Korth e S. Sudarshan. 3ª Edição. Makron Books, 1999.

� Introdução a Banco de Dados (Apostila). (Cap. 1-3) Osvaldo Kotaro Takai, Isabel Cristina Italiano, João Eduardo Ferreira. DCC-IME-USP, 2005.