Տվյալների հայեցակարգ. սահմանում, օրինակներ

Բովանդակություն:

Տվյալների հայեցակարգ. սահմանում, օրինակներ
Տվյալների հայեցակարգ. սահմանում, օրինակներ
Anonim

Տվյալները սովորաբար կապված են ծրագրավորման հետ և ժամանակակից տեղեկատվական աշխարհում ներկայացված են երեք տրամաբանորեն համարժեք տարբերակներով. ծրագրավորման լեզվով ծրագրում նկարագրված և օգտագործված տվյալներ; տվյալների բազայի համակարգերում; տվյալների բաշխված տեղեկատվական համակարգերում: Ժամանակակից ծրագրավորումը հարաբերական ազատություն է տվել միայն տեղեկատվության պաշտոնականացման առաջին տարբերակին։ Երկրորդ երկու տարբերակները տեղեկատվության տրամադրման և դրա բաղադրիչների միջև փոխհարաբերությունների քիչ թե շատ հուսալի ձևեր են:

Տվյալներ անցյալ և ներկա

Ծրագրավորման լեզուների հիմնարար դիրքը տվյալների և ալգորիթմների ճշգրիտ նկարագրությունն է: Համակարգիչները չեն «ներկայացնում» անորոշության ոչ մի հնարավորություն. կա ինչ-որ բան, որի վրա պետք է գործել, և կա հրաման, որն իրականացնում է այդ գործողությունը:

Ժամանակակից հայեցակարգը հիմնված է շատ ավելի բարձր հիմքի վրա՝ կա տվյալ, իսկ թե կոնկրետ ինչ կլինի՝ որոշվում է դրա օգտագործման վայրում։ Ամեն դեպքում, օգտագործման պահին տվյալները ավտոմատ կերպով ստուգվում և փոխարկվում են ճիշտ տեսակի։Ժամանակակից ծրագրավորողը պարտավոր չէ հոգ տանել դրանց նախնական նկարագրության և ալգորիթմում տիպային համատեղելիության պահպանման մասին։

Անցյալ և ներկա տվյալներ
Անցյալ և ներկա տվյալներ

Անցման գործընթաց՝

  • մուտքագրված տվյալներից և դրանց պարտադիր նկարագրությունից մինչև օգտագործումը;
  • չտիպված տվյալների և դրանք նկարագրելու և օգտագործելու որևէ պարտավորությունից ազատություն:

Իրականում մենք կարող ենք ճանաչել պաշտոնականացման պահանջների հարաբերական թուլացումը. այն հասանելի է միայն ժամանակակից ծրագրավորման գործիքների միջավայրում: Գործարկման ժամանակ յուրաքանչյուր տվյալների տեսակը ֆիքսված է, և հրամանների հաջորդականությունը լավ սահմանված է:

Տեսակներ և մոդելավորում

Մաթեմատիկան և ֆիզիկան, առևտուրն ու արտադրությունը, տնտեսագիտությունը և այլ ոլորտները, որտեղ օգտագործվում են թվեր, միշտ գործել են տվյալների հետ և որևէ նշանակություն չեն տվել տեսակի հասկացությանը։ Այն փաստը, որ թվերը կարող են լինել ամբողջական կամ կոտորակային, իրականում նշանակություն չուներ:

Յուրաքանչյուր հատուկ բանաձև կամ հատուկ գործողություն կարող է տալ ամբողջ թիվ, անսահման կոտորակ, իրական կամ բարդ թիվ: Մինչ այժմ կան մտքի այնպիսի հրաշքներ, ինչպիսիք են անսահման փոքր և անսահման մեծ: Ավելին, այս հրաշքները նույնիսկ ունեն հատկություններ։

Ծրագրավորման մեջ դեռ ազատություն չկա. Ամեն ինչ պետք է խստորեն ձեւակերպվի։ Տվյալների հասկացությունը, առաջին հերթին, տեսակ է՝

  • ամբողջ թիվ;
  • բուլյան;
  • char;
  • string և այլն:

Տիպերի անունները կարող են տարբերվել տարբեր ծրագրավորման լեզուներում, բայց միշտ կա ամբողջ կամ իրական թիվ, բուլյան արժեք, նշան,տող. Դեռ մնացել են մասունքներ և կոնկրետ գաղափարներ՝ անստորագիր ամբողջ թիվ, ծածկագիր, բայթ, բառ, կրկնակի բառ, ֆիքսված երկարությամբ տող:

Մասունքներ և գաղափարներ
Մասունքներ և գաղափարներ

Տվյալների համակարգում տվյալների հայեցակարգը ազատություն չունի: SQL լեզուն՝ «միջազգային» (յուրաքանչյուր ժամանակակից տվյալների բազայի համար կա բարբառ) - չի հանդուրժում ոչ միայն տվյալների, այլև sql հարցումների որևէ անճշտություն։ Հարցման մեջ սխալը արդյունքի բացակայության երաշխիքն է։ Նկարագրությունների խախտումների մասին ընդհանրապես պետք չէ խոսել։

Տեղեկատվական գործընթացների և տվյալների ներկայացման մոդելավորումը կառուցվածքի կառուցման միակ վստահ միջոցն է, որը կարող է զարգանալ և հարմարվել փոփոխվող պայմաններին:

Բնօրինակի դինամիկան

Բնական տեղեկատվությունը շարունակական փոփոխություն է: Տվյալների մոդելի պաշտոնական նկարագրություն և հայեցակարգ տալ որոշակի առարկայական ոլորտում նշանակում է լուծել երեք խնդիր՝

  • սահմանել, թե ինչ տվյալներ կան այստեղ;
  • պաշտոնականացնել նրանց միջև հարաբերությունները;
  • նկարագրում են տվյալների և հարաբերությունների փոփոխման գործընթացները:

Հասարակ ալգորիթմի տվյալների հավաքածուի օրինակ JavaScript-ում. տվյալների բազայի կառավարման նույնիսկ ամենահզոր համակարգի մոդելի կրճատված պատճեն:

Պարզապես երկրորդ դեպքում փորձագետներն ու մասնագետները, երբ նախագծում են տվյալների կառուցվածքները, աղյուսակները և հարաբերությունները, սովորաբար չեն տեսնում (իրոք դժվար է մեծ քանակությամբ բնական տեղեկատվություն լուսաբանել) իրերի էությունը, և ձեռք է բերվում ծանր, չմշակված տվյալների կույտ, մինչդեռ թեմայի տարածքում աղբյուրի տեղեկատվությունը շրջանառվում է ազատ և հեշտությամբ:

Ստատիկհնարավոր է

JavaScript-ի սովորական պրակտիկա է՝ ներառել էջին կցված կոդ և էջի պիտակներում իրադարձություններին վերագրված գործառույթներ: Ամեն դեպքում, էջի պիտակները սահմանում են տվյալ վեբ ռեսուրսի ընդունումը, փոփոխումը կամ ստեղծած տվյալները:

Եթե շատ ուշադիր կենտրոնացնեք ձեր մշակողի կոդը տարրի իրադարձությունների վրա, և ոչ թե էջի կոդն ամբողջությամբ, սա լավագույն ելքն է: Իդեալում, երբ կոդը չի ներկայացնում նոր տվյալներ կամ չի ամրագրում առկա տվյալները, այլ կենտրոնանում է այն բանի վրա, թե կոնկրետ ինչ ունի այն ժամանակի որոշակի պահին:

Իրականում, եթե դուք սահմանում եք «տվյալներ» հասկացությունը որպես աղբյուրի տեղեկատվության նվազագույն ստատիկ նկարագրություն և հետևում եք դրան, ապա դա նշանակում է, որ դուք հաջողության հասնելու հնարավորություն ունեք:

Ինչ վերաբերում է տվյալների բազաներին, ամեն ինչ շատ ավելի բարդ է: Ցանկացած JavaScript կոդ «ապահովում» է էջը ֆունկցիոնալությամբ: Ցանկացած տվյալների շտեմարան աղյուսակների, նրանց միջև հարաբերությունների, պահված ընթացակարգերի, հարցումների և դրսից հասանելի գործառույթների հավաքածու է:

Ստատիկը ցանկացած ալգորիթմի խնդիրն է: Տվյալների ժամանակակից հայեցակարգը ստատիկ է՝ թիվ, տող, նիշ և այլն։ Մշակելիս կամ տվյալների բազայի աղյուսակում գրելիս ամեն ինչ հարթ է ստացվում։ Բայց ե՞րբ է բնօրինակը ձեռք բերում այլ հարթություն կամ իմաստ։ Տարբերակ առաջին. փոխել նշանը, բայց կապերն ու հարցումները կարող են անմիջապես ընկնել:

Ստատիկա և առարկաներ

«Տվյալների» հասկացության սահմանումը որպես օբյեկտ կտրուկ փոխում է իրավիճակը: Օբյեկտն ունի իր կառուցվածքը. Այստեղ դուք կարող եք օգտագործել ցանկացած փոփոխականի ցանկացած նկարագրություն: Դերը չի խաղա. Օբյեկտն ունի մեթոդներ, որոնց միջոցով հասանելի են տվյալները: Քանի որ ամեն ինչօգտագործվում է ծրագրավորման ոլորտում, այսինքն՝ երեք հիմնական մեթոդ՝ կարդալ, գրել, փոխել։ Դուք կարող եք ավելին ավելացնել համեմատելու, որոնելու, կլոնավորելու և այլն:

Առարկայի տարածքը յուրաքանչյուր տվյալների վրա պարտադրում է մի շարք հատկություններ: Այսպիսով, պարզվում է, որ տվյալների հասկացությունը վերածվում է մի տեսակի նկարագրության, որը կարող է դինամիկ կերպով փոփոխվել։ Ստատիկ օբյեկտի ներսում դինամիկա է տալիս նրանից դուրս:

Փոխելով օբյեկտի ներսում ստատիկ նկարագրիչների համակցությունը, դուք չպետք է անհանգստանաք այլ օբյեկտների հետ նրա հարաբերությունների դինամիկայի համար:

Ծրագրավորում և տվյալների ներկայացում

Ի՞նչ է տվյալները: Հասարակական գիտակցությունն արդեն վարժվել է տեղեկատվական տեխնոլոգիաներին, աշխատում է ամպերի մեջ և ունի կոնտեյներներ վիրտուալ տարածքներում։ Այժմ ոչ միայն պրոֆեսիոնալ ծրագրավորողներն ու օգտատերերը, այլև սովորական մարդիկ են կոմպետենտ տեղեկատվության և դրա օգտագործման հարցում։

Հանրային կարծիք
Հանրային կարծիք

Բայց ի՞նչ է ծրագրավորումը: Մինչ օրս հասարակական կարծիքը տալիս է այս հասկացության և դրա հասկացությունների հետևյալ սահմանումը.

  • Տեղեկատվությունը և տվյալները համակարգչային գիտության մեջ օգտագործվող հիմնական հասկացություններն են:
  • Տվյալները շրջապատող իրականության համեմատ ստացված և գրանցված դիտարկումների որոշակի ձև են:
  • Դրանք պարզ և բարդ են (կառուցվածքներ), առաջնային և երկրորդական:
  • Տվյալների բազան անկախ նյութերի հավաքածու է, որը ներկայացված է համակարգված ձևով, որպեսզի դրանք հնարավոր լինի գտնել, փոփոխել և օգտագործել:

Որքանո՞վ է սա օբյեկտիվ: Հեղինակավոր հեղինակներայդպես մտածիր։ Իրական պրակտիկան միտված է ապահովելու, որ յուրաքանչյուր առարկայական տարածք որոշի իր տվյալների ճիշտ համակարգը և բոլոր հնարավորությունները ընձեռի լավ դինամիկ մոդել կառուցելու համար:

Հազվադեպ չէ, երբ հաճախորդը (սպառողը) իր սեփական կարծիքը պարտադրում է ծրագրավորողին (տվյալների բազայի նախագծողին), թե ինչպես և ինչ անել: Ծրագրավորման տեսանկյունից հաճախորդի ցանկացած ցանկություն հնարավոր է իրականացնել առավելագույն ճշգրտությամբ։

Պահանջվում է Oracle գյուղական ջրամատակարարման (գյուղի 21 շենք) պահպանման բյուջետավորման խնդիրը լուծելու համար - լավ. MySQL-ն անհրաժեշտ է՝ Ռուսաստանի բոլոր փոստային բաժանմունքների համար փոստային առաքանիների հետագծման համակարգ կազմակերպելու համար. ամեն ինչ նույնպես կաշխատի:

Դուք միշտ կարող եք կազմել ցանկացած ալգորիթմ և մուտք գործել տեղեկատվության ցանկացած ներկայացում տվյալների հայեցակարգի սահմանման շրջանակներում, որը սահմանվել է տվյալների բազայի կառավարման համակարգի կամ ծրագրավորման լեզվի մշակողի կողմից: Հարցն այլ է՝ ինչպե՞ս դա անել նվազագույն ծախսերով առավելագույն դինամիկայում:

Տվյալների բազաներ, օրինակներ

Պարզ հիմք է ստեղծվում առանց մոդելի: Տվյալների և հաղորդակցության հիմնական հասկացությունները փոքր են, ֆունկցիոնալությունը շատ պարզ է: Օրինակ՝ բարձրագույն ուսումնական հաստատության համար անհրաժեշտ է՝

  • ուսուցիչների սեղան;
  • խմբային աղյուսակ (բանալի և խմբի համար);
  • սովորողների ընդհանուր աղյուսակ (օգտագործվում են խմբային բանալիներ).

Դեկանը ցանկանում է իմանալ ուսուցիչների առաջադիմությունը. Ուսուցիչների աղյուսակն ունի դաշտեր՝

  • ազգանուն;
  • անուն;
  • հայրանուն;
  • վերահսկվող խմբի համար:

Ուսանողների աղյուսակն ունի դաշտեր՝

  • ազգանուն;
  • անուն;
  • հայրանուն;
  • ծննդյան ամսաթիվ;
  • GPA (բոլոր առարկաների համար);
  • խմբի համարը։

Նմուշառման համար կարող է լինել առնվազն երկու տարբերակ. օգտագործելով ուսուցչի անունը, կարող եք գնալ խմբի համար և տեսնել բոլոր ուսանողներին և նրանց միջին միավորները, կամ ուսուցչի ազգանունով և ազգանունով: ուսանողի անունը, կարող եք տեսնել վերջինի միջին միավորը։

Պարզ տվյալների բազա
Պարզ տվյալների բազա

Նույնիսկ այսպիսի պարզ տարբերակում խնդիրները երաշխավորված են, և ինչ-որ բան պետք է փոխել։ Իրավիճակ. ուսուցիչը հիվանդացել է, ևս մեկ ամիս փոխարինում է նրան, ինչը նշանակում է, որ նա ղեկավարում է երկու խումբ։ Ուսուցիչների աղյուսակում մեկ խմբի համարի տակ կա միայն մեկ դաշտ:

Խնդիրը լուծելու համար անհրաժեշտ է կրկնօրինակ դաշտ ավելացնել: Իսկ եթե երկուսը հիվանդանում են, ապա ավելացրեք երեք դաշտ։ Այսպիսով, ուսուցիչների աղյուսակը սկսում է աճել զրոյից:

Կա ևս մեկ տարբերակ՝ խմբի ստեղնի թվային դաշտը փոխարինել խորհրդանշականով: Այնուհետև, ամեն անգամ ընտրելիս, դուք պետք է տողը փոխարկեք ստեղների հաջորդականության, և մեկ sql հարցումը կվերածվի մի քանիսի:

Ավելի խոստումնալից օրինակ է ոչ թե աղյուսակներ, այլ առարկաներ պատրաստելը: Այնուհետև ուսուցիչը օբյեկտ է, և նա կարող է ունենալ մի քանի վերահսկվող խմբեր: Բայց դա միշտ մեկ օբյեկտ է։ Ուսուցչի օբյեկտն ունի եզակի բանալի, բայց կարող է ունենալ մի քանի վերահսկվող խմբեր: Խումբն ունի նաև յուրահատուկ բանալի. Նաև ուսանող։

Բոլոր երեք դիրքերը ոչ միայն հասանելի են առաջադրանքի շրջանակներում, այլև կարող են հետագայում մշակվել:

Օբյեկտակենտրոն հիմքեր

Տեղեկատվական ոլորտի առաջատարներառաջարկում են դասական հարաբերական տվյալների բազաներ: Նրանք փորձարկված են կյանքի կողմից, աշխատում են, ապահով են, հուսալի և խնդիրների դեպքում թույլ են տալիս վերականգնել տեղեկատվությունը։

Օբյեկտակենտրոն տվյալների բազաները (OODB) սկսեցին մշակվել 1980-ականների կեսերին և, ըստ հեղինակավոր հեղինակների, խոստումնալից են մինչ օրս: Բայց մինչ այժմ, բացի հիմնարար տեսություններից և հայեցակարգային դրույթներից, չկա որևէ OODB, որը ձեռք բերած լինի նույն վարկանիշն ու բաշխումը, ինչ MySQL-ը, MS SQL Server-ը կամ Oracle-ն իր բոլոր բազմազան մարմնավորումներով:

OO տվյալների բազա
OO տվյալների բազա

Բայց ի՞նչ, եթե տվյալների, տեսակների, ատրիբուտների, դասերի, հիերարխիաների սահմանումը, հայեցակարգը առաջարկվի մշակողի կողմից, որի վարկանիշը բավարար չէ այս OODB-ի մտածելակերպը դավանող ծրագրավորողների համայնք ստեղծելու համար: Մենք պետք է ապավինենք մեր ուժերին։

Լինուքսի միջավայրում ստեղծվել են OODB-ի ավելի քան երեսուն տարբերակներ: Բայց որտե՞ղ է երաշխիքը, որ ստեղծված տվյալների բազան ավելի շատ ֆունկցիոնալություն չի պահանջի։ Windows միջավայրն այս ոլորտում շատ երաշխիքներ չի տալիս:

Օբյեկտ ուղղված լուծում

Սակայն լուծում կա. Օգտագործելով MySQL-ը որպես օրինակ՝ դուք կարող եք ցույց տալ, թե ինչպես են ստանդարտ հարաբերական աղյուսակները վերածվում լուծվող խնդրի օբյեկտի վրա հիմնված մոդելի:

Ձեր սեփական OODB-ի օրինակ
Ձեր սեփական OODB-ի օրինակ

Այստեղ տվյալների բազա չկա, բայց կա ձեր սեփական օբյեկտների համակարգը ձևավորելու միջավայր: MySQL-ի հզորությունը օգտագործվում է միայն որպես հարաբերական հիշողություն տեղեկատվական տողերի աղյուսակների համար: Օգտագործման տրամաբանությունը որոշվում է հենց մշակողի կողմից: Մասնավորապես, կա is_cache աղյուսակ: Այն ունի ամեն ինչմի քանի հիմնական դաշտեր՝

  • սեփականատիրոջ_կոդ;
  • նստաշրջանի_կոդ;
  • h_code;
  • a_surprise;
  • a_contents.

Մնացած դաշտերը կրում են սպասարկման գործառույթներ: Այս աղյուսակը կանգնած է ցանկացած հարցման մուտքագրման վրա և գրանցում է դրա ժամանումը: Թե ինչ կմշակի տվյալների բազայի մոդելը, որոշվում է դրա մշակողի կողմից: Թե ինչ կտեղավորվի բովանդակության դաշտում (a_contents) որոշվում է մշակողի կողմից ստեղծված մոդելի օբյեկտներով:

Այս գաղափարում կա չորս բան՝ հարված, հարվածային նիստ, հարվածների պատմության կոդը և կոնկրետ բովանդակություն: Ինչ է զանգը, օբյեկտների ինչ համակարգ պետք է կառուցվի, որոշվում է մշակողի կողմից: Թե ինչ է նշանակում նիստ (աշխատանքային գործընթաց) որոշվում է մշակողի կողմից: Պատմության կոդը խնդրանքները հետ վերադարձնելու հնարավորությունն է:

Այս աղյուսակները կապ չունեն թեմայի հետ: Կա զանգերի վերահսկիչ (is_cache), կա գրանցում (is_customs), կա զանգերի պատմություն (is_histories): Մնացած աղյուսակները որոշվում են լուծվող առաջադրանքով:

Իրականում այս լուծումն առաջարկում է ստեղծել ձեր սեփական OODB-ն՝ հիմնված տիրույթի տվյալների բազայի կառուցված մոդելի և խնդրի լուծման վրա: Այստեղ կա մի հսկայական պլյուս՝ սա տվյալների ձեր սեփական հայեցակարգն է, դրանց ներկայացման ձեր մոդելը և նրանց միջև փոխհարաբերությունները: Այստեղ կա հիմք՝ մեծ հարաբերական տվյալների բազա: Ինչ-որ բան փնտրելու և ինչ-որ բան թյուրիմացության խնդիր չի լինի։

Մոդել՝ օբյեկտային համակարգ + DBMS

Տեղեկատվական տեխնոլոգիաների ոլորտում ինչ-որ բան փոխելը գրեթե անհնար է. Իրական տեղեկատվական հեղափոխությունը դեռ հեռու է։ մասնագիտական գիտակցությունԾրագրային ապահովման մշակողները չեն պատրաստվում փոխել դասական ավանդույթները. Բայց իրավիճակից ելք դեռ կա։

Իդեալական լուծում
Իդեալական լուծում

Օգտագործելով տվյալների բազայի կառավարման հուսալի ժամանակակից համակարգեր՝ որպես սեփական մոդելի գոյության միջավայր ստեղծելու հիմք, դուք կարող եք նկատելի հաջողության հասնել:

Ամեն դեպքում, առաջադրանքը լուծելու համար դուք պետք է ստեղծեք տեսք կամ տվյալների մոդել, բայց դա պետք է ճիշտ կատարեք. թող այն լինի օբյեկտների համակարգ, իսկ լավ DBMS՝ նրա միջավայրը:

Խորհուրդ ենք տալիս: