Sistemas de Informação
SQL (cont.) e Bancos de dados não
relacionais
Prof. Marcelo M. Gauy
[Link]@[Link]
Curso: Engenharia de Produção
Unesp Itapeva
25 de Abril de 2025
Gestão da Informação e de Banco de Dados
• Como um banco de dados relacional organiza os dados? Aula passada
• Quais são os princı́pios de um sistema de gestão de banco de dados?
Aula passada
• Quais são as principais ferramentas e tecnologias para extrair
informações de bancos de dados? Aula passada
• Qual o papel da polı́tica de informação e da gestão de dados na
organização dos recursos de dados empresariais?
• Por que a garantia da qualidade dos dados é tão importante para um
negócio?
Marcelo Matheus Gauy Unesp Itapeva 2/2
Bancos de dados não relacionais
Marcelo Matheus Gauy Unesp Itapeva 1 / 10
Banco de dados não relacional - NOSQL (Not-Only SQL)
• Bancos de dados não relacionais:
• Bancos de dados relacionais:
• Possuem uma
• Possuem uma
estrutura/modelo de dados
estrutura/modelo de dados
bem definida e rı́gida
flexı́vel
• Satisfazem as propriedades
• Priorizam a disponibilidade
ACID (Atomicidade,
dos dados, a tolerância à
Consistência, Isolamento,
partição e possuem apenas
Durabilidade)
consistência eventual
Marcelo Matheus Gauy Unesp Itapeva 2 / 10
NOSQL- Exemplos
• MongoDB: NOSQL baseado em documentos
• DynamoDB/Voldemort: NOSQL baseando em pares chave-valor
• Hbase: NOSQL baseado em colunas
• Neo4J: NOSQL baseado em grafos
Marcelo Matheus Gauy Unesp Itapeva 3 / 10
Serviços de bancos de dados em nuvem
• Diversas empresas como a Amazon, a Oracle e a Microsoft oferecem
serviços em nuvem de banco de dados
• Essas nuvens públicas são atraentes para que pequenas e médias
empresas façam a gestão de seus dados
• Para empresas de tamanho um pouco maior, pode fazer sentido investir
em uma nuvem privada (exemplo: Sabre Holdings).
Marcelo Matheus Gauy Unesp Itapeva 4 / 10
O uso de bancos de dados para melhorar a tomada de decisão
• BDs são usados para monitorar transações básicas, como pagamento a
fornecedores e funcionários, processamento de pedidos, entre outros
• Além disso, podem ser usados para auxiliar a tomada de decisão
• Recentemente, a proliferação de dados levou a criação de um termo
especı́fico para eles: Big Data
Marcelo Matheus Gauy Unesp Itapeva 5 / 10
Big Data
• Não existe uma definição precisa do que vem a ser Big Data, mas
essencialmente ele representa o que chamamos de 5Vs (volume,
velocidade, valor, variedade, veracidade)
• Volume se refere a quantidade de dados armazenados
• Velocidade à taxa em que novos dados são obtidos
• Variedade se refere as diferentes formas que os dados tomam
• Valor se refere ao valor (comercial, por exemplo) que os dados provém
• Veracidade se refere a qualidade e acurácia dos dados
Marcelo Matheus Gauy Unesp Itapeva 6 / 10
Big Data
Marcelo Matheus Gauy Unesp Itapeva 7 / 10
Data warehouses e data marts
• Um banco de dados clássico (relacional) muitas vezes não é suficiente
quando tratamos de big data e de problemas de inteligência
empresarial
• Necessitamos, muitas vezes, não apenas do último valor de um atributo
(BDR) mas de sua evolução histórica
• Para isso foram construı́dos armazéns de dados (data warehouse) ou
suas versões menores chamadas de data marts.
• A maior dificuldade na construção de um armazém é resolver as
diferenças de definição entre os diversos tipos de bancos de dados que
o alimentam
• Dados em um armazém estão sempre disponı́veis mas não podem ser
alterados
• As ferramentas de consulta e analı́ticas normalmente são padronizadas
Marcelo Matheus Gauy Unesp Itapeva 8 / 10
Processamento analı́tico on-line (Olap)
• Ferramenta de consulta/análise padronizada muito usada em armazéns
• Consiste em uma análise multidimensional dos dados, de forma que os
usuários possam agregar múltiplas dimensões
Marcelo Matheus Gauy Unesp Itapeva 9 / 10
Mineração de dados e Inteligência Artificial
• Quando tratamos de big data (grandes volumes de dados), outras
técnicas além do OLAP são comuns e, às vezes, necessárias
• As principais são técnicas de mineração de dados ou mesmo de
inteligência artificial
• Ao contrário do OLAP que é mais orientado para visualização de
informações, a mineração é orientado a descoberta de informações
• Os tipos de informação obtidos com a mineração são: associações,
sequências, classificações, aglomerações e prognósticos
Marcelo Matheus Gauy Unesp Itapeva 10 / 10
Panorama geral de SQL
Marcelo Matheus Gauy Unesp Itapeva 1 / 13
SQL
• Como realizar consultas em um banco de dados relacional (BDR)? Aula
passada
• Como inserir, remover e alterar dados em um BDR?
• Como inserir, remover e modificar tabelas em um BDR?
• Como construir/modelar um BDR? Próxima aula
Marcelo Matheus Gauy Unesp Itapeva 2 / 13
SQL - estrutura básica de consulta
• SQL tem uma estrutura básica de consulta
Marcelo Matheus Gauy Unesp Itapeva 3 / 13
SQL - operação de projeção
• A projeção tem a forma:
SELECT <atributos>
FROM <tabela>
• a lista de atributos vai corresponder a uma operação de projeção
naquela lista
• Exemplo: Dê os nomes e cidades dos consumidores
• Consulta SQL:
SELECT CustomerName, City
FROM Customers;
Marcelo Matheus Gauy Unesp Itapeva 4 / 13
SQL - operação de seleção
• A seleção tem a forma:
SELECT *
FROM <tabela>
WHERE condição
• A seleção será feita nas tuplas da tabela que satisfazem a condição
dada em WHERE
• Exemplo: Liste os consumidores que residem na Alemanha;
• Consulta SQL:
SELECT *
FROM Customers;
WHERE Country = ‘Germany’;
Marcelo Matheus Gauy Unesp Itapeva 5 / 13
SQL - produto cartesiano
• A forma:
SELECT *
FROM <tabelas>
• executa um produto cartesiano entre as tabelas listadas no FROM
• Exemplo: Faça um produto cartesiano das tabelas Shippers e Orders
• Consulta SQL:
SELECT *
FROM Shippers, Orders;
• Em muitos casos, a execução de um simples produto cartesiano gera
muitas ‘tuplas falsas’
• Uma tupla falsa é uma tupla que não corresponde a uma entidade (ou
evento) no mundo real
Marcelo Matheus Gauy Unesp Itapeva 6 / 13
SQL - junção
• A forma:
SELECT *
FROM Tabela1, Tabela2
WHERE [Link] = [Link]
• executa uma junção entre as tabelas Tabela1 e Tabela2 com a
condição de igualdade das chaves primária e estrangeira
• Exemplo: Dê os nomes dos distribuidores (shippers) e os IDs dos
consumidores para cada ordem
• Consulta SQL:
SELECT ShipperName, CustomerID
FROM Shippers, Orders
WHERE [Link] = [Link];
• Como combinamos as tabelas em chaves primárias e estrangeiras não
ocorreu a geração de tuplas falsas
Marcelo Matheus Gauy Unesp Itapeva 7 / 13
SQL - JOIN
• Uma sintaxe alternativa é:
SELECT *
FROM Tabela1
INNER JOIN Tabela2 ON [Link] = [Link]
• Exemplo: Dê os nomes dos distribuidores (shippers) e os IDs dos
consumidores para cada ordem
• Consulta SQL:
SELECT [Link], [Link]
FROM Shippers AS S
INNER JOIN Orders AS O ON [Link] = [Link];
Marcelo Matheus Gauy Unesp Itapeva 8 / 13
Comandos principais
• Data definition language (DDL): especificação do esquema do banco
de dados
• Data manipulation language (DML): inserção, remoção, alteração e
consultas a uma instância do BDR
Marcelo Matheus Gauy Unesp Itapeva 9 / 13
DDL - Comandos de criação
• CREATE DATABASE - cria um novo banco de dados
• CREATE SCHEMA - cria esquemas de aplicações - agrupa tabelas,
visões, domı́nios etc
• CREATE DOMAIN - define domı́nios de atributos
• CREATE TABLE - cria tabelas, definindo colunas/atributos e restrições de
domı́nio dos mesmos:
• BOOL - valor binário
• INTEGER - número inteiro até 231
• FLOAT - número real
• CHAR (n caracteres) - string de tamanho fixo
• VARCHAR (máximo n caracteres) - string de tamanho variável
• DATETIME - data no formato YYYY-MM-DD hh-mm-ss
Marcelo Matheus Gauy Unesp Itapeva 10 / 13
DDL - Comandos de alteração e remoção
• DROP DATABASE, DROP SCHEMA, DROP DOMAIN, DROP TABLE - remove
o respectivo objeto do banco de dados
• ALTER TABLE: pode incluir, alterar ou remover definições de colunas e
restrições de tabelas
Marcelo Matheus Gauy Unesp Itapeva 11 / 13
DDL - Comandos alternativos
• visões são tabelas temporárias que um usuário pode criar: CREATE VIEW,
DROP VIEW etc
• ı́ndices são usados para acelerar as consultas a bancos de dados. Não
são visı́veis aos usuários - CREATE INDEX, DROP INDEX
Marcelo Matheus Gauy Unesp Itapeva 12 / 13
DML - Comandos básicos
• INSERT INTO: insere uma ou mais tuplas em uma tabela
• UPDATE: modifica valores em uma tabela
• DELETE FROM: remove uma ou mais tuplas de uma tabela
• SELECT: comando básico de consulta
• UNION: união de duas tabelas
• EXCEPT: diferença de duas tabelas
• INTERSECT: intersecção de duas tabelas
Marcelo Matheus Gauy Unesp Itapeva 13 / 13
Como inserir, remover e alterar tabelas em
SQL
Marcelo Matheus Gauy Unesp Itapeva 1/8
Inserindo tabelas em SQL
• Abra o arquivo: [Link] e observe as cláusulas
de criação de tabelas
• A cláusula CREATE DATABASE restaurantedelivery cria o banco de dados
• A cláusula USE DATABASE restaurantedelivery torna esse banco de
dados o principal
• Criação de tabelas tem a estrutura:
CREATE TABLE table1 (
columnname datatype,
....,
PRIMARY KEY (columnname1, columnname2...)
FOREIGN KEY (columnname) REFERENCES tablename(columnname));
Marcelo Matheus Gauy Unesp Itapeva 2/8
Inserindo tabelas em SQL
• Tabela Cliente:
• CREATE TABLE Cliente (
cpf INT NOT NULL,
nome TEXT NOT NULL,
telefone1 VARCHAR(11) NULL,
telefone2 VARCHAR(11) NULL,
logradouro VARCHAR(45) NOT NULL,
numero VARCHAR(10) NOT NULL,
bairro VARCHAR(45) NULL,
cidade VARCHAR(45) NULL,
estado VARCHAR(2) NULL,
cep INT NULL,
PRIMARY KEY (cpf));
• Definimos as colunas/atributos e os domı́nios delas
• Também definimos cpf como chave primária
Marcelo Matheus Gauy Unesp Itapeva 3/8
Inserindo tabelas em SQL
• Tabela Entrega:
• CREATE TABLE Entrega (
id VARCHAR(45) NOT NULL,
FuncionarioId INT NOT NULL,
dataHoraSaida DATETIME NULL,
PRIMARY KEY (id),
FOREIGN KEY (FuncionarioId) REFERENCES Funcionario(id) ON DELETE NO
ACTION);
• Também definimos as chaves estrangeiras (FOREIGN KEY) quando
necessário
Marcelo Matheus Gauy Unesp Itapeva 4/8
Alterando tabelas em SQL
• Estrutura de adição:
• ALTER TABLE tablename ADD columnname datatype;
• Estrutura de remoção:
• ALTER TABLE tablename DROP COLUMN columnname;
• Renomeação:
• ALTER TABLE tablename RENAME COLUMN oldname TO newname;
• Modificar tipo:
• ALTER TABLE tablename MODIFY COLUMN columnname datatype;
Marcelo Matheus Gauy Unesp Itapeva 5/8
Exemplo
• ALTER TABLE Cliente
ADD Email char(10);
• ALTER TABLE Cliente
MODIFY COLUMN Email varchar(255);
• ALTER TABLE Cliente
RENAME COLUMN Email TO EmailPrincipal;
• ALTER TABLE Cliente
DROP COLUMN EmailPrincipal;
Marcelo Matheus Gauy Unesp Itapeva 6/8
Removendo tabelas em SQL
• Estrutura de remoção de tabelas:
• DROP TABLE tablename;
• Exemplo:
• DROP TABLE ItensPedido;
Marcelo Matheus Gauy Unesp Itapeva 7/8
Criando visões - tabelas virtuais/temporárias
• Em SQL, podemos criar tabelas virtuais ou temporárias que não alteram
o banco de dados diretamente. São chamadas de visões
• Visões tem a estrutura:
CREATE VIEW tableName AS
SELECT *
FROM table
WHERE condiçao;
• Podemos fazer uma consulta sobre a visão como se ela fosse uma
tabela do banco de dados:
SELECT * FROM tableName;
Marcelo Matheus Gauy Unesp Itapeva 8/8
Como inserir, remover e alterar dados em
SQL
Marcelo Matheus Gauy Unesp Itapeva 1/7
Inserindo dados em uma tabela
• Usamos o comando INSERT INTO:
• INSERT INTO tablename (column1, column2, column3, ...)
VALUES
(value1, value2, value3, ...),
(value1, value2, value3, ...),
...;
• Caso queiramos inserir valores em todas as colunas (valores devem estar
na ordem certa):
• INSERT INTO tablename
VALUES (value1, value2, value3, ...);
Marcelo Matheus Gauy Unesp Itapeva 2/7
Exemplo Cliente
• INSERT INTO Cliente (cpf, nome, telefone1, telefone2)
VALUES
(123456789, ’Jose Almeida’, 333333333, 11111111),
(987654321, ’Maria Aparecida’, 444444444, 22222222);
• Podemos inserir apenas alguns valores:
• INSERT INTO Cliente (cpf, nome)
VALUES (111222333, ’Manuel Almeida’);
Marcelo Matheus Gauy Unesp Itapeva 3/7
Alterando dados de uma tabela
• Usamos o comando UPDATE:
• UPDATE tableName
SET column1 = value1, column2 = value2, ...
WHERE condition;
• Caso queiramos alterar apenas um valor usamos a condição no WHERE
como uma condição de igualdade sobre a chave primária
• Condições no WHERE de outros tipos provavelmente afetarão vários
itens;
Marcelo Matheus Gauy Unesp Itapeva 4/7
Exemplo Cliente
• UPDATE Cliente
SET nome = ’Jose Augusto’, telefone1 = 123456789
WHERE cpf = 123456789;
• Outras condições no WHERE podem potencialmente afetar várias
entradas
• UPDATE Cliente
SET nome = ’Maria Aparecida de Jesus’, telefone1 = 987654321
WHERE telefone2 = 22222222;
Marcelo Matheus Gauy Unesp Itapeva 5/7
Removendo dados de uma tabela
• Usamos o comando DELETE FROM:
• DELETE FROM tableName
WHERE condition;
• Note que se você esquecer a condição do WHERE, todas as entradas
da tabela serão deletadas
Marcelo Matheus Gauy Unesp Itapeva 6/7
Exemplo Cliente
• DELETE FROM Cliente
WHERE cpf = 111222333;
• Podemos deletar todas as entradas
• DELETE FROM Cliente;
Marcelo Matheus Gauy Unesp Itapeva 7/7
Exercı́cios
Marcelo Matheus Gauy Unesp Itapeva 1/1