O documento apresenta conceitos básicos sobre bancos de dados, incluindo exemplos de bancos de dados relacionais e não relacionais, aplicações de bancos de dados e áreas relacionadas como mineração de dados e recuperação de informação. Além disso, discute características da abordagem de banco de dados como independência entre programas e dados, suporte a múltiplas visões dos dados e processamento de transações multiusuário.
1. Banco de Dados
Introdução
DCC-UFLA
Prof. Denilson Alves Pereira
denilsonpereira@ufla.br
https://sites.google.com/ufla.br/denilsonpereira/
http://lattes.cnpq.br/4120230814124499
versão dos slides: mai/2020
2. DCC-UFLA Prof. Denilson Alves Pereira 2
Conteúdo
Conceitos básicos
Exemplo de um banco de dados
Aplicações de bancos de dados
Áreas relacionadas
Características da abordagem de banco de dados
Usuários e trabalhadores envolvidos
Vantagens do uso de um SGBD
4. DCC-UFLA Prof. Denilson Alves Pereira 4
Conceitos Básicos
Dados
Fatos conhecidos que podem ser armazenados e que têm
algum significado implícito
Exemplo: Uma coleção de nomes, endereços e telefones
das pessoas que você conhece
Banco de Dados
Coleção de dados relacionados com as seguintes
propriedades implícitas:
Representa algum aspecto do mundo real
É uma coleção coerente de dados com algum significado inerente
É projetado, construído e ‘povoado’ com dados para um propósito
específico
5. DCC-UFLA Prof. Denilson Alves Pereira 5
Conceitos Básicos
Sistema Gerenciador de Bancos de Dados (SGBD)
Coleção de programas que permite ao usuário criar e
manter um banco de dados
Software de propósito geral que facilita os processos de
definição, construção, manipulação e compartilhamento de
bancos de dados entre várias aplicações e usuários
Sistema de Banco de Dados
Conjunto de software para manipular um banco de dados
juntamente com o banco de dados
9. DCC-UFLA Prof. Denilson Alves Pereira 9
Exemplo de um Banco de Dados Relacional
Estudante Nome CódigoEstudante TipoAluno DepartamentoPrincipal
João 17 1 DCC
José 8 2 DCC
Disciplina Nome CódigoDisciplina Créditos Departamento
Introducão à Ciência da Computação DCC1310 4 DCC
Estrutura de Dados DCC3320 4 DCC
Matemática Discreta MAT2410 3 MAT
Banco de Dados DCC3380 3 DCC
Turma CódigoTurma CódigoDisciplina Semestre Ano Professor
85 MAT2410 II 2018 Carlos
92 DCC1310 II 2018 Anderson
102 DCC3320 I 2019 Ana Cristina
112 MAT2410 II 2019 Samira
119 DCC1310 II 2019 Anderson
135 DCC3380 II 2019 Mateus
Histórico CódigoEstudante CódigoTurma Nota
17 112 B
17 119 C
8 85 A
8 92 A
8 102 B
8 135 A
PréRequisito CódigoDisciplina CódigoPréRequisito
DCC3380 DCC3320
DCC3380 MAT2410
DCC3320 DCC1310
13. DCC-UFLA Prof. Denilson Alves Pereira 13
Aplicações de Bancos de Dados
Aplicações comerciais tradicionais
Armazenam dados textuais ou numéricos
Aplicações multimídia
Armazenam imagens, audio e vídeo
Incrementam as aplicações tradicionais
Sistemas de Informações Geográficas (GIS)
Armazenam mapas, dados sobre o clima e imagens de
satélite
14. DCC-UFLA Prof. Denilson Alves Pereira 14
Aplicações de Bancos de Dados
Sistemas de data warehousing e de processamento
analítico online (OLAP)
Extraem e analisam informações comerciais em grandes
bancos de dados
Auxiliam em tomadas de decisão
Tecnologias de tempo real
Controlam processos industriais e de manufatura
Bancos de dados NoSQL
Manipulam grandes volumes de dados (Big Data)
Operam normalmente em clusters de computadores
18. DCC-UFLA Prof. Denilson Alves Pereira 18
Áreas Relacionadas a Banco de Dados
Mineração de Dados (Data Mining)
Processo de encontrar anomalias, padrões e correlações
em grandes conjuntos de dados para auxiliar na tomada de
decisões
Recuperação de Informação (Information Retrieval)
Trata da representação, armazenamento, organização e
acesso a itens de informação
Documentos, páginas Web, catálogos online, registros estruturados
e objetos multimídia
23. Recuperação e Ranking
Indexação
Coleta
Coleta de Páginas da Web
Coleção
de
Documentos
Pré-processamento
Consulta
Parse
Sistema
de
Consulta
Recuperação
e
Ranking
Web
Crawler
Índice
Resultado:
1. doc. d20
2. doc. d12
3. doc. d23
. . .
24. Recuperação e Ranking
Indexação
Coleta
Indexação de Dados
Coleção
de
Documentos
Pré-processamento
Consulta
Parse
Sistema
de
Consulta
Recuperação
e
Ranking
Web
Crawler
Índice
Resultado:
1. doc. d20
2. doc. d12
3. doc. d23
. . .
25. Recuperação e Ranking
Indexação
Coleta
Processamento de Consultas
Coleção
de
Documentos
Pré-processamento
Consulta
Parse
Sistema
de
Consulta
Recuperação
e
Ranking
Web
Crawler
Índice
Resultado:
1. doc. d20
2. doc. d12
3. doc. d23
. . .
28. DCC-UFLA Prof. Denilson Alves Pereira 28
Desambiguação de Dados
1 iPhone 7 32GB
2 Apple iPhone 7 32GB
3 Smartphone Apple iPhone 7 32GB
4 Smartphone Apple iPhone 6 32GB
5 Capa iPhone 7
29. DCC-UFLA Prof. Denilson Alves Pereira 29
Análise de Sentimentos
Revisão de Produtos/Serviços
30. DCC-UFLA Prof. Denilson Alves Pereira 30
Análise de Sentimentos
(1) Eu comprei um iPhone dois dias atrás. (2) Ele era muito
chique. (3) A tela de toque (touch screen) era realmente
muito legal. (4) A qualidade de voz era muita clara. (5)
Entretanto, minha mãe foi muito má comigo porque eu não
falei pra ela antes de comprá-lo. (6) Ela também achou que
o telefone era muito caro, e queria devolvê-lo para a loja…
Entidades: iPhone, Mãe
Aspectos: tela de toque, qualidade de voz, preço
Sentimentos: positivos, exceto para o aspecto preço e a
entidade Mãe
33. DCC-UFLA Prof. Denilson Alves Pereira 33
Abordagens: Arquivos X Banco de Dados
Abordagem de processamento de arquivo tradicional
Técnica mais antiga
Cada usuário define e implementa os arquivos necessários
para uma aplicação específica
A definição de dados faz parte do programa da aplicação
Abordagem de banco de dados
Uma única base de dados é definida e mantida para ser
usada por vários usuários
Usa-se um SGBD
34. DCC-UFLA Prof. Denilson Alves Pereira 34
Abordagem de Banco de Dados
As informações descrevendo a estrutura do banco de
dados são armazenadas no Catálogo, e são chamadas de
metadados
Exceto nos sistemas NoSQL
O Catálogo é usado pelo SGBD e pode vir a ser
consultado pelo usuário do banco de dados
35. DCC-UFLA Prof. Denilson Alves Pereira 35
Exemplo de Metadados
Estudante
Nome CódigoEstudante TipoAluno DepartamentoPrincipal
Disciplina
Nome CódigoDisciplina Créditos Departamento
Nome das tabelas
Nome dos atributos
Tipo de dados dos atributos:
CodigoEstudante: número inteiro
TipoAluno: número inteiro
DepartamentoPrincipal: cadeia de 3 caracteres
. . .
36. DCC-UFLA Prof. Denilson Alves Pereira 36
Independência entre Programas e Dados
Abordagem de processamento de arquivos:
A estrutura do arquivo de dados está embutida nos
programas que realizam o acesso aos dados
Abordagem de banco de dados:
Os programas de acesso aos dados são independentes da
estrutura de armazenamento dos dados
Com o uso da orientação por objetos, as operações sobre
os dados são definidas como parte do banco de dados,
permitindo a independência entre programas e operações
Abstração de dados é a característica que permite a
independência entre programas e dados e a
independência entre programas e operações
37. DCC-UFLA Prof. Denilson Alves Pereira 37
Suporte a Múltiplas Visões dos Dados
Cada usuário pode “exergar” uma parte do banco de
dados, de acordo com a sua perspectiva
Uma visão (view) pode ser um subconjunto do banco de
dados
Uma visão pode ser composta por dados virtuais que são
derivados dos arquivos do banco de dados, mas não
estão explicitamente armazenados
38. DCC-UFLA Prof. Denilson Alves Pereira 38
Processamento de Transação Multiusuário
Um SGBD multiusuário deve permitir que vários usuários
acessem o banco de dados ao mesmo tempo
O acesso simultâneo é essencial se os dados de várias
aplicações são integrados e mantidos em um único banco
de dados
Uma transação é um programa em execução, ou
processo, o qual faz leituras e atualizações no banco de
dados
Um SGBD deve possuir software de controle de
concorrência
Várias transações podem estar sendo executadas ao
mesmo tempo
Uma transação não pode “interfererir” no resultado de outra,
gerando inconsistências nos dados
40. DCC-UFLA Prof. Denilson Alves Pereira 40
Usuários de um SGBD
Administradores do Banco de Dados (DBA) - são os
responsáveis pela administração do banco de dados, do
SGBD e de seu software. Autorizam o acesso, coordenam
e monitoram o uso e adquirem recursos de software e
hardware quando necessário. Cuidam também da
segurança e desempenho.
Projetistas do Banco de Dados - são os responsáveis pela
identificação dos dados a serem armazenados no banco
de dados e pela escolha da estrutura apropriada para
representar e armazenar esses dados
41. DCC-UFLA Prof. Denilson Alves Pereira 41
Usuários de um SGBD
Usuários Finais - são as pessoas cujos trabalhos
requerem acessar o banco de dados para fazer consultas,
modificações e gerar relatórios. Tipos de usuário final:
Casuais - raramente acessam o banco de dados, mas
podem precisar de diferentes informações em cada acesso
Iniciantes ou parametrizados - seu trabalho envolve a
realização de consultas e modificação do banco de dados
constantemente. Eles usam consultas e modificações
programadas e testadas
Especializados - usuários completamente familiarizados
com as facilidades do SGBD e que realizam requisitos
complexos
Isolados - mantém um banco de dados pessoal usando
pacotes prontos e fáceis de usar
42. DCC-UFLA Prof. Denilson Alves Pereira 42
Usuários de um SGBD
Analistas de Sistemas - determinam os requisitos dos
usuários finais e especificam o desenvolvimento de
transações de acordo com os requisitos
Programadores de Aplicações - implementam as
especificações como programas
43. DCC-UFLA Prof. Denilson Alves Pereira 43
Trabalhadores dos Bastidores
Projetistas e Implementadores de SGBDs - são aqueles
que projetam e implementam módulos e interfaces do
SGBD
Desenvolvedores de Ferramentas - são aqueles que
desenvolvem pacotes de software que facilitam o projeto e
o uso do sistema de banco de dados e que auxiliam no
aumento do desempenho
Operadores e responsáveis pela manutenção - são
aqueles responsáveis pela execução e manutenção de
software e hardware para o sistema de banco de dados
45. DCC-UFLA Prof. Denilson Alves Pereira 45
Recursos oferecidos por um SGBD
Controle de Redundância - problemas com dados
redundantes: uma única alteração lógica deverá ser feita
diversas vezes, espaço em disco desperdiçado e
inconsistência de dados
Restrição de acesso - em um banco de dados utilizado por
vários usuários, nem todos podem acessar todas as
informações e nem todos podem realizar todas as
operações sobre o banco de dados
Armazenamento persistente para objetos e estruturas de
dados de programas - um objeto é persistente se ele
continua existindo após o término da execução de um
programa e pode ser acessado diretamente por um outro
programa
46. DCC-UFLA Prof. Denilson Alves Pereira 46
Recursos oferecidos por um SGBD
Estruturas de armazenamento e processamento eficiente
de consulta – uso de índices como estruturas de dados
eficientes para consultas e uso de um módulo de buffering
(ou caching) para manter partes do banco de dados em
memória principal
Backup e Recuperação - um SGBD deve fornecer
facilidades para recuperar os dados se ocorrer uma falha
de hardware ou de software
Múltiplas interfaces de usuários - os usuários do banco de
dados possuem um variado nível de conhecimento
técnico, e assim necessitam de interfaces diferentes
47. DCC-UFLA Prof. Denilson Alves Pereira 47
Recursos oferecidos por um SGBD
Representação de relacionamentos complexos entre os
dados - um SGBD deve representar os relacionamentos
entre os dados e também recuperar e modificar dados
relacionados de forma fácil e eficiente
Garantia das restrições de integridade - as restrições
podem ser simples como as relacionadas ao tipo de dado,
ou complexas como as que verificam se um registro em um
arquivo está relacionado a registros em outros arquivos
Dedução e açoes usando regras e gatilhos - os sistemas de
banco de dados que possuem a capacidade de regras de
dedução são chamados Sistemas de Bancos de Dados
Dedutivos. Gatilhos (ou triggers) permitem a criação de
regras ativadas por atualizações em tabelas. Stored
Procedures podem ser usados para impor regras
49. DCC-UFLA Prof. Denilson Alves Pereira 49
Quando não usar um SGBD
Para se usar um SGBD existe um aumento de custo em
relação ao tradicional sistema de arquivos que se deve a:
Investimento inicial em software, hardware e treinamento
Generalidade que um SGBD fornece para definir e processar os
dados
Fornecimento de segurança, controle de concorrência,
recuperação e funções de integridade
Isso torna desejável o uso do sistema de arquivos nas
seguintes situações:
O banco de dados e as aplicações são simples, bem definidas e a
expectativa de mudança é pequena
Requisitos de tempo-real de alguns programas
Sistemas embarcados com capacidade de armazenamento
limitada
Acesso de vários usuários aos dados não é requerido
50. DCC-UFLA Prof. Denilson Alves Pereira 50
Quando não usar um SGBD
Certos setores e aplicações decidiram não usar um
SGBD:
Ferramentas de CAD usadas por engenheiros
Sistemas de comunicação e comutação de empresas de
telefonia
Implementações de Sistemas de Informações Geográficas
51. DCC-UFLA Prof. Denilson Alves Pereira 51
Bibliografia Básica
Elmasri, Ramez; Navathe, Shamkant B. Sistemas de
Bancos de Dados. Editora Pearson, 7a edição, 2018
Sadalage, Pramod J.; Fowler, Martin. NoSQL Essencial:
Um Guia Conciso para o Mundo Emergente da
Persistência Poliglota. Novatec Editora, São Paulo, 2013.