Your data, but make it normal.

Describe what you're building. Normie designs the schema, writes the SQL and waits for your yes before anything changes.

CopilotChatdemo
Design a clinic database: patients, doctors, appointments and prescriptions. Receptionists must not see diagnoses.

Four entities. Appointments link a patient to a doctor, and each prescription belongs to one appointment.

get_schema · 0 tablesdesign_from_er · 4 entities, 3 relationships
Schema migrationmedium risk
+ create table patient+ create table doctor+ create table appointment+ create table prescription
8 statements · dry run OK in 79.01 ms · nothing has changed yet
Runs on parts you already trust
  • Python
  • FastAPI
  • PostgreSQL 18
  • psql
  • pg_dump
  • sqlglot
  • PydanticAI
  • NVIDIA Nemotron
  • Next.js
01

Design from a sentence

Say what the app needs to remember. Get an ER model, tables with keys and a migration you can read before it runs.

02

Ask, don't write

Questions become relational algebra, then SQL, then a result. It runs on a read-only login with a row limit and a timeout.

03

Change with a safety net

Every write is rehearsed in a transaction, scored for risk and held for approval. Before-values are kept so you can undo.

Put Normie to work

Six specialists share one copilot. Pick one and watch the layers trade places: what you ask, the screen it changes, and the approval it waits for.

Design specialist

From one sentence to a schema

Tell Normie what you are building. It drafts an ER model, maps it to tables with keys and foreign keys, and shows the migration before anything runs.

CopilotChat
A clinic: patients book appointments with doctors, and each doctor has a specialty.
entity Patient (patient_id PK, name, phone)entity Doctor (doctor_id PK, name, specialty)Appointment: 1:N from Patient and from Doctor→ 3 tables · 2 foreign keys · waiting for approval
nemotron · design_from_er

One database, three ways in

patient_idnameatPATIENTAPPTbooks1NDouble line: every appointment needs a patientRead back from the foreign keys you already have

See it

ER diagrams in Chen notation, drawn from your live tables: keys, cardinality, participation and weak entities.

-- which patients saw a cardiologist?
SELECT p.name FROM patient p
JOIN appointment a USING (patient_id)
JOIN doctor d USING (doctor_id)
WHERE d.specialty = 'Cardiology'

π name (σ specialty='Cardiology' (Patient ⋈ Appointment ⋈ Doctor))

Query it

A real SQL editor with schema autocomplete, EXPLAIN, and the relational algebra for every query beside the result.

Connect · clinic
ownermigrations only
rwapproved writes
roread only
psql postgresql://t_…_ro:••••@localhost:5432/…

Connect it

Every project is its own PostgreSQL database with three generated logins. Use psql, a GUI client or your own app.

Built on the DBMS syllabus

01

Theory does the work

Closure, candidate keys and normal-form checks are plain code. The model proposes; the algorithms decide.

02

You see every step

Algebra next to SQL, FDs next to the decomposition, the dry-run count next to the approve button.

03

Nothing changes silently

Writes are rehearsed and approved, every statement is in the audit log, and before-values make undo possible.

ER modelling

Entities, keys, cardinality, participation, weak entities and ISA, drawn in Chen notation.

Relational mapping

ER to tables, primary and foreign keys, junction tables, generated DDL.

Normalisation

Attribute closure, candidate keys, minimal cover, 1NF to BCNF, lossless and dependency-preserving splits.

Querying

Relational algebra beside SQL: selection, projection, joins, division, aggregation, subqueries.

Transactions

ACID, isolation levels, dry runs that roll back, drift checks at commit.

Security

Roles, column GRANT and REVOKE, views and row-level security, tested before deploy.

Indexing

EXPLAIN plans, B+ tree indexes, composite order, what-if benchmarks.

Recovery

Audit log, undo from before-images, backups and restore.

I'm a student and I need to normalise my tables.

I'm a
TRY THIS PROMPT

Check my enrolment table for 3NF and show the decomposition.

You get the FDs, the candidate keys, the normal form and a migration that splits it losslessly.

Use this prompt
I need to

FAQ

A database platform with a copilot. It creates a real PostgreSQL database for each project, designs and normalises schemas from plain English, writes queries, and asks before it changes anything.

The copilot never commits on its own. Reads run on a read-only login. Writes and migrations are rehearsed in a transaction, scored for risk and held until you approve them, with before-values kept for undo.

No, but you will learn it. Every answer shows the relational algebra and the SQL next to the result, and you can edit and rerun it in the SQL editor.

Yes. Each project has owner, read-write and read-only logins that work with psql or any PostgreSQL client.

NVIDIA Nemotron through an OpenAI-compatible endpoint. The checks that matter, such as attribute closure, normal forms and SQL validation, are deterministic code, not the model.

Normie is a DBMS project by Aakshant Kumar: a FastAPI and PostgreSQL backend with a Next.js front end.

Not sure where to start? Ask Normie.