powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Зачем нужны связи?
72 сообщений из 72, показаны все 3 страниц
Зачем нужны связи?
    #36508264
Cerber-88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не могу понять зачем нужны связи? Какая от них практическая польза. БД работает быстрее, или как?

Ведь когда делаем запрос из несколькох таблиц, все равно прописываем откуда чего брать и как связать между собой.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36508272
Фотография Shtock
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Они не позволяют вставить левые данные.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36508294
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
база работает медленнее, зато есть целостность данных
С уважением, Naf
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36508307
Cerber-88
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Понятно.
Спасибо!
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36511387
Ivan Durak
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerber-88,
А еще в чужой базе без связей разобраться труднова-то.....
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36511436
LSV
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ivan DurakCerber-88,
А еще в чужой базе без связей разобраться труднова-то.....И особенно сложно разобраться, когда связей(констрайнтов) нет. Пример - практически любая КИС или ERP.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36515173
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Не путайте связи - понятие ER модели с ограничениями ссылочной целостности БД.

В реляционных БД связи устанавливаются в предикатах SQL запроса, поэтому важно иметь описание или модель БД. Ограничения ссылочной целостности тоже помогают и обычно соотносятся со связями, но их не всегда создают в БД.

В объектных БД связи можно прописать в БД, в виде ссылок на объекты.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36516160
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mcureenab
В объектных БД связи можно прописать в БД, в виде ссылок на объекты.
В сетевых и иерархических. В РБД никаких связей нет по определению РМД.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36517408
mcureenab
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модmcureenab
В объектных БД связи можно прописать в БД, в виде ссылок на объекты.
В сетевых и иерархических. В РБД никаких связей нет по определению РМД.

Взаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36520167
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
mcureenabВзаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает.
Можно построить ОБД без прямых связей, аналогично РБД. Наличие прямых связей - это сетевая МД. А элементы сети могут быть любыми.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36524678
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenabНе путайте связи - понятие ER модели с ограничениями ссылочной целостности БД.

В реляционных БД связи устанавливаются в предикатах SQL запроса, поэтому важно иметь описание или модель БД. Ограничения ссылочной целостности тоже помогают и обычно соотносятся со связями, но их не всегда создают в БД.

В объектных БД связи можно прописать в БД, в виде ссылок на объекты.

Нет. Связи не являются атрибутами (свойствами) объектов [как внешний ключ в РМД]. Также, как и идентификаторы [как первичный ключ в РМД]. Не нужно "в виде ссылок". Будет получаться почти как в "Р"СУБД (за исключением того, что для внешнего ключа в РМД не определен специальный тип).
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36524684
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модmcureenab
В объектных БД связи можно прописать в БД, в виде ссылок на объекты.
В сетевых и иерархических. В РБД никаких связей нет по определению РМД.

Были попытки, но остались только на уровне рассуждений из-за проблем с алгеброй. В ранних отчетах Кодда рассматривались отношения типа сущности, и отношения типа связи. Но формально ввести типизацию отношений не удалось.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36524685
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mcureenab_модmcureenab
В объектных БД связи можно прописать в БД, в виде ссылок на объекты.
В сетевых и иерархических. В РБД никаких связей нет по определению РМД.

Взаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает.

Формально, "Р"СУБД тоже знает о "связях по ключам".
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36524705
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модmcureenabВзаимосвязанные объекты в объектной БД образуют сеть и СУБД о ней знает.
Можно построить ОБД без прямых связей, аналогично РБД. Наличие прямых связей - это сетевая МД. А элементы сети могут быть любыми.

Возможно, лучше бы было сказать не "прямых", а "явных":)
Кроме того, у связей есть семантика. В некотором смысле, получаем "семантическую сеть". А раз появилось слово сеть, то где-то рядом и слово "сетевая":)
Объектные СУБД, конечно, прямые наследники иерархических и сетевых, то есть объектно-ориентированных, в отличие от записеориентированной "Р"СУБД.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36524902
Andreww
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
О боже ! опять семантика
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36525525
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредФормально, "Р"СУБД тоже знает о "связях по ключам".
Не, не знает (если явно не указать). А вот ОСУБД обязана знать (здесь согласен), т.к. ссылки на объекты явно типизированы.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36525911
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewwО боже ! опять семантика

О боже! Так ничему и не научились:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36525920
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредФормально, "Р"СУБД тоже знает о "связях по ключам".
Не, не знает (если явно не указать). А вот ОСУБД обязана знать (здесь согласен), т.к. ссылки на объекты явно типизированы.

Указание внешних ключей - это и есть "явное указание". ОСУБД просто знает:) Но не благодаря ссылкам (это слабая технология), а благодаря явным связям:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36526716
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредНо не благодаря ссылкам (это слабая технология), а благодаря явным связям:)
Это понял. Ссылка может содержать физический адрес объекта, но тогда возникают проблемы с перемещением БД. Либо ссылка содержит ИД объекта доступ через индекс - медленнее, но надежней.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36527015
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредНо не благодаря ссылкам (это слабая технология), а благодаря явным связям:)
Это понял. Ссылка может содержать физический адрес объекта, но тогда возникают проблемы с перемещением БД. Либо ссылка содержит ИД объекта доступ через индекс - медленнее, но надежней.
Да, примерно так. Только, поскольку связь (то есть, идентификаторы других объектов) не является атрибутом объекта (так же, как и идентификатор не является атрибутом объекта), то связи - это "отдельная конструкция": каждый экземпляр связи - это пара идентификаторов, а точнее две пары для симметричной навигации.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36527192
Andreww
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бред, О боже! Так ничему и не научились:)

Сколько времени потратил бы орёл впустую, если бы согласился учиться у вороны. (с) Классик.


В общем-то все мои выступления, а это именно выступления, вы же не считаете что я буду всерьёз дискутировать с человеком у которого то зависит то не зависит направлены на то, что бы другие не тратили на вас время.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36527477
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредТолько, поскольку связь (то есть, идентификаторы других объектов) не является атрибутом объекта (так же, как и идентификатор не является атрибутом объекта)
Идентификатор действительно не является атрибутом объекта (его нет в описании стр-ры), а ссылка на другой объект (или сам на себя) - это атрибут объекта и присутсвует в описании структуры этого объекта. И так было всегда, даже в первых сетевых СУБД.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36527910
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_мод,

Нет ссылки и есть ссылки.
Надо все же почестнее.
Система (Классификационный механизм)
Объект
Объект - собственные свойства
Объект - ссылочные свойства
Объект - отношение {Объект, Объект1, ..., ОбъектN, свойство отношения1,..., свойство отношенияM}
Частный случай идентифицирующего отношения в системе - {Объект, Система, Идентификатор}
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36527940
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Собственно говоря ссылочные свойства только у объектов-отношений
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36528731
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrewwБред, О боже! Так ничему и не научились:)

Сколько времени потратил бы орёл впустую, если бы согласился учиться у вороны. (с) Классик.


В общем-то все мои выступления, а это именно выступления, вы же не считаете что я буду всерьёз дискутировать с человеком у которого то зависит то не зависит направлены на то, что бы другие не тратили на вас время.

Естественно, с Вами дискутировать не очем в области баз данных, так как Вы не специалист в этой области. Здесь я с Вами полностью согласен:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36528738
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредТолько, поскольку связь (то есть, идентификаторы других объектов) не является атрибутом объекта (так же, как и идентификатор не является атрибутом объекта)
Идентификатор действительно не является атрибутом объекта (его нет в описании стр-ры), а ссылка на другой объект (или сам на себя) - это атрибут объекта и присутсвует в описании структуры этого объекта. И так было всегда, даже в первых сетевых СУБД.

Именно это и было существенным недостатком "первых сетевых СУБД":) Идентификаторов не должно быть среди атрибутов, ни "своих", ни "чужих". Это очень логично. И очень симметрично:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36528751
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заде_мод,

Нет ссылки и есть ссылки.
Надо все же почестнее.
Система (Классификационный механизм)
Объект
Объект - собственные свойства
Объект - ссылочные свойства
Объект - отношение {Объект, Объект1, ..., ОбъектN, свойство отношения1,..., свойство отношенияM}
Частный случай идентифицирующего отношения в системе - {Объект, Система, Идентификатор}

Да, Вы здесь честно описали РМД, как ее видел Кодд в ранних отчетах IBM:)
У Вас здесь принципиально нет связей:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36528776
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗадеСобственно говоря ссылочные свойства только у объектов-отношений

Путаетесь немного:)
Но в целом так: у отношений (РМД) типа "сущность" - только первичный ключ; у отношений типа "связь" - помимо первичного ключа, два или более внешних ключей...
Гиблый подход:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36529165
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗадеНадо все же почестнее.
Система (Классификационный механизм)
Объект
Объект - собственные свойства
Объект - ссылочные свойства
Объект - отношение {Объект, Объект1, ..., ОбъектN, свойство отношения1,..., свойство отношенияM}
Частный случай идентифицирующего отношения в системе - {Объект, Система, Идентификатор}
ссылочные свойства =собственные свойства
пример: число 5 можно считать ссылкой на множество целых чисел
Объект - отношение ничем не отличается от любого другого
пример: счет-фактура "связывет" поставщиков и товары
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36529181
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред
Именно это и было существенным недостатком "первых сетевых СУБД":) Идентификаторов не должно быть среди атрибутов, ни "своих", ни "чужих". Это очень логично. И очень симметрично:)
Этот "недостаток" сохранился во всех СУБД. Не вижу ни логики, ни симметрии.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36529496
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБред
Именно это и было существенным недостатком "первых сетевых СУБД":) Идентификаторов не должно быть среди атрибутов, ни "своих", ни "чужих". Это очень логично. И очень симметрично:)
Этот "недостаток" сохранился во всех СУБД. Не вижу ни логики, ни симметрии.

Во всех СУБД с недостатками, а не во всех СУБД.
Своего идентификатора нет среди атрибутов. Лоично? Вроде согласились, что логично:)
Чужих идентификаторов тем более не должно быть. Логично? И "симметрично": ни своих, ни чужих.
Странно, почему не видите:)

А вот в присутствии идентификаторов среди атрибутов, действительно, нет ни логики, ни симметрии.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36529857
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред,

ну да путано получилось (зато быстро :))

_мод

у меня путаница именно в понимании отношений между объектами (тут вроде ничего), отношением и объектом (тут уже похуже), отношением и отношением, отношением отношений и отношением отношений каюк)....
конечно понятно что эти отношения тоже объекты, но они какие-то особенные, "несамодостаточные"
только в отношениях-объектах появляются ссылочные свойства, а "самодостаточные" ни на кого не ссылаются (если не взять в расчет предопределенные системные базовые множества объектов)
в отношении-объекте совокупность объектов получают присущие только совокупности свойства, а сам отношение-объект практически никода не имеет человекоинтерпретируемое свойство "Наименование"
они сильно зависимы, их жизненный цикл определяется жизненным циклом любого из объектов входящих в отношение или надо ввести тот же null, setnull, что как то пахнет гнильцой :(

а как только начинается отношение отношений и дальше(высшие ступени отношений), так воще человеческая интерпретация начинает хромать не только по части идентификации :(
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36529860
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред,

Идентификатор тоже особо интересная фиговина
вроде бы он часть идентифицирующей системы
объект вроде бы может жить и без этой нафиг ему не нужной фигни
тут вопрос, а как обратиться к объекту не имеющего идентификатора?
вот "_мод" не свойство человека с которым я разговариваю, но без этого идентификатора я бы обратился в пустоту
просто наверное затаскали слово "свойство" и "объект", надо так и оставить "системный идентификатор объекта", не "свойство", а "системное свойство объекта", не "ссылочное свойство" , а "объект участвующий в системном отношении", не называть всю фигню объектом...
вощем полная фигня :(
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36529866
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Такое ощущение, что знание ограничено сверху и снизу
синтез и анализ конечны
бесконечность только в плоском мире, ну типа толщина мира ограничено чем то
ни пил нифига и не только про свои знания речь :(
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36530031
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредЧужих идентификаторов тем более не должно быть.
Св-ва объекта м.б.:
строка
число
дата
классификатор (ссылка)
объект (ссылка)
список
И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36530043
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заде конечно понятно что эти отношения тоже объекты, но они какие-то особенные, "несамодостаточные"
В DBOMP было два типа таблиц - основные и связующие. Но когда стали очевидными ограничения такой модели, то перешли к однородным графам. На самом деле ничего страшного здесь нет, просто некоторые ограничения чисто организационного характера - ну нельзя ввести договор на не существующего поставщика. Зато гораздо удобнее все считать просто объектами, пусть и зависимыми друг от друга.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36530142
old__man__
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредЧужих идентификаторов тем более не должно быть. Логично? И "симметрично": ни своих, ни чужих.

А вот в присутствии идентификаторов среди атрибутов, действительно, нет ни логики, ни симметрии.

Не вполне логично.

Предположим, мы хотим ввести тип "Сумма", который состоит из двух полей -
"Количество" - десятичное и
"Валюта" - ссылка на справочник валют

Если у ссылка может быть атрибутом, то дальше мы можем просто добавить атрибут типа "Сумма"
в договор для полей "Сумма номинальная" и "Сумма с дисконтом".

А если атрибуты отдельно, ссылки отдельно, то как быть?
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36530618
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
old__man__,

ну у объекта есть ссылка на объекты Сумма, Сумма с дисконтом...

плохо то что спокойно можно удалить эту ссылку у объекта и если этот объект является объектом-отношением, то его семантика отношения становится ущербным

Вообще тема меры почти не затронута
ведь любое свойство даже те , которые мы считаем примитивными, типа цвет, количество, весь... являются измеримыми в каких-то других объектах, т.е. являются классами и иногда сложными взимоотношениями
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36530637
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_модБредЧужих идентификаторов тем более не должно быть.
Св-ва объекта м.б.:
строка
число
дата
классификатор (ссылка)
объект (ссылка)
список
И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо.

Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом. Иначе возникает проблема с лукапом отношений. Приходится либо показывать малоинформативное составное имя, либо пойти на денормализацию :( не смог я этот вопрос красиво решить :(
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36530978
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Заде
Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом.
Об том и речь - все просто и красиво
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531126
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
_мод,

есть большое искушение сотворить типа такой вещи
Специалист{Специальность, Квалификация, Компетенция}
Работник{...,Специалист}
Потом я беру и назначаю Процесс нормативный{Процессор{Специалист}}
а при планировании актуализированного Просесса, я по значению объекта Специалист вычисляюю объект Работник.
Но если сделать Работник{...,Специальность, Квалификация, Компетенция}, то приходится сделать
Процесс нормативный{Процессор{Работник (where Специальность = @1, Квалификация=@2, Компетенция=*)}}
т.е. приходится дать ссылку на ТИП и свойства типа, что являются Метаданными, а мне не хотся открывать метаданные платформы в прикладной системе
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531328
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
ЗадеСпециалист{Специальность, Квалификация, Компетенция}
Работник{...,Специалист}
Потом я беру и назначаю Процесс нормативный{Процессор{Специалист}}
а при планировании актуализированного Просесса, я по значению объекта Специалист вычисляюю объект Работник.

Так правильно ( вычислится несколько возможных Работников)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531585
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗадеБред,

Идентификатор тоже особо интересная фиговина
вроде бы он часть идентифицирующей системы
объект вроде бы может жить и без этой нафиг ему не нужной фигни
тут вопрос, а как обратиться к объекту не имеющего идентификатора?
вот "_мод" не свойство человека с которым я разговариваю, но без этого идентификатора я бы обратился в пустоту
просто наверное затаскали слово "свойство" и "объект", надо так и оставить "системный идентификатор объекта", не "свойство", а "системное свойство объекта", не "ссылочное свойство" , а "объект участвующий в системном отношении", не называть всю фигню объектом...
вощем полная фигня :(

Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:)
Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:)

Объясню почему.

1) Имя человека, например, присваивается ему в результате определенного события. Зарегистрированного в определенном органе:) Таким образом, оно зафиксировано в информационной системе в рамках объекта типа событие.
2) Рост человека, например, измеряется (физически). И также регистрируется в объекте типа событие (измерение роста или, шире, измерение антропологических характеристик человека).
3) И т.д., и т.п. о каждом атрибуте (свойстве, характеристике) объекта Человек.

Мы, тем не менее, размещаем, обычно эти атрибуты непосредственно в объекте Человек (то есть, осуществляем банальную денормализацию) по двум причинам:
- для повышения производительности определенных операций (для чего, обычно, и делается денормализация);
- из-за отсутствия регистрации упомянутых событий в нашей прикладной системе.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531601
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредЧужих идентификаторов тем более не должно быть.
Св-ва объекта м.б.:
строка
число
дата
классификатор (ссылка)
объект (ссылка)
список
И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо.

Это и есть принципиальная ошибка:) У Вас здесь принципиально нет связей.
Вы сделали полшага. Вы пишете "Естественно":) Почему-то эти полшага для Вас естественны. А другие полшага "не естественны".

"Классификатор (ссылка)" и "Объект (ссылка)" - это фундаментальные ошибки (я уж не говорю о том, что классификатор - это объект):)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531622
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
old__man__БредЧужих идентификаторов тем более не должно быть. Логично? И "симметрично": ни своих, ни чужих.

А вот в присутствии идентификаторов среди атрибутов, действительно, нет ни логики, ни симметрии.

Не вполне логично.

Предположим, мы хотим ввести тип "Сумма", который состоит из двух полей -
"Количество" - десятичное и
"Валюта" - ссылка на справочник валют

Если у ссылка может быть атрибутом, то дальше мы можем просто добавить атрибут типа "Сумма"
в договор для полей "Сумма номинальная" и "Сумма с дисконтом".

А если атрибуты отдельно, ссылки отдельно, то как быть?

Как обычно:

Договор - имеет(М:1)/относится к(1:М) - Валюта
Сумм (атрибутов объекта Договор) может быть сколько угодно.

Здесь фундаментальный спор идет, насколько я понимаю:) Вряд ли его стоит решать на уровне проектирования БД для частных задач:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531632
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Задеold__man__,

ну у объекта есть ссылка на объекты Сумма, Сумма с дисконтом...

плохо то что спокойно можно удалить эту ссылку у объекта и если этот объект является объектом-отношением, то его семантика отношения становится ущербным

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

В Ваших рассуждениях я бы обратил внимание на частично затронутый принципиальный аспект: Дейт считает, что аналогом класса ООП в РМД является домен, а не отношение:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531640
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Заде_модБредЧужих идентификаторов тем более не должно быть.
Св-ва объекта м.б.:
строка
число
дата
классификатор (ссылка)
объект (ссылка)
список
И это все присутствует в описании объекта и доступно для манипулирования. Еснно собственный ИД описывать не надо.

Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом. Иначе возникает проблема с лукапом отношений. Приходится либо показывать малоинформативное составное имя, либо пойти на денормализацию :( не смог я этот вопрос красиво решить :(

Вышеперечисленное мало чем отличается от РМД, и работает только для программиста:) А Кодд мечтал, что это будет работать для пользователей. Но не получилось:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531645
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модЗаде
Если не создавать отношения - {объект, отношение}, {отношение, отношение}, то вышеперечисленное отлично работает и прекрасно визуализируется автоматом.
Об том и речь - все просто и красиво

:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531692
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред
Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:)
Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:)


Тут то как раз никто не спорит. Объект существует в системе и только.
Но при тщательном анализе этого факта вырисовываются два подхода.
1. Объект ассоциируется с системным идентификатором(создаем идентификатор и вес жизненный цикл объекта присобачиваем к этому идентификатору). Это для внешних для системы объектов-прищелцев
2. Но есть внутреннние, родные для системы объекты. Допустим два объекта приписанных в системе вошли в отношение и получили свойства отношения. В таком случае этот объект-отношение можно однозначно идентифицировать порядком и идентификаторами вошедших в отношение объектов. Что вносит неоднозначность в систему идентификации. Но, этим самым мы добиваемся запрета создания отношений высшего порядка, а это, кажется, очень важно. (я выше говорил про формальную агрегацию понятий).

Вот пункт два меня мучает. Я даю возможность создавать отношения высших порядков Отношение{Отношение1,Отношение2,...}. Но скоко бы не думал, выше третьего порядка ничего осмысленного получить не могу, хотя формально строится пирамида понятий. :(
А если я убираю системный суррогатный идентификатор для отношения, то все семантичски возвращается в норму, но появляются проблема уточнение имен денормализованных свойств и предложения ставноятся все длинее и длинее :
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531709
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред
В Ваших рассуждениях я бы обратил внимание на частично затронутый принципиальный аспект: Дейт считает, что аналогом класса ООП в РМД является домен, а не отношение:)

Дейт в таком случае противовоставляет домен и отношение. Отношение может быть базовым множеством для домена.
Класс - шалон, трафарет, описание структуры, методов и событий домена.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531713
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
метадданные домена(экземплярного базового множества класса)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531735
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗадеБред
Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:)
Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:)


Тут то как раз никто не спорит. Объект существует в системе и только.
Но при тщательном анализе этого факта вырисовываются два подхода.
1. Объект ассоциируется с системным идентификатором(создаем идентификатор и вес жизненный цикл объекта присобачиваем к этому идентификатору). Это для внешних для системы объектов-прищелцев
2. Но есть внутреннние, родные для системы объекты. Допустим два объекта приписанных в системе вошли в отношение и получили свойства отношения. В таком случае этот объект-отношение можно однозначно идентифицировать порядком и идентификаторами вошедших в отношение объектов. Что вносит неоднозначность в систему идентификации. Но, этим самым мы добиваемся запрета создания отношений высшего порядка, а это, кажется, очень важно. (я выше говорил про формальную агрегацию понятий).

Этот пункт всех мучает:) Почему-то:)
Вы находитесь под впечатлением РМД, где нет ничего кроме отношений. Кодд помучился, помучился немного с их типизацией и плюнул на это дело:) Главное - алгебра! Пока для Вас важной будет Ваша "алгебра", Вам следует использовать РМД. И не мучиться, разрабатывая другую алгебру:)

Этот подход привел к тому, что люди отделены от информации "железобетонной" стеной в виде (SQL)программистов и их кодов:)

На самом деле, результатом любого "запроса" является подсхема схемы БД СО ВСЕЙ ПРИСУЩЕЙ ЕЙ СЕМАНТИКОЙ. Для любителей алгебры не представляет никакого труда реализовать в объектной среде "технологию", подобную SQL для "произвольного связывания объектов" вне определенных связей (то есть, вне идентификаторов). Связывайте на здоровье, якобы для извлечения не познанных закономерностей:) И открытия новых законов природы:)

Вот пункт два меня мучает. Я даю возможность создавать отношения высших порядков Отношение{Отношение1,Отношение2,...}. Но скоко бы не думал, выше третьего порядка ничего осмысленного получить не могу, хотя формально строится пирамида понятий. :(
А если я убираю системный суррогатный идентификатор для отношения, то все семантичски возвращается в норму, но появляются проблема уточнение имен денормализованных свойств и предложения ставноятся все длинее и длинее :
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531743
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗадеБред
В Ваших рассуждениях я бы обратил внимание на частично затронутый принципиальный аспект: Дейт считает, что аналогом класса ООП в РМД является домен, а не отношение:)

Дейт в таком случае противовоставляет домен и отношение. Отношение может быть базовым множеством для домена.
Класс - шалон, трафарет, описание структуры, методов и событий домена.

Дейт ничего не противопоставляет, а объясняет, таким образом, пути "оптимальной интеграции" объектных технологий (в смысле ООП) и РМД.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531746
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗадеБред
Как раз полная ясность:) Если Вы прислушаетесь к тому о чем я здесь говорю. Несколько лет:)
Идентификатор не является атрибутом (свойством, характеристикой) объекта. Он просто отражает в информационной системе факт существования объекта, не зависимо от значений его атрибутов. Более того, в идеале у объекта вообще не должно быть ни одного атрибута (свойства, характеристики) в тщательно нормализованной БД, в которой отражен весь реальный мир:)


Тут то как раз никто не спорит. Объект существует в системе и только.
Но при тщательном анализе этого факта вырисовываются два подхода.
1. Объект ассоциируется с системным идентификатором(создаем идентификатор и вес жизненный цикл объекта присобачиваем к этому идентификатору). Это для внешних для системы объектов-прищелцев
2. Но есть внутреннние, родные для системы объекты. Допустим два объекта приписанных в системе вошли в отношение и получили свойства отношения. В таком случае этот объект-отношение можно однозначно идентифицировать порядком и идентификаторами вошедших в отношение объектов. Что вносит неоднозначность в систему идентификации. Но, этим самым мы добиваемся запрета создания отношений высшего порядка, а это, кажется, очень важно. (я выше говорил про формальную агрегацию понятий).

Вот пункт два меня мучает. Я даю возможность создавать отношения высших порядков Отношение{Отношение1,Отношение2,...}. Но скоко бы не думал, выше третьего порядка ничего осмысленного получить не могу, хотя формально строится пирамида понятий. :(
А если я убираю системный суррогатный идентификатор для отношения, то все семантичски возвращается в норму, но появляются проблема уточнение имен денормализованных свойств и предложения ставноятся все длинее и длинее :

Этот пункт всех мучает:) Почему-то:)
Вы находитесь под впечатлением РМД, где нет ничего кроме отношений. Кодд помучился, помучился немного с их типизацией и плюнул на это дело:) Главное - алгебра! Пока для Вас важной будет Ваша "алгебра", Вам следует использовать РМД. И не мучиться, разрабатывая другую алгебру:)

Этот подход привел к тому, что люди отделены от информации "железобетонной" стеной в виде (SQL)программистов и их кодов:)

На самом деле, результатом любого "запроса" является подсхема схемы БД СО ВСЕЙ ПРИСУЩЕЙ ЕЙ СЕМАНТИКОЙ. Для любителей алгебры не представляет никакого труда реализовать в объектной среде "технологию", подобную SQL для "произвольного связывания объектов" вне определенных связей (то есть, вне идентификаторов). Связывайте на здоровье, якобы для извлечения не познанных закономерностей:) И открытия новых законов природы:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531813
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред,

честно гворя мне пофиг кодд, дейт и их рмд, ооп и т.д.
СКЛ сервер я использую токо из за того, что никто не покупает проги для корпоратвного уровня, которые не базируются на скл серверах. Тенденции таковы.
вот и приходится на ск серверах моделировать свои фиговины.
А про то что задавая "семантику"в какой нить хранимой процедуре можно получить что угодно я давно знаю.
select "человек" as оборотень from ишак where "пофиг"="пофиг"
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531849
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ЗадеБред,

честно гворя мне пофиг кодд, дейт и их рмд, ооп и т.д.
СКЛ сервер я использую токо из за того, что никто не покупает проги для корпоратвного уровня, которые не базируются на скл серверах. Тенденции таковы.
вот и приходится на ск серверах моделировать свои фиговины.
А про то что задавая "семантику"в какой нить хранимой процедуре можно получить что угодно я давно знаю.
select "человек" as оборотень from ишак where "пофиг"="пофиг"

:) мне не пофиг, конечно... и именно поэтому я и работаю над тем, чтобы люди не покупали "проги для корпоративного уровня, которые базируются на скл серверах"... и их уже давно многие не покупают:) Однако см. мое примечание о том, что никто не мешает .... и т.д.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36531877
Заде
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред,

нечего ворюг жалеть
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36533843
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред- из-за отсутствия регистрации упомянутых событий в нашей прикладной системе.
из-за отсутствия необходимости регистрации упомянутых событий в нашей прикладной системе.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36533848
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Бред
Это и есть принципиальная ошибка:) У Вас здесь принципиально нет связей.
Ессно нет. Есть типы данных - типы объектов.
[quot Бред]
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36535451
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБред- из-за отсутствия регистрации упомянутых событий в нашей прикладной системе.
из-за отсутствия необходимости регистрации упомянутых событий в нашей прикладной системе.

Можно и так. Результат тот же:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36535457
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод[quot Бред]
Это и есть принципиальная ошибка:) У Вас здесь принципиально нет связей.
Ессно нет. Есть типы данных - типы объектов.
Бред

Именно. Но мне показалось, что мы говорили не о парадигмах программирования (например, ООП). Видимо, померещилось:) Значит связей просто нет. И на вопрос в названии темы можно уверенно ответить: "Они совершенно не нужны":)
И хорошо...
Забыл, что мы на sql.ru ::
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36536242
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредЗначит связей просто нет.
Это я поспешил, извините. Если свойство объекта имеет тип объекта и СУБД об этом знает, то связь между этими объектами существует и ее можно использовать например для навигации.
Но если СУБД не поддерживает типы объектов, то и связи не будет.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36536828
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредЗначит связей просто нет.
Это я поспешил, извините. Если свойство объекта имеет тип объекта и СУБД об этом знает, то связь между этими объектами существует и ее можно использовать например для навигации.
Но если СУБД не поддерживает типы объектов, то и связи не будет.

Нет. Это подход ООП. Уже уровень реализации. Причем очень плохой реализации.
Есть объекты (и типы объектов). И есть связи (и типы связей).
Связь - это не "ссылка", и она не представляется с помощью характеристики объекта определенного типа.
С другой стороны, у связи не может быть никаких характеристик, как у объекта.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36537588
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредСвязь - это не "ссылка", и она не представляется с помощью характеристики объекта определенного типа.
Обосновать можете ?
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36538068
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_мод,

Давно обосновал. До реализации. Иначе, как же можно было реализовать?:)
И здесь обосновал. Весьма основательно:)
Посмотрите, по-внимательнее, на дом, в котором Вы живете. Неужели Вы являетесь его свойством???:)
А теперь посмотрите на себя. Неужели Вашим свойством является дом???:)
Так зачем же все усложнять???

В действительности, со связями уже давно все понятно. А вот подумать о типизации объектов полезно. А именно, ввести два типа: сущность и событие (участниками которого являются сущности). См. мое объяснение откуда у экземпляра объекта на самом деле могли бы появляться значения характеристик:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36538101
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
LSVIvan DurakCerber-88,
А еще в чужой базе без связей разобраться труднова-то.....И особенно сложно разобраться, когда связей(констрайнтов) нет. Пример - практически любая КИС или ERP.

"Практически любые КИС или ERP" без связей - это не КИС и не ERP. Они создаются с одной целью - борьба с безработицей среди программистов:)
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36538609
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредПосмотрите, по-внимательнее, на дом, в котором Вы живете. Неужели Вы являетесь его свойством???:)А теперь посмотрите на себя. Неужели Вашим свойством является дом???:)
Это и есть обоснование ?
Все зависит от выбранной модели. Если отдельные дома являются объектами (как в ПИБ), то ссылки на них будут св-вами объектов Граждане, Организации и пр.
Бред
В действительности, со связями уже давно все понятно.
Видимо не для всех и не до конца.
Бред
А вот подумать о типизации объектов полезно. А именно, ввести два типа: сущность и событие
Это всего лишь условность, полезная при проектировании систем определенного класса, например учетных. Давно и широко используется.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36540779
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредПосмотрите, по-внимательнее, на дом, в котором Вы живете. Неужели Вы являетесь его свойством???:)А теперь посмотрите на себя. Неужели Вашим свойством является дом???:)
Это и есть обоснование ?
Все зависит от выбранной модели. Если отдельные дома являются объектами (как в ПИБ), то ссылки на них будут св-вами объектов Граждане, Организации и пр.
Бред
В действительности, со связями уже давно все понятно.
Видимо не для всех и не до конца.
Бред
А вот подумать о типизации объектов полезно. А именно, ввести два типа: сущность и событие
Это всего лишь условность, полезная при проектировании систем определенного класса, например учетных. Давно и широко используется.

1) Вчитайтесь в Ваше обоснование после игнорирования простого (физического:)) взгляда на дом: "Если отдельные [а какие же еще?] дома являются объектами [пока нормально, но только экземплярами объекта Дом, но это, в данном контексте, не принципиально - пусть объектами класса Дом], то ссылки на них будут свойствами Граждан" ??? Для Вас это так, потому что Вы ВЫБРАЛИ модель (ООП) безо всякого обоснования! У Вас просто НЕТ ВЫБОРА: что в РМД, что в ОРМД, что в ООП Вы просто ВЫНУЖДЕНЫ считать Дом Вашим свойством. Игнорируя действительность, и не получая при этом ничего, кроме головной боли, по сравнению с обычной объектной моделью Гражданин - Проживает в - Дом. Что и есть на самом деле:) Гражданин действительно проживает в доме:)
2) Да, конечно, не для всех и не до конца. Я только про себя:)
3) А здесь ("давно и широко") Вы не про модели данных говорите. А о том, что приходится делать вопреки. Так что на том уровне, который мы обсуждаем, пока никак и нигде не используется. И не известно когда будет использоваться.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36541464
_мод
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
БредДля Вас это так, потому что Вы ВЫБРАЛИ модель (ООП) безо всякого обоснования!

А это всегда так - выбирается модель, отвечающая задаче. Никакого обоснования не требуется.
В одной модели дом - это объект (экзепляр класса) и на него есть ссылки, а в другой модели такого объекта просто нет, а есть номер дома в поле адрес. Все зависит от выбора проектировщика (а выбор всегда есть).
БредТак что на том уровне, который мы обсуждаем, пока никак и нигде не используется. И не известно когда будет использоваться.
Ну я использую, и давно.
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #36542794
Бред
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
_модБредДля Вас это так, потому что Вы ВЫБРАЛИ модель (ООП) безо всякого обоснования!

А это всегда так - выбирается модель, отвечающая задаче. Никакого обоснования не требуется.
В одной модели дом - это объект (экзепляр класса) и на него есть ссылки, а в другой модели такого объекта просто нет, а есть номер дома в поле адрес. Все зависит от выбора проектировщика (а выбор всегда есть).
БредТак что на том уровне, который мы обсуждаем, пока никак и нигде не используется. И не известно когда будет использоваться.
Ну я использую, и давно.

Что-то Вы совсем ушли куда-то:) Какой еще "номер дома в поле адрес"??? В "нашей задаче" дом - это объект, конечно же. И использование ссылок - очень плохая, устаревшая технология:) Которую Вы применяете, не имея, насколько я понимаю, никакого выбора:)

Нет не используете:) У Вас просто нет такой СУБД и такой МД. Вы вынуждены все реализовывать на уровне приложения. Но это, конечно, гипотеза. Основанная на Ваших сообщениях. Из которых следует, что у Вас дом является Вашим свойством:)

Короче говоря, будем считать, что автор темы немного ошибся. Наверное, хотел спросить "Зачем нужны ссылки?". Или даже "Зачем нужны внешний ключи":) То есть, чисто образовательная тема.

Скатываемся в убогое состояние по следующей логической цепочке:
Зачем связи, вполне можно обойтись ссылками.
Зачем ссылки, вполне можно обойтись внешними ключами.
Зачем внешние ключи, вполне можно слепить чего-нибудь на уровне приложения (как в "передовых" КИС и ERP)

Все, значит, хорошо. Ну и ладненько:)
...
Рейтинг: 0 / 0
Период между сообщениями больше года.
Зачем нужны связи?
    #39562086
NBjHCBrc6KlSObm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Для чего может быть нужна связь между запросом и таблицей ?
...
Рейтинг: 0 / 0
Зачем нужны связи?
    #39562602
Фотография Alex_496
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Cerber-88,

в Москве связи - это самое главное
...
Рейтинг: 0 / 0
72 сообщений из 72, показаны все 3 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Зачем нужны связи?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]