Үчүнчү Жөнөкөй түрүндө базасын коюу (3NF)

Үчүнчү көнүмүшкө (3NF) үстүнө куруп тарабынан маалыматтардын бүтүндүгүн колдойт базасын принцип болуп саналат базасы ченемдештирүү негиздери Биринчи көнүмүшкө (1NF) жана экинчи көнүмүшкө (2NF) тарабынан берилген.

Үчүнчү Жөнөкөй түрү талаптар

маалыматтар базасын үчүнчү табигый түрүндө болушу үчүн эки негизги талап бар:

Башталгыч ачыш карандылык жөнүндө

биз бардык мамычалар баштапкы баскычта көз каранды болушу керек экендиги менен эмнени андан ары карап көрөлү.

сөздүн мааниси негизги ачкыч менен дасторконго дагы бир колонна да келип чыккан болушу мүмкүн болсо, анда ал 3NF бузат. бул катардан бир кызматкерлери дасторкон карап көрөлү:

LastName жана FirstName гана EmployeeID маанисине көз каранды болот? Ооба, LastName FirstName көз каранды болот? Жок, анткени LastName мүнөздүү нерсе FirstName баасын сунуштаар элем. LastName-FirstName көз каранды? Жок, кайра, анткени ушуну айтууга болот: бир LastName болушу эмне деп атабайлы, ал FirstName баалуулугун катары айтып бере алган жок. Ошондуктан, бул стол 3NF ылайык болот.

Бирок, бул Унаалар дасторкон карап:

Manufacturer жана модели VehicleID пайда болот - бирок модели унаа модель бир өндүрүүчү менен гана жүзөгө ашырылат, себеби Өндүрүүчү келип мүмкүн. Бул стол дизайн эмес 3NF ылайык, жана, ошондуктан, маалымат аномалиялар алып келиши мүмкүн. Мисалы, сиз даярдоочу моделин тактоо эле өзгөртүүгө мүмкүн киргизүү так.

ал жооп кылуу үчүн, биз башка бир столго кошумча көз каранды мамычаны берилет жана бир чет элдик ачкычын колдонуу менен, аны маалымат керек. Бул эки алып келет:

Унаалар токтому

Төмөндөгү тизмеден, ModelID Models столго чет ачкычы болуп саналат:

Models токтому

Бул жаңы стол тигүүчү моделдерин карталар. Эгер моделине белгилүү бир унаа тактоо кайра алгысы келсе, анда, балким, Унаалар үстөлгө караганда, ушул столдун аны эмне болмок.

3NF моделдик алынган Fields

Бир үстөл туунду талаа болушу мүмкүн - столдун башка катардан негизинде эсептелген бири. Мисалы, уижети тартибинин ушул үстөл карап:

жалпы тыныгуулар 3NF ылайык, себеби ал санын бирдиктин баасын көбөйтүү эмес, баштапкы баскычта толугу менен көз каранды болуу менен алынган болот. Биз үчүнчү нормалдуу түрдө аткаруу үчүн стол, аны жок кылгыла +.

Чынында, ал келип чыгат, анткени, бул маалымат базасын түзүү, аны сактоо үчүн, жакшы.

берилиштер базасына суроо аткарууда Биз жөн эле ал, "чымындан боюнча" күз болот. Мисалы, биз үчүн сандарды жана корутунду алуу үчүн буга чейин бул суроого туура пайдалануу болушу мүмкүн:

SELECT OrderNumber, WidgetOrders жалпы

Биз азыр кийинки суроого туура колдоно аласыз:

SELECT OrderNumber, UnitPrice * WidgetOrders жалпы AS саны

ченемдештирүү эрежелерин бузган жок, ошол эле натыйжаларга жетишүү үчүн.