Normalizing databés anjeun: Kahiji Bentuk Normal

Dua aturan basajan bakal ngabantu normalizing databés anjeun

Mimitina Bentuk Normal (1NF) susunan aturan dasar pikeun database diatur:

Naon aturan ieu hartosna lamun contemplating rarancang praktis database a? Ieu sabenerna cukup basajan.

1. Ngaleungitkeun duplikasi

Aturan kahiji dictates yén kami moal kudu jadi gaduh panulisan data dina baris anu sarua tina méja. Dina komunitas database, konsep ieu disebut salaku atomicity tina méja. Tables anu sasuai jeung aturan ieu bisa disebutkeun atom. Hayu urang neuleuman prinsip ieu ku conto klasik: méja dina database SDM nu nyimpen hubungan manajer-bawahan. Pikeun kaperluan conto urang, urang gé maksakeun aturan bisnis nu unggal manajer bisa mibanda hiji atawa leuwih bawahan bari unggal bawahan mungkin gaduh ngan hiji manajer.

Intuisi, nalika nyieun daptar atawa spreadsheet lagu inpo ieu, urang bisa nyieun hiji méja kalayan widang di handap:

Sanajan kitu, ngelingan aturan kahiji ditumpukeun ku 1NF: Ngaleungitkeun kolom duplicative tina tabel nu sarua. Jelas, nu kolom Subordinate1-Subordinate4 anu duplicative. Candak masihan tur ponder masalah diangkat ku skenario kieu. Mun manajer hiji hijina boga salah bawahan, anu kolom Subordinate2-Subordinate4 téh saukur wasted gudang (a komoditi database mulia). Saterusna, ngabayangkeun kasus dimana manajer a geus boga 4 bawahan - naon kajadian lamun manehna dicokot pagawe sejen? Struktur tabel sakabeh bakal merlukeun modifikasi.

Dina tahap ieu, hiji ide caang kadua biasana lumangsung nepi novices database: Urang teu hayang boga leuwih ti hiji kolom sarta Kami rek ngidinan pikeun jumlah fléksibel gudang data. Hayu urang coba hal kawas kieu:

Katut médan bawahan bakal ngandung sababaraha éntri dina formulir "Maryam Bill, Joe".

Leyuran ieu ngadeukeutan, tapi ogé ragrag pondok tina tanda ka. Kolom bawahan téh masih duplicative sarta non-atom. Naon kajadian nalika urang butuh pikeun nambahkeun atawa nyabut bawahan a? Urang kudu maca jeung nulis sakabéh eusi tabél. Éta teu deal badag di ieu kaayaan, tapi kumaha lamun salah manajer kungsi saratus pagawé? Ogé, éta complicates prosés milih data ti database di queries hareup.

Di dieu hiji méja nu satisfies aturan mimiti 1NF:

Dina hal ieu, unggal bawahan ngabogaan Éntri tunggal, tapi manajer mungkin gaduh sababaraha éntri.

2. Nangtukeun Key primér

Ayeuna, kumaha upami aturan kadua: ngaidentipikasi unggal jejer sareng kolom unik atawa nangtukeun tina kolom (nu tombol primér )? Anjeun bisa nyandak katingal di tabel di luhur sarta nyarankeun pamakéan kolom bawahan salaku konci primér. Kanyataanna, kolom bawahan téh calon alus pikeun konci primér alatan kanyataan yén aturan bisnis urang dieusian yén unggal bawahan mungkin gaduh ngan hiji manajer. Sanajan kitu, data anu kami geus dipilih pikeun nyimpen dina tabél kami ngajadikeun ieu kirang ti idéal leyuran. Naon kajadian lamun urang nyewa pagawe sejen ngaranna Jim? Kumaha urang nyimpen hubungan manajer-bawahan di pangkalan data?

Hadé Éta mun ngagunakeun identifier sabenerna unik (kayaning hiji pagawe ID) salaku konci primér . méja final kami bakal kasampak kawas kieu:

Ayeuna, méja kami aya dina formulir normal mimiti! Lamun remen nuluykeun diajar ngeunaan normalisasi, baca artikel séjén dina séri ieu: