Aina za data. Muundo wa data wenye mwelekeo wa kitu Muundo wa data wenye mwelekeo wa kitu

Utangulizi

Kuibuka kwa mwelekeo wa hifadhidata zenye mwelekeo wa kitu (OODB) iliamuliwa, kwanza kabisa, na mahitaji ya mazoezi: hitaji la kukuza mifumo ngumu ya utumiaji wa habari ambayo teknolojia ya mifumo ya hifadhidata ya awali haikuwa ya kuridhisha kabisa. Bila shaka, OODB haikutokea popote. Msingi unaolingana ulitolewa na kazi ya hapo awali katika uwanja wa hifadhidata na maeneo ya muda mrefu ya lugha za programu na aina za data za kufikirika na lugha za programu zinazoelekezwa na kitu.

Kama ilivyo kwa unganisho na kazi ya hapo awali katika uwanja wa hifadhidata, ushawishi mkubwa zaidi juu ya kazi katika uwanja wa OODB ulitolewa na ukuzaji wa DBMS na familia iliyofuata ya hifadhidata, ambayo iliunga mkono usimamizi wa vitu ngumu. Kazi hizi zilitoa msingi wa kimuundo wa shirika la OODB. Muhtasari huu utajadili OOMD na OODBMS.

Muundo wa data unaolengwa na kitu

Wacha tuchunguze moja ya njia za kuunda hifadhidata - kwa kutumia mfano wa data unaoelekezwa na kitu (OOMD). Uundaji wa data katika OOMD unatokana na dhana ya kitu. OOMD kawaida hutumiwa katika maeneo ya somo ngumu ambayo utendaji wa mfano wa uhusiano hautoshi kwa modeli (kwa mfano, kwa mifumo ya kiotomatiki ya muundo (CAD), mifumo ya uchapishaji, n.k.).

Muundo wa data unaolengwa na kitu ODMG hutofautiana na miundo mingine hasa katika kipengele kimoja cha msingi. Katika modeli ya data ya SQL na modeli halisi ya data ya uhusiano, hifadhidata ni mkusanyiko wa kontena za data zilizopewa jina za aina sawa: majedwali au uhusiano, mtawalia. Katika modeli ya data inayolengwa na kitu, hifadhidata ni seti ya vitu (vyombo vya data) vya aina ya kiholela.

Wakati wa kuunda DBMS inayoelekezwa kwa kitu (OODBMS), njia tofauti hutumiwa, ambazo ni:

zana za kupachika iliyoundwa kwa ajili ya kufanya kazi na hifadhidata katika lugha inayolenga kitu;

upanuzi wa lugha iliyopo kwa kufanya kazi na hifadhidata zilizo na vitendaji vinavyolenga kitu;

uundaji wa maktaba zenye mwelekeo wa kitu za kazi za kufanya kazi na hifadhidata;

kuunda lugha mpya na muundo mpya wa data unaoelekezwa na kitu.

Faida za OOMD ni pamoja na uwezo mpana wa uundaji wa kikoa, lugha ya kuuliza maswali, na utendaji wa juu. Kila kitu kwenye OOMD kina kitambulisho cha kipekee (OID - kitambulisho cha kitu). Kufikia kwa OID ni haraka zaidi kuliko kutafuta katika jedwali la uhusiano.

Miongoni mwa hasara za OODB, ni lazima ieleweke ukosefu wa mfano unaokubalika kwa ujumla, ukosefu wa uzoefu katika kuunda na uendeshaji wa OODB, utata wa matumizi na zana za kutosha za ulinzi wa data.

Sasa hebu tuangalie jinsi msaada wa mfano wa data unatekelezwa katika mifumo halisi ya usimamizi wa hifadhidata.

Katika mfano wa mwelekeo wa kitu (OOM), wakati wa kuwasilisha data, inawezekana kutambua rekodi za hifadhidata za kibinafsi. Uhusiano umeanzishwa kati ya rekodi za hifadhidata na kazi zao za usindikaji kwa kutumia taratibu zinazofanana na vifaa vinavyofanana katika lugha za programu zinazoelekezwa na kitu.

OOM ya kawaida imeelezewa katika mapendekezo ya kiwango cha ODMG-93 (Kikundi cha Usimamizi wa Hifadhidata ya Kitu - kikundi cha usimamizi wa hifadhidata kinachoelekezwa na kitu). Bado haijawezekana kutekeleza kikamilifu mapendekezo ya ODMG-93. Ili kuelezea mawazo muhimu, zingatia muundo uliorahisishwa wa hifadhidata inayolengwa na kitu.

Muundo wa hifadhidata inayolengwa na kitu inaweza kuwakilishwa kielelezo kama mti, nodi zake ni vitu. Sifa za vitu zinaelezewa na aina fulani ya kawaida (kwa mfano, kamba) au aina iliyoundwa na mtumiaji (inafafanuliwa kama darasa).

Thamani ya sifa ya mfuatano wa aina ni mfuatano wa wahusika. Thamani ya mali ya darasa la aina ni kitu ambacho ni mfano wa darasa linalolingana. Kila mfano wa kitu cha darasa huchukuliwa kuwa mtoto wa kitu ambacho kinafafanuliwa kama mali. Kitu cha mfano cha darasa ni cha darasa lake na kina mzazi mmoja. Mahusiano ya jumla katika hifadhidata huunda safu iliyounganishwa ya vitu.

Hifadhidata inayolengwa na kitu(OODB) - hifadhidata ambayo data imeundwa kwa namna ya vitu, sifa zao, mbinu na madarasa.

Hifadhidata zenye mwelekeo wa kitu kawaida hupendekezwa kwa kesi ambapo usindikaji wa utendaji wa juu wa data na muundo changamano unahitajika.

Faili ya maelezo ya OODB inapendekeza sifa za lazima ambazo OODB yoyote lazima izingatie. Chaguo lao linategemea vigezo 2: mfumo lazima uelekezwe na kitu na uwe hifadhidata.

Sifa zinazohitajika

1. Msaada kwa vitu ngumu. Mfumo lazima utoe uwezo wa kuunda vitu vyenye mchanganyiko kupitia matumizi ya waundaji wa vitu vyenye mchanganyiko. Ni muhimu kwamba wajenzi wa kitu wawe wa orthogonal, yaani, mjenzi yeyote anaweza kutumika kwa kitu chochote.

2. Msaada kwa ubinafsi wa vitu. Vitu vyote lazima viwe na kitambulisho cha kipekee ambacho hakitegemei maadili ya sifa zao.

3. Usaidizi wa encapsulation. Ufungaji sahihi unapatikana kwa sababu ya ukweli kwamba waandaaji wa programu wanapata tu uainishaji wa kiolesura cha mbinu, na data na utekelezaji wa mbinu zimefichwa ndani ya vitu.

4. Msaada kwa aina na madarasa. OODB inahitajika ili kuunga mkono angalau dhana moja ya tofauti kati ya aina na madarasa. (Neno "aina" linapatana zaidi na dhana ya aina ya data dhahania. Katika lugha za programu, kigezo hutangazwa kwa kiashirio cha aina yake. Mkusanyaji anaweza kutumia maelezo haya kukagua shughuli zinazofanywa kwenye kigezo kinacholingana na aina yake, ambayo husaidia kuhakikisha usahihi wa programu.Kwa upande mwingine, darasa ni kiolezo cha kuunda vitu na hutoa njia ambazo zinaweza kutumika kwa vitu hivyo. Kwa hivyo, dhana ya "darasa" ni zaidi ya kukimbia- wakati kuliko wakati wa kukusanya.)

5. Msaada wa kurithi aina na madarasa kutoka kwa mababu zao. Aina ndogo, au aina ndogo, lazima irithi sifa na mbinu kutoka kwa aina yake kuu, au darasa kuu, mtawalia.

6. Kupakia kupita kiasi pamoja na kuunganisha kamili. Njia lazima zitumike kwa vitu vya aina tofauti. Utekelezaji wa njia lazima utegemee aina ya vitu ambavyo njia hiyo inatumika. Ili kutoa utendakazi huu, ufungaji wa jina la njia kwenye mfumo haupaswi kutokea hadi wakati wa utekelezaji wa programu.

7. Ukamilifu wa kimahesabu. Lugha ya upotoshaji wa data lazima iwe lugha ya programu ya madhumuni ya jumla.



8. Seti ya aina za data lazima iongezeke. Mtumiaji lazima awe na njia ya kuunda aina mpya za data kulingana na seti ya aina za mfumo zilizoainishwa awali. Zaidi ya hayo, haipaswi kuwa na tofauti kati ya njia ya mfumo na aina ya data ya mtumiaji hutumiwa.

OO DBMS

Hifadhidata zenye mwelekeo wa kitu- hifadhidata ambazo habari huwasilishwa kwa namna ya vitu, kama katika lugha za programu zinazoelekezwa na kitu.

Kutumia au kutotumia mifumo ya usimamizi wa hifadhidata inayoelekezwa na kitu (OODBMS) katika miradi halisi leo? Ni katika hali gani zinapaswa kutumiwa na katika hali gani hazipaswi kutumiwa?

Hapa faida kutumia OODBMS:

· Hakuna tatizo la kutolingana kati ya muundo wa data katika programu na hifadhidata. Data zote zimehifadhiwa katika hifadhidata katika fomu sawa na katika muundo wa programu.

· Hakuna haja ya kuunga mkono kitengenezo kielelezo cha data kwenye upande wa DBMS.

· Vitu vyote katika kiwango cha chanzo cha data vimechapwa kwa ukali. Hakuna tena majina ya safu wima! Kurekebisha hifadhidata inayolengwa na kitu na msimbo unaotumika juu yake sasa imejiendesha otomatiki, badala ya mchakato wa kuchosha na wa kuchosha.

Kiwango cha ODMG

Ilani ya kwanza ilikuwa rasmi tu makala iliyotolewa katika Mkutano wa Hifadhidata Zinazoelekezwa na Kipengee kundi la watu binafsi. Kama unavyoona katika kifungu kidogo kilichotangulia, matakwa ya Ilani yalikuwa ya hisia zaidi kuliko ilivyobainishwa kwa uwazi. Mnamo 1991, muungano wa ODMG uliundwa (basi ufupisho huu ulipanuliwa kama Kikundi cha Usimamizi wa Hifadhidata ya Kitu, lakini baadaye ilipata tafsiri pana zaidi - Kikundi cha Usimamizi wa Data ya Kitu) Muungano wa ODMG unahusishwa kwa karibu na muungano mkubwa zaidi wa OMG ( Kikundi cha Usimamizi wa Kitu), ambayo iliundwa miaka miwili mapema. Lengo kuu la asili la ODMG lilikuwa kukuza kiwango cha tasnia kwa hifadhidata zenye mwelekeo wa kitu (mfano wa kawaida). Mfano wa kitu cha msingi OMG COM ( Mfano wa Kitu cha Msingi) Katika kipindi cha kuwepo kwake kwa zaidi ya miaka kumi, ODMG imechapisha matoleo matatu ya msingi ya kiwango, la hivi punde zaidi likiitwa ODMG 3.0. 16



Inafurahisha kwamba ingawa ODMG (kulingana na mwandishi) ilitoka kwa OMG, katika miaka ya hivi karibuni viwango vingine vya OMG vimeegemea kwenye modeli ya kitu cha ODMG. Hasa, maelezo ya lugha ya OCL ( Lugha ya Kizuizi cha Kitu), ambayo ni sehemu ya maelezo ya jumla ya lugha ya UML 1.4 (na UML 2.0). Katika makala haya, hatulengi kufanya ulinganisho wa kina wa mbinu za OMG na ODMG na kuwarejelea wasomaji wanaovutiwa. Encyclopedia Kogalovsky na nyenzo kutoka kwa tovuti za muungano huu. Tutajiwekea kikomo kwa muhtasari mfupi wa mawazo makuu yaliyo katika kiwango cha ODMG-3.

Usanifu wa ODMG

Usanifu uliopendekezwa na ODMG umeonyeshwa kwenye Mtini. 2.1. Usanifu huu unafafanua jinsi data inavyohifadhiwa na aina tofauti za ufikiaji wa mtumiaji kwenye "hifadhi hii ya data" 17 . Hifadhi moja ya data inaweza kufikiwa kutoka kwa lugha ya ufafanuzi wa data, lugha ya hoja na idadi ya lugha za upotoshaji wa data. 18 Katika Mtini. 2.1 ODL maana yake Lugha ya Ufafanuzi wa Kitu, OQL - Lugha ya Maswali ya Kitu na OML - Lugha ya Udhibiti wa Kitu.

Mchele. 2.1. Usanifu wa ODMG

Kati ya usanifu ni data mfano, inayowakilisha muundo wa shirika ambamo data zote zinazosimamiwa na OODBMS huhifadhiwa. Lugha ya ufafanuzi wa kitu, lugha ya hoja, na lugha za ghiliba zimeundwa kwa njia ambayo uwezo wao wote unatokana na muundo wa data. Usanifu huruhusu miundo mbalimbali ya utekelezaji kwa ajili ya kuhifadhi data ya kielelezo, lakini hitaji muhimu ni kwamba maktaba zote za programu na zana zote zinazosaidia zitolewe ndani ya mfumo unaolenga kitu na lazima zihifadhiwe kulingana na data.

Sehemu kuu za usanifu ni zifuatazo.

  • Mfano wa data ya kitu. Data yote iliyohifadhiwa na OODBMS imeundwa kulingana na muundo wa data. Mfano wa data unafafanua semantiki halisi ya dhana zote (tazama hapa chini kwa maelezo zaidi).
  • Lugha ya Ufafanuzi wa Data (ODL). Mipangilio ya hifadhidata inaelezewa kulingana na ODL, ambapo muundo wa modeli za data hupitishwa kwa njia ya lugha ya ufafanuzi. ODL hukuruhusu kuelezea schema kama seti ya miingiliano ya aina ya vitu, ambayo inajumuisha maelezo ya mali ya aina na uhusiano kati yao, na pia majina ya shughuli na vigezo vyake. ODL sio lugha kamili ya programu; utekelezaji wa aina lazima ufanyike katika moja ya lugha za kitengo cha OML. Aidha, ODL ni mtandaoni lugha kwa maana kwamba kiwango cha ODMG hakihitaji utekelezaji wake katika bidhaa za programu za OODBMS ambazo zinazingatiwa kutii viwango. Bidhaa hizi zinaruhusiwa kusaidia lugha za ufafanuzi sawa ambazo zinajumuisha vipengele vyote vya ODL, lakini hubadilishwa kwa sifa za mfumo fulani. Hata hivyo, kuwa na vipimo vya lugha ya ODL katika kiwango cha ODMG ni muhimu kwa sababu lugha hubainisha sifa za muundo wa data.
  • Lugha ya Maswali ya Kitu (ODL). Lugha ina sintaksia sawa na ile ya lugha ya SQL, lakini inategemea semantiki ya modeli ya kitu cha ODMG. Kiwango kinaruhusu matumizi ya moja kwa moja ya OQL na upachikaji wake katika mojawapo ya lugha za kategoria ya OML.

Mfano wa data ya uhusiano

Karibu mifumo yote ya kisasa inategemea ya uhusiano(kimahusiano) miundo ya usimamizi wa hifadhidata. Jina ya uhusiano Hii ni kutokana na ukweli kwamba kila rekodi katika hifadhidata hiyo ina taarifa zinazohusiana na kitu kimoja tu maalum.

KATIKA ya uhusiano Katika DBMS, data zote zilizosindika zinawasilishwa kwa namna ya meza za gorofa. Taarifa kuhusu vitu vya aina fulani imewasilishwa kwa fomu ya tabular: safu za meza zina sifa za vitu mbalimbali, na safu ni lengo la kupunguza maelezo ya sifa zote kwa matukio ya mtu binafsi ya vitu.

Mfano ulioundwa katika hatua ya uundaji wa habari unakidhi zaidi kanuni za uhusiano. Hata hivyo, kubadili mtindo huu kwa uhusiano, ni muhimu kufanya utaratibu unaoitwa kuhalalisha.

Nadharia ya urekebishaji hufanya kazi na tano fomu za kawaida. Fomu hizi zimeundwa ili kupunguza upungufu wa taarifa, kwa hivyo kila fomu ya kawaida inayofuata lazima itimize mahitaji ya ile iliyotangulia na masharti mengine ya ziada. Katika muundo wa database wa vitendo, fomu ya nne na ya tano, kama sheria, haitumiki. Tulijiwekea kikomo kwa kuzingatia fomu nne za kwanza za kawaida.

Wacha tuanzishe dhana zinazohitajika ili kuelewa mchakato wa kupunguza mfano kwa schema ya uhusiano.

Mtazamo- uondoaji wa kitu kilichoelezewa kama seti ya mali zake. Wakati wa hatua ya muundo wa infolojia, tulizungumza juu ya uondoaji wa vitu na tukahusisha mali fulani kwao. Sasa, kwa muundo wa dhana, tunahamia ngazi inayofuata ya uondoaji. Katika hatua hii, vitu kama hivyo havipo tena. Tunafanya kazi na seti ya mali inayofafanua kitu.

Mfano wa Uhusiano- seti ya maadili ya mali ya kitu fulani.

Ufunguo wa msingi- seti ya kutambua sifa, i.e. maana ya sifa hizi ni ya kipekee katika heshima fulani. Hakuna matukio mawili ya uhusiano ulio na maadili sawa katika ufunguo msingi.

Sifa rahisi- sifa ambayo maadili yake hayagawanyiki.

Sifa tata- sifa ambayo thamani yake ni seti ya maadili ya mali kadhaa tofauti ya kitu au maadili kadhaa ya mali moja.

Dhana za asili..

Kikoa

Wazo la kikoa ni mahususi zaidi kwa hifadhidata, ingawa ina mlinganisho fulani na aina ndogo katika baadhi ya lugha za programu. Katika umbo lake la jumla, kikoa kinafafanuliwa kwa kubainisha aina fulani ya data ya msingi ambayo vipengele vya kikoa vinahusika, na usemi wa kimantiki usio na mpangilio unaotumika kwa kipengele cha aina ya data. Ikiwa tathmini ya usemi huu wa Boolean itarudi kuwa kweli, basi kipengele cha data ni kipengele cha kikoa.

Tafsiri sahihi zaidi ya angavu ya dhana ya kikoa ni kuelewa kikoa kama seti inayokubalika ya maadili ya aina fulani. Kwa mfano, kikoa cha "Majina" katika mfano wetu kinafafanuliwa kwa aina ya mfuatano wa herufi msingi, lakini maadili yake yanaweza tu kujumuisha mifuatano ambayo inaweza kuwakilisha jina (haswa, mifuatano hiyo haiwezi kuanza na herufi laini).

Inapaswa pia kuzingatiwa mzigo wa semantic wa dhana ya kikoa: data inachukuliwa kulinganishwa tu ikiwa ni ya kikoa sawa. Katika mfano wetu, thamani za kikoa "Nambari za Pengo" na "Nambari za Kikundi" ni za aina kamili, lakini hazilinganishwi. Kumbuka kwamba DBMS nyingi za uhusiano hazitumii dhana ya kikoa, ingawa Oracle V.7 tayari inaiunga mkono.

Muundo unaolenga kitu

Katika mfano wa mwelekeo wa kitu, wakati wa kuwasilisha data, inawezekana kutambua rekodi za hifadhidata za kibinafsi. Uhusiano umeanzishwa kati ya rekodi za hifadhidata na kazi zao za usindikaji kwa kutumia taratibu zinazofanana na vifaa vinavyofanana katika lugha za programu zinazoelekezwa na kitu.

Muundo sanifu unaolenga kitu umefafanuliwa katika mapendekezo ya kiwango cha ODMG-93 (Kikundi cha Usimamizi wa Hifadhidata ya Kitu). Bado haijawezekana kutekeleza kikamilifu mapendekezo ya ODMG-93. Ili kuonyesha mawazo muhimu, fikiria mfano uliorahisishwa kidogo wa hifadhidata inayolengwa na kitu.

Muundo wa hifadhidata inayolengwa na kitu (kwa mfano, Hifadhidata ya Kipengee cha Versant, Duka la Vitu, n.k.) inawakilishwa kwa picha kama mti, nodi zake ni vitu. Sifa za vitu zinaelezewa na aina fulani ya kawaida (kwa mfano, kamba) au aina iliyoundwa na mtumiaji (inafafanuliwa kama darasa).

Thamani ya sifa ya mfuatano wa aina ni mfuatano wa wahusika. Thamani ya mali ya darasa la aina ni kitu ambacho ni mfano wa darasa linalolingana. Kila kitu - mfano wa darasa unachukuliwa kuwa kizazi cha kitu ambacho kinafafanuliwa kama mali. Kitu ni mfano wa darasa ambalo ni la darasa lake na lina mzazi mmoja. Mahusiano ya jumla katika hifadhidata huunda safu madhubuti ya vitu.

Muundo wa kimantiki wa hifadhidata inayolengwa na kitu unafanana kijuujuu na muundo wa hifadhidata ya daraja. Tofauti kuu kati yao ni njia za udanganyifu wa data.

Kufanya vitendo kwenye data katika mfano wa hifadhidata inayozingatiwa, shughuli za kimantiki hutumiwa, zinazoimarishwa na njia za mwelekeo wa kitu za encapsulation, urithi na polymorphism.

Uendeshaji sawa na amri za SQL zinaweza kutumika kwa kiwango kidogo (kwa mfano, kuunda hifadhidata).

Uundaji na urekebishaji wa hifadhidata unaambatana na uundaji wa kiotomatiki na marekebisho ya baadaye ya faharisi (meza za faharisi) zilizo na habari kwa urejeshaji wa data haraka.

Wacha tuchunguze kwa ufupi dhana za encapsulation, urithi na polymorphism kuhusiana na mfano wa hifadhidata unaoelekezwa na kitu.

Ujumuishaji huweka mipaka ya upeo wa jina la mali kwa mipaka ya kitu ambamo imefafanuliwa.

Urithi, kinyume chake, huongeza upeo wa mali kwa wazao wote wa kitu.

Polymorphism katika lugha za programu zinazoelekezwa na kitu inamaanisha uwezo wa msimbo sawa wa programu kufanya kazi na aina tofauti za data. Kwa maneno mengine, ina maana kwamba inaruhusiwa kwa vitu vya aina tofauti kuwa na mbinu (taratibu au kazi) zenye majina sawa. Wakati wa utekelezaji wa mpango wa kitu, njia sawa hufanya kazi kwa vitu tofauti kulingana na aina ya hoja. Kutafuta katika hifadhidata inayolengwa na kitu kunajumuisha kutafuta kufanana kati ya kitu kilichobainishwa na mtumiaji na vitu vilivyohifadhiwa kwenye hifadhidata. Kitu kilichoainishwa na mtumiaji, kinachoitwa lengo la kitu (sifa ya kitu ni ya aina ya lengo), kwa ujumla inaweza kuwa sehemu ndogo ya safu nzima ya vitu vilivyohifadhiwa kwenye hifadhidata. Kitu kinacholengwa, pamoja na matokeo ya hoja, yanaweza kuhifadhiwa kwenye hifadhidata yenyewe.

Faida kuu ya modeli ya data yenye mwelekeo wa kitu kwa kulinganisha na ile ya uhusiano ni uwezo wa kuonyesha habari kuhusu uhusiano changamano kati ya vitu. Muundo wa data unaolengwa na kitu hukuruhusu kutambua rekodi za hifadhidata za kibinafsi na kufafanua utendakazi kwa kuzichakata.

Hasara za modeli inayolenga kitu ni utata wa juu wa dhana, uchakataji wa data usiofaa na kasi ya chini ya hoja.

Aina za data

Hapo awali, DBMS zilitumiwa kimsingi kutatua shida za kifedha na kiuchumi. Katika kesi hii, bila kujali mfano wa uwasilishaji, aina kuu zifuatazo za data zilitumika katika hifadhidata:

  • nambari. Mifano ya maadili ya data: 0.43; 328; 2E+5;
  • ishara (alphanumeric). Mifano ya maadili ya data: "Ijumaa", "string", "programmer";
  • tarehe, zilizobainishwa kwa kutumia aina maalum ya Tarehe au kama data ya kawaida ya wahusika. Mifano ya thamani za data: 12/1/97, 23/2/1999.

Katika DBMS tofauti, aina hizi zinaweza kutofautiana kidogo kutoka kwa kila mmoja kwa jina, anuwai ya maadili, na aina ya uwakilishi. Baadaye, mifumo maalum ya usindikaji wa data ilianza kuonekana katika maeneo mapya ya matumizi, kama vile mifumo ya habari ya kijiografia, usindikaji wa picha za video, n.k. Katika suala hili, watengenezaji walianza kuanzisha aina mpya za data katika DBMS za jadi. Aina mpya za data ni pamoja na zifuatazo:

  • ya muda na ya tarehe, iliyoundwa kuhifadhi habari kuhusu wakati na (au) tarehe. Mifano ya thamani za data: 01/31/85 (tarehe), 9:10:03 (saa), 03/6/1960 12:00 (tarehe na saa);
  • vibambo vya urefu tofauti vilivyoundwa kuhifadhi maelezo ya maandishi ya urefu mrefu, kama vile hati;
  • binary, iliyoundwa kwa ajili ya kuhifadhi vitu vya picha, taarifa za sauti na video, anga, mpangilio na maelezo mengine maalum. Kwa mfano, katika MS Access aina hii ni aina ya data ya "OLE Object Field", ambayo inakuwezesha kuhifadhi data ya picha katika muundo wa BMP (Bitmap) kwenye hifadhidata na kuionyesha moja kwa moja wakati wa kufanya kazi na hifadhidata;
  • viungo vilivyoundwa ili kuhifadhi viungo kwa rasilimali mbalimbali (nodi, faili, nyaraka, nk) ziko nje ya hifadhidata, kwa mfano kwenye mtandao, intranet ya kampuni au kwenye diski kuu ya kompyuta.

Katika DBMS za kisasa zilizo na miundo mbalimbali ya data, aina zote za data zilizoorodheshwa zinaweza kutumika.

04/06/2004 Sikha Bagui

Ukuzaji wa mifumo ya hifadhidata inayolengwa na kitu ilianza katikati ya miaka ya 1980 ili kuitikia hitaji la kukidhi mahitaji ya utumaji tofauti na yale yanayohudumiwa na kuhudumiwa na mifumo ya hifadhidata ya uhusiano. Hebu tuangalie maendeleo katika teknolojia ya hifadhidata inayolengwa na kitu, pamoja na changamoto ambazo jumuiya ya waendelezaji bado inahitaji kushinda ili teknolojia ya hifadhidata inayolengwa na kitu ienee kama teknolojia ya hifadhidata ya uhusiano.

Ukuzaji wa mifumo ya hifadhidata yenye mwelekeo wa kitu (kinachojulikana kama teknolojia ya hifadhidata ya kizazi cha tano) ilianza katikati ya miaka ya 1980 kwa sababu ya hitaji la kukidhi mahitaji ya programu zingine isipokuwa zile za usindikaji wa data ambazo ni tabia ya mifumo ya hifadhidata ya uhusiano. teknolojia ya hifadhidata ya kizazi cha nne). vizazi). Majaribio ya kutumia teknolojia za hifadhidata za uhusiano katika programu ngumu kama vile muundo unaosaidiwa na kompyuta (CAD); utengenezaji wa msaada wa kompyuta (CAM); teknolojia ya programu; mifumo inayotegemea maarifa na mifumo ya medianuwai imefichua mapungufu ya mifumo hifadhidata za uhusiano (RDB). Kizazi kipya cha utumizi wa hifadhidata kilipoibuka, mahitaji yaliibuka ambayo yalitimizwa vyema kwa kutumia hifadhidata zenye mwelekeo wa kitu (OODB).

Fafanuzi nyingi za uelekeo wa kitu na hifadhidata zenye mwelekeo wa kitu zimependekezwa, lakini tutafafanua hifadhidata zinazoelekezwa na kitu kama zile zinazochanganya uelekeo wa kitu na uwezo wa hifadhidata. Mwelekeo wa kitu hufanya iwezekane kuwakilisha moja kwa moja na kuiga matatizo ya ulimwengu halisi, na utendakazi wa hifadhidata inahitajika ili kuhakikisha uthabiti wa data na ufikiaji sambamba wa watumiaji wengi kwa habari ya programu.

Hivi sasa, kuna zaidi ya mifumo 25 ya OBD kwenye soko. Miongoni mwao ni mfumo wa GemStone kutoka Servio, ONTOS kutoka Ontos, ObjectStore kutoka kwa Ubunifu wa Kitu na wengine wengi. Kwa kuongezea, mifumo ya uhusiano ya usimamizi wa hifadhidata iliyotengenezwa na Oracle, Microsoft, Borland, na Informix ilijumuisha zana zinazolenga kitu. Bidhaa nyingi hizi zilionekana katika nusu ya pili ya miaka ya 80, na leo, baada ya karibu muongo mmoja na nusu ya maendeleo, bado hawajafikia ukomavu; Hii ni moja ya sababu ambazo hadi leo soko la dunia la maombi halisi halina haraka ya kukubali mifumo ya OBD. Miongoni mwa OODB za kisasa, karibu hakuna mifumo kamili inayolingana na mifumo ya kisasa ya hifadhidata ya uhusiano. Wacha tujadili mafanikio kuu na shida zinazohusiana na hali ya sasa ya OBD.

Mfano wa OOBD

Sababu ya kuibuka kwa mifumo ya hifadhidata inayolengwa na kitu ilikuwa hitaji la uwakilishi na uundaji wa kutosha zaidi wa vyombo vya ulimwengu halisi, kwani OODBs hutoa modeli ya data iliyokuzwa zaidi kuliko hifadhidata za jadi za uhusiano. Mtazamo wa OODB unatokana na idadi ya dhana za kimsingi kama vile kitu, utambuzi, darasa, urithi, upakiaji kupita kiasi na kufunga kwa uvivu.

Katika modeli ya data yenye mwelekeo wa kitu, chombo chochote katika ulimwengu wa kweli kinawakilishwa na dhana moja tu - kitu. Kitu kina hali na tabia inayohusishwa nacho. Hali ya kitu imedhamiriwa na maadili ya mali yake - sifa. Thamani za mali zinaweza kuwa za awali (kama vile mifuatano au nambari kamili) na vitu visivyo vya awali. Kitu kisicho cha kwanza, kwa upande wake, kina seti ya mali. Kwa hivyo, vitu vinaweza kufafanuliwa kwa kurudia kulingana na vitu vingine. Tabia ya kitu imedhamiriwa kutumia mbinu, ambayo hufanya kazi kwa hali ya kitu.

Kila kitu kina mfumo uliofafanuliwa kitambulisho cha kipekee. Vitu ambavyo vina sifa na tabia sawa vimejumuishwa madarasa. Kitu kinaweza kuwa mfano wa darasa moja tu au madarasa kadhaa.

Madarasa hupangwa katika daraja la darasa. Subclass hurithi mali na mbinu za superclass; Kwa kuongeza, subclasses inaweza kuwa na mali ya mtu binafsi na mbinu. Katika baadhi ya mifumo, kama vile ORION, darasa linaweza kuwa na zaidi ya darasa moja kuu (urithi nyingi), wakati katika mifumo mingine idadi ya darasa kuu ni mdogo kwa moja (urithi moja).

Mifano nyingi zinaruhusu mzigo kupita kiasi mali na mbinu za urithi. Kupakia kupita kiasi kunajumuisha kubadilisha kikoa cha mali na kikoa kipya, au kuchukua nafasi ya utekelezaji mmoja wa mbinu na utekelezaji mwingine.

Faida za mfano wa OOBD

Hifadhidata zenye mwelekeo wa kitu huruhusu vitu changamano kuwakilishwa kwa njia ya moja kwa moja kuliko mifumo ya uhusiano. Hebu tuangalie baadhi ya mafanikio yaliyopo katika nyanja ya OOBD. Mifumo ya OODB inaruhusu watumiaji kufafanua vifupisho; kuwezesha muundo wa viunganisho vingine; huondoa hitaji la funguo zilizoainishwa na mtumiaji; kuunga mkono seti mpya ya vihusishi vya kulinganisha; katika baadhi ya matukio haja ya uhusiano ni kuondolewa; katika hali fulani hutoa utendaji wa juu zaidi kuliko mifumo kulingana na mfano wa uhusiano; kutoa usaidizi kwa matoleo na miamala ya muda mrefu. Hatimaye, aljebra ya kitu imeundwa - ingawa labda bado haijawa katika maelezo mengi kama aljebra ya uhusiano.

Kufafanua Vifupisho Maalum

Hifadhidata zenye mwelekeo wa kitu hutoa uwezo wa kufafanua vifupisho vipya na kudhibiti utekelezaji wa vifupisho hivyo. Vifupisho hivi vipya vinaweza kuendana na miundo ya data inayohitajika katika matatizo changamano, aina mpya za data dhahania. Kwa maneno mengine, vifurushi vya kisasa vya OODB vinampa mtumiaji uwezo wa kuunda darasa jipya na sifa na njia, kuwa na madarasa ambayo yanarithi sifa na njia kutoka kwa darasa kuu, kuunda hali ya darasa, kila moja ikiwa na kitambulisho cha kitu cha kipekee, kupata hali hizi moja baada ya nyingine. moja au kwa vikundi, na pakia na kutekeleza njia. Kwa kuongezea, OODB huruhusu vitu kufafanuliwa kama mikusanyo ya vitu vingine, na mikusanyiko inaruhusu viwango vingi vya kuota. Mali pia inaweza kuwa na muundo tata na hufafanuliwa kwa kutumia mjenzi wa mkusanyiko. Zaidi ya hayo, wanaweza kuwa na vitu visivyo vya asili kama maadili, ambayo hufanya iwezekane kuunda miundo ya vitu vilivyowekwa ndani.

Sifa zenye thamani nyingi hutumiwa katika miundo ya data inayolengwa na kitu ili kueleza miundo changamano ya data. Katika mfano wa uhusiano, hii inafanikiwa kupitia mahusiano ya ziada na kujiunga.

Mfano wa kifurushi cha OODB ambacho kina uwezo wote uliotajwa ni ENCORE. Muundo wa data katika ENCORE unategemea hasa uondoaji wa data. ENCORE inaruhusu uandishi mdogo (urithi), ujumuishaji, miundo changamano, utambuzi wa kitu, na mbinu ya uvivu ya kufunga. Kwa kuongeza, ENCORE hutoa uwezo wa kuunganisha vitu kwa kutumia mali. Katika mfumo wa ENCORE, sifa p inahusiana na kitu x na seti ya vitu S, bila dalili yoyote ya jinsi uhusiano unavyokokotolewa. Inaweza kukokotwa kwa kubainisha moja kwa moja kitambulisho kilichowekwa S (au vitambulisho vya wanachama wake) au kwa kulinganisha maadili ya mali nyingine, kama katika kujiunga.

Ubunifu mwepesi wa viunganisho vingine

Hifadhidata zenye mwelekeo wa kitu zinasaidia kituo cha uhusiano kinyume ili kueleza marejeleo ya pande zote kati ya vitu viwili (uhusiano wa jozi). Mfumo huo unahakikisha uadilifu wa kumbukumbu kwa kuanzisha backlink sahihi mara baada ya kiungo cha mbele kuundwa. Kuna hata chaguo la kueneza uondoaji kiotomatiki kupitia viungo hivi. Mfano wa kifurushi cha OODB ambacho hutoa matengenezo ya kiotomatiki ya mahusiano kinyume ni ObjectStore.

Hakuna haja ya funguo zilizoainishwa na mtumiaji

Muundo wa OODB una dhana ya vitambulishi vya vitu, vinavyozalishwa kiotomatiki na mfumo na kuhakikishwa kuwa vya kipekee kwa kila kitu. Hii, pamoja na ukweli kwamba muundo wa OODB huondoa hitaji la funguo zilizoainishwa na mtumiaji, huipa hifadhidata zenye mwelekeo wa kitu faida zingine. Kwanza, kitambulisho cha kitu hakiwezi kurekebishwa na programu. Pili, dhana ya utambulisho wa kitu inajumuisha dhana tofauti na thabiti ya utambulisho, bila kujali jinsi kitu kinapatikana au jinsi kitu kinavyoundwa na data ya maelezo. Kwa hiyo, vitu viwili havifanani ikiwa vina vitambulisho vya vitu tofauti; katika kesi hii, vitu vinaweza kuwa na miundo sawa, na mali zao zote zina maadili sawa. Katika mfano wa RDB, ambapo kitambulisho cha kitu kinafanywa kupitia funguo zilizoainishwa na mtumiaji, vitu kama hivyo vitazingatiwa kuwa kitu sawa.

Uwepo wa vihusishi vya kulinganisha

Katika RDB, kulinganisha kila wakati kunategemea tu maadili. Katika modeli hii, nakala mbili ni huluki sawa ikiwa sifa zao zote muhimu zina maadili sawa. Hata hivyo, aina nyingine za kulinganisha zimetengenezwa na kufafanuliwa katika modeli ya OODB.

  1. Usawa wa vitu kulingana na utambulisho wao. Vitu viwili, S1 na S2 ni sawa ikiwa ni kitu kimoja (yaani vina kitambulisho sawa cha kitu).
  2. Usawa wa vitu kulingana na maadili. Hii inaweza kuamuliwa katika hatua mbili - (a) vitu viwili vya zamani ni sawa ikiwa vina thamani sawa; (b) vitu viwili visivyo vya asili ni sawa ikiwa vina idadi sawa ya sifa, na kwa kila sifa pi ya kitu S1 kuna sifa pj ya kitu S2 sawa na thamani yake.
  3. Usawa wa mali unaotegemea thamani.
  4. Usawa wa mali kulingana na utambulisho wao.
Uhitaji mdogo wa miunganisho

Uwezo wa kupitia miundo ya kitu na usemi wa njia unaotokana kulingana na sifa za kitu hutupatia njia mpya ya kuangalia tatizo la miunganisho katika OODB. Kujiunga kwa uhusiano ni utaratibu unaolingana na mahusiano mawili kulingana na maadili ya jozi zinazolingana za sifa katika mahusiano hayo. Kwa kuwa katika OODB madarasa mawili yanaweza kuwa na jozi za sifa zinazolingana, bado kunaweza kuwa na hitaji la kujiunga kwa uhusiano (au kujiunga wazi) katika modeli hii. Kwa mfano, tuseme tuna madarasa Mwanafunzi na Shule, na kila moja ya madarasa haya ina sifa Jina na Umri. Ingawa vikoa vya Jina na sifa za Umri za darasa la Shule vinaweza visiwe sawa na vikoa vya Jina na sifa za Umri za darasa la Mwanafunzi, tunaweza kutaka kuhusisha madarasa haya kulingana na maadili ya sifa hizi (sema tafuta wanafunzi wote ambao umri wao ni chini ya umri wa shule anayosoma mwanafunzi).

Lakini, kama ilivyoonyeshwa tayari, usaidizi wa misemo ya njia unaweza kupunguza kwa kiasi kikubwa hitaji la kuunganisha madarasa ikilinganishwa na hali katika RDB. Kuna hata hali ambazo haja ya kujiunga na uhusiano inaweza kuondolewa kabisa. Kwa mfano, wakati kikoa cha sifa ya darasa A ni darasa B, kuleta vitambulisho vya vitu vya darasa fulani ambavyo vimehifadhiwa kama maadili ya sifa ya darasa lingine huondoa hitaji la uunganisho wa kitu kisicho wazi.

Kwa hivyo, katika hifadhidata zenye mwelekeo wa kitu, viungio visivyo wazi, ambavyo vinatolewa na kiota cha kihierarkia cha vitu, ni tofauti na viungio wazi. Mwisho hufanana na viungio vya uhusiano: vitu viwili vinalinganishwa kwa uwazi na maadili ya sifa au vitambulishi vya kitu. Zaidi ya hayo, viungio vyote vya wazi (kulingana na ulinganisho wa thamani au vitambulisho) haviwezi kuonyeshwa katika lugha ya kiuhusiano, kwani katika RDB kihusishi chochote kinaweza tu kuwa na sifa za atomiki.

Faida ya Utendaji

OODB za kisasa si mifumo ya hifadhidata iliyokamilika ikilinganishwa na RDB za kisasa; OODB zina vipengele kadhaa vinavyowapa manufaa ya utendakazi.

  1. Katika OODB, thamani ya sifa ya kitu X ambacho kikoa chake ni kitu kingine Y ni kitambulisho cha kitu Y. Kwa hivyo, ikiwa programu tayari imepata kitu X na sasa inataka kupata kitu Y, basi DBMS inaweza kupata kitu. Y kwa kutafuta kitambulisho chake. Ikiwa kitambulisho hiki ni anwani ya kimwili ya kitu, basi kitu kinaweza kupatikana moja kwa moja; ikiwa kitambulisho ni anwani ya kimantiki, basi kitu kwa kutafuta kipengele cha jedwali cha hashi kinacholingana (ikizingatiwa kuwa mfumo unashikilia jedwali la hashi ambalo huweka kitambulisho cha kitu kwa anwani ya kawaida). Katika RDB hii inaweza isiwe rahisi sana, kwani RDB haitumii vitambulishi vya kitu.
  2. Kipengele cha pili cha OODB ambacho hutoa manufaa ya utendakazi ni kwamba katika OODB nyingi, kitu kinapopakiwa kwenye kumbukumbu, vitambulishi vya kitu vilivyohifadhiwa kwenye kitu hicho hubadilishwa kuwa viashiria vya kumbukumbu. Kwa kuwa RDB hazihifadhi vitambulishi vya kitu, haziwezi kuhifadhi viashiria vya kumbukumbu kwa nakala zingine. Kutokuwa na uwezo wa kupitia vitu vilivyomo kwenye kumbukumbu ni mali ya msingi ya RDB, na kupungua kwa matokeo kwa utendaji hakuwezi kulipwa kwa kuongeza tu kumbukumbu ya bafa. Kwa hivyo, wakati wa kuendesha programu zinazohusisha urambazaji unaorudiwa wa vitu vinavyohusiana vilivyopakiwa kwenye kumbukumbu, OODB zinaweza kufanya kazi vizuri zaidi kuliko RDB katika utendakazi.
  3. Kwa kuongeza, hata kama OODB hazijaorodheshwa, inaweza kuwa rahisi kufanya maswali ya kiholela ambayo yanafanana na muundo wa kitu kwa skanning ya mfululizo, i.e. tumia njia za kumbukumbu kati ya vitu. Ombi linapoundwa katika mwelekeo usiotumika na viungo, ombi hilo litachakatwa kwa kutambaa kwa kufuatana. Hata hivyo, hoja zilizoundwa kulingana na uhusiano wa kitu ambazo hazijaigwa moja kwa moja na marejeleo hufanya kazi vibaya.
Msaada kwa matoleo na shughuli za muda mrefu

RDB haitumii matoleo au miamala ya muda mrefu. Usaidizi kama huo unapatikana katika baadhi ya OODB, ingawa zina uwezo mdogo.

algebra ya kitu

Aljebra ya kitu haina maelezo ya kina au kukomaa kama aljebra ya uhusiano. Lakini iwe hivyo, algebra kama hiyo ipo, na inafafanua shughuli tano za kimsingi zinazohifadhi vitu: muungano, tofauti, chagua, toa na ramani. Kulingana na shughuli hizi za kimsingi, shughuli zingine zinaweza kufafanuliwa, kama vile makutano. Sheria za mabadiliko kwa ajili ya uboreshaji wa kimantiki wa semi za aljebra za kitu huku zikihifadhi usawa zimetolewa katika na . Wakati muungano, tofauti, na shughuli za ramani kimsingi hutokeza upangaji wa ramani moja hadi moja, shughuli zilizochaguliwa na kuzalisha hutoa upangaji wa ramani moja hadi nyingi. Kudumu kwa kitu kunamaanisha kuwa shughuli za aljebra hurejesha vitu ambavyo ni vya madarasa ya hifadhidata yaliyofafanuliwa hapo awali na haiundi vipengee vipya. Opereta wa umoja hurejesha vitu vilivyomo kwenye seti ya P au Q iliyowekwa, au seti zote mbili. Opereta tofauti hurejesha seti ya vitu ambavyo ni vya seti ya P lakini si ya seti ya Q. kuchagua hurejesha seti ndogo ya seti iliyoingizwa. kuzalisha huzalisha vitu kutoka kwa wale ambao ni wa seti ya pembejeo. ramani inarudisha seti ya vitu vinavyotokana na kila matumizi ya mlolongo wa mbinu.

Hasara za mfano wa OOBD

Ilitarajiwa kwamba mbinu zinazolenga kitu zingewezesha teknolojia ya hifadhidata kufanya mrukaji wa aina mbalimbali. Hata hivyo, licha ya mafanikio yaliyo hapo juu, OBD haijaweza kuwa na athari kubwa katika hali ya mambo katika eneo hili. Muundo na teknolojia ya OOBD bado zina udhaifu.

Hifadhidata zenye mwelekeo wa kitu hazina vifaa vya msingi ambavyo watumiaji wa mifumo ya hifadhidata wamezoea na kwa hivyo wanatarajia kuona. Miongoni mwa mambo mengine, tunaweza kutambua: ukosefu wa ushirikiano kati ya RDB na OODB; uboreshaji mdogo wa swala; ukosefu wa algebra ya kawaida ya swala; ukosefu wa njia za kusaidia maombi; ukosefu wa msaada kwa maoni; matatizo ya usalama; ukosefu wa msaada kwa mabadiliko ya nguvu kwa ufafanuzi wa darasa; msaada mdogo kwa vikwazo vya uadilifu; chaguzi ndogo za kurekebisha utendaji; msaada wa kutosha kwa vitu ngumu; ushirikiano mdogo na mifumo iliyopo ya programu inayolenga kitu; faida ndogo ya utendaji.

Ukosefu wa mwingiliano kati ya RDB na OODB

Ili OODB iwe na athari kubwa kwenye soko la hifadhidata, masharti kadhaa lazima yatimizwe.

  1. Badilisha OODB kuwa mifumo ya hifadhidata iliyokamilika ambayo inaoana vya kutosha na RDB. Njia ya uhamiaji inahitajika ili kuhakikisha kuwepo kwa bidhaa zilizopo na mpya, pamoja na mabadiliko ya laini kutoka kwa zamani hadi mwisho.
  2. Toa zana za ukuzaji wa programu na njia za kufikia hifadhidata zenye mwelekeo wa kitu.
  3. Unganisha usanifu wa RDB na OODB.
  4. Unganisha miundo ya data ya RDB na OODB.
Njia zisizotosha za kuboresha hoja

Mojawapo ya shida muhimu katika OODB ni uboreshaji wa maswali ya kutangaza. Kuboresha hoja za OODB kunafanywa kuwa mgumu zaidi na utata wa ziada wa modeli ya data inayolengwa na kitu yenyewe. Utata huu wa ziada unatokana na mambo kadhaa.

  1. Uwezo wa watumiaji kufafanua aina na aina mpya kwa kutumia urithi hufanya uboreshaji wa hoja kuwa rahisi na ngumu zaidi. Mfano ambapo kipengele hiki husaidia uboreshaji ni hoja inayohusisha makutano ya seti za Wafanyakazi na Wasimamizi. Ikiwa Mfanyakazi ni daraja la juu la Msimamizi, basi kiboreshaji kinaweza kudhani kuwa Wasimamizi ni kikundi chake cha Wafanyakazi na kurahisisha utaratibu uliowekwa wa makutano. Mfano ambapo aina za data za ziada zinapunguza chaguzi za uboreshaji ni muungano wa seti za Wanafunzi na Wafanyakazi; Darasa kuu la darasa zote mbili ni darasa la Mtu. Ikiwa tungetaka kupata wasimamizi wote wa wanafunzi na wafanyikazi, tungefanya join kwanza na kutumia supervisor() .
  2. Hoja zinaweza kutegemea utendakazi kwenye mikusanyiko, lakini aina za uboreshaji zinazoathiri seti (au seti nyingi, au orodha, n.k.) lazima ziunganishwe na uboreshaji wa aina za vitu vilivyomo katika seti hizi. Kiboreshaji cha hoja kinacholengwa na kitu lazima kiwe na uwezo wa kutumia taratibu za uboreshaji ambazo ni mahususi kwa aina fulani, pamoja na taratibu za uboreshaji zinazozingatia uhusiano kati ya vitu vya aina tofauti.
  3. Utata wa usindikaji wa hoja katika OODB unachangiwa na kuwepo kwa vitu changamano, mbinu, na usimbaji. Vitu tata hutoa usemi wa njia, ambao hufanya uchakataji wa hoja kuwa mgumu zaidi. Kuunda faharasa kwenye misemo ya njia, haswa wakati misemo ina mbinu za kiholela, hutatiza uchakataji wa hoja. Tatizo ni ngumu zaidi ikiwa mbinu zina madhara. Shida nyingine na misemo ya njia ni kwamba zinaweka mpangilio ambao njia za usemi wa njia huitwa, na agizo hilo linaweza kuwa duni kabisa. Kwa mfano, usemi wa njia Orders.part.name ni bora kutathminiwa kutoka kulia kwenda kushoto ikiwa kuna Maagizo mengi na Sehemu chache, lakini ikiwa kuna sehemu nyingi na maagizo machache, usemi huo unaweza kutathminiwa vyema kutoka kushoto kwenda kulia. Kwa kuongeza, wakati mwingine maneno ya njia huchakatwa kwa ufanisi zaidi kwa kutumia Join. Fikiria, kwa mfano, swali lenye usemi wa njia s.comp.name, ambapo s ni ya seti ya Wanafunzi. Huenda ikafaa zaidi (kama idadi ya makampuni, comp, ni ndogo) kwanza kukokotoa Jina kwa kila Kampuni na kuhifadhi matokeo katika nakala. Kisha kutathmini usemi kutoka kwa mwanafunzi hadi jina la kampuni kutahusisha kuunganisha Wanafunzi kwenye seti ya nakala kwa kulinganisha mali ya darasa la wanafunzi na thamani ya sifa ya Kampuni ya nakala fulani.
  4. Lugha za swala za OODB zinaunga mkono utumiaji wa miundo iliyowekwa, ambayo tena inaweza kutatiza mchakato wa utoshelezaji, kwani wanaibadilisha kutoka kwa shida ya kawaida kuwa shida ya ulimwengu, kwani ujuzi wa ulimwengu wa usemi mzima wa hoja unahitajika.
  5. Wakati vitu vina utambulisho, swali linatokea kuhusu nini maana ya usawa wa vitu viwili. Suala hili huenea katika lugha ambamo waendeshaji wa ulinganishaji wa usawa hutumiwa katika vihusishi, na ambapo ni lazima maamuzi yafanywe kuhusu kuunda vitu vipya wakati wa kutekeleza hoja. Kiboreshaji cha kielelezo cha kitu lazima kiwe na uwezo wa kukabiliana na matatizo yanayohusiana na uundaji wa vitu vipya na ufafanuzi mbadala wa usawa.

Masuala haya yanaonyesha kuwa uboreshaji wa hoja zinazolenga kitu ni changamoto sana na bado ni eneo la utafiti. Mifumo ya hifadhidata ya leo inayolengwa na kitu hutoa mikakati rahisi ya uboreshaji. Shida ya kuongeza miunganisho pia inahitaji umakini zaidi.

Ukosefu wa algebra ya kawaida ya swala

Upungufu mwingine mkubwa wa OODB ni ukosefu wa viwango vya aljebra vya hoja. Hali hii pia hufanya iwe vigumu kuboresha maswali. Lugha mbalimbali rasmi za kuuliza kulingana na aljebra na calculus zimependekezwa kwa OODB. Aljebra hizi na kalkuli hutofautiana katika mambo kadhaa, katika kujieleza na katika usaidizi wao wa kuboresha sheria za kuandika upya. Karibu algebra hizi zote zinategemea vigezo, i.e. tumia vigezo kuhifadhi matokeo ya kati. KOLA, mojawapo ya vifurushi vya OBD, ni bidhaa inayofanya kazi kikamilifu; haitumii vigezo. Mwandishi anadai kuwa ni kwa sababu ya kukosekana kwa vigezo ambavyo KOLA algebra inaruhusu ujenzi wa mifumo yenye nguvu zaidi ya sheria.

Katika RDB kuna mawasiliano ya karibu kati ya shughuli za aljebra na primitives ya kiwango cha chini cha mfumo wa kimwili. Mawasiliano haya madhubuti hupatikana kupitia upangaji kati ya mahusiano na faili, na kati ya nakala na rekodi. Walakini, katika OODB hakuna mawasiliano angavu sawa kati ya utendakazi wa aljebra ya kitu na asili ya mifumo ya mwili. Wakati wowote unapojadili uzalishaji wa mpango wa utekelezaji, ni muhimu pia, kwanza kabisa, kufafanua sifa za awali za uboreshaji wa kitu.

Ukosefu wa msaada wa maswali

OODB nyingi hazina usaidizi wa hoja. Kwenye mifumo michache iliyo na vifaa vya kutosha, lugha ya hoja haioani na ANSI SQL. Miongoni mwa zana hizi za usaidizi wa hoja, hakuna hoja ndogo zilizowekwa, hoja zilizo na seti (muungano, makutano, tofauti), utendaji wa jumla na GROUP BY, zinazojiunga na madarasa kadhaa - vipengele vinavyotumika kikamilifu katika RDB.

Zaidi ya hayo, hakuna kiwango cha maswali ya kitu, ingawa ni lazima kusema kwamba majaribio yamefanywa ili kukuza lugha ya kitu, SQL. SQL3 ina uwezekano wa kucheleweshwa kwa miaka kadhaa.

Ukosefu wa maoni msaada

OODB haitumii maoni. Ingawa mapendekezo kadhaa yametolewa kuhusu somo hili, hakuna makubaliano ambayo yamefikiwa kuhusu jinsi utaratibu wa kutazama unapaswa kufanya kazi katika OODB. Ukuzaji wa utaratibu wa uwakilishi unaolenga kitu unatatizwa na sifa za kielelezo kama vile utambuzi wa kitu. Ni nini kitambulisho cha kitu katika mtazamo? Kwa upande mwingine, kuna maoni kwamba uwezo wa kuingiza data na urithi hufanya iwezekanavyo kuepuka ufafanuzi wazi wa maoni.

Matatizo ya usalama

RDB zinasaidia uidhinishaji, ilhali OODB nyingi hazifanyi hivyo. RDB huruhusu watumiaji kutoa na kubatilisha haki za kusoma au kurekebisha fasili na nakala katika mahusiano na maoni. OODB zitaweza tu kuenea zaidi katika biashara ikiwa utendakazi huu utaboreshwa.

Baadhi ya mifumo ya OODB inahitaji watumiaji kuweka na kutoa kufuli kwa uwazi. Mifumo ya RDB huweka na kutoa kufuli kiotomatiki inapochakata maswali ya mtumiaji na kusasisha taarifa.

Ukosefu wa usaidizi wa mabadiliko yanayobadilika kwa ufafanuzi wa darasa

Kwa kuongezea ukweli kwamba muundo mmoja wa data wa kawaida bado haujatengenezwa kwa OODB, OODB nyingi haziruhusu mabadiliko ya nguvu kwenye schema ya hifadhidata, kama vile kuongeza sifa mpya au njia kwa darasa, kuongeza darasa mpya kwa darasa. , kufuta darasa kuu la darasa, kuongeza darasa jipya na kufuta darasa. RDB humruhusu mtumiaji kubadilisha kwa nguvu taratibu mpangilio wa hifadhidata kwa kutumia amri ya ALTER; safu mpya inaweza kuongezwa kwa uhusiano, uhusiano unaweza kufutwa, na katika hali nyingine inawezekana kuondoa safu kutoka kwa uhusiano.

OODB nyingi pia hazina udhibiti wa kiotomatiki wa viendelezi vya darasa. Ikiwa kiendelezi cha darasa kinahitajika, mtumiaji lazima afafanue mkusanyiko wake na ahakikishe kuwa viingilio na ufutaji wote vinarekodiwa katika mkusanyiko kwa wakati ufaao.

Usaidizi mdogo kwa vikwazo vya uadilifu

Hakuna mbinu za kutangaza sifa kuu za sifa (kwa mfano, sifa ya darasa haiwezi kutangazwa kuwa ufunguo msingi wa darasa), au vikwazo vya upekee, vikwazo vya uadilifu wazi, au mbinu ya kabla na baada ya masharti. Ingawa haya yote yanaweza kufanywa kwa kutumia mbinu, vizuizi vilivyo wazi vinaweza kuwa rahisi zaidi kwa watumiaji, kutoa makosa machache, na kuchunguzwa zaidi na kurekebishwa.

Chaguo chache za kurekebisha utendaji

OODB nyingi hutoa njia chache tu za urekebishaji wa utendakazi wenye vigezo. Katika RDB, wasakinishaji hupewa fursa ya kubinafsisha utendaji wa mfumo kwa kutaja idadi kubwa ya vigezo vilivyowekwa na msimamizi wa mfumo. Vigezo hivi ni pamoja na idadi ya vihifadhi kumbukumbu, kiasi cha nafasi ya bure iliyohifadhiwa kwenye ukurasa wa data kwa ajili ya kuingizwa kwa data ya baadaye, nk. .

Usaidizi wa kutosha kwa vitu ngumu

Utendaji kamili wa vitu changamano bado hautumiki. Unaweza kuvinjari viungo na kusimba utendakazi kwa kutumia viungo hivyo, lakini hakuna utendakazi uliobainishwa awali ambao hutumia aina tofauti za semantiki za kiunganishi. Marejeleo yote yanachukuliwa kuelekeza kwa vitu huru, na semantiki za uhusiano maalum ndani ya vitu changamano hufichwa katika shughuli zinazotolewa na mtumiaji.

Ushirikiano mdogo na mifumo ya programu inayolenga kitu

Ni vigumu kuandika upya programu zinazolenga kitu ili kudhibiti data thabiti. Idadi ya matatizo hutokea hapa: migogoro ya majina; hitaji la kurekebisha madaraja ya darasa; tabia ya OODB kupakia shughuli za mfumo kupita kiasi.

Faida ndogo ya utendaji

Ikiwa programu-tumizi zote za hifadhidata zingehitaji tu kutafuta vitu vya hifadhidata kupitia vitambulishi vya kitu na kudhibiti haraka vitu kwenye kumbukumbu kuu kwa kutumia viashiria, basi OODB zinaweza kushinda RDB kwa maagizo mawili hadi matatu ya ukubwa. Hata hivyo, programu nyingi zinazohitaji ufikiaji wa vitu kupitia vitambulishi pia zinahitaji ufikiaji wa hifadhidata na uwezo wa kusasisha unaotolewa na RDB. Vipengele hivi ni pamoja na upakiaji wa hifadhidata kwa wingi; kuunda, kusasisha na kufuta vitu vya mtu binafsi (moja kwa wakati); kurejesha kutoka kwa darasa kitu kimoja au zaidi ambacho kinakidhi hali fulani za utafutaji; kuunganisha madarasa kadhaa; kurekodi shughuli, nk. Wakati wa kuendesha programu kama hizo, OODB haitoi faida zozote za utendakazi zaidi ya RDB.

Vipengele ambavyo bado havijatumika katika OODB pia vinajumuisha vichochezi, vidhibiti vya metadata na vikwazo vya uadilifu kama vile UNIQUE na NULL.

***

Kwa sababu ya udhaifu huu, OODB zimeshindwa kutimiza matarajio yao: kutoa vipengele vyote muhimu vinavyohitajika na programu lengwa. Kuhusiana na mifumo mingi ya kisasa, neno "OODB" linatumiwa vibaya. Takriban OODB zote za kisasa si mifumo mingi ya hifadhidata bali mifumo thabiti ya kuhifadhi data kwa baadhi ya lugha ya programu inayolengwa na kitu. Kwa hivyo, ingawa modeli ya data inayolengwa na kitu ni tajiri kwa njia nyingi kuliko muundo wa uhusiano, muundo unaoelekezwa kwa kitu bado haujafikia ukomavu wake. Leo, kuna ubaya zaidi katika mifumo ya OOBD kuliko faida.

Fasihi

  1. S. Abiteboul, A. Bonner, “Vitu na mitazamo.” ACM SIGMOD Int. Conf. Kuhusu Usimamizi wa Takwimu, 1991.
  2. M. Atkinson, et al., "Manifesto ya Mfumo wa Hifadhidata Inayoelekezwa na Kitu." Kuunda Mfumo wa Hifadhidata Unaoelekezwa na Kitu: Hadithi ya O2. Morgan Kaufman, 1992.
  3. F. Bancilhon, "Mifumo ya hifadhidata inayolengwa na kitu." Mkutano wa 7 wa ACM SIGART/SIGMOD, 1988.
  4. J. Banerjee, na wenzake, "Masuala ya muundo wa data kwa programu zinazolenga kitu." ACM Trans. Kuhusu Mifumo ya Taarifa za Ofisi, Januari 1987.
  5. J. Banerjee, W. Kim, K.C. Kim, "Maswali katika hifadhidata zenye mwelekeo wa kitu." Mkutano wa Uhandisi wa Data wa IEEE, Feb. 1988.
  6. D. Beech, "Msingi wa mageuzi na uhusiano na hifadhidata za vitu." Proc. Teknolojia Iliyoongezwa ya Msingi wa Data, Machi. 1988.
  7. E. Bertino, M. Negri, G. Pelagatti, L. Sbattella, "Lugha za Maswali Zinazoelekezwa na Kitu: Dhana na Masuala." Miamala ya IEEE kuhusu Maarifa na Uhandisi wa Data, Machi. 1992.
  8. A.W. Brown, Hifadhidata Zinazoelekezwa na Kitu, Programu katika Uhandisi wa Programu. New York: McGraw-Hill, 1991.
  9. R.G.G. Cattell, Usimamizi wa Data ya Kitu, Mifumo ya Hifadhidata Inayoelekezwa kwa Kitu na Mifumo Iliyoongezwa ya Hifadhidata. Addison-Wesley, 1991.
  10. M. Cherniack, "Fomu/zaidi ya Kazi: Aljebra ya Hoji ya KOLA." Ripoti ya Kiufundi, Chuo Kikuu cha Brown, Desemba. 1995.
  11. S. Cluet, et al., "Reloop, Lugha ya hoja inayotokana na Aljebra kwa mfumo wa hifadhidata unaolengwa na kitu." Int ya 1. Conf. Kwenye Hifadhidata za Kutozwa na Zinazoelekezwa kwa Kitu, Des. 1989.
  12. KAMA. Cruz, DOODLE: Lugha inayoonekana kwa hifadhidata inayolengwa na kitu. ACM SIGMOD Int. Conf. Kuhusu Usimamizi wa Takwimu, 1992.
  13. U. Dayal, "Maswali na maoni katika muundo wa data unaolengwa na kitu." Int ya 2. Kazi. Lugha za Kuandaa Hifadhidata, Juni 1989.
  14. K.A. Dittrich, K.R. Dittrich, "Ambapo DBMS Zinazoelekezwa na Kitu Zinapaswa Kufanya Bora: Uhakiki Kulingana na Uzoefu wa Mapema." Mifumo ya Kisasa ya Hifadhidata: Mfano wa Kitu, Ushirikiano na Zaidi, ACM Press, Addison Wesley, 1995.
  15. U. Erlingsson, "Uboreshaji wa Hoja Iliyozingatia Kitu", hati ambayo haijachapishwa.
  16. L. Fegaras, D. Maier, “Kuelekea Kokotoo Inayofaa ya Lugha za Maswali ya Kitu.” ACM SIGMOD Int. Conf. kuhusu Usimamizi wa Data, San Jose, California, Mei 1995.
  17. L. Fegaras, D. Maier, T. Sheard, "Kubainisha Viboreshaji Maswali vinavyozingatia Sheria katika Mfumo wa Kuakisi." Int ya 3. Conf. kwenye Hifadhidata za Kupunguza na Zinazoelekezwa kwa Kitu, Phoenix, Arizona, Des. 1993.
  18. S. Heiler, S. Zdonik, "Maoni ya Kitu: Kupanua maono." Int ya 6. Conf. Kuhusu Uhandisi wa Data, 1990.
  19. J.G. Hughes, Hifadhidata Zinazoelekezwa na Kitu. New York: Prentice-Hall, 1991.
  20. S. Khoshafian, “Ufahamu Katika Hifadhidata Zinazoelekezwa kwa Kitu.” Teknolojia ya Habari na Programu, Apr. 1990.
  21. S. Khoshafian, Hifadhidata Zinazoelekezwa kwa Kitu, New York: John Wiley & Sons, 1993.
  22. S. Khoshafian, G. Copeland, “Utambulisho wa kitu.” Int ya 1. Conf. Kwenye Mifumo, Lugha, na Utumizi Zinazoelekezwa na Kitu, Okt. 1986.
  23. W. Kim, "Msingi wa hifadhidata zenye mwelekeo wa kitu." Teknolojia ya MCC. Mwakilishi, N. ACA-ST-248-88, Aug. 1988.
  24. W. Kim, Utangulizi wa Hifadhidata Zinazoelekezwa na Kitu. MIT Press, 1991.
  25. W. Kim, "Mifumo ya Hifadhidata Inayoelekezwa kwa Kitu: Ahadi, Uhalisi, na Wakati Ujao." Mifumo ya Kisasa ya Hifadhidata: Mfano wa Kitu, Ushirikiano na Zaidi, ACM Press, Addison Wesley, 1995.
  26. T.W. Leung, et al., "Aqua Data Model na Algebra." Ripoti ya Kiufundi CS-93-09, Chuo Kikuu cha Brown, Machi. 1993.
  27. G. Mitchell, S.B. Zdonik, U. Dayal, "Uboreshaji wa Hoja Linaloelekezwa na Kitu - Tatizo ni Nini?" Ripoti ya Kiufundi CS-91-41, Chuo Kikuu cha Brown, Juni 1991.
  28. E.A. Rudensteiner, "Multiview: Mbinu ya kusaidia maoni mengi katika hifadhidata zenye mwelekeo wa kitu." Int ya 18. Conf. Kwenye Hifadhidata Kubwa Sana, 1992.
  29. M. Scholl, H. Schek, "Mfano wa kitu cha uhusiano." Int ya 3. Conf. Juu ya Nadharia ya Hifadhidata, LNCS, vol. 470, Springer Verlag, 1990.
  30. P.G. Selinger, et al, "Fikia uteuzi wa njia katika mfumo wa usimamizi wa hifadhidata wa uhusiano." ACM SIGMOD Int. Conf. Kuhusu Usimamizi wa Takwimu, 1979.
  31. M. Stefik, D.G. Bobrow, "Programu zinazolenga kitu: Mandhari na tofauti." The AI ​​Mag., Jan. 1986.
  32. M. Stonebraker, et al., "Manifesto ya Mfumo wa Msingi wa Data wa Kizazi cha Tatu." Kamati ya Kazi ya Juu ya DBMS, Chuo Kikuu cha California, Berkeley, 1990.
  33. DD. Straube, M.T. Ozsu, "Maswali na usindikaji wa hoja katika mifumo ya hifadhidata inayolengwa na kitu." Miamala ya ACM kwenye Mifumo ya Taarifa, Oct. 1990.
  34. DD. Straube, M.T. Ozsu, "Uzalishaji wa Mpango wa Utekelezaji kwa Muundo wa Data Unaoelekezwa na Kitu." Int ya 2. Conf. kwenye Hifadhidata za Kutozwa na Zinazoelekezwa kwa Kitu, Munich, Ujerumani, Des. 1991.
  35. S.Y.W. Su, M. Guo, H. Lam, "Aljebra ya Muungano: Msingi wa Hisabati kwa Hifadhidata Zinazoelekezwa kwa Kitu." Miamala ya IEEE kuhusu Maarifa na Uhandisi wa Data, Oct. 1993.
  36. S.B. Zdonik, D. Maier, eds., Usomaji katika Mifumo ya Hifadhidata Inayoelekezwa kwa Kitu, Morgan Kauffman, 1989.
  37. S.B. Zdonik, P. Wegner, "Lugha na Mbinu ya Mazingira ya Hifadhidata Inayoelekezwa kwa Kitu." Hawaii Int. Conf. kwenye Sayansi ya Mfumo, Jan. 1986.

Sikha Bagui([barua pepe imelindwa]) ni mhadhiri katika Idara ya Sayansi ya Kompyuta katika Chuo Kikuu cha West Florida. Mwandishi mwenza wa vitabu vitatu kwenye hifadhidata: SQL ya Kujifunza: Mwongozo wa Hatua kwa Hatua Kwa Kutumia Oracle, SQL ya Kujifunza: Mwongozo wa Hatua kwa Hatua wa Kutumia Ufikiaji (Addison Wesley), na Usanifu wa Hifadhidata Kwa Kutumia Michoro ya Uhusiano wa Taasisi (CRC Press) .

Imetafsiriwa kutoka kwa "Mafanikio na Udhaifu wa Hifadhidata Zinazoelekezwa na Malengo" na Sikha Bagui katika Journal of Object Technology (JOT), vol. 2, hapana. 4, Julai-Agosti 2003, ukurasa wa 29-41. Ilitafsiriwa kwa Kirusi kwa Otkrytye Systemy chini ya ruhusa maalum ya mchapishaji asili. Hakimiliki JOT, 2003. Makala asilia http://www.jot.fm/issues/issue_2003_07/column2.

Kutoka kwa mhariri wa tafsiri

OOBD - ukomavu au kupungua?

Sergey Kuznetsov

Kumekuwa na utulivu wa kushangaza katika uga wa hifadhidata unaolengwa na kitu katika miaka michache iliyopita, ambayo baadhi huwa wanaona kama kuzorota kwa teknolojia, na wengine kama mpito wa teknolojia hadi hali ya kukomaa na thabiti. Kulingana na uchunguzi wangu, utulivu kama huo wakati mwingine husababisha kuibuka kwa maoni potofu na hata hadithi kati ya watu wa karibu na IT, lakini ambao sio wataalam wa hifadhidata. Mojawapo ya dhana hizi potofu ni kwamba mtu huchukua seti ya maneno ambayo anayo kichwani mwake (kitu, sifa, mbinu, darasa, urithi, n.k.) kwa modeli ya data inayolengwa kwa ujumla inayokubalika.

Hii inaelezea uamuzi wetu wa kuchapisha tafsiri ya makala ya kawaida ya Sikha Bagui. Uchapishaji kama huo unahesabiwa haki angalau kwa kuwa unakatiza utulivu huu na inaonyesha, kwanza kabisa, kwamba uwanja wa OOBD sio tu haujaingia wakati wa ukomavu, lakini unaendelea kubaki mkusanyiko wa maoni tofauti na yaliyochanganyikiwa ambayo yameunganishwa. kiwango cha kauli mbiu badala ya teknolojia.

Nakala hiyo inategemea uchanganuzi wa machapisho 36 yaliyotolewa kwa hifadhidata zenye mwelekeo wa kitu na kuchapishwa katika kipindi cha 1986-1995. Kwa hiyo, tabia inayotumiwa mara nyingi ya OODB ya "kisasa" sio haki kabisa. Nukuu, wakati mwingine hutolewa katika wakati uliopo, wakati mwingine huonekana kuwa na shaka kabisa.

Kwa kweli, vyanzo vingi vilitumia istilahi tofauti, na katika suala hili hakiki yao ni tofauti sana. Zaidi ya hayo, makala nyingi ni ngumu sana kitaalam na kuzinukuu bila kutoa muktadha hufanya iwe vigumu kuelewa. Mfano unaovutia zaidi ni kifungu kidogo cha ukuzaji wa aljebra ya kitu. Shughuli tatu za kwanza za "msingi" - muungano, tofauti, chagua - ni angavu (ingawa kwa ukweli waandishi wa kifungu cha asili waliruhusu chaguo lisilo wazi sana la sampuli kwa njia ya unganisho la nusu), lakini mbili za mwisho - hutoa na ramani - ni vigumu kufafanua na shughuli zisizo dhahiri.

Ningependa kutambua kipengele kimoja cha ajabu cha makala ya Bagui. Hadi 2001, kulikuwa na muungano wa kimataifa, Kikundi cha Usimamizi wa Data ya Kitu, ambacho kilichapisha matoleo matatu ya mapendekezo ya kusanifisha modeli ya data inayolengwa na kitu; toleo la hivi punde, ODMG 3.0, lilichapishwa mnamo 2000. Hii ndiyo hati pekee inayotoa istilahi zinazolingana kiasi na, kwa kiasi fulani, modeli ya data inayolengwa na kitu. Ni aibu kwamba Bagui hatumii nyenzo hii.

Kumbuka kwamba jarida la DBMS lilichapisha makala yaliyotolewa kwa toleo la kwanza la kiwango, ODMG-93. Muhtasari wa kiwango cha ODMG 3.0 unaweza kupatikana katika . Tunaweza pia kupendekeza tafsiri ya Manifesto ya Mifumo ya Hifadhidata Inayoelekezwa na Kitu na muhtasari mzuri sana wa teknolojia ya OODB.

Fasihi

  1. Kiwango cha Data ya Kitu: ODMG 3.0. R.G.G. Cattel, D.K. Barry, ed., Morgan Kauffmann, 2000.
  2. L.A. Kalinichenko, . // DBMS, No. 1, 1996.
  3. S.D. Kuznetsov. "Manifesto Tatu za Hifadhidata: Retrospective na Matarajio." Ripoti katika mkutano "Databases na teknolojia ya habari ya karne ya XXI", Moscow, Septemba 2003, http://www.citforum.ru/database/articles/manifests.
  4. M. Atkinson et al., // DBMS, No. 4, 1995.
  5. Ark Andreev, Dmitry Berezkin, Roman Samarev,. // Fungua Mifumo, No. 3, 2001.

Hifadhidata zenye mwelekeo wa kitu: mafanikio na shida