Ченемдештирүү камсыз жардам Өткөөл көз карандылыкты кач
Маалымат базасын түзүү менен өткөөл көз карандылыгы себеп бир столдо маанилердин ортосундагы кыйыр байланышы бар иш каранды . Үчүнчү көнүмүшкө (3NF) нормалдаштыруу стандартка жетишүү үчүн, эч кандай өткөөл көз карандылыкты жоюу керек.
Негизи, бир стол колонна аралык тилке аркылуу мамычасына таянат C. дегенди билдирет, Өткөөл көз карандылыгы алардын ортосундагы иш көз каранды болгон (же маалыматтар базасынын тилке) үч же андан көп сыпаттарын талап кылат
бул иш кантип колдонсок болорун карап көрөлү.
Өткөөл Dependency үлгүсү
AUTHORS
Author_ID | Author | китеп | Author_Nationality |
---|---|---|---|
Auth_001 | Орсон Скотт картасы | Эндердин оюну | Кошмо штаттар |
Auth_001 | Орсон Скотт картасы | Эндердин оюну | Кошмо штаттар |
Auth_002 | Маргарет Atwood | Мырзама анын Tale | Канада |
Жогоруда AUTHORS мисалда:
- Book → Author: Бул жерде, китеп бар атрибуттуу Author сыпатын аныктайт. Сиз китеп ысмын билүү болсо, жазуучунун аты-биле алабыз. Бирок, Author бир жазуучу бир нече китептерди жазууга болот, анткени, китеп аныкталган эмес. Мисалы, жазуучунун аты-Орсон Скотт Кард билгендей эле, анткени, биз дагы эле китеп атын билбейм.
- Author → Author_Nationality: Ошо сыяктуу эле, Author атрибуттуу Author_Nationality, бирок мындан башка жол жок аныктайт; биз улуту билгендей эле, анткени, биз жазуучу аныктай алат дегенди билдирбейт.
Бирок бул стол Өткөөл карандылыгын киргизет:
- Book → Author_Nationality: Биз китеп ысмын билүү болсо, анда биз Author колонна аркылуу улутун аныктоого болот.
Оолак болуу Өткөөл көз карандылыгы
Үчүнчү көнүмүшкө камсыз кылуу үчүн, анын Өткөөл көз карандылыкты алып көрөлү.
Биз Authors дасторконунан Book мамыча алып салуу жана өзүнчө Books үстөл түзүү менен баштаса болот:
КИТЕПТЕР
Book_ID | китеп | Author_ID |
---|---|---|
Book_001 | Эндердин оюну | Auth_001 |
Book_001 | Жан Children | Auth_001 |
Book_002 | Мырзама анын Tale | Auth_002 |
AUTHORS
Author_ID | Author | Author_Nationality |
---|---|---|
Auth_001 | Орсон Скотт картасы | Кошмо штаттар |
Auth_002 | Маргарет Atwood | Канада |
Бул аны чечүү беле? Эми биздин көз карандылыкты карап көрөлү:
КИТЕПТЕР стол:
- Book_ID → Book: Book Book_ID көз каранды.
- Бул столдун башка эч көзкаранды бар, ошондуктан, биз макул болуп саналат. Чет өлкөлүк негизги Author_ID байланышы Белгилей кетсек, анын негизги ачкыч Author_ID аркылуу AUTHORS столдун бул стол. Биз Өткөөл көз карандылыгын, мамиле, маалыматтар базалары үчүн негизги дизайнын качууга мамиле түзгөн.
AUTHORS стол:
- Author_ID → Author: Author Author_ID көз каранды.
- Author → Author_Nationality: жарандык укук менен аныкталат болот.
- Author_ID → Author_Nationality: улуту Author_ID тартып Author сыпаты аркылуу аныктоого болот. Биз дагы Өткөөл көз каранды болгон.
Биз бул маалыматтарды нормалдаштыруу үчүнчү дасторкон кошуу керек:
ӨЛКӨЛӨР
Country_ID | мамлекет |
---|---|
Coun_001 | Кошмо штаттар |
Coun_002 | Канада |
AUTHORS
Author_ID | Author | Country_ID |
---|---|---|
Auth_001 | Орсон Скотт картасы | Coun_001 |
Auth_002 | Маргарет Atwood | Coun_002 |
Азыр биз столдор ортолорунда шилтеме чет ачкычтарынын пайдалануу менен, үч үстөл бар:
- Китеп столдун тышкы негизги Author_ID AUTHORS столдун-жылы жазуучу бир китепти шилтемелер.
- AUTHORS столдун чет негизги Country_ID ӨЛКӨЛӨР столдо бир өлкөгө жазуучу шилтемелер.
- бул долбоор дагы бир столдо шилтеме зарылдыгы жок, анткени өлкө жолугушуу үстөлүнө эч кандай чет элдик ачкычы.
Эмне үчүн Өткөөл көз карандылыгы Bad базасы Дизайн Are
3NF камсыз кылууга жардам берүү үчүн өтүүчү Көз качуу мааниси кандай? кайра биринчи дасторкон карап жана ал жараткан маселелерди карап көрөлү:
AUTHORS
Author_ID | Author | китеп | Author_Nationality |
---|---|---|---|
Auth_001 | Орсон Скотт картасы | Эндердин оюну | Кошмо штаттар |
Auth_001 | Орсон Скотт картасы | Жан Children | Кошмо штаттар |
Auth_002 | Маргарет Atwood | Мырзама анын Tale | Канада |
долбоорлоо мындай түрү, мисалы, маалымат аномалиялар жана карама-каршы келип, салым кошо алабыз:
- Эгер эки китеп "акыл-балдар" жок болсо, "Эндердин оюну," жазуучунун "Орсон Скотт Кард" өз улутун базасында толугу менен жок болот.
- Сиз ошондой эле китепти кошуп туруп, маалымат базасын түзүү үчүн жаңы жазуучу кошуу мүмкүн эмес; ал тарабынан аткарылган бир китептин аты жазуучу азырынча жарыялана элек болсо, анда эмне же билбей калдым?
- "Орсон Скотт Кард", анын жарандыгын өзгөрткөн болсо, ал пайда болгон бардык жазуулардын аны өзгөртүүгө туура келет. бир эле туура эмес маалымат алып келиши мүмкүн болгон бир нече жазууларды бар: ага бир нече жазуулар бар кандай берилиштерди киргизүү адам болсо, билген эмес, бир гана жазылган маалыматтарды өзгөрөт?
- Ошондой эле толугу менен жазуучу тийбестен "кулга жомогу" сыяктуу бир китеп жок кыла албайсыз.
Бул эмне үчүн жөн гана бир нече себептер бар нормалдаштыруу жана качуу Өткөөл көз карандылыктар, маалыматтарды коргоо жана ырааттуулугун камсыз кылат.