|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Не поленился распечатать исходную статью. Видимо придётся ещё и обсуждение тоже завтра на работе на лазерник вывести (дома долго и чернила жалко :) ). Пока лишь о том, что увидел при беглом просмотре. Идеи объединить ООП и реляционную модель бродят давно, есть даже варинаты решения, тот же e-Cache. Но при всём при этом ничего более-менее стоящего пока, увы, не появилось. Мне кажется не появилось во многом потому, что всё время делаются попытки объединить две концептуально разные модели в нечто единое, чтобы попытаться поиспользовать приемущества того и другого подхдов. Но по ходу получается также объединение и имеющихся недостатков, что сводит в большинстве случаев сводит преимущества такого объединения к нулю. И концепция реляционных баз данных, и концепция ООП возникли как способ решения изначально разных задач. Реляционные БД - способ представления данных таким образом, чтобы это было в первую очередь удобно компьютеру и относительно понятно человеку. Если применить к реляционной БД все правила номрализации, то в 99% случаев человеку напрямую пользоватся такой базой будет невозможно. То есть, нормализация расчитана в большей степени на ускорение обработки данных компьютером и обеспечения "целостности данных". За счёт нормализации мы сокращаем количество операций, которые выполняет компьютер при анализе данных, хотя и увеличиваем при отображении их пользователю. То есть, для просмотра таких данных необходимо написать соответсвующий запрос или создать программу-клиента. ООП создавалось как способ облегчить разработку программ для программиста. Если смотреть на эту концепцию с точки зрения компьютера, то она усложняет ему жизнь, поскольку для вызоыв тех же перекрываемых методов необходимо произвести допольнительную обработку. Но писать программы с использованием ООП в большинстве случаев человеку легче (мой личный опыт это также подтверждает :) ). Теперь мы пытаемся эти два подхода объединить в нечто общее. Что и почему будем "приносить в жертву"? Если положить ООП струткуру в реляционную модель хранения данных, то мы неизбежно получим дополнительную нагрузку на компьютер, хотя одновременно можем существенно упростить написание программы. Особенно если для хранения данных попытаемся использовать какие-то стандартные существующие БД. Мне приходилось видеть примеры практической реализации механизма метатаблиц. В теории тоже звучит красиво, но работает на практике крайне медленно. Мне кажется, что реляционная модлель с одной стороны и объектно-ориентированная модель с другой очень хорошо отражают разные способы "мышления" современного компьютера и человека. При этом то, что удобно одному, в большинстве случаев совершенно неудобно другому и наоборот. И если их объединить "в лоб", то мы в итоге получим систему, которая неудобна всем. ИМХО. Когда появилась первая концепция реляционных БД? Она появилась в те времена, когда компьютерные ресурсы были дорогие и их старались экономить всеми возможными способами. Когда появилась вторая концепция ООП? Она появляется тогда, когда становится очевидно, что прогресс в аппаратной части первосходит возможности программистов по написанию программ старыми методами. То есть, появилась потребность экономить "ресурсы программистов". :) Какая потребность сейчас и что мы хотим "сэкономить"? Это и будет определять новую концепцию. А без красивой новой концепции (сути того, что мы пытаемся реализовать), ничего путного по моему не выйдет. При этом мы должны оперделиться с тем, чего у нас на самом деле в избытке и "принести это в жертву". ... |
|||
:
Нравится:
Не нравится:
|
|||
27.08.2003, 23:11 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Смешались в кучу кони, люди :) Давайте не по порядку 1) первые РСУБД были УЖАСНО медленные. И созданы они были практически в тоже время, в какое возникли ОО языки програмирования. К производительности это не имеет никакого отношения. Более того - буквално пару мессагов назад я писал, что асссоциативный способ доступа к данным, используемый в реляционных системах, требует гораздо больших вычислительных затроат, чем адресный(ссылочный). Это только кажеться просто - реально РСУБД устроены очень сложно и даже при элемнтарных запросах выполняют коллосальную вычислительную работу с многочисленными перемещениями данных между ОЗУ и дисками. Транзакции, контроль целостности.....Прикинте сами, по сравнению с этим перекрываемые методы - это просто такое тьфу :) .Точно также (если не сильнее) как ОО облегчает програмирование, реляционная модель и реализующие ее системы облегчает работу с данными. И созданы они были именно потому, что человеку потребовался основанной на формальной модели механизм работы с большими объемами информации. 2)Я утверждаю(еще раз), что я ничем не жертвую. Оговорюсь - то, что я предлагаю, не есть конкурет систамам ОО-програмирования. Объектно-ориентирванные системы управления РБД есть инструмент, 1)позволяющий описывать моделируемую предметной области, и 2)среда согласовооного существования информационных объектов, соответсвующих этому описанию 3) механизм, позволяющий изменять состояние этих объектов и получать данные о их состоянии. Мне не нравится то, что мы должны описвать данные,хранящимися в таблицах, как набор таблиц. Мне не нравиться то, что мы должны управлять этими данными, используя операции над таблицами. Я хочу показать, что есть иной путь описание и управления данными, хранящимися в таблицах, причем сами таблицы (схема данных на уровне хранения) остаются практически без изменений. Поэтому совершенно уместно следующее сравнение: объектно-ориентирванные системы управления РБД настолько же менее эффективные по сравнению с традиционными РСУБД, насколько, скажем, С++ менее эффективен чем С (во всех аспектах, в т.ч. эффективность использования труда программиста). 3) ИМХО и реляционная модель и ОО парадигма отражают именно человеческое восприятие окружающего мира. ОО позволяет описать объекты. Рел.МД. в свою очередь, предназначччена для операций со значениями, а значения являются продуктом ...мммм....субъективного восприятия этих объектов ....вооот.... (это было как бы филосовское обоснование ООСУРБД ) 4) Выбросте из головы идеи о "совмещении". Для того, что бы понять как у меня соотносятся ОО и реляцинная БД, надо понять, как соотносятся, скажем, С++ и оперативная память (если кто сможет сформулирвать - напишите, ежели не в лом:). То, что я предлагаю - это удобный способ описанные данных, хранящихся в реляционной БД. Причем этот способ позволяет описать и сохранить ВСЕ об объекте - его состояние, поведение, связи и т.п. Воооот....:) Но ничего ....Просто сейчас период такой.... додарвиновский еще.... догматично-авторитарный. Факты, идеи и нужные технологии уже накоплены, осталось только выложить все в праильном порядке...типа....реляционные системы как универсально-формальная память, ОО как идельное ср-во описание окружающего мира и XML(или что-то типа) как универсальный способ передачи и представления данных.... и станет хорошо ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 02:06 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
U-gene> а как это тему продолжает? 1 это полушутка. я привел ссылку на систему со большим набором сложных обьектов. в идеале ты мог бы переписать часть их обьектов по своему. (только лучше не пробуй) - и показать как им все стало проще. гы 2 не могу добраться до чтения. 3 с127 нашел неточности (с которыми я согласен) на 4 странице и собирается написать тебе. 4 как там ребенок растет? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 06:03 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Во, U-gene, можешь же, когда захочешь, изясняться и простым языком. :) Давай по порядку. Все эти механизмы поддержки целсотности и т.п., которые требуют кучу ресурсов, появились позже базовой концепции. Ты видел когда нибудь что из себя представляли самые первые РБД? Да и в чём основная суть табличного хранения и реляционной модели с точки зрения компьютера? А в том, что в изначальной модели размер записи в таблице фикисированный, что позвляет сразу перемещаться на выбранный номер записи. То есть, мы не прсоматриваем весь фал данных от начала к концу, а используя прямой доступ к файлу перемещаемся в нужное место. Достигается это в том числе и путём использования индексов, которые в первых системах просто указывали на первый байт нужной записи в файле. И даже если мы делаем выборку с условием, то можем не просматривать файл подряд, а перепрыгивать к следующей записи как только условие нарушилось. Это ведь сейчас у нас много ОЗУ и база или достаточно большая её часть грузиться в память. А раньше каждый байт был на счету. Формальный механизм работы с данными? Да, согласен, формальный. Но сам по себе этот механизм уже есть определённый способ моделирования реальности. А Вы предлагаете этот механизм нагрузить сверху ещё одним механизмом. В чём прелесть ООП? В том, что там, если всё делаеться согласно исходной модели, объекты не просто хранят данные, но ещё сами умеют их правильно обрабатывать. То есть, объединяется хранение данных и реакция на различные события. В вашей же схеме мы опять по сути разделяем данные объектов, кторые хранятся в РБД и методы обработки этих данных. Такое решение может быть допустимым как некий компромис, но не более. Кстати, понимать как соотносится тот же C++ и оперативная память очень полезно (хотя я так сходу вряд ли смогу это "описать" :) ). Одна из проблем, которая сегодня прослеживается, это как раз то, что большая часть людей уже практически не представляют что и как в компьютере соотносится. Причём большей части людей этого, видимо, и не требуется, но вот разработчикам такое понимание просто необходимо. А как иначе они будут находить эффективные решения? Кстати, я вашей модели я не уловил каким образом опиясывается "поведение" средсвами РБД? Состояние - понятно, связи - тоже понятно. А поведение? Особенно если учесть, что вы постоянно ссылаетесь в своей работе на манифест, в котором как основа утверждается использование непроцедурных языков. :) Я вот так и не смог придумать способ описать поведение на непроцедурном языке. Может быть разъясните мне, тёмному? ... |
|||
:
Нравится:
Не нравится:
|
|||
28.08.2003, 08:15 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene Дочтал статью, понравилось. Очень хорошо получилось разделение на уровень представления и уровень хранения. Конечно не все прочитал с одинаковым вниманием, мог легко что-то пропустить. Нельзя ли в следующий раз выкладывать статью в интернет не в формате DOC, а в формате RTF, или же выложить два варианта? Вам это ничего не стоит, а читателям спокойнее. Все изложенное ниже – чистое ИМХО, на абсолютность я не претендую ни в коем случае, за исключение пары технических моментов. *) определение <0> - определение объекта. Чингиз обратил внимание, что поскольку {OID,a,r} включает разнородные упорядоченные элементы, его нельзя определять как трехэлементное множество, необходимо определять как тройку, т.е. o={OID,a,r} необходимо заменить на o=(OID,a,r). *) определение <0>. Элемент r нельзя определять как множество, иначе будут проблемы с одинаковыми значениями: множество {1,1,1} есть просто {1}. Возможно это же касаетя элемента a, но тут я не уверен, не понимаю, что в данном случае понимается под именем. Самое простое – перейти от множеств к спискам. Но по-моему лучше объединить a и r в множество пар: x={(a1,r1),…,(an,rn)}, где имя уникально по крайней мере в пределах одного объекта. Тогда объект это o=(OID,x). Определение схемы в остается аналогичным данному в статье: Schema:x|->{a1,…,an}. *) “Теория реляционных БД предполагает, что для обеспечения эффективного хранения данных (что подразумевает их целостность и непротиворечивость) , эти данные должны быть нормализованы [8,9,10].”. Тут Cat2 уже говорил, и я присоединяюсь, что требование нормализации данных (т.е. соблюдение всех нормальных форм одновременно) не следует с необходимостью ни из требования их эффективного хранения, ни из требования целостности и непротиворечивости, ни тем более из реляционной модели. *) соотношение <7>. Если это соответствие есть изоморфизм, то можно использовать обозначение изоморфизма, будет проще и понятнее. *) На стр. 3: “Предполагается, что возможность, позволяющая описать объектную переменную и задать множество значений отношений {r1,r2….rn}, не может быть выражена в терминах реляционной модели данных и, следовательно, ортогональна ей.” Необходимо сказать более подробно о статусе этого утверждения, например что это аксиома. Тем более, что в статье оно повторяется еще по крайней мере трижды: на стр. 6,7 и косвенно на стр.9: “Окончательная структура данных, которая возникнет в процессе объектной привязки, выйдет за рамки реляционной модели данных (собственно, это и является целью наших построений).“ Последнее ставит под сомнение, что изначально предполагалась аксиома. *) “Крайне важен тот факт, что предлагаемая формализация однозначно определяет способ, позволяющий представить информацию, описывающую множество O объектов вида <0>, в терминах реляционной модели данных.” Нет доказательства. К тому же это неверно, таких представлений может быть несколько, например всякие ненормализованные, да и нормализованных наверное может быть несколько, ведь нет теоремы о единственности нормализованного представления данных. Возможно имелось в виду, что существует единственный оптимальный способ представления, но тогда нужно доказывать соответствующую теорему. Возможно в данном случае вместо “однозначно определяет” лучше сказать: “определяет естественным образом”. *) В статье встречается несколько утверждений, аналогичных двум предыдущим, к которым непонятно как относится: то ли как к теоремам, то ли как к аксиомам, то ли как к разъяснительным и не несущим формальной нагрузки. *) Вместо словосочетания “существует функциональная зависимость” по-моему лучше использовать “существует функция” или “ существует отображение” *) Непонятно как записывается наследование классов на уровне храненния. *) Непонятно как записываются методы на уровне хранения. ... |
|||
:
Нравится:
Не нравится:
|
|||
29.08.2003, 07:44 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Дмитрий Мыльников >Мне кажется, что реляционная модлель с одной стороны и объектно-ориентированная модель с другой очень хорошо отражают разные способы "мышления" современного компьютера и человека. При этом то, что удобно одному, в большинстве случаев совершенно неудобно другому и наоборот. Не знаю как там объектно-ориентированная модель, а реляционная модель это в чистом виде (счетные) множества и отношения. На этой основе строится вся математика, которая всех устраивала вот уже несколько тысяч лет. А теперь вдруг в терминах множеств мыслить стало неудобно. Да RDBMS так успешны именно потому, что, что модель ОЧЕНЬ удобна для человека и достаточно удобна для компьютера. А проблемы от того, все множества, живущие в компьютере все-таки "сильно конечны", если бы они были равномощными счетным множествам, то проблем бы не было вообще. ИМХО. > И если их объединить "в лоб", то мы в итоге получим систему, которая неудобна всем. ИМХО. Не нужно их объединять, нужно записать в строгом смысле что мы понимаем под объектом и объектно-ориентированным подходом и многие вопросы сразу снимутся. Потом будем думать что делать дальше. А пока это не сделано - непонятно что с чем объединять. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2003, 22:09 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
В теории всё выглядит красиво. А как оно будет на практике. ВОт U-gene интересовался представляет ли кто-нибудь как объекты C++ отображаются на память (ОЗУ)? На счёт С++ сказать не могу, но как объекты Delphi (точнее Object Pascal) отображаются в ОЗУ я очень хорошо себе представляю. Что получится в предлагаемой U-gene системе? Получится, что данные одного объекта будут разнесены по разным таблицам. То есть, чтобы получить данные одного объекта серверу или приложению (смотря где будет происходить "сборка") придётся проделать достаточно много операций. И всё для чего? Для того, чтобы было удобнее хранить? Но это вопрос спорный. Чтобы было удобнее описывать модель? А чем неудобна собственно ОП? На мой взгляд существенный недостаток предлагаемого подхода как раз в том, что добавляется очередное разделение. При этом на уровне реляционной модели что там будет хранится совершенно всё равно. Если в ОЗУ обезличенный набор байт, то в РСУБД уже менее обезличенный, но всё ещё набор байт, но уж никак не объект в смысле ОП. И не надо путать "строгое математическое описание" и реальные РСУБД. Хотя, возможно, это разный взгляд на вещи теоретиков, которым важно именно "строгое мат. описание" и практиков, которые потом вынуждены придумывать как при реализации конкретных проектов выйти за рамки этого "строгого мат. описания", которые не позволяют решить поставленную задачу. И, что интересно, при выходе за эти самые рамки "строгого мат. описания" решение получается гораздо эффективнее, чем если пытаться всё сделать согласно теории. ... |
|||
:
Нравится:
Не нравится:
|
|||
30.08.2003, 23:35 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Я тоже склоняюсь к мнению, что использовать РЕЛЯЦИОННУЮ БД только как хранилище объектов немного неоправданно. В качестве хранилища объектов нужна специальная СУБД (ссылки на Cache не давать :) ), предназначенная именно для хранения объектов. Причем, никто не мешает применять наработки в области реляционной алгебры к подобной объектной базе данных. Несомненно от SQL придется отойти, как от языка, предназначенного для манипулирования "плоскими" таблицами. Не сомневаюсь, что SQL-для-объектов может быть очень похож на современный SQL. Но, вот, андеграунд, двоичная структура возвращаемых записей, должна соответствовать объектной структуре. Причем, необязательно возвращать все поля объекта, как необязательно возвращать все поля из таблиц. Более того, идя дальше в рассуждениях, можно создавать объекты из комбинаций полей других объектов, и т.д. (незаметно углубился...) Что касается отображения объектов С++ на память - очень даже просто отображаются. Только ведь это не важно (как не важен способ бинарного хранения данных в современных реляционных БД), важен ИНТЕРФЕЙС, который предоставляет ООСУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2003, 05:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
И так мы постепено придём к тому, что вопрос нужно ставить не о том, "можно ли отобразить объекты на реляционную модель?", а о том, что необходимо разработать удобный способ описания объектной модели, чтобы он позволил работать с объектами так же, как реляционная алгебра позволяет работать с реляционной моделью. Соответсвенно, следующим шагом будет разработка некоего языка, подобного исходному SQL, но для объектной модели. Кстати, судя по имеющимся на сегодняшний день наработкам, в том числе и по работе уважаемого U-gene, реляционная модель должна быть частным случаем объектной модели, а язык SQL как бы частнм случаем этого нового языка (назвать можно например OML - язык манипулирования объектами :) ). ... |
|||
:
Нравится:
Не нравится:
|
|||
31.08.2003, 09:26 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
В порядке FIFO, если не возражаете... 2 Дмитрий Мыльников (28.08.03) >>Все эти механизмы поддержки целсотности и т.п., которые требуют кучу ресурсов, появились позже базовой концепции. Ну... базовая концепция включает по крайней мере понятие "ключ" (первичный, внешний) - это уже требованеи к целостности данных. Т.е. без ключей - это не РБД. >>Ты видел когда-нибудь что из себя представляли самые первые РБД? Не видел, только читал. Сильная весчь, между прочим >>Да и в чём основная суть табличного хранения и реляционной модели с точки зрения компьютера? Ага, я же говорю, смещались в кучу таблицы, реляционная модель... тут еще паскалевских файлов с записями не хватает для полноты картины. >>А в том, что в изначальной модели размер записи в таблице фикисированный, что позвляет сразу перемещаться на выбранный номер записи. Вот это вообще вышак :). Все мои предыдушие распинания про адресный и ассоциативный доступ к данным прошли мимо. Совсем...... Какой-такой номер записи в таблице? С этого места можно поподробнее плиз?... Нехай местный народ поразвлекается..... >>То есть, мы не прсоматриваем весь фал данных от начала к концу, а используя прямой доступ к файлу перемещаемся в нужное место. Угу... нужное место - это прально (особливо ежели там бумажка мягкая:). Вот, скажем, мне нужно что-гить типа Код: plaintext
>>Формальный механизм работы с данными? Да, согласен, формальный. Но сам по себе этот механизм уже есть определённый способ моделирования реальности. Реляционная модель - это модель данных! и к реальности она имеет такое же отношение как орфографический словарь к роману за жисть :) >>А Вы предлагаете этот механизм нагрузить сверху ещё одним механизмом. А пардон, мы это наблюдаем постоянно! Вон в передаче данных аж семь уровней, сидящих друг на друге... А команды процессора 8086 в современных процессорах тоже транслируются в какой-то внутренний код и только так выполняются. А Java с ее виртуальной машиной...иж понакрутили...:) >>В чём прелесть ООП? В том, что там, если всё делаеться согласно исходной модели, объекты не просто хранят данные, но ещё сами умеют их правильно обрабатывать Супер-супер! Волга впадает в Каспийское море.... Я же не против, я только за. >>В вашей же схеме мы опять по сути разделяем данные объектов, кторые хранятся в РБД и методы обработки этих данных. Такое решение может быть допустимым как некий компромис, но не более. Я понял - Вы не читали статью:).... ну или читали ее невнимательно Конечно, на уровне хранения код и данные храняться в множестве разных записей. Но эта кухня скрыто от пользователя-прогаммиста, который описывает данные и работает на уровне представления , а там все....весьма объектно, то есть очень даже объектно, в т.ч. вместе с методами. >>Кстати, я вашей модели я не уловил каким образом опиясывается "поведение" средсвами РБД? Состояние - понятно, связи - тоже понятно. А поведение? Особенно если учесть, что вы постоянно ссылаетесь в своей работе на манифест, в котором как основа утверждается использование непроцедурных языков. :) Я вот так и не смог придумать способ описать поведение на непроцедурном языке. Может быть разъясните мне, тёмному? Я понял - Вы и обсуждение в этом топике тоже не читали :) Ну ладно...Я ссылаюсь на манифест, который утверждает, что для управления БД и для доступа к данным должен использоваться непроцедурный язык. И это никак не противоречит тому, что сами данные (точнее их функциональность, их поведение) могут описываться процедурно, алгоритмично. В общем, прочитайте мое сообщение от 7-го июля, мож Вам темному (это не я придумал:) яснее станет. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 01:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для c127 Спасибо большое! наконец услышал что-то умное!!!! *) ...т.е. o={OID,a,r} необходимо заменить на o=(OID,a,r). Согласен... *) определение <0>. Элемент r нельзя определять как множество, иначе будут проблемы с одинаковыми значениями: множество {1,1,1} есть просто {1}. Возможно это же касаетя элемента a, но тут я не уверен, не понимаю, что в данном случае понимается под именем. Самое простое – перейти от множеств к спискам. Но по-моему лучше объединить a и r в множество пар: x={(a1,r1),…,(an,rn)}, где имя уникально по крайней мере в пределах одного объекта. Тогда объект это o=(OID,x). Определение схемы в остается аналогичным данному в статье: Schema:x|->{a1,…,an}. Буду думать... *) “Теория реляционных БД предполагает, что для обеспечения эффективного хранения данных (что подразумевает их целостность и непротиворечивость) , эти данные должны быть нормализованы [8,9,10].”. Тут Cat2 уже говорил, и я присоединяюсь, что требование нормализации данных (т.е. соблюдение всех нормальных форм одновременно) не следует с необходимостью ни из требования их эффективного хранения, ни из требования целостности и непротиворечивости, ни тем более из реляционной модели. Ребяты! Ё , ну есть же в теории нормализация.. В Майере это ж есть, а там только теория. НУ прям не знаю как эту мысль выразить... для чего ж это надоть то, а? Буду думать :) *) соотношение <7>. Если это соответствие есть изоморфизм, то можно использовать обозначение изоморфизма, будет проще и понятнее. Наверное,да... *) На стр. 3: “Предполагается, что возможность, позволяющая описать объектную переменную и задать множество значений отношений {r1,r2….rn}, не может быть выражена в терминах реляционной модели данных и, следовательно, ортогональна ей.” Необходимо сказать более подробно о статусе этого утверждения, например что это аксиома. Тем более, что в статье оно повторяется еще по крайней мере трижды: на стр. 6,7 и косвенно на стр.9: “Окончательная структура данных, которая возникнет в процессе объектной привязки, выйдет за рамки реляционной модели данных (собственно, это и является целью наших построений).“ Последнее ставит под сомнение, что изначально предполагалась аксиома. Ну... Если Кодд говорит что реляцирнная БД есть множество значений отношений, то я рассматриваю некое идентифицируемое (в смысле - отличное от других) подмножество таких значений, причем подмножества не пересекаются. То есть такое разбиение просто вводиться... Наверное аксиома. .... Уберу нафиг "и, следовательно, ортогональна ей." и про цель построений тоже *) “Крайне важен тот факт, что предлагаемая формализация однозначно определяет способ, позволяющий представить информацию, описывающую множество O объектов вида <0>, в терминах реляционной модели данных.” Нет доказательства. К тому же это неверно, таких представлений может быть несколько, например всякие ненормализованные, да и нормализованных наверное может быть несколько, ведь нет теоремы о единственности нормализованного представления данных. Возможно имелось в виду, что существует единственный оптимальный способ представления, но тогда нужно доказывать соответствующую теорему. Возможно в данном случае вместо “однозначно определяет” лучше сказать: “определяет естественным образом”. Здесь не согласен. Во всяком случае указанная формализация (отображение) и является основой перехода от уровня представления к уровню хранения. ИМХО никаких теорем доказывать не нужно - отображение из множества в множество может быть представлено как отношения, что я собсно и делаю. *) В статье встречается несколько утверждений, аналогичных двум предыдущим, к которым непонятно как относится: то ли как к теоремам, то ли как к аксиомам, то ли как к разъяснительным и не несущим формальной нагрузки. Можно поконкретней?... а то там много всяких утверждений... *) Вместо словосочетания “существует функциональная зависимость” по-моему лучше использовать “существует функция” или “ существует отображение” Конечно....даже потому, что так короче ;) *) Непонятно как записывается наследование классов на уровне храненния. Мне кажется, в описании каталога (3) на этом останавлявался. Таблице ISA содериж полную информацию о наследовании. Только она содержит избыточную информацию, котррая позволяет вытащить информацию о потомках (предках) класса одним запросом. На самом деле я не настаиваю, что именно так должно быть, просто ИМХО это важнее, чем дерево наследования, представленное в чистом виде. *) Непонятно как записываются методы на уровне хранения. Сечас опять начнуться споры :) но для меня, что метод, что вычисляемый атрибут - в общем то одна фигня. То есть ежели речь идет о параметризованном вычисляемом атрибуте, то то тут уже их по спецификации не отличить. А что касается реализации... ну в методе алгоритмическая последовательность, в вычисляемом атрибуте некая совокупность элементарных реляционных операций. Ну вот взять, скажем, T-SQL. Там есть пользовательская функция. Когда мы ее используем, мы не думаем, есть ли там внутри последовательность вычислений, некий алгоритм, или это будет простой SELECT с параметрами. И здесь тоже самое, только речь идет об атрибуте. Как они записываются - не знаю. Куда - знаю, в каталог , в таблицу ATTRrealization в поле Expr , служащее для хранения "Выражения, вычисляющего значение атрибута (может переопределяться в процессе наследования классов, отсутствует для хранимых атрибутов)." Я, собственно, дальше( методы ) так и написал, что "для хранения методов можно использовать уже описанный каталог системы, где организация описывающих их метаданных не будет принципиально отличаться от организации метаданных, описывающих вычисляемые атрибуты объектов" ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 01:49 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Дмитрий Мыльников (30.082003) >>Что получится в предлагаемой U-gene системе? Получится, что данные одного объекта будут разнесены по разным таблицам. То есть, чтобы получить данные одного объекта серверу или приложению (смотря где будет происходить "сборка") придётся проделать достаточно много операций. И всё для чего? Для того, чтобы было удобнее хранить? Но это вопрос спорный. Чтобы было удобнее описывать модель? А чем неудобна собственно ОП? Это мидыцынский факт! Вы не читали ничего! :) Какая-такая сборка объектов? Ни хочу я их собирать! Поясняю. Раз Вы так дельфи себе хорошо представляете, то скажите, где собирается дельфийский объект? В одном месте (или в нескольких) кусочек байт-данных, совсем в другом месте(или местах) - кусочки байт с откомпилированными методами.... Где это собирается? У Вас множество Байт и система представляет это как объект. У меня набор строк и система представляет это как объект. Где принципиальная разница? А то что много уровней... так у меня нижележащий реляционный уровень решает огромное количество вопросов - например перманентность данных, групповой доступ к данным... в общем все положительные свойства РСУБД сохраняются в полном объеме. >>На мой взгляд существенный недостаток предлагаемого подхода как раз в том, что добавляется очередное разделение. Эта....."Разделяй и властвуй!"...вот. В качестве примера опять же приведу модель OSI. Там семь уровней и каждый успешно ещает свою задачу. А если бы этого не было, то был бы жуткий бардак. Именно такой, какой наблюдается в современных программах. Мне например не нравится то, что в современных языках объект-коннекш(к БД), объект-форма(на экран) и объект-накладная(моделируемая предметная область) могут болтаются как-то где-то рядом, и надо каким то образом описать их взаимодействие. То, чтоя предлагаю сделать хотя бы позволяет отделить предметную область. >>При этом на уровне реляционной модели что там будет хранится совершенно всё равно. Если в ОЗУ обезличенный набор байт, то в РСУБД уже менее обезличенный, но всё ещё набор байт, но уж никак не объект в смысле ОП. Скажу так - если в ОЗУ объект выглядит как обезличенный набор байт, то в РБД он выглядит как обезличенный набор строк. Разницы нет (за исключением того, что в случае Дельфи и т.п. уровень хранения линейно-адресуемый, а у меня, таблично-ассоциативный) >>И не надо путать "строгое математическое описание" и реальные РСУБД. Реальные SQL-СУБД являются реляционно-полными, а мне больше ничего и не надо. А то, что сейчас они снабжены процедурными расширениями SQL-я, так это просто замечательно. >>Хотя, возможно, это разный взгляд на вещи теоретиков, которым важно именно "строгое мат. описание" и практиков, которые потом вынуждены придумывать как при реализации конкретных проектов выйти за рамки этого "строгого мат. описания", которые не позволяют решить поставленную задачу. И, что интересно, при выходе за эти самые рамки "строгого мат. описания" решение получается гораздо эффективнее, чем если пытаться всё сделать согласно теории. Живо впоминаются десятилетней давности (или даже более того) обсуждения о том как оптимизировать код на ассемблере. Типа "я в центре цикла иногда по условию на конец перехожу и на 5% быстрее получается". А сейчас ляпнут DO...WHILE и хорошо. Я это к тому, что если бы эффективность было настолько важна, все до сих пор пользовали бы только ассемблер. А теория - это ..мммм.... формальное обоснование стандарта... типа значит того самого DO...WHILE , которым сейчас все пользуются ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 02:29 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для Дмитрия Мыльникова Какую то кривую ссылку дал О первой экспериментальной реляционной СУБД - СИЛЬНАЯ ВЕСЧЬ ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 03:28 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Для vdimas >>Я тоже склоняюсь к мнению, что использовать РЕЛЯЦИОННУЮ БД только как хранилище объектов немного неоправданно. В качестве хранилища объектов нужна специальная СУБД, предназначенная именно для хранения объектов. Причем, никто не мешает применять наработки в области реляционной алгебры к подобной объектной базе данных. Ой, блин, ну когда же это кончится :) Ну вот Вы, когда говорите про объекты, ведь вы же фактически говорите про объекты как они существуют в линейной адресуемой памяти. Говоря образно, вы ограничиваетесь Фон-Неймановской машиной и утверждаете, что объекты в том виде, как они есть в этой Фон-Неймановской машине, плохо ложаться на реляционную СУБД. Я ведь и не спорю с этим, но! я говорю немного совсем про другое. У меня объекты фактически существуют в машине у которой память организована на иных принципах чем в машине Фон-Неймана (то, что эта машина является виртуальной и реализована все же на Фон-Неймановской машине - это не имеет к делу никакого отношения:) ). И я уже говорил, что ООСУРБД не является хранилищем объектов (фактически подразумевая , что она не предназначена для хранения объектов из Фон-Неймановской машины). Зто среда существования объектов в том виде, как я их представил и описал. И это вполне объектные объекты. >>Несомненно от SQL придется отойти, как от языка, предназначенного для манипулирования "плоскими" таблицами. Не сомневаюсь, что SQL-для-объектов может быть очень похож на современный SQL. Но, вот, андеграунд, двоичная структура возвращаемых записей, должна соответствовать объектной структуре. Причем, необязательно возвращать все поля объекта, как необязательно возвращать все поля из таблиц. Более того, идя дальше в рассуждениях, можно создавать объекты из комбинаций полей других объектов, и т.д. (незаметно углубился...) Во-во! Фактически речь идет о том, что двоичная структура должна соотвествовать машине Фон-Неймана. Но мои объектам этого не надо - им эта машина для...мммм... функционирования (непосредственно) не нужна. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 04:11 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
И наконец Для Дмитрия Мыльникова >>И так мы постепено придём к тому, что вопрос нужно ставить не о том, "можно ли отобразить объекты на реляционную модель?".... Только ваш вопрос звучит по другому "можно ли отобразить объекты из машины Фон-Неймана, обладающей адресуемой линейной памятью, на реляционную модель?" >>... а о том, что необходимо разработать удобный способ описания объектной модели, чтобы он позволил работать с объектами так же, как реляционная алгебра позволяет работать с реляционной моделью. Соответсвенно, следующим шагом будет разработка некоего языка, подобного исходному SQL, но для объектной модели. Кстати, судя по имеющимся на сегодняшний день наработкам, в том числе и по работе уважаемого U-gene, реляционная модель должна быть частным случаем объектной модели, а язык SQL как бы частнм случаем этого нового языка (назвать можно например OML - язык манипулирования объектами :) ). Да...мыдысынскый факт.... :) ИМХО мой пост о том, что объектная модель - это химера... остался непрочтенным :) . Не будет объектной модели! ООП есть, это средство, а модель данных - это цель. ... |
|||
:
Нравится:
Не нравится:
|
|||
05.09.2003, 05:04 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 U-gene >Здесь не согласен. Во всяком случае указанная формализация (отображение) и является основой перехода от уровня представления к уровню хранения. ИМХО никаких теорем доказывать не нужно - отображение из множества в множество может быть представлено как отношения, что я собсно и делаю. Мое замечание относилось к слову “однозначно”. То, что можно представить никто не сомневается, но когда говорится, что представление единственно, то нужно доказывать. >Ребяты! Ё , ну есть же в теории нормализация.. В Майере это ж есть, а там только теория. НУ прям не знаю как эту мысль выразить... для чего ж это надоть то, а? Буду думать :) Тут проблема в том, что нормализация это важная часть построения РДБМС, но все-таки не необходимая. Я еще раз посмотрел книги и нигде не нашел требования необходимости нормализации РДБМС, о ней говорится как о способе построения, а не как о свойстве. Уже начал сомневаться: может ошибаюсь, буду еще смотреть. >Можно поконкретней?... а то там много всяких утверждений... Кроме двух уже упоминавшихся: стр.7: "На домене DOID может быть определен не только атрибут raOID, но и любой другой атрибут rai отношения R'" доказательства нет, но может оно и не нужно, если это аксиома или где-то доказанный известный факт; стр.9: "Окончательная структура данных, которая возникнет в процессе объектной привязки, выйдет за рамки реляционной модели данных (собственно, это и является целью наших построений).". Мое замечание состоит в том, что покрайней мере в математической части работы хорошо бы указывать в явном виде: "определение Y. …", "аксиома Y…" или "примем как аксиому …", "теорема Y. …" и т.д. Тогда все будет ясно. А то у меня, например, возникают трудности с классификацией высказываний. Еще замечане, очевидно в прошлый раз невнимательно читал статью. Название "Групповые операции над ссылками" не очень удачно. Может показаться, что чтоб доопределить ссылки до группы, сейчас будет введена бинарная операция умножения (сложения) на множестве ссылок. Наверное лучше сказать "операции над множествами ссылок" или "операции группировки" или как-то так. Словосочетание "групповые операции" встречается в этом праграфе еще раз. С наследованием методов и пр. на уровне хранения разобрался, спасибо. ... |
|||
:
Нравится:
Не нравится:
|
|||
20.09.2003, 06:30 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Что вы думаете о UML как универсальном языке ОО-моделирования ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 13:12 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
ну, не такой уж и универсальный, мне может надо const и mutable обязательно как часть спецификации вставить, и может надо отделять обычное наследование от виртуального... не, не катит, только если для Java всяких, VB и прочей ерунды. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 13:50 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2vdimas:ага, и чтоб выравнивание по параграфу... ну как всегда! Ладно, для тя C++ универсальный язык ОО-... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 14:34 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Уважаемый U-gene, Вы наверное очень серьезный специалист, если предлагаете собственные концепции, но позволю заметить, что "...WHERE SOMEFIELD LIKE '%думать надо сначала%'" в любой РСУБД ведет к полному перебору. И приведет к полному перебору в любой системе управления БД (фреймы, деревья,...). На мой взгляд - пример совершенно неудачный, я уже молчу о том, что такого рода операторы вообще не рекомендуют к использованию. С другой стороны, вы не рассматриваете объединения таблиц и использование их в в работе, что нивелирует подход РСУБД к 0. Эдак мы совсем скатимся к файловым структурам и докажем, что они самые эффективные... Однако, даже рассматривая пример выше, при большом числе аналогичных запросов вполне можно построить адекватную структуру таблиц БД, которая позволит Вам проводить индексный поиск, пример - поисковый энжин в инете. Где ведется статистика вхождения каждого слова и его словоформ в каждый документ (у вас запись в БД). В принципе - это один из способов нормализации, который увеличивает эффективность поиска в БД. Лишний раз убеждаюсь, что вместо того, чтобы серьезнее изучать теорию РСУБД (или иную другую) и ее ПРАВИЛЬНО на практике использовать - народ начинает что-то новое сочинять... хая старое и ратуя за темное новое... не занимайтесь словоблудием, не забывайте что разработка софта - NP-полная задача и в попытках найти "серебрянную пулю" вы не первый и не последний. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 15:52 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Andy753 А Вы, батенька, приколист Но все же, прежде чем стебаться и грозить пальцем (дескать, "учите матчасть"), надо все же постараться въехать в предмет обсуждения и доводы за и против. В общем.... Сейчас же вдумчиво перечитать все с начала! :). Так же вдумчиво прочитать все имеющиея ссылки и ссылки из ссылок!!! :)). Найдите место, где я имею ну хоть что-то против теории реляционных баз данных (но не "теории реляционных СУБД", как Вы сказали... а это, кстати, уже говорит о степени "серьезности изучения" этой теории:). Как найдете - обязательно потычте мне этим местом в морду - интересно посмотреть. Скажите правду, Вы Выше 10 топиков поднялись? :) На всякий случай, рекомендую читать хотя бы через строку, а не по три первых слова из каждого абзаца, как, судя по всему, Вы делаете. :)) И самое главное - надо думать, перед тем как писать (ну хоть немножко!), а то так смешно, что аж обидно... ... |
|||
:
Нравится:
Не нравится:
|
|||
22.09.2003, 18:10 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 Andy753 Угу, задеть легко... Особенно это легко удается личностям не вникнувшим в суть вопроса, а сразу переходящего к надоевшему "вы бы учились, батенька..." Весь форум тычет друга в друга этой фразой, уже подташнивает. Пора приравнять ее к мату. U-gene молодец хотя бы тем, что не пожалел времени на глубокое изучение вопроса и вполне грамотно выразил свои мысли. И он не одинок в своих "душевных метаниях". Что, тут все дебилы и у всех полно свободного времени фигней маятся? Есть причина, по которым "чистая" реляционная модель не всегда, скажем так, достаточно удобна. Нужно съесть десяток собачек на той самой чистой реляционной модели, чтобы к этому прийти. ---- некоторые наоборот, слишком "углубляются". 2 с127 Название "Групповые операции над ссылками" не очень удачно. Может показаться, что чтоб доопределить ссылки до группы, сейчас будет введена бинарная операция умножения По моему, придираешься. Ссылки уже могут принадлежать некоторой группе (напр. как результат выборки). И именно над этой группой (множество, если хочешь) можно выполнять операции. Хотя, копаешь, копаешь... ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 00:36 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
пожалел времени на глубокое изучение вопроса и вполне грамотно выразил свои мысли. Вообще говоря, не такое уж оно и глубокое - иначе вместо повторного изобретения самоката сдесь бы обсуждалась уже проделанная работа в этом направлении других специалистов. А область эта достаточно изученна и не нова - но U-gene решил сыграть в индивидуала - поэтому и ссылки на матчасть Потому что не может такая теория жить изолированно - всегда обязательно есть ее пересечения с уже существующими - и их надо изучать и сравнивать что вообще значит грамотно? у грамотной задачи должная быть цель - при этом реальная и четкая - где она у U-gene (только не надо разглагольствовать по поводу того читал ли я 10 топиков назад или нет - я так понимаю размер текста уже приводится как довод и гарантия серьезности) Нигде ни слова ни об SQL92/3 ни о ODMG(OQL) - об их недостатках и достоинствах. Ни существующие привязки к ОО-языкам ни к средствам ОО-моделирования - ничего. Только утверждение что просто так ничего не делается и U-gene - серьезный человек Больше похоже на соревнование - кто более большое и несуразное чудо создал за свою жизнь - типа если создал - то я тя уважаю ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 08:26 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
2 funikovyuri Ссылки на аналогичный самокат, изобретенный ранее, предоствавьте пожалуйста. :) Оченно интересно, вдруг я что-то пропустил? Попусту болтать здесь многие горазды, хочется чего-нить поконструктивнее ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 11:16 |
|
Объектно-ориентированная система управления реляциоными базами данных.
|
|||
---|---|---|---|
#18+
Далеко ходить не надо с одной стороны ООРСУБД/ООСУБД С другой возможность разработки БД с использованием UML Rational Rose Data Modeller Sybase Power Designer OOM->PDM и много чего еще ... |
|||
:
Нравится:
Не нравится:
|
|||
23.09.2003, 11:32 |
|
|
start [/forum/topic.php?fid=32&msg=32256493&tid=1546673]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
167ms |
get topic data: |
10ms |
get forum data: |
2ms |
get page messages: |
58ms |
get tp. blocked users: |
1ms |
others: | 248ms |
total: | 517ms |
0 / 0 |