View
107
Download
1
Embed Size (px)
Citation preview
Bancos de Dados: Access, Base e SQL8 horas com explanação, diálogo e prática
Julho 2016
por Luiz Henrique Rauber [email protected] – 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 :)
CC BY-SA [email protected] || fb.com/luizrauber 2/121
Banco de dados?
CC BY-SA [email protected] || fb.com/luizrauber 3/121
Banco de dados?
Local de armazenamento de dados para serem usados como informações.
CC BY-SA [email protected] || fb.com/luizrauber 4/121
Banco de dados?
Local de armazenamento de dados para serem usados como informações de forma organizada.
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || fb.com/luizrauber 6/121
Banco de dados?
Tabelas – Regras – Procedimentos – Gatilhos – Visão – Índice – Generalizadores
CC BY-SA [email protected] || fb.com/luizrauber 7/121
Por que usar um BD?
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || fb.com/luizrauber 9/121
BI - Bussines Inteligence?
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || fb.com/luizrauber 11/121
Big Data?
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || 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).
CC BY-SA [email protected] || 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).
CC BY-SA [email protected] || fb.com/luizrauber 16/121
SGBD?
Esta interface então liga camadas físicas e lógicas e possibilita a gestão dos dados.
CC BY-SA [email protected] || fb.com/luizrauber 17/121
SGBDR?
Sistema Gerenciador de Banco de Dados Relacional.
Cliente-Servidor.
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || 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).
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || fb.com/luizrauber 21/121
Microsoft Access
Faz parte do pacote PRO do Microsoft Office.
CC BY-SA [email protected] || fb.com/luizrauber 22/121
CC BY-SA [email protected] || fb.com/luizrauber 23/121
CC BY-SA [email protected] || fb.com/luizrauber 24/121
CC BY-SA [email protected] || fb.com/luizrauber 25/121
#dicasNovo – 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 entradaColocar validação de campos (ferramentas de tabelas)
Ver as “relações” no modo designUsar “Assistente de Pesquisa” nos menus, como
também Assistente e Design de Formulários e qualquer outro Assistente :)
CC BY-SA [email protected] || fb.com/luizrauber 26/121
CC BY-SA [email protected] || fb.com/luizrauber 27/121
CC BY-SA [email protected] || fb.com/luizrauber 28/121
Principais recursos de ambos
Usar modelos prontos e alterá-losCriar modelos e reutilizar
Tabelas com campos prontos ou personalizadosNumeração única e automática ID
Uso de funções
CC BY-SA [email protected] || fb.com/luizrauber 29/121
Criando um Banco de Dados.
Planejamento - Projeto
CC BY-SA [email protected] || fb.com/luizrauber 30/121
Criando um Banco de Dados.
Criar um modelo de bd...
CC BY-SA [email protected] || fb.com/luizrauber 31/121
Criando um Banco de Dados.
…implentar no Access ou Base...
CC BY-SA [email protected] || fb.com/luizrauber 32/121
Criando um Banco de Dados.
… discussão em sala das diferenças entre os modelos e bancos.
CC BY-SA [email protected] || fb.com/luizrauber 33/121
CAYRES, 2015
CC BY-SA [email protected] || 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!
CC BY-SA [email protected] || fb.com/luizrauber 35/121
ModelosHierárquicoem Rede
RelacionalOrientado à ObjetosObjeto Relacional
NoSQL
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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)
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || 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).
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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é
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || fb.com/luizrauber 44/121
Critérios transação ACID
CC BY-SA [email protected] || fb.com/luizrauber 45/121
Critérios transação ACID
Atomicidade
Commit ou rollback!Ex. Transferência OK
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || fb.com/luizrauber 49/121
Critétios de Segurança
IntegridadeEx. Dados do CPF estão válidos
CC BY-SA [email protected] || fb.com/luizrauber 50/121
Critétios de Segurança
DisponibilidadeEx. Todos os dados do CPF são acessíveis
CC BY-SA [email protected] || fb.com/luizrauber 51/121
Critétios de Segurança
ConfidencialidadeEx. Só quem tem autorização acessa os dados
CC BY-SA [email protected] || fb.com/luizrauber 52/121
Linguagens num BD pelo padrão SQL ANSI(Structured Query Language American National
Standards Institute)
DDL – Data Definition LanguageDML – Data Manipulation Language
DCL – Data Control LanguageDTL – Data Transactions Language
CC BY-SA [email protected] || fb.com/luizrauber 53/121
CRUD
Creat INSERTRead (Retrieve) SELECTUpdate UPDATEDelete (Destroy) DELETE
CC BY-SA [email protected] || fb.com/luizrauber 54/121
Pensar no BD
Regras do mundo real → Regras do BD(Algortimo → Software)
CC BY-SA [email protected] || 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.
CC BY-SA [email protected] || fb.com/luizrauber 56/121
Pensar no BD
Modelo Conceitual → Lógico → Físico
CC BY-SA [email protected] || fb.com/luizrauber 57/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 58/121
Modelo ConceitualDER (Diagrama Entidade-Relacionamento
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 59/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 60/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 61/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 62/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 63/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 64/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 65/121
Modelo LógicoEsquema do Banco de Dados
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 66/121
Modelo FísicoScripts SQL para criar BD
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 67/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 68/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 69/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 70/121
Linguagens num BD pelo padrão SQL ANSI(Structured Query Language American National
Standards Institute)
DDL – Data Definition LanguageDML – Data Manipulation Language
DCL – Data Control LanguageDTL – Data Transactions Language
CC BY-SA [email protected] || fb.com/luizrauber 71/121
Linguagens num BD pelo padrão SQL ANSI(Structured Query Language American National
Standards Institute)
DDL – Data Definition LanguageCREATE, ALTER, DROP
DML – Data Manipulation LanguageDCL – Data Control Language
DTL – Data Transactions Language
CC BY-SA [email protected] || fb.com/luizrauber 72/121
Linguagens num BD pelo padrão SQL ANSI(Structured Query Language American National
Standards Institute)
DDL – Data Definition LanguageDML – Data Manipulation Language
SELECT, UPDATE, DELETE
DCL – Data Control LanguageDTL – Data Transactions Language
CC BY-SA [email protected] || fb.com/luizrauber 73/121
Linguagens num BD pelo padrão SQL ANSI(Structured Query Language American National
Standards Institute)
DDL – Data Definition LanguageDML – Data Manipulation Language
DCL – Data Control LanguageGRANT, REVOKE
DTL – Data Transactions Language
CC BY-SA [email protected] || fb.com/luizrauber 74/121
Linguagens num BD pelo padrão SQL ANSI(Structured Query Language American National
Standards Institute)
DDL – Data Definition LanguageDML – Data Manipulation Language
DCL – Data Control LanguageDTL – Data Transactions Language
BEGIN TRANSACTION, COMMIT e ROLLBACK
CC BY-SA [email protected] || fb.com/luizrauber 75/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 76/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 77/121
CREATE DOMAIN <nomeDM> AS <tipoDado> [<restrições>];
ALTER DOMAIN <nomeDM> <ações>;
DROP DOMAIN <nomeDM> [CASCADE | RESTRICT]
CREATE SEQUENCE <nomeSQ> INCREMENT BY <ex. 1 START 1>
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 78/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 79/121
CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 80/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 81/121CAYRES, 2015
CC BY-SA [email protected] || fb.com/luizrauber 82/121
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || fb.com/luizrauber 94/121
Dev. Software != Dev. Banco de Dados
Projetem bem :)
CC BY-SA [email protected] || fb.com/luizrauber 95/121
Ou usem um NoSQL e só vão salvando :)
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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
CC BY-SA [email protected] || 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!
CC BY-SA [email protected] || fb.com/luizrauber 121/121
ReferênciasCAYRES, Paulo Henrique. Modelagem de Banco de Dados. Rio de Janeiro: RNP/ESR. 2015