Деректер әдетте бағдарламалаумен байланысты және қазіргі ақпараттық әлемде үш логикалық эквивалентті нұсқада ұсынылады: бағдарламалау тіліндегі бағдарламада сипатталған және пайдаланылатын деректер; мәліметтер базасы жүйелеріндегі мәліметтер; таратылған ақпараттық жүйелердегі деректер. Қазіргі бағдарламалау ақпаратты формализациялаудың бірінші нұсқасына ғана салыстырмалы еркіндік берді. Екінші екі нұсқа ақпарат пен оның құрамдас бөліктері арасындағы қатынастарды қамтамасыз етудің азды-көпті сенімді формалары болып табылады.
Бұрынғы және қазіргі деректер
Бағдарламалау тілдерінің негізгі ұстанымы деректер мен алгоритмдердің нақты сипаттамасы болып табылады. Компьютерлер белгісіздіктің ешбір мүмкіндігін "ұсынбайды": әрекет ету керек нәрсе бар және сол әрекетті орындайтын пәрмен бар.
Заманауи концепция анағұрлым жоғары негізге негізделген: берілгені бар және оның нақты қандай болатыны оны қолдану орнында анықталады. Кез келген жағдайда, пайдалану кезінде деректер автоматты түрде тексеріліп, дұрыс түрге түрлендіріледі. Заманауи бағдарламашы олардың алдын ала сипатталуына және алгоритмдегі тип үйлесімділігін сақтауға міндетті емес.
Өту процесі:
- терілген деректерден және пайдалану алдында оның міндетті сипаттамасынан;
- типсіз деректерге және оны сипаттау мен пайдаланудың кез келген міндеттемесі жоқ.
Шын мәнінде, біз формализация талаптарының салыстырмалы релаксациясын тани аламыз – ол тек заманауи бағдарламалау құралдарының ортасында ғана қолжетімді. Орындалу уақытында әрбір деректердің түрі бекітіледі және пәрмен тізбегі жақсы анықталған.
Түрлері және модельдеу
Математика және физика, сауда және өндіріс, экономика және сандар қолданылатын басқа салалар әрқашан деректермен жұмыс істеді және түр ұғымына ешқандай мән бермеді. Сандардың бүтін немесе бөлшек болуы маңызды емес.
Әр нақты формула немесе нақты әрекет бүтін, шексіз бөлшек, нақты немесе күрделі санды бере алады. Осы уақытқа дейін шексіз кішкентай және шексіз үлкен сияқты ақыл-ойдың кереметтері бар. Оның үстіне бұл ғажайыптардың қасиеттері де бар.
Бағдарламалауда әлі де еркіндік жоқ. Барлығы қатаң түрде ресімделуі керек. Деректер түсінігі, ең алдымен, түрі:
- бүтін;
- логикалық;
- char;
- жол және т.б.
Түрлердің атаулары әртүрлі бағдарламалау тілдерінде әр түрлі болуы мүмкін, бірақ әрқашан бүтін немесе нақты сан, логикалық мән, таңба,түзу. Әлі де реликтілер мен нақты идеялар қалды: таңбасыз бүтін сан, код, байт, сөз, қос сөз, бекітілген ұзындық жолы.
Деректер жүйесіндегі деректер тұжырымдамасында еркіндік жоқ. SQL тілі – «халықаралық» (әрбір заманауи деректер қоры үшін диалект бар) – тек деректерде ғана емес, сонымен қатар sql сұрауларында да ешқандай дәлсіздіктерге жол бермейді. Сұраныстағы қате нәтиженің болмауының кепілі болып табылады. Сипаттамаларды бұзу туралы мүлде айтудың қажеті жоқ.
Ақпараттық процестер мен деректер көрсетілімдерін модельдеу - өзгеретін жағдайларға бейімделетін және дами алатын құрылымды құрудың жалғыз сенімді жолы.
Түпнұсқаның динамикасы
Табиғи ақпарат үздіксіз өзгеріс. Белгілі бір пәндік саладағы деректер моделінің ресми сипаттамасы мен тұжырымдамасын беру үш мәселені шешуді білдіреді:
- мұнда қандай деректер бар екенін анықтаңыз;
- олардың арасындағы қатынасты ресімдеу;
- деректер мен қарым-қатынастарды өзгерту процестерін сипаттаңыз.
JavaScript тіліндегі қарапайым алгоритм деректер жиынының мысалы – тіпті ең сенімді дерекқорды басқару жүйесінің үлгісінің қысқартылған көшірмесі.
Бұл жай ғана екінші жағдайда, сарапшылар мен мамандар деректер құрылымдарын, кестелер мен қатынастарды жобалау кезінде әдетте заттардың мәнін көрмейді (табиғи ақпараттың үлкен көлемін қамту шынымен қиын) және күрделі, дамымаған деректер жинағы алынады, бұл ретте тақырып аймағында бастапқы ақпарат еркін және оңай айналады.
Статикалықмүмкін
Бетке тіркелген кодты және бет тегтеріндегі оқиғаларға тағайындалған функцияларды қосу JavaScript-тің жалпы тәжірибесі. Кез келген жағдайда бет тегтері берілген веб-ресурс қабылдайтын, өзгертетін немесе жасайтын деректерді анықтайды.
Егер өңдеуші кодын тұтастай бет кодына емес, элемент оқиғаларына өте мұқият шоғырландырсаңыз, бұл шығудың ең жақсы жолы. Ең дұрысы, код жаңа деректерді енгізбесе немесе қол жетімді деректерді түзетпейді, бірақ белгілі бір уақытта нақты не бар екеніне назар аударады.
Шын мәнінде, егер сіз «деректер» ұғымын бастапқы ақпараттың минималды статикалық сипаттамасы ретінде анықтап, оны ұстанатын болсаңыз, бұл сіздің табысқа жету мүмкіндігіңіз бар дегенді білдіреді.
Дерекқорларға келетін болсақ, бәрі әлдеқайда күрделі. Кез келген JavaScript коды бетті функционалдылықпен «қамтамасыз етеді». Кез келген дерекқор – кестелердің, олардың арасындағы қатынастардың, сақталған процедуралардың, сұраулардың және сырттан қолжетімді функциялардың жиынтығы.
Статикалық - кез келген алгоритмнің қиындығы. Деректер туралы қазіргі концепция статикалық: сан, жол, символ және т.б. Өңдеу кезінде немесе дерекқор кестесіне жазу кезінде бәрі бірқалыпты болады. Бірақ түпнұсқа қашан басқа өлшемге немесе мағынаға ие болады? Бірінші нұсқа: белгіні өзгертіңіз, бірақ қосылымдар мен сұраулар бірден түсуі мүмкін.
Статика және нысандар
Нысан ретіндегі "деректер" ұғымын анықтау жағдайды түбегейлі өзгертеді. Объектінің өзіндік құрылымы бар. Мұнда кез келген айнымалылардың кез келген сипаттамасын пайдалануға болады. Рөл ойнамайды. Нысанда деректер қолжетімді болатын әдістер бар. Бәрінен беріпрограммалау саласында қолданылады, яғни үш негізгі әдіс: оқу, жазу, өзгерту. Салыстыру, іздеу, клондау, т.б. үшін көбірек қосуға болады.
Пән аймағы әр деректерге сипаттар ауқымын жүктейді. Осылайша, деректер ұғымы динамикалық түрде өзгертілетін сипаттама түріне айналады. Нысан ішіндегі статикалық оның сыртындағы динамика береді.
Нысан ішіндегі статикалық дескрипторлар тіркесімін өзгерту арқылы оның басқа нысандармен қатынасының динамикасы туралы алаңдамаудың қажеті жоқ.
Деректерді бағдарламалау және ұсыну
Дерек дегеніміз не? Қоғамдық сана қазірдің өзінде ақпараттық технологияларға үйреніп, бұлттарда жұмыс істейді және виртуалды кеңістіктерде контейнерлері бар. Енді ақпарат пен оны пайдалану мәселесінде кәсіби бағдарламашылар мен қолданушылар ғана емес, қарапайым адамдар да сауатты.
Бірақ бағдарламалау дегеніміз не? Осы күнге дейін қоғамдық пікір бұл ұғымға және оның ұғымдарына мынадай анықтама береді:
- Ақпарат пен деректер информатикада қолданылатын негізгі ұғымдар.
- Деректер - қоршаған шындыққа қатысты алынған және жазылған бақылаулардың белгілі бір тәсілі.
- Олар қарапайым және күрделі (құрылымдар), негізгі және қосымша.
- Дерекқор – бұл табуға, өзгертуге және пайдалануға болатын жүйелі түрде ұсынылған тәуелсіз материалдар жинағы.
Бұл қаншалықты объективті? Беделді авторларсолай ойла. Нақты тәжірибе әрбір пәндік аймақ өзінің дұрыс деректер жүйесін анықтауға және жақсы динамикалық модель құруға барлық мүмкіндіктерді беруге ұмтылады.
Тұтынушының (тұтынушының) бағдарламашыға (деректер базасының дизайнеріне) қалай және не істеу керектігі туралы өз пікірін таңып қоюы сирек емес. Бағдарламалау тұрғысынан тұтынушының кез келген қалауы барынша дәлдікпен орындалуы мүмкін.
Ауылдық сумен жабдықтауды ұстауға арналған бюджет мәселесін шешу үшін Oracle керек (ауылдағы 21-ғимарат) - жақсы. MySQL Ресейдегі барлық пошта бөлімшелері үшін пошта жөнелтілімдерін бақылау жүйесін ұйымдастыру үшін қажет - бәрі де жұмыс істейді.
Сіз әрқашан кез келген алгоритмді құрастыра аласыз және дерекқорды басқару жүйесін немесе бағдарламалау тілін әзірлеушімен белгіленетін деректер тұжырымдамасының анықтамасы шегінде ақпараттың кез келген көрінісіне қол жеткізуді қамтамасыз ете аласыз. Сұрақ басқаша: мұны максималды динамикадағы минималды шығындармен қалай жасауға болады?
Дерекқорлар, мысалдар
Қарапайым негіз үлгісіз жасалады. Деректер мен коммуникацияның негізгі түсініктері шағын, функционалдығы өте қарапайым. Мысалы, жоғары оқу орны үшін сізге қажет:
- мұғалімдер кестесі;
- топ кестесі (кілт және топ нөмірі);
- студенттердің жалпы кестесі (топтық кілттер пайдаланылады).
Декан мұғалімдердің үлгерімін білгісі келеді. Мұғалімдер кестесінде өрістер бар:
- тегі;
- аты;
- әкесінің аты;
- қадағаланатын топ нөмірі.
Студенттік кестеде өрістер бар:
- тегі;
- аты;
- әкесінің аты;
- туған күні;
- GPA (барлық пәндер үшін);
- топ нөмірі.
Таңдаудың кем дегенде екі нұсқасы болуы мүмкін: мұғалімнің аты-жөнін пайдаланып, топ нөміріне өтіп, барлық студенттерді және олардың орташа ұпайларын немесе мұғалімнің тегі мен соңғысын көре аласыз. студенттің аты-жөні, сіз соңғысының орташа балын көре аласыз.
Осындай қарапайым нұсқада да ақауларға кепілдік беріледі және бір нәрсені өзгертуге тура келеді. Жағдай: мұғалім ауырып қалды, оны тағы бір ай ауыстырады, яғни ол екі топқа жетекшілік етеді. Мұғалімдер кестесінде бір топ нөмірінің астында бір ғана өріс бар.
Мәселені шешу үшін қайталанатын өрісті қосу керек. Ал екеуі ауырса, үш өрісті қосыңыз. Осылайша мұғалімдер үстелі нөлден өсе бастайды.
Басқа опция бар: топтық перненің сандық өрісін символдық өріске ауыстырыңыз. Содан кейін таңдаған сайын жолды пернелер тізбегіне түрлендіру керек болады және бір sql сұрауы бірнешеге айналады.
Кестелерді жасау емес, нысандарды жасау үшін неғұрлым перспективалы мысал. Сонда мұғалім объект болып табылады және оның бірнеше жетекшілік ететін топтары болуы мүмкін. Бірақ бұл әрқашан бір нысан. Мұғалім нысанында бірегей кілт бар, бірақ бірнеше бақыланатын топтар болуы мүмкін. Топтың бірегей кілті де бар. Сондай-ақ студент.
Үш позиция тек тапсырмада ғана қолжетімді емес, сонымен бірге одан әрі дамытуға болады.
Нысанға бағытталған негіздер
Ақпарат индустриясының көшбасшыларыклассикалық реляциялық деректер қорын ұсынады. Оларды өмір сынады, олар жұмыс істейді, қауіпсіз, сенімді және ақаулық туындаған жағдайда ақпаратты қалпына келтіруге мүмкіндік береді.
Объектіге бағытталған мәліметтер базасы (OODB) 1980 жылдардың ортасында әзірлене бастады және беделді авторлардың пікірінше, бүгінгі күнге дейін перспективалы болып табылады. Бірақ әзірге іргелі теориялар мен концептуалды ережелерден басқа, MySQL, MS SQL Server немесе Oracle сияқты рейтинг пен таратуға қол жеткізген бірде-бір OODB өзінің әртүрлі инкарнацияларында жоқ.
Бірақ деректердің, типтердің, атрибуттардың, сыныптардың, иерархияның анықтамасын, тұжырымдамасын рейтингі осы OODB менталитетін мойындайтын бағдарламашылар қауымдастығын құру үшін жеткіліксіз әзірлеуші ұсынса ше? Біз өз күшімізге сенуіміз керек.
Linux ортасында OODB-нің отыздан астам нұсқалары жасалған. Бірақ құрылған деректер базасы қосымша функционалдылықты қажет етпейтініне кепілдік қайда? Windows ортасы бұл салада көп кепілдік бермейді.
Нысанға бағытталған шешім
Алайда шешімі бар. Мысал ретінде MySQL пайдалану арқылы стандартты реляциялық кестелердің шешілетін мәселенің объектіге бағытталған үлгісіне айналу жолын көрсетуге болады.
Бұл жерде дерекқор жоқ, бірақ нысандардың жеке жүйесін қалыптастыруға арналған орта бар. MySQL қуаты тек ақпараттық жолдардағы кестелер үшін реляциялық жады ретінде пайдаланылады. Қолдану логикасын әзірлеушінің өзі анықтайды. Атап айтқанда, is_cache кестесі бар. Онда бәрі барбірнеше негізгі өрістер:
- иенің_коды;
- сеанс_коды;
- h_code;
- тосын сый;
- a_мазмұн.
Қалған өрістер қызмет функцияларын орындайды. Бұл кесте кез келген сұраныстың кірісінде тұрады және оның келуін жазады. Дерекқор үлгісінің не істейтінін оны әзірлеуші анықтайды. Мазмұн өрісіне не сәйкес келетінін (a_contents) әзірлеуші жасаған үлгі нысандары анықтайды.
Бұл идеяда төрт нәрсе бар: соққы, соққы сеансы, соққылар тарихы коды және арнайы мазмұн. Қоңырау дегеніміз не, объектілердің қандай жүйесін салу керек – әзірлеуші анықтайды. Сеанс (жұмыс процесі) нені білдіретінін әзірлеуші анықтайды. Тарих коды - сұрауларды кері қайтару мүмкіндігі.
Мұндағы кестелердің тақырып аймағына еш қатысы жоқ. Қоңыраулар контроллері (is_cache), журнал жүргізу (is_customs), қоңыраулар тарихы (is_histories) бар. Қалған кестелер шешілетін тапсырма бойынша анықталады.
Шын мәнінде, бұл шешім салынған домен дерекқор үлгісіне және шешіліп жатқан мәселеге негізделген жеке OODB құруды ұсынады. Мұнда үлкен плюс бар - бұл сіздің жеке деректер тұжырымдамасы, оларды ұсынудың жеке моделі және олардың арасындағы қарым-қатынас. Мұнда негіз бар - тамаша реляциялық деректер базасы. Бірдеңені іздеуде және бір нәрсені түсінбеуде қиындықтар болмайды.
Үлгі: нысандық жүйе + ДҚБЖ
Ақпараттық технологияда ештеңені өзгерту мүмкін емес. Шынайы ақпараттық революция әлі де алыс. кәсіби санабағдарламалық жасақтаманы әзірлеушілер классикалық дәстүрлерді өзгерткісі келмейді. Бірақ жағдайдан шығудың жолы әлі де бар.
Өз моделіңіздің болуы үшін ортаны құрудың негізі ретінде сенімді заманауи дерекқорды басқару жүйелерін пайдалану арқылы сіз айтарлықтай жетістікке жете аласыз.
Тапсырманы шешу үшін кез келген жағдайда көріністі немесе деректер үлгісін құруға тура келеді, бірақ оны дұрыс орындау керек: бұл нысандар жүйесі болсын, ал жақсы ДҚБЖ оның ортасы болсын.