Banco de Dados I Conceitos Básicos
Introdução – você vai ouvir muito isso!
dados - fatos que podem ser armazenados ex:nomes, telefones, endereços
base de dados - coleção de dados
interelacionados logicamente, ex: agenda de telefones
Sistema de Gerência de Bases de Dados (SGBD) – coleção de programas que permite a criação e
gerência de bases de dados
• Automatização das funções;
• Sistemas isolados (SPA);
• Empresa hipotética Implementa gradativamente sistemas para:
Onde ficam os dados de produto?
Sistema de Processamento de Arquivos
Exemplo
• Inconsistência e redundância de dados
Controlada (Sistema) e Não Controlada (usuários)
• Dificuldades de acesso;
• Isolamento dos dados;
• Problemas de integridade;
• Anomalias no acesso concorrente;
• Problemas de segurança;
• Problemas de atomicidade.
SPA - Desvantagens
• Redundância de dados
– Arquivos e aplicações criados e mantidos por diferentes programadores
arquivos com formatos diferentes e programas escritos em diversas linguagens de programação.
– Informação repetida em diversos lugares (arquivos).
• Inconsistência
– Decorrência da redundância.
– Várias cópias dos dados poderão divergir ao longo do tempo.
SPA - Desvantagens
• Dificuldade de acesso
– Necessidade de construir programas para obter qualquer informação solicitada.
Uma empresa precisa dos nomes de todos os clientes que fazem aniversário no mês de fevereiro, mas esta solicitação não foi prevista no projeto do
sistema. Porém, existe somente uma aplicação para gerar a relação de todos os clientes da empresa.
Alternativas:
1) separar manualmente da lista de todos os clientes que necessita 2) requisitar um programador para escrever o programa necessário.
SPA - Desvantagens
Exemplo
• Falta de isolamento dos dados
– Dados dispersos em vários arquivos e arquivos em diferentes formatos
>>> difícil escrever novas aplicações para recuperação apropriada dos dados.
SPA - Desvantagens
• Problemas de integridade
– Valores dos dados armazenados devem satisfazer a certas restrições para manutenção da consistência.
• O valor da nota final de um aluno deve estar entre 0 e 10. Os programadores determinam o cumprimento desta restrição através da adição de código
apropriado aos vários programas aplicativos.
• Entretanto, quando aparecem novas restrições, é difícil alterar todos os programas para incrementá-las. O problema é ampliado quando as restrições atingem diversos itens de dados em diferentes arquivos.
SPA - Desvantagens
Exemplo
• Anomalias no acesso concorrente;
– Atualizações concorrentes podem resultar em inconsistências.
•Conta corrente com saldo = R$500,00
•Dois clientes debitam da conta A simultaneamente ($50 e $100, respectivamente)
•Na execução dos programas, ambos leem o saldo antigo, retiram, cada um seu valor correspondente, sendo o resultado armazenado.
•Dependendo de qual deles registre seu resultado primeiro, o saldo da conta A será $450 ou $400, ao invés do valor correto de $350.
SPA - Desvantagens
Exemplo
• Problemas de segurança;
– Definir autorizações de acesso a diferentes usuários
• Problemas de atomicidade.
– Algumas operações devem ser feitas de forma única, atômica, a fim de assegurar a integridade e consistência dos dados
... exemplo
SPA - Desvantagens
♦ um programa para transferir R$50,00 da conta A para uma conta B.
Se ocorrer falha no sistema durante sua execução, é possível que os 50 reais sejam debitados da conta A sem serem creditados na conta B, criando um estado inconsistente no banco de dados.
♦É essencial para a consistência do banco de dados que ambos, débito e crédito ocorram, ou nenhum deles seja efetuado. Isto é, a
transferência de fundos deve ser uma operação atômica – deve ocorrer por completo, ou não ocorrer.
SPA - Desvantagens
Exemplo
Solução
Banco de Dados Consequências…
Compartilhamento de dados tem reflexos na estrutura do software
Estrutura interna dos arquivos passa a ser mais complexa Devem atender às necessidades dos diferentes sistemas Controle de acesso
Sistema de gerenciamento de banco de dados – SGBD
VISÃO GERAL
•Área de grande importância na informática;
•Utilizado para armazenar e recuperar dados rapidamente;
Aplicações de banco de dados tradicionais
•Armazena informações textuais ou numéricas
Bancos de dados de multimídia
•Armazena imagens, clipes de áudio e streams de vídeo digitalmente (facebook)
Banco de dados
Dados
•Tudo que podemos inferir ou coletar sobre determinada situação;
•Podem não transmitir significado;
•Podem ser úteis ou não
•Exemplo: quantidade de carteiras de uma sala, cor da parede, suas dimensões, etc..
Informação
•Dados úteis que armazenamos em uma base de dados
•Transmitem significado
•Em BD, os termos são sinônimos (armazena-se apenas aquilo que é útil)
Dados X Informação
Informação é armazenada uma única vez.
Informação é armazenada uma única vez.
Banco de dados
Conjunto de dados integrados que tem por objetivo atender a uma comunidade de usuários. (Heuser, 2009)
• Bancos: clientes, contas, empréstimos;
• Escolas: alunos, professores, cursos, turmas;
• Vendas: clientes, produtos, fornecedores;
• Transportes: reservas, informações de horários;
• Imobiliárias: aluguéis, compras e vendas de imóveis.
• More, more…
Aplicação de Banco de dados
• Local ou espaço a fim de armazenar/recuperar informações;
• Deve conter um nome representando o que ela armazena;
• Exemplo: Agenda pessoal
• bd_agenda(Nome, endereço, tipo de endereço(residencial, comercial), telefone, nome da empresa, e-mail, etc…);
• Permite a centralização e relacionamento dos dados de forma coerente;
E o que é uma base de dados?
• SBD: armazenamento e recuperação;
• Características principais:
1. Armazenar os dados;
2. Relacionar os dados armazenados;
3. Recuperá-los rapidamente.
• Hoje, SGBD: ferramenta muito mais completa em relação aos SBD`s.
Sistemas Gerenciadores de Banco de Dados - SGBD
Permitir acesso concorrente (diversos
acessos a base ao mesmo tempo - web);
Realizar o gerenciamento das transações
(transação = unidade lógica indivisível);
Permitir criar e aplicar regras de
segurança (logins, perfis diferenciados);
Permitir criar e aplicar regras que garantam a integridade (valores
Principais características - SGBD
SPA x SGBD
SGBD é o software que incorpora as funções de definição, recuperação e alteração de dados em um banco de dados. (Heuser, 2009)
Exemplos de SGBD
Administradores de BD (DBA): monitoram e gerenciam todas as bases de dados criadas no SGBD (backups, recover, jobs);
Analistas de sistemas e programadores de aplicações: modelam as BD e implementam-as no SGBD escolhido. Desenvolvem a aplicação e a conectam à base de dados do sistema.
Usuários finais: pessoas que vão trabalhar
com as aplicações desenvolvidas. Para eles, o
Usuários de um BD
Usuários
Programadores e Analistas
Admin de BD
Modelagem Conceitual:
Modelo inicial sobre necessidades do usuário.
Quais dados serão armazenados?
Qual o relacionamento entre eles?
Entender o que o usuário final espera para armazenamento;
Extração requisitos: entender objetivos, expectativas com relação ao sistema;
Fases de desenvolvimento - BD
Modelagem Lógica:
Como os dados serão armazenados?
Como irão se relacionar?
Transformar o modelo conceitual mais próximo da implementação;
Fases de desenvolvimento - BD
Implementação do Modelo Lógico:
Criar a base de dados no SGBD escolhido;
Linguagem de consulta estruturada – SQL;
Fases de desenvolvimento - BD
A fase de modelagem é a principal etapa no desenvolvimento de uma base de dados. Por isso é muito importante que se dedique tempo e esforço no desenvolvimento de uma boa modelagem da base de dados.
Esquema da base dados;
Não deve ser alterado com frequencia;
Compreende a descrição e relacionamento dos dados armazenados;
Utiliza uma linguagem textual ou gráfica;
Explicita tipos de dados e suas restrições.
Modelo de dados
Podem ser basicamente de 2 tipos:
1. Modelo de dados conceitual – fornece uma visão mais próxima do modo como os usuários visualizam os dados;
2. Modelo de dados lógico – fornece uma visão mais detalhada do modo como os dados estão
Modelo de dados
1. Cite 3 exemplos de situações que necessitem utilizar uma base de dados diferente das já apresentadas.
2. Quais seriam os dados úteis a serem armazenados nestas bases?
3. Qual a diferença entre uma base de dados e um sistema de banco de dados?
4. Comente sobre as principais características de um SGBD.
5. O que é um modelo de dados? Para que ele serve?
6. Por que a fase de modelagem dos dados é tão
importante no processo de desenvolvimento de um sistema?
Atividades