Introdução - Facom

Propaganda
GES013 – Sistema de Banco de Dados
Introdução
Ilmério Reis da Silva
ilmerio arroba ufu.br
www.facom.ufu.br/~ilmerio/sbd
UFU/FACOM
Definição BD
Def. Banco de Dados
“ é uma coleção de itens de dados relacionados”
Propriedades implícitas de um BD:
 representa uma realidade,
 tem um significado
 é projetado com objetivos definidos
Em geral o conceito é aplicado para armazenamento e
manipulação de grande volumes de dados.
Página 2
Esquema, Instância e Estado de um BD
Def. Esquema do Banco de Dados: em qualquer modelo de
dados o esquema é uma descrição do banco de dados
Def. Instância: é a ocorrência de um dado no banco de
dados, por exemplo, um registro de empregado
Def. Estado de um Banco de Dados: é o conjunto de
instâncias de um banco de dados em um determinado
momento
Página 3
Exemplos de BD
•
Banco de dados de uma empresa, contendo dados de
clientes, funcionários e produtos.
•
Banco de dados de uma universidade, contendo dados
de cursos, alunos, professores e técnicosadministrativos
Para pensar:
As páginas da Web formam um BD?
Página 4
Definição SGBD
Def. Sistema Gerenciador de Banco de Dados
“Um Sistema Gerenciador de Banco de Dados(SGBD) é um
software que gerencia um ou mais bancos de dados”
Ex: Oracle; PostgreSql; MySql; Sybase; MS Sql Server; MS
Access; Firebird.
Página 5
Definição SBD
Def. Sistema de Banco de Dados (SBD)
SBD = BD + SGBD + Aplicação
Página 6
Alternativa à abordagem de BD
Uso de arquivos com gerenciamento por programas próprios,
aqui chamados de Arquivos Convencionais
Página 7
Problemas com Arquivos Convencionais
•
•
•
•
•
•
•
•
Inconsistência e redundância de dados
Acesso aos dados
Isolamento de dados
Integridade
Atomicidade
Acesso concorrente
Escalabilidade
Segurança
Página 8
Inconsistência e Redundância
Def. Consistência: o dado armazenado deve representar um fato ou atributo da
realidade modelada pelo sistema.
Def. Redundância: o mesmo dado é armazenado em mais de um arquivo
Problemas em arquivos criados por vários programadores:
•
Formatos distintos
•
Linguagens distintas
•
Atributos replicados em arquivos diferentes
•
Alto custo de armazenamento e manutenção de consistência entre as
cópias
Exemplo de redundância/inconsistência:
Alteração do número de telefone do funcionário em um arquivo, sem alterá-lo
em outro(s).
Qual representa a realidade?
Página 9
Dificuldade de acesso aos dados
O acesso é exclusivo por programas específicos.
Nova funcionalidade => escrever novo programa.
Exemplo: uma consulta aos dados de clientes de um determinado CEP
Página 10
Problemas com Isolamento de Dados
•
Os formatos dos dados dependem de programas específicos
•
Não há isolamento de dados e programas
Página 11
Problemas com Integridade
•
As restrições são totalmente implementadas por códigos próprios
•
Difícil implementação das restrições, pois, muitas vezes a manutenção
da consistência exige acesso a vários arquivos, inclusive gerados por
programas escritos em diferentes linguagens.
Página 12
Problemas com Atomicidade
•
Atomicidade significa que um conjunto de operações devem ser
executado por completo ou nenhuma operação do conjunto deve ser
executada.
•
Em caso de falha durante a execução do conjunto de operações deve-se
garantir a atomicidade
•
Isso é difícil de manter em arquivos gerenciados por programas
próprios
Exemplo: Transferir o valor X da conta A para a conta B.
Seja SA o saldo da conta A e SB o saldo da conta B, então o conjunto de
operações é dado por:
1) SA = SA – X;
2) SB = SB + X;
É difícil garantir a atomicidade em caso de falhas após a execução da
operação 1) débito e antes da execução da operação 2) crédito
Página 13
Problemas com acesso concorrente
•
Vários sistema exigem o acesso simultâneo, ou seja, concorrente, aos
dados
•
Exemplo: Seja uma conta corrente A com Saldo SA=500 e duas
retiradas simultâneas em tarefas T1 e T2, cada uma de 100, cuja
execução ocorre na seguinte ordem temporal:
T1: Obtem SA;
T2: Obtem SA;
T1: SA=SA-100;
T2: SA=SA-100;
T1: grava SA;
T2: grava SA;
É difícil garantir a consistência dos dados em caso de acesso concorrente a
arquivos convencionais. No caso acima SA será 400, mas deveria ser
300.
Página 14
Problemas com Escalabilidade
•
Acesso aos dados pode se tornar ineficiente com o crescimento do
volume de dados
•
Crescimento de funcionalidades pode ser difícil de implementar
Página 15
Problemas de segurança
•
Grandes sistemas têm vários usuários
•
O acesso deve ser restrito às função do usuário
•
É difícil controlar o acesso em Arquivos Convencionais
Página 16
Como um SGBD lida com esses Problemas
•
Inconsistência e redundância de dados: independência dados/programas
•
Dificuldade de acesso aos dados: algoritmos sofisticados
implementando linguagens declarativas de consulta/acesso aos dados
•
Isolamento de dados: independência dados/programas
•
Problemas de Integridade: várias restrições implementadas pelo SGBD
•
Problemas de atomicidade: controle de transações
•
Anomalias no acesso concorrente: controle de concorrência
•
Escalabilidade: algoritmos sofisticados de otimização de consultas
•
Problemas de segurança: controle de acesso pelo SGBD
Página 17
Componentes de um SBD
Sistema de Banco de Dados (SBD)
Página 18
Capacidades de um SGBD
•
•
•
•
•
controle de transações
controle de acesso
controle de redundância
garantia de restrições de integridade
backup e recuperação
Página 19
Características e Viabilidade
CARACTERÍSTICAS DA ABORDAGEM BASEADA EM BD
•
repositório para diversas aplicações
•
dados e metadados
VIABILIDADE
•
investimento em HW e SW
•
porte de aplicações
•
necessidade de concorrência (transações)
Página 20
Níveis de Abstração
Página 21
Exemplo Nível Conceitual
Página 22
Exemplo Nível Físico
Página 23
Exemplo Nível Externo
Página 24
Exemplos Redundância
Página 25
Independência de Dados
• Independência Lógica: alterações no nível lógico não
afetam os programas
Exemplo: inserção de uma nova tabela
• Independência Física: alterações na estrutura de arquivos
e índices não afetam o nível lógico
Exemplo: criação de um índice para melhoria do
desempenho
Página 26
Profissionais envolvidos
•
•
•
•
•
•
Implementadores de BD
Projetistas de BD Lógico
Projetistas de BD Físico
Administradores de banco de dados (DBA)
Programadores de aplicativos
Usuários finais.
Página 27
Histórico de SBD e Arquitetura de BD
 Sistemas monolíticos centralizados
 Arquitetura cliente/servidor em duas camadas
 Arquitetura cliente/servidor em três camadas:
• Cliente => GUI/Apresentação
• Servidor Web => Aplicação/Lógica; e
• Servidor de BD => SGBD/Serviços BD
 BD e mobilidade => devido à possibilidade de
desconexão, o conceito de trabalho offline seguido de
sincronização é importante
Página 28
Linguagens de Definição e Manipulação
• DDL define:
 esquema conceitual
 esquema interno e
 esquema externo
• DML manipula:
 busca
 inserção
 modificação e
 remoção
Página 29
Outras Linguagens
API:
•
ODBC
•
JDBC e
•
Outros Drivers
INTERFACE:
 menus
 formulários
 gráficas
 administração
Página 30
Outras funcionalidades
UTILITÁRIOS:
 carga
 backup
 recuperação
 monitoração
Página 31
Arquitetura de um SGBD Relacional
Página 32
Modelo de Dados
Def. Modelo de Dados:
Um modelo de dados é um conjunto de ferramentas
conceituais para descrição de dados, incluindo
relacionamentos e restrições de integridade.
Página 33
Modelo de Dados – (Paradigmas de SGBD)
•
•
•
•
•
•
•
Modelo de Entidade-Relacionamento - ER(*)
Modelo Orientado a objetos
Modelo Semântico de Dados
Modelo Hierárquico
Modelo de Redes
Modelo Relacional (*)
Modelo Relacional – Orientado a objeto
(*) O Modelo ER e o Modelo Relacional serão estudados em
detalhe e usados como ferramento de projeto de BD
nessa disciplina
Página 34
Bibliografia/Exercícios
•
•
•
[EN] Capítulos 1 e 2
[RG] Capítulo 1
[SK] Capítulo 1
•
Resolva os exercícios no final de cada capítulo acima.
•
Sugestão de leitura recente:
Helland, P., “The Singular Success of SQL” in
Communications Of The ACM, August 2016,
Vol. 59, No. 8, pages 38-41.
Página 35
FIM - Introdução
FIM - Introdução
Página 36
Download