Օբյեկտ-կողմնորոշված տվյալների բազաներում (OODB) օգտվողները կարող են գործողություններ սահմանել որոշակի տվյալների բազայի վրա, որը կազմված է օբյեկտներից, որոնք կարող են լինել տարբեր տեսակի և որոնց համար սահմանված են գործողություններ: Նրանք կարող են արդյունավետ կերպով մշակել երկուական տեղեկատվություն, ինչպիսիք են մուլտիմեդիա օբյեկտները: OODB-ի մեկ այլ լրացուցիչ առավելությունն այն է, որ այն կարող է ծրագրավորվել աննշան ընթացակարգային տարբերություններով՝ չազդելով ամբողջ համակարգի վրա:
Ստանդարտի ստեղծման նախադրյալներ
Օբյեկտ-կողմնորոշված OODB տվյալների բազաների պատմությունը սկսվում է անցյալ դարի վերջին: Դրանք ստեղծվել են նոր հավելվածների կարիքները բավարարելու համար։ Ենթադրությունն այն էր, որ օբյեկտ-կողմնորոշված տվյալների բազաները 1990-ականների ընթացքում կհեղափոխեն ծրագրային համակարգերը: Այժմ պարզ է, որ դա այդպես չէ: Այնուամենայնիվ, այս հայեցակարգի վերածնունդը ազատ ծրագրային ապահովման համայնքների միջոցով և դրա համար համապատասխան հավելվածների հայտնաբերումը խթանում է բնութագրերի վերանայումը:OODB, որն այլընտրանք է ամենուր տարածված հարաբերական տվյալների բազաներին:
Օբյեկտ ուղղվածությունը ապահովում է որոշ կամ բոլոր պահանջները կարգավորելու ճկունություն և չի սահմանափակվում ավանդական տվյալների շտեմարանների տվյալների տեսակներով և հարցումների լեզուներով: OODB-ների հիմնական առանձնահատկությունն այն կարողությունն է, որը նրանք տրամադրում են մշակողին, որը թույլ է տալիս նրան հստակեցնել ինչպես բարդ օբյեկտների կառուցվածքը, այնպես էլ կիրառական գործողությունները: OODB-ների ստեղծման մեկ այլ պատճառ է ծրագրային ապահովման մշակման համար լեզուների աճող օգտագործումը:
Տվյալների բազաները դարձել են բազմաթիվ տեղեկատվական համակարգերի հիմքը, սակայն ավանդական տվյալների բազաները դժվար է օգտագործել, երբ դրանց հասանելի հավելվածները գրված են C++, Smalltalk կամ Java լեզուներով: Օրինակ, 1C օբյեկտի վրա հիմնված տվյալների բազաները նախագծվել են այնպես, որ դրանք կարող են ուղղակիորեն ինտեգրվել հավելվածների հետ, որոնք օգտագործում են օբյեկտի վրա հիմնված լեզուներ՝ ընդունելով դրանց հայեցակարգերը՝ Visual Studio. Net, C ++, C, Microsoft SQL Server և ուրիշներ։
OODB-ի հիմնական առավելությունը RMs1-ի (իմպեդանսի) անհրաժեշտության ամբողջական վերացումն է՝ հետագա կատարողականի բարելավմամբ:
Թերություններ.
- Խիստ պարզունակ խորհրդատվական մեխանիզմներ, ոչ ստանդարտ ընդունված հարթակ:
- Հնարավոր չէ պահպանել ընթացակարգերը, քանի որ օբյեկտները կարող են մուտք գործել միայն հաճախորդում:
- Անհասունություն շուկայում.
- Օբյեկտների ֆիզիկական խմբավորում չկա:
Օբյեկտի պարադիգմ
Օբյեկտ-կողմնորոշված տվյալների բազաները ծրագրավորվող տվյալների բազաներ են, որոնք պահում են բարդ տվյալներ և դրանց փոխհարաբերություններն ուղղակիորեն՝ առանց տողեր և սյունակներ նշանակելու, ինչը դրանք ավելի հարմար է դարձնում մեծ խմբաքանակներով աշխատող հավելվածների համար: Օբյեկտներն ունեն շատ-շատ հարաբերություններ և հասանելի են նրանց հետ կապված ցուցիչների օգտագործման միջոցով՝ հարաբերություններ հաստատելու համար: Ինչպես ցանկացած ծրագրավորվող, OODB-ն ապահովում է հավելվածների մշակման միջավայր և մշտական պահեստ, որը պատրաստ է շահագործման: Այն պահպանում և շահարկում է տեղեկատվությունը, որը կարող է թվայնացվել օբյեկտների տեսքով, ապահովում է արագ մուտք և ապահովում է մեծ մշակման հնարավորություններ:
Օբյեկտ-կողմնորոշված տվյալների բազայում օգտագործվող հիմնական հասկացությունները.
- օբյեկտի ինքնությունը;
- կոնստրուկտորի տեսակ;
- լեզվի համատեղելիություն;
- տիպի հիերարխիա և ժառանգություն;
- մշակում բարդ օբյեկտներ;
- պոլիմորֆիզմ և օպերատորի գերբեռնվածություն;
- տարբերակների ստեղծում։
Օբյեկտ-կողմնորոշված տվյալների բազան բնութագրող բոլոր ասպեկտները ամբողջությամբ դիտարկելու համար կարևոր է նշել օբյեկտի բոլոր կարևոր պարադիգմները.
- Encapsulation-ը հատկություն է, որը թույլ է տալիս թաքցնել տեղեկատվությունը այլ օբյեկտների համար՝ դրանով իսկ կանխելով սխալ մուտքը կամ կոնֆլիկտները:
- Ժառանգությունը հատկություն է, որով օբյեկտները ժառանգում են վարքագիծը դասի հիերարխիայում:
- Պոլիմորֆիզմը գործողության հատկություն է, որով այն կարելի է կիրառելտարբեր տեսակի օբյեկտներ։
- Օպերացիայի միջերեսը կամ ստորագրությունը ներառում է դրա արգումենտների կամ պարամետրերի անվանումը և տվյալների տեսակները:
- Օպերացիայի իրականացումը կամ մեթոդը նշված է առանձին և կարող է փոփոխվել՝ առանց ինտերֆեյսի վրա ազդելու: Օգտատիրոջ հավելվածները կարող են աշխատել տվյալների հետ՝ կանչելով նշված գործողություններ իրենց անուններով և արգումենտներով՝ անկախ այն բանից, թե դրանք ինչպես են իրականացվել:
Դասեր և ֆունկցիոնալություն
OODB-ում դասերի հասկացությունը դիտարկելիս անհրաժեշտ է տարբերակել «դաս» և «տեսակ» տերմինները։ Տիպը օգտագործվում է նմանատիպ վարքագիծ ունեցող օբյեկտների մի շարք նկարագրելու համար: Այս առումով կախված է նրանից, թե ինչ գործողություններ կարող են կոչվել օբյեկտի վրա: Դասը օբյեկտների հավաքածու է, որոնք ունեն նույն ներքին կառուցվածքը, ուստի այն սահմանում է իրականացում, մինչդեռ տեսակը նկարագրում է, թե ինչպես օգտագործել այն:
Instantiation տերմինը վերաբերում է այն փաստին, որ դասի օրինակավորումը կարող է օգտագործվել արտադրելու օբյեկտների մի շարք, որոնք ունեն նույն կառուցվածքը և վարքագիծը, ինչ դասի կողմից սահմանված:
Օբյեկտների էվոլյուցիայի համար շատ կարևոր հատկանիշ այն է, որ այն կարող է փոխել իր դասը, ներառյալ ատրիբուտներն ու գործողությունները՝ միաժամանակ պահպանելով ինքնությունը: Սա կպահանջի մեխանիզմ՝ արդյունքում առաջացած իմաստային ամբողջականությունը կարգավորելու համար:
Կազմակերպության օբյեկտի վրա հիմնված տվյալների բազայի ժառանգումը թույլ է տալիս դասը սահմանել որպես արդեն գոյություն ունեցող գերդասարանի ենթադաս: Այն կժառանգի բոլոր հատկանիշներն ու մեթոդները վերջինից և կարող է կամայականորեն սահմանելսեփական. Այս հայեցակարգը կարևոր մեխանիզմ է վերաօգտագործման համար: Երկու տարբեր դասերի կառուցվածքի նույն մասերը կարող են սահմանվել միայն մեկ անգամ ընդհանուր գերդասարանում, հետևաբար ավելի քիչ կոդ կգրվի: Կան որոշ համակարգեր, որոնք թույլ են տալիս դասին լինել մեկից ավելի գերդասերի ենթադաս: Այս հատկությունը կոչվում է բազմակի ժառանգություն՝ ի տարբերություն մեկ ժառանգության:
Օբյեկտ-կողմնորոշված տվյալների բազայի օրինակ
Հաճախ օգտակար է օգտագործել նույն անունը նկարների և տեսանյութերի դասերի մեդիա գերդասարանի տարբեր, բայց նմանատիպ մեթոդների համար: Շատ ֆայլեր կարող են դիտվել տարբեր դիտողների կողմից: Նրանք հաճախ կարիք ունեն դիտելու բոլոր լուսանկարներն ու տեսանյութերը՝ օգտագործելով «դիտել» մեթոդը, և պետք է գործարկվի համապատասխան ծրագիրը։ Երբ գործառույթը կանչվում է և տեսանյութի հղումը փոխանցվում է, մեդիա նվագարկիչը գործարկվում է: Այս ֆունկցիան իրականացնելու համար առաջին հերթին անհրաժեշտ է նկարների և վիդեո դասերի ընդհանուր մեդիա սուպերկլասում սահմանել «ներկայացում» օպերացիան։ Ենթադասերից յուրաքանչյուրը վերասահմանում է որոնման գործողությունը՝ իրենց հատուկ կարիքների համար: Սա հանգեցնում է տարբեր մեթոդների, որոնք ունեն նույն գործողության անվանումը: Այս դեպքում այս ֆունկցիայի օգտագործումը կարևոր առավելություն ունի։
OODB կառուցվածք
Օբյեկտ ուղղված պարադիգմը հիմնված է յուրաքանչյուր օբյեկտի հետ կապված տվյալների և կոդի ամփոփման վրա մեկ մոդուլում: Հայեցակարգային առումով բոլոր փոխազդեցությունները դրա և համակարգի մնացած մասերի միջև իրականացվում են հաղորդագրությունների միջոցով: Այսպիսով, ինտերֆեյսընրանց միջև որոշվում է թույլատրելի հավաքածուով։
Ընդհանուր առմամբ, յուրաքանչյուր օբյեկտ կապված է մի շարքի հետ.
- Փոփոխականներ, որոնք պարունակում են օբյեկտի տվյալներ և համապատասխանում են ER մոդելի ատրիբուտներին:
- Հաղորդագրություններ, որոնց նա պատասխանում է: Յուրաքանչյուրը կարող է ունենալ կամ չունենալ պարամետրեր, մեկ կամ ավելի:
- Մեթոդներ, որոնցից յուրաքանչյուրը կոդ է, որն իրականացնում է հաղորդագրությունները և վերադարձնում արժեք՝ ի պատասխան դրան:
Հաղորդագրություններ OO միջավայրում չի ենթադրում ֆիզիկական SMS-ի օգտագործում համակարգչային ցանցերում: Ընդհակառակը, դա վերաբերում է օբյեկտների միջև հարցումների փոխանակմանը, անկախ դրանց կատարման ճիշտ մանրամասներից։ Երբեմն արտահայտությունն անվանում է մեթոդ՝ գործարկելու այն փաստը, որ հաղորդագրություն է ուղարկվել օբյեկտ և օգտագործում է համապատասխան մեթոդի կատարումը:
Օբյեկտի ինքնությունը
Օբյեկտ-կողմնորոշված տվյալների բազայի համակարգը ապահովում է տվյալների բազայում պահվող յուրաքանչյուր անկախ օբյեկտի եզակի նույնականացում: Այն սովորաբար իրականացվում է համակարգի կողմից ստեղծված եզակի օբյեկտի նույնացուցիչի կամ OID-ի միջոցով: OID արժեքը անտեսանելի է արտաքին օգտագործողի համար, սակայն համակարգը օգտագործում է այն ներքին՝ օբյեկտների միջև կապերը կառավարելու համար:
OID-ի հիմնական հատկությունը անփոփոխելի լինելն է: Որոշակի օբյեկտի համար OID արժեքը երբեք չպետք է փոխվի: Սա պահպանում է ներկայացված իրական աշխարհի ինքնությունը: Նախընտրելի է նաև, որ յուրաքանչյուր OID օգտագործվի միայն մեկ անգամ, նույնիսկ եթե այն հեռացվի տվյալների շտեմարանից, դրա OID-ը չպետք է վերագրվի մյուսին: Նաև հաճախ անտեղի է համարվում դրա հիմքը ֆիզիկականի վրապահեստում գտնվող օբյեկտի հասցեն, քանի որ տվյալների բազայում դրանք վերակազմավորելը կարող է փոխել OID-ը: Այնուամենայնիվ, որոշ համակարգեր օգտագործում են ֆիզիկական հասցեն որպես OID՝ օբյեկտների առբերման արդյունավետությունը բարձրացնելու համար: Օբյեկտ-կողմնորոշված շրջանակը ավտոմատ կերպով պարտադրում է հարաբերական սահմանափակումներ, որոնք սովորաբար ավելի կիրառելի են՝ տիրույթ, բանալի, օբյեկտի ամբողջականություն և ռեֆերենցիալ ամբողջականություն:
Երեք հիմնական կոնստրուկտորներ
OODB-ում բարդ օբյեկտների արժեքները կամ վիճակները կարող են ստեղծվել ուրիշներից՝ օգտագործելով որոշակի տեսակի կոնստրուկտորներ: Դրանք ներկայացնելու եղանակներից մեկն այն է, որ յուրաքանչյուրը եռյակ լինի (i, c, v), որտեղ i-ն օբյեկտի եզակի նույնացուցիչն է (OID), c-ը կոնստրուկտորն է, այսինքն՝ ցուցիչ, թե ինչպես է օբյեկտի արժեքը։ ստեղծված, իսկ v-ն օբյեկտի արժեքն է կամ վիճակը: Կարող են լինել մի քանի կոնստրուկտորներ՝ կախված տվյալների մոդելից և OO համակարգից:
Երեք հիմնական օբյեկտի վրա հիմնված տվյալների բազայի կառուցողներ.
- ատոմներ;
- tuples;
- կոմպլեկտներ.
Այլ ավելի տարածված օգտագործում են ցուցակներն ու գծապատկերները: Կա նաև D տիրույթ, որը պարունակում է բոլոր հիմնական ատոմային արժեքները, որոնք ուղղակիորեն հասանելի են համակարգում: Դրանք սովորաբար ներառում են ամբողջ թվեր, իրական թվեր, նիշերի տողեր, ամսաթվեր և ցանկացած այլ տիպի տվյալ, որը համակարգն ուղղակիորեն մշակում է: Թե՛ օբյեկտների կառուցվածքը և թե՛ գործողությունները ներառված են դասի սահմանումների մեջ։
Համատեղելիություն ծրագրավորման լեզուների հետ
Օբյեկտ-կողմնորոշված տվյալների բազաների հիմնական հասկացությունները օգտագործվում ենորպես նախագծման գործիքներ և կոդավորված տվյալների բազայի հետ աշխատելու համար:
Կան մի քանի հնարավոր լեզուներ, որոնցում այս հասկացությունները կարող են ինտեգրվել.
- Տվյալների մշակման լեզվի ընդլայնում, ինչպիսին է SQL-ը՝ ավելացնելով բարդ տեսակներ և OOP: Համակարգերը տրամադրում են օբյեկտի վրա հիմնված ընդարձակումներ հարաբերական համակարգերին, որոնք կոչվում են օբյեկտի վրա հիմնված հարաբերական համակարգեր:
- Գոյություն ունեցող օբյեկտ-կողմնորոշված ծրագրավորման լեզվի օգտագործում և ընդլայնում այն տվյալների բազաների հետ աշխատելու համար: Դրանք կոչվում են մշտական ծրագրավորման լեզուներ և թույլ են տալիս ծրագրավորողներին ուղղակիորեն աշխատել տվյալների հետ՝ առանց SQL-ի նման տվյալների մշակման լեզվով անցնելու: Դրանք կոչվում են համառ, քանի որ տվյալները շարունակում են գոյություն ունենալ այն ստեղծած ծրագրի ավարտից հետո:
Որ տարբերակն օգտագործելու որոշում կայացնելիս հիշեք, որ մշտական լեզուները հակված են հզոր լինելու, և համեմատաբար հեշտ է թույլ տալ ծրագրավորման սխալներ, որոնք վնասում են տվյալների բազան: Լեզուների բարդությունը դժվարացնում է բարձր մակարդակի ավտոմատ օպտիմիզացումը, ինչպիսին է սկավառակի I/O-ի կրճատումը: Շատ հավելվածներում դեկլարատիվ հարցումներ կատարելու հնարավորությունը կարևոր է, սակայն մշտական լեզուները ներկայումս թույլ չեն տալիս նման հարցումներ կատարել առանց խնդիրների:
Ժառանգության տեսակների հիերարխիա
Օբյեկտին ուղղված տվյալների բազայի սխեմաները սովորաբար պահանջում են մեծ թվով դասեր: Այնուամենայնիվ, մի քանի դասեր նման են միմյանց: Նրանց միջև նմանությունների ուղղակի ներկայացումը թույլ տալու համար անհրաժեշտ է տեղադրել.դրանք մասնագիտացումների հիերարխիայի մեջ: Այս հայեցակարգը նման է ER մոդելներին: Դասերի մասնագիտացումները կոչվում են ենթադասեր, որոնք սահմանում են լրացուցիչ հատկանիշներ և մեթոդներ գոյություն ունեցող դասի համար: Ենթադասերով ստեղծված օբյեկտները ամեն ինչ ժառանգում են ծնողից: Այս ժառանգական բնութագրերից մի քանիսը կարող են փոխառված լինել հիերարխիայի ավելի բարձր մակարդակներից:
Օբյեկտները համարվում են բարդ, քանի որ դրանք պահանջում են մեծ քանակությամբ պահեստային տարածք և չեն հանդիսանում տվյալների ստանդարտ տեսակների մաս, որոնք սովորաբար առաջարկում է Օբյեկտ ուղղված տվյալների բազայի կառավարումը (OODBS): Քանի որ օբյեկտների չափը նշանակալի է, SOOBMS-ը կարող է ստանալ օբյեկտի մի մասը և տրամադրել այն հավելվածին, նախքան ամբողջ օբյեկտը ձեռք բերելը: Այն կարող է նաև օգտագործել բուֆերային և քեշի մեթոդներ՝ օբյեկտի մասերը ժամանակից շուտ ստանալու համար, նախքան հավելվածը մուտք գործի դրանք:
OODB-ն օգտատերերին թույլ է տալիս ստեղծել նոր տիպեր, որոնք ներառում են և՛ կառուցվածքը, և՛ գործառնությունները, այս դեպքում՝ ընդարձակվող տիպի համակարգը: Դուք կարող եք ստեղծել նոր տեսակների գրադարաններ՝ սահմանելով դրանց կառուցվածքը և գործողությունները: Դրանցից շատերը կարող են պահել և ստանալ մեծ կառուցվածքային օբյեկտ տողերի և նիշերի կամ բիթերի տեսքով, որոնք «ինչպես կա» փոխանցվում են կիրառական ծրագրին մեկնաբանման համար:
Մեթոդը կարող է ուղղակիորեն մուտք գործել թիրախ օբյեկտի ատրիբուտները անունով, ներառյալ ցանկացած ժառանգված ծնող դասերից, բայց պետք է մուտք ունենա երկրորդական ազդանշաններով այլ օբյեկտների ատրիբուտներ: Հայեցակարգը թույլ է տալիս կապել նույն օպերատորի անունը կամ նշանըդրա երկու կամ ավելի տարբեր իրականացումներ՝ կախված օբյեկտների տեսակից:
Հավելվածների կառուցում
ՕՕ համակարգեր օգտագործող տվյալների բազայի շատ հավելվածներ պահանջում են նույն օբյեկտի մի քանի տարբերակներ: Սովորաբար, սպասարկման գործողությունները կիրառվում են ծրագրային ապահովման համակարգի նկատմամբ, քանի որ դրանց պահանջները փոխվում են, և ներառում է մշակման և իրականացման որոշ մոդուլների փոփոխություն: Եթե համակարգն արդեն աշխատում է, և եթե մեկ կամ մի քանի մոդուլներ պետք է փոխվեն, ծրագրավորողը պետք է ստեղծի դրանցից յուրաքանչյուրի նոր տարբերակը՝ փոփոխություններ կատարելով:
Նշեք, որ օբյեկտի երկու տարբերակից ավելին կարող է լինել, եթե սկզբնական մոդուլից բացի երկուսը պահանջվեն: Նույն ծրագրային մոդուլի սեփական տարբերակները կարող են միաժամանակ թարմացվել: Սա կոչվում է զուգահեռ օբյեկտի վրա հիմնված տվյալների բազայի ձևավորում: Այնուամենայնիվ, միշտ գալիս է մի կետ, երբ դրանք պետք է միաձուլվեն, որպեսզի հիբրիդային OODB-ն ներառի կատարված փոփոխությունները, որպեսզի դրանք համատեղելի լինեն:
Օբյեկտ-կողմնորոշված պայմաններ
Բոլոր համակարգչային համակարգերը պետք է ունենան իրենց ճարտարապետության հատկությունները, որպեսզի հաշվի առնվեն: Օրինակ՝ համակարգը պետք է ունենա աղյուսակներ՝ հարաբերական համարվելու համար: OODB-ը բացառություն չէ և պարունակում է օբյեկտի ճարտարապետության որոշ հիմնական հատկություններ: Այնուամենայնիվ, իրական աշխարհում այս հատկություններից շատերը քննարկվում են, և որոշները, ինչպիսիք են բազմակի ժառանգությունը, համարվում են օբյեկտի վրա հիմնված տվյալների բազայի մոդելի բարելավումներ, քանորպես բազային մաս: Օրինակ, օբյեկտի վրա հիմնված Smalltalk լեզվում բազմակի ժառանգությունը չի աջակցվում, չնայած այն համարվում է օբյեկտի ճարտարապետության մաս:
Մեթոդները դասի համար սահմանում են գործողությունների մի շարք, որոնք կարող են կատարվել օբյեկտի վրա: Օրինակ, երբ այն կիրառվում է օբյեկտի վրա, այն կա՛մ վերադարձնում է արժեք, կա՛մ կատարում է որոշակի գործողություն՝ արժեքները թարմացնելու համար: Երբեմն մեթոդները չեն վերադարձնում այն: Եթե մեթոդը նախատեսված էր փոխադրամիջոցի համար ուղևորների թիվը թարմացնելու համար, ոչ մի արժեք չէր վերադարձվի, բայց թիրախի տվյալների տարրը կփոխեր այն:
Օբյեկտները OODB-ում հիմնարար հասկացություն են: Ըստ էության, առարկաները իրական աշխարհի իրերի վերացական ներկայացումն են, որոնք պահվում են դրանում: Օբյեկտը դասի օրինակ է այն իմաստով, որ այն բացառված է դրա սահմանումից:
Դուք կարող եք պատկերացնել օբյեկտը որպես ինքնուրույն փաթեթ, որն ունի երեք մաս.
- Սեփական անձնական տեղեկատվություն, տվյալների արժեքներ։
- Մասնավոր ընթացակարգեր, որոնք կօգտագործեն արժեքները դասի սահմանման միջոցով:
- Բաց ինտերֆեյս, որպեսզի այս օբյեկտը կարողանա հաղորդակցվել ուրիշների հետ:
OODB օրինակներ
Օգտագործելով OODB-ը պարզեցնում է հայեցակարգը, քանի որ ավելի բնական է ներկայացնել այն տեղեկատվությունը, որը պետք է պահպանվի: Տվյալների բազայի կառուցվածքը կամ տրամաբանությունը մոդելավորելու համար դասերի դիագրամների օգտագործումը թույլ է տալիս ներկայացնել դասերը իրենց կառուցվածքային հարաբերություններով և ժառանգականությամբ: Որպեսզի մոդելավորվի դինամիկայի մի մասը, փոխազդեցությունը ևՕբյեկտների միջև վարքագիծը, կօգտագործվի հաջորդականության դիագրամ՝ ներկայացնելու ժամանակավոր հարաբերություններում տեղակայված օբյեկտների փոխազդեցությունը՝ նկարագրելով հնարավոր վիճակները, որպեսզի դրանք գտնվեն՝ հաշվի առնելով իրադարձության տեղի ունեցած փոխված վիճակը:
Օբյեկտ-կողմնորոշված տվյալների բազայի օրինակ ներկայացված է ստորև:
Նրանք ունեն անուն և կյանք, որը կարող է լինել ժամանակավոր կամ մշտական: OODB բանալին այն կարողությունն է, որը նրանք տրամադրում են ծրագրավորողին` հստակեցնելու, թե քանի կառուցվածք և գործողություններ կկիրառվեն իրենց վրա: Տվյալների բարդ տեսակների հետ աշխատելու համար կա ճկունություն և աջակցություն: Դուք կարող եք ստեղծել դասեր և ենթադասեր, օրինակ՝ հաճախորդների բազան կարող է ունենալ այս հաճախորդի հղման ենթադաս, և այն կժառանգի սկզբնական դասի բոլոր ատրիբուտներն ու բնութագրերը, այս մոտեցումը թույլ է տալիս արագ և ճկուն կերպով մշակել բարդ տվյալները: