Базасы ченемдештирүү толук Белек көз карандылык

Толук иш карандылыгы бир мамлекет базасы нормалдашуу нормалдаштыруу стандартына ду Экинчи көнүмүшкө (2NF) . Кыскача айтканда, бул биринчи көнүмүшкө (1NF) талаптарына жооп берген, ошондой эле бардык негизги сыпаттары толугу менен баштапкы баскычта апуу көз каранды экенин билдирет.

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

Биринчи көнүмүшкө кыскача

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

Мунун баары ар бир сыпат бир атом баасын кармап керек дегенди билдирет.

Мисалы, төмөнкү жадыбал кызматкери Tina бир даана клетканын эки жерлерде, экөө менен тыгыз байланышта, анткени 1NF менен жооп бербейт:

Биринчи Жөнөкөй келишимдик сактоо
Инспектор орду
ЖАКАН жазган Жакшы Кабар Лос-Анджелес
Тина Лос-Анджелес, Чикаго

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

Биринчи Жөнөкөй түрү сактоо
Инспектор орду
ЖАКАН жазган Жакшы Кабар Лос-Анджелес
Тина Лос-Анджелес
Тина Чикаго

Бирок 1NF дагы маалыматтар менен көйгөйлөрдөн качууга жетиштүү эмес.

Кантип 2NF Full көз карандылыгын камсыз кылуу үчүн иштейт

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

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

Атрибуту А Б баасын аныктайт болсо, биз бул жаза -> B - B А. бул мамилеси жөнүндө апуу көз каранды эмес дегенди билдирет, A B А. көз каранды, ал эми B наркын аныктайт

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

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

Инспектор Бөлүмдөр
EmployeeID Кызматкердин аты DeptID DeptName
ЭБПнын1 ЖАКАН жазган Жакшы Кабар Dept001 финансы
Emp2 Тина Dept003 сатып алуу-сатуу
Emp3 Карлос Dept001 финансы

Бул учурда, employee_name негизги ачкыч EmployeeID көз каранды, ал эми стол, себеби толугу менен көз каранды эмес, DeptName DeptID ордуна көз каранды. Бул жарым-жартылай көз карандылыгы деп аталат.

Бул стол 2NF ылайык болушу үчүн, биз эки берилиштерди бөлүнүп керек:

кызматкерлер
EmployeeID Кызматкердин аты DeptID
ЭБПнын1 ЖАКАН жазган Жакшы Кабар Dept001
Emp2 Тина Dept003
Emp3 Карлос Dept001

Биз кызматкерлери дасторконунан DeptName касиетти алып, жаңы үстөл бөлүм түзүү:

Бөлүмдөр
DeptID DeptName
Dept001 финансы
Dept002 Адам ресурстары
Dept003 сатып алуу-сатуу

Азыр столдор ортосундагы мамилелер, толугу менен көз каранды болуп, же 2NF-жылы.

Эмне үчүн Full Dependency маанилүү

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

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

Биринчи Жөнөкөй түрү сактоо
Инспектор орду
ЖАКАН жазган Жакшы Кабар Лос-Анджелес
Тина Лос-Анджелес
Тина Чикаго

Tina эки рекорд бар. Биз эки бар экенин байкабай бир тактоо болсо, натыйжа карама-каршы маалыматтар болмок.

Же болбосо, биз бул столго бир кызматкерди кошо келсе, бирок биз жери, билбейм? Биз жери бар атрибуттуу NULL баалуулуктарды жол бербейт болсо да, бул жаңы кызматкер кошууга тыюу мүмкүн.

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