1:a normalformen

Skapa PostgreSQL-databaser

Darryl Reeves

Industry Assistant Professor, New York University

Exempel: hantera elevregister

CREATE TABLE student (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
  • Uppdateringsfel
  • Insättningsfel
  • Raderingsfel
Skapa PostgreSQL-databaser

Exempel: duplicerade data efter uppdatering

id name courses home_room
122 Susan Roth Algebra I, Physics, Spanish II 101
413 Robert Cruz History, Geometry, Biology 204
613 Thomas Wright English III, Chemistry, Algebra II 102
Skapa PostgreSQL-databaser

Exempel: duplicerade data efter uppdatering

id name courses home_room
122 Susan Roth Algebra I, Chemistry, Spanish II 101
413 Robert Cruz History, Geometry, Biology 204
613 Thomas Wright English III, Chemistry, Algebra II 102
Skapa PostgreSQL-databaser

Exempel: duplicerade data efter uppdatering

id name courses home_room
122 Susan Roth Algebra I, Chemistry, Spanish II, Chemistry 101
413 Robert Cruz History, Geometry, Biology 204
613 Thomas Wright English III, Chemistry, Algebra II 102
Skapa PostgreSQL-databaser

Exempel: insättningar med kolumnbegränsningar

CREATE TABLE student (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
id name courses home_room
122 Susan Roth Algebra I, Physics, Spanish II 101
413 Robert Cruz History, Geometry, Biology 204
613 Thomas Wright English III, Chemistry, Algebra II 102
Skapa PostgreSQL-databaser

Exempel: insättningar med kolumnbegränsningar

CREATE TABLE student (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
id name courses home_room
122 Susan Roth Algebra I, Physics, Spanish II 101
413 Robert Cruz History, Geometry, Biology, French Literature 204
613 Thomas Wright English III, Chemistry, Algebra II 102
Skapa PostgreSQL-databaser

Exempel: dataintegritet påverkas vid radering av poster

id name courses home_room
122 Susan Roth Algebra I, Physics, Spanish II 101
413 Robert Cruz History, Geometry, Biology 204
613 Thomas Wright English III, Chemistry, Algebra II 102
Skapa PostgreSQL-databaser

Exempel: dataintegritet påverkas vid radering av poster

id name courses home_room
122 Susan Roth Algebra I, Physics, Spanish II 101
413 Robert Cruz History, Geometry, Biology 204
613 Thomas Wright ??? 102
Skapa PostgreSQL-databaser

Uppfylla 1:a normalformen (1NF)

  • Krav för 1NF:
    • Tabellvärden måste vara atomära
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

CREATE TABLE student (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

CREATE TABLE student (
    id INTEGER,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

CREATE TABLE student (
    id INTEGER,
    name VARCHAR(50) NOT NULL,
    course VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

id name course home_room
122 Susan Roth Algebra I 101
122 Susan Roth Physics 101
122 Susan Roth Spanish II 101
413 Robert Cruz History 204
413 Robert Cruz Geometry 204
413 Robert Cruz Biology 204
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

CREATE TABLE student (
    id INTEGER,
    name VARCHAR(50) NOT NULL,
    course VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

CREATE TABLE student (
    student_id INTEGER,
    first_name VARCHAR(50) NOT NULL,
    last_name VARCHAR(50) NOT NULL,
    course VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Skapa PostgreSQL-databaser

Exempel: elevertabell som uppfyller 1NF

id first_name last_name course home_room
122 Susan Roth Algebra I 101
122 Susan Roth Physics 101
122 Susan Roth Spanish II 101
413 Robert Cruz History 204
413 Robert Cruz Geometry 204
413 Robert Cruz Biology 204
Skapa PostgreSQL-databaser

Nu kör vi en övning!

Skapa PostgreSQL-databaser

Preparing Video For Download...