Post on 29-Nov-2018
GES013 – Sistema de Banco de Dados
Introdução
Ilmério Reis da Silvailmerio arroba ufu.brwww.facom.ufu.br/~ilmerio/sbdUFU/FACOM
Página 2
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 3
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 4
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écnicos-administrativos
Para pensar:
As páginas da Web formam um BD?
Página 5
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 7
Alternativa à abordagem de BD
Uso de arquivos com gerenciamento por programas próprios, aqui chamados de Arquivos Convencionais
Página 8
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 9
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 10
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 11
Problemas com Isolamento de Dados
• Os formatos dos dados dependem de programas específicos
• Não há isolamento de dados e programas
Página 12
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 13
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 14
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 15
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 16
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 17
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 19
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 20
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 26
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 27
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 28
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 29
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 30
Outras Linguagens
API:
• ODBC
• JDBC e
• Outros Drivers
INTERFACE:
menus
formulários
gráficas
administração
Página 33
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 34
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 35
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.