1. Bacharelado em Sistemas de Informação
Banco de Dados I
IvonePenque Matsuno Yugoshi
ivone.matsuno@ufms.br
Conceitos Básicos
2. 2
Motivação
• Necessidade de:
• armazenar grandes quantidades de dados
• acessar informações de maneira eficiente e segura
• O que é um Banco de Dados (BD)?
• Dados são fatos que podem ser gravados e que possuem um significado implícito.
Por exemplo:
• Nomes, telefones e endereços de pessoas conhecidas
• Um BD é uma coleção de dados relacionados
• Uso do termo banco de dados é em geral mais restrito, conforme será visto neste
curso
3. 3
Motivação
• Operações bancárias
• Compras por intermédio da Web
• Dados sobre produtos/compras em supermercados
• Dados multimídia
• Informações geográficas
• Recuperação de informações na www
• Mineração de dados
• Etc
4. 4
Histórico e Evolução dos BD
• No início da computação, programas tinham o único objetivo de
armazenar e manipular dados.
• Esses programas gravavam seus dados em disco, segundo estruturas
próprias.
• Programas que não conhecessem a estrutura dos dados não podiam
utilizar os dados.
Estrutura dos dados
Arquivo
5. 5
Histórico e Evolução dos BD
• Se vários programas precisassem compartilhar os dados de um mesmo
arquivo, todos os programas teriam que conhecer e manipular as
mesmas estruturas.
Estrutura dos dados
Arquivo
Estrutura dos dados
6. 6
Histórico e Evolução dos BD
• Se algum programa precisasse realizar alguma mudança na estrutura de
dados,
• Todos os programas que acessam esse mesmo arquivo tinham que ser
alterados, mesmo que a alteração ocorresse em dados não
manipulados pelos programas.
• Isso gerava um grande problema:
• Garantir a unicidade das estruturas de dados entre os diversos
programas devido à existência de redundâncias.
7. 7
Histórico e Evolução dos BD
• Para evitar esse problema, colocou-se um sistema intermediário:
• Que conhece a estrutura de dados do arquivo.
• Fornece apenas dados que cada programa precisa.
• Armazena adequadamente os dados de cada programa.
Arquivo
8. 8
Histórico e Evolução dos BD
• Agora, com esse sistema intermediário:
• Os programas "verão" apenas os dados que lhes interessam.
• Os programas não precisam conhecer os detalhes de como seus dados
estão gravados fisicamente.
• Os programas não precisarão ser modificados se a estrutura de dados
que utilizam não for modificada.
• As alterações ficam concentradas nesse sistema intermediário.
9. 9
Histórico e Evolução dos BD
• Com o tempo, esse sistema intermediário passou a gerenciar vários
arquivos.
• A essa coleção de arquivos foi dado o nome de Banco de Dados e o
sistema intermediário recebeu o nome de Sistema Gerenciador de Banco
de Dados (SGBD).
Arquivo
Arquivo
Arquivo
S
G
B
D
10. 10
Histórico e Evolução dos BD
• Com o tempo, surgiram padrões para descrever as estruturas de dados:
os modelos de dados.
• A descrição do banco de dados, segundo um modelo de dados é
chamada de meta dados.
BD
Meta
Dados
SGBD
Dados
11. 11
Banco de Dados - Definição
É uma coleção de dados coerente e logicamente relacionados com
algum significado associado.
É projetado, construído e populado com dados que atendem a um
propósito e audiência específicos.
Representa algum aspecto do mundo real, chamado de minimundo.
12. 12
SGBD
• Sistemas Gerenciadores de Banco de Dados são FERRAMENTAS para
proporcionar um ambiente integrado que possibilita o
ARMAZENAMENTO e RECUPERAÇÃO das informações de forma
eficiente e segura
• O SGBD é responsável em fazer o tratamento
13. 13
ACID
• Um SGBD deve garantir a integridade das transações em um banco de
dados mantendo as seguintes propriedades (ACID):
• Atomicidade: Essa propriedade garante que todas as transações sejam
atômicas (indivisíveis), ou seja, que as transações sejam executadas em
sua totalidade. Se ocorrer algum erro, todas as operações que compõem
a transação serão descartadas.
• Consistência: A execução de uma transação deve levar o banco de dados
de um estado consistente para outro estado de consistência, ou seja,
toda transação deve respeitar as regras de integridade dos dados (tipo de
dado, chave primária etc).
14. 14
ACID
• Isolamento: é um recurso do banco que tem como objetivo evitar que,
em um sistema multiusuário, transações em paralelo interfiram umas nas
outras.
• Durabilidade: significa que os efeitos de uma transação são permanentes,
podendo ser desfeitos somente como resultado de uma transação
posterior e bem-sucedida.
15. 15
Por que utilizar um SGBD
Quando usar SGBD Quando não Usar SGBD
Controle redundância
Controle consistência e
integridade
Acesso multiusuário
Compartilhamento de dados
Controle acesso e segurança
Controle de recuperação e
restauração
Consultas eficientes
Dados e aplicações simples e
estáveis
Requisitos de tempo-real não
puderem ser atendidos
16. 16
Vantagens de utilizar o SGBD
• Potencial para obrigar a Padronização
• Flexibilidade
• Redução do Tempo de Desenvolvimento de Aplicações
• Disponibilidade de Informações Atualizadas
• Economia de Escala
18. 18
Arquivos Dicionário de Dados
Índices Estatísticas
Gerenciador de Memória
Processador de Consultas
Aplicação
Consulta
em SQL
Consulta
em SQL
. . .
Armazenamento
Físico
Processamento
Interface
19. 19
Arquitetura
O objetivo da arquitetura de um SGBD, também chamada de arquitetura de
esquemas, é separar as aplicações do usuário do BD físico. É dividida em três níveis:
Nível Interno.
Nível Externo.
Nível Conceitual.
A arquitetura de três esquemas estrutura a construção de bancos de dados de forma a
garantir:
Separação dos programas e dados
Suporte a múltiplas visões
Uso do catálogo para armazenar a estrutura do banco
A ideia é construir modelos em diferentes níveis de abstração, partindo da visão do
usuário e chegando à visão da máquina
20. 20
Arquitetura
• Nível externo
• Descreve a parte do banco de dados em que cada usuário tem interesse
• Logo, há várias visões externas possíveis
• Nível conceitual
• Possui um esquema conceitual, que descreve a estrutura de todo o banco de
dados em alto nível para a comunidade de usuários
• Nível interno
• Possui um esquema interno, que descreve a estrutura de armazenamento físico
dos dados
21. 21
Visão 1 Visão 2 Visão N
...
Esquema conceitual
NÍVEL EXTERNO
NÍVEL CONCEITUAL
Esquema interno
NÍVEL INTERNO
Mapeamento
externo/conceitual
Mapeamento
conceitual / interno
22. 22
Modelo Conceitual
• É uma representação com alto nível de abstração
• Modela de forma mais natural os fatos do mundo real, suas
propriedades e seus relacionamentos
• Independente do BD utilizado
• Preocupação com a semântica (significado) da aplicação
• No curso, veremos o modelo entidade-relacionamento
23. 23
Modelo lógico
• Representa os dados em alguma estrutura (lógica) de armazenamento de
dados
• Também chamados de modelos de banco de dados
• Dependente do banco de dados
• No curso, veremos o modelo relacional, utilizado na grande maioria
dos SGBD’s modernos
• Apóiam:
• na especificação dos dados do modelo (DDL)
• dados, seus domínios e restrições
• na especificação de como manipular os dados (DML)
24. 24
Modelo Físico
• Possuem foco na:
• Indexação e estrutura de arquivos
• Transações e controle de concorrência
• Otimização
• Recuperação em casos de falhas
• Mecanismos de proteção (segurança)
• Partição e agrupamento de dados
25. 25
Independência dos dados
• É a habilidade de modificar a definição de um esquema em um nível sem
afetar a definição de esquema num nível mais alto, mudando apenas o
mapeamento entre os dois níveis.
• Existem dois níveis de independência de dados:
• Independência física
• Independência lógica.
26. 26
Independência Lógica
• Consiste na capacidade de alterar o esquema conceitual sem ter que
alterar os esquemas externos e programas de aplicação.
• Exemplo: podemos alterar o esquema conceitual do BD adicionando um
campo em determinada tabela, assim as visões que não se referem a
esta tabela não serão afetadas.
• A independência lógica de dados é mais difícil de ser alcançada do que
a independência física, pois os programas são bastante dependentes da
estrutura lógica dos dados que eles acessam.
27. 27
Atividades envolvidas na criação de um banco de dados
• O banco de dados não existe isoladamente (e nem é construído dessa
forma)
• Seu projeto e implementação normalmente fazem parte de um processo
mais amplo, que envolve a construção do software que será a interface
final dos usuários com o banco de dados
• Esse processo é denominado ciclo de vida de software, ou modelo de
processo de software
28. 28
Atividades envolvidas na criação de um banco de dados
• O início do processo de desenvolvimento se dá com o levantamento e
compreensão das necessidades do usuário, de forma a traduzi-las em um
conjunto de requisitos de software
• Parte desses requisitos definem que dados devem ser armazenados e
quais os relacionamentos entre eles ➔ requisitos de dados
• Outra parte desses requisitos definem como esses dados serão
processados ou, em outras palavras, o que o software deverá fazer ➔
requisitos funcionais
29. 29
Levantamento e
análise de requisitos
Projeto conceitual
Análise funcional
Projeto lógico
Projeto das funcionalidades
Projeto físico
MINIMUNDO
(domínio da
aplicação)
Requisitos funcionais Requisitos de dados
Esquema conceitual
Esquema lógico
Especificação das transações (alto nível)
BD
Implementação
Independen
te
do
SGBD
Dependente
do
SGBD
30. 30
Projeto de um Banco de Dados
análise de
requisitos
projeto
conceitual
mapeamento
para modelo
projeto físico
conjunto de
necessidades
esquema
conceitual
esquema em
linguagem de
implementação
Modelo Entidade
Relacionamento
(MER)
Mapeamento
MER para o
Modelo
Modelo Relacional
dependente do SGBD
independente do SGBD
31. 31
Usuários do BD
• Administrador do BD (Database Administrator – DBA)
• coordena e monitora o uso do BD (segurança, tempo de resposta ruim, etc)
• autoriza o acesso ao BD
• ajusta projeto físico quando necessário
• adquire software e hardware necessários
• Projetista do BD
• identificar os dados a serem armazenados no BD
escolher as estruturas apropriadas para representar e armazenar esses dados
• levantar necessidades dos usuários (requisitos)
32. 32
Usuários do BD
• Programador de aplicações
• escreve os programas aplicativos
• realiza requisições ao SGBD
• Usuário Final
• manipula o BD através de
• linguagens de consulta
• programas previamente desenvolvidos
• tipos de usuários
• Leigos (operador de terminal) X sofisticados (estatísticos e engenheiros)
• Casuais (gerentes) X frequentes (caixas de bancos)
33. 33
Formasdeinteraçãodo ProfissionalcomoSGBD
• Desenvolvedores/Programadores – usam as estruturas e os dados
armazenados para codificar os aplicativos de uma organização
• Projetistas – realizam a modelagem de dados dos aplicativos e mantém o
modelo de dados da organização atualizado
• Administradores de Dados – Controlam o SGBD de uma organização
• Fabricante de SGBD – codificam o “core engine do SGBD” e os utilitários
associados
34. 34
Formasdeinteraçãodo ProfissionalcomoSGBD
• Desenvolvedores/Programadores – usam as estruturas e os dados
armazenados para codificar os aplicativos de uma organização
• Projetistas – realizam a modelagem de dados dos aplicativos e mantém
o modelo de dados da organização atualizado
• Administradores de Dados – Controlam o SGBD de uma organização
• Fabricante de SGBD – codificam o “core engine do SGBD” e os utilitários
associados