Este documento descreve um curso de 8 horas sobre bancos de dados Access, Base e SQL ministrado em julho de 2016 por Luiz Henrique Rauber Rodrigues. O curso abordará conceitos, princípios e práticas relacionados a esses sistemas de gerenciamento de banco de dados, incluindo modelagem, linguagens SQL e gestão de dados.
1. Bancos de Dados: Access, Base e SQL
8 horas com explanação, diálogo e prática
Julho 2016
por Luiz Henrique Rauber Rodrigues
luizrauber@gmail.com – fb.com/luizrauber
Exceto onde tiver outra referência, este é material é Creative Commons com Atribuição-CompartilhaIgual (CC
BY-SA). Pode copiar, alterar e redistribuir à vontade, mesmo para fins comerciais, mas desde que me cite e
licenciem as novas criações sob termos idênticos. Like Free Software :)
3. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 3/121
Banco de dados?
Local de armazenamento de dados para serem usados
como informações.
4. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 4/121
Banco de dados?
Local de armazenamento de dados para serem usados
como informações de forma organizada.
5. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 5/121
Banco de dados?
Local de armazenamento de dados para serem usados
como informações de forma organizada, com
possibilidade de inserção, remoção e alterações de
dados novos ou existentes.
8. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 8/121
Por que usar um BD?
Porque quer, precisa ou por que sim!
É a melhor forma de guardar e organizar dados.
10. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 10/121
BI - Bussines Inteligence?
Usar os dados (e date warehouses) para gerar
novas informações, estratégias, oportunidades de
negócio.
Mineração. Cruzamentos. Refinamentos. Reusos.
12. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 12/121
Big Data?
BI além das fronteiras da empresa com uso da
internet, e dela bancos de dados públicos à
indexação e informações de sites.
Cloud Computing. Crowd Source.
13. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 13/121
SGBD?
Interface digital para o Local de armazenamento de
dados para serem usados como informações de forma
organizada, com possibilidade de inserção, remoção e
alterações de dados novos ou existentes.
14. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 14/121
SGBD?
Esta interface do Sistema Gerenciador de Banco de
Dados facilita: definição (ex. tabelas), recuperação (ex.
backup), alteração (ex. acessos).
15. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 15/121
SGBD?
Esta interface do Sistema Gerenciador de Banco de
Dados faz: proteção (ex. falhas), segurança (ex.
Acessos), compartilhamento (ex. Distribuídos).
16. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 16/121
SGBD?
Esta interface então liga camadas físicas e lógicas e
possibilita a gestão dos dados.
17. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 17/121
SGBDR?
Sistema Gerenciador de Banco de Dados
Relacional.
Cliente-Servidor.
18. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 18/121
Modelo Relacional
Busca via SQL por relações Schema (Tabelas/
Campos com Linhas e Colunas) por Chave
Primária e/ou Secundária.
19. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 19/121
Modelo Relacional
Tabelas são entidades/ conjuntos, que dão
características aos dados que serão salvos.
Linhas e colunas são campos/ registros, tipos dos
dados que serão salvos em cada espaço.
Buscas/ Consultas/ Alterações e afins via query's,
em SQL (Structured Query Language).
20. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 20/121
Modelo Relacional
Indepêndencia do software da gestão dos dados
e do processamento dos dados. Suporte da teoria
dos conjuntos e da álgebra/expressões
relacionais.
Ex. Access, MySQL
21. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 21/121
Microsoft Access
Faz parte do pacote PRO do Microsoft Office.
25. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 25/121
#dicas
Novo – Banco – Salvar (se reutilizar, Salvar Como)
menu “acesso rápido”
Informações > Criptografia
Campo Requerido Sim/Não (e flag)
Criar “Design de Tabela” que tem mais controle
Utilizar Máscara de entrada
Colocar validação de campos (ferramentas de tabelas)
Ver as “relações” no modo design
Usar “Assistente de Pesquisa” nos menus, como
também Assistente e Design de Formulários e qualquer
outro Assistente :)
28. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 28/121
Principais recursos de ambos
Usar modelos prontos e alterá-los
Criar modelos e reutilizar
Tabelas com campos prontos ou personalizados
Numeração única e automática ID
Uso de funções
34. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 34/121
Desenvolvimento de Software não é
desenvolvimento do Banco de Dados.
Ajustar um software em produção é mais fácil que
ajustar um banco de dados em produção.
Aqui cascata até funciona!
35. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 35/121
Modelos
Hierárquico
em Rede
Relacional
Orientado à Objetos
Objeto Relacional
NoSQL
36. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 36/121
Modelo Hierárquico
Estrutura como a Linguagem Estruturada. Acesso
somente de “pai” pra “filho” em “árvores”.
Ex. Management System da IBM
37. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 37/121
Modelo em Rede
Como o hierárquico, mas horizontalizado. Acesso
de proprietário à membro. Banco e software
dependentes do mesmo design.
Ex. CA-IDMS da CA (Computer Associates)
38. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 38/121
Modelo Relacional - SGBDR
Busca via SQL por relações Schema (Tabelas/
Campos com Linhas e Colunas) por Chave
Primária e/ou Secundária.
39. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 39/121
Modelo Relacional
Tabelas são entidades/ conjuntos, que dão
características aos dados que serão salvos.
Linhas e colunas são campos/ registros, tipos dos
dados que serão salvos em cada espaço.
Buscas/ Consultas/ Alterações e afins via query's,
em SQL (Structured Query Language).
40. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 40/121
Modelo Relacional
Indepêndencia do software da gestão dos dados
e do processamento dos dados. Suporte da teoria
dos conjuntos e da álgebra/expressões
relacionais.
Ex. Access, MySQL
41. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 41/121
Modelo Orientado a Objetos - SGBDOO
Usam a ideia das Linguagem Orientadas a
Objetos, aumentando a possibilidade de relações
por criar tipos de dados (classes). Tabelas são
Objetos, Natives Query, Manipulação de dados
por métodos e construtores. Sem chaves 1º ou 2º
Ex. Oracle 10g, Caché
42. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 42/121
Modelo Objeto-Relacional - SGBDOR
BD Relacional com uso de objetos para incluir
vídeos et al. A abstração dos dados sobre o
modelo relacional melhora a manipulação de
dados. Tabelas com classes.
Ex. PostGreSQL, DB2
43. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 43/121
Modelo NoSQL (Not only SQL)
Foco big-data. Não relacional. Horizontalizado.
Inserção incremental e persistência em cloud.
Não atende ACID. “Banco de dados orientado a
documentos”
Ex. Apache Cassandra, MongoDB
45. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 45/121
Critérios transação ACID
Atomicidade
Commit ou rollback!
Ex. Transferência OK
46. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 46/121
Critérios transação ACID
Consistência
Regras/ Restrições/ Relacionamentos devem ser
respeitados.
Ex. Não haver conta fictícia.
47. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 47/121
Critérios transação ACID
Isolamento
Não deve ocorrer interferências, acessos devem
ser limpos, commit ou rollback.
Ex. Alteração única por CPF.
48. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 48/121
Critérios transação ACID
Durabilidade
Falhas de hardware/ comunicação não devem
interferir nos dados.
Ex. Sem acesso a um CPF.
49. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 49/121
Critétios de Segurança
Integridade
Ex. Dados do CPF estão válidos
50. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 50/121
Critétios de Segurança
Disponibilidade
Ex. Todos os dados do CPF são acessíveis
51. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 51/121
Critétios de Segurança
Confidencialidade
Ex. Só quem tem autorização acessa os dados
52. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 52/121
Linguagens num BD pelo padrão SQL ANSI
(Structured Query Language American National
Standards Institute)
DDL – Data Definition Language
DML – Data Manipulation Language
DCL – Data Control Language
DTL – Data Transactions Language
53. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 53/121
CRUD
Creat INSERT
Read (Retrieve) SELECT
Update UPDATE
Delete (Destroy) DELETE
54. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 54/121
Pensar no BD
Regras do mundo real → Regras do BD
(Algortimo → Software)
55. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 55/121
Pensar no BD
Criar uma semântica com um sentido lógico
Ex. Vendedor atende pessoa física e jurídica.
Ex. Clientes são identificados por CPF ou CNPJ.
Ex. Clientes podem compram produtos no
atacado ou varejo.
70. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 70/121
Linguagens num BD pelo padrão SQL ANSI
(Structured Query Language American National
Standards Institute)
DDL – Data Definition Language
DML – Data Manipulation Language
DCL – Data Control Language
DTL – Data Transactions Language
71. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 71/121
Linguagens num BD pelo padrão SQL ANSI
(Structured Query Language American National
Standards Institute)
DDL – Data Definition Language
CREATE, ALTER, DROP
DML – Data Manipulation Language
DCL – Data Control Language
DTL – Data Transactions Language
72. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 72/121
Linguagens num BD pelo padrão SQL ANSI
(Structured Query Language American National
Standards Institute)
DDL – Data Definition Language
DML – Data Manipulation Language
SELECT, UPDATE, DELETE
DCL – Data Control Language
DTL – Data Transactions Language
73. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 73/121
Linguagens num BD pelo padrão SQL ANSI
(Structured Query Language American National
Standards Institute)
DDL – Data Definition Language
DML – Data Manipulation Language
DCL – Data Control Language
GRANT, REVOKE
DTL – Data Transactions Language
74. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 74/121
Linguagens num BD pelo padrão SQL ANSI
(Structured Query Language American National
Standards Institute)
DDL – Data Definition Language
DML – Data Manipulation Language
DCL – Data Control Language
DTL – Data Transactions Language
BEGIN TRANSACTION, COMMIT e ROLLBACK
83. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 83/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-
high-201607140900.ogv
84. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 84/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
85. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 85/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
86. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 86/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
87. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 87/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
88. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 88/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
89. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 89/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
90. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 90/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
91. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 91/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
92. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 92/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
93. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 93/121
● Bad Smells (mal cheiros) em Bancos de Dados
● Fabrízio de Royes Mello
● http://hemingway.softwarelivre.org/fisl17/41b/sala41b-high-
201607140900.ogv
96. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 96/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
97. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 97/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
98. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 98/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
99. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 99/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
100. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 100/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
101. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 101/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
102. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 102/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
103. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 103/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
104. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 104/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
105. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 105/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
106. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 106/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
107. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 107/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
108. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 108/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
109. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 109/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
110. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 110/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
111. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 111/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
112. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 112/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
113. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 113/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
114. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 114/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
115. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 115/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
116. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 116/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
117. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 117/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
118. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 118/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
119. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 119/121
● MongoDB - Tudo o que você precisa saber
● Christiano Anderson de Souza
● http://hemingway.softwarelivre.org/fisl17/41a/sala41a-high-
201607161000.ogv
120. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 120/121
Não tem A melhor linguagem de programação,
Não tem O melhor banco de dados,
Há o que é mais adequado ao problema!
121. CC BY-SA luizrauber@gmail.com || fb.com/luizrauber 121/121
Referências
CAYRES, Paulo Henrique. Modelagem de Banco
de Dados. Rio de Janeiro: RNP/ESR. 2015