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