Rullst AcademyRullst Academy/Lição
Bancos de dados e SQL I · Lição 02 / 12

Modelar com regras

Ler um esquema e distinguir identidade, obrigatoriedade, unicidade e limites.

Trilhas de aprendizado16 min

Vamos descobrir juntos

  1. 1

    Leia schema.sql. kits descreve materiais; loans registra eventos. Separar essas responsabilidades evita repetir todas as características do material em cada empréstimo. Comece pelas perguntas e regras que seu modelo precisa atender.

  2. 2

    PRIMARY KEY identifica a linha. code é UNIQUE e NOT NULL: não pode repetir nem faltar. label pode repetir. stock usa CHECK para exigir inteiro não negativo após a conversão de afinidade do SQLite; declarar INTEGER sozinho não basta numa tabela comum.

  3. 3

    NULL é ausência ou desconhecimento, não zero nem texto vazio. CHECK pode aceitar NULL quando sua expressão não é falsa; combine NOT NULL para dados obrigatórios. As regras do banco complementam a validação da aplicação.

  4. 4

    O exemplo cria uma tabela de prática em memória. Em tentativas separadas, repita um id e tente stock negativo. Leia a restrição violada; não a remova só para fazer o comando passar.

Sua bancada de dados

Nosso modelo: kits.id ← loans.kit_id. Um material pode ter vários empréstimos; nomes podem repetir. Só usamos dados fictícios.

Preveja antes de abrir a referência. Ela mostra o resultado verificado do exemplo original, não executa seu texto. Para executar suas alterações, use o kit no computador.

-- Modelar com regras
CREATE TABLE practice (id INTEGER PRIMARY KEY, code TEXT NOT NULL UNIQUE, stock INTEGER NOT NULL CHECK(typeof(stock)='integer' AND stock>=0));
INSERT INTO practice VALUES(1,'T-01',0);
SELECT id, code, stock FROM practice ORDER BY id;
Comparar com o resultado de referência
[
  {
    "columns": [
      "id",
      "code",
      "stock"
    ],
    "rows": [
      [
        1,
        "T-01",
        0
      ]
    ]
  }
]

No terminal da pasta extraída, execute o comando. Use python3 no macOS/Ubuntu ou py se esse for seu launcher no Windows. Cada execução começa em memória; leia README.md para salvar arquivos e ensaiar recuperação.

python lab.py run lesson.sql
Meus arquivos e GitHub

O editor guarda seu rascunho .sql neste navegador. Baixe a edição e substitua lesson.sql no kit; no projeto final, availability.sql. O ZIP continua sendo o modelo original. Publicar no GitHub envia apenas o arquivo confirmado, sem executar SQL ou enviar o banco.

Links oficiais e próximo passo

✦
SUA MISSÃO

Ler um esquema e distinguir identidade, obrigatoriedade, unicidade e limites.

Agora é a sua vez

Oficina de descobertas

Leia, preveja e confira

Ler um esquema e distinguir identidade, obrigatoriedade, unicidade e limites.
Monte suas respostas e confira quando estiver pronto.
Uma pausa para entender

O que exige um código presente e único?

Preciso de uma pista

PRIMARY KEY identifica a linha. code é UNIQUE e NOT NULL: não pode repetir nem faltar. label pode repetir. stock usa CHECK para exigir inteiro não negativo após a conversão de afinidade do SQLite; declarar INTEGER sozinho não basta numa tabela comum.

Carregando sua jornada…

Leve com você

Desenhe uma tabela de objetos fictícios de um hobby. Explique sua chave, um valor opcional e dois valores recusados.

No seu ritmo

Meus arquivos e GitHub

Toda lição pode virar um registro seu: código, anotações ou um plano de prática. Guardar um arquivo no GitHub é opcional e não altera seu XP.

Manual do aluno

O editor e os downloads abrem quando esta lição estiver liberada para sua conta. Confira o acesso abaixo ou volte ao mapa da trilha.

Conferindo seu acesso à lição…

Rullstpetbot

A IA pode errar. Confira no material da lição.