Кіріспе
Есептеудегі деректерді ұйымдастырылған жинағы – есептеу тұжырымдамасы.
the computing concept
Есептеуде деректер қоры – деректер базасын басқару жүйесінің (ДББС) пайдалануына негізделген деректердің ұйымдастырылған жинағы немесе деректерді сақтау түрі. ДББС – соңғы пайдаланушылармен, қосымшалармен және деректер қорының өзімен өзара әрекеттесетін бағдарламалық қамтамасыз ету, деректерді жинау және талдау үшін қолданылады. ДББС сонымен қатар деректер қорын басқаруға қажетті негізгі мүмкіндіктерді қамтиды. Деректер қорының, ДББС-тің және оған байланысты қосымшалардың жиынтығы деректер қоры жүйесі деп аталады. Көбінесе "деректер қоры" термині ДББС, деректер қоры жүйесі немесе деректер қорымен байланысты қосымшаны білдіру үшін кең мағынада қолданылады. Кіші деректер қорлары файлдық жүйеде сақталуы мүмкін, ал үлкен деректер қорлары компьютерлік кластерлерде немесе бұлтты сақтау орындарында орналастырылады. Деректер қорының дизайны формальды техникалар мен практикалық мәселелерді қамтиды, оның ішінде деректерді модельдеу, тиімді деректерді көрсету және сақтау, сұрату тілдері, құпиялы деректердің қауіпсіздігі мен құпиялылығы, сондай-ақ таратылған есептеу мәселелері, оның ішінде бір уақытта қол жеткізуді және қателерге төзімділікті қамтамасыз ету. Компьютер ғалымдары деректерді басқару жүйелерін олар қолдайтын деректер моделіне сәйкес жіктеуі мүмкін. 1980-ші жылдары реляциялық деректер қорлары басымдыққа ие болды. Олар деректерді кестелер тізбегіндегі қатарлар мен бағандар түрінде модельдейді және көпшілігі деректерді жазу және сұрау үшін SQL-ді пайдаланады. 2000-ші жылдары реляциялық емес деректер қорлары танымал болды, олар әртүрлі сұрату тілдерін қолданғандықтан NoSQL деп аталды.
Тарих
Деректер қорының және олардың тиісті ДБСҚ-ның (Деректерді басқару жүйесінің) мөлшері, мүмкіндіктері мен өнімділігі экспоненциалды түрде өсті. Бұл өнімділіктің артуы процессорлар, компьютерлік жад, компьютерлік сақтағыштар және компьютерлік желілер саласындағы технологиялық прогреске байланысты болды. Деректер қорының түсінігі магниттік дискілер сияқты тікелей қолжетімді сақтау орталарының пайда болуымен мүмкін болды, олар 1960 жылдардың ортасында кеңінен қолжетімді болды; алдыңғы жүйелер магниттік лентадағы деректерді тізбекті түрде сақтауға сүйенді. Деректер қоры технологиясының кейінгі дамуын деректер моделі немесе құрылымы бойынша үш кезеңге бөлуге болады: навигациялық, SQL/реляциялық және реляциялықтан кейінгі. Екі негізгі ерте навигациялық деректер моделі – иерархиялық модель және CODASYL моделі (желілік модель). Бұл модельдер бір жазбадан екіншісіне қатынастарды іздеу үшін көрсеткіштерді (көбінесе физикалық дискінің мекенжайларын) пайдаланумен сипатталды. 1970 жылы Эдгар Ф. Кодд ұсынған реляциялық модель бұл дәстүрден бас тартып, қолданбалар сілтемелерді орындаудың орнына деректерді мазмұны бойынша іздеуі керек деп талап етті. Реляциялық модель әрқайсысы әртүрлі нысандар үшін қолданылатын тізімдер сияқты кестелер жиынтығын қолданады. Компьютерлік аппараттық құралдар тек 1980 жылдардың ортасында ғана реляциялық жүйелерді (ДБСҚ және қолданбаларды) кеңінен енгізуге жеткілікті қуатты болды. Алайда, 1990 жылдардың басында реляциялық жүйелер барлық ірі масштабты деректерді өңдеу қолданбаларында басымдыққа ие болды және олар осы күйінде қалды: IBM Db2, Oracle, MySQL және Microsoft SQL Server ең көп ізделінетін ДБСҚ. Реляциялық модель үшін басым деректер қоры тілі, стандартталған SQL, басқа деректер модельдері үшін деректер қоры тілдеріне әсер етті. Объектілік деректер қоры 1980 жылдары нысан-реляциялық келеспессіздіктің ыңғайсыздығын жою үшін жасалды, бұл «реляциялықтан кейінгі» терминінің пайда болуына және гибридтік нысан-реляциялық деректер қорының дамуына әкелді. 2000 жылдардың соңында реляциялықтан кейінгі деректер қорының келесі буыны NoSQL деректер қоры ретінде танылды, ол жылдам кілт-мәнді сақтау орындарын және құжатқа бағытталған деректер қорын енгізді. «Келесі буын» деп аталатын бәсекелес NewSQL деректер қоры реляциялық/SQL моделін сақтай отырып, коммерциялық түрде қол жетімді реляциялық ДБСҚ-мен салыстырғанда NoSQL-дің жоғары өнімділігіне қол жеткізуге бағытталған жаңа іске асыруларды ұсынды.
1970-ші жылдар, реляциялық ДҚББ
Эдгар Ф. Кодд Калифорния штатының Сан-Хосе қаласында IBM-де жұмыс істеді, олардың бір бөлімшесінде, ол негізінен қатты дискілер жүйесін әзірлеуге қатысты. Ол CODASYL тәсілінің навигациялық моделіне, әсіресе "іздестіру" мүмкіндігінің болмауына наразы еді. 1970 жылы ол деректер базасын құрудың жаңа тәсілін сипаттайтын бірқатар мақалалар жазды, олар ақырында "Үлкен ортақ деректер қоймалары үшін реляциялық модель" деген маңызды жаңалыққа әкелді. Бұл мақалада ол үлкен деректер базасын сақтау және онымен жұмыс істеудің жаңа жүйесін сипаттады. CODASYL-дегідей, еркін пішіндегі жазбалардың тізбегіне сақталатын жазбалардың орнына, Коддтың идеясы деректерді бірнеше "кестелер" ретінде ұйымдастыру болды, әр кесте әртүрлі нысан үшін пайдаланылады. Әрбір кестеде нысанның атрибуттарын қамтитын белгілі бір саны бағандар болады. Әрбір кестедегі бір немесе бірнеше бағандар негізгі кілт ретінде белгіленеді, олар арқылы кестедегі қатарларды бірегей анықтауға болады; кестелер арасындағы сілтемелер әрқашан осы негізгі кілттерді, дискілік мекенжайларды емес, пайдаланады, ал сұраныстар осы кілттік қатынастарға негізделген кестелерді қосады, реляциялық есептеудің математикалық жүйесіне негізделген операциялар жиынтығын қолдана отырып (модель осы жүйеден атын алған). Деректерді нормаланған кестелерге (немесе қатынастарға) бөлу, әрбір "фактінің" бір рет сақталуын қамтамасыз етуді мақсат етеді, осылайша жаңарту операцияларын жеңілдетуге болады. Көріністер деп аталатын виртуалды кестелер әртүрлі пайдаланушылар үшін деректерді әртүрлі форматта көрсетуге мүмкіндік береді, бірақ көріністерді тікелей жаңартуға болмайды. Кодд модельді анықтау үшін математикалық терминдерді қолданды: кестелер, қатарлар және бағандар емес, қатынастар, топтамалар және домендер. Қазіргі таныс терминология алғашқы іске асырулардан келді. Кейін Кодд практикалық іске асырудың модельдің математикалық негіздерінен ауытқуға бейімділігін сынады. Кестелер арасындағы қатынастарды көрсету үшін дискілік мекенжайлардың орнына негізгі кілттерді (пайдаланушыға бағытталған идентификаторларды) қолданудың екі негізгі себебі болды. Инженерлік тұрғысынан алғанда, бұл кестелерді қымбат деректер қорын қайта ұйымдастырусыз жылжытуға және өлшемдерін өзгертуге мүмкіндік берді. Бірақ Коддты семантикадағы айырмашылық көбірек қызықтырды: нақты идентификаторларды қолдану жаңарту операцияларын анық математикалық анықтамалармен анықтауға мүмкіндік берді, сонымен қатар сұраныс операцияларын бірінші реттік предикаттық есептеудің қалыптасқан саласының тұрғысынан анықтауға мүмкіндік берді; өйткені бұл операциялардың анық математикалық қасиеттері бар, сұраныстарды дәлелдеуге болатын дұрыс жолдармен қайта жазуға болады, бұл сұраныс оптимизациясының негізі болып табылады. Иерархиялық немесе желілік модельдермен салыстырғанда экспрессивтілік жоғалмайды, бірақ кестелер арасындағы байланыстар енді соншалықты анық емес. Иерархиялық және желілік модельдерде жазбалардың күрделі ішкі құрылымы болуы мүмкін. Мысалы, қызметкердің жалақы тарихы қызметкер жазбасында "қайталанатын топ" ретінде көрсетілуі мүмкін. Реляциялық модельде нормалдау процесі мұндай ішкі құрылымдарды бірнеше кестеде сақталатын деректермен, олар тек логикалық кілттермен байланыстырылған, алмастыруға әкелді. Мысалы, деректер базасы жүйесін пайдаланушылар туралы ақпаратты, олардың атын, кіру деректерін, әртүрлі мекенжайларын және телефон нөмірлерін бақылау үшін жиі қолданылады. Навигациялық тәсілде барлық осы деректер бір өзгермелі ұзындығы бар жазбаға орналастырылады. Реляциялық тәсілде деректер пайдаланушы кестесіне, мекенжай кестесіне және телефон нөмірі кестесіне (мысалы) нормалданады. Бұл қосымша кестелерде жазбалар тек мекенжай немесе телефон нөмірлері берілген жағдайда ғана құрылады. Дискілік мекенжайлардың орнына логикалық идентификаторларды қолдана отырып, қатарларды/жазбаларды анықтаумен қатар, Кодд бірнеше жазбалардан деректерді жинақтау әдісін өзгертті. Қолданбалардан бір уақытта бір жазбаны сілтемелерді аралап, деректерді жинауды талап етудің орнына, олар қандай деректерді іздеу керектігін көрсететін декларативтік сұраныс тілін қолданады, бірақ оны табу керек жолды емес. Деректерге тиімді кіру жолын табу қолданбалы бағдарламалаушының емес, деректер базасын басқару жүйесінің жауапкершілігіне айналды. Бұл процесс, сұраныс оптимизациясы деп аталады, сұраныстар математикалық логиканың терминдерімен берілгеніне байланысты. Коддтың мақаласын Берклидегі екі адам, Эжен Вонг және Майкл Стоунбрейкер қолға алды. Олар географиялық деректер базасы жобасы үшін бұрын бөлінген қаражатты және студент бағдарламашыларды қолданып, INGRES деп аталатын жобаны бастады. 1973 жылдан бастап, INGRES өзінің алғашқы сынақ өнімдерін ұсынды, олар 1979 жылы кеңінен қолдануға дайын болды. INGRES көптеген жағынан System R-ға ұқсас болды, соның ішінде деректерге кіру үшін "тіл" пайдаланылды, ол QUEL деп белгіленді. Уақыт өте келе, INGRES жаңа SQL стандартына көшті. IBM өзі реляциялық модельдің бір сынақ және бір өндірістік іске асыруын жасады, PRTV және Business System 12, екеуі де қазір тоқтатылды. Honeywell Multics үшін MRDS жазды, ал қазір екі жаңа іске асыру бар: Alphora Dataphor және Rel. Басқа көптеген ДБС іске асырулары, әдетте реляциялық деп аталады, шындығында SQL ДБС-тері болып табылады. 1970 жылы Мичиган университеті D. L. Childs-тың жиындық теориялық деректер моделіне негізделген MICRO ақпаратты басқару жүйесін әзірлеуді бастады. MICRO АҚШ Еңбек департаменті, АҚШ Қоршаған ортаны қорғау агенттігі және Альберта университеті, Мичиган университеті және Уэйн мемлекеттік университетінің зерттеушілерімен үлкен деректер жиындықтарын басқару үшін пайдаланылды. Ол Мичиган терминалдық жүйесін пайдалана отырып, IBM негізгі компьютерлерінде жұмыс істеді. Жүйе 1998 жылға дейін өндірісте болды.
Интегралды тәсіл
1970 және 1980 жылдары интеграцияланған аппараттық және бағдарламалық құралдармен деректер базасы жүйелерін құруға әрекеттер жасалды. Бұл тәсілдің негізгі идеясы – мұндай интеграция арқылы төмен құнмен жоғары өнімділікке қол жеткізу. Мысалдарға IBM System/38, Teradata-ның бастапқы өнімдері және Britton Lee, Inc. деректер базасы машинасы жатады. Деректерді басқаруға аппараттық қолдау көрсетудің тағы бір жолы – ICL CAFS үдеткіші, ол бағдарламаланатын іздеу мүмкіндіктері бар аппараттық дискі контроллері болды. Ұзақ мерзімді перспективада бұл күш-жігер көбінесе сәтсіз аяқталды, себебі арнайы деректер базасы машиналары жалпы мақсаттағы компьютерлердің қарқынды дамуымен және прогресімен қадамдаса алмады. Сондықтан қазіргі деректер базасы жүйелерінің көпшілігі жалпы мақсаттағы аппараттық құралдарда жұмыс істейтін бағдарламалық жүйелер болып табылады, олар жалпы мақсаттағы компьютерлік деректерді сақтауды пайдаланады. Дегенмен, бұл идея Netezza және Oracle (Exadata) сияқты кейбір компаниялар тарапынан белгілі бір қолданбаларда әлі де қолданылуда.
1970-ші жылдардың аяғы, SQL DBMS
IBM 1970-ші жылдардың басында Коддтың тұжырымдамаларына негізделген прототиптік жүйеде System R ретінде жұмыс істей бастады. Бірінші нұсқа 1974/75 жылдары дайын болды, содан кейін деректер бір жазба үшін барлық деректерді (кейбіреуі міндетті емес) бір үлкен "блокта" сақтаудың қажеті жоқ, сондықтан деректер бөлінетін көптеген кестелік жүйелер бойынша жұмыс басталды. Кейінгі көп пайдаланушы нұсқалары 1978 және 1979 жылдары клиенттермен сыналып көрiлдi, сол кезде стандартталған сұраныс тілі – SQL – қосылды. Коддтың идеялары CODASYL-ге қарағанда тиімді және жоғары екенін көрсетті, бұл IBM-ді SQL/DS деп аталатын System R-дің толыққанды өндірістік нұсқасын және кейіннен Database 2 (IBM Db2) әзірлеуге итермеледі. Ларри Эллисонның Oracle деректер қоры (немесе, қысқасы, Oracle) IBM-нің System R туралы жарияланымдарына негізделген басқа бағытта дамыды. Oracle V1 нұсқаларының жұмысы 1978 жылы аяқталса да, Эллисон 1979 жылы Oracle Version 2 нұсқасын нарыққа шығарғанға дейін IBM-ді озып кетпеді. Stonebraker INGRES-тен алған тәжірибесін пайдаланып, Postgres деп аталатын жаңа деректер қорын жасады, ол қазір PostgreSQL деп белгілі. PostgreSQL көбінесе жаһандық маңызды міндеттерді атқаратын қосымшалар үшін қолданылады (ұйымдар мен ақпараттық домендік атаулар тізілімдері оны негізгі деректер қоймасы ретінде пайдаланады, сондай-ақ көптеген ірі компаниялар мен қаржы институттары да қолданады). Швецияда Коддтың мақаласы оқылды және 1970-ші жылдардың ортасында Уппсала университетінде Mimer SQL әзірленді. 1984 жылы бұл жоба тәуелсіз кәсіпорынға біріктірілді. Тағы бір дерек моделі – entity-relationship моделі 1976 жылы пайда болды және деректер базасын жобалауда танымал болды, себебі ол бұрынғы реляциялық модельге қарағанда түсініктірек сипаттамаға баса назар аударды. Кейіннен, entity-relationship құрылымдары реляциялық модель үшін деректерді модельдеу құралы ретінде қайта жаңартылды және екеуінің арасындағы айырмашылық маңызсыз болды.
1980 жылдар, үстел үстінде
1980 жылдары үстел компьютерлерінің дәуірі басталды. Жаңа компьютерлер пайдаланушыларға Lotus 1 2 3 сияқты электрондық кестелер мен dBASE сияқты деректер базасы бағдарламалық қамтамасыздарын ұсынды. dBASE өнімі жеңіл салмақты және кез келген компьютер пайдаланушысына бірден түсінікті болды. dBASE бағдарламасын жасаған К. Уэйн Ратлифф: «dBASE, BASIC, C, FORTRAN және COBOL сияқты бағдарламалардан соңғы жұмыстардың көп бөлігі бұрыннан жасалғандықтан ерекшеленеді. Деректерді өңдеуді пайдаланушы емес, dBASE жүзеге асырады, сондықтан пайдаланушы файлдарды ашу, оқу және жабу, жадты бөлу сияқты күрделі мәселелермен айналыспай, не істеп жатқанына назар аудара алады» деді. dBASE 1980 және 1990 жылдардың басында ең көп сатылған бағдарламалық қамтамасыздардың бірі болды.
1990 жылдар, объектке бағдарланған
1990 жылдары объектіге бағытталған бағдарламалаудың дамуымен қатар, әртүрлі деректер базаларындағы деректерді өңдеу тәсілдері де өсті. Бағдарламашылар мен дизайнерлер өз деректер базаларындағы деректерді объектілер ретінде қарастыра бастады. Яғни, егер адам туралы деректер деректер базасында сақталса, онда оның мекенжайы, телефон нөмірі және жасы сияқты атрибуттары енді осы адамға тиесілі болып саналады, ал бұрын олар бөлек деректер ретінде қарастырылатын. Бұл деректер арасындағы байланыстарды жекелеген өрістерге емес, объектілер мен олардың атрибуттарына қатыстыруға мүмкіндік береді. "Объекті-реляциялық үйлесімсіздік" термині бағдарламаланған объектілер мен деректер базасы кестелері арасындағы аударманың қиындығын сипаттайды. Объектілік деректер базалары және объекті-реляциялық деректер базалары осы мәселені объектіге бағытталған тілді (кейде SQL-ге қосымша ретінде) ұсыну арқылы шешуге тырысады, оны бағдарламашылар таза реляциялық SQL-ге балама ретінде қолдана алады. Бағдарламалау тарапынан, объекті-реляциялық бейнелеу (ORM) деп аталатын кітапханалар осы мәселені шешуге көмектеседі.
2000-шы жылдар, NoSQL және NewSQL
XML деректер қоры – XML құжатының атрибуттарына негізделген сұрау салуға мүмкіндік беретін құрылымдық құжатқа бағытталған деректер қорының түрі. XML деректер қоры көбінесе деректерді құжаттар жинағы ретінде қарастыру ыңғайлы болған және құрылымы өте икемдіден қатаңға дейін өзгеріп отыруы мүмкін қолданбаларда қолданылады: мысалдарға ғылыми мақалалар, патенттер, салық есептемелері және жеке құрамдық мәліметтер жатады. NoSQL деректер қоры көбінесе өте жылдам, белгілі бір кесте схемаларын қажет етпейді, денормализацияланған деректерді сақтау арқылы қосылу операцияларынан аулақ салады және көлденең масштабтауға арналған. Соңғы жылдары жоғары бөлінуге төзімділікпен, кеңінен таралған деректер қорына сұраныс артып, бірақ CAP теоремасына сәйкес, таратылған жүйе бір уақытта тұрақтылық, қолжетімділік және бөлінуге төзімділік кепілдіктерін қамтамасыз ете алмайды. Таратылған жүйе осы кепілдіктердің кез келген екеуін бір уақытта орындай алады, бірақ барлығын емес. Осы себепті көптеген NoSQL деректер қоры деректердің тұрақтылығын төмендету арқылы қолжетімділік пен бөлінуге төзімділік кепілдіктерін қамтамасыз ету үшін «соңғы сәйкестік» деп аталатын әдіс қолданады. NewSQL – бұл SQL-ді қолдана отырып және дәстүрлі деректер қоры жүйесінің ACID кепілдіктерін сақтай отырып, онлайн транзакцияларды өңдеу (оқу-жазу) жүктемелері үшін NoSQL жүйелерінің сол деңгейдегі өнімділігін қамтамасыз етуді мақсат ететін қазіргі заманғы реляциялық деректер қорының класы.
Пайдалану жағдайлары
Деректер базасы ұйымдардың ішкі жұмысын қолдауға, сондай-ақ клиенттермен және жеткізушілермен онлайн әрекеттесуді қамтамасыз етуге пайдаланылады (Кәсіпорындық бағдарламалық құралдарды қараңыз). Деректер базасы әкімшілік ақпаратты, сонымен қатар инженерлік деректер немесе экономикалық модельдер сияқты арнайы деректерді сақтау үшін қолданылады. Мысалдарға компьютерлендірілген кітапхана жүйелері, авиабилеттерді брондау жүйелері, компьютерлендірілген запбөлшектер тізімі жүйелері және веб-сайттарды веб-беттер жиынтығы ретінде деректер базасында сақтайтын көптеген контентті басқару жүйелері жатады.
Қолдану
Деректер базасымен сыртқы өзара әрекеттесу деректерді басқару жүйесімен (ҚБЖБ) байланыс жасайтын қолданба бағдарламасы арқылы жүзеге асырылады. Бұл, пайдаланушыларға SQL сұраныстарын мәтіндік немесе графикалық түрде орындауға мүмкіндік беретін деректер базасы құралынан бастап, ақпаратты сақтау және іздеу үшін деректер базасын пайдаланатын веб-сайтқа дейін болуы мүмкін.
Қолданбалық бағдарлама интерфейсі
Бағдарламашы деректер базасымен (кейде деректер көзі деп аталады) өзара әрекеттесуді қолданбалық бағдарлама интерфейсі (API) немесе деректер базасы тілі арқылы бағдарламалайды. Таңдалған нақты API немесе тілді ДБЖС (Деректерді басқару жүйесі), мүмкін, алдын ала өңдеуші немесе байланыстырушы API арқылы қолдауы керек. Кейбір API-лер деректер базасынан тәуелсіз болуға тырысады, ODBC оның кең таралған мысалы. Басқа дамыған API-лерге JDBC және ADO.NET кіреді.
Сақтау
Деректер қорын сақтау – деректер қорының физикалық түрінің контейнері. Ол деректер базасы архитектурасындағы ішкі (физикалық) деңгейді құрайды. Сондай-ақ, қажет болған жағдайда ішкі деңгейден тұжырымдық және сыртқы деңгейді қайта құру үшін қажетті барлық ақпаратты (мысалы, метадеректер, «деректер туралы деректер» және ішкі деректер құрылымдары) қамтиды. Деректер қоры цифрлық нысан ретінде үш түрлі ақпаратты қамтиды: деректер, құрылым және семантика. Деректер қорының болашақта сақталуы мен ұзақ мерзімді қолданылуы үшін осы үш қабатты дұрыс сақтау қажет. Деректерді тұрақты сақтау әдетте деректер базасының қозғалтқышының, басқаша айтқанда «сақтау қозғалтқышының» жауапкершілігінде болады. DBMS әдетте негізгі операциялық жүйе арқылы қол жеткізеді (көбінесе операциялық жүйелердің файлдық жүйелері сақтау құрылымын ұйымдастыру үшін аралық құрал ретінде қолданылады), бірақ сақтау қасиеттері мен конфигурация параметрлері DBMS-тің тиімді жұмыс істеуі үшін маңызды, сондықтан деректер базасының әкімшілері оларды қатаң бақылайды. Жұмыс істеп тұрған кезде DBMS әрқашан бірнеше сақтау түрінде орналасқан деректер қорына ие болады (мысалы, жад және сыртқы сақтау). Деректер қорының деректері мен қосымша қажетті ақпарат, көбінесе үлкен көлемде, биттерге түрлендіріледі. Деректер әдетте тұжырымдық және сыртқы деңгейлерде көрінетін түрінен мүлдем өзгеше құрылымдарда сақталады, бірақ пайдаланушылар мен бағдарламаларға қажет болған кезде осы деңгейлерді қалпына келтіруді (мүмкіндігінше жақсы) оңтайландыруға, сондай-ақ деректерден қосымша ақпаратты есептеуге (мысалы, деректер қорына сұрақтар жіберген кезде) бағытталған тәсілдермен сақталады. Кейбір DBMS деректерді сақтау үшін қолданылған таңба кодтамасын көрсетуге мүмкіндік береді, сондықтан бір деректер қорында бірнеше кодтама қолданылуы мүмкін. Сақтау қозғалтқышы деректер моделін сериалдау үшін әртүрлі төменгі деңгейдегі деректер базасын сақтау құрылымдарын пайдаланады, осылайша оны таңдалған ортаға жазуға болады. Орындалу жылдамдығын арттыру үшін индекстеу сияқты техникалар қолданылуы мүмкін. Көбінесе сақтау қатарға бағдарланған болады, бірақ бағанға бағдарланған және корреляциялық деректер қоры да бар.
Материалдық көзқарастар
Көп жағдайда өнімділікті арттыру үшін сақтаудың қосымша көшірмесі пайдаланылады. Көрінетін мысал – жиі қолданылатын сыртқы көріністерді немесе сұрау нәтижелерін қамтитын материалдық көріністерді сақтау. Мұндай көріністерді сақтау, оларды әр қолданылған сайын қайта есептеуге кететін қымбатты еңбекті үнемдейді. Материалдық көріністердің кемшіліктері – бастапқы деректер базасы жаңарып жатқанда оларды синхронды ұстау үшін жаңарту кезінде туындайтын қосымша шығындар және сақтаудың қосымша көшірмесіне кететін шығын.
Көшіру
Кейде деректер қоры деректер базасы объектілерін көшіру арқылы (бір немесе бірнеше данасы бар) сақтаудың артықшылығын пайдаланады. Бұл деректерге қолжетімділікті арттыру үшін жасалады (бір деректер базасының объектісіне бір мезгілде көптеген пайдаланушының кіру жылдамдығын арттыру және таратылған деректер базасының ішінара бұзылу жағдайында сенімділікті қамтамасыз ету үшін). Көшірілген объектіні жаңарту деректердің барлық даналарымен синхрондалуы керек. Көп жағдайда, бүкіл деректер қоры көшіріледі.
Виртуализациялау
Деректерді виртуализациялау арқылы қолданылатын деректер бастапқы орналасқан жерінде қалады және әртүрлі көздерден талдау жасауға мүмкіндік беретін дереу қол жеткізу құрылады. Бұл әртүрлі платформалардан деректерді біріктіру кезінде туындайтын үйлесімділік мәселелерін шешуге, бұрмаланған деректерден болатын қателерді азайтуға және ең жаңа деректердің қолданылуын қамтамасыз етуге көмектеседі. Сонымен қатар, жеке ақпаратты қамтитын жаңа деректер базасын жасаудан аулақ болу құпиялылық талаптарын орындауды жеңілдетеді. Алайда, деректерді виртуализациялау кезінде деректердің жергілікті көшірмесі болмайтындықтан, барлық қажетті дерек көздеріне қосылыс үздіксіз жұмыс істеуі тиіс, бұл осы тәсілдің басты кемшіліктерінің бірі.
Қауіпсіздік
Деректер қорының қауіпсіздігі – деректер қорының мазмұнын, оның иелерін және пайдаланушыларын қорғаудың барлық түрлі аспектілерін қамтиды. Ол деректер қорын қасақана түрде рұқсатсыз пайдаланудан бастап, рұқсатсыз тұлғалардың (мысалы, адам немесе компьютерлік бағдарлама) кездейсоқ деректерге қол жеткізуіне дейін қорғауды қамтиды. Деректер қорына қол жеткізуді басқару – деректер қорындағы қандай ақпаратқа кімге (адамға немесе белгілі бір компьютерлік бағдарламаға) рұқсат берілетінін бақылауды қамтиды. Ақпаратқа нақты деректер қоры объектілері (мысалы, жазба түрлері, нақты жазбалар, деректер құрылымдары), белгілі бір объектілер бойынша есептеулер (мысалы, сұраныс түрлері немесе нақты сұраныстар) немесе оларға қол жеткізудің арнайы жолдары (мысалы, ақпаратты алу үшін арнайы индекстер немесе басқа деректер құрылымдарын пайдалану) кіруі мүмкін. Деректер қорына қол жеткізуді басқару деректер қорының иесімен уәкілеттік берілген арнайы персонал жүзеге асырады, олар арнайы қорғалған қауіпсіздік DBMS интерфейстерін пайдаланады. Бұл тікелей жеке негізде, немесе жеке тұлғаларға және топтарға артықшылықтарды беру арқылы, немесе (ең күрделі модельдерде) жеке тұлғалар мен топтарды рөлдерге тағайындау арқылы, содан кейін оларға құқықтар беру арқылы басқарылуы мүмкін. Деректер қауіпсіздігі рұқсатсыз пайдаланушылардың деректер қорын қарауын немесе жаңартуын болдырмайды. Парольдерді пайдалану арқылы пайдаланушыларға бүкіл деректер қорына немесе оның "қосалқы схемалары" деп аталатын бөліктеріне қол жеткізуге рұқсат беріледі. Мысалы, қызметкер туралы деректер қорында жеке қызметкер туралы барлық ақпарат болуы мүмкін, бірақ бір топ пайдаланушыларға тек еңбекақы туралы деректерді көруге рұқсат етілсе, ал басқаларына тек жұмыс тарихы мен медициналық деректерге қол жеткізуге рұқсат беріледі. Егер DBMS деректер қорына интерактивті түрде кіру, жаңарту және сұрау мүмкіндігін қамтамасыз етсе, бұл мүмкіндік жеке деректер қорын басқаруға мүмкіндік береді. Деректер қауіпсіздігі, әдетте, деректердің нақты бөліктерін физикалық тұрғыдан (яғни, зақымданудан, жойылудан немесе жоюдан; мысалы, физикалық қауіпсіздікке қараңыз) немесе оларды мағыналы ақпаратқа түсіндіруден қорғаумен айналысады (мысалы, оларды құрайтын биттер тізбесін қарап, жарамды кредиттік карта нөмірін анықтау арқылы; мысалы, деректерді шифрлауды қараңыз). Өзгерістер мен қол жеткізу журналы қай атрибуттарға кіргенін, не өзгергенін және қашан өзгергенін тіркеп сақтайды. Журналдау қызметтері кіру оқиғалары мен өзгерістердің тіркелмесін сақтау арқылы кейінірек деректер қорының сот-медициналық аудитін жүргізуге мүмкіндік береді. Кейде қолданба деңгейіндегі код өзгерістерді тіркеу үшін қолданылады, оларды деректер базасында қалдырудың орнына. Қауіпсіздік бұзушылықтарын анықтау үшін бақылау орнатылуы мүмкін. Сондықтан ұйымдар деректер қорының қауіпсіздігін қастерлеуі керек, себебі ол көптеген пайдалар береді. Ұйымдар қауіпсіздік бұзушылықтарынан және хакерлік әрекеттерден, мысалы, өрт қабырғасын бұзудан, вирустардың таралуынан және қорғау құралдарынан қорғалады. Бұл компанияның маңызды ақпаратын қорғауға көмектеседі, оны ешбір жағдайда сырттан кімдермен бөлісуге болмайды.
Өнімдер мен бір мезгілде жасалатын операциялар
Деректер қорының транзакциялары апаттан кейін қалпына келтіру кезінде белгілі бір деңгейде қатеге төзімділік пен деректердің тұтастығын қамтамасыз ету үшін қолданылуы мүмкін. Деректер қорының транзакциясы – жұмыстың бірлігі, әдетте деректер қорында бірнеше операцияны қамтиды (мысалы, деректер қорының нысанын оқу, жазу, құлыпты алу немесе босату сияқты). Бұл деректер қорында және басқа да жүйелерде қолдау көрсетілетін абстракция. Әрбір транзакция нақты шекаралармен анықталады, олар бойынша бағдарламаның/кодтың қандай орындалулары осы транзакцияға кіретіні белгіленеді (бұл транзакцияның бағдарламашысы арнайы транзакция командалары арқылы анықталады). ACID аббревиатурасы деректер қоры транзакциясының идеалды қасиеттерін сипаттайды: атомдық, үйлесімділік, оқшаулану және беріктік.
Көші-қон
Бір ДҚБЖ-мен құрылған деректер қоры басқа ДҚБЖ-ға көшіріле алмайды (яғни, екінші ДҚБЖ оны іске қоса алмайды). Дегенмен, кейбір жағдайларда деректер қорын бір ДҚБЖ-дан екіншісіне міграциялау қажет болуы мүмкін. Мұның басты себептері экономикалық (әр түрлі ДҚБЖ-дың жалпы меншік құны немесе ТКЖ әртүрлі болуы мүмкін), функционалдық және операциялық (әр түрлі ДҚБЖ-дың мүмкіндіктері әртүрлі болуы мүмкін) сипатта болады. Міграция – деректер қорының бір ДҚБЖ түрінен екіншісіне түрлендірілуі. Түрлендіру кезінде (мүмкін болса) деректер қорымен байланысты қолданба (яғни, барлық байланысты қолданба бағдарламалары) өзгеріссіз сақталуы тиіс. Осылайша, деректер қорының түсініктелмелі және сыртқы архитектуралық деңгейлері түрлендіруде сақталуы керек. Архитектураның ішкі деңгейдегі кейбір аспектілері де сақталуы ықтимал. Күрделі немесе үлкен деректер қорын міграциялау – бұл өзіндік дербес және қымбат (бір реттік) жоба болуы мүмкін, сондықтан міграциялау туралы шешім қабылдағанда оны ескеру қажет. Бұл, нақты ДҚБЖ арасында міграцияға көмектесетін құралдардың болуына қарамастан. Әдетте, ДҚБЖ жеткізуші басқа танымал ДҚБЖ-дан деректер қорын импорттауға көмектесетін құралдарды ұсынады.
Құрылыс, техникалық қызмет көрсету және баптау
Қолданба үшін деректер қорын жобалағаннан кейін келесі кезең – деректер қорын құру. Әдетте, осы мақсатта қолданылатын мақсатына сәйкес келетін ДҚБЖ-ны таңдауға болады. ДҚБЖ деректер базасының әкімшілеріне қажетті деректер құрылымдарын ДҚБЖ-ның тиісті деректер моделінде анықтау үшін қажетті пайдаланушы интерфейстерін ұсынады. Қажетті ДҚБЖ параметрлерін (мысалы, қауіпсіздікке қатысты, жадты бөлу параметрлері және т.б.) таңдау үшін басқа пайдаланушы интерфейстері қолданылады. Деректер қоры дайын болған кезде (оның барлық дерек құрылымдары мен басқа да қажетті компоненттері анықталғаннан кейін), ол әдетте бастапқы қолданба деректерімен толтырылады (деректер қорын бастапқылай орнату, бұл әдетте жеке жоба болып табылады; көп жағдайда жаппай енгізуді қолдайтын арнайы ДҚБЖ интерфейстерін пайдалану арқылы) оны пайдалануға беруден бұрын. Кейбір жағдайларда деректер қоры қолданба деректерінен бос күйде пайдалануға беріледі, ал деректер оның жұмыс істеу кезінде жинақталады. Деректер қоры құрылып, бастапқылай орнатылып, толтырылғаннан кейін оны күтіп ұстау қажет. Әртүрлі деректер қоры параметрлерін өзгерту қажет болуы мүмкін және деректер қорының өнімділігін жақсарту үшін оны баптау (тюнинг) қажет болуы мүмкін; қолданбаның дерек құрылымдары өзгертілуі немесе қосылуы мүмкін, қолданбаның мүмкіндіктерін кеңейту үшін жаңа байланысты қолданба бағдарламалары жазылуы мүмкін және т.б.
Сақтық көшірмелеу және қалпына келтіру
Кейде деректер қорын бұрынғы күйіне қайтару қажет болады (көптеген себептермен, мысалы, бағдарламалық қатеге байланысты деректер қоры зақымданған немесе қате деректермен жаңартылған жағдайларда). Мұны іске асыру үшін резервтік көшірме жасау операциясы белгілі уақыттарда немесе үздіксіз жүргізіледі, онда деректер қорының әрбір қажетті күйі (яғни оның деректерінің мәндері мен деректер базасының құрылымдарына енгізілуі) арнайы резервтік файлдарда сақталады (мұны тиімді ету үшін көптеген техникалар бар). Деректер қорының әкімшісі деректер қорын осы күйге қайтаруды шешкен кезде (мысалы, деректер қоры осы күйде болған белгілі бір уақытты көрсету арқылы), осы файлдар сол күйді қалпына келтіру үшін пайдаланылады.
Статикалық талдау
Бағдарламалық жасақтаманы тексеру үшін қолданылатын статикалық талдау әдістерін сұрау тілдерінің жағдайында да пайдалануға болады. Атап айтқанда, *Абстрактілік интерпретация аясы дұрыс жуықтау әдістерін қолдау мақсатымен реляциялық деректер базалары үшін сұрау тілдері саласына кеңейтілді. Сұрау тілдерінің семантикасы деректердің нақты доменінің тиісті абстракцияларына сәйкес өзгертілуі мүмкін. Реляциялық деректер базасы жүйелерінің абстракциясы көптеген қызықты қолданыстарға ие, әсіресе қауіпсіздік мақсатында, мысалы, егжей-тегжейлі кіруді бақылау, су таңбасы салу және т.б.
Жобалау және модельдеу
Деректер базасын жобалаушының бірінші міндеті – деректер базасында сақталатын ақпараттың құрылымын көрсететін тұжырымдамалық деректер моделін жасау. Бұл үшін жиі қолданылатын тәсіл – сурет құралының көмегімен нысандар арасындағы қатынас моделін әзірлеу. Тағы бір танымал тәсіл – Бірыңғай модельдеу тілі. Сәтті деректер моделі модельденетін сыртқы әлемнің ықтимал жағдайын дәл көрсетеді: мысалы, егер адамдар бірден көп телефон нөмірін иеленсе, бұл ақпаратты тіркеуге мүмкіндік береді. Жақсы тұжырымдамалық деректер моделін жобалау үшін қолданбалы сала жақсы түсінілуі керек; әдетте бұл ұйымға қызығушылық тудыратын нәрселер туралы терең сұрақтар қоюды қамтиды, мысалы «клиент сонымен қатар жеткізуші бола ала ма?», немесе «егер өнім екі түрлі қаптамада сатылатын болса, олар бір өнім бе, әлде екі түрлі өнім бе?» немесе «Егер ұшақ Нью-Йорктен Дубайға Франкфурт арқылы ұшса, бұл бір рейс пе, әлде екі (немесе тіпті үш) ме?» Осы сұрақтарға жауап беру арқылы нысандарға (клиенттер, өнімдер, рейстер, рейс сегменттері) және олардың қатынастары мен атрибуттарына қолданылатын терминологияны анықтауға болады. Тұжырымдамалық деректер моделін жасау кейде бизнес-процестерден немесе ұйымның жұмыс ағынын талдаудан алынған деректерді қамтиды. Бұл деректер базасында қандай ақпарат қажет екенін және нені алып тастау керектігін анықтауға көмектеседі. Мысалы, бұл деректер базасына тарихи деректерді, сондай-ақ ағымдағы деректерді сақтау қажет пе, жоқ па, шешуге көмектеседі. Пайдаланушылар қанағаттанған тұжырымдамалық деректер моделін жасағаннан кейін, келесі кезең – бұл деректер базасындағы тиісті деректер құрылымдарын іске асыратын схемаға аудару. Бұл процесс көбінесе логикалық деректер базасының дизайны деп аталады, ал нәтижесі – схема түрінде көрсетілген логикалық деректер моделі. Тұжырымдамалық деректер моделі (кем дегенде теорияда) деректер базасы технологиясын таңдауға тәуелсіз болса, логикалық деректер моделі таңдалған ДҚБЖ қолдайтын нақты деректер базасы моделінің шарттарымен беріледі. (Деректер моделі және деректер базасы моделі терминдері көбінесе бір-бірін алмастыра қолданылады, бірақ осы мақалада біз нақты деректер базасын жобалау үшін деректер моделін, ал осы жобаны білдіру үшін қолданылатын модельдеу белгісі үшін деректер базасы моделін қолданамыз). Жалпы мақсаттағы деректер базалары үшін ең танымал деректер базасы моделі – реляциялық модель, немесе нақтырақ айтқанда, SQL тілімен ұсынылған реляциялық модель. Бұл модельді пайдалана отырып логикалық деректер базасының дизайнын жасау процесі нормалдау деп аталатын әдістемелік тәсілді қолданады. Нормалдаудың мақсаты – әрбір элементарлық «факті» тек бір жерде ғана тіркелгенін қамтамасыз ету, осылайша енгізулер, жаңартулар және жоюлар автоматты түрде сәйкестікті сақтайды. Деректер базасын жобалаудың соңғы кезеңі – бұл белгілі бір ДҚБЖ-ге байланысты өнімділікке, кеңейтілуге, қалпына келтіруге, қауіпсіздікке және басқаларына әсер ететін шешімдерді қабылдау. Бұл физикалық деректер базасының дизайны деп аталады, ал нәтижесі – физикалық деректер моделі. Бұл кезеңдегі басты мақсат – деректердің тәуелсіздігі, яғни өнімділікті оңтайландыру мақсатында қабылданған шешімдер соңғы пайдаланушылар мен қосымшаларға көрінбеуі керек. Деректердің тәуелсіздігінің екі түрі бар: физикалық деректердің тәуелсіздігі және логикалық деректердің тәуелсіздігі. Физикалық жобалау негізінен өнімділік талаптарына негізделеді және күтілетін жұмыс жүктемесі мен қол жеткізу үлгілерін жақсы білуді және таңдалған ДҚБЖ ұсынатын мүмкіндіктерді терең түсінуді талап етеді. Физикалық деректер базасын жобалаудың тағы бір аспектісі – қауіпсіздік. Бұл деректер базасы нысандарына қол жеткізуді бақылауды анықтауды, сондай-ақ деректердің қауіпсіздігі деңгейлері мен әдістерін анықтауды қамтиды.
Зерттеу
Деректер базасы технологиясы 1960 жылдан бері академиялық ортада да, компаниялардың ғылыми-зерттеу топтарында да (мысалы, IBM Research) белсенді зерттеу нысаны болып табылады. Зерттеу қызметі теорияны және прототиптерді әзірлеуді қамтиды. Көзге түсетін зерттеу тақырыптарына модельдер, атомдық транзакциялар концепциясы, осыған байланысты бір уақытта орындалуды басқару техникалары, сұраныс тілдері және сұраныстарды оңтайландыру әдістері, RAID және тағы да басқалары жатады. Деректер базасын зерттеу саласында бірнеше арнайы академиялық журналдар (мысалы, ACM Transactions on Database Systems TODS, Data and Knowledge Engineering DKE) және жыл сайынғы конференциялар (мысалы, ACM SIGMOD, ACM PODS, VLDB, IEEE ICDE) бар.