0% acharam este documento útil (0 voto)
15 visualizações21 páginas

Aula-4 Parte 2

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
0% acharam este documento útil (0 voto)
15 visualizações21 páginas

Aula-4 Parte 2

Direitos autorais
© © All Rights Reserved
Levamos muito a sério os direitos de conteúdo. Se você suspeita que este conteúdo é seu, reivindique-o aqui.
Formatos disponíveis
Baixe no formato PDF, TXT ou leia on-line no Scribd
Você está na página 1/ 21

Aula 4 Parte 2

Linguagem SQL - Parte 1:


DDL (Data Definition Language)
Bem-vindos à nossa aula sobre Linguagem SQL - Parte 1:
DDL (Data Definition Language). Hoje vamos revisar os
requisitos da política de governança de dados e a
importância da governança para garantir a segurança,
privacidade e qualidade dos dados. Também revisaremos
a atividade prática de elaboração de uma política de
governança de dados.

Nosso objetivo é aplicar comandos DDL para criar,


modificar e excluir objetos de banco de dados, como
tabelas, índices e views, definindo tipos de dados e
restrições de integridade, e escrever scripts SQL para
automatizar a criação e a modificação da estrutura do
banco de dados em um sistema de automação industrial.
SQL e DDL - A Linguagem dos Bancos de Dados
SQL (Structured Query DDL (Data Definition Outras categorias de
Language) Language) comandos SQL
Linguagem padrão para Define a estrutura do DML (Data Manipulation
interação com SGBDs banco de dados. "DDL Language), DCL (Data
relacionais. "SQL is a statements are used to Control Language), TCL
powerful and flexible define the database (Transaction Control
language for accessing schema." (Silberschatz et Language).
and manipulating data al., 2011, p. 185).
stored in relational Principais comandos:
databases." (Date, 2004, CREATE, ALTER, DROP,
p. 125). TRUNCATE.
Criando Objetos com CREATE

CREATE TABLE
Criar tabelas, especificando colunas,
tipos de dados e restrições.
Sintaxe: CREATE TABLE nome_tabela
(coluna1 tipo restricoes, coluna2 tipo
restricoes, ...);

CREATE VIEW
Criar views (tabelas virtuais).

CREATE INDEX
Criar índices para acelerar consultas.
Tipos de Dados em SQL
Tipos Numéricos Tipos de Texto
• INT - Para valores inteiros • VARCHAR - Para strings
• FLOAT - Para números com de tamanho variável
ponto flutuante • CHAR - Para strings de
• DECIMAL - Para valores tamanho fixo
decimais precisos • TEXT - Para textos longos

Outros Tipos
• DATE - Para datas
• TIME - Para horários
• BOOLEAN - Para valores verdadeiro/falso

"Choosing the correct data type is essential for efficient


storage and retrieval of data." (Elmasri & Navathe, 2016,
p. 241).
Restrições de Integridade
PRIMARY KEY FOREIGN KEY
"Uma chave primária "Uma chave estrangeira
identifica estabelece uma ligação entre
exclusivamente cada duas tabelas com base em
linha em uma tabela." um atributo comum."
(Ramakrishnan & (Silberschatz et al., 2011, p.
Gehrke, 2003, p. 37).362).
Exemplos em automação:
relacionar tabelas de
"Sensores" e "Máquinas".
UNIQUE, NOT NULL, CHECK
Restrições adicionais para garantir a integridade
dos dados.
Restrições de Integridade

CHECK
O que é:
Impõe uma condição lógica: o valor só é aceito se cumprir a regra.
Analogia:
É como um controle de entrada em um brinquedo de parque:
"Só entra se tiver mais de 1,20m."
Exemplos de CREATE TABLE
em Automação Industrial
CREATE TABLE Maquinas (
id_maquina INT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
modelo VARCHAR(50),
data_instalacao DATE,
status BOOLEAN DEFAULT true
);

CREATE TABLE Sensores (


id_sensor INT PRIMARY KEY,
tipo VARCHAR(50) NOT NULL,
id_maquina INT,
localizacao VARCHAR(100),
precisao FLOAT,
FOREIGN KEY (id_maquina) REFERENCES Maquinas(id_maquina)
);
Modificando Objetos com ALTER
Adicionar Colunas
ALTER TABLE nome_tabela ADD COLUMN nova_coluna tipo restricoes;

Modificar Colunas
ALTER TABLE nome_tabela MODIFY COLUMN coluna novo_tipo;

Excluir Colunas
ALTER TABLE nome_tabela DROP COLUMN coluna;

Adicionar/Remover Restrições
ALTER TABLE nome_tabela ADD CONSTRAINT nome_restricao tipo_restricao (coluna);

Renomear Tabelas
ALTER TABLE nome_tabela RENAME TO novo_nome;
Exemplos de ALTER TABLE em Automação Industrial
-- Adicionar uma coluna para armazenar a temperatura máxima suportada
ALTER TABLE Maquinas ADD COLUMN temp_max FLOAT;

-- Adicionar uma restrição CHECK para garantir valores válidos


ALTER TABLE Sensores ADD CONSTRAINT check_precisao
CHECK (precisao > 0 AND precisao <= 100);

-- Modificar o tipo de uma coluna para armazenar mais informações


ALTER TABLE Sensores MODIFY COLUMN localizacao VARCHAR(200);

-- Adicionar uma coluna com valor padrão


ALTER TABLE Sensores ADD COLUMN ativo BOOLEAN DEFAULT true;
Excluindo Objetos e Dados

DROP TABLE DROP VIEW DROP INDEX


Excluir uma tabela e todos os Excluir views do banco de Excluir índices do banco de
seus dados. "The DROP TABLE dados. dados.
statement permanently deletes a
table from the database." (Date,
2004, p. 163).

TRUNCATE TABLE
Excluir todos os dados de uma
tabela, mas preservar a
estrutura. "TRUNCATE TABLE is
faster than DELETE FROM
because it deallocates the data
pages instead of logging
individual row deletions."
(Oracle, 2023).
Comparação: DROP vs
TRUNCATE
Aspecto DROP TABLE TRUNCATE TABLE

Estrutura da tabela Remove Mantém intacta


completamente

Dados Remove todos Remove todos

Velocidade Pode ser mais lento Geralmente mais


rápido

Logging Registra a operação Mínimo (páginas


desalocadas)

Reversibilidade Irreversível (sem Irreversível (sem


COMMIT) COMMIT)
Exercício 1: Criação de Banco de Dados
Crie um script SQL que cria um banco de dados para um sistema de controle de estoque simplificado. O banco de dados deve ter tabelas para "produtos", "clientes" e "pedidos", com os tipos de dados e restrições
apropriadas.

CREATE TABLE produtos (


id_produto INT PRIMARY KEY,
nome_produto VARCHAR(100) NOT NULL,
descricao TEXT,
preco DECIMAL(10,2) NOT NULL,
quantidade_estoque INT NOT NULL DEFAULT 0,
data_cadastro DATE
);

CREATE TABLE clientes (


id_cliente INT PRIMARY KEY,
nome VARCHAR(100) NOT NULL,
email VARCHAR(100) UNIQUE,
telefone VARCHAR(20),
data_cadastro DATE
);

CREATE TABLE pedidos (


id_pedido INT PRIMARY KEY,
id_cliente INT,
data_pedido DATE NOT NULL,
status VARCHAR(20) DEFAULT 'em andamento',
valor_total DECIMAL(10,2),
FOREIGN KEY (id_cliente) REFERENCES clientes(id_cliente)
);
Exercício 2: Modificação
de Tabela
Modifique o script do exercício anterior para adicionar uma coluna
"categoria" à tabela "produtos". A coluna deve ser do tipo
VARCHAR(255) e não pode ser nula (NOT NULL).

ALTER TABLE produtos


ADD COLUMN categoria VARCHAR(255) NOT NULL;

Esta alteração adiciona uma nova coluna chamada "categoria" à tabela


"produtos". A coluna é do tipo VARCHAR com tamanho máximo de 255
caracteres e tem a restrição NOT NULL, o que significa que todos os
registros devem ter um valor para esta coluna.
Exercício 3: Criação de View
Crie uma view chamada "pedidos_ativos" que exibe apenas os pedidos
com status "em andamento".

CREATE VIEW pedidos_ativos AS


SELECT *
FROM pedidos
WHERE status = 'em andamento';

Esta view virtual permite acessar rapidamente apenas os pedidos que estão
em andamento, sem precisar escrever a condição de filtro toda vez que essa
informação for necessária. Views são úteis para simplificar consultas
complexas e fornecer uma camada de abstração sobre os dados.
Exercício 4: Criação de
Índice
Crie um índice na tabela "produtos" para a coluna "nome_produto"
para acelerar as consultas que buscam produtos pelo nome.

CREATE INDEX idx_nome_produto


ON produtos(nome_produto);

Este índice melhora significativamente o desempenho das consultas


que filtram ou ordenam pela coluna "nome_produto". Índices são
estruturas que permitem ao banco de dados localizar registros mais
rapidamente, sem precisar percorrer toda a tabela.
Exercício 5: Exclusão de
Tabela
Escreva um script SQL para excluir a tabela "clientes" do banco de
dados.

DROP TABLE clientes;

Este comando remove completamente a tabela "clientes" e todos os


seus dados do banco de dados. É importante notar que esta operação
é irreversível e também pode falhar se existirem restrições de chave
estrangeira referenciando esta tabela, como no caso da tabela
"pedidos" que tem uma FOREIGN KEY para "clientes".
Exercício 6: DROP vs TRUNCATE
Explique a diferença entre os comandos DROP TABLE e TRUNCATE TABLE. Em que situações cada comando é mais
apropriado?

DROP TABLE TRUNCATE TABLE

Remove completamente a tabela, incluindo sua estrutura, Remove todos os dados da tabela, mas mantém sua
dados, índices, triggers e restrições. estrutura intacta.

Mais apropriado quando: Mais apropriado quando:

• A tabela não é mais necessária • Deseja-se manter a estrutura mas remover todos os
• Deseja-se redesenhar completamente a estrutura dados

• Está realizando limpeza de objetos obsoletos • Precisa-se de uma operação mais rápida que DELETE
• Não há necessidade de condições WHERE
CREATE VIEW: Detalhamento

Vantagens
Definição
Simplifica consultas complexas, fornece uma
Uma view é uma tabela virtual baseada no
camada de abstração e pode melhorar a
resultado de uma consulta SQL.
segurança.

Uso Sintaxe
Pode ser consultada como uma tabela normal: CREATE VIEW nome_view AS SELECT ... FROM ...
SELECT * FROM nome_view; WHERE ...;

-- Exemplo de view para automação industrial


CREATE VIEW sensores_ativos AS
SELECT s.id_sensor, s.tipo, m.nome AS maquina
FROM Sensores s
JOIN Maquinas m ON s.id_maquina = m.id_maquina
WHERE s.ativo = true;
CREATE INDEX: Otimização de Consultas
Consultas Rápidas
Acesso direto aos dados sem varredura completa

Estrutura de Busca
Organização eficiente para localização de registros

Tabela Base
Armazenamento dos dados originais

Os índices são estruturas de dados que melhoram significativamente o desempenho das consultas, especialmente em tabelas
grandes. Eles funcionam de maneira similar ao índice de um livro, permitindo que o banco de dados encontre rapidamente os
registros desejados sem precisar ler toda a tabela.

No entanto, é importante usar índices com moderação, pois eles ocupam espaço adicional e podem diminuir o desempenho de
operações de inserção, atualização e exclusão, já que o índice também precisa ser atualizado.
Boas Práticas em DDL
Nomear objetos de 2 Escolher tipos de dados Implementar restrições
forma clara e apropriados de integridade
consistente
Use convenções de Selecione o tipo mais adequado Use PRIMARY KEY, FOREIGN
nomenclatura padronizadas para cada coluna, considerando KEY, UNIQUE, NOT NULL e
para facilitar a manutenção. espaço e performance. CHECK para garantir a
integridade dos dados.

Documentar o esquema do banco de Versionar scripts DDL


dados Use controle de versão para rastrear mudanças na
Mantenha documentação atualizada sobre a estrutura do banco de dados.
estrutura e relacionamentos.
Conclusão e Próximos Passos
Comandos DDL
CREATE, ALTER, DROP, TRUNCATE

Objetos de Banco de Dados


2
Tabelas, Views, Índices

Integridade de Dados
Restrições e tipos de dados

Nesta aula, exploramos os comandos DDL para criar, modificar e excluir objetos de banco de dados. Aprendemos sobre tipos de dados e
restrições de integridade essenciais para garantir a qualidade dos dados em sistemas de automação industrial.

Na próxima aula, abordaremos a Linguagem SQL - Parte 2 (Comandos para manipulação de dados - DML). Introduziremos os comandos DML
para inserir, consultar, atualizar e excluir dados.

Alguma dúvida sobre o conteúdo apresentado hoje?

Você também pode gostar