Cap
Cap
í
í
tulo
tulo
1:
1:
Introdu
Introdu
ç
ç
ão
ão
Slides traduzidos/adaptados por: Deise de Brum Saccol (UFSM)
Slides originais em:
Sistema de Gerenciamento de Banco de
Sistema de Gerenciamento de Banco de
Dados (SGBD)
Dados (SGBD)
SGBD
Coleção de dados inter-relacionados Banco de dados (“base de dados”)
– Informações relevantes a uma empresa
Conjunto de programas para acessar estes dados Um ambiente conveniente e eficiente para usar
Aplicações de BD:
Banco: clientes, contas, empréstimos, transações bancárias Linhas aéreas: reservas, informações de horários
Universidades: alunos, cursos, registros de notas Vendas: clientes, produtos, compras
Indústria: gerenciamento da cadeia de suprimento, controle de estoque Recursos humanos: funcionários, salários, geração de contra-cheques
Finalidade
Finalidade
dos SBD
dos SBD
Aplicações de BD eram construídas usando sistema de arquivos Desvantagens de usar sistema de arquivos para armazenar dados:
Redundância e inconsistência de dados
Vários formatos de arquivos, duplicação de informação em
diferentes arquivos
Dificuldade no acesso aos dados
Necessidade de escrever um novo programa para realizar
cada nova tarefa
Isolamento de dados – vários arquivos e formatos de arquivos Problemas de integridade
Restrições de integridade (ex: saldo>0)
– Adicionar código apropriado nos vários programas de aplicação
Finalidade
Finalidade
dos SBD (Cont.)
dos SBD (Cont.)
Desvantagens de usar sistema de arquivos (cont.)
Problemas de atomicidade
Falhas podem deixar o BD em um estado inconsistente, com parte
das modificações realizadas
Exemplo: transferir $ de uma conta para outra precisa ocorrer em
sua totalidade ou não deve ocorrer absolutamente
Acesso concorrente por múltiplos usuários
Acesso concorrente necessário para melhor desempenho
Acesso concorrente não controlado pode levar à inconsistências
– Exemplo: 2 pessoas lendo um saldo e atualizando ao mesmo tempo
Problemas de segurança
Difícil fornecer acesso a alguns dados
N
N
í
í
veis de abstra
veis de abstra
ç
ç
ão
ão
Nível físico: descreve como um registro (por ex., cliente) é armazenado
Nível lógico: descreve dados armazenados em um BD, e os relacionamentos entre os dados
type cliente = record
id_cliente : string; nome_cliente : string; rua_cliente : string; cidade_cliente : string;
end;
Nível de visão: programas de aplicação escondem detalhes dos tipos de dados. Visões também podem esconder informações (salário de empregado) por questões de segurança
Visões dos dados
Visões dos dados
Instâncias e esquemas
Instâncias e esquemas
Similar a tipos e variáveis em linguagens de programação Esquema – a estrutura lógica do BD
Exemplo: o BD consiste de informações sobre um conjunto de clientes
e contas e o relacionamento entre eles
Análogo a informação de tipo de uma variável em um programa Esquema físico: projeto do BD no nível físico
Esquema lógico: projeto do BD no nível lógico
Instância – o conteúdo do BD em um momento particular no tempo
Análogo ao valor de uma variável
Independência física de dados – habilidade de modificar o esquema
físico sem mudar o esquema lógico
Aplicações dependem do esquema lógico
Em geral, interfaces entre os vários níveis e componentes devem ser
bem definidas, de tal forma que mudanças em algumas partes não influenciem seriamente as outras
Modelos de dados
Modelos de dados
Uma coleção de ferramentas para descrever
dados
relacionamentos semântica
restrições
Modelo relacional
Modelo de dados entidade-relacionamento (principalmente para
projeto de BD)
Modelos de dados baseados em objetos (orientado a objetos e
objeto-relacional)
Modelo de dados semi-estruturado (XML)
Outros modelos mais antigos:
Modelo em rede Modelo hierárquico
Modelo
Modelo
relacional
relacional
Exemplo de um dado tabular no modelo relacional
Um
Linguagem de manipula
Linguagem de manipula
ç
ç
ão de dados (DML)
ão de dados (DML)
Linguagem para acessar e manipular os dados organizados pelomodelo de dados
DML é também conhecida como linguagem de consulta
SQL
SQL
SQL: linguagem não procedural amplamente usada
Exemplo: Encontrar o nome do
cliente com id 192-83-7465
select customer.customer_name
from customer
where customer.customer_id =
SQL
SQL
Exemplo: Encontrar o saldo de
todas as contas do cliente com id 192-83-7465
select account.balance
from depositor, account
where depositor.customer_id =
‘192-83-7465’ and
depositor.account_number = account.account_number
Linguagem de defini
Linguagem de defini
ç
ç
ão de dados (DDL)
ão de dados (DDL)
Notação de especificação para definir o esquema do BD
Exemplo: create table account (
account-number char(10),
balance integer)
Compilador DDL gera um conjunto de tabelas armazenadas em um dicionário de dados
Dicionário de dados contém metadados (dados sobre dados)
Esquema do BD
Especifica a estrutura de armazenamento e os métodos de
acesso usados
Restrições de integridade
Restrições de domínio Integridade referencial
Projeto de BD
Projeto de BD
O processo de projetar a estrutura geral de um BD:
Projeto lógico – decidir o esquema do BD. Projeto do BD requer encontrar uma “boa” coleção de tabelas
Decisão de negócio – quais atributos deveriam ser armazenados no
BD?
Decisão de computação – quais tabelas devemos ter e como os
atributos devem ser distribuídos entre estas várias tabelas?
O modelo entidade
O modelo entidade
-
-
relacionamento
relacionamento
Modela uma empresa como uma coleção de entidades e relacionamentos
Entidade: uma “coisa” ou “objeto” na empresa que se distingue de
outros objetos
Descrita por um conjunto de atributos
Relacionamento: uma associação entre várias entidades
Representado graficamente por um diagrama entidade-relacionamento:
Processamento
Processamento
de
de
consultas
consultas
1. Parsing e tradução 2. Otimização
Processamento de consultas (Cont.)
Processamento de consultas (Cont.)
Formas alternativas de avaliar uma consulta
Expressões equivalentes
Diferentes algoritmos para cada operação
Diferença de custo entre uma forma boa e uma ruim para avaliar uma consulta pode ser enorme
Necessidade de estimar o custo das operações
Depende criticamente de informações estatísticas sobre tabelas, as
quais são mantidas pelo BD
Necessidade de estimar estatísticas para resultados intermediários
Gerenciamento de transa
Gerenciamento de transa
ç
ç
ões
ões
Uma transação é uma coleção de operações que realizam uma única função lógica em uma aplicação de BD
O componente de gerenciamento de transações garante que o BD permaneça em um estado consistente (correto) mesmo que ocorram falhas (ex: falta de energia/falha do SO/erro de transação).
O gerenciador de controle de concorrência controla a interação entre as transações concorrentes para garantir a consistência do BD
Usu
Usu
á
á
rios do BD
rios do BD
Usuários se diferenciam pela forma com que eles interagem com o sistema
Programadores de aplicação – interagem com o sistema via chamadas DML
Usuários sofisticados – fazem requisições em uma linguagem de consulta à BD
Usuários especializados – escrevem aplicações de BD especializadas, que não se enquadram na estrutura de processamento tradicional de dados
Usuários leigos – invocam programas de aplicação que foram previamente escritos
Administrador do BD (DBA)
Administrador do BD (DBA)
Coordena todas as atividades do SBD; o DBA tem uma boa compreensão dos recursos e das necessidades de
informação da empresa
Funções de um DBA incluem:
Definição do esquema
Definição das estruturas de armazenamento e dos
métodos de acesso
Modificação do esquema e da organização física Concessão de autorização para acesso ao BD Especificar restrições de integridade
Monitorar desempenho e responder à mudanças nos
requisitos
Manutenção de rotina
Backups periódicos
Estrutura
Hist
Hist
ó
ó
ria de SBD
ria de SBD
1950s e começo dos 1960s:
Processamento de dados usavam fitas magnéticas para
armazenamento
Fitas fornecem somente acesso seqüencial
Cartões perfurados para entrada
Fim dos 1960s e 1970s:
Discos rígidos permitem acesso direto aos dados Uso de modelos de dados em rede e hierárquicos Ted Codd define o modelo de dados relacional
Ganhou o premio ACM Turing Award por este trabalho IBM Research: System R
UC Berkeley: Ingres
Processamento de transações com alto desempenho (para a
Hist
Hist
ó
ó
ria (cont.)
ria (cont.)
1980s:
Protótipos de pesquisa no modelo relacional evoluem para
sistemas comerciais
SQL torna-se padrão industrial
SBD paralelos e distribuídos SBD orientados a objetos
1990s:
Aplicações de suporte à decisão e mineração de dados Grandes data warehouses (terabytes)
Emergência de comércio pela web
2000s:
Padrões XML e XQuery
Sugestão de leitura
Sugestão de leitura
Capítulo 1 – Introdução
Silberschatz – Sistema de Banco de Dados,