|
|
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
_модegorychБредятина, связи между объектами, неужели Вы считаете, что они так уж необходимы именно в базе данных? Он просто путает логическую модель и концептуальную Я ничего не путаю:) 30 лет назад еще путал, возможно, а теперь не путаю. Я просто давно убедился, что логическую и концептуальную модель следует банально соединить, и популярно Вам это объяснял. Неоднократно:) Если что-то непонятно, то это, опять же, не моя проблема. Я же не преподаватель:) И не обязан стремиться к "всеобщему пониманию":) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 17:35 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Бредятина 2) Объектные ссылки - это не связи (которые есть на уровне ER). Естественно. Связи это понятие ER или UML модели. У них даже названия разные. Объектная ссылка это реализация связи. Бредятина А ключи, пусть и суррогатные, - это не идентификаторы, а просто те же атрибуты отношения. Идентификатор - это принципиально не характеристика объекта. Атрибуты отношения несут в себе разную семантику. В реляционной БД нет иного способа хранить идентификаторы кроме как в атрибутах, поэтому и приходится извращаться. А СУБД никак не выделяет такие специализированные атрибуты. В объектной БД у объектов есть идентификаторы (OID) по определению, как мой паспорт не являясь частью меня определяет мою индивидуальность в определённых обстоятельствах. И есть объектные ссылки, как элементы словаря БД. И есть механизмы навигации по объектным ссылкам как элемент API. При этом OID может быть реализован и как скрытая колонка объектной таблицы и как адрес объекта на диске (как псевдоколонка - ROWID). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 18:22 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
mcureenabБредятина 2) Объектные ссылки - это не связи (которые есть на уровне ER). Естественно. Связи это понятие ER или UML модели. У них даже названия разные. Объектная ссылка это реализация связи. Конечно, но только не естественно. Внешние ключи - это тоже как бы "реализация связей". Я же говорю о том, что связи нужно реализовывать с помощью связей:) Это совершенно другая реализация.. Бредятина А ключи, пусть и суррогатные, - это не идентификаторы, а просто те же атрибуты отношения. Идентификатор - это принципиально не характеристика объекта. Атрибуты отношения несут в себе разную семантику. В реляционной БД нет иного способа хранить идентификаторы кроме как в атрибутах, поэтому и приходится извращаться. А СУБД никак не выделяет такие специализированные атрибуты. В объектной БД у объектов есть идентификаторы (OID) по определению, как мой паспорт не являясь частью меня определяет мою индивидуальность в определённых обстоятельствах. И есть объектные ссылки, как элементы словаря БД. И есть механизмы навигации по объектным ссылкам как элемент API. При этом OID может быть реализован и как скрытая колонка объектной таблицы и как адрес объекта на диске (как псевдоколонка - ROWID).[/quot] Это опять некая реализация, связанная с ООП, а вовсе не с объектной моделью данных (ООП в общем-то не имеет отношения к базам данных). Идентификатор определяет не столько индивидуальность (что само собой), сколько сам факт существования, НЕЗАВИСИМО ОТ КАКИХ-ЛИБО ХАРАКТЕРИСТИК объекта. То есть, у объекта (напомню, на всякий случай, еще раз, что я использую термины объект/экземпляр, а не класс/объект) может не быть вообще ни одной характеристики (в РМД у отношения не может не быть атрибутов, точнее может, но в таком отношении будет ровно один кортеж). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 18:43 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Бредятина, Если у объекта нет ни одной характеристики (т.е. он не включен ни в один классификтор), то это не объект, а явно выделенная позиция в системе идентификации объектов для регистрации будущего объекта. Система регистрация объектов создает не объекты, а идентификаторы. Объект - совокупность классификационных признаков в каждый момент времени. Идентификатор объекту нафиг не нужен, он нужен системе идентификации для отслеживания жизненного цикла объекта. Связи = отношение объектов. Связь типа {(ИД1,ИД2,,,),(ИД11, ИД22,,,)} фигня малопригодная для описания сути отношений. Связь должна быть типизирована, объекты должны получать роли, роли должны быть типизированы. Это минимум, что бы можно было что то осмысленное построить с помощью этих понятий. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 29.09.2010, 23:14 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
БредятинаЯ просто давно убедился, что логическую и концептуальную модель следует банально соединить Убедиться недостаточно, надо банально сделать ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 09:37 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
БредятинаЯ просто давно убедился, что логическую и концептуальную модель следует банально соединить В догонку простой пример: в концептуальной модели есть одна сущность Счет-фактура в логической модели несколько таблиц (файлов, сегментов, типов записей - зависит от СУБД) Если модели объединить, то СУБД должна автоматически обеспечивать хранение одной сущности Счет-фактура. Ни одна из СУБД (любого типа) этого не умеет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 09:44 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
_модБредятинаЯ просто давно убедился, что логическую и концептуальную модель следует банально соединить В догонку простой пример: в концептуальной модели есть одна сущность Счет-фактура в логической модели несколько таблиц (файлов, сегментов, типов записей - зависит от СУБД) Если модели объединить, то СУБД должна автоматически обеспечивать хранение одной сущности Счет-фактура. Ни одна из СУБД (любого типа) этого не умеет. А зачем СУБД Счет-фактура? На тех же типах образующих с/ф можно построить другие понятия. СУБД до этого не должно быть дела. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 10:02 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Перечитал топик, почувствовал себя тупым. Не понимаю. Какая разница, как что назвать, если язык запросов все равно один и тот же SQL и, главное, планы исполнения все равно одни и те же? По мне так действительно объектная модель начинается только когда вместе с объектом, в одном регионе физической памяти с его полями, хранятся все его связи, которые в табличном виде лежали бы отдельными двухколоночными таблицами, причём хранятся не только все прямые, но и все обратные ссылки. Вот тогда исполнение и запросов и обновлений идёт совсем по-другому, есть серьёзный повод придумывать новые умные слова. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 11:01 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
ViPRos А зачем СУБД Счет-фактура? На тех же типах образующих с/ф можно построить другие понятия. СУБД до этого не должно быть дела. Если концепт. модель=логичекая модель, то в СУБД должна хранится именно СФ как единая сущность. При традиционном подходе конечно в СУБД хранятся таблицы, а не сущности. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 11:34 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
iv_an_ruязык запросов все равно один и тот же SQL Для разных СУБД ЯМД разный. Даже SQL разный. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 11:45 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
_мод, если "единая" сущность сложная, то зачем ее хранить монолитно? лучьше хранить модель сущности в схеме контекста концептов другое дело что СУБД не могут работать на этом уровне и приходиться генерировать скл ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 11:45 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
_модСУБД должна автоматически обеспечивать хранение одной сущности Счет-фактура. Ни одна из СУБД (любого типа) этого не умеет. очень давно, когда препарировал Object Store подобные примеры были для быстрого старта. В других объектных БД наверное аналогично(давно не занимался). Или имеется ввиду "не умеет" именно РСУБД? Тогда почему примечание (любого типа)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 11:57 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
iscrafmВ других объектных БД наверное аналогично(давно не занимался). ОСУБД наверное действительно это умеют. Вопрос только допустимой сложности объекта. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 14:32 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
ViPRosлучьше хранить модель сущности в схеме контекста концептов другое дело что СУБД не могут работать на этом уровне и приходиться генерировать скл Ну да, так и делается. Или тот же EAV. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 14:33 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
ViPRosБредятина, Если у объекта нет ни одной характеристики (т.е. он не включен ни в один классификтор), то это не объект, а явно выделенная позиция в системе идентификации объектов для регистрации будущего объекта. Система регистрация объектов создает не объекты, а идентификаторы. Объект - совокупность классификационных признаков в каждый момент времени. Идентификатор объекту нафиг не нужен, он нужен системе идентификации для отслеживания жизненного цикла объекта. Связи = отношение объектов. Связь типа {(ИД1,ИД2,,,),(ИД11, ИД22,,,)} фигня малопригодная для описания сути отношений. Связь должна быть типизирована, объекты должны получать роли, роли должны быть типизированы. Это минимум, что бы можно было что то осмысленное построить с помощью этих понятий. :) Вы о какой модели данных рассказали? В которой Вы ввели концепции (напомню, что в РМД, по сути одна ключевая концепция - отношение, а в ОМД две - объекты и связи): 1) "объект"; 2) объект Вы понимаете таким образом, что есть еще "класс"; 3) "классификатор"; 4) "жизненный цикл объекта"; 5) "отношение объектов"; 6) "типы отношений объектов"; 7) "роль"; 8) "тип роли". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 15:00 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
_модБредятинаЯ просто давно убедился, что логическую и концептуальную модель следует банально соединить Убедиться недостаточно, надо банально сделать Давно сделано:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 15:03 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
_модБредятинаЯ просто давно убедился, что логическую и концептуальную модель следует банально соединить В догонку простой пример: в концептуальной модели есть одна сущность Счет-фактура в логической модели несколько таблиц (файлов, сегментов, типов записей - зависит от СУБД) Если модели объединить, то СУБД должна автоматически обеспечивать хранение одной сущности Счет-фактура. Ни одна из СУБД (любого типа) этого не умеет. Я даже более простой пример могу предложить - в концептуальной модели есть одна сущность Реальный мир. И т.п. И что? Все, что Вас интересует давно реализовано. Счет-фактура ничем не отличается от товарной накладной, накладной на перемещение и других "документов", в которых отражаются совершенные "операции". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 15:13 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
iv_an_ruПеречитал топик, почувствовал себя тупым. Не понимаю. Какая разница, как что назвать, если язык запросов все равно один и тот же SQL и, главное, планы исполнения все равно одни и те же? По мне так действительно объектная модель начинается только когда вместе с объектом, в одном регионе физической памяти с его полями, хранятся все его связи, которые в табличном виде лежали бы отдельными двухколоночными таблицами, причём хранятся не только все прямые, но и все обратные ссылки. Вот тогда исполнение и запросов и обновлений идёт совсем по-другому, есть серьёзный повод придумывать новые умные слова. Это по Вам:) "Объекты в одном регионе физической памяти" не имеют абсолютно никакого отношения к объектной модели данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 15:30 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Бредятинаiv_an_ruПеречитал топик, почувствовал себя тупым. Не понимаю. Какая разница, как что назвать, если язык запросов все равно один и тот же SQL и, главное, планы исполнения все равно одни и те же? По мне так действительно объектная модель начинается только когда вместе с объектом, в одном регионе физической памяти с его полями, хранятся все его связи, которые в табличном виде лежали бы отдельными двухколоночными таблицами, причём хранятся не только все прямые, но и все обратные ссылки. Вот тогда исполнение и запросов и обновлений идёт совсем по-другому, есть серьёзный повод придумывать новые умные слова. Это по Вам:) "Объекты в одном регионе физической памяти" не имеют абсолютно никакого отношения к объектной модели данных. А почему, собственно? Складываем всё об объекте в одну кучку --- получаем хорошее быстродействие как раз для сильно селективных запросов (и удручающее в пересчёте на доллар --- случись большой table scan обо всём подряд). По скоростным характеристикам уж точно не спутаешь с RDBMS, на которых как на заборе написано "объектные" :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 15:47 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
iv_an_ru А почему, собственно? Складываем всё об объекте в одну кучку --- получаем хорошее быстродействие как раз для сильно селективных запросов (и удручающее в пересчёте на доллар --- случись большой table scan обо всём подряд). По скоростным характеристикам уж точно не спутаешь с RDBMS, на которых как на заборе написано "объектные" :) Так уж сложилось. Исторически и методологически:) Не имеет это отношение к модели данных. Но имеет отношение к низкоуровневой реализации какой-то модели данных. Какой - не знаю. Это только Вы знаете:) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 15:53 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Бредятина, Я-то как раз и не знаю. Моя проблема в том, что опыт написания приложений под базы данных у меня ноль, круглый, зато десятый год пишу сам сервер БД. А база данных "снаружи" и "изнутри" оставляет настолько же разное впечатление, как, скажем, сессия для студента и для препода :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 16:28 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Бредятина :) Вы о какой модели данных рассказали? В которой Вы ввели концепции (напомню, что в РМД, по сути одна ключевая концепция - отношение, а в ОМД две - объекты и связи): 1) "объект"; 2) объект Вы понимаете таким образом, что есть еще "класс"; 3) "классификатор"; 4) "жизненный цикл объекта"; 5) "отношение объектов"; 6) "типы отношений объектов"; 7) "роль"; 8) "тип роли". :( Не знаю. Рассуждении таковы. Есть "субъект" с кое-какими начальными навыками "идентификации". Идентификация ограничено возможностями органов идентификации(допустим глаз там, ухо, нос,...), которые могут идентифицировать "объект" в определенном диапазоне с определенной разрещающей способностью. Если эти диапозоны градуировать и именовать, то получим первичные домены "свойств" доступных идентификации. Метод идентификации - нечеткое сравнение с элементами домена свойств. На горизонте появляется претендент на "объект". Органы идентификации усиленно изучают объект, после установления списка свойств менеджер кучи идентифицированных объектов сравнивет список свойств со списками свойств уже идентифицированных объектов и если находит, то посылает этого претендентат нафиг, иначе он этому списку свойств присваивает уникальный идентификатор и появляется новоиспеченный идентифицированный объект. Менеджер классификации субъекта начинает сравнивать имена списка свойств объекта с списком свойств "типов". ("Тип" - куча объектов со одинаковыми именами свойств. Если значение одного свойства для всех объектов в типе одинаковы, то тип вырождается, это свойство у типа исчезает, вместо этого появляется (если таковойеще нет) ветка в "классификаторе" графе с именем этого свойства и тип привязывается к этой ветке. Если мир уже изучен, то типов больше нет, еть только классификатор и привязанные к ней идентификаторы объектов. Но,так не бывает. :(). Как только какое-то подмножество свойств объекта совпадает со списком свойств типа, то сразу к этому типу добавляется данный объект. Если какие то свойства объекта остались нетипизированными, то быстренько так создается новый тип и объект суется и в этот тип. По мере изучения мира типов становятся все меньше и меньше, а классификатор разрастается. Щоб с этой фигней бороться классификатор называют множественным классификатором, каждый из которых может начинаться либо с имени доменов свойств, либо именем элемента домена свойств и мучаются кто как может. Это по части идентификации и классификации. Когда дваили несколько объектов начинают с какого то бодуна друг с другом отношаться у этих свинюшек появляются новые свойства присущие только всем вместе!!!! Эту фигню надо как то идентифицировать, но менеджер не может идентифицировать кучу объектов, потому ему приходится всю эту кучу считать как одного объекта и классифиировать. При этом ему все ж приходится этот новый объект "связать" с объектами из кучи, попутно запомнив с какого бодуна они связались и кто тут кого доминировал , а кто и был пассивным пидерром. Так как таких бодунов бывают часто , то приходится все эти бодуны как то идентифицировать. Таким образом появлется отношене объектов, идетифуатор отношения, связь и тип связи объекта с отношением, роли объектов внутри отношения. Но, все это мертвячина. В эти долбаные отношения объекты и входят и оттуда выходят и это все время мучает менеджера процессов и регистрации изменений состояния объектов во времени, ведь они в этих процессов могут изменнить значения свойств своих, да и совсем потерять некоторые или все свойства или приобрести новые. За всеми блин приходится присматривать. Вот такая модель данных. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 16:32 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
iv_an_ruБредятина, Я-то как раз и не знаю. Моя проблема в том, что опыт написания приложений под базы данных у меня ноль, круглый, зато десятый год пишу сам сервер БД. А база данных "снаружи" и "изнутри" оставляет настолько же разное впечатление, как, скажем, сессия для студента и для препода :) Ну как же не знаете какую именно модель данных Вы реализуете, если пишите сервер БД?:) Можно, конечно, написать что-то низкоуровневое, типа mumps - в этой среде, действительно, нет никакой модели данных. Вы нечто подобное делаете? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 17:19 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
ViPRos :( Не знаю. Рассуждении таковы. ... Вот такая модель данных. Это не модель данных, а некая прикладная система, основанная, в определенном смысле, на технологиях "искусственного интеллекта". Вот у этого ученого http://www.polyakov.com насколько я помню, были и работы по "самоорганизующимся базам данных"... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 17:40 |
|
||
|
Схема базы данных SQL с минимальным количеством таблиц
|
|||
|---|---|---|---|
|
#18+
Бредятинаiv_an_ruБредятина, Я-то как раз и не знаю. Моя проблема в том, что опыт написания приложений под базы данных у меня ноль, круглый, зато десятый год пишу сам сервер БД. А база данных "снаружи" и "изнутри" оставляет настолько же разное впечатление, как, скажем, сессия для студента и для препода :) Ну как же не знаете какую именно модель данных Вы реализуете, если пишите сервер БД?:) Можно, конечно, написать что-то низкоуровневое, типа mumps - в этой среде, действительно, нет никакой модели данных. Вы нечто подобное делаете?С моей точки зрения, есть страницы разных сортов --- со строками, LOBами, служебными данными, ну и просто пустые, размещённые в разном числе копий в разных местах --- в постоянной базе, во временной базе, или на других машинах кластера. Часть из них в каждый момент времени скопирована в память. Большая их часть занята под индексы разных типов --- деревья строк, деревья колонок, битмапы, сжатые/несжатые, уникальные/неуникальные и проч. Для удобства администрирования, эти индексы сгруппированы так, что один удовлетворяет некоторым специальным условиям и называется primary key, апп-девелопер ещё называет его "таблица". Есть куча портов, принимающих/отправляющих сообщения в соответствии с разнообразными протоколами, в том числе запросы на выполнение SQL и хранимых процедур. Эти запросы транслируются в те или иные манипуляции над индексами и выполняются. Какой именно "философский смысл" вкладывает разработчик приложения в те численные, строковые, XML, RDF и составные значения, которые "его" код на "моём" сервере сохраняет и ищет так и сяк --- мне неведомо. Для меня это строки в индексах с такими-то взаимными ограничениями значений, меняемые с такой-то транзакционной целостностью, статистики по которым имеют такой-то вид. Печатник может не заморачиваться, за или против Лужкова пиарствует та газета, которую он печатает, у него и без того полно хлопот со впитыванием краски в бумагу в нужных пропорциях и сгибанием страниц в нужных местах. Он может из опыта знать, что если газета коммунистическая, то бутылки для красного цвета будут заканчиваться чаще обычного, но в общем-то ему всё едино :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 30.09.2010, 18:19 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=36874799&tid=1542330]: |
0ms |
get settings: |
10ms |
get forum list: |
16ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
414ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
91ms |
get tp. blocked users: |
2ms |
| others: | 207ms |
| total: | 763ms |

| 0 / 0 |
