GBC043 Sistemas de Banco de Dados Introdução Ilmério Reis da Silva ilmerio@facom.ufu.br www.facom.ufu.br/~ilmerio/sbd UFU/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écnicosadministrativos 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 6 Definição SBD Def. Sistema de Banco de Dados (SBD) SBD = BD + SGBD + Aplicação
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
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
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 formato dos dados depende 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.
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
Página 18 Componentes de um SBD Sistema de Banco de Dados (SBD)
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)
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
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 31 Outras funcionalidades UTILITÁRIOS: carga backup recuperação monitoração
Arquitetura de um SGBD Relacional Página 32
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 - Exemplos 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.
Página 36 FIM - Introdução FIM - Introdução