|
|
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317Вы немного преувеличиваете, ModelR, про "утрату декларативного задания" (особенно про значение утраты) и про "объявлю пару атрибутов". Во-первых, не пару, а тройку: Человек,Дата занятия,Пара.Да, опечатка конечно. прохожий 317 Во-вторых, нужно объявить еще одну тройку уникальной: Группа,Дата занятия,Пара. В-третьих, это так же делается и в случае использования ссылок в ОМДТак в Вашей версии ОМД сущности могут иметь характеристики-ссылки? Тогда о чем мы так долго спорили... прохожий 317, а из этого почти автоматически следует, как Вы правильно подметили, что можно поправить (в случае использования явных связей вместо ссылок).Или не могут? прохожий 317 В-четвертых. Повторю, что определенные накладные расходы есть. Но я к ним (к написанию триггеров, например) отношусь совершенно спокойно. И вот почему (даже если говорить только об ОДНОМ дне): 1) Человек не может проводить за день больше определенного количества Пар; 2) Группа не может заниматься за день больше (своего) определенного количества Пар; 3) не могут соседствовать аудитории (для соседних пар), расстояние между которыми Человек не сможет преодолеть за время перерыва между парами; 4) аналогично п.3 для Группы; 5) и т.д. И многие из этих условий нельзя будет выполнить, просто объявив "уникальность". Придется (на сегодняшний день) писать код. И нет никаких гарантий, что в этот же код не следует интегрировать и те ограничения, которые Вы сделали "декларативными". Вот это существенный момент. Согласен, что даже сильно накрученная декларативная целостность покрывает лишь малую часть бизнес-правил. Но возможность декларировать наиболее фундаментальные правила сильно упрощает прикладную часть, а также снижает риски при модификациях и переделках. Поэтому для меня это более высокий приоритет. прохожий 317 И еще раз о ссылках и связях. Это, с концептуальной точки зрения, одно и то же (то есть они нужны для одного и того же). Записав идентификатор экземпляра idB объекта B в значение некоторой характеристики hA экземпляра idA объекта A, мы установили связь между экземплярами idA и idB В данном случае я называю характеристику hA ссылкой, проекцию А [IDA ,hA] - связью (бинарной). В данном случае связь встроена в В. Можно ее вынести в отдельную таблицу путем очевидной декомпозиции. Поэтому никак не пойму, что значит "использование явных связей вместо ссылок" . Может это как раз упомянутая декомпозиция? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 09:47 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317И многие из этих условий нельзя будет выполнить, просто объявив "уникальность". Придется (на сегодняшний день) писать код. Почему круг, нарисованный циркулем, круглый ? По построению. Почему расписание правильное - потому что программа его построения правильная. И не надо путать целостность БД и ее непротиворечивость. Первое обеспечивается СУБД, второе - приложением. прохожий 317И еще раз о ссылках и связях. Это, с концептуальной точки зрения, одно и то же (то есть они нужны для одного и того же). Записав идентификатор экземпляра idB объекта B в значение некоторой характеристики hA экземпляра idA объекта A, мы установили связь между экземплярами idA и idB. Причем: Не буду повторяться о недостатках ссылок. Надеюсь, что удастся избавиться от них полностью. Все ровно наоборот. Связь - только между РАЗНЫМИ объектами. Ссылка - это синоним одного и то же объекта. Связь - это отношение(в РМД) или набор в сетевых схемах. Ссылка - это адрес в сетевых БД или FK в РМД. В вашем примере: объект В - это атрибут (т.е. часть) объекта A (никакой связи здесь нет) характеристики hA экземпляра idA объекта A содержит идентификатор экземпляра idB объекта B - это ссылка объекта A на реальный объект В Для того что бы появилась связь нужен объект С, содержащий ссылки на А и В (как в примере с расписанием). Вот тогда можно говорить и о хар-ках этой связи. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 09:49 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
mir[quot прохожий 317]Это понимание воплотилось в документах комитета ANSI/SPARC еще задолго до господства реляционных систем , а прошедшие десятки лет его только подтвердили. Кстати, упоминаемая архитектура ANSI/SPARC насколько мне известно, никогда не существовала в виде официального стандарта, хотя по тексту очень многих книг можно понять обратное. Это был всего лишь промежуточный отчет об исследовательской работе, выполненный по заказу ANSI/SPARC, кажется даже студентами. Хорошая идея не нуждается в регалиях :). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 09:59 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Сорри, следует читать: В данном случае я называю характеристику hA ссылкой, проекцию А [IDA ,hA] - связью (бинарной). В данном случае связь встроена в А . ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 12:17 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Если уж быть точным, ModelR, то "уникальность" не проходит вообще в "нашем примере", так как Занятия в неутвержденном Расписании могут содержать неизвестные значения (или не иметь связей). Но это мелочи. Мы не спорили, а разбирались, мне кажется. В "моей версии" ссылок не должно быть. Это принципиально. Про "приоритет" - это слишком сильно (см. выше, и можем рассмотреть сколько угодно подобных примеров). Я не против декларативной поддержки уникальности чего бы то ни было. Однако нужно помнить вот о чем. Например, уникальность идентификаторов в ОМД поддерживается "органически", а не путем (декларативного) объявления. Так что для меня приоритетно все органическое (например, идентификация, навигация и семантика в ОМД). То есть я думаю, что следует стремиться к тому, чтобы любая "проблема" решалась "органически", а не "алгебраически". В данном случае связь встроена в A, а не в B. И связь "можно вынести в отдельную таблицу" в РМД (точнее - нужно - см. высказывание Дейта об этом). В ОМД связи представляются как связи, а не как "третьи объекты". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 21:41 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Чудесно, мод ! Оказывается возможность находиться одновременно в двух местах - это не "противоречивость", а "нарушение целосьности". В данном случае Вы имеете в виду целостность человека, насколько я понимаю. [Попутно, уже без иронии, уточню, что "целостность группы", в отличие от "целостности человека", может быть нарушена !]. Думаю, что нам не стоит углубляться в различие между "целостностью" и "непротиворечивостью". Вы уж, пожалуйста, не разобравшись в теории БД, не эксплуатируйте "мой пример". Ссылка в классической объектной модели - это связь, интегрированная в объект, а не объект, интегрированный в объект. А для того, чтобы "появилась связь" (явная, а не в виде ссылки), нужно просто объявить эту связь, а вовсе не еще один объект. Ну это же очень простые вещи, мод. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 22:04 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Да - в A (добрался до 2170230). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 22:06 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317 Например, уникальность идентификаторов в ОМД поддерживается "органически", а не путем (декларативного) объявления. Надо читать автоматически генерятся системой. Такие есть в иерахических, сетевых МД. И в ООМД. Тем более там навигация представлена реально, а не объектными навигаторами. Они в отличии от ОМД ЧАЛа широко известны, но это не повлияло на положение дел. А поскоку ОМД ЧАЛа по сравнению с ними выглядит как заведомо недоразвитая - это "ограническое" ей врядли поможет. прохожий 317 То есть я думаю, что следует стремиться к тому, чтобы любая "проблема" решалась "органически", а не "алгебраически". Новый перл. Ораганический метод решения задач. И например, впендюрьте это в системы линейных уравнений. А то там галимая алгебра. Порешайте эти задачи органически. Этот приемчик одурачивания наверное тоже опробован на балабановских. Еще можно порешать неорганически или вообще химически. Это наверное хорошо подходит к Чаловской ОМД - химичить. прохожий 317 В ОМД связи представляются как связи, а не как "третьи объекты". Как ссылки - указатели. Не тока в ЧАЛовской ОМД. Опять шитая белыми нитками подмена компьютерной структуры ее интепретацией (типа ссылка и есть связь самая что ни на есть связь, а что еще может быть связью?) прохожий 317 В данном случае Вы имеете в виду целостность человека, насколько я понимаю. Много хохотал. У ЧАЛа нет понятия ОЦ. Есть хорошо спроектированные приложения. А Целостность он понимает в этическом плане. Хотя это отрицает клонов. Но все равно. прохожий 317 А для того, чтобы "появилась связь" (явная, а не в виде ссылки), нужно просто объявить эту связь, а вовсе не еще один объект. ЧАЛ пытается расти. Теперь он не просто повторяет одно и то же якобы не превзойденное достоинство, а каждый раз немного по разному. Пусть и по детски получается, но зато по разному. Все таки он год их пытается мусолить. Других то все равно выдумать не может. Надо как-то повторять одно и тоже. прохожий 317 Ну это же очень простые вещи, мод. Ну ясно дело, ведь это все относится к ранниму периоду инфотехнологий. Тада еще все было примитивно по нынешним меркам. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2005, 22:59 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317И я уверен, что на "Р"СУБД такую систему построить не удастся. Приходите посмотреть. Работает 5-й год. Весь комплекс из 13 клиентов. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 07:50 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317Если уж быть точным, ModelR, то "уникальность" не проходит вообще в "нашем примере", так как Занятия в неутвержденном Расписании могут содержать неизвестные значения (или не иметь связей). Но это мелочи.Да, и более того, в этом случае в "чистой" РМД, без NULL, занятия с известными и неизвестными данными - это будут вообще разные отношения. Либо опять таки декомпозиция - выделение связей. прохожий 317 Мы не спорили, а разбирались, мне кажется. В "моей версии" ссылок не должно быть. Это принципиально. Вопрос был не о ссылках вообще - пнятно, что в Ваших связях участвуют ссылки на объекты, а не их копии, я надеюсь:). Вопрос был о допустимости ссылок в сущностях (объектах по Вашему) типа Занятие. Я видел ответ НЕТ и много раз, но затем следовали пассажи типа авторсимметричная (двусторонняя) семантика поддерживается в ОМД для ссылок ("неявных связей") "так же" как и для явных связей. из которых следует ДА. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 10:58 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
muk07 Приходите посмотреть. Работает 5-й год. Весь комплекс из 13 клиентов. И придет. Он давно искал кого-нибудь, чтобы провести семинар, на котором он докажет крах РМД и беду с ключами. Тада у него был ник ЧАЛ. Но типа ЧАЛ обиделся и ушел. А пришел якобы прохожий 317 на его место. Но в виду полного совпадение мысли, стиля изложения, вплоть до любимых ЧАЛом словечек, уровня подготовки, вырожденного до нескольких фиксированных точек зрения кругозора, культурных ограничений и этических вольностей, а так же ярко выраженного ретроградского мироощущения и склада ума - установлено, что это одно лицо (многими кто знает ЧАЛа). Стал быть Вам поступит предложение о проведении семинара. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 11:18 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317 Думаю, что нам не стоит углубляться в различие между "целостностью" и "непротиворечивостью". why not ? целостность БД - это отсутствие "битых" ссылок (или FK) - обеспечивается СУБД непротиворечивость БД - выполнение множества логических условий - обеспечивается как СУБД так и приложением Так что для обеспечения целостности надо иметь ссылки или FK (а у вас что ?) прохожий 317 Вы уж, пожалуйста, не разобравшись в теории БД, не эксплуатируйте "мой пример". Ссылка в классической объектной модели - это связь, интегрированная в объект, а не объект, интегрированный в объект. А для того, чтобы "появилась связь" (явная, а не в виде ссылки), нужно просто объявить эту связь, а вовсе не еще один объект. Ну это же очень простые вещи, мод. Про "классическую объектную модель" сказать ничего не могу - в глаза ее не видел (да и никто не видел в виду ее отсутствия) А вот про сетевую или РМД - можно. И "ваш пример" легко и без потерь изображается и в сетевой и в РМД. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:10 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
модцелостность БД - это отсутствие "битых" ссылок (или FK) - обеспечивается СУБД непротиворечивость БД - выполнение множества логических условий - обеспечивается как СУБД так и приложениемЦелостность БД (database integriry) --- это не только ссылочная целостность, а как раз выполнение всех заданных в БД ограничений целостности. То есть термин этот строгий и используемый в строгой литературе. А термин "непротиворечивость" нестрогий и каждый может его трактовать как хочет. Например, как синоним целостности. Есть еще понятие "достоверность БД", которое, пожалуй, является самым сильным. Это соответствие данных в БД реальному миру. То есть для проверки целостности нужны правила (ограничения целостности) и сама БД. Поэтому их может формально проверить СУБД. А для проверки достоверности нужна полная и правильная информация как о содержимом БД (что просто), так и о реальном мире (что нереально сложно). Таковыми данными, к сожалению, может вообще никто не обладать. Поэтому СУБД установить достоверность не может в принципе. Как и зачастую человек. Таким образом, целостность -- это наибольшее приближение к достоверности, которого вообще можно достичь "изнутри" системы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 12:39 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
2 mir Это все верно, но здесь есть один тонкий момент: отключим триггера и ФК разрушим базу и включим опять: целостность нарушена а СУБД промолчит в сетевых БД этого сделать нельзя поэтому там целостность железная (хотелось бы распространить это и на ФК в РБД) Про внешний мир ничего не знаю, поэтому непротиворечивость только на уровне предикатов которые могут быть в триггерах или в приложениях ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 15:31 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
модотключим триггера и ФК разрушим базу и включим опять: целостность нарушена а СУБД промолчитРаз FK не декларированы, формально всё правильно. А целостность и описывается в терминах формальных правил. Перечитайте еще раз предыдущий мой пост. Вы поймете. что в данном примере будет нарушена достоверность, но не целостность. модв сетевых БД этого сделать нельзя поэтому там целостность железнаяИ еще раз: не стоит термином "целостность" называть ссылочную целостность. Поаккуратнее. Кстати, если вы искусственно порушили ссылочную целостность в РБД, то почему вы не допускаете, что можно искусственно порушить и ссылки в сетевой БД? Давайте отсоединим БД от СУБД, залезем в файл и подправим там значения ссылок на неверные. Короче, концептуально никакой разницы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 16:42 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
мод отключим триггера и ФК разрушим базу и включим опять: целостность нарушена а СУБД промолчит ФК не включатся в общем случае. Т.е. декларативные ОЦ как правило проверяются при включении. Триггера другое дело. мод в сетевых БД этого сделать нельзя поэтому там целостность железная ОЦ, которые нельзя включить декларативно, а тока триггерами как обеспечиваются в сетевой? Впрочем, и то что генерится триггерами может быть, скорее всего, проверено. А если у сетевой нельзя отключать, то это врядли достоинство. А если можно, то в чем разница? Так что пока не понятно мод хотелось бы распространить это и на ФК в РБД Настоящая разница между ссылкой и значением была раньше в производительности. Но как минимум с 1986 года это преодалено. В логике - не нужно явно писать соединение? Но ить соединение то можно писать по любым полям, для которых допустимо участвовать в условии на соединение, и не тока на равенство. Не равно, больше, меньше... Это гибче, мне кажется. Не говоря уже что связь по значеню - это связь по содержанию, а ссылка это физический адрес: зависит от среды реализации и мало о чем говорит пользователю. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2005, 20:12 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
про ссылки и ФК: в сетевых БД разрушить ссылки средствами СУБД нельзя в РМД разрушить ФК средствами СУБД можно (то что потом они не включаться - уже будет поздно) вот в этом и есть принц. разница сетевых и РБД. (все остальное одинаково) Производительность прямых адресов всегда выше доступа по индексам, но в РБД это плата за гибкость (оправданная имхо) про терминологию: для меня целостность - только ссылочная целостность, т.е с БД можно работать (в.т.ч. можно восстановить непротиворечивость) если нарушена целостность - БД в помойку непротиворечивость - удовлетворение предикатам, т.е. БД можно использовать имхо все четко ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 09:25 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
мод в сетевых БД разрушить ссылки средствами СУБД нельзя Что значит разрушить? Отключить? Ну так это гибкость - преимущество. Иногда надо отключать. Ну могли сделать неотключаемыми средствами СУБД. Чего хорошего в этом? мод целостность - только ссылочная целостность, т.е с БД можно работать (в.т.ч. можно восстановить непротиворечивость) если нарушена целостность - БД в помойку Не совсем ясно. В ОЦ кроме ссылочной входят, ограничения на значения, ограничение отношения или уникальности, общего вида всякие там. Первые в РМД реализуются часто декларативн, последние в РСУБД триггерно. Если нарушена ссылочная целостность, то тоже может быть восстановлено в общем случае или потери инфы могут быть не критичными. Не понятно что Вы имели в виду. мод непротиворечивость - удовлетворение предикатам, т.е. БД можно использовать Что это за удовлетворение предикатам? И в каком смысле можно пользоваться или не пользоваться? Если из БД следует что место в купе продано и не продано одновременно - т.е. два предиката истинных, но противоречат друг другу, то можно пользоваться или нельзя? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 14:03 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
2 vadiminfo сетевые СУБД жесткие - из за этого и вымерли про целостность - согласен (вопрос терминологии) важно только что потерянные ссылки могут не восстановиться вообще а нарушения в логике - можно восстановить по смыслу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 15:58 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Что работает 5-ый год, muk07 ? Чтобы зря не приходить. Хотя в любом случае интересно посмотреть на корпоративную систему. Адрес скажите, пожалуйста. Как только буду в Челябинске, обязательно приду. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 21:45 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Удивительный вопрос, ModelR. Какие пассажи ??? Лично я против ссылок. Но они объективно есть во многих реализациях ОМД. Следовательно, они допустимы (ну если они есть !). Я бы хотел, чтобы их не было. Причем объяснил - почему. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 21:48 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Вы немного заблуждаетесь, мод. Прочтите повнимательнее п. 9.7. "Сравнение понятий правильности и непротиворечивости" в 8-м издании книги Дейта (впрочем, можно ограничиться разъяснениями mir). Ну а "мой пример" (напоминаю, что это не мой пример) не может "изобразиться" в РМД. Никак. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 21:53 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
Связи, мод, тем более нельзя "разрушить" средствами ОСУБД. А если в "Р"СУБД приходится использовать такую "гибкость" как "отключение FK", то это лишний раз подчеркивает ущербность понятия "ключей" (хотя эта ущербность итак очевидна), а значит и "функциональных зависимостей", а значит и "реляционной теории". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 16.12.2005, 21:58 |
|
||
|
Сравнительная характеристика моделей данных
|
|||
|---|---|---|---|
|
#18+
прохожий 317 то это лишний раз подчеркивает ущербность понятия "ключей" (хотя эта ущербность итак очевидна), а значит и "функциональных зависимостей", а значит и "реляционной теории". А чью ущербеность подчеркивает эта якобы логическая цепочка? (хотя эта ущербность итак очевидна). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 17.12.2005, 20:48 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=33442030&tid=1545513]: |
0ms |
get settings: |
9ms |
get forum list: |
14ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
64ms |
get topic data: |
8ms |
get forum data: |
2ms |
get page messages: |
48ms |
get tp. blocked users: |
1ms |
| others: | 233ms |
| total: | 385ms |

| 0 / 0 |
