Escolar Documentos
Profissional Documentos
Cultura Documentos
carolina.sacramento@uerj.br
https://linktr.ee/carolina_sacramento
Apresentação
2
Quem é você?
1. Quem é?
2. Só estuda ou estagia/trabalha?
3. Por que escolheu Ciência da Computação?
4. O que mais gostou do que estudou até agora na UERJ?
3
O que aprenderam em
Banco de Dados até agora?
Tecnologia de Banco de Dados I e II
4
Como será a disciplina?
▪ Quatro encontros presenciais
5
Avaliações
MÉDIA = ( AV1 + AV2 ) / 2
Se MÉDIA > 7:
APROVADO
AV2: Prova
AV1: Seminário Senão:
presencial com
sobre NoSQL
consulta
10 pontos Se MÉDIA >= 4 E MÉDIA < 7:
10 pontos
EXAME FINAL
Senão
É APROVADO no EXAME FINAL:
REPROVADO
(MÉDIA + EXAME FINAL)/2 > 5
6
https://linktr.ee/carolina_sacramento
Agenda da disciplina
Data Evento
10/11 Apresentação da disciplina + revisão sobre SGBD e linguagens do SQL
17/11 Segurança em banco de dados (acesso, restrições de integridade,
disponibilidade, confidencialidade) + indexação e hashing
24/11 Processamento de transações + recuperação e atomicidade
01/12 NÃO HAVERÁ AULA
08/12 Apresentação dos Seminários sobre NoSQL (AV1)
15/12 Prova individual (AV2)
22/12 Prova final individual (AV3)
7
AV1: Seminários - regras do jogo
▪ Grupos de alunos: 3 ou 4 pessoas
▪ Critérios:
▪ Atender três pontos essenciais
9
Seminários: pontos essenciais
Demonstração de uso/funcionamento
10
avaliação da
professora
5
avaliação dos
colegas
1
Seminários:
composição da 10
apresentação
nota dentro do
tempo
2
fez avaliação
dos colegas
2
11
AV2 e Prova final: regras do jogo
▪ Distribuição das questões:
▪ 10 Questões objetivas, 0.5 ponto cada
▪ 2 questões discursivas, 1.5 pontos cada
▪ 2 questões discursivas, 1 ponto cada
https://linktr.ee/carolina_sacramento
13
Bibliografia
14
Revisão sobre SGBD e
Linguagens do SQL
15
Perguntas iniciais
▪ O que vocês aprenderam até agora em Tecnologia de Banco
de Dados
▪ Teoria? Prática? Que SGBD?
16
A importância dos dados na atualidade
17
Sistemas Gerenciadores de Bancos de Dados
(Data Base Management System)
Crédito: DB-Engines
Bancos de dados relacionais versus NoSQL
Limites de uso: bancos de dados
relacionais em grandes
conjuntos de dados
▪ Capacidade de armazenamento: Peta bytes
Usuário Desenvolvedor
28
Diferenças entre os SGBDs
29
Um modelo conceitual simplório
30
Modelo lógico > físico
31
Ferramentas de modelagem, como o MySQL
Workbench geram esquema do banco de dados
para ajudar o desenvolvedor!
Mas é essencial conhecer os
comandos!
Script gerado
com o MySQL
Workbench
32
Como criar e manipular o banco de dados?
▪ No MySQL ...
33
Structured
Query
Language
Diagrama: DevMedia
34
DDL: Linguagem de Definição de Dados
Define os comandos utilizados
para criação (CREATE) de
tabelas, views, índices,
atualização dessas estruturas
(ALTER), assim como a
remoção (DROP)
Diagrama: DevMedia
35
SHOW DATABASES
SHOW {DATABASES | SCHEMAS}
Fonte: https://dev.mysql.com/doc/refman/8.0/en/show-databases.html
36
CREATE DATABASE | USE DATABASE
CREATE DATABASE nome_do_banco_de_dados;
USE nome_do_banco_de_dados
Database changed
Fonte: https://dev.mysql.com/doc/refman/8.0/en/show-tables.html
38
TIPO DE DADO DESCRIÇÃO
• PRIMARY KEY- Combinação de a NOT NULL e UNIQUE. Identifica exclusivamente cada linha em uma
tabela
• CHECK- Garante que os valores em uma coluna satisfaçam uma condição específica
• DEFAULT- Define um valor padrão para uma coluna se nenhum valor for especificado
• CREATE INDEX- Usado para criar e recuperar dados do banco de dados muito rapidamente
40
Fonte: W3Schools
ALTER TABLE
ALTER TABLE nome_da_tabela
Fonte: https://dev.mysql.com/doc/refman/8.0/en/alter-table.html
41
DROP TABLE
DROP TABLE nome_da_tabela;
Fonte: https://dev.mysql.com/doc/refman/8.0/en/drop-table.html
42
DROP DATABASE
DROP DATABASE nome_do_banco_de_dados;
Fonte: https://dev.mysql.com/doc/refman/8.0/en/drop-database.html
43
DML: Linguagem de Manipulação de Dados
Define os comandos usados para
manipulação de dados em
tabelas, o que inclui tarefas para
inserção (INSERT), atualização
(UPDATE) e exclusão (DELETE)
de registros (linhas) em uma
tabela.
Diagrama: DevMedia
44
INSERT INTO
INSERT INTO nome_da_tabela (coluna1, coluna2 ...)
WHERE condição
WHERE condição
Doc: https://dev.mysql.com/doc/refman/8.0/en/delete.html
47
DQL: Linguagem de Consulta de Dados
Define os comandos usados
para consulta em tabelas
(SELECT).
Em algumas bibliografias o
SELECT é associado à DML,
em outras tem esse grupo
próprio
Diagrama: DevMedia
48
SELECT
SELECT coluna1, coluna2, coluna3, ...
FROM nome_da_tabela
Doc: https://dev.mysql.com/doc/refman/8.0/en/select.html
49
SELECT ... WHERE
SELECT coluna1, coluna2, coluna3, ...
FROM nome_da_tabela
WHERE condição
Doc: https://dev.mysql.com/doc/refman/8.0/en/select.html
50
SELECT ... WHERE ... AND, OR, NOT
SELECT coluna1, coluna2, coluna3, ...
FROM nome_da_tabela
Doc: https://dev.mysql.com/doc/refman/8.0/en/select.html
51
SELECT ... WHERE ... ORDER BY
SELECT coluna1, coluna2, coluna3, ...
FROM nome_da_tabela
WHERE condição AND|OR|NOT condição
ORDER BY coluna1, coluna2, ... ASC|DESC
Objetivo: Selecionar/Consultar dados do banco de dados, atendendo a uma ou mais
condições e apresentando resultados ordenado por determinada coluna (de forma
crescente ou decrescente)
Doc: https://dev.mysql.com/doc/refman/8.0/en/select.html
52
E como consultar dados de tabelas
relacionadas?
53
JOIN
Objetivo: combinar linhas de duas ou mais tabelas, com base em uma
coluna relacionada entre elas.
Doc: https://dev.mysql.com/doc/refman/8.0/en/join.html
54
TIPO DESCRIÇÃO DIAGRAMA
55
Crédito: UGT World
Join - comandos
56
SELECT com JOIN
SELECT Tabela1.coluna1, Tabela2.coluna1, Tabela1.coluna3
FROM Tabela1
Tabela1.campoID = Tabela2.campoFK;
57
DQL: Linguagem de Controle de Dados
Define comandos relacionados
à segurança do banco de
dados, permitindo o controle
de acesso aos dados (concede
e retira) privilégios de acesso
com GRANT e REVOKE
Diagrama: DevMedia
58
GRANT
GRANT ALL PRIVILEGES ON banco_de_dados.coluna.*
TO ‘username’@’server’
Doc: https://dev.mysql.com/doc/refman/8.0/en/create-user.html
60
REVOKE
REVOKE lista_de_privilégios ON objeto FROM
usuario1,usuário2 ...
Doc: https://dev.mysql.com/doc/refman/8.0/en/revoke.html
61
DQL: Linguagem de Transação de Dados
Gerencia diferentes transações ocorridas.
Crédito: Usuário do 63
Reddit
Ativado por padrão na engine
COMMIT e ROLLBACK InnoDB();
COMMIT ROLLBACK
64
65
Como verificar se o commit está ativado por
padrão?
1: ATIVADO
0: DESATIVADO
66
Desabilitar e habilitar commit
Por que isso é
relevante?
Para
conseguirmos
aplicar
ROLLBACK!
67
Dúvidas?
carolina.sacramento@uerj.br
68