Ƙaddamar da Database a Dokar Na Uku (3NF)

Na'urar al'ada na uku (3NF) shine ka'idodin tushe wanda ke goyan bayan amincin bayanan ta hanyar ginawa akan ka'idodin daidaitattun bayanai da aka samar da Formal Formal Form (1NF) da na biyu na al'ada (2NF).

Dokokin Na'urorin Uku na Uku

Akwai wasu bukatun guda biyu don bayanai don zama na uku na al'ada:

Game da Farfesa na Farko

Bari mu kara zurfafa abin da muke nufi da cewa dukkan ginshiƙan dole ne su dogara ne akan maɓallin farko.

Idan ana iya samun darajar shafi daga maɓallin maɓallin farko da kuma wani shafi a cikin teburin, ya keta 3NF. Yi la'akari da tebur ma'aikata tare da wadannan ginshiƙai:

Shin duka Sunan Sunan na Farko da FirstName sun dogara kawai akan darajar ma'aikaci? Shin, LastName zai dogara ne akan FirstName? A'a, saboda babu wani abu a cikin LastName zai ba da shawara na FirstName. Shin FirstName na iya dogara da Sunan Sunan? Babu kuma, saboda wannan gaskiya ne: duk abin da Sunan Lissafi zai iya kasancewa, ba zai iya ba da alamar game da darajar FirstName ba. Saboda haka, wannan tebur ne mai yarda 3NF.

Amma ka yi la'akari da wannan matakan Vehicles:

Mai sana'a da samfurin na iya samo daga VehicleID - amma samfurin zai iya samuwa daga Mai sana'a saboda samfurin motar kawai ya sanya shi kawai ta hanyar mai sana'a. Wannan zane-zane ba shi da yarda 3NF, kuma yana iya, sabili da haka, ya haifar da anomalies bayanai. Alal misali, za ka iya sabunta mai sana'a ba tare da sabunta samfurin, gabatar da rashin kuskure ba.

Don tabbatar da shi, muna buƙatar matsawa ɗayan ƙarin shafi zuwa ɗayan kuma muyi la'akari ta amfani da maɓallin waje. Wannan zai haifar da tebur biyu:

Vehicles Table

A cikin tebur da ke ƙasa, ModelID ita ce maɓallin kewayawa ga Tables masu gada:

Lambobin Kayan

Wannan sabon tsarin taswirar ma'adinan don masana'antun. Idan kana so ka sabunta duk wani abin hawa da aka sani game da samfurin, za ka yi a cikin tebur ɗin, maimakon a cikin tebur Vehicles.

Kasashen da aka samu a cikin 3NF Model

Tebur zai iya ƙunshi filin da aka samo - wanda aka lissafta bisa wasu ginshiƙai a cikin tebur. Misali, la'akari da wannan tebur na umarnin widget din:

Kundin ya karya ka'idar 3NF saboda ana iya samuwa ta hanyar ninka farashin naúrar ta hanyar yawaita, maimakon zama cikakken dogara ga maɓallin farko. Dole ne mu cire shi daga teburin don biyan tsari na uku.

A gaskiya ma, tun da aka samo shi, ya fi kyau kada ku ajiye shi a cikin database ba.

Za mu iya ƙidaya shi "a kan tashi" lokacin yin tambayoyin bayanan yanar gizo. Alal misali, ƙila mu yi amfani da wannan tambaya a baya don dawo da lambobin sarrafawa da cikakkun bayanai:

SANTA SANTA, KASHI daga WidgetOrders

Zamu iya amfani da wannan tambaya:

SANTA SANTA, Ƙungiya ɗaya * Da yawa AS Total FROM WidgetOrders

don cimma irin wannan sakamakon ba tare da keta dokoki na daidaitawa ba.