Маалымат базасы деген эмне?

Мазмуну:

Маалымат базасы деген эмне?
Маалымат базасы деген эмне?
Anonim

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

Чет элдик ачкыч мамиле түзүү үчүн кандай иштейт

Негизги ачкыч таблицадагы ар бир жазууну уникалдуу түрдө аныктайт. Бул көбүнчө таблицадагы биринчи тилке болуп саналган талапкер ачкычынын бир түрү жана анын уникалдуу экенине кепилдик берүү үчүн маалымат базасы тарабынан автоматтык түрдө түзүлүшү мүмкүн. Чет элдик ачкыч - башка таблицадагы дайындарга жазууну байланыштыруу үчүн колдонулган башка талапкер ачкычы (негизги ачкыч эмес).

Мисалы, кайсы мугалим кайсы курсту окутуп жатканын аныктоочу бул эки таблицаны карап көрөлү. Бул жерде, Курстар таблицасынын негизги ачкычы Course_ID болуп саналат. Анын чет өлкөлүк ачкычы Мугалим_ID:

Курс_ID Курстун_аты Мугалимдин_ID
Курс_001 Биология Мугалим_001
Курс_002 Математика Мугалим_002
Курс_003 Англисче Мугалим_003

Курстардагы тышкы ачкыч Мугалимдердеги негизги ачкычка дал келерин көрө аласыз:

Мугалимдин_ID Мугалимдин_аты
Мугалим_001 Кармен
Мугалим_002 Вероника
Мугалим_003 Хорхе

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

Image
Image

Маалымат базасынын мамилелеринин түрлөрү

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

Бир-бир

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

Бирден-көп

Бирден көпкө байланышы бир таблицадагы бир жазууну башка таблицадагы бир нече жазуу менен байланыштырууга мүмкүндүк берет. Кардарлар жана Буйрутмалар жадыбалдары бар маалымат базасы бар компанияны карап көрүңүз.

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

Көптөн-көп

Бул таблицадагы көптөгөн жазуулар башка таблицадагы көптөгөн жазууларга байланыша турган татаал байланыш. Мисалы, биздин бизнеске Кардарлар жана Буйрутмалар жадыбалдары керек болушу мүмкүн, ошондой эле Товарлар жадыбалына да керек болушу мүмкүн.

Кайрадан, Кардарлар менен Буйрутмалар жадыбалынын ортосундагы байланыш бирден көпкө, бирок Буйрутмалар жана Продукциялар таблицасынын ортосундагы мамилени карап көрөлү. Буйрутма бир нече өнүмдөрдү камтышы мүмкүн жана продукт бир нече буйрутма менен байланыштырылышы мүмкүн, анткени бир нече кардар ошол эле өнүмдөрдүн айрымдарын камтыган буйрутма бериши мүмкүн. Мындай мамиле үчүн эң аз дегенде үч таблица керек.

Деректер базасы менен байланыштар эмне үчүн маанилүү?

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

Мугалимдин_ID Мугалимдин_аты Курс
Мугалим_001 Кармен Биология, математика
Мугалим_002 Вероника Математика
Мугалим_003 Хорхе Англисче

Бул дизайн ийкемсиз жана маалымат базасын нормалдаштыруунун биринчи принцибин, Биринчи Кадимки форманы бузат, анда ар бир таблица уячасында бир, дискреттик маалымат болушу керек.

Же балким, 1NF: талабын аткаруу үчүн Кармен үчүн экинчи рекорд кошууну чечтик.

Мугалимдин_ID Мугалимдин_аты Курс
Мугалим_001 Кармен Биология
Мугалим_001 Кармен Математика
Мугалим_002 Вероника Математика
Мугалим_003 Хорхе Англисче

Бул дагы эле начар дизайн, керексиз кайталоону жана берилиштерди киргизүү аномалиясын киргизет, демек, ал дал келбеген маалыматтарга салым кошот. Мисалы, мугалимде бир нече жазуу бар болсо, анда кээ бир маалыматтарды түзөтүү керек болсо, бирок маалыматты түзөтүүнү аткарган адам бир нече жазуу бар экенин түшүнбөй калсачы? Таблицада бир эле адам үчүн ар кандай маалыматтар камтылат, аны аныктоонун же андан качуунун так жолу жок.

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

Сунушталууда: