Tietokannan normalisoija

Interaktiivinen opas tietokannan normalisointimuodoille (1NF – 5NF/BCNF). Opi visuaalisilla esimerkeillä, jotka näyttävät denormalisoidun datan ja oikein normalisoidut tulokset.

Kaikki käsittely tapahtuu selaimessasi. Mitään tietoja ei ladata palvelimelle.
Offline Ready

Tietokannan normalisoija

Interaktiivinen opas tietokannan normalisointimuodoille (1NF – 5NF/BCNF). Opi visuaalisilla esimerkeillä, jotka näyttävät denormalisoidun datan ja oikein normalisoidut tulokset.

🔒Kaikki käsittely tapahtuu selaimessasi. Mitään tietoja ei ladata palvelimelle.
Normalisointimuotojen yleiskatsaus
1NF
2NF
3NF
BCNF
4NF
5NF
1NF
2NF
3NF
BCNF
4NF
5NF
Rikkomusesimerkki ja korjaus

Ennen (denormalisoitu)

StudentIDNameCourses
1AliceMath, Physics, Chemistry
2BobEnglish, Math
3CarolBiology, Chemistry, Physics

Jälkeen (normalisoitu)

StudentCourses
StudentIDNameCourse
1AliceMath
1AlicePhysics
1AliceChemistry
2BobEnglish
2BobMath
3CarolBiology
3CarolChemistry
3CarolPhysics
SQL-esimerkit
SQL ennen (rikkoo normaalimuodon)
-- Violates 1NF: multi-valued column
CREATE TABLE Students (
  StudentID INT PRIMARY KEY,
  Name VARCHAR(100),
  Courses VARCHAR(500)  -- comma-separated!
);
SQL jälkeen (normalisoitu)
-- 1NF: Each cell has atomic values
CREATE TABLE Students (
  StudentID INT PRIMARY KEY,
  Name VARCHAR(100)
);

CREATE TABLE StudentCourses (
  StudentID INT,
  Course VARCHAR(100),
  PRIMARY KEY (StudentID, Course),
  FOREIGN KEY (StudentID) REFERENCES Students(StudentID)
);