Chuẩn hóa 2 (2NF)

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

Darryl Reeves

Industry Assistant Professor, New York University

Ví dụ: giáo trình trường học

CREATE TABLE textbook (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    publisher_name VARCHAR(100) NOT NULL,
    publisher_site VARCHAR(50),
    quantity SMALLINT NOT NULL DEFAULT 0
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: giáo trình trường học

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.abc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
112 Statistical Concepts Martin House www.mh.com 22
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bất nhất khi cập nhật URL

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.abc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
112 Statistical Concepts Martin House www.mh.com 22
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: bất nhất khi cập nhật URL

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.newabc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
112 Statistical Concepts Martin House www.mh.com 22
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: thêm nhà xuất bản không có giáo trình

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.abc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
112 Statistical Concepts Martin House www.mh.com 22
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: thêm nhà xuất bản không có giáo trình

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.abc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
112 Statistical Concepts Martin House www.mh.com 22
?? ?? New Horizons www.nhorizon.com ??
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: xóa một giáo trình

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.abc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
112 Statistical Concepts Martin House www.mh.com 22
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: xóa một giáo trình

id title publisher_name publisher_site quantity
23 Introductory Algebra: 1st Edition ABC Publishing www.abc.com 32
74 Calculus Foundations ABC Publishing www.abc.com 27
  • Nhà xuất bản cần bảng riêng
  • Bất thường dữ liệu khi thêm/xóa
Tạo cơ sở dữ liệu PostgreSQL

Đáp ứng Chuẩn hóa 2 (2NF)

  • Thỏa 1NF
  • Mọi cột không khóa phụ thuộc vào PRIMARY KEY của bảng
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: giáo trình và nhà xuất bản ở 2NF

CREATE TABLE textbook (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    publisher_name VARCHAR(100) NOT NULL,
    publisher_site VARCHAR(50),
    quantity SMALLINT NOT NULL DEFAULT 0
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: giáo trình và nhà xuất bản ở 2NF

CREATE TABLE textbook (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    quantity SMALLINT NOT NULL DEFAULT 0,
);
CREATE TABLE publisher (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    site VARCHAR(50)
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ: giáo trình và nhà xuất bản ở 2NF

CREATE TABLE textbook (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    quantity SMALLINT NOT NULL DEFAULT 0,
    publisher_id INTEGER REFERENCES publisher(id)
);
CREATE TABLE publisher (
    id SERIAL PRIMARY KEY,
    name VARCHAR(100) NOT NULL,
    site VARCHAR(50)
);
Tạo cơ sở dữ liệu PostgreSQL

Ayo berlatih!

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

Preparing Video For Download...