Banco de Dados I
Introdução aos Bancos de Dados
Prof. Leonardo Oliveira Moreira
leoomoreira@[Link]
Qual a importância dos dados?
2
Razões
• Dados são o novo recurso estratégico
– Não é apenas tecnologia, é poder de decisão
• Vivemos na era dos dados
– A cada segundo:
• Milhares de transações online
• São gerados, aproximadamente, 29 terabytes de dados
na web
• Milhões de mensagens enviadas
• Bilhões de registros processados
– Dados estão sendo gerados o tempo todo
3
Razões
• Empresas movidas a dados
– Decisões não são mais “achismos”, são baseadas em
análises
– Exemplos:
• Amazon usa dados para recomendar produtos
• Netflix analisa comportamento para sugerir filmes
• Google organiza bilhões de informações diariamente
• Vantagem competitiva
– Quem usa dados consegue:
• Prever tendências
• Reduzir riscos
• Personalizar serviços
• Melhorar resultados
4
Razões
• Informação (geradas a partir dos dados) é ativo valioso
– Dados bem gerenciados significam:
• Segurança
• Confiabilidade
• Credibilidade
• Crescimento sustentável
• O profissional do futuro
– Precisa saber:
• Coletar dados
• Organizar informações
• Interpretar resultados
• Tomar decisões estratégicas
• No mundo atual, quem domina os dados domina o futuro
5
Por que estudar Banco de
Dados?
6
Razões
• Banco de Dados:
– A base invisível de quase tudo que usamos
• Está em todo lugar
– Compras online
– Redes sociais
– Empresas
– Sistemas em nuvem
• É sobre confiança
– Dados corretos
– Acesso rápido
– Sistema sempre disponível
• Compartilhamento de informações (geradas a partir dos dados)
– Sistemas em nuvem
– Acesso simultâneo por vários usuários
– Integração entre sistemas
7
Razões
• Organização eficiente de informações
– Permite armazenar grandes volumes de dados de forma
estruturada
– Facilita busca, atualização e exclusão de informações
– Evita redundância e inconsistência de dados
• Alta demanda no mercado de trabalho
– Base para sistemas empresariais e aplicações modernas
– Essencial para áreas como:
• Desenvolvimento de Software
• Análise de Dados
• Ciência de Dados
• Segurança da Informação
8
Razões
• Gerenciamento de dados
– Organização estruturada
– Atualização e manutenção eficiente
• Alto desempenho
– Respostas rápidas às consultas
– Otimização de processamento
• Integridade
– Dados corretos e consistentes
– Controle de erros e redundância
• Disponibilidade
– Acesso contínuo às informações
– Backup e recuperação de dados
9
Conceitos Básicos
• Dado
– Fato do mundo real que não foi organizado, processado,
relacionado ou interpretado, representando apenas partes
isoladas de eventos, situações ou ocorrências
• Exemplos: carro, amarelo, bom e data
• Informação
– Fato útil que pode ser extraído direta ou indiretamente a
partir dos dados
– É o resultado do processamento, manipulação e
organização de dados de tal forma que represente algo
mais expressivo
• Exemplos: “O carro amarelo é bom” e “idade”
10
Conceitos Básicos
• Banco de Dados (BD)
– Coleção de dados relacionados que representa um
subconjunto dos fatos presentes em um domínio
de aplicação (minimundo ou universo de discurso)
11
Banco de Dados
Instância Banco de
Metadados
de dado Dados
• Instância de dado
– Dado propriamente
• Metadados armazenados no dicionário de dados ou
catálogo
– Esquema ou estrutura do banco de dados
– Acessado através de linguagens de definição de dados (DDL)
12
Por que usar Bancos de Dados?
• Considere o contexto de uma grande organização
que não utiliza banco de dados
– Exemplo: domínio da Universidade
• Várias divisões gerenciais (com suas aplicações)
• Grande volume de dados
• Aplicações manipulam dados comuns
Acadêmica Espaço Físico Pessoal
• Alunos • Centros • Centros
• Professores • Departamentos • Departamentos
• Disciplinas • Cursos • Professores
• Turmas • Disciplinas • Funcionários
• Salas
13
Sistemas de Arquivos
• Sistemas de arquivos (armazenados em
diretórios no disco)
– Dados de diferentes aplicações não estão
integrados
– Dados são projetados para atender uma aplicação
específica
14
Sistemas de Arquivos
• Em uma fábrica com dados em sistemas de arquivos
Sistema para Setor Sistema para Setor Sistema para Setor
de Vendas de Produção de Engenharia
Arquivos de Vendas Arquivos de Produção Arquivos de Engenharia
Teclado TC60 R$ 20,00 Teclado TC60 10/11/13 Teclado TC60 [Link]
Monitor M60 R$ 150,00 Monitor M60 20/11/13 Monitor M60 [Link]
Mouse MS09 R$ 10,00 Mouse MS09 09/11/13 Mouse MS09 [Link]
Mesmos dados aparecem em todos os arquivos da fábrica
15
Sistemas de Arquivos
• Mesmo objeto da realidade é representado várias
vezes no armazenamento
– Exemplo: teclado, monitor e mouse
• Redundância não controlada de dados
– Não há gerência automática da redundância
– Redundância leva a:
• Inconsistência dos dados
• Repetição das informações
• Dificuldade na extração de informações corretas
• Dados pouco confiáveis e de baixa
disponibilidade
16
Sistemas de Arquivos
• Concorrência
– Difícil implementação
• Tolerância a falhas
– Falta de luz, erro de disco, interrupção de
funcionamento etc.
– Cópias? restauração do estado anterior?
Consistência da base?
• Segurança
– Acesso diferenciado por tipo de usuário
17
Sistemas de Arquivos
• Outros problemas
– Número máximo de arquivos
– Tamanho de memória
– Limitações do tipo de arquivo e do tipo de acesso
– Preocupações técnicas (SO) junto com problemas do
domínio
• Exemplo: efetuar aluguel de um DVD
– Consulta aos arquivos de reservas, histórico do cliente,
DVD etc.
– Como registrar um aluguel?
• Abrir arquivos (fechando outros)
• Carregar registros na memória (abre índice, usa ponteiro, estouro
de memória etc.)
18
Banco de Dados
• Em uma fábrica com os dados em banco de dados
Sistema para Sistema para Setor Sistema para Setor
Setor de Vendas de Produção de Engenharia
Banco de Dados
[Link]
[Link] Dados
R$ 20,00 Teclado TC60 [Link] aparecem
R$ 150,00 Monitor M60 uma
R$ 10,00 Mouse MS09 10/11/13 única vez
20/11/13 no banco
09/11/13
19
Sistema Gerenciador de Banco de
Dados (SGBD)
• Um SGBD é uma coleção de programas que
permite aos usuários criar e manter um banco de
dados
• SGBD é um sistema de software de uso geral que
facilita o processo de definição, construção,
manipulação e compartilhamento de bancos de
dados entre diversos usuários e aplicações
• SGBDs são projetados para gerenciar grandes
volumes de dados
20
SGBD
Sistema Sistema Sistema Sistema
Acadêmico Vendas Locadora RH
SGBD
Acadêmico RH Vendas Locadora
21
SGBD
• O gerenciamento em um SGBD envolve:
– A definição de estruturas para o armazenamento
da informação
– O fornecimento de mecanismos para manipular as
informações
• Quando vários usuários acessam os dados, o
SGBD precisa garantir a integridade dos dados,
evitando resultados anômalos
22
SGBD
• Isolar os usuários dos detalhes mais internos
do banco de dados (abstração de dados)
• Prover independência de dados às aplicações
(estrutura física de armazenamento e à
estratégia de acesso)
23
SGBD
• Vantagens:
– Rapidez na manipulação e no acesso à informação
– Redução do esforço humano (desenvolvimento e
utilização)
– Diminuição da redundância e da inconsistência de
informações
– Redução de problemas de integridade
– Compartilhamento de dados
– Aplicação automática de restrições de segurança
– Controle integrado de informações distribuídas
fisicamente
24
SGBD
• O grande objetivo de um SGBD é prover aos
usuários uma visão abstrata dos dados
– O sistema omite certos detalhes de como os
dados são armazenados e mantidos
– Oferece mecanismos eficientes para busca e
armazenamento
25
Sistema de Banco de Dados
Fonte: Adaptado de Elmasri e Navathe (2011, p. 4) 26
Abstração e Modelo de Dados
• Abstração de dados se refere à supressão de
detalhes da organização e armazenamento
dos dados
• Um modelo de dados é uma coleção de
conceitos que podem ser usados para
descrever a estrutura de um banco de dados
– Oferece níveis de abstração de dados
27
Categorias de Modelos de Dados
• Modelos de dados de alto nível ou conceitual
– Oferecem conceitos que são próximos ao modo como
muitos usuários percebem os dados
• Modelos de dados de baixo nível ou físicos
– Oferecem conceitos que descrevem detalhes de como
os dados são armazenados no computador
• Costumam ser voltados para usuários especialistas
• Modelos de dados representativos ou de
implementação
– Intermediário entre o modelo de dados conceitual e
físico
28
Categorias de Modelos de Dados
• Modelos de Dados (conceitual)
– Entidade-Relacionamento (ER)
– Orientado a Objetos (OO)
• Modelos de Dados (representativo ou de
implementação)
– Relacional
– Orientado a Objetos
29
Modelo Relacional
NOME CIDADE AGENCIA CONTA SALDO
GILVAN MAIA FORTALEZA 1234 11019 10.000,00
LEONARDO FORTALEZA 4325 12352 4.500,00
MOREIRA
EMANUEL FORTALEZA 2311 78422 5.545,00
COUTINHO
GABRIEL PARIS 3421 74901 3.670,00
PAILLARD
WINDSON PARIS 2311 23551 150.000,00
VIANA
30
Modelo Relacional
TABELA DE CLIENTE (DADOS)
COD_CLIENTE NOME ENDERECO CIDADE
3 LEONARDO MOREIRA RUA A FORTALEZA
2 WINDSON VIANA RUA B PARIS
4 GABRIEL PAILLARD RUA C PARIS
5 GILVAN MAIA RUA D FORTALEZA
TABELA DE CONTA (DADOS) TABELA DE CLIENTE_CONTA (RELACIONAMENTO)
NR_CONTA SALDO NR_CONTA COD_CLIENTE
3421 6.342,70 3421 2
3425 6.452,60 3425 4
2342 1.200,00 2342 3
8749 2.202,50 8749 5
31
Instâncias e Esquemas
• Os bancos de dados mudam a medida que
informações são inseridas, alteradas ou
apagadas
– A coleção de informações armazenadas é
chamada de instância do banco de dados
• Mudam com frequência
– O projeto geral do banco de dados é chamado
esquema do banco de dados
• Não mudam com frequência
32
Arquitetura de Três Esquemas
Fonte: Adaptado de Elmasri e Navathe (2011, p. 22) 33
Independência dos Dados
• O uso de banco de dados permite modificar o
esquema dos dados em um nível sem afetar a
definição do esquema em um nível mais alto
– Isto é chamado de independência dos dados
34
Independência dos Dados
• Existem dois tipos de Independência dos Dados
– Independência física de dados: habilidade de
modificar o esquema interno sem a necessidade de
reescrever os programas aplicativos
• Estas modificações são necessárias para melhorar o
desempenho
– Exemplo: modificação nos aspectos de armazenamento ou busca
– Independência lógica de dados: habilidade de
modificar o esquema conceitual sem a necessidade de
reescrever os programas aplicativos
• Estas modificações são necessárias quando a estrutura lógica
é alterada.
– Exemplo: adição de um novo atributo
35
Independência dos Dados
• A independência lógica dos dados é mais
difícil de ser alcançada do que a
independência física
• Os programas aplicativos são bastante
dependentes da estrutura lógica dos dados
que eles acessam
36
Linguagem de Definição de Dados
(DDL)
• Um esquema de banco de dados é
especificado por um conjunto de definições
expressas por uma linguagem especial
chamada linguagem de definição de dados
(Data Definition Language)
• O resultado da compilação de comandos de
uma DDL é o conjunto de tabelas que serão
armazenadas no dicionário de dados
37
Linguagem de Definição de Dados
(DDL)
• Um dicionário de dados contém metadados,
ou seja, dados sobre os dados
• Este dicionário é consultado antes que os
dados sejam lidos ou modificados no sistema
de banco de dados
38
Linguagem de Manipulação de Dados
(DML)
• DML (Data Manipulation Language)
• Manipulação de dados significa:
– A recuperação de dados armazenados no BD
– A inserção de novos dados no BD
– A remoção de dados armazenados do BD
– A alteração dos dados armazenados no BD
• A parte da DML que busca, insere, altera e
exclui informações é chamada Linguagem de
Consulta
39
Usuários do Banco de Dados
• Programadores de Aplicativos
– São os usuários que escrevem os programas de
aplicação através da DML
• Exemplos de um sistema bancário são programas que
geram cheques, fazem débitos e créditos em contas,
transferem fundos entre contas
• Usuários Casuais
– Interagem com o sistema sem escrever programas
– Formulam consultas em uma Linguagem de
Consulta
40
Usuários do Banco de Dados
• Usuários Paramétricos
– Interagem com o sistema invocando os programas
aplicativos
• Exemplo: um cliente do banco invocaria um programa
para efetuar a transferência de 50 reais da conta A para
a conta B
• Administrador do Banco de Dados (DBA)
– tem o controle central dos dados e dos programas
de acesso aos dados
41
Usuários do Banco de Dados
• Funções do Administrador do Banco de
Dados:
– Definição do esquema
– Definição de estruturas de armazenamento e
métodos de acesso
– Modificação de esquema e de organização física
– Concessão de autorização para acesso aos dados
– Especificação de restrições de integridade
42
Módulos Componentes de um SGBD
• Catálogo do Sistema ou Dicionário de Dados
– Armazena metadados sobre a estrutura do banco
de dados
• Banco de Dados Armazenado
– Arquivos de Dados
• Compilador DDL
– Processa as definições de esquema especificadas
e armazena as descrições dos esquemas
(metadados) no catálogo do SGBD
43
Módulos Componentes de um SGBD
• Compilador de Consulta
– Analisa e valida a sintaxe da consulta
– Compila a consulta para um formato interno
– A consulta interna está sujeita à otimização de
consulta
• Otimizador de Consulta
– Preocupa-se com o rearranjo e a possível
reordenação de operações, com a eliminação de
redundâncias e uso dos algoritmos e índices
corretos durante a execução
44
Módulos Componentes de um SGBD
• Pré-Compilador
– Extrai comandos DML do programa de aplicação escrito
em uma linguagem de programação hospedeira
– Envia os comandos DML ao Compilador DML
– O restante do programa é enviado ao compilador de
linguagem hospedeira
• Compilador DML
– Compila os comandos DML em código-objeto
• Transações Compiladas
– Uma transação compilada é formada pelo link do código-
objeto com o restante do programa de aplicação
45
Módulos Componentes de um SGBD
• Processador de Banco de Dados em Tempo de
Execução
– Executa os comandos privilegiados, os planos de
consulta executáveis e as transações compiladas
• Subsistema de Controle de Concorrência, Backup
e Recuperação
– Propriedades ACID
• Gerenciador de Dados Armazenados
– Controla o acesso às informações do SGBD que são
armazenadas em disco
46
Módulos Componentes de um SGBD
Fonte: Adaptado de Elmasri e Navathe (2011, p. 27) 47
Referências Bibliográficas
• ELMASRI, Ramez; NAVATHE, Shamkant B. Sistemas de banco de dados. 6a.
ed. São Paulo: Pearson Addison Wesley, 2011.
• DATE, C. J. Introdução a Sistemas de Bancos de Dados. 8a. ed. Rio de
Janeiro: Elsevier, 2004.
• SILBERSCHATZ, Abraham; KORTH, Henry F.; SUDARSHAN, S. Sistema de
Banco de Dados. 6a. ed. Rio de Janeiro: Elsevier, 2012.
• Slides da Profa. Vania Bogorny. Disponível em:
<[Link] Acesso em:
01 de julho de 2018.
48
Obrigado!
Prof. Leonardo Oliveira Moreira
leoomoreira@[Link]