Objektinėse duomenų bazėse (OODB) vartotojai gali nustatyti operacijas konkrečioje duomenų bazėje, kurią sudaro objektai, kurie gali būti įvairių tipų ir kuriems nustatomos operacijos. Jie gali efektyviai tvarkyti dvejetainę informaciją, pvz., daugialypės terpės objektus. Kitas papildomas OODB pranašumas yra tai, kad jį galima užprogramuoti su nedideliais procedūriniais skirtumais, nepažeidžiant visos sistemos.
Būtinės sąlygos norint sukurti standartą
Objektinių OODB duomenų bazių istorija prasideda praėjusio amžiaus pabaigoje. Jie buvo sukurti siekiant patenkinti naujų programų poreikius. Buvo daroma prielaida, kad į objektą orientuotos duomenų bazės 1990-aisiais pakeis programinės įrangos sistemas. Dabar aišku, kad taip nėra. Tačiau šios koncepcijos atgimimas per laisvos programinės įrangos bendruomenes ir jai tinkamų taikomųjų programų nustatymas skatina peržiūrėti charakteristikas. OODB, kuri yra alternatyva visur esančioms reliacinėms duomenų bazėms.
Objektinė funkcija suteikia lankstumo tvarkyti kai kuriuos arba visus reikalavimus ir neapsiriboja tradicinių duomenų bazių duomenų tipais ir užklausų kalbomis. Pagrindinė OODB savybė yra galimybė, kurią jie suteikia kūrėjui, leidžiantį nurodyti tiek sudėtingų objektų struktūrą, tiek taikomųjų programų operacijas. Kita OODB kūrimo priežastis – vis didėjantis kalbų naudojimas kuriant programinę įrangą.
Duomenų bazės tapo daugelio informacinių sistemų pagrindu, tačiau tradicinėmis duomenų bazėmis sunku naudotis, kai jas pasiekiančios programos parašytos C++, Smalltalk arba Java kalbomis. Pavyzdžiui, 1C objektinės duomenų bazės buvo sukurtos taip, kad jas būtų galima tiesiogiai integruoti su programomis, naudojančiomis objektines kalbas, pritaikant jų koncepcijas: Visual Studio. Net, C ++, C, Microsoft SQL Server ir kiti.
Pagrindinis OODB privalumas yra visiškai panaikintas RMs1 (impedanso) poreikis ir vėlesni našumo patobulinimai.
Trūkumai:
- Labai primityvūs konsultacijų mechanizmai, jokios savaiminio standarto priimtos platformos.
- Negalima saugoti procedūrų, nes objektus galima pasiekti tik kliento programoje.
- Nebrandumas rinkoje.
- Jokio fizinio objektų grupavimo.
Objekto paradigma
Objektinės duomenų bazės yra programuojamos duomenų bazės, kuriose tiesiogiai saugomi sudėtingi duomenys ir jų ryšiai, nepriskiriant eilučių ir stulpelių, todėl jos labiau tinka programoms, kurios veikia su didelėmis partijomis. Objektai turi daug su daugybe ryšių ir yra pasiekiami naudojant nuorodas, kurios yra susietos su jais ryšiams užmegzti. Kaip ir bet kuris programuojamas, OODB suteikia programų kūrimo aplinką ir nuolatinę saugyklą, paruoštą naudoti. Jame saugoma ir manipuliuojama informacija, kurią galima skaitmeninti objektų pavidalu, suteikiama greita prieiga ir puikios apdorojimo galimybės.
Pagrindinės sąvokos, naudojamos objektinėje duomenų bazėje:
- objekto tapatybė;
- konstruktoriaus tipas;
- kalbos suderinamumas;
- tipo hierarchijas ir paveldėjimą;
- sudėtingų objektų apdorojimas;
- polimorfizmas ir operatoriaus perkrova;
- versijų kūrimas.
Norint visapusiškai apsvarstyti visus aspektus, būdingus objektinei duomenų bazei, svarbu atkreipti dėmesį į visas svarbias objektų paradigmas:
- Inkapsuliavimas yra ypatybė, leidžianti paslėpti informaciją kitiems objektams ir taip išvengti neteisingos prieigos arba konfliktų.
- Paveldėjimas yra savybė, pagal kurią objektai paveldi elgesį klasės hierarchijoje.
- Polimorfizmas yra operacijos savybė, su kuria galima jį pritaikytiįvairių tipų objektai.
- Operacijos sąsaja arba parašas apima jos argumentų arba parametrų pavadinimą ir duomenų tipus.
- Operacijos įgyvendinimas arba metodas nurodomas atskirai ir gali būti keičiamas nepažeidžiant sąsajos. Vartotojų programos gali dirbti su duomenimis iškviesdamos nurodytas operacijas per jų pavadinimus ir argumentus, neatsižvelgiant į tai, kaip jos buvo įgyvendintos.
Klasės ir funkcijos
Nagrinėjant OODB klasių sąvoką, būtina atskirti terminus „klasė“ir „tipas“. Tipas naudojamas apibūdinti panašios elgsenos objektų rinkinį. Šia prasme tai priklauso nuo to, kokias operacijas galima iškviesti objekte. Klasė yra objektų, turinčių tą pačią vidinę struktūrą, rinkinys, todėl ji apibrėžia įgyvendinimą, o tipas aprašo, kaip jį naudoti.
Sąvoka egzistavimas reiškia faktą, kad klasės egzistavimas gali būti naudojamas objektų rinkiniui sukurti, kurių struktūra ir elgsena yra tokia pati, kaip nustatyta klasėje.
Ypatybė, kuri yra labai svarbi objektų evoliucijai, yra ta, kad ji gali pakeisti savo klasę, įskaitant atributus ir operacijas, išlaikant tapatybę. Tam reikės mechanizmo, kuris tvarkytų gautą semantinį vientisumą.
Paveldėjus organizacijos objektinę duomenų bazę, klasę galima apibrėžti kaip jau esamos superklasės poklasį. Jis paveldės visus atributus ir metodus iš pastarojo ir gali pasirinktinai apibrėžtisavo. Ši koncepcija yra svarbus pakartotinio naudojimo palaikymo mechanizmas. Dviejų skirtingų klasių struktūros tos pačios dalys gali būti apibrėžtos tik vieną kartą bendroje superklasėje, todėl bus rašoma mažiau kodo. Yra keletas sistemų, kurios leidžia klasei būti daugiau nei vienos superklasės poklasiu. Ši funkcija vadinama daugialypiu paveldėjimu, o ne pavieniu.
Objektinės duomenų bazės pavyzdys
Dažnai naudinga naudoti tą patį pavadinimą skirtingiems, bet panašiems žiniasklaidos superklasės metodams iš paveikslėlių ir vaizdo įrašų klasių. Daugelį failų gali peržiūrėti skirtingi žiūrovai. Jiems dažnai reikia peržiūrėti visas nuotraukas ir vaizdo įrašus naudojant „peržiūros“metodą, taip pat reikia paleisti atitinkamą programą. Kai funkcija iškviečiama ir perduodama nuoroda į vaizdo įrašą, paleidžiamas medijos leistuvas. Norint įgyvendinti šią funkciją, visų pirma reikia apibrėžti operaciją „pristatymas“bendroje medijos superklasėje iš paveikslėlių ir vaizdo įrašų klasių. Kiekvienas poklasis iš naujo apibrėžia paieškos operaciją pagal savo specifinius poreikius. Dėl to atsiranda skirtingi metodai, turintys tą patį operacijos pavadinimą. Šiuo atveju šios funkcijos naudojimas turi svarbų pranašumą.
OODB struktūra
Į objektą orientuota paradigma pagrįsta su kiekvienu objektu susijusių duomenų ir kodo inkapsuliavimu viename modulyje. Konceptualiai visa sąveika tarp jos ir likusios sistemos atliekama naudojant pranešimus. Taigi sąsajatarp jų nustatoma pagal leistiną rinkinį.
Apskritai kiekvienas objektas yra susietas su rinkiniu:
- Kintamieji, kuriuose yra objekto duomenų ir atitinkantys ER modelio atributus.
- Žinutės, į kurias jis atsako. Kiekvienas gali turėti arba neturėti parametrų, vieną ar daugiau.
- Metodai, kurių kiekvienas yra kodas, įgyvendinantis pranešimus ir atsakantis į juos reikšmę.
Pranešimų siuntimas OO aplinkoje nereiškia, kad kompiuterių tinkluose naudojamos fizinės SMS žinutės. Priešingai, kalbama apie keitimąsi užklausomis tarp objektų, nepaisant teisingų jų įgyvendinimo detalių. Kartais išraiška iškviečia metodą, kad suaktyvintų faktą, kad pranešimas buvo išsiųstas objektui, ir naudoja atitinkamo metodo vykdymą.
Objekto tapatybė
Į objektą orientuota duomenų bazių sistema suteikia unikalų kiekvieno nepriklausomo objekto, saugomo duomenų bazėje, identifikavimą. Paprastai jis įgyvendinamas naudojant sistemos sugeneruotą unikalų objekto identifikatorių arba OID. OID reikšmė nematoma išoriniam vartotojui, tačiau sistema ją naudoja viduje, kad valdytų ryšius tarp objektų.
Pagrindinė OID savybė yra būti nekintamam. Tam tikro objekto OID reikšmė niekada neturėtų keistis. Taip išsaugoma atstovaujamo realaus pasaulio tapatybė. Taip pat pageidautina, kad kiekvienas OID būtų naudojamas tik vieną kartą, net jei jis pašalintas iš duomenų bazės, jo OID neturėtų būti priskirtas kitam. Taip pat dažnai manoma, kad nedera to grįsti fizinesaugomo objekto adresas, nes juos pertvarkant duomenų bazėje galima pakeisti OID. Tačiau kai kurios sistemos naudoja fizinį adresą kaip OID, kad padidintų objektų gavimo efektyvumą. Į objektą orientuota sistema automatiškai nustato santykinius apribojimus, dažniausiai labiau taikomus: domeną, raktą, objekto vientisumą ir nuorodos vientisumą.
Trys pagrindiniai konstruktoriai
ODB sudėtingų objektų reikšmes arba būsenas galima sukurti iš kitų, naudojant tam tikrų tipų konstruktorius. Vienas iš būdų juos pavaizduoti yra galvoti apie kiekvieną iš jų kaip trynuką (i, c, v), kur i yra unikalus objekto identifikatorius (OID), c yra konstruktorius, tai yra, rodyklė, rodanti, kaip yra objekto vertė. sukurtas, o v yra objekto reikšmė arba būsena. Atsižvelgiant į duomenų modelį ir OO sistemą, gali būti keli konstruktoriai.
Trys pagrindiniai objektinės duomenų bazės konstruktoriai:
- atomai;
- tuples;
- rinkiniai.
Kita dažniau naudojama sąrašai ir diagramos. Taip pat yra D domenas, kuriame yra visos pagrindinės atominės vertės, tiesiogiai prieinamos sistemoje. Paprastai jie apima sveikuosius skaičius, tikrus skaičius, simbolių eilutes, datas ir bet kokio kito tipo duomenis, kuriuos sistema tvarko tiesiogiai. Tiek objektų struktūra, tiek operacijos įtrauktos į klasių apibrėžimus.
Suderinamumas su programavimo kalbomis
Pagrindinės objektinių duomenų bazių sąvokos naudojamoskaip projektavimo įrankiai ir koduojami dirbti su duomenų baze.
Yra kelios galimos kalbos, kuriomis galima integruoti šias sąvokas:
- Duomenų apdorojimo, pvz., SQL, kalbos išplėtimas pridedant sudėtingus tipus ir OOP. Sistemos teikia į objektus orientuotus reliacinių sistemų plėtinius, vadinamus objektinėmis reliacinėmis sistemomis.
- Esamos objektinės programavimo kalbos naudojimas ir jos išplėtimas darbui su duomenų bazėmis. Jie vadinami nuolatinėmis programavimo kalbomis ir leidžia kūrėjams tiesiogiai dirbti su duomenimis, nenaudojant duomenų apdorojimo kalbos, pvz., SQL. Jie vadinami nuolatiniais, nes duomenys išlieka ir pasibaigus juos sukūrusiai programai.
Spręsdami, kurią parinktį naudoti, atminkite, kad nuolatinės kalbos paprastai yra galingos ir gana lengva padaryti programavimo klaidų, kurios sugadina duomenų bazę. Kalbų sudėtingumas apsunkina aukšto lygio automatinį optimizavimą, pvz., disko I/O mažinimą. Daugelyje programų svarbi galimybė pateikti deklaratyvias užklausas, tačiau nuolatinės kalbos šiuo metu neleidžia atlikti tokių užklausų be problemų.
Paveldėjimo tipų hierarchija
Objektinėms duomenų bazių schemoms paprastai reikia daug klasių. Tačiau kelios klasės yra panašios viena į kitą. Norėdami tiesiogiai atvaizduoti jų panašumus, turite įdėtisuskirstyti juos į specializacijų hierarchiją. Ši koncepcija yra panaši į ER modelius. Klasių specializacijos vadinamos poklasiais, kurie apibrėžia papildomus esamos klasės atributus ir metodus. Objektai, sukurti su poklasiais, paveldi viską iš pirminio. Kai kurios iš šių paveldėtų savybių galėjo būti pasiskolintos iš aukščiau esančių hierarchijos savybių.
Objektai laikomi sudėtingais, nes jiems reikia daug vietos saugykloje ir jie nėra standartinių duomenų tipų, kuriuos paprastai siūlo Objektinis duomenų bazių valdymas (OODBS), dalis. Kadangi objektų dydis yra reikšmingas, SOOBMS gali gauti objekto dalį ir pateikti ją programai prieš įsigydama visą objektą. Ji taip pat gali naudoti buferio ir talpyklos metodus, kad iš anksto gautų objekto dalis, prieš tai, kai programa gali jas pasiekti.
OODB leidžia vartotojams kurti naujus tipus, apimančius ir struktūrą, ir operacijas, šiuo atveju išplečiamo tipo sistemą. Galite kurti naujų tipų bibliotekas, nustatydami jų struktūrą ir operacijas. Daugelis iš jų gali saugoti ir gauti didelį struktūrinį objektą eilučių ir simbolių arba bitų pavidalu, kurie perduodami „tokie, kokie yra“taikomajai programai interpretuoti.
Metodas gali tiesiogiai pasiekti tikslinio objekto atributus pagal pavadinimą, įskaitant visus paveldėtus iš pirminių klasių, tačiau turi pasiekti kitų objektų atributus su antriniais signalais. Ši koncepcija leidžia susieti tą patį operatoriaus pavadinimą arba simbolį sudu ar daugiau skirtingų jo įgyvendinimų, atsižvelgiant į objektų tipą, kuriems jis taikomas.
Statybos programos
Daugeliui duomenų bazių programų, naudojančių OO sistemas, reikia kelių to paties objekto versijų. Paprastai techninės priežiūros veikla taikoma programinės įrangos sistemai, kai keičiasi jos reikalavimai, ir keičiasi kai kurie kūrimo ir diegimo moduliai. Jei sistema jau veikia ir jei reikia pakeisti vieną ar daugiau modulių, kūrėjas turi sukurti naują kiekvieno iš jų versiją, atlikdamas pakeitimus.
Atkreipkite dėmesį, kad gali būti daugiau nei dvi objekto versijos, jei be pradinio modulio reikia dviejų. To paties programinės įrangos modulio versijos gali būti atnaujinamos tuo pačiu metu. Tai vadinama lygiagrečiu objektiniu duomenų bazės dizainu. Tačiau visada ateina momentas, kai juos reikia sujungti, kad hibridiniame OODB būtų įtraukti pakeitimai, kurie buvo atlikti, kad jie būtų suderinami.
Į objektą orientuotos sąlygos
Visos kompiuterinės sistemos turi turėti savo architektūros ypatybes, į kurias būtų atsižvelgta. Pavyzdžiui, sistema turi turėti lenteles, kad ji būtų laikoma reliacine. OODB nėra išimtis ir turi keletą pagrindinių objekto architektūros savybių. Tačiau realiame pasaulyje daugelis šių savybių yra aptariamos, o kai kurios, pavyzdžiui, daugybinis paveldėjimas, laikomos objektinės duomenų bazės modelio patobulinimais, o nekaip bazinės linijos dalis. Pavyzdžiui, į objektus orientuotoje kalboje Smalltalk daugkartinis paveldėjimas nepalaikomas, net jei jis laikomas objekto architektūros dalimi.
Klasės metodai apibrėžia operacijų, kurias galima atlikti su objektu, rinkinį. Pavyzdžiui, kai jis taikomas objektui, jis arba grąžina reikšmę, arba atlieka tam tikrą operaciją, kad atnaujintų reikšmes. Kartais metodai jo negrąžina. Jei metodas būtų skirtas atnaujinti transporto priemonės keleivių skaičių, jokia reikšmė nebūtų grąžinama, tačiau tikslinės duomenų elementas ją pakeistų.
Objektai yra pagrindinė OODB sąvoka. Iš esmės objektai yra abstraktus jame saugomų realaus pasaulio dalykų vaizdas. Objektas yra klasės egzempliorius ta prasme, kad jis neįtraukiamas į jo apibrėžimą.
Galite galvoti apie objektą kaip į atskirą paketą, kurį sudaro trys dalys:
- Turite savo asmeninę informaciją, duomenų vertes.
- Privačios procedūros, kurios manipuliuos vertėmis per klasės apibrėžimą.
- Atidarykite sąsają, kad šis objektas galėtų bendrauti su kitais.
OODB pavyzdžiai
Naudojant OODB supaprastinamas konceptualizavimas, nes natūraliau pateikti informaciją, kurią reikia saugoti. Norėdami modeliuoti duomenų bazės struktūrą ar logiką, klasių diagramų naudojimas leidžia pristatyti klases su jų struktūriniais ryšiais ir paveldėjimu. Siekiant modeliuoti dalį dinamikos, sąveikos irelgseną tarp objektų, sekos diagrama bus naudojama vaizduoti sąveiką tarp objektų, esančių laikinuose santykiuose, aprašant galimas būsenas, kad jas būtų galima rasti atsižvelgiant į pasikeitusią būseną įvykus įvykiui.
Į objektą orientuotos duomenų bazės pavyzdys parodytas toliau.
Jie turi vardą ir visą gyvenimą, kuris gali būti laikinas arba nuolatinis. OODB raktas yra galimybė, kurią jie suteikia kūrėjui, nurodyti, kiek struktūrų ir operacijų jiems bus pritaikyta. Sudėtingų tipų duomenų tvarkymas yra lankstus ir palaikomas. Galite kurti klases ir poklasius, pavyzdžiui, klientų bazėje gali būti šio kliento nuorodos poklasis ir jis paveldės visus pradinės klasės atributus ir charakteristikas. Šis metodas leidžia greitai ir lanksčiai apdoroti sudėtingus duomenis.