Veri normalleştirmenin önemi

PostgreSQL Veritabanları Oluşturma

Darryl Reeves

Industry Assistant Professor, New York University

Örnek 1: yinelenen veri

  • Veri tekrarı sorun yaratabilir
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, 
    ... 
);
PostgreSQL Veritabanları Oluşturma

Örnek 1: yinelenen veri

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, 
    ... 
);
  • Sorun 1: Farklı bankalar/aynı ad
  • Sorun 2: Ad değişiklikleri
PostgreSQL Veritabanları Oluşturma

Örnek 1: yinelenen veri

CREATE TABLE loan (
    borrower_id INTEGER REFERENCES borrower(id),
    bank_id INTEGER REFERENCES bank(id),
    ...
);
  • Bankalar aynı ismi paylaşır, kimlikleri ayrıdır
  • Banka adı güncellemeleri yalnızca bank tablosunu etkiler
PostgreSQL Veritabanları Oluşturma

Örnek 2: kayıtları birleştirme

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
PostgreSQL Veritabanları Oluşturma

Örnek 2: kayıtları birleştirme

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
PostgreSQL Veritabanları Oluşturma

Örnek 2: kayıtları birleştirme

applicant

id name
1 Jane Simmmons
2 Rick Demps
3 Pam Jones

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
PostgreSQL Veritabanları Oluşturma

Örnek 2: kayıtları birleştirme

applicant

id name
1 Jane Simmmons
2 Rick Demps

borrower

id name
1 Jack Smith
2 Sara Williams
3 Jennifer Valdez
4 Pam Jones
PostgreSQL Veritabanları Oluşturma

Örnek 2: kayıtları birleştirme

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL
);
PostgreSQL Veritabanları Oluşturma

Örnek 2: kayıtları birleştirme

CREATE TABLE borrower (
    id SERIAL PRIMARY KEY,
    name VARCHAR(50) NOT NULL,
    approved BOOLEAN DEFAULT NULL
);
  • approved NULL ise => applicant
  • approved true ise => borrower
  • approved false ise => başvuru reddedildi
PostgreSQL Veritabanları Oluşturma

Neden veriyi normalleştirmeli?

  • Veri çoğaltmayı azaltır
  • Tutarlılığı artırır
  • Organizasyonu iyileştirir
PostgreSQL Veritabanları Oluşturma

Hadi pratik yapalım!

PostgreSQL Veritabanları Oluşturma

Preparing Video For Download...