Tầm quan trọng của chuẩn hóa dữ liệu

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

Darryl Reeves

Industry Assistant Professor, New York University

Ví dụ 1: dữ liệu dư thừa

  • Trùng lặp dữ liệu có thể gây vấn đề
CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_name VARCHAR(50) DEFAULT NULL,
    ...
);
CREATE TABLE bank ( 
    id SERIAL PRIMARY KEY, 
    name VARCHAR(50) DEFAULT NULL, 
    ... 
);
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 1: dữ liệu dư thừa

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_name VARCHAR(50) DEFAULT NULL,
    ...
);
CREATE TABLE bank ( 
    id SERIAL PRIMARY KEY, 
    name VARCHAR(50) DEFAULT NULL, 
    ... 
);
  • Vấn đề 1: Ngân hàng khác/cùng tên
  • Vấn đề 2: Đổi tên
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 1: dữ liệu dư thừa

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    ...
);
  • Ngân hàng có cùng tên nhưng id khác nhau
  • Cập nhật tên chỉ ảnh hưởng bảng bank
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 2: hợp nhất bản ghi

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 2: hợp nhất bản ghi

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 2: hợp nhất bản ghi

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 2: hợp nhất bản ghi

applicant

id name
1 Jane Simmmons
2 Rick Demps

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
Tạo cơ sở dữ liệu PostgreSQL

Ví dụ 2: hợp nhất bản ghi

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

Ví dụ 2: hợp nhất bản ghi

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    approved BOOLEAN DEFAULT NULL
);
  • approvedNULL => applicant
  • approvedtrue => borrower
  • approvedfalse => bị từ chối
Tạo cơ sở dữ liệu PostgreSQL

Vì sao cần chuẩn hóa dữ liệu?

  • Giảm trùng lặp dữ liệu
  • Tăng tính nhất quán
  • Cải thiện tổ chức dữ liệu
Tạo cơ sở dữ liệu PostgreSQL

Ayo berlatih!

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

Preparing Video For Download...