Database Systems
Database Systems
1.SQL data types
1.1. Numeric data type
1.2 String data type
📘 Curso de Banco de Dados – Módulo: Tipos de Dados String
🎯 Objetivos de Aprendizagem
Ao final deste módulo, o aluno será capaz de:
-
Compreender o que é o tipo de dado string em bancos de dados.
-
Explicar as diferenças entre os principais tipos de dados string:
CHAReVARCHAR. -
Escolher o tipo string apropriado conforme o cenário de uso.
-
Conhecer outros tipos de dados textuais como
TEXT,TINYTEXT,MEDIUMTEXTeLONGTEXT.
📌 1. Introdução aos Tipos de Dados String
-
Definição: tipos de dados usados para armazenar textos, números e caracteres especiais.
-
Aplicações comuns: nomes, senhas, endereços de e-mail, mensagens, etc.
-
Importância: garante a integridade dos dados, permitindo apenas valores válidos.
💡 2. Diferença entre CHAR e VARCHAR
🧱 CHAR (Character)
-
Armazena cadeias de tamanho fixo.
-
Declarado como:
CHAR(n)onde n é o número de caracteres. -
Ideal para: campos com tamanho padronizado (ex: códigos de estado, identificadores).
-
Exemplo:
CHAR(50)sempre usa 50 caracteres de espaço, mesmo se o conteúdo for menor.
🧩 VARCHAR (Variable Character)
-
Armazena cadeias de tamanho variável, até um limite máximo.
-
Declarado como:
VARCHAR(n)onde n é o número máximo de caracteres permitidos. -
Ideal para: campos de comprimento variável (ex: nomes, e-mails).
-
Exemplo:
VARCHAR(50)usa apenas o espaço necessário para armazenar o conteúdo.
🧪 3. Estudo de Caso – Tabela de Estudantes
| Coluna | Conteúdo Exemplo | Tipo Recomendado |
|---|---|---|
| Student Name | Mark Simpson | VARCHAR(50) |
| Username | mark123 | CHAR(50) |
| Password | Mix de caracteres | VARCHAR(50) |
| Email Address | mark@email.com | VARCHAR(100) |
-
Motivo: cada campo possui características distintas quanto ao tipo e comprimento de dados armazenados.
🧾 4. Outros Tipos de Dados Textuais
| Tipo de Dado | Capacidade Máxima | Uso Comum |
|---|---|---|
TINYTEXT | até 255 caracteres | Mensagens curtas, descrições breves |
TEXT | até 65.535 caracteres (~64 KB) | Artigos, textos médios |
MEDIUMTEXT | até 16.777.215 caracteres (~16 MB) | Capítulos de livros, documentos |
LONGTEXT | até 4.294.967.295 caracteres (~4 GB) | Livros inteiros, grandes arquivos |
✅ 5. Boas Práticas ao Usar Strings
-
Utilize
VARCHARsempre que o comprimento for variável. -
Prefira
CHARsomente quando o comprimento for fixo e previsível. -
Use
TEXTe suas variantes para grandes quantidades de texto, mas evite usá-los para colunas que serão frequentemente indexadas. -
Defina limites razoáveis para evitar desperdício de espaço.
📚 Recursos Complementares
1.3. Default values
📘 Curso de Banco de Dados – Módulo: Restrições e Valores Padrão (Constraints & Default Values)
🎯 Objetivos de Aprendizagem
Ao final desta aula, o aluno será capaz de:
-
Explicar o propósito das restrições (
constraints) em um banco de dados. -
Identificar e aplicar corretamente a restrição
NOT NULL. -
Aplicar a restrição
DEFAULTpara definir valores padrão em colunas de tabelas. -
Compreender os efeitos de violações de restrições em operações de banco de dados.
📌 1. O que são Restrições (Constraints)?
✅ Definição:
-
Restrições são regras aplicadas aos dados em tabelas para garantir integridade, precisão e confiabilidade.
🔐 Propósito:
-
Evitar a inserção de dados inválidos.
-
Manter a consistência dos dados em operações como inserção, atualização ou exclusão.
🔄 Tipos de Aplicação:
-
A nível de coluna: a regra se aplica a uma única coluna.
-
A nível de tabela: a regra envolve múltiplas colunas ou interações com outras tabelas (ex:
FOREIGN KEY).
❌ 2. Constraint NOT NULL
✒️ Definição:
-
Garante que uma coluna não possa conter valores nulos.
-
Ideal para campos obrigatórios, como identificadores ou nomes.
🧾 Exemplo Prático:
Tabela: customer
-
Neste caso, nenhum registro pode ser inserido sem fornecer valores para
customer_idecustomer_name. -
Operações que tentarem inserir valores nulos serão abortadas.
🧷 3. Constraint DEFAULT
✒️ Definição:
-
Define um valor padrão para uma coluna quando nenhum valor é explicitamente fornecido.
-
Reduz redundância e facilita inserções massivas.
📊 Exemplo Prático:
Tabela: player
-
Se não for informado o valor da coluna
cityao inserir um novo jogador, o valor 'Barcelona' será atribuído automaticamente. -
Ideal para cenários em que certos valores são frequentes ou previsíveis.
💡 4. Benefícios do Uso de Constraints
-
✅ Integridade de Dados: evita entrada de dados inválidos.
-
✅ Consistência: reduz erros humanos durante inserções.
-
✅ Eficiência: economiza tempo ao não precisar repetir valores comuns.
-
✅ Clareza no Design: explicita as regras e limitações da estrutura de dados.
🧠 5. Considerações Técnicas e Boas Práticas
-
Sempre combine
NOT NULLcomDEFAULTquando necessário, garantindo preenchimento obrigatório com valor padrão. -
Use nomes descritivos nas colunas para refletir a função do dado e facilitar a manutenção.
-
Evite valores default genéricos demais (ex: "N/A") quando puder usar valores significativos para o domínio dos dados.
📚 Fontes e Leituras Recomendadas
2. Create and read
2.1 Create and Drop database
Entendendo Bancos de Dados e SQL
- O que é um Banco de Dados? Um banco de dados é um sistema estruturado para armazenar e gerenciar dados, como informações sobre livros, clientes ou vendas em uma livraria online. Os dados são organizados em tabelas para permitir acesso, recuperação e atualizações eficientes.
- Por que SQL? SQL (Structured Query Language, ou Linguagem de Consulta Estruturada) é uma linguagem padrão usada para interagir com bancos de dados relacionais. Ela permite criar, modificar, excluir bancos de dados e seus conteúdos, além de consultar dados para fins específicos (por exemplo, processar milhões de pedidos globalmente).
- Propósito de um Banco de Dados
Antes de criar um banco de dados, defina seu propósito. Por exemplo, um banco de dados para uma livraria online pode precisar armazenar:
- Títulos de livros
- Autores
- Detalhes de clientes
- Registros de vendas Esses tipos de dados são armazenados em tabelas relacionadas dentro do banco de dados, garantindo uma gestão organizada e escalável.
Criando um Banco de Dados em SQL
Para criar um banco de dados, usa-se o comando CREATE DATABASE. Veja o processo passo a passo:
- Sintaxe:
sql
CREATE DATABASE nome_do_banco;- CREATE DATABASE: Palavras-chave que instruem o SQL a criar um novo banco de dados.
- nome_do_banco: Um nome único e significativo para o banco de dados (por exemplo, livraria2_db).
- Ponto e vírgula (;): Marca o fim da instrução SQL.
- Regras de Nomeação:
- O nome deve ser único no sistema de gerenciamento de banco de dados (DBMS).
- Comprimento máximo: 63 caracteres.
- Use nomes descritivos para facilitar a documentação (por exemplo, livraria2_db em vez de db1).
- Evite caracteres especiais ou espaços (underline é comum para legibilidade).
- Exemplo:
Para criar um banco de dados para uma livraria:
sql
CREATE DATABASE livraria2_db;- Após executar esse comando, o banco de dados livraria2_db é criado e geralmente aparece na interface do DBMS (por exemplo, na barra lateral de ferramentas como o MySQL Workbench).
- Tratamento de Erros:
- Se o nome do banco de dados já existir ou violar as regras de nomeação, uma mensagem de erro aparecerá.
- Exemplo de erro: Tentar criar um banco de dados com um nome existente ou com caracteres inválidos.
Excluindo um Banco de Dados em SQL
Para remover um banco de dados, usa-se o comando DROP DATABASE. Isso exclui permanentemente o banco de dados e todos os seus dados, então use com cuidado.
- Sintaxe:
sql
DROP DATABASE nome_do_banco;- DROP DATABASE: Palavras-chave que instruem o SQL a excluir o banco de dados especificado.
- nome_do_banco: O nome do banco de dados a ser excluído (por exemplo, livraria_db).
- Ponto e vírgula (;): Finaliza a instrução.
- Exemplo:
Para excluir o banco de dados da livraria:
sql
DROP DATABASE livraria_db;- Após executar esse comando, o banco de dados livraria_db é removido do sistema.
- Precauções:
- Certifique-se de selecionar o nome correto do banco de dados, pois a exclusão é irreversível.
- Algumas ferramentas DBMS exigem que você confirme a ação ou verifique se há conexões ativas com o banco de dados antes de excluí-lo.
Pontos-Chave do Vídeo
- Design Orientado ao Propósito: Sempre esclareça o propósito do banco de dados (por exemplo, armazenar dados de livros e clientes) antes de criá-lo.
- Comandos SQL:
- CREATE DATABASE para criar um novo banco de dados.
- DROP DATABASE para excluir um banco de dados existente.
- Boas Práticas:
- Use nomes significativos e únicos para os bancos de dados.
- Finalize as instruções SQL com ponto e vírgula.
- Verifique os comandos na interface SQL (por exemplo, aba SQL em uma ferramenta DBMS) antes de executá-los.
- Fluxo de Trabalho:
- Criar: Escreva a instrução CREATE DATABASE, execute-a e verifique se o novo banco de dados aparece na interface.
- Excluir: Escreva a instrução DROP DATABASE, execute-a e confirme que o banco de dados foi removido.
Contexto Adicional
- Escalabilidade: O vídeo menciona lidar com "milhões de livros e clientes". Bancos de dados SQL (como MySQL, PostgreSQL) são projetados para gerenciar grandes conjuntos de dados por meio de indexação eficiente, particionamento e otimização de consultas.
- Tabelas e Relacionamentos: Após criar um banco de dados, é necessário criar tabelas para armazenar dados específicos (por exemplo, uma tabela livros com colunas para título, autor e preço). Essas tabelas são vinculadas por chaves (como chaves primárias e estrangeiras) para manter os relacionamentos.
- Operações CRUD: O vídeo foca em "criar" e "excluir", que fazem parte do framework CRUD (Criar, Ler, Atualizar, Excluir). Etapas futuras incluiriam:
- Ler: Usar SELECT para recuperar dados.
- Atualizar: Usar UPDATE para modificar dados.
- Excluir: Usar DELETE para remover registros específicos.
- Ferramentas DBMS: O vídeo faz referência a uma interface gráfica (por exemplo, uma barra lateral exibindo bancos de dados). Ferramentas comuns incluem MySQL Workbench, pgAdmin ou SQL Server Management Studio, que simplificam o gerenciamento de bancos de dados.
Exemplo Prático
Imagine que você está construindo um banco de dados para uma livraria online:
- Criar o Banco de Dados:
Isso cria um banco de dados vazio chamado livraria2_db.sql
CREATE DATABASE livraria2_db; - Verificar a Criação: Verifique a interface do DBMS para garantir que livraria2_db apareça.
- Excluir o Banco de Dados (se necessário):
Isso exclui o banco de dados livraria_db se ele não for mais necessário.sql
DROP DATABASE livraria_db; - Próximos Passos (além do vídeo):
Criar tabelas dentro de livraria2_db, como:
Isso configura uma tabela para armazenar detalhes dos livros.sql
CREATE TABLE livros ( id_livro INT PRIMARY KEY, titulo VARCHAR(100), autor VARCHAR(50), preco DECIMAL(10, 2) );
Resumo
O vídeo oferece uma introdução amigável para iniciantes sobre a criação e exclusão de bancos de dados em SQL. Usando CREATE DATABASE e DROP DATABASE, você pode configurar e remover bancos de dados conforme suas necessidades (por exemplo, gerenciar dados de uma livraria). Considerações importantes incluem escolher nomes significativos, seguir as regras de sintaxe e verificar as ações no seu DBMS. Esses comandos são fundamentais para construir sistemas escaláveis capazes de lidar com grandes quantidades de dados, como milhões de livros ou pedidos.
Se você tiver dúvidas específicas sobre o vídeo ou quiser explorar mais o SQL (por exemplo, criar tabelas, consultar dados), é só avisar!
2.2 Create Table statement
Explicação sobre a Criação de Tabelas em SQL (Traduzido e Organizado)
O vídeo aborda como organizar grandes quantidades de dados em um banco de dados usando SQL, focando na criação de tabelas para armazenar e estruturar informações de forma eficiente. Abaixo está uma explicação organizada e traduzida para o português, com base no conteúdo do vídeo, complementada com contexto adicional para maior clareza.
Organizando Dados com Tabelas em SQL
- Por que Organizar Dados? Quando se trabalha com grandes quantidades de dados (como informações de clientes ou livros em uma livraria), é essencial organizá-los de forma que sejam fáceis de encontrar e compreender. Em SQL, isso é feito criando tabelas dentro de um banco de dados, onde os dados são armazenados em colunas e linhas.
- O que é uma Tabela?
Uma tabela é uma estrutura dentro de um banco de dados que organiza dados em:
- Colunas: Representam os atributos (por exemplo, nome do cliente, número de telefone).
- Linhas: Representam os registros individuais (por exemplo, cada cliente). Cada coluna tem um tipo de dado específico que define que tipo de informação ela pode armazenar (como texto, números, datas, etc.).
- Pré-requisito: Antes de criar uma tabela, você precisa ter um banco de dados já criado no servidor. Sem um banco de dados, não há onde armazenar as tabelas.
Criando uma Tabela em SQL
Para criar uma tabela, usa-se o comando CREATE TABLE. Veja o processo passo a passo:
- Sintaxe:
sql
CREATE TABLE nome_da_tabela ( nome_coluna1 tipo_de_dado, nome_coluna2 tipo_de_dado, ... );- CREATE TABLE: Palavras-chave que indicam que você deseja criar uma nova tabela.
- nome_da_tabela: Nome único para a tabela (por exemplo, clientes).
- nome_coluna: Nome de cada coluna na tabela (por exemplo, nome_cliente, telefone).
- tipo_de_dado: Define o tipo de dado que a coluna pode armazenar (por exemplo, VARCHAR, INT).
- Parênteses (): Contêm as definições das colunas, separadas por vírgulas.
- Ponto e vírgula (;): Finaliza a instrução SQL.
- Tipos de Dados Comuns:
- VARCHAR(n): Armazena texto ou caracteres de comprimento variável, onde n é o número máximo de caracteres (por exemplo, VARCHAR(50) para nomes).
- INT: Armazena números inteiros (por exemplo, para números de telefone ou IDs).
- DECIMAL(m,n): Armazena números decimais (por exemplo, para preços).
- DATE: Armazena datas.
- Regras de Nomeação:
- O nome da tabela deve ser único dentro do banco de dados.
- Use nomes descritivos para facilitar a compreensão (por exemplo, clientes em vez de tabela1).
- Evite caracteres especiais ou espaços (use underline para legibilidade, como nome_cliente).
- Exemplo:
Para criar uma tabela chamada clientes no banco de dados de uma livraria, que armazena nomes e números de telefone dos clientes:
sql
CREATE TABLE clientes ( nome_cliente VARCHAR(50), telefone INT );- nome_cliente VARCHAR(50): Armazena nomes de até 50 caracteres.
- telefone INT: Armazena números de telefone como inteiros.
- Após executar o comando, a tabela clientes é criada no banco de dados.
- Execução:
- Escreva a instrução SQL em uma ferramenta DBMS (como MySQL Workbench ou pgAdmin).
- Execute a instrução (geralmente clicando em "Run" ou "Execute").
- Verifique se a tabela aparece na interface do banco de dados (por exemplo, na lista de tabelas).
Pontos-Chave do Vídeo
- Propósito das Tabelas: Tabelas são usadas para organizar dados de forma estruturada, permitindo encontrar e gerenciar informações específicas facilmente.
- Comando SQL:
- CREATE TABLE cria uma nova tabela com colunas definidas e seus tipos de dados.
- Boas Práticas:
- Escolha tipos de dados apropriados para cada coluna (por exemplo, VARCHAR para texto, INT para números inteiros).
- Use nomes claros e significativos para tabelas e colunas.
- Sempre finalize a instrução com um ponto e vírgula.
- Pré-requisito: Um banco de dados deve existir antes de criar tabelas.
- Exemplo Prático:
- O vídeo cria uma tabela clientes para armazenar nome_cliente (como texto) e telefone (como número inteiro) em um banco de dados de livraria.
Contexto Adicional
- Tipos de Dados no Vídeo:
- O vídeo menciona VARCHAR como um tipo de dado que "pode conter dados de qualquer tipo", mas isso não é preciso. Na verdade, VARCHAR é específico para texto ou caracteres. Outros tipos, como INT, DECIMAL ou DATE, têm finalidades distintas.
- No exemplo, telefone usa INT, mas, na prática, números de telefone podem ser armazenados como VARCHAR para preservar zeros à esquerda ou formatos internacionais (como "+55 11 99999-9999").
- Estrutura das Tabelas:
- Além de nomes e tipos de dados, colunas podem ter restrições (não mencionadas no vídeo), como:
- PRIMARY KEY: Identifica cada registro de forma única (por exemplo, id_cliente).
- NOT NULL: Garante que a coluna não pode estar vazia.
- FOREIGN KEY: Vincula a tabela a outra tabela (por exemplo, vincular pedidos a clientes).
- Exemplo com restrições:
sql
CREATE TABLE clientes ( id_cliente INT PRIMARY KEY, nome_cliente VARCHAR(50) NOT NULL, telefone VARCHAR(15) );
- Além de nomes e tipos de dados, colunas podem ter restrições (não mencionadas no vídeo), como:
- Próximos Passos:
Após criar uma tabela, você pode:
- Inserir Dados: Usar INSERT INTO para adicionar registros.
- Consultar Dados: Usar SELECT para recuperar informações.
- Atualizar ou Excluir: Usar UPDATE e DELETE para modificar ou remover dados.
- Exemplo de inserção:
sql
INSERT INTO clientes (nome_cliente, telefone) VALUES ('João Silva', '11999999999');
- Ferramentas DBMS: O vídeo implica o uso de uma interface gráfica para executar comandos SQL. Ferramentas como MySQL Workbench, pgAdmin ou DBeaver são comuns para criar e gerenciar tabelas.
Exemplo Prático
Imagine que você está configurando uma livraria online e já criou um banco de dados chamado livraria_db. Agora, você quer criar uma tabela para armazenar informações de clientes:
- Criar a Tabela:
sql
CREATE TABLE clientes ( nome_cliente VARCHAR(50), telefone INT );- Isso cria uma tabela chamada clientes com duas colunas: nome_cliente (texto de até 50 caracteres) e telefone (número inteiro).
- Verificar a Criação:
- Execute o comando no seu DBMS.
- Verifique na interface se a tabela clientes aparece na lista de tabelas do banco de dados livraria_db.
- Adicionar Dados (não abordado no vídeo, mas útil):
sql
INSERT INTO clientes (nome_cliente, telefone) VALUES ('Maria Oliveira', 21987654321); - Melhorando o Exemplo:
Para tornar a tabela mais robusta, você pode adicionar uma chave primária:
sql
CREATE TABLE clientes ( id_cliente INT PRIMARY KEY AUTO_INCREMENT, nome_cliente VARCHAR(50) NOT NULL, telefone VARCHAR(15) );- id_cliente: Identificador único para cada cliente, gerado automaticamente.
- NOT NULL: Garante que nome_cliente seja preenchido.
- VARCHAR(15) para telefone: Melhor para números de telefone com formatos variados.
Resumo
O vídeo explica como criar tabelas em um banco de dados usando o comando CREATE TABLE em SQL, essencial para organizar grandes quantidades de dados de forma acessível e compreensível. A sintaxe envolve especificar o nome da tabela, as colunas e seus tipos de dados, como VARCHAR para texto e INT para números inteiros. O exemplo do vídeo cria uma tabela clientes para armazenar nomes e telefones em um banco de dados de livraria, destacando a importância de ter um banco de dados existente e usar nomes claros. Após criar tabelas, você pode começar a inserir e consultar dados, construindo a base para sistemas robustos.
Se você tiver dúvidas específicas sobre o vídeo, quiser exemplos adicionais ou explorar outros comandos SQL (como inserir ou consultar dados), é só avisar!
2.3 Alter Table Statement
2.4 Insert statement
2.5 Select statement
2.6 Insert Into Select Statement
3. Update and delete
3.1 Updating data
3.2 deleting data
3.3 Module summary : create, read, update and delete (CRUD) Operations
4. SQL Operators
4.1 SQL Aritmetic Operators
4.2 Operators in use
4.3 SQL Comparison operators
5. Sorting and filtering data
5.1 Order by clause
5.2 Where cluse
5.3 Select Distinct clause
5.4 Module summary: SQL operators and sorting and filtering data
6. Designing databse schema
6.1 Database schema
6.2 Schema in use
6.3 Types of database chema
7. Relational databse design
7.1 Table relationships
7.2 Primary key
7.3 Foreign key
7.4 Finding entities
8. Database normalization
8.1 What is database normalization
8.2 First normal form 1NF
8.3 Second normal form 2NF
8.4 Third normal form 3NF
8.5 Module summary: Database design
9. Cource wrap-up
9.1 Congratulations, you have completed introduction to databse
10. Quiz Database Sustem
Comments
Post a Comment