Дерекқор дегеніміз не? Қолданба жасаушыларға арналған нұсқаулық
Дерекқор — қолданба сақтайтын және оқитын ұйымдастырылған ақпарат қоймасы: оның пайдаланушылары, тапсырыстары, брондаулары, хабарлары. Браузер бетінде ғана сақталған ақпараттан айырмашылығы, дерекқордағы деректер беттің жаңартылғаннан немесе қайта іске қосылғаннан кейін де сақталады, ал қолданбаны пайдаланатындардың бәрі бірдей жазбаларды көреді. Көптеген дерекқорлар деректерді электрондық кестедегі парақтар сияқты кестелерге ұйымдастырады, бірақ деректердің сәйкестігін сақтайтын қатаң ережелермен.
AI көмегімен құрастырғанда неге маңызды
AI арқылы құрастырушылар үшін ең жиі кездесетін тосынсый — сыртқы түрі дайын, бірақ бәрін ұмытып қоятын қолданба. Сіз клиентті қосасыз, бетті жаңартасыз, ал ол жоғалып кетеді. Бұл әдетте қолданба деректерді дерекқорда емес, браузердің жадында сақтағанын білдіреді.
Дерекқор сонымен қатар сіз байқамасаңыз да, ең маңызды шешімдердің көбі тұратын жер:
- Нені жазасыз. Брондаудың күйін сақтамасаңыз, қай брондаулар бас тартылғанын көрсете алмайсыз.
- Олар қалай байланысады. Бір клиенттің көп брондауы болуы ма, әлде бір брондауда көп қызмет болуы ма — бұл бүкіл қолданбаның құрылымын анықтайды.
- Кім нені көре алады. Құпиялылық қателерінің көбі пайдаланушының қай жазбаларды оқи алатынына қатысты.
Дерекқорды өзіңіз жобалаудың қажеті жоқ. Бірақ негіздерін түсіну деректеріңізді анық сипаттауға және мәселелерді ерте байқауға мүмкіндік береді.
Күнделікті ұқсастық
Шағын кеңсенің жақсы ұйымдастырылған картотекасын елестетіңіз.
Әр сөре бір түрдегі нәрсені сақтайды: бір сөре клиенттерге, бір сөре кездесулерге, бір сөре шот-фактураларға. Әр сөрдегі әр папка бірдей пішімде, бірдей толтырылған өрістермен. Әр папканың бірегей нөмірі бар, ал шот-фактура клиентке тиесілі болғанда, оның папкасы клиенттің толық файлын көшірмей-ақ, клиент нөмірін жазып қояды.
Бұл реляциялық дерекқор. Сөрелер — кестелер, папкалар — жолдар, өрістер — бағандар, нөмірлер — негізгі кілттер (primary key), ал басқа папкаға сілтейтін жазбалар — сыртқы кілттер (foreign key). Жақсы кеңсе менеджері ережелерді де сақтайды — күнсіз кездесу жоқ, екі клиенттің бірдей нөмірі жоқ — дерекқор да солай істейді.
Жұмыс мысалы: сұлулық салонының брондау қолданбасы
AI-дан шаш салонына арналған брондау сайтын жасауды сұрадым делік. Ақылға қонымды дерекқорда төрт кесте болар еді.
services
| id | name | duration_minutes | price |
|---|---|---|---|
| 1 | Қиып қырқу | 45 | 40.00 |
| 2 | Бояу | 90 | 95.00 |
staff
| id | name | |
|---|---|---|
| 1 | Сара | sara@example.com |
| 2 | Омар | omar@example.com |
customers
| id | name | phone | |
|---|---|---|---|
| 101 | Лена Парк | lena@example.com | 555-0100 |
bookings
| id | customer_id | service_id | staff_id | starts_at | status |
|---|---|---|---|---|---|
| 5001 | 101 | 1 | 2 | 2026-10-03 14:00 | confirmed |
bookings кестесіне назар аударыңыз. Онда Лена есімі мен телефон нөмірі әр брондауға көшірілмеген; ондағы customer_id = 101. Егер Лена телефон нөмірін өзгертсе, ол бір жерде өзгереді де, әр брондауда жаңасы көрінеді. Бұл реляциялық дерекқордың негізгі идеясы: әр фактіні бір рет сақтап, оған сілтеу.
Дәл осы құрылым пайдалы сұрақтарға жауап береді:
- «Омарға жұма күні бос уақыттар қайсы?» — сол күнгі Омардың брондауларын қараңыз.
- «Бояу қызметтері осы айда қанша табыс әкелді?» — брондауларды қызметтермен біріктіріп, бағаларын қосыңыз.
- «90 күннен бері брондамаған клиенттер кімдер?» — клиенттерді олардың соңғы брондауымен салыстырыңыз.
Ортақ терминдерге түсіндірме
| Термин | Мағынасы |
|---|---|
| Кесте | Бір түрдегі жазбалар жиыны, мысалы клиенттер немесе брондаулар. |
| Жол (жазба) | Кестедегі бір элемент — бір клиент, бір брондау. |
| Баған (өріс) | Әр жолда болатын бір ақпарат, мысалы электрондық пошта немесе баға. |
| Негізгі кілт (primary key) | Әр жолдың бірегей ID-і, әдетте сан немесе кездейсоқ жол. |
| Сыртқы кілт (foreign key) | Басқа кестедегі жолға сілтейтін баған, мысалы брондаудағы customer_id. |
| Схема | Жалпы жобалау: қай кестелер бар, олардың бағандары және байланыстары. |
| Сұраным (query) | Деректерді оқу немесе өзгерту сұранысы, мысалы «ертеңгі барлық брондаулар». |
| SQL | Structured Query Language, реляциялық дерекқорларды сұраудың стандартты тілі. |
| Миграция | Схемаға сақталған, қайталанатын өзгеріс, мысалы баған қосу. |
| Индекс | Бағанда іздеуді жылдамдатады, кітаптың мазмұны сияқты. |
| CRUD | Create, Read, Update, Delete — қолданбалардың деректермен жасайтын төрт негізгі әрекеті. |
| Резервтік көшірме (backup) | Бір нәрсе дұрыс болмаса, қалпына келтіруге болатын деректер көшірмесі. |
Дерекқор түрлері
| Түрі | Деректерді қалай сақтайды | Мысалдар | Не үшін жақсы |
|---|---|---|---|
| Реляциялық (SQL) | Тұрақты бағандары және арасындағы байланыстары бар кестелер | Postgres, MySQL, SQLite | Көптеген бизнес қолданбалар: брондаулар, дүкендер, CRM, SaaS |
| Құжаттық (NoSQL) | Икемді JSON тәрізді құжаттар | MongoDB, Firestore | Жазбадан жазбаға пішіні едәуір өзгеретін деректер |
| Кілт-мән (key-value) | Кілт астында сақталған мән | Redis | Кэштеу, сессиялар сияқты қысқа мерзімді деректер |
Кәсіпкер немесе шағын бизнес алғаш құрастыратын нәрселердің көпшілігі үшін реляциялық дерекқор — қауіпсіз әдепкі таңдау.
Дерекқор қолданбаңыздың қай жерінде тұрады
Келушілер дерекқормен тікелей байланыспайды. Браузердегі бет (фронтенд) деректер үшін сіздің серверге (бэкендке) сұрау жібереді, әдетте API арқылы. Сервер сұраушыны тексереді және рұқсатын тексереді, содан кейін дерекқорды сұрап, сол адам көруі тиіс нәрсені ғана қайтарады.
Бұл ортаңғы қадам маңызды. Егер браузер дерекқорды толық рұқсатпен тікелей сұрай алса, кез келген адам әзірлеуші құралдарын ашып, бәрін оқи алар еді.
Жиі кездесетін қателер мен түсініспеушіліктер
- Деректерді тек браузерде сақтау. Браузердің сақтау орны (мысалы localStorage) бір құрылғыда, бір браузерде тұрады. Ол сүзгіні еске сақтау үшін жақсы, бірақ тапсырыстар үшін жарамайды.
- Бәрін бір кестеге тыға салу. Клиенттің аты, телефоны және қызмет бағасы әр жолға көшірілген бір «брондаулар» кестесі тез шатасып кетеді.
- Құпиясөздерді жай мәтін ретінде сақтау. Құпиясөздер хештелуі керек, оқылатын түрде ешқашан сақталмауы керек. Қараңыз: аутентификация дегеніміз не.
- Деректерге ереже жоқ. Міндетті өрістер мен бірегейлік ережелерісіз күнсіз брондаулар және қайталанатын клиенттер пайда болады.
- Жоюды ескермеу. Клиентті жойғанда оның брондауларын жою керек пе, сақтау керек пе, әлде бөгеу керек пе — шешіңіз.
- Тәжірибе үшін өндірістік деректерді пайдалану. Қауіпті өзгерістерді алдымен қауіпсіз жерде тексеріңіз және резервтік көшірмелерді сақтаңыз.
- Электрондық кестені мәңгілік дерекқор деп ұстау. Электрондық кестелер бастау үшін тамаша, бірақ көп бір мезгілдік пайдаланушыларға және рұқсаттарға төтеп беру қиын. Қараңыз: электрондық кестені қолданбаға қалай айналдыруға болады.
AI құрастырушыңыздан не сұрау керек
- «Мұны браузерде емес, дерекқорда сақта. Қай кестелерді жасайтыныңды айт.»
- «Схеманы қарапайым кесте түрінде көрсет: әр кесте, оның бағандары және олардың қалай байланысатыны.»
- «Бір клиенттің көп брондауы болуы мүмкін; әр брондауда дәл бір қызмет және бір қызметкер болады.»
- «Клиенттердің электрондық поштасы міндетті және бірегей болсын.»
- «Бір қызметкерге бірдей уақытқа екі брондау қабаттаспасын.»
- «Тек кірген иесі барлық брондауларды оқи алсын; клиенттер тек өзінің брондауларын көрсін. Мұны серверде орындат.»
- «Қызметті өшіргенімде өткен брондауларды жоймай, оның орнына қызметті белсенді емес деп белгіле.»
Mythex-та дерекқорлар
Қолданбаңызға деректерді сақтау керек болғанда, Mythex жобаға арнайы Postgres дерекқорын қосады — оны чатта («күту тізімінің тіркелулерін дерекқорға сақта») сұрап немесе /database командасын пайдаланып қосуыңызға болады. Қосылу мәліметтері қолданбаға автоматты түрде беріледі, ал кестелерді агент жасайды. Дерекқор бес минут бос тұрса ұйықтайды, келесі сұрау келгенде оянады, ал жарияланған пайдалану үшін ол оянып тұрған уақыт құрастырудағыдай сол кредит балансынан есептеледі. Ол Free және Pro жоспарларында қолжетімді. Толық мәлімет дерекқор құжаттарында бар, ал қолданба шаблондарында деректерге негізделген бастапқы нұсқалар бар.
Сұрақтар
Дерекқор қарапайым тілмен айтқанда не?
Дерекқор — қолданба жазуы және оқуы мүмкін ретке келтірілген ақпарат қоймасы, мысалы пайдаланушылар, тапсырыстар немесе брондаулар. Тек браузер бетінде сақталатын деректерден айырмашылығы, ол беттің жаңартылғаннан, қайта іске қосылғаннан кейін немесе қолданбаны басқа құрылғыдан ашқанда да сақталып қалады.
Электрондық кесте — бұл дерекқор ма?
Электрондық кесте дәл осындай деректерді сақтай алады, бірақ ол қолданбалар үшін жасалмаған. Нақты дерекқор әр бағанда не сақталатынына ережелер орнатады, кестелерді сенімді байланыстырады, көп адамның бір мезгілде жазуын өңдейді және кімнің нені оқи алатынын басқарады.
SQL және NoSQL дерекқорларының айырмашылығы неде?
SQL (реляциялық) дерекқорлар, мысалы Postgres және MySQL, деректерді анықталған бағандары және байланыстары бар кестелерде сақтайды. NoSQL дерекқорлар, мысалы MongoDB, икемді құжаттарды сақтайды. Көптеген бизнес қолданбалар — брондаулар, CRM, дүкендер — реляциялық моделге жақсы сәйкес келеді.
Қолданбама дерекқор керек пе?
Егер ол адамдар енгізген кез келген нәрсені есте сақтауы керек болса — тіркелулер, тапсырыстар, хабарлар, баптаулар — және оны кейін немесе басқа біреуге көрсетуі керек болса, иә. Деректерді сақтамайтын пішіндері жоқ, тек ақпараттық веб-сайтқа әдетте қажет емес.