Ця стаття має кілька недоліків. Будь ласка, допоможіть удосконалити її або обговоріть ці проблеми на .
|
Об'єктно-реляційна база даних (англ. object-relational database, ORD), чи Об'єктно-реляційна СКБД, це система керування базами даних подібна до реляційної, але з об'єктно-орієнтованою моделлю бази: об'єкти, класи та наслідування підтримуються в схемі даних та мові запитів. На додачу, як і в реляційних БД, вона підтримує розширення моделі даних новими типами даних та методами.
Об'єктно-реляційна база даних знаходиться в проміжному положенні між реляційними базами даних і об'єктно-орієнтованими базами даних (об'єктними базами даних). В об'єктно-реляційних баз даних, підхід, по суті, як у реляційних баз даних: дані зберігаються в базі даних і маніпулюють всі разом із запитами мовою запитів; на іншому полюсі знаходиться OODBMSes, в якій база даних є ніби стійким об'єктом, сховищем для програмного забезпечення, написаного об'єктно-орієнтованою мовою програмування, з програмуванням API для зберігання та вилучення об'єктів, і мало або взагалі не має конкретної підтримки запитів.
Огляд
Основна потреба об'єктно-реляційної бази даних виникає через те, що обидві реляційна й об'єктна бази даних мають свої індивідуальні переваги й недоліки. Ізоморфізм реляційної бази даних системи з математичним зв'язком дозволяє використовувати безліч корисних методів і теорем з теорії множин. Але ці типи баз даних не є корисними, коли мова йде про складності даних і неузгодженість між додатком і СУБД. Об'єктно-орієнтована модель бази даних враховує контейнери, такі як набори та списки, довільно визначених користувачем типів даних, а також вкладених об'єктів. Це дає спільність між системами типу додатків і системами типу бази даних, яка усуває будь-які проблеми невідповідності. Але об'єктні бази даних, на відміну від реляційних не забезпечують математичну основу для їх глибокого аналізу.
Основна мета для об'єктно-реляційної бази даних є подолання розриву між реляційними базами даних і методів моделювання об'єктно-орієнтованих використовуваних в мовах програмування, таких як: Java, , Visual Basic .NET або C#. Проте, більш популярною альтернативою для досягнення такого моста є використання стандартних реляційних систем управління базами даних з деякою формою об'єктно-реляційного відображення (ORM) програмного забезпечення. У той час як традиційні RDBMS або SQL-СУБД, орієнтовані на ефективне управління даними, отриманих з обмеженого набору типів даних (визначається відповідними стандартами мови), об'єктно-реляційної СУБД дозволяє розробникам інтегрувати свої власні типи й методи, що застосовуються до них у СУБД.
ОРСУБД (такі як ODBMS або OODBMS) інтегровано з об'єктно-орієнтованою мовою програмування. Характерними властивостями ОРСУБД є:
1) складні дані;
2) спадкування типу;
3) поведінка об'єкта.
Створення комплексних даних в більшості SQL ОРСУБД засноване на попередньому визначенні схеми за допомогою визначеного користувачем типу (UDT). Ієрархія в структурованих комплексних даних пропонує додаткову властивість, тип спадкування. Тобто, структурований тип може мати підтипи, які використовують всі його атрибути й містять додаткові атрибути, специфічні для підтипу. Ще одна перевага, поведінка об'єкта, пов'язана з доступом до програмних об'єктів. Такі програмні об'єкти повинні зберігатися і переноситись для обробки баз даних, тому вони, як правило, називані як постійні об'єкти. Всередині бази даних всі відносини з постійним програмним об'єктом є відносини з його ідентифікатором об'єкта (OID). Всі ці моменти можуть бути вирішені у власне реляційній системі, хоча стандарт SQL і його реалізації накладають довільні обмеження і додаткові складності.
В об'єктно-орієнтоване програмування (ООП), Поведінка об'єкта описується за допомогою методів (функцій) об'єктів. Методи, позначені одним ім'ям, відрізняються за типом їх параметрів і типів об'єктів, для яких вони прикріпленими (). ООП мови називають це поліморфізний принцип, який коротко визначається як «один інтерфейс, багато реалізацій». Інші принципи ООП, успадкування та інкапсуляція, пов'язані як з методами, так і з атрибутами. Метод наслідування входить в успадкування типу. Інкапсуляція в ООП є ступінь видимості оголошена, наприклад, через public
, private
і protected
.
Історія
Об'єктно-реляційні системи управління базами даних виросли з досліджень початку 1990-х років. Ці дослідження розширили існуючі реляційні бази даних шляхом додавання концепції об'єкта. Дослідники прагнули зберегти декларативні запити мови, засновані на численні предикатів як центральний компонент архітектури. Ймовірно, найвідоміший дослідницький проєкт, Postgres (UC Berkeley), породив два похідні продукти: Illustra і PostgreSQL.
В середині 1990-х років з'явилися перші комерційні продукти. До них належить Illustra (Illustra Information Systems, придбаний Informix Software, який своєю чергою був придбаний IBM), Omniscience (Omniscience Corporation, придбаний Oracle Corporation і стала Oracle Lite), також UniSQL (UniSQL, Inc., придбані KCOMS). Український розробник Руслан Засухин, засновник Paradigma Software, Inc., розробив і відвантажив першу версію Valentina database в середині 1990-х років як SDK. До наступного десятиріччя, PostgreSQL стала комерційно життєздатною базою даних, і є основою для декількох існуючих продуктів, які підтримують його ORDBMS функції.
Комп'ютерні вчені стали посилатися на ці продукти, як «Об'єктно-реляційні системи управління базами даних» або ОРСУБД.
Багато з ідей ранніх об'єктно-реляційних баз даних багато в чому стали включені в SQL:1999 через . Насправді будь-який продукт, який дотримується об'єктно-орієнтованих аспектів SQL: 1999 можна було б описати як продукт управління базами даних об'єктно-реляційна. Наприклад, IBM's DB2, Oracle database, та Microsoft SQL Server, ставили вимоги, щоб підтримати цю технологію і зробити це з різним ступенем успіху.
Порівняння з РСУБД
СУБД може звичайно містити в собі SQL вирази, такі як ці:
CREATE TABLE Customers ( Id CHAR(12) NOT NULL PRIMARY KEY, Surname VARCHAR(32) NOT NULL, FirstName VARCHAR(32) NOT NULL, DOB DATE NOT NULL ); SELECT InitCap(Surname) || ', ' || InitCap(FirstName) FROM Customers WHERE Month(DOB) = Month(getdate()) AND Day(DOB) = Day(getdate())
Більшість сучасних баз даних SQL дозволяють крафт призначених для користувача функцій, які дозволили б запит, щоб виглядати наступним чином:
SELECT Formal(Id) FROM Customers WHERE Birthday(DOB) = Today()
В об'єктно-реляційній базі даних, можна було б побачити щось на зразок цього, з певним користувачем типами даних і виразами, такими як BirthDay()
:
CREATE TABLE Customers ( Id Cust_Id NOT NULL PRIMARY KEY, Name PersonName NOT NULL, DOB DATE NOT NULL ); SELECT Formal( C.Id ) FROM Customers C WHERE BirthDay ( C.DOB ) = TODAY;
Об'єктно-реляційна модель може запропонувати ще одну перевагу в тому, що база даних може використовувати відносини між даними, щоб легко збирати пов'язані записи. У додатку , додаткова таблиця буде додана в вищі, щоб тримати нуль або більше адрес для кожного клієнта. Використовуючи традиційну СУБД, збираючи інформацію як для користувачів, так і їх адресу вимагає «приєднатися»:
SELECT InitCap(C.Surname) || ', ' || InitCap(C.FirstName), A.city FROM Customers C join Addresses A ON A.Cust_Id=C.Id -- the join WHERE A.city="New York"
Той же самий запит в об'єктно-реляційній базі даних виглядає простіше:
SELECT Formal( C.Name ) FROM Customers C WHERE C.address.city="New York" -- the linkage is 'understood' by the ORDB
Див. також
- SQL
- Comparison of object-relational database management systems
- Structured Type
- Об'єктно-орієнтована база даних
- Об'єктно-реляційне відображення
- Реляційна модель даних
- LINQ
- ADO.NET
Примітки
- Frank Stajano (1995), A Gentle Introduction to Relational and Object Oriented Databases (PDF)
- Naman Sogani (2015), (PDF), архів оригіналу (PDF) за 4 березня 2016, процитовано 12 червня 2017
- ; , The Third Manifesto
Посилання
- Savushkin, Sergey (2003), , архів оригіналу за 1 березня 2012, процитовано 21 липня 2012
- JPA Performance Benchmark — comparison of Java JPA ORM Products (Hibernate, EclipseLink, OpenJPA, DataNucleus).
- PolePosition Benchmark — shows the performance trade-offs for solutions in the object-relational impedance mismatch context.
Вікіпедія, Українська, Україна, книга, книги, бібліотека, стаття, читати, завантажити, безкоштовно, безкоштовно завантажити, mp3, відео, mp4, 3gp, jpg, jpeg, gif, png, малюнок, музика, пісня, фільм, книга, гра, ігри, мобільний, телефон, android, ios, apple, мобільний телефон, samsung, iphone, xiomi, xiaomi, redmi, honor, oppo, nokia, sonya, mi, ПК, web, Інтернет
Cya stattya maye kilka nedolikiv Bud laska dopomozhit udoskonaliti yiyi abo obgovorit ci problemi na storinci obgovorennya Cya stattya mistit pravopisni leksichni gramatichni stilistichni abo inshi movni pomilki yaki treba vipraviti Vi mozhete dopomogti vdoskonaliti cyu stattyu pogodivshi yiyi iz chinnimi movnimi standartami 7 chervnya 2019 Cyu stattyu treba vikifikuvati dlya vidpovidnosti standartam yakosti Vikipediyi Bud laska dopomozhit dodavannyam dorechnih vnutrishnih posilan abo vdoskonalennyam rozmitki statti 7 chervnya 2019 Ob yektno relyacijna baza danih angl object relational database ORD chi Ob yektno relyacijna SKBD ce sistema keruvannya bazami danih podibna do relyacijnoyi ale z ob yektno oriyentovanoyu modellyu bazi ob yekti klasi ta nasliduvannya pidtrimuyutsya v shemi danih ta movi zapitiv Na dodachu yak i v relyacijnih BD vona pidtrimuye rozshirennya modeli danih novimi tipami danih ta metodami Priklad ob yektno oriyentovanoyi modeli bazi danih Ob yektno relyacijna baza danih znahoditsya v promizhnomu polozhenni mizh relyacijnimi bazami danih i ob yektno oriyentovanimi bazami danih ob yektnimi bazami danih V ob yektno relyacijnih baz danih pidhid po suti yak u relyacijnih baz danih dani zberigayutsya v bazi danih i manipulyuyut vsi razom iz zapitami movoyu zapitiv na inshomu polyusi znahoditsya OODBMSes v yakij baza danih ye nibi stijkim ob yektom shovishem dlya programnogo zabezpechennya napisanogo ob yektno oriyentovanoyu movoyu programuvannya z programuvannyam API dlya zberigannya ta viluchennya ob yektiv i malo abo vzagali ne maye konkretnoyi pidtrimki zapitiv OglyadOsnovna potreba ob yektno relyacijnoyi bazi danih vinikaye cherez te sho obidvi relyacijna j ob yektna bazi danih mayut svoyi individualni perevagi j nedoliki Izomorfizm relyacijnoyi bazi danih sistemi z matematichnim zv yazkom dozvolyaye vikoristovuvati bezlich korisnih metodiv i teorem z teoriyi mnozhin Ale ci tipi baz danih ne ye korisnimi koli mova jde pro skladnosti danih i neuzgodzhenist mizh dodatkom i SUBD Ob yektno oriyentovana model bazi danih vrahovuye kontejneri taki yak nabori ta spiski dovilno viznachenih koristuvachem tipiv danih a takozh vkladenih ob yektiv Ce daye spilnist mizh sistemami tipu dodatkiv i sistemami tipu bazi danih yaka usuvaye bud yaki problemi nevidpovidnosti Ale ob yektni bazi danih na vidminu vid relyacijnih ne zabezpechuyut matematichnu osnovu dlya yih glibokogo analizu Osnovna meta dlya ob yektno relyacijnoyi bazi danih ye podolannya rozrivu mizh relyacijnimi bazami danih i metodiv modelyuvannya ob yektno oriyentovanih vikoristovuvanih v movah programuvannya takih yak Java C Visual Basic NET abo C Prote bilsh populyarnoyu alternativoyu dlya dosyagnennya takogo mosta ye vikoristannya standartnih relyacijnih sistem upravlinnya bazami danih z deyakoyu formoyu ob yektno relyacijnogo vidobrazhennya ORM programnogo zabezpechennya U toj chas yak tradicijni RDBMS abo SQL SUBD oriyentovani na efektivne upravlinnya danimi otrimanih z obmezhenogo naboru tipiv danih viznachayetsya vidpovidnimi standartami movi ob yektno relyacijnoyi SUBD dozvolyaye rozrobnikam integruvati svoyi vlasni tipi j metodi sho zastosovuyutsya do nih u SUBD ORSUBD taki yak ODBMS abo OODBMS integrovano z ob yektno oriyentovanoyu movoyu programuvannya Harakternimi vlastivostyami ORSUBD ye 1 skladni dani 2 spadkuvannya tipu 3 povedinka ob yekta Stvorennya kompleksnih danih v bilshosti SQL ORSUBD zasnovane na poperednomu viznachenni shemi za dopomogoyu viznachenogo koristuvachem tipu UDT Iyerarhiya v strukturovanih kompleksnih danih proponuye dodatkovu vlastivist tip spadkuvannya Tobto strukturovanij tip mozhe mati pidtipi yaki vikoristovuyut vsi jogo atributi j mistyat dodatkovi atributi specifichni dlya pidtipu She odna perevaga povedinka ob yekta pov yazana z dostupom do programnih ob yektiv Taki programni ob yekti povinni zberigatisya i perenositis dlya obrobki baz danih tomu voni yak pravilo nazivani yak postijni ob yekti Vseredini bazi danih vsi vidnosini z postijnim programnim ob yektom ye vidnosini z jogo identifikatorom ob yekta OID Vsi ci momenti mozhut buti virisheni u vlasne relyacijnij sistemi hocha standart SQL i jogo realizaciyi nakladayut dovilni obmezhennya i dodatkovi skladnosti V ob yektno oriyentovane programuvannya OOP Povedinka ob yekta opisuyetsya za dopomogoyu metodiv funkcij ob yektiv Metodi poznacheni odnim im yam vidriznyayutsya za tipom yih parametriv i tipiv ob yektiv dlya yakih voni prikriplenimi OOP movi nazivayut ce polimorfiznij princip yakij korotko viznachayetsya yak odin interfejs bagato realizacij Inshi principi OOP uspadkuvannya ta inkapsulyaciya pov yazani yak z metodami tak i z atributami Metod nasliduvannya vhodit v uspadkuvannya tipu Inkapsulyaciya v OOP ye stupin vidimosti ogoloshena napriklad cherez public private i protected IstoriyaOb yektno relyacijni sistemi upravlinnya bazami danih virosli z doslidzhen pochatku 1990 h rokiv Ci doslidzhennya rozshirili isnuyuchi relyacijni bazi danih shlyahom dodavannya koncepciyi ob yekta Doslidniki pragnuli zberegti deklarativni zapiti movi zasnovani na chislenni predikativ yak centralnij komponent arhitekturi Jmovirno najvidomishij doslidnickij proyekt Postgres UC Berkeley porodiv dva pohidni produkti Illustra i PostgreSQL V seredini 1990 h rokiv z yavilisya pershi komercijni produkti Do nih nalezhit Illustra Illustra Information Systems pridbanij Informix Software yakij svoyeyu chergoyu buv pridbanij IBM Omniscience Omniscience Corporation pridbanij Oracle Corporation i stala Oracle Lite takozh UniSQL UniSQL Inc pridbani KCOMS Ukrayinskij rozrobnik Ruslan Zasuhin zasnovnik Paradigma Software Inc rozrobiv i vidvantazhiv pershu versiyu Valentina database v seredini 1990 h rokiv yak C SDK Do nastupnogo desyatirichchya PostgreSQL stala komercijno zhittyezdatnoyu bazoyu danih i ye osnovoyu dlya dekilkoh isnuyuchih produktiv yaki pidtrimuyut jogo ORDBMS funkciyi Komp yuterni vcheni stali posilatisya na ci produkti yak Ob yektno relyacijni sistemi upravlinnya bazami danih abo ORSUBD Bagato z idej rannih ob yektno relyacijnih baz danih bagato v chomu stali vklyucheni v SQL 1999 cherez Naspravdi bud yakij produkt yakij dotrimuyetsya ob yektno oriyentovanih aspektiv SQL 1999 mozhna bulo b opisati yak produkt upravlinnya bazami danih ob yektno relyacijna Napriklad IBM s DB2 Oracle database ta Microsoft SQL Server stavili vimogi shob pidtrimati cyu tehnologiyu i zrobiti ce z riznim stupenem uspihu Porivnyannya z RSUBDSUBD mozhe zvichajno mistiti v sobi SQL virazi taki yak ci CREATE TABLE Customers Id CHAR 12 NOT NULL PRIMARY KEY Surname VARCHAR 32 NOT NULL FirstName VARCHAR 32 NOT NULL DOB DATE NOT NULL SELECT InitCap Surname InitCap FirstName FROM Customers WHERE Month DOB Month getdate AND Day DOB Day getdate Bilshist suchasnih baz danih SQL dozvolyayut kraft priznachenih dlya koristuvacha funkcij yaki dozvolili b zapit shob viglyadati nastupnim chinom SELECT Formal Id FROM Customers WHERE Birthday DOB Today V ob yektno relyacijnij bazi danih mozhna bulo b pobachiti shos na zrazok cogo z pevnim koristuvachem tipami danih i virazami takimi yak BirthDay CREATE TABLE Customers Id Cust Id NOT NULL PRIMARY KEY Name PersonName NOT NULL DOB DATE NOT NULL SELECT Formal C Id FROM Customers C WHERE BirthDay C DOB TODAY Ob yektno relyacijna model mozhe zaproponuvati she odnu perevagu v tomu sho baza danih mozhe vikoristovuvati vidnosini mizh danimi shob legko zbirati pov yazani zapisi U dodatku dodatkova tablicya bude dodana v vishi shob trimati nul abo bilshe adres dlya kozhnogo kliyenta Vikoristovuyuchi tradicijnu SUBD zbirayuchi informaciyu yak dlya koristuvachiv tak i yih adresu vimagaye priyednatisya SELECT InitCap C Surname InitCap C FirstName A city FROM Customers C join Addresses A ON A Cust Id C Id the join WHERE A city New York Toj zhe samij zapit v ob yektno relyacijnij bazi danih viglyadaye prostishe SELECT Formal C Name FROM Customers C WHERE C address city New York the linkage is understood by the ORDBDiv takozhSQL Comparison of object relational database management systems Structured Type Ob yektno oriyentovana baza danih Ob yektno relyacijne vidobrazhennya Relyacijna model danih LINQ ADO NETPrimitkiFrank Stajano 1995 A Gentle Introduction to Relational and Object Oriented Databases PDF Naman Sogani 2015 PDF arhiv originalu PDF za 4 bereznya 2016 procitovano 12 chervnya 2017 The Third ManifestoPosilannyaSavushkin Sergey 2003 arhiv originalu za 1 bereznya 2012 procitovano 21 lipnya 2012 JPA Performance Benchmark comparison of Java JPA ORM Products Hibernate EclipseLink OpenJPA DataNucleus PolePosition Benchmark shows the performance trade offs for solutions in the object relational impedance mismatch context