|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Не могу понять зачем нужны связи? Какая от них практическая польза. БД работает быстрее, или как? Ведь когда делаем запрос из несколькох таблиц, все равно прописываем откуда чего брать и как связать между собой. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2010, 10:20 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Они не позволяют вставить левые данные. ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2010, 10:22 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
база работает медленнее, зато есть целостность данных С уважением, Naf ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2010, 10:27 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Понятно. Спасибо! ... |
|||
:
Нравится:
Не нравится:
|
|||
09.03.2010, 10:31 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Cerber-88, А еще в чужой базе без связей разобраться труднова-то..... ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2010, 13:22 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Ivan DurakCerber-88, А еще в чужой базе без связей разобраться труднова-то.....И особенно сложно разобраться, когда связей(констрайнтов) нет. Пример - практически любая КИС или ERP. ... |
|||
:
Нравится:
Не нравится:
|
|||
10.03.2010, 13:37 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Не путайте связи - понятие ER модели с ограничениями ссылочной целостности БД. В реляционных БД связи устанавливаются в предикатах SQL запроса, поэтому важно иметь описание или модель БД. Ограничения ссылочной целостности тоже помогают и обычно соотносятся со связями, но их не всегда создают в БД. В объектных БД связи можно прописать в БД, в виде ссылок на объекты. ... |
|||
:
Нравится:
Не нравится:
|
|||
11.03.2010, 20:19 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
mcureenab В объектных БД связи можно прописать в БД, в виде ссылок на объекты. В сетевых и иерархических. В РБД никаких связей нет по определению РМД. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2010, 11:37 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модmcureenab В объектных БД связи можно прописать в БД, в виде ссылок на объекты. В сетевых и иерархических. В РБД никаких связей нет по определению РМД. Взаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает. ... |
|||
:
Нравится:
Не нравится:
|
|||
12.03.2010, 17:35 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
mcureenabВзаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает. Можно построить ОБД без прямых связей, аналогично РБД. Наличие прямых связей - это сетевая МД. А элементы сети могут быть любыми. ... |
|||
:
Нравится:
Не нравится:
|
|||
15.03.2010, 10:20 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
mcureenabНе путайте связи - понятие ER модели с ограничениями ссылочной целостности БД. В реляционных БД связи устанавливаются в предикатах SQL запроса, поэтому важно иметь описание или модель БД. Ограничения ссылочной целостности тоже помогают и обычно соотносятся со связями, но их не всегда создают в БД. В объектных БД связи можно прописать в БД, в виде ссылок на объекты. Нет. Связи не являются атрибутами (свойствами) объектов [как внешний ключ в РМД]. Также, как и идентификаторы [как первичный ключ в РМД]. Не нужно "в виде ссылок". Будет получаться почти как в "Р"СУБД (за исключением того, что для внешнего ключа в РМД не определен специальный тип). ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 19:13 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модmcureenab В объектных БД связи можно прописать в БД, в виде ссылок на объекты. В сетевых и иерархических. В РБД никаких связей нет по определению РМД. Были попытки, но остались только на уровне рассуждений из-за проблем с алгеброй. В ранних отчетах Кодда рассматривались отношения типа сущности, и отношения типа связи. Но формально ввести типизацию отношений не удалось. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 19:16 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
mcureenab_модmcureenab В объектных БД связи можно прописать в БД, в виде ссылок на объекты. В сетевых и иерархических. В РБД никаких связей нет по определению РМД. Взаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает. Формально, "Р"СУБД тоже знает о "связях по ключам". ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 19:17 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модmcureenabВзаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает. Можно построить ОБД без прямых связей, аналогично РБД. Наличие прямых связей - это сетевая МД. А элементы сети могут быть любыми. Возможно, лучше бы было сказать не "прямых", а "явных":) Кроме того, у связей есть семантика. В некотором смысле, получаем "семантическую сеть". А раз появилось слово сеть, то где-то рядом и слово "сетевая":) Объектные СУБД, конечно, прямые наследники иерархических и сетевых, то есть объектно-ориентированных, в отличие от записеориентированной "Р"СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 19:22 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
О боже ! опять семантика ... |
|||
:
Нравится:
Не нравится:
|
|||
16.03.2010, 21:32 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредФормально, "Р"СУБД тоже знает о "связях по ключам". Не, не знает (если явно не указать). А вот ОСУБД обязана знать (здесь согласен), т.к. ссылки на объекты явно типизированы. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 11:02 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
AndrewwО боже ! опять семантика О боже! Так ничему и не научились:) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 12:58 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредФормально, "Р"СУБД тоже знает о "связях по ключам". Не, не знает (если явно не указать). А вот ОСУБД обязана знать (здесь согласен), т.к. ссылки на объекты явно типизированы. Указание внешних ключей - это и есть "явное указание". ОСУБД просто знает:) Но не благодаря ссылкам (это слабая технология), а благодаря явным связям:) ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 13:01 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредНо не благодаря ссылкам (это слабая технология), а благодаря явным связям:) Это понял. Ссылка может содержать физический адрес объекта, но тогда возникают проблемы с перемещением БД. Либо ссылка содержит ИД объекта доступ через индекс - медленнее, но надежней. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 16:58 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредНо не благодаря ссылкам (это слабая технология), а благодаря явным связям:) Это понял. Ссылка может содержать физический адрес объекта, но тогда возникают проблемы с перемещением БД. Либо ссылка содержит ИД объекта доступ через индекс - медленнее, но надежней. Да, примерно так. Только, поскольку связь (то есть, идентификаторы других объектов) не является атрибутом объекта (так же, как и идентификатор не является атрибутом объекта), то связи - это "отдельная конструкция": каждый экземпляр связи - это пара идентификаторов, а точнее две пары для симметричной навигации. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 19:27 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред, О боже! Так ничему и не научились:) Сколько времени потратил бы орёл впустую, если бы согласился учиться у вороны. (с) Классик. В общем-то все мои выступления, а это именно выступления, вы же не считаете что я буду всерьёз дискутировать с человеком у которого то зависит то не зависит направлены на то, что бы другие не тратили на вас время. ... |
|||
:
Нравится:
Не нравится:
|
|||
17.03.2010, 22:19 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредТолько, поскольку связь (то есть, идентификаторы других объектов) не является атрибутом объекта (так же, как и идентификатор не является атрибутом объекта) Идентификатор действительно не является атрибутом объекта (его нет в описании стр-ры), а ссылка на другой объект (или сам на себя) - это атрибут объекта и присутсвует в описании структуры этого объекта. И так было всегда, даже в первых сетевых СУБД. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 09:17 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_мод, Нет ссылки и есть ссылки. Надо все же почестнее. Система (Классификационный механизм) Объект Объект - собственные свойства Объект - ссылочные свойства Объект - отношение {Объект, Объект1, ..., ОбъектN, свойство отношения1,..., свойство отношенияM} Частный случай идентифицирующего отношения в системе - {Объект, Система, Идентификатор} ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 11:56 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Собственно говоря ссылочные свойства только у объектов-отношений ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 12:02 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
AndrewwБред, О боже! Так ничему и не научились:) Сколько времени потратил бы орёл впустую, если бы согласился учиться у вороны. (с) Классик. В общем-то все мои выступления, а это именно выступления, вы же не считаете что я буду всерьёз дискутировать с человеком у которого то зависит то не зависит направлены на то, что бы другие не тратили на вас время. Естественно, с Вами дискутировать не очем в области баз данных, так как Вы не специалист в этой области. Здесь я с Вами полностью согласен:) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 15:23 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредТолько, поскольку связь (то есть, идентификаторы других объектов) не является атрибутом объекта (так же, как и идентификатор не является атрибутом объекта) Идентификатор действительно не является атрибутом объекта (его нет в описании стр-ры), а ссылка на другой объект (или сам на себя) - это атрибут объекта и присутсвует в описании структуры этого объекта. И так было всегда, даже в первых сетевых СУБД. Именно это и было существенным недостатком "первых сетевых СУБД":) Идентификаторов не должно быть среди атрибутов, ни "своих", ни "чужих". Это очень логично. И очень симметрично:) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 15:26 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Заде_мод, Нет ссылки и есть ссылки. Надо все же почестнее. Система (Классификационный механизм) Объект Объект - собственные свойства Объект - ссылочные свойства Объект - отношение {Объект, Объект1, ..., ОбъектN, свойство отношения1,..., свойство отношенияM} Частный случай идентифицирующего отношения в системе - {Объект, Система, Идентификатор} Да, Вы здесь честно описали РМД, как ее видел Кодд в ранних отчетах IBM:) У Вас здесь принципиально нет связей:) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 15:28 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеСобственно говоря ссылочные свойства только у объектов-отношений Путаетесь немного:) Но в целом так: у отношений (РМД) типа "сущность" - только первичный ключ; у отношений типа "связь" - помимо первичного ключа, два или более внешних ключей... Гиблый подход:) ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 15:32 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеНадо все же почестнее. Система (Классификационный механизм) Объект Объект - собственные свойства Объект - ссылочные свойства Объект - отношение {Объект, Объект1, ..., ОбъектN, свойство отношения1,..., свойство отношенияM} Частный случай идентифицирующего отношения в системе - {Объект, Система, Идентификатор} ссылочные свойства =собственные свойства пример: число 5 можно считать ссылкой на множество целых чисел Объект - отношение ничем не отличается от любого другого пример: счет-фактура "связывет" поставщиков и товары ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 17:16 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред Именно это и было существенным недостатком "первых сетевых СУБД":) Идентификаторов не должно быть среди атрибутов, ни "своих", ни "чужих". Это очень логично. И очень симметрично:) Этот "недостаток" сохранился во всех СУБД. Не вижу ни логики, ни симметрии. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 17:19 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБред Именно это и было существенным недостатком "первых сетевых СУБД":) Идентификаторов не должно быть среди атрибутов, ни "своих", ни "чужих". Это очень логично. И очень симметрично:) Этот "недостаток" сохранился во всех СУБД. Не вижу ни логики, ни симметрии. Во всех СУБД с недостатками, а не во всех СУБД. Своего идентификатора нет среди атрибутов. Лоично? Вроде согласились, что логично:) Чужих идентификаторов тем более не должно быть. Логично? И "симметрично": ни своих, ни чужих. Странно, почему не видите:) А вот в присутствии идентификаторов среди атрибутов, действительно, нет ни логики, ни симметрии. ... |
|||
:
Нравится:
Не нравится:
|
|||
18.03.2010, 19:45 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред, ну да путано получилось (зато быстро :)) _мод у меня путаница именно в понимании отношений между объектами (тут вроде ничего), отношением и объектом (тут уже похуже), отношением и отношением, отношением отношений и отношением отношений каюк).... конечно понятно что эти отношения тоже объекты, но они какие-то особенные, "несамодостаточные" только в отношениях-объектах появляются ссылочные свойства, а "самодостаточные" ни на кого не ссылаются (если не взять в расчет предопределенные системные базовые множества объектов) в отношении-объекте совокупность объектов получают присущие только совокупности свойства, а сам отношение-объект практически никода не имеет человекоинтерпретируемое свойство "Наименование" они сильно зависимы, их жизненный цикл определяется жизненным циклом любого из объектов входящих в отношение или надо ввести тот же null, setnull, что как то пахнет гнильцой :( а как только начинается отношение отношений и дальше(высшие ступени отношений), так воще человеческая интерпретация начинает хромать не только по части идентификации :( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 02:42 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред, Идентификатор тоже особо интересная фиговина вроде бы он часть идентифицирующей системы объект вроде бы может жить и без этой нафиг ему не нужной фигни тут вопрос, а как обратиться к объекту не имеющего идентификатора? вот "_мод" не свойство человека с которым я разговариваю, но без этого идентификатора я бы обратился в пустоту просто наверное затаскали слово "свойство" и "объект", надо так и оставить "системный идентификатор объекта", не "свойство", а "системное свойство объекта", не "ссылочное свойство" , а "объект участвующий в системном отношении", не называть всю фигню объектом... вощем полная фигня :( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 02:56 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Такое ощущение, что знание ограничено сверху и снизу синтез и анализ конечны бесконечность только в плоском мире, ну типа толщина мира ограничено чем то ни пил нифига и не только про свои знания речь :( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 03:07 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредЧужих идентификаторов тем более не должно быть. Св-ва объекта м.б.: строка число дата классификатор (ссылка) объект (ссылка) список И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 09:13 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Заде конечно понятно что эти отношения тоже объекты, но они какие-то особенные, "несамодостаточные" В DBOMP было два типа таблиц - основные и связующие. Но когда стали очевидными ограничения такой модели, то перешли к однородным графам. На самом деле ничего страшного здесь нет, просто некоторые ограничения чисто организационного характера - ну нельзя ввести договор на не существующего поставщика. Зато гораздо удобнее все считать просто объектами, пусть и зависимыми друг от друга. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 09:20 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредЧужих идентификаторов тем более не должно быть. Логично? И "симметрично": ни своих, ни чужих. А вот в присутствии идентификаторов среди атрибутов, действительно, нет ни логики, ни симметрии. Не вполне логично. Предположим, мы хотим ввести тип "Сумма", который состоит из двух полей - "Количество" - десятичное и "Валюта" - ссылка на справочник валют Если у ссылка может быть атрибутом, то дальше мы можем просто добавить атрибут типа "Сумма" в договор для полей "Сумма номинальная" и "Сумма с дисконтом". А если атрибуты отдельно, ссылки отдельно, то как быть? ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 10:15 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
old__man__, ну у объекта есть ссылка на объекты Сумма, Сумма с дисконтом... плохо то что спокойно можно удалить эту ссылку у объекта и если этот объект является объектом-отношением, то его семантика отношения становится ущербным Вообще тема меры почти не затронута ведь любое свойство даже те , которые мы считаем примитивными, типа цвет, количество, весь... являются измеримыми в каких-то других объектах, т.е. являются классами и иногда сложными взимоотношениями ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 12:50 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредЧужих идентификаторов тем более не должно быть. Св-ва объекта м.б.: строка число дата классификатор (ссылка) объект (ссылка) список И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо. Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом. Иначе возникает проблема с лукапом отношений. Приходится либо показывать малоинформативное составное имя, либо пойти на денормализацию :( не смог я этот вопрос красиво решить :( ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 12:56 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Заде Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом. Об том и речь - все просто и красиво ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 14:18 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_мод, есть большое искушение сотворить типа такой вещи Специалист{Специальность, Квалификация, Компетенция} Работник{...,Специалист} Потом я беру и назначаю Процесс нормативный{Процессор{Специалист}} а при планировании актуализированного Просесса, я по значению объекта Специалист вычисляюю объект Работник. Но если сделать Работник{...,Специальность, Квалификация, Компетенция}, то приходится сделать Процесс нормативный{Процессор{Работник (where Специальность = @1, Квалификация=@2, Компетенция=*)}} т.е. приходится дать ссылку на ТИП и свойства типа, что являются Метаданными, а мне не хотся открывать метаданные платформы в прикладной системе ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 15:01 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеСпециалист{Специальность, Квалификация, Компетенция} Работник{...,Специалист} Потом я беру и назначаю Процесс нормативный{Процессор{Специалист}} а при планировании актуализированного Просесса, я по значению объекта Специалист вычисляюю объект Работник. Так правильно ( вычислится несколько возможных Работников) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 15:58 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеБред, Идентификатор тоже особо интересная фиговина вроде бы он часть идентифицирующей системы объект вроде бы может жить и без этой нафиг ему не нужной фигни тут вопрос, а как обратиться к объекту не имеющего идентификатора? вот "_мод" не свойство человека с которым я разговариваю, но без этого идентификатора я бы обратился в пустоту просто наверное затаскали слово "свойство" и "объект", надо так и оставить "системный идентификатор объекта", не "свойство", а "системное свойство объекта", не "ссылочное свойство" , а "объект участвующий в системном отношении", не называть всю фигню объектом... вощем полная фигня :( Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:) Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:) Объясню почему. 1) Имя человека, например, присваивается ему в результате определенного события. Зарегистрированного в определенном органе:) Таким образом, оно зафиксировано в информационной системе в рамках объекта типа событие. 2) Рост человека, например, измеряется (физически). И также регистрируется в объекте типа событие (измерение роста или, шире, измерение антропологических характеристик человека). 3) И т.д., и т.п. о каждом атрибуте (свойстве, характеристике) объекта Человек. Мы, тем не менее, размещаем, обычно эти атрибуты непосредственно в объекте Человек (то есть, осуществляем банальную денормализацию) по двум причинам: - для повышения производительности определенных операций (для чего, обычно, и делается денормализация); - из-за отсутствия регистрации упомянутых событий в нашей прикладной системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:20 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредЧужих идентификаторов тем более не должно быть. Св-ва объекта м.б.: строка число дата классификатор (ссылка) объект (ссылка) список И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо. Это и есть принципиальная ошибка:) У Вас здесь принципиально нет связей. Вы сделали полшага. Вы пишете "Естественно":) Почему-то эти полшага для Вас естественны. А другие полшага "не естественны". "Классификатор (ссылка)" и "Объект (ссылка)" - это фундаментальные ошибки (я уж не говорю о том, что классификатор - это объект):) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:24 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
old__man__БредЧужих идентификаторов тем более не должно быть. Логично? И "симметрично": ни своих, ни чужих. А вот в присутствии идентификаторов среди атрибутов, действительно, нет ни логики, ни симметрии. Не вполне логично. Предположим, мы хотим ввести тип "Сумма", который состоит из двух полей - "Количество" - десятичное и "Валюта" - ссылка на справочник валют Если у ссылка может быть атрибутом, то дальше мы можем просто добавить атрибут типа "Сумма" в договор для полей "Сумма номинальная" и "Сумма с дисконтом". А если атрибуты отдельно, ссылки отдельно, то как быть? Как обычно: Договор - имеет(М:1)/относится к(1:М) - Валюта Сумм (атрибутов объекта Договор) может быть сколько угодно. Здесь фундаментальный спор идет, насколько я понимаю:) Вряд ли его стоит решать на уровне проектирования БД для частных задач:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:33 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Задеold__man__, ну у объекта есть ссылка на объекты Сумма, Сумма с дисконтом... плохо то что спокойно можно удалить эту ссылку у объекта и если этот объект является объектом-отношением, то его семантика отношения становится ущербным Вообще тема меры почти не затронута ведь любое свойство даже те , которые мы считаем примитивными, типа цвет, количество, весь... являются измеримыми в каких-то других объектах, т.е. являются классами и иногда сложными взимоотношениями В Ваших рассуждениях я бы обратил внимание на частично затронутый принципиальный аспект: Дейт считает, что аналогом класса ООП в РМД является домен, а не отношение:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:35 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Заде_модБредЧужих идентификаторов тем более не должно быть. Св-ва объекта м.б.: строка число дата классификатор (ссылка) объект (ссылка) список И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо. Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом. Иначе возникает проблема с лукапом отношений. Приходится либо показывать малоинформативное составное имя, либо пойти на денормализацию :( не смог я этот вопрос красиво решить :( Вышеперечисленное мало чем отличается от РМД, и работает только для программиста:) А Кодд мечтал, что это будет работать для пользователей. Но не получилось:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:38 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модЗаде Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом. Об том и речь - все просто и красиво :) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:39 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:) Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:) Тут то как раз никто не спорит. Объект существует в системе и только. Но при тщательном анализе этого факта вырисовываются два подхода. 1. Объект ассоциируется с системным идентификатором(создаем идентификатор и вес жизненный цикл объекта присобачиваем к этому идентификатору). Это для внешних для системы объектов-прищелцев 2. Но есть внутреннние, родные для системы объекты. Допустим два объекта приписанных в системе вошли в отношение и получили свойства отношения. В таком случае этот объект-отношение можно однозначно идентифицировать порядком и идентификаторами вошедших в отношение объектов. Что вносит неоднозначность в систему идентификации. Но, этим самым мы добиваемся запрета создания отношений высшего порядка, а это, кажется, очень важно. (я выше говорил про формальную агрегацию понятий). Вот пункт два меня мучает. Я даю возможность создавать отношения высших порядков Отношение{Отношение1,Отношение2,...}. Но скоко бы не думал, выше третьего порядка ничего осмысленного получить не могу, хотя формально строится пирамида понятий. :( А если я убираю системный суррогатный идентификатор для отношения, то все семантичски возвращается в норму, но появляются проблема уточнение имен денормализованных свойств и предложения ставноятся все длинее и длинее : ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 17:56 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред В Ваших рассуждениях я бы обратил внимание на частично затронутый принципиальный аспект: Дейт считает, что аналогом класса ООП в РМД является домен, а не отношение:) Дейт в таком случае противовоставляет домен и отношение. Отношение может быть базовым множеством для домена. Класс - шалон, трафарет, описание структуры, методов и событий домена. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 18:02 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
метадданные домена(экземплярного базового множества класса) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 18:04 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеБред Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:) Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:) Тут то как раз никто не спорит. Объект существует в системе и только. Но при тщательном анализе этого факта вырисовываются два подхода. 1. Объект ассоциируется с системным идентификатором(создаем идентификатор и вес жизненный цикл объекта присобачиваем к этому идентификатору). Это для внешних для системы объектов-прищелцев 2. Но есть внутреннние, родные для системы объекты. Допустим два объекта приписанных в системе вошли в отношение и получили свойства отношения. В таком случае этот объект-отношение можно однозначно идентифицировать порядком и идентификаторами вошедших в отношение объектов. Что вносит неоднозначность в систему идентификации. Но, этим самым мы добиваемся запрета создания отношений высшего порядка, а это, кажется, очень важно. (я выше говорил про формальную агрегацию понятий). Этот пункт всех мучает:) Почему-то:) Вы находитесь под впечатлением РМД, где нет ничего кроме отношений. Кодд помучился, помучился немного с их типизацией и плюнул на это дело:) Главное - алгебра! Пока для Вас важной будет Ваша "алгебра", Вам следует использовать РМД. И не мучиться, разрабатывая другую алгебру:) Этот подход привел к тому, что люди отделены от информации "железобетонной" стеной в виде (SQL)программистов и их кодов:) На самом деле, результатом любого "запроса" является подсхема схемы БД СО ВСЕЙ ПРИСУЩЕЙ ЕЙ СЕМАНТИКОЙ. Для любителей алгебры не представляет никакого труда реализовать в объектной среде "технологию", подобную SQL для "произвольного связывания объектов" вне определенных связей (то есть, вне идентификаторов). Связывайте на здоровье, якобы для извлечения не познанных закономерностей:) И открытия новых законов природы:) Вот пункт два меня мучает. Я даю возможность создавать отношения высших порядков Отношение{Отношение1,Отношение2,...}. Но скоко бы не думал, выше третьего порядка ничего осмысленного получить не могу, хотя формально строится пирамида понятий. :( А если я убираю системный суррогатный идентификатор для отношения, то все семантичски возвращается в норму, но появляются проблема уточнение имен денормализованных свойств и предложения ставноятся все длинее и длинее : ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 18:14 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеБред В Ваших рассуждениях я бы обратил внимание на частично затронутый принципиальный аспект: Дейт считает, что аналогом класса ООП в РМД является домен, а не отношение:) Дейт в таком случае противовоставляет домен и отношение. Отношение может быть базовым множеством для домена. Класс - шалон, трафарет, описание структуры, методов и событий домена. Дейт ничего не противопоставляет, а объясняет, таким образом, пути "оптимальной интеграции" объектных технологий (в смысле ООП) и РМД. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 18:16 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеБред Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:) Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:) Тут то как раз никто не спорит. Объект существует в системе и только. Но при тщательном анализе этого факта вырисовываются два подхода. 1. Объект ассоциируется с системным идентификатором(создаем идентификатор и вес жизненный цикл объекта присобачиваем к этому идентификатору). Это для внешних для системы объектов-прищелцев 2. Но есть внутреннние, родные для системы объекты. Допустим два объекта приписанных в системе вошли в отношение и получили свойства отношения. В таком случае этот объект-отношение можно однозначно идентифицировать порядком и идентификаторами вошедших в отношение объектов. Что вносит неоднозначность в систему идентификации. Но, этим самым мы добиваемся запрета создания отношений высшего порядка, а это, кажется, очень важно. (я выше говорил про формальную агрегацию понятий). Вот пункт два меня мучает. Я даю возможность создавать отношения высших порядков Отношение{Отношение1,Отношение2,...}. Но скоко бы не думал, выше третьего порядка ничего осмысленного получить не могу, хотя формально строится пирамида понятий. :( А если я убираю системный суррогатный идентификатор для отношения, то все семантичски возвращается в норму, но появляются проблема уточнение имен денормализованных свойств и предложения ставноятся все длинее и длинее : Этот пункт всех мучает:) Почему-то:) Вы находитесь под впечатлением РМД, где нет ничего кроме отношений. Кодд помучился, помучился немного с их типизацией и плюнул на это дело:) Главное - алгебра! Пока для Вас важной будет Ваша "алгебра", Вам следует использовать РМД. И не мучиться, разрабатывая другую алгебру:) Этот подход привел к тому, что люди отделены от информации "железобетонной" стеной в виде (SQL)программистов и их кодов:) На самом деле, результатом любого "запроса" является подсхема схемы БД СО ВСЕЙ ПРИСУЩЕЙ ЕЙ СЕМАНТИКОЙ. Для любителей алгебры не представляет никакого труда реализовать в объектной среде "технологию", подобную SQL для "произвольного связывания объектов" вне определенных связей (то есть, вне идентификаторов). Связывайте на здоровье, якобы для извлечения не познанных закономерностей:) И открытия новых законов природы:) ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 18:17 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред, честно гворя мне пофиг кодд, дейт и их рмд, ооп и т.д. СКЛ сервер я использую токо из за того, что никто не покупает проги для корпоратвного уровня, которые не базируются на скл серверах. Тенденции таковы. вот и приходится на ск серверах моделировать свои фиговины. А про то что задавая "семантику"в какой нить хранимой процедуре можно получить что угодно я давно знаю. select "человек" as оборотень from ишак where "пофиг"="пофиг" ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 18:53 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
ЗадеБред, честно гворя мне пофиг кодд, дейт и их рмд, ооп и т.д. СКЛ сервер я использую токо из за того, что никто не покупает проги для корпоратвного уровня, которые не базируются на скл серверах. Тенденции таковы. вот и приходится на ск серверах моделировать свои фиговины. А про то что задавая "семантику"в какой нить хранимой процедуре можно получить что угодно я давно знаю. select "человек" as оборотень from ишак where "пофиг"="пофиг" :) мне не пофиг, конечно... и именно поэтому я и работаю над тем, чтобы люди не покупали "проги для корпоративного уровня, которые базируются на скл серверах"... и их уже давно многие не покупают:) Однако см. мое примечание о том, что никто не мешает .... и т.д. ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 19:18 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред, нечего ворюг жалеть ... |
|||
:
Нравится:
Не нравится:
|
|||
19.03.2010, 19:35 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред- из-за отсутствия регистрации упомянутых событий в нашей прикладной системе. из-за отсутствия необходимости регистрации упомянутых событий в нашей прикладной системе. ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 09:50 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Бред Это и есть принципиальная ошибка:) У Вас здесь принципиально нет связей. Ессно нет. Есть типы данных - типы объектов. [quot Бред] ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 09:53 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБред- из-за отсутствия регистрации упомянутых событий в нашей прикладной системе. из-за отсутствия необходимости регистрации упомянутых событий в нашей прикладной системе. Можно и так. Результат тот же:) ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 19:06 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_мод[quot Бред] Это и есть принципиальная ошибка:) У Вас здесь принципиально нет связей. Ессно нет. Есть типы данных - типы объектов. Бред Именно. Но мне показалось, что мы говорили не о парадигмах программирования (например, ООП). Видимо, померещилось:) Значит связей просто нет. И на вопрос в названии темы можно уверенно ответить: "Они совершенно не нужны":) И хорошо... Забыл, что мы на sql.ru :: ... |
|||
:
Нравится:
Не нравится:
|
|||
22.03.2010, 19:09 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредЗначит связей просто нет. Это я поспешил, извините. Если свойство объекта имеет тип объекта и СУБД об этом знает, то связь между этими объектами существует и ее можно использовать например для навигации. Но если СУБД не поддерживает типы объектов, то и связи не будет. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2010, 10:48 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредЗначит связей просто нет. Это я поспешил, извините. Если свойство объекта имеет тип объекта и СУБД об этом знает, то связь между этими объектами существует и ее можно использовать например для навигации. Но если СУБД не поддерживает типы объектов, то и связи не будет. Нет. Это подход ООП. Уже уровень реализации. Причем очень плохой реализации. Есть объекты (и типы объектов). И есть связи (и типы связей). Связь - это не "ссылка", и она не представляется с помощью характеристики объекта определенного типа. С другой стороны, у связи не может быть никаких характеристик, как у объекта. ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2010, 13:29 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредСвязь - это не "ссылка", и она не представляется с помощью характеристики объекта определенного типа. Обосновать можете ? ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2010, 16:33 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_мод, Давно обосновал. До реализации. Иначе, как же можно было реализовать?:) И здесь обосновал. Весьма основательно:) Посмотрите, по-внимательнее, на дом, в котором Вы живете. Неужели Вы являетесь его свойством???:) А теперь посмотрите на себя. Неужели Вашим свойством является дом???:) Так зачем же все усложнять??? В действительности, со связями уже давно все понятно. А вот подумать о типизации объектов полезно. А именно, ввести два типа: сущность и событие (участниками которого являются сущности). См. мое объяснение откуда у экземпляра объекта на самом деле могли бы появляться значения характеристик:) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2010, 19:31 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
LSVIvan DurakCerber-88, А еще в чужой базе без связей разобраться труднова-то.....И особенно сложно разобраться, когда связей(констрайнтов) нет. Пример - практически любая КИС или ERP. "Практически любые КИС или ERP" без связей - это не КИС и не ERP. Они создаются с одной целью - борьба с безработицей среди программистов:) ... |
|||
:
Нравится:
Не нравится:
|
|||
23.03.2010, 19:56 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредПосмотрите, по-внимательнее, на дом, в котором Вы живете. Неужели Вы являетесь его свойством???:)А теперь посмотрите на себя. Неужели Вашим свойством является дом???:) Это и есть обоснование ? Все зависит от выбранной модели. Если отдельные дома являются объектами (как в ПИБ), то ссылки на них будут св-вами объектов Граждане, Организации и пр. Бред В действительности, со связями уже давно все понятно. Видимо не для всех и не до конца. Бред А вот подумать о типизации объектов полезно. А именно, ввести два типа: сущность и событие Это всего лишь условность, полезная при проектировании систем определенного класса, например учетных. Давно и широко используется. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2010, 09:29 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредПосмотрите, по-внимательнее, на дом, в котором Вы живете. Неужели Вы являетесь его свойством???:)А теперь посмотрите на себя. Неужели Вашим свойством является дом???:) Это и есть обоснование ? Все зависит от выбранной модели. Если отдельные дома являются объектами (как в ПИБ), то ссылки на них будут св-вами объектов Граждане, Организации и пр. Бред В действительности, со связями уже давно все понятно. Видимо не для всех и не до конца. Бред А вот подумать о типизации объектов полезно. А именно, ввести два типа: сущность и событие Это всего лишь условность, полезная при проектировании систем определенного класса, например учетных. Давно и широко используется. 1) Вчитайтесь в Ваше обоснование после игнорирования простого (физического:)) взгляда на дом: "Если отдельные [а какие же еще?] дома являются объектами [пока нормально, но только экземплярами объекта Дом, но это, в данном контексте, не принципиально - пусть объектами класса Дом], то ссылки на них будут свойствами Граждан" ??? Для Вас это так, потому что Вы ВЫБРАЛИ модель (ООП) безо всякого обоснования! У Вас просто НЕТ ВЫБОРА: что в РМД, что в ОРМД, что в ООП Вы просто ВЫНУЖДЕНЫ считать Дом Вашим свойством. Игнорируя действительность, и не получая при этом ничего, кроме головной боли, по сравнению с обычной объектной моделью Гражданин - Проживает в - Дом. Что и есть на самом деле:) Гражданин действительно проживает в доме:) 2) Да, конечно, не для всех и не до конца. Я только про себя:) 3) А здесь ("давно и широко") Вы не про модели данных говорите. А о том, что приходится делать вопреки. Так что на том уровне, который мы обсуждаем, пока никак и нигде не используется. И не известно когда будет использоваться. ... |
|||
:
Нравится:
Не нравится:
|
|||
24.03.2010, 20:19 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
БредДля Вас это так, потому что Вы ВЫБРАЛИ модель (ООП) безо всякого обоснования! А это всегда так - выбирается модель, отвечающая задаче. Никакого обоснования не требуется. В одной модели дом - это объект (экзепляр класса) и на него есть ссылки, а в другой модели такого объекта просто нет, а есть номер дома в поле адрес. Все зависит от выбора проектировщика (а выбор всегда есть). БредТак что на том уровне, который мы обсуждаем, пока никак и нигде не используется. И не известно когда будет использоваться. Ну я использую, и давно. ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2010, 10:26 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
_модБредДля Вас это так, потому что Вы ВЫБРАЛИ модель (ООП) безо всякого обоснования! А это всегда так - выбирается модель, отвечающая задаче. Никакого обоснования не требуется. В одной модели дом - это объект (экзепляр класса) и на него есть ссылки, а в другой модели такого объекта просто нет, а есть номер дома в поле адрес. Все зависит от выбора проектировщика (а выбор всегда есть). БредТак что на том уровне, который мы обсуждаем, пока никак и нигде не используется. И не известно когда будет использоваться. Ну я использую, и давно. Что-то Вы совсем ушли куда-то:) Какой еще "номер дома в поле адрес"??? В "нашей задаче" дом - это объект, конечно же. И использование ссылок - очень плохая, устаревшая технология:) Которую Вы применяете, не имея, насколько я понимаю, никакого выбора:) Нет не используете:) У Вас просто нет такой СУБД и такой МД. Вы вынуждены все реализовывать на уровне приложения. Но это, конечно, гипотеза. Основанная на Ваших сообщениях. Из которых следует, что у Вас дом является Вашим свойством:) Короче говоря, будем считать, что автор темы немного ошибся. Наверное, хотел спросить "Зачем нужны ссылки?". Или даже "Зачем нужны внешний ключи":) То есть, чисто образовательная тема. Скатываемся в убогое состояние по следующей логической цепочке: Зачем связи, вполне можно обойтись ссылками. Зачем ссылки, вполне можно обойтись внешними ключами. Зачем внешние ключи, вполне можно слепить чего-нибудь на уровне приложения (как в "передовых" КИС и ERP) Все, значит, хорошо. Ну и ладненько:) ... |
|||
:
Нравится:
Не нравится:
|
|||
25.03.2010, 16:32 |
|
Зачем нужны связи?
|
|||
---|---|---|---|
#18+
Для чего может быть нужна связь между запросом и таблицей ? ... |
|||
:
Нравится:
Не нравится:
|
|||
30.11.2017, 17:03 |
|
|
start [/forum/topic.php?all=1&fid=32&tid=1540105]: |
0ms |
get settings: |
10ms |
get forum list: |
18ms |
check forum access: |
4ms |
check topic access: |
4ms |
track hit: |
184ms |
get topic data: |
11ms |
get forum data: |
3ms |
get page messages: |
107ms |
get tp. blocked users: |
2ms |
others: | 12ms |
total: | 355ms |
0 / 0 |