Вам бонус- начислено 1 монета за дневную активность. Сейчас у вас 1 монета

Взгляд на объектно-ориентированные сетевые СУБД с точки зрения реляционных СУБД ООСУБД vs РСУБД кратко

Лекция



Привет, мой друг, тебе интересно узнать все про оосубд vs рсубд, тогда с вдохновением прочти до конца. Для того чтобы лучше понимать что такое оосубд vs рсубд , настоятельно рекомендую прочитать все из категории Представление и использование знаний.

Наивные ОРСУБД

Рассмотрим построение абстрактной объектно-ориентированной СУБД, взяв в качестве отправной точки реляционную СУБД. Пусть строки в таблицах будут экземплярами классов, описываемых заголовками таблиц. Все строки таблицы будут экземплярами данного класса. В этом случае колонка таблицы будет соответствовать полю некоторого класса, значение поля строки в таблице будет соответствовать значению поля экземпляра класса. Эта первая итерация разработки ООСУБД уже позволяет работать с РБД в терминах классов, экземпляров, значений полей экземпляров. До полноценной ОО системы здесь не хватает еще методов, overriding виртуальных методов, наследования и инкапсуляции. Тем не менее, очевидно, что никаких достоинств РСУБД в такой трактовке ОРСУБД не утеряно.

Объектно-реляционные СУБД

Двигаемся далее. Позволяем определять методы, неявно принимающие в качестве одного из параметров строку одной определенной таблицы. Такие методы можно рассматривать как методы класса-таблицы, оперирующие с данными экземпляров класса (строками таблиц). В каждую таблицу добавляем скрытое поле, в котором будем хранить идентификатор таблицы таких функций (vtbl). Теперь по аналогии с ООП возможно ввести одиночное наследование. Так таблица, наследующая некоторую таблицу наследует колонки этой таблицы или что тоже самое – наследует поля класса. Дополнительно наследуется интерфейс класса, определенный в базовой таблице. Наличие идентификатора таблицы виртуальных методов позволяет в такой базе данных реализовать виртуальные методы. Вызов некоторого метода для некоторой строки будет заключаться в определении таблицы виртуальных функций по идентификатору такой таблицы и, затем, в поиске и вызове реализации метода по его имени в таблице виртуальных методов. Базовая таблица будет содержать все экземпляры классов унаследованные от этой таблицы. Наличие vtbl позволит вызывать реализации overridden методов определенных в derived таблицах у строк входящих в базовую таблицу. Итак, в разрабатываемой абстрактной СУБД имеется поддержка концепции наследования и полиморфизма. Так же очевидно, что добавление такой возможности оставило в силе все существующие возможности РСУБД.

Инкапсуляция реализуется в разрабатываемой СУБД путем использования VIEWs. VIEWs позволяют защитить некоторые поля таблиц от прямого доступа, обеспечивая при этом доступ к интерфейсу классов благодаря наличию в каждой строке идентификатора vtbl.

Заметим, что такая реализация ОО идей в среде РСУБД не является новой – в качестве примера уже существующей реализации можно привести Postgree SQL.

Продолжаем. Каждая строка таблицы физически расположена в хранилище по некоторому уникальному адресу. Об этом говорит сайт https://intellect.icu . Даже если это еще не реализовано в используемой в качестве прототипа РСУБД, технически возможно обеспечить неизменяемость этого адреса в течении всего времени жизни строки, соответствующей этому адресу. Аналогом такого адреса могут служить bookmarks используемые в современных РСУБД для адресации строк. Наличие уникального и неизменяемого во времени логического адреса строки позволяет нам реализовать концепцию указателей на строки и ввести тип указателя на строку-объект. В совокупности с разработанными ранее концепциями наследования, полиморфизма и инкапсуляции это делает разрабатываемую абстрактную ООСУБД полноценной системой ОО программирования.

Следует заметить, что идея указателей на строки тоже не нова и уже давно реализована в такой известной РСУБД как Oracle.

Рассматриваемые расширения РСУБД оставило без ущерба существующие возможности. Как и ранее, разработанная абстрактная ОРСУБД включает в себя РСУБД как частный случай.

Сетевые ООСУБД

Продолжаем разработку. В разработанной ОРСУБД таблицы представляют собой коллекции bookmarks указывающие на некоторые строки. Один и тот же экземпляр строки может находиться сразу в нескольких таблицах. Один экземпляр в таблице, экземпляром класса которой является данная строка и по одному экземпляру этой строки во всех базовых таблицах-классах. Интерфейс, поддерживаемый строкой (колонки + методы) соответствует классу, экземпляром которого является данная строка. Важным является то, что этот интерфейс не является эквивалентным интерфейсам базовых таблиц. Он шире, чем интерфейсы базовых таблиц, однако, этот интерфейс является совместимым с интерфейсом таблиц, в которые входит данная строка. Так плавно переходим к понятию интерфейса, абстрактных классов и множественному наследованию интерфейсов, давно используемых в ООП.

Это очень важный шаг, так как теперь возможность принадлежности некоторой строки к некоторой таблице определяется совместимостью интерфейса этой строки с интерфейсом, определенным для некоторой таблицы. Это позволяет сделать следующий шаг – рассматривать таблицы не как физическое хранилище для строк, а как коллекции экземпляров некоторых классов, интерфейсы которых совместимы с интерфейсами, определенными для этих коллекций. Обратим внимание на потенциальную независимость интерфейса, определенного для таблицы и интерфейса, определенного для строки. Не смотря на то, что разработанная система, в некотором частном случае может функционировать так же, как и РСУБД с которой была начата разработка, таблицы в разработанной СУБД более не являются отношениями в классическом смысле. Строки таких таблиц- коллекций это уже не подмножество декартового произведения определения интерфейса на область возможных значений интерфейса. Да, коллекции в разработанной системе при желании можно трактовать как подмножество декартового произведения определения интерфейса на область возможных значений интерфейса. Это делает РСУБД частным случаем разработанной. Но, учитывая полиморфизм экземпляров- строк обеспечивающих доступ к своим внутренним структурам через public интерфейсы в такой СУБД появляется возможность совместного использования некоторых интерфейсов (колонок и/или методов) несколькими таблицами-коллекциями. Такие таблицы уже нельзя считать классическими отношениями, т.к. при изменении полей строк через одну таблицу, будут так же изменены поля этих же строк во всех других таблицах содержащих измененные строки.

Рассмотрим интерфейс более подробно. Интерфейс строки состоит из определения сигнатур методов, которые применимы к данной строке, а так же из определений полей-колонок унаследованных этой строкой. Ранее, допустив возможность наследования таблиц, была создана возможность одновременного включения одних и тех же колонок-полей в разные таблицы, что обеспечило полиморфизм строк. Как следствие, отдельная строка, наследующая множество интерфейсов имеет значения для колонок, описанных во всех унаследованных интерфейсах. Однако только то подмножество значений может быть доступно через некоторую таблицу, которое является пересечением множества всех колонок, унаследованных данной строкой и множеством всех колонок определенных как интерфейс для данной коллекции-таблицы. Что в таком случае есть строка? Строка это подмножество декартового произведения всех возможных колонок на все возможные значения этих колонок. Здесь получен интересный и неожиданный результат, несмотря на то что разработанная абстрактная ОРСУБД включает в себя РСУБД как частный случай, тем не менее, не таблица а строка таблицы является отношением.

Итоги

Подведем итоги. В процессе разработки никакие возможности РСУБД не были удалены из разрабатываемой абстрактной СУБД. В процессе разработки новые возможности только добавлялись. Разработанная ОРСУБД включает в себя РСУБД как частный случай. Строки-экземпляры наследуют значительное количество колонок, публикуя лишь некоторые через интерфейсы таблиц. Как строки, так и колонки могут одновременно входить в несколько разных таблиц. Таблицы являются коллекциями экземпляров объектов и более не являются классическими отношениями. Можно сказать, что экземпляры_классов-строки представляют собой узлы, поля этих экземпляров представляют собой атрибуты узлов. В том числе поля ссылочного типа хранят указатели на другие узлы. Сами узлы могут иметь миллионы атрибутов, публикуя лишь некоторые через интерфейс коллекций. Атрибуты могут иметь как скалярные значения, так и ссылки на другие узлы, тем самым образуя сеть. Обеспечивается наследование, полиморфизм и инкапсуляция в пределах VIEWs.

Взгляд на объектно-ориентированные сетевые СУБД с точки зрения реляционных СУБД ООСУБД vs РСУБД

Итак, в итоге этой разработки была получена абстрактная объектно-ориентированная сетевая система управления базами данных, которая включает в себя все возможности реляционной СУБД как частный случай.

Возможность эффективной реализации такой объектно-ориентированной сетевой системы управления базами данных требует дальнейших исследований.

Вау!! 😲 Ты еще не читал? Это зря!

Если я не полностью рассказал про оосубд vs рсубд? Напиши в комментариях Надеюсь, что теперь ты понял что такое оосубд vs рсубд и для чего все это нужно, а если не понял, или есть замечания, то не стесняйся, пиши или спрашивай в комментариях, с удовольствием отвечу. Для того чтобы глубже понять настоятельно рекомендую изучить всю информацию из категории Представление и использование знаний

Из статьи мы узнали кратко, но содержательно про оосубд vs рсубд
создано: 2014-09-23
обновлено: 2021-12-13
220



Рейтиг 9 of 10. count vote: 2
Вы довольны ?:


Поделиться:

Найди готовое или заработай

С нашими удобными сервисами без комиссии*

Как это работает? | Узнать цену?

Найти исполнителя
$0 / весь год.
  • У вас есть задание, но нет времени его делать
  • Вы хотите найти профессионала для выплнения задания
  • Возможно примерение функции гаранта на сделку
  • Приорететная поддержка
  • идеально подходит для студентов, у которых нет времени для решения заданий
Готовое решение
$0 / весь год.
  • Вы можите продать(исполнителем) или купить(заказчиком) готовое решение
  • Вам предоставят готовое решение
  • Будет предоставлено в минимальные сроки т.к. задание уже готовое
  • Вы получите базовую гарантию 8 дней
  • Вы можете заработать на материалах
  • подходит как для студентов так и для преподавателей
Я исполнитель
$0 / весь год.
  • Вы профессионал своего дела
  • У вас есть опыт и желание зарабатывать
  • Вы хотите помочь в решении задач или написании работ
  • Возможно примерение функции гаранта на сделку
  • подходит для опытных студентов так и для преподавателей

Комментарии


Оставить комментарий
Если у вас есть какое-либо предложение, идея, благодарность или комментарий, не стесняйтесь писать. Мы очень ценим отзывы и рады услышать ваше мнение.
To reply

Представление и использование знаний

Термины: Представление и использование знаний