Banco de Dados Distribuídos - Início | Faculdade de ...ilmerio/sbd/sbd1introducao.pdf · Página...

36
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

Transcript of Banco de Dados Distribuídos - Início | Faculdade de ...ilmerio/sbd/sbd1introducao.pdf · Página...

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 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

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 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)

Página 21

Níveis de Abstração

Página 22

Exemplo Nível Conceitual

Página 23

Exemplo Nível Físico

Página 24

Exemplo Nível Externo

Página 25

Exemplos Redundância

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 31

Outras funcionalidades

UTILITÁRIOS:

carga

backup

recuperação

monitoração

Página 32

Arquitetura de um SGBD Relacional

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.

Página 36

FIM - Introdução

FIM - Introdução