Dạng chuẩn 1

Tạo cơ sở dữ liệu PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

Ví dụ: quản lý hồ sơ học sinh

CREATE TABLE student (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
  • Lỗi cập nhật
  • Lỗi chèn
  • Lỗi xóa
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: dữ liệu trùng lặp sau khi cập nhật

id name courses home_room
122 Susan Roth Đại số I, Vật lý, Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử, Hình học, Sinh học 204
613 Thomas Wright Tiếng Anh III, Hóa học, Đại số II 102
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: dữ liệu trùng lặp sau khi cập nhật

id name courses home_room
122 Susan Roth Đại số I, Hóa học, Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử, Hình học, Sinh học 204
613 Thomas Wright Tiếng Anh III, Hóa học, Đại số II 102
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: dữ liệu trùng lặp sau khi cập nhật

id name courses home_room
122 Susan Roth Đại số I, Hóa học, Tiếng Tây Ban Nha II, Hóa học 101
413 Robert Cruz Lịch sử, Hình học, Sinh học 204
613 Thomas Wright Tiếng Anh III, Hóa học, Đại số II 102
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: chèn với ràng buộc cột

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 Đại số I, Vật lý, Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử, Hình học, Sinh học 204
613 Thomas Wright Tiếng Anh III, Hóa học, Đại số II 102
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: chèn với ràng buộc cột

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 Đại số I, Vật lý, Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử, Hình học, Sinh học, Văn học Pháp 204
613 Thomas Wright Tiếng Anh III, Hóa học, Đại số II 102
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: toàn vẹn dữ liệu bị ảnh hưởng khi xóa bản ghi

id name courses home_room
122 Susan Roth Đại số I, Vật lý, Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử, Hình học, Sinh học 204
613 Thomas Wright Tiếng Anh III, Hóa học, Đại số II 102
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: toàn vẹn dữ liệu bị ảnh hưởng khi xóa bản ghi

id name courses home_room
122 Susan Roth Đại số I, Vật lý, Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử, Hình học, Sinh học 204
613 Thomas Wright ??? 102
Tạo cơ sở dữ liệu PostgreSQL

Thỏa mãn dạng chuẩn 1 (1NF)

  • Yêu cầu 1NF:
    • Giá trị trong bảng phải là nguyên tử
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 1NF

CREATE TABLE student (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 1NF

CREATE TABLE student (
    id INTEGER,
    name VARCHAR(50) NOT NULL,
    courses VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 1NF

CREATE TABLE student (
    id INTEGER,
    name VARCHAR(50) NOT NULL,
    course VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 1NF

id name course home_room
122 Susan Roth Đại số I 101
122 Susan Roth Vật lý 101
122 Susan Roth Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử 204
413 Robert Cruz Hình học 204
413 Robert Cruz Sinh học 204
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 1NF

CREATE TABLE student (
    id INTEGER,
    name VARCHAR(50) NOT NULL,
    course VARCHAR(50) NOT NULL,
    home_room SMALLINT NOT NULL
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 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
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bảng student thỏa 1NF

id first_name last_name course home_room
122 Susan Roth Đại số I 101
122 Susan Roth Vật lý 101
122 Susan Roth Tiếng Tây Ban Nha II 101
413 Robert Cruz Lịch sử 204
413 Robert Cruz Hình học 204
413 Robert Cruz Sinh học 204
Tạo cơ sở dữ liệu PostgreSQL

Ayo berlatih!

Tạo cơ sở dữ liệu PostgreSQL

Preparing Video For Download...