Normal Form ที่ 2

การสร้างฐานข้อมูล PostgreSQL

Darryl Reeves

Industry Assistant Professor, New York University

ตัวอย่าง: ตำราเรียน

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
);
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ตำราเรียน

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
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ความไม่สอดคล้องจากการอัปเดต 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
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ความไม่สอดคล้องจากการอัปเดต 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
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: เพิ่มสำนักพิมพ์โดยไม่มีตำราเรียน

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
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: เพิ่มสำนักพิมพ์โดยไม่มีตำราเรียน

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 ??
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การลบตำราเรียน

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
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: การลบตำราเรียน

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
  • สำนักพิมพ์ต้องการตารางแยกต่างหาก
  • ความผิดปกติของข้อมูลจากการแทรกและการลบ
การสร้างฐานข้อมูล PostgreSQL

การทำให้ได้ Normal Form ที่ 2 (2NF)

  • ผ่าน 1NF แล้ว
  • คอลัมน์ที่ไม่ใช่คีย์ทั้งหมดขึ้นอยู่กับ PRIMARY KEY ของตาราง
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ตำราเรียนและสำนักพิมพ์ใน 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
);
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ตำราเรียนและสำนักพิมพ์ใน 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)
);
การสร้างฐานข้อมูล PostgreSQL

ตัวอย่าง: ตำราเรียนและสำนักพิมพ์ใน 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)
);
การสร้างฐานข้อมูล PostgreSQL

มาฝึกกันเถอะ!

การสร้างฐานข้อมูล PostgreSQL

Preparing Video For Download...