powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Донормализовывался - караул!!! )
11 сообщений из 111, страница 5 из 5
Донормализовывался - караул!!! )
    #35724968
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sinix.

Про "нетривиальность" связи. Скажите, а ОО(Р)СУБД как-то иначе реализуют такие проверки? Уличная магия, да? :)

Для нашего случая там есть понятие подтипа. Положим есть абстрактный супертип A (лицо), и два его прямых подтипа B (физлицо) и C (юрлицо). Объект одновременно не может быть двух типов B (физлицо) и C (юрлицо). За этим следит ОРСУБД.

SinixСкажите, а как вы отслеживаете корректность данных? Своя логика в каждом запросе?

А как иначе? Приложение получает на вход какие то данные, проверяет их целостность, обрабатывает и сохраняет в БД целостные данные, которые естественно проходят все проверки. Выходит проверки на уровне СУБД избыточны, это не более чем assert.

А по вашему, выходит. Приложение получает на вход какие то данные, обрабатывает (может быть падает или порождает неопределённый результат) и пытается сохранить в БД. Если у СУБД хватит ума проверить данные, то поднимется исключение, а обработка данных просто пройдёт впустую, если ума не хватит (в БД практически невозможно описать все инварианты системы, и тем более постусловия операций), или неопределённый результат случайно пройдёт проверку, то в БД поимеем кривые данные.

SinixЧто будет, если всего в одном запросе будет допущена ошибка в проверке ограничений?

Зачем глупые вопросы задавать? Как и при любой ошибке в программе - некорректный результат. Но не факт, что даже самые хитрые ограничения целостности БД поймают эту ошибку. Так что сосредоточтесь на разработке правильных транзакций.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35725161
vbgd
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SinixПо порядку.

2 vbgd:
1) ранняя оптимизация зло.
2) изменение структуры данных ради оптимизации зло


1 Я не говорил РАННЯЯ оптимизация.
2 Зло - понятие субъективное. А еще есть обычные часы.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35726948
Sinix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Для отдельных товарищей:

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

Нельзя запрос называть транзакцией. Во-первых вводите собеседника в заблуждение, во-вторых показываете отсутствие фундаментальных знаний. // последнее, пожалуйста, не воспринимайте на свой личный счёт, ладно? :)

2 expla
expla
Для нашего случая там есть понятие подтипа. Положим есть абстрактный супертип A (лицо), и два его прямых подтипа B (физлицо) и C (юрлицо). Объект одновременно не может быть двух типов B (физлицо) и C (юрлицо). За этим следит ОРСУБД.


Проверка наследования всё равно ведь будет. И я сомневаюсь, что она может быть реализована более эффективно, чем поиск по индексу.

expla
А как иначе? Приложение получает на вход какие то данные, проверяет их целостность, обрабатывает и сохраняет в БД целостные данные, которые естественно проходят все проверки. Выходит проверки на уровне СУБД избыточны, это не более чем assert.

А по вашему, выходит. Приложение получает на вход какие то данные, обрабатывает (может быть падает или порождает неопределённый результат) и пытается сохранить в БД. Если у СУБД хватит ума проверить данные, то поднимется исключение, а обработка данных просто пройдёт впустую, если ума не хватит (в БД практически невозможно описать все инварианты системы, и тем более постусловия операций), или неопределённый результат случайно пройдёт проверку, то в БД поимеем кривые данные.


Ребят, понимаете в чём дело. Ваша самая-самая распрекрасная система гроша ломанного не стоит без данных. Потому защищать эти данные надо очень-очень хорошо, в том числе и от ошибок в коде. При всех недостатках органичений СУБД, без них надёжной системы не будет. Потому что их вы никак не обойдёте. Потому что вы можете гарантировать, что эти проверки будут соблюдаться для каждого запроса. Если у вас не универсальных ограничений, вы можете только надеяться, что проверки будут осуществляться во всех запросах, и что никто не забудет их в будущем.
Естественно, ограничения не должны быть единственным средством обеспечения надёжности. Но без них реально тяжко.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35728152
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SinixДля отдельных товарищей:

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



Для особо одарённых...

1. Транзакция это не фича, а последовательность действий/запросов отвечающая требованиям ACID (есть ещё куча определений, в том числе и ваше, которые говорят о том же другими словами). Что бы не плодить понятия, транзакцией можно называть как формальный алгоритм (design time), если угодно "класс транзакций", так и фактическое действие (run time). Как правило из контекста понятно, о чём идёт речь.

2. Фича, это способность СУБД выполнять запросы транзакционно. Транзакционность действий ещё не гарантирует выполнение ACID. Неправильный уровень изоляции, кривой запрос или commit не на своём месте запросто могут поломать свойства ACID.

Sinix
Нельзя запрос называть транзакцией. Во-первых вводите собеседника в заблуждение, во-вторых показываете отсутствие фундаментальных знаний. // последнее, пожалуйста, не воспринимайте на свой личный счёт, ладно? :)


Ну так не называй транзакцию запросом. Тебя за язык никто не тянет.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35728192
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
SinixПри всех недостатках органичений СУБД, без них надёжной системы не будет.

Ерунда. Абсолютно надёжных систем вообще не существует и не может сущетствовать. Достаточно надёжные системы, некоторые из них эксплуатируются до сих пор, создавались ещё до появления поддержки проверки ограничений целостности на уровне СУБД, до возникновения СУБД как класса ПО, и даже до возникновения ЭВМ.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35728201
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Sinix
expla
Для нашего случая там есть понятие подтипа. Положим есть абстрактный супертип A (лицо), и два его прямых подтипа B (физлицо) и C (юрлицо). Объект одновременно не может быть двух типов B (физлицо) и C (юрлицо). За этим следит ОРСУБД.


Проверка наследования всё равно ведь будет. И я сомневаюсь, что она может быть реализована более эффективно, чем поиск по индексу.



Не сомневайся, потому что и без проверки можно обойтись. Точнее проверку можно выполнить ещё на этапе компиляции запроса, проконтролировать типы и т.п.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35744494
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp ... SexID ...

Посмеялся отдуши. Спасибо.
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35744501
Фотография iscrafm
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
expla Так что сосредоточтесь на разработке правильных транзакций.
+1
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35744508
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа Игорьsp ... SexID ...

Посмеялся отдуши. Спасибо.

Вдогонку.

Таблица Sex будет иметь ровно четыре записи со значениями:

"Ме", "Жо", "Ме и Жо", "Ни Ме, ни Жо".
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35748676
sp
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Папа ИгорьПапа Игорьsp ... SexID ...

Посмеялся отдуши. Спасибо.

Вдогонку.

Таблица Sex будет иметь ровно четыре записи со значениями:

"Ме", "Жо", "Ме и Жо", "Ни Ме, ни Жо".

ага, а еще смешнее когда для них еще хотят хранить варианты для других языков!!!! оборжацца!!!!
вы их тоже в уме держать будуту или программерам клиенцкой части будете в нужных местах подсказывать!!!??? ))))
...
Рейтинг: 0 / 0
Донормализовывался - караул!!! )
    #35749239
Фотография Папа Игорь
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
sp...ага, а еще смешнее когда для них еще хотят хранить варианты для других языков!!!! оборжацца!!!!
вы их тоже в уме держать будуту или программерам клиенцкой части будете в нужных местах подсказывать!!!??? ))))

Здравствуйте!

Выражаю сомнение в том, что Ваш проект выйдет за пределы родного государства.

Судя по старту.

В любом случае - успехов! (без иронии)
...
Рейтинг: 0 / 0
11 сообщений из 111, страница 5 из 5
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Донормализовывался - караул!!! )
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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