Лекция · 5.3

Деректер қорын жоспарлау, реляциялық дерекқор

Кітапхана каталогынан керек кітапты неге бірден табасың — бүкіл сөресін түгел қарамай? Себебі каталог АЛФАВИТ БОЙЫНША реттелген «көрсеткіш». Деректер қорында да дәл осындай тездетуші механизм бар — индекс. Бүгін деректер қорын дұрыс ЖОБАЛАУДЫҢ негізгі ұғымдарын — өріс, кілт, индекс — үйренеміз.

Өріс, жазба, индекс

Реляциялық ДҚ өзара байланысқан кестелерден тұрады: кестенің әр жолы БІР объект туралы дерек (мыс. бір клиент), ал бағаны сол объектінің сипатын (телефон нөмірі) қамтиды.

Анықтама
Кестенің бағандары — өрістер (field), жолдары — жазбалар (record) деп аталады. Әр өрістің қайталанбайтын атауы болуы керек.
Анықтама
Индекс — негізгі кестедегі іздеуді тездететін көмекші кесте (кітаптағы алфавиттік көрсеткішке ұқсас).
Есеп (орта): индекс іздеуді қалай тездетеді

Берілді: тегі бойынша индекс жасалған кесте (алфавит бойынша реттелген):

Tegi          Nomer
Nagashybai    1
Ryzymbaev     2
Shynybek      3

Неге жылдам? «Шыныбек» тегін іздегенде, индекстен ЕКІЛІК іздеу арқылы дереу «3» нөмірін табамыз, содан кейін ТЕК 3-жазбаны негізгі кестеден аламыз — бүкіл кестені толық қарап шығудың қажеті жоқ.

Жауабы: индекс арқылы іздеу сызықтық іздеуден әлдеқайда жылдам, әсіресе миллиондаған жазба болғанда.

Бастапқы кілт
Анықтама
Бастапқы (алғашқы) кілт — кестедегі әрбір жазбаны БІРЕГЕЙ анықтайтын өріс. Кестеде кілттің бірдей мәні бар екі жазба болуы МҮМКІН ЕМЕС.

Бастапқы кілт екі тәсілмен жасалады:

ТүріСипаттамасы
Логикалық (табиғи) кілтНақты сипаттама (мыс. төлқұжат нөмірі)
Суррогатты (жасанды) кілтАрнайы қосылған, бірегей бүтін сан (мыс. id)
⚠️
Маңызды ескеру: Аты-жөні мен мекенжай кілт бола алғанымен, іс жүзінде СЕНІМСІЗ — дәл аттас басқа адамдар кездеседі. Сондықтан нақты жобаларда суррогатты (id) кілт қолдану ЖИІ сенімдірек.
Сыртқы кілт
Анықтама
Сыртқы кілт (foreign key) — бір кестенің өрісі, оның мәні БАСҚА кестенің бастапқы кілтіне сілтеме жасайды. Кестелер арасындағы байланысты ұйымдастырады.
Есеп (орта): сыртқы кілттің қызметі

Берілді: үш кесте — Persons (тарихи тұлғалар), Artifacts (өнертабыстар), Images (суреттер). Үшеуінде де бастапқы кілт — id. Artifacts.author және Persons.photo/Artifacts.photo өрістері бар.

Шешуі: Artifacts.authorPersons кестесінің бастапқы кілтіне сыртқы кілт (авторды көрсетеді). Persons.photo мен Artifacts.photoImages кестесінің бастапқы кілтіне сыртқы кілт.

Жауабы: егер Persons кестесінде photo=10 болса, бұл сол тұлғаның суреті Images кестесінде id=10 жазбасында сақталғанын білдіреді.

Деректер қорын жобалау кезеңдері
Алгоритм
1. ДҚ қызметін анықтау (не шешеді).
2. Кестелер құрылымын анықтау (қайталанбауын қадағалау).
3. Өрістерді анықтау.
4. Кілттік өрісті анықтау (әр кестеде бастапқы кілт болуы керек).
5. Кестелер арасындағы байланысты анықтау.
6. Программалық жабдықты (ДҚБЖ) таңдау.
Есеп (орта): жобалау қадамдарын қолдану

Берілді: «Қазақ халқының музыкалық аспаптары» деректер қорын құру керек.

  1. Міндет: аспаптар туралы ақпаратты сақтап, іздеу.
  2. Кесте құрылымы: «Музыкалық аспаптар» кестесі.
  3. Өрістер: аспап атауы, түрі, фотосурет.
  4. Бірінші кілт: аспап коды (бірегей нөмір).

Жауабы: осы төрт қадам арқылы дербес, қайталанбайтын құрылымы бар кесте жобаланады.

🎯 ҰБТ байланысы
Бастапқы мен сыртқы кілттің қызметін ажырата білу маңызды.
1
Бастапқы кілт — ӨЗ кестесінде бірегей; сыртқы кілт — БАСҚА кестенің бастапқы кілтіне сілтейді.
2
Суррогатты кілт (id) логикалық кілттен СЕНІМДІРЕК — атаулар қайталануы мүмкін.
3
Жобалау кезеңдерінің ретін (қызмет→кесте→өріс→кілт→байланыс→ДҚБЖ) жаттау.
Сабақ қорытындысы
  • Өрістер — бағандар, жазбалар — жолдар; индекс іздеуді жеделдетеді.
  • Бастапқы кілт жазбаны бірегей анықтайды: логикалық немесе суррогатты болуы мүмкін.
  • Сыртқы кілт кестелер арасындағы байланысты орнатады.
  • ДҚ жобалау: қызметін анықтау → кесте → өріс → кілт → байланыс → ДҚБЖ таңдау.