Normalizing Database Sampeyan: Formulir Normal Pisanan

Iki loro prasaja aturan bakal mbantu ngowahi basis data

Formulir Normal Pisanan (1NF) ngeset aturan dhasar kanggo basis data sing wis diatur:

Apa aturan kasebut tegese nalika ngrancang desain praktis saka basis data? Iku bener cukup prasaja.

1. Ngilangi Duplikasi

Aturan pisanan ndhikte yen kita kudu ora ngganda data sajrone tabel sing padha. Ing komunitas basis data, konsep iki diarani minangka atom saka meja. Tabel sing miturut aturan kasebut diarani atom. Ayo digali prinsip iki kanthi tuladha klasik: meja sing ana ing basis data sumber daya manungsa sing nyimpen hubungan manajer-bawahan. Kanggo tujuan conto, kita bakal nemtokake aturan bisnis sing saben manajer bisa nduweni siji utawa luwih bawahan nalika saben bawana mung duwe siji pangurus.

Secara intuitif, nalika nggawe dhaptar utawa spreadsheet kanggo nglacak informasi iki, kita bisa nggawe tabel karo kothak ngisor iki:

Nanging, ngelingi aturan pisanan sing ditrapake dening 1NF: Ngilangi kolom duplikat saka tabel sing padha. Cetha, kolom Subordinate1-Subordinate4 minangka duplikat. Njupuk wayahe lan ponder masalah sing diwiwiti dening skenario iki. Yen manajer mung nduweni siji subordinate, kolom Subordinate2-Subordinate4 mung nggawe papan panyimpenan (komoditas database sing larang regane). Salajengipun, mbayangno kasus manajer sing wis nduweni 4 bawahan - apa sing kedadeyan yen dheweke njupuk karyawan liyane? Struktur meja kabeh kudu modifikasi.

Ing titik iki, idea padhang kapindho biasane ana ing basis data anyar: Kita ora pengin duwe luwih saka siji kolom lan kita arep ngidini panyimpenan data sing fleksibel. Ayo nyoba kaya iki:

Lan kolom Bawahan bakal nglebokake entri kanthi "Mary, Bill, Joe."

Solusi iki luwih cedhak, nanging uga kurang saka tandha. Kolom bawahan isih duplikat lan non-atom. Apa sing kedadeyan nalika kita kudu nambah utawa mbusak bawahan? Kita kudu maca lan nulis kabeh isi meja. Iku ora masalah gedhe ing kahanan iki, nanging apa yen siji manajer duwe satus karyawan? Kajaba iku, ana complicates proses milih data saka database ing pitakon mangsa.

Punika wonten meja ingkang nyukupi aturan pertama 1NF:

Ing kasus iki, saben bawahan duwe entri tunggal, nanging manajer bisa duwe sawetara entri.

2. Ngenali Kunci Utama

Saiki, babagan aturan kaping kalih: ngenali saben baris kanthi kolom unik utawa set kolom ( kunci primer )? Sampeyan bisa uga ndeleng tabel ing ndhuwur lan suggest nggunakake kolom bawahan minangka kunci utama. Nyatane, kolom bawahan kasebut minangka calon sing apik kanggo kunci utama amarga nyatane aturan bisnis kasebut kasebut saben bawahan mung nduweni siji manajer. Nanging, data sing wis dipilih kanggo nyimpen ing tabel iki nggawe solusi kurang becik. Apa sing kedadeyan yen kita nyewa karyawan liyane sing jenenge Jim? Kepiye cara nyimpen hubungan manajer-bawahan ing basis data?

Sing paling apik nggunakake pengenal sing bener unik (kayata ID pegawe) minangka kunci utama . Tabel final bakal katon kaya iki:

Saiki, Tabel kita ana ing wangun normal pisanan! Yen sampeyan pengin nerusake sinau babagan normalisasi, maca artikel liya ing seri iki: