|
|
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Sinix. Про "нетривиальность" связи. Скажите, а ОО(Р)СУБД как-то иначе реализуют такие проверки? Уличная магия, да? :) Для нашего случая там есть понятие подтипа. Положим есть абстрактный супертип A (лицо), и два его прямых подтипа B (физлицо) и C (юрлицо). Объект одновременно не может быть двух типов B (физлицо) и C (юрлицо). За этим следит ОРСУБД. SinixСкажите, а как вы отслеживаете корректность данных? Своя логика в каждом запросе? А как иначе? Приложение получает на вход какие то данные, проверяет их целостность, обрабатывает и сохраняет в БД целостные данные, которые естественно проходят все проверки. Выходит проверки на уровне СУБД избыточны, это не более чем assert. А по вашему, выходит. Приложение получает на вход какие то данные, обрабатывает (может быть падает или порождает неопределённый результат) и пытается сохранить в БД. Если у СУБД хватит ума проверить данные, то поднимется исключение, а обработка данных просто пройдёт впустую, если ума не хватит (в БД практически невозможно описать все инварианты системы, и тем более постусловия операций), или неопределённый результат случайно пройдёт проверку, то в БД поимеем кривые данные. SinixЧто будет, если всего в одном запросе будет допущена ошибка в проверке ограничений? Зачем глупые вопросы задавать? Как и при любой ошибке в программе - некорректный результат. Но не факт, что даже самые хитрые ограничения целостности БД поймают эту ошибку. Так что сосредоточтесь на разработке правильных транзакций. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 15:44:38 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
SinixПо порядку. 2 vbgd: 1) ранняя оптимизация зло. 2) изменение структуры данных ради оптимизации зло 1 Я не говорил РАННЯЯ оптимизация. 2 Зло - понятие субъективное. А еще есть обычные часы. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 19.12.2008, 16:40:07 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Для отдельных товарищей: Вы знаете, если мы даже в терминологии не можем договориться... Давайте некорректную аналогию - запрос - программа, транзакция - одна из фич рантайма, допустим сбор мусора. Нельзя запрос называть транзакцией. Во-первых вводите собеседника в заблуждение, во-вторых показываете отсутствие фундаментальных знаний. // последнее, пожалуйста, не воспринимайте на свой личный счёт, ладно? :) 2 expla expla Для нашего случая там есть понятие подтипа. Положим есть абстрактный супертип A (лицо), и два его прямых подтипа B (физлицо) и C (юрлицо). Объект одновременно не может быть двух типов B (физлицо) и C (юрлицо). За этим следит ОРСУБД. Проверка наследования всё равно ведь будет. И я сомневаюсь, что она может быть реализована более эффективно, чем поиск по индексу. expla А как иначе? Приложение получает на вход какие то данные, проверяет их целостность, обрабатывает и сохраняет в БД целостные данные, которые естественно проходят все проверки. Выходит проверки на уровне СУБД избыточны, это не более чем assert. А по вашему, выходит. Приложение получает на вход какие то данные, обрабатывает (может быть падает или порождает неопределённый результат) и пытается сохранить в БД. Если у СУБД хватит ума проверить данные, то поднимется исключение, а обработка данных просто пройдёт впустую, если ума не хватит (в БД практически невозможно описать все инварианты системы, и тем более постусловия операций), или неопределённый результат случайно пройдёт проверку, то в БД поимеем кривые данные. Ребят, понимаете в чём дело. Ваша самая-самая распрекрасная система гроша ломанного не стоит без данных. Потому защищать эти данные надо очень-очень хорошо, в том числе и от ошибок в коде. При всех недостатках органичений СУБД, без них надёжной системы не будет. Потому что их вы никак не обойдёте. Потому что вы можете гарантировать, что эти проверки будут соблюдаться для каждого запроса. Если у вас не универсальных ограничений, вы можете только надеяться, что проверки будут осуществляться во всех запросах, и что никто не забудет их в будущем. Естественно, ограничения не должны быть единственным средством обеспечения надёжности. Но без них реально тяжко. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 04:38:03 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
SinixДля отдельных товарищей: Вы знаете, если мы даже в терминологии не можем договориться... Давайте некорректную аналогию - запрос - программа, транзакция - одна из фич рантайма, допустим сбор мусора. Для особо одарённых... 1. Транзакция это не фича, а последовательность действий/запросов отвечающая требованиям ACID (есть ещё куча определений, в том числе и ваше, которые говорят о том же другими словами). Что бы не плодить понятия, транзакцией можно называть как формальный алгоритм (design time), если угодно "класс транзакций", так и фактическое действие (run time). Как правило из контекста понятно, о чём идёт речь. 2. Фича, это способность СУБД выполнять запросы транзакционно. Транзакционность действий ещё не гарантирует выполнение ACID. Неправильный уровень изоляции, кривой запрос или commit не на своём месте запросто могут поломать свойства ACID. Sinix Нельзя запрос называть транзакцией. Во-первых вводите собеседника в заблуждение, во-вторых показываете отсутствие фундаментальных знаний. // последнее, пожалуйста, не воспринимайте на свой личный счёт, ладно? :) Ну так не называй транзакцию запросом. Тебя за язык никто не тянет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 15:47:07 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
SinixПри всех недостатках органичений СУБД, без них надёжной системы не будет. Ерунда. Абсолютно надёжных систем вообще не существует и не может сущетствовать. Достаточно надёжные системы, некоторые из них эксплуатируются до сих пор, создавались ещё до появления поддержки проверки ограничений целостности на уровне СУБД, до возникновения СУБД как класса ПО, и даже до возникновения ЭВМ. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 15:58:12 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Sinix expla Для нашего случая там есть понятие подтипа. Положим есть абстрактный супертип A (лицо), и два его прямых подтипа B (физлицо) и C (юрлицо). Объект одновременно не может быть двух типов B (физлицо) и C (юрлицо). За этим следит ОРСУБД. Проверка наследования всё равно ведь будет. И я сомневаюсь, что она может быть реализована более эффективно, чем поиск по индексу. Не сомневайся, потому что и без проверки можно обойтись. Точнее проверку можно выполнить ещё на этапе компиляции запроса, проконтролировать типы и т.п. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 22.12.2008, 16:02:51 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
sp ... SexID ... Посмеялся отдуши. Спасибо. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2009, 03:14:49 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
expla Так что сосредоточтесь на разработке правильных транзакций. +1 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2009, 04:30:11 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Папа Игорьsp ... SexID ... Посмеялся отдуши. Спасибо. Вдогонку. Таблица Sex будет иметь ровно четыре записи со значениями: "Ме", "Жо", "Ме и Жо", "Ни Ме, ни Жо". ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 05.01.2009, 05:51:04 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
Папа ИгорьПапа Игорьsp ... SexID ... Посмеялся отдуши. Спасибо. Вдогонку. Таблица Sex будет иметь ровно четыре записи со значениями: "Ме", "Жо", "Ме и Жо", "Ни Ме, ни Жо". ага, а еще смешнее когда для них еще хотят хранить варианты для других языков!!!! оборжацца!!!! вы их тоже в уме держать будуту или программерам клиенцкой части будете в нужных местах подсказывать!!!??? )))) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2009, 14:25:38 |
|
||
|
Донормализовывался - караул!!! )
|
|||
|---|---|---|---|
|
#18+
sp...ага, а еще смешнее когда для них еще хотят хранить варианты для других языков!!!! оборжацца!!!! вы их тоже в уме держать будуту или программерам клиенцкой части будете в нужных местах подсказывать!!!??? )))) Здравствуйте! Выражаю сомнение в том, что Ваш проект выйдет за пределы родного государства. Судя по старту. В любом случае - успехов! (без иронии) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 09.01.2009, 21:28:14 |
|
||
|
|

start [/forum/topic.php?fid=32&gotonew=1&tid=1543490]: |
0ms |
get settings: |
8ms |
get forum list: |
9ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
151ms |
get topic data: |
6ms |
get first new msg: |
4ms |
get forum data: |
1ms |
get page messages: |
31ms |
get tp. blocked users: |
1ms |
| others: | 198ms |
| total: | 413ms |

| 0 / 0 |
