Beruflich Dokumente
Kultur Dokumente
Introdução
– Contexto Histórico
– Definição e objetivos
– Estrutura interna, estrutura de arquivos e
de armazenamento
– Sistemas de Banco de Dados:
Centralizados, Cliente-Servidor e
Distribuídos
– Modelos de Banco de Dados: Relacional,
Rede e Hierárquico
Contexto Histórico
• Relembrando a programação
– Em programação e no desenvolvimento de sistemas, os
programas precisam manipular informações;
• Problemas / Desvantagens
– Redundância e inconsistência dos dados;
– Dificuldade de acesso a dados;
– Isolamento dos dados;
– Problemas de integridade;
– Atomicidade das operações;
– Acesso concorrente;
– Segurança.
Contexto Histórico
• Problemas no armazenamento em arquivos
– Redundância e inconsistência dos dados
• Múltiplos formatos de arquivo;
• Duplicação de informações em diferentes arquivos;
– Problemas de integridade.
• Como estabelecer regras sobre as informações no banco de
dados?
• Cada regra deve ser codificada no programa. É uma maneira mais
complexa e sujeita a erros;
• Difícil de acrescentar novas restrições ou modificar as existentes.
– Segurança
• Para implementar segurança, funções especializadas devem
ser implementadas para garantir que usuários específicos
acessem os dados.
Contexto Histórico
• Problemas no armazenamento em arquivos
(cont)
– Atomicidade das operações.
• Falhas podem deixar o banco de dados em um estado
inconsistente com atualizações parciais realizadas;
• Exemplo: A transferência de fundos de uma conta para outra
deve ser completa ou não deve ocorrer (retirar de uma E
inserir em outra).
• Cenário Atual
– Imaginemos um sistema de vendas em uma loja
Definição e Objetivos
• Conforme Silberchatz:
– Um Sistema de Gerenciamento de Banco de Dados é
uma coleção de dados inter-relacionados E um
conjunto de programas para acessar esses dados;
• Objetivo principal:
– Fornecer uma maneira de recuperar informações de
banco de dados que seja tanto conveniente como
eficiente.
Definição e Objetivos
• Outros Objetivos:
– Disponibilizar dados integrados para usuários e aplicações
através de interfaces amigáveis;
Acessa
• Bancos de Dados
– Tópicos Avançados
• Data Warehouse
os
d
Arm Disco
ra
• Business Intelligence
nad
tu
tru
aze
Es
em
• BD Geográficos
• Outros
Níveis de Abstração
• Nível fí
físico: descreve como um registro (por exemplo, cliente) é
armazenado..
• Nível ló
lógico: descreve os dados armazenados no banco de dados e as
relações entre eles..
type cliente = registro
id_cliente : string;
nome_cliente : string;
rua_cliente : string;
cidade_cliente : string;
end;
end
• Nível de view:
view: os programas de aplicação ocultam detalhes dos tipos de dados.
As views também podem ocultar informações (como o salário de um
funcionário) por motivos de segurança.
Instâncias e Esquemas
• Semelhantes aos tipos e variáveis nas linguagens de programação;
• Relembrando definição:
– SGBD = Programa + Dados;
– Programa: Responsável por receber e processar as consultas e
enviar os resultados para o solicitante;
– Banco de Dados: local onde os dados estão estruturados e
armazenados.
Processamento de Consultas
• Responsável pela realização de:
1. Análise e tradução
2. Otimização
3. Avaliação
• Maneiras alternativas de avaliar uma consulta dada:
• Expressões equivalentes;
• Diferentes algoritmos para cada operação;
• A diferença de custo entre um bom e um mau método de avaliar
uma consulta pode ser enorme;
• Necessidade de estimar o custo das operações:
• Depende profundamente das informações sobre relações
que o banco de dados precisa manter;
• Necessidade de estimar estatísticas para resultados
intermediários para calcular custo de expressões complexas.
Processamento de Consultas
• Componentes:
C F
O U
M N SGBD
P C
O I
Compilador
N O
DML
E A
N I
T S Processador Pré-compilador Interpretador
E de Consultas DML DDL
S
Processamento de Consultas
31
Usuários
Administrador
do Banco Dados
Acessa
pela forma como irão interagir
com o banco de dados.
• Usuário Final;
do
os
Arm Disco
ra
nad
tu
tru
aze
Es
em
• Administrador do Banco de
Dados;
• Analista / Administrador de
Dados.
Administrador de Banco de Dados (DBA)
• Coordena todas as atividades do sistema de banco de dados;
• O administrador de banco de dados tem um bom conhecimento
dos recursos e necessidades de informação da empresa;
• As responsabilidades do administrador de banco de dados
incluem:
Definição de esquema;
Estrutura de armazenamento e definição de
método de acesso;
Modificação de esquema e de organização física;
Concessão de autorização para acesso ao banco
de dados;
Especificar restrições de integridade;
Agir como ligação com os usuários;
Monitorar o desempenho e responder a
mudanças em requisições.
Arquiteturas de Sistemas
– Fatores impactados:
• Throughput: número de transações processadas por tempo;
• Tempo de resposta: tempo entre o início e o fim do processamento de uma consulta.
Arquiteturas de Sistemas
• Sistemas Distribuídos
– Neste caso os dados são distribuídos em diversos
computadores, geralmente separados geograficamente;
• Registros de domínio;
• Afirmações/Assertivas;
• Autorização.
SQL (Structured Query Language)
• SQL: linguagem não procedural amplamente usada.
• Exemplo: encontre o nome do cliente com id_cliente 192-83-7465
select cliente.nome_cliente
from cliente
where cliente.id_cliente = ‘192-83-7465’
• Exemplo: encontre os saldos de todas as contas pertencentes ao
cliente com id_cliente 192-83-7465
select conta.saldo
from depositante, conta
where depositante.id_cliente = ‘192-83-7465’ and
depositante.número_conta = conta.número_conta
• Os programas de aplicação geralmente acessam banco de
dados através de:
• Extensões de linguagem para permitir SQL embutida;
• Interface de programa de aplicação (por exemplo, ODBC/JDBC),
que permite que consultas SQL sejam enviadas a um banco de
dados.
Projeto de Banco de Dados
O processo de projetar a estrutura geral do banco de
dados.
• Projeto Lógico – Decidir sobre o esquema de banco de dados.
O projeto de banco de dados exige encontrar uma “boa” coleção
de esquemas de relação.
• Decisão empresarial – Que atributos devemos registrar no
banco de dados?
• Decisão de ciência da computação – Que esquemas de
relação devemos ter e como os atributos devem ser
distribuídos entre os vários esquemas de relação?
• Projeto Físico – Decidir sobre o layout físico do banco de
dados.
Terminologia
• OLTP vs OLAP
– Estas são duas siglas comumente encontradas em
bancos de dados;
– On-line Transactional Processing (OLTP)
• São bancos de dados cuja ênfase é dar suporte às
transações de um determinado negócio;
• Suas estruturas de armazenamento e consulta são voltadas
para melhorar a capacidade de inserção, alteração, exclusão
e consulta dos dados;
• Em termos de negócio, são bancos que armazenam
informações de nível operacional.
Terminologia
– Linha comercial
• Microsoft SQL Server
(http://www.microsoft.com/sqlserver/2008/pt/br/default.aspx)
• Microsoft Access (http://office.microsoft.com/pt-br/access/)
• Oracle
(http://www.oracle.com/us/products/database/index.htm)
• IBM DB2 (http://www-01.ibm.com/software/data/db2/)
• SyBase
(http://www.sybase.com/products/databasemanagement)
Para estudos
• Leitura:
SILBERSCHATZ, A. et.al. Sistema de banco de
dados. 5.ed. Rio de Janeiro: Elsevier, 2006.
Capítulo 1 – Introdução.