|
|
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Всем привет! На новой работе выяснилось что база данных (отнюдь не маленькая как по кол-ву объектов, так и по объемам) построена без PK, FK, все поля NULL. Т.е. перв. ключи есть, но не у всех таблиц и они не заданы декларативно. Есть уникальные индексы на эти поля. ФК тоже присутствуют по факту, но также декларативно не заданы. Все поля нуловские. Ограничений на конкретные столбцы нет. Часто денормализация. Я всегда приводил к 3НФ (без фанатизма), создавал суррогатные ПК (даже у тех таблиц, которым они сейчас казалось бы и не нужны), всегда использовал ссылочную целостность. Всегда старался создавать NOT NULL поля, чтобы избегать постоянных IS NOT NULL/ISNUL()... Кратко - я опирался на эти ограничения и на их основе строил ПО. Здесь ничего этого нет, правда, и задачи здесь сильно отличаются от моих прежних. И самое главное -- все работает уже не один год. И это аргумент неопровержимый. Вот и сталкивается мой успешный опыт с местным успешным опытом :-) Собственно в этой теме я не хочу устраивать спор -- как правильно. Очевидно, что можно построить надежную систему и без единого constraint'а. Мне интересно на сколько часто встречаются системы построенные на таких принципах? Отказались ли от них в силу неудобств или разработка так и продолжается? Какого типа задачи решались (у нас в основном массированная закачка из других систем и аналитика)? Были эти системы централизованные или распределенные (имеются в виду серверная часть)? И дает ли это ощутимый выигрыш в производительности (за счет отсутствия проверок ссылочной целостности)? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 11:49 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
в исторической БД сложно иметь PK и FK. а для аналитических приложений ограничения скорее вредны, ведь данные на входе могут быть некачественные. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 11:59 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
explaв исторической БД сложно иметь PK и FK. а для аналитических приложений ограничения скорее вредны, ведь данные на входе могут быть некачественные.о-о ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 12:12 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
mysql с движком MyISAM просто не поддерживает ссылочную целостность, а эта БД достаточно распространена авторНа новой работе выяснилось что база данных (отнюдь не маленькая как по кол-ву объектов, так и по объемам) построена без PK, FK, все поля NULL.может быть они её портировали с mysql без изменений ? :) -- „Истина — это вовсе не то, что можно убедительно доказать, это то, что делает всё проще и понятнее“ — Антуан де Сент-Экзюпери ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 12:13 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Серж пишет: > Мне интересно на сколько часто встречаются системы построенные на таких > принципах? т.е. насколько часто встречаются безграмотно разработанные системы ? Ну, на столько же, насколько часто встречаются безграмотные люди. Бывает. > Отказались ли от них в силу неудобств или разработка так и продолжается? вы можете постепенно добавлять первичные ключи и FK, они ничему не помешают, если данные реально в порядке. PK можно делать из одного из UK, собственно разницы между ними особенно и нет. > Какого типа задачи решались (у нас в основном массированная закачка из > других систем и аналитика)? Это абсолютно неважно, какие задачи решаются. > Были эти системы централизованные или распределенные (имеются в виду > серверная часть)? Тоже неважно. > И дает ли это ощутимый выигрыш в производительности (за счет отсутствия > проверок ссылочной целостности)? Иногда FK не применяют именно из-за невозможности их применения в силу низкой производительности. Но если на FK в дочерней таблице строить индекс, то всё в общем-то в порядке. Ощутимого выигрыша в производительности там в этом случае не будет. А вот если индекса нет, будет серьёзный провал в производительности, в случае наличия FK. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 12:23 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
так ключи все-таки есть? и если без фанатизма и все работает, то ...? паря, строй новые системы как умеешь и не лезь туда, где все отлажено. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 12:26 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
> база данных (отнюдь не маленькая как по кол-ву объектов, так и по объемам) построена без PK, FK Дебилов в этом мире вообще сильно больше, чем нормальных людей. > И самое главное -- все работает уже не один год. И это аргумент неопровержимый. Конечно. И будет работать до первой серьезной проблемы. А потом аргументы уже не понадобятся. Понадобится мыло и веревка. > Очевидно, что можно построить надежную систему и без единого constraint'а. Принципиально невозможно спроектировать ничего сложнее записной книжки без ограничений целостности. Рассматривайте это как факт, без обсуждения. Плохо спроектированные базы данных - это мертвые базы данных. Ноль дополнительного функционала, ноль расширения. Потому как дебила, который это изначально написал, уже не найти. А если и найти, то он наверняка уже поумнел и ему самому будет страшно заниматься редизайном. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 12:55 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
guest_20040621, ты как считаешь, успешный опыт обуреваем жаждой столкнуться с проблемами? Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 14:23 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
guest_20040621 пишет: > Принципиально невозможно спроектировать ничего сложнее записной книжки > без ограничений целостности. Рассматривайте это как факт, без обсуждения. > Да нет, к сожалению возможно. > Плохо спроектированные базы данных - это мертвые базы данных. Ноль > дополнительного функционала, ноль расширения. Потому как дебила, который > это изначально написал, уже не найти. А если и найти, то он наверняка Я бы сравнивал их с "зомби": шевелятся, делают вид, что работают ... но дохлые. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 14:44 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Серж1. Мне интересно на сколько часто встречаются системы построенные на таких принципах? 2. Отказались ли от них в силу неудобств или разработка так и продолжается? 3. Какого типа задачи решались (у нас в основном массированная закачка из других систем и аналитика)? 4. Были эти системы централизованные или распределенные (имеются в виду серверная часть)? 5. И дает ли это ощутимый выигрыш в производительности (за счет отсутствия проверок ссылочной целостности)? Говоря за свою... 1. Несколько сотен инсталляций. 2. Нет конечно. Ведь всё работает. 3. OLTP. 4. БД централизованная. Но система взаимодействует с кучей внешних систем (дилеры, приём платежей). 5. Скорее нет, всё равно какие то проверки приходится делать, но менее эффективными способами. Другое дело, когда исходные данные уже проверены. NOT NULL мы конечно используем. Для реальных данных сложно вводить какие либо ограничения. Рано или поздно в силу изменений в бизнесе или от бардака находятся такие сведения, которые не проходят проверку. В лучшем случае производится разбирательство и исправление, в худшем, в систему вводятся фальсифицированные сведения (лишь бы съела). В такой ситуации хуже всего удалять ограничения целостности, поскольку разработчики (чтобы упростить себе жизнь) уже могли завязать на них свой код. В общем, я постепено прихожу к мнению, что использовать системные механизмы СУБД (такие как декларативные ограничения целостности, транзакции) нужно для реализации системных механизмов приложения (например для реализации элементарных изменений объекта, или для поддержки пользовательских типов данных), где правила диктует не бизнес а разработчик. Бизнес транзакции, проверки бизнес правил должны стать заботой приложений, которые изменять гораздо легче, чем БД с большой историей. Программировать приложения для таких БД сложнее, однако и возможностей для конфигурирования и модификации системы становится значительно больше. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 14:50 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Valentin Kotelnitski guest_20040621, ты как считаешь, успешный опыт обуреваем жаждой столкнуться с проблемами? Голословные утверждения. Лично я не слышал, чтобы какой нибудь программист повесился из-за своей ошибки. Ограничения целостности это палка о двух концах. С одной стороны они повышают качество данных, с другой, они могут мешать приложениям выполнять свои функции. В частности ошибочно введённые ограничения, это такая же проблема, как кривые данные. Отличаются только подходы к исправлению ситуации. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 15:04 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
mcureenabЛично я не слышал, чтобы какой нибудь программист повесился из-за своей ошибки. я вот тоже не стреляюсь о топикстартере: я так понял, что парень рвется в бой, но ему, чем самому что-то сваять, видимо проще раскритиковать чью-то систему Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 15:15 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Valentin Kotelnitski, да не он первый. Я поначалу тоже думал, что ограничения целостности это сплошное благо. Но когда создал такое ограничение, которое по ходу ещё и не позволяло удалять записи усомнился. :) Много гемора было с тестированием, потому как приходилось генерить только исключительно правильные данные и применять их правильными транзакциями. Потом, так же как автор, столкнулся с системой, где тоже на мой взгляд было много неправильного, но система работала и работает и работать будет. Постепенно вник в тему и всё встало на свои места. Все эти штучки, как болты и заклёпки. Сборка на болтах ремонтопригодна, но ненадёжна, на заклёпках надёжнее, но разбирать сложно, а монокок это вообще верх функционального совершенства, но если он ломается, то ремонту не подлежит и модернизировать его нельзя. Коммерческий успех системы зависит не от количества ограничений целостности в БД, а от того, насколько грамотно они применяются или не применяются в тех или иных ситуациях. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 15:36 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Помню, как был озадачен мой ПМ,когда не обнаружил FK в БД MS Projects.Долго приставал с вопросами ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.12.2008, 18:19 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
MasterZivбезграмотно разработанные системы... зачислить в разряд "безграмотных" это легко. Мне интересно понять, вдруг там сокрыт какой-то глубокий смысл, а я его не замечаю :) MasterZivвы можете постепенно добавлять первичные ключи и FKСейчас это уже невозможно. Кода столько, что никто не сможет поручиться, что произойдет при добавлении ФК. guest_20040621Принципиально невозможно спроектировать ничего сложнее записной книжки без ограничений целостностиИменно так всегда и считал. Но используют же люди MySQL, а там (как подсказывает Ёш) этого механизма может и не быть. Valentin Kotelnitskiстрой новые системы как умеешь и не лезь туда, где все отлажено. ... я так понял, что парень рвется в бой, но ему, чем самому что-то сваять, видимо проще раскритиковать чью-то систему Валентин, в твоих поучениях и домыслах я не нуждаюсь. Это первое. Второе, вопросы я задал конкретные к тем, у кого опыт есть. Если есть что сказать по существу - велкам. Если нет, лучше научите своих подчиненных чему-нибудь полезному. Ёш, нет, на сколько я знаю, MySQL там не водился :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 14.12.2008, 18:50 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Серж пишет: > ... зачислить в разряд "безграмотных" это легко. Мне интересно понять, > вдруг там сокрыт какой-то глубокий смысл, а я его не замечаю :) Вы же сами сказали, что во многих таблицах есть UNIQUE. почему бы один из них не сделать PK ? Какая разница-то ? Но вот не сделали. Почему ? Либо не знали, что PK обязательно должен быть, либо > Сейчас это уже невозможно. Кода столько, что никто не сможет поручиться, > что произойдет при добавлении ФК. Ну так не добавляйте FK пока, добавляйте PK. Да и FK можно в любой момент дропнуть ежели что. > Именно так всегда и считал. Но используют же люди MySQL, а там (как > подсказывает Ёш) этого механизма может и не быть. Он там есть в InnoDB. Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 01:02 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Сергвопросы я задал конкретные вопросы ты задал собирательно-обобщающие Posted via ActualForum NNTP Server 1.4 ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 08:11 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
guest_20040621> Очевидно, что можно построить надежную систему и без единого constraint'а. Принципиально невозможно спроектировать ничего сложнее записной книжки без ограничений целостности. Рассматривайте это как факт, без обсуждения. А кто сказал, что проектировали без PK, FK и др.? Вполне возможно, что проектировали - "по уму", а потом занялись тюнингом производительности и пожалуйста, снесли констрейнты. Особенно, если констрейнты по факту реализованы на клиенте или в процедурах модификации данных, то зачем их дублировать штатными средствами БД? Только для тормозов, потому что фактически они проверяют всегда корректные данные. Многие, прочитав мною написанное, сразу начнут говорить про развитие системы, подключение внешних клиентов и т.д. и т.п.... Да, знаю! А может разработчик не хочет облегчать жизнь других разработчиков/админов?! Нужно развитие - "велком снова ко мне" :) Такая ситуация на самом деле не редка. Оракл апликешн, например, содержит крайне мало констрейнтов. Почти нет FK. Считаете, что оракл не умеет проектировать системы? Или Oracle E-Buissines Suite не сложнее записной книжки??? Я не призываю ни к чему, просто некая констатация некоторых фактов ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 09:33 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
guest_20040621, ну да, ну да... А если посмотреть на FoxPro + Btrieve разработчиков банковских информационных систем середины 90х прошлого века, то все сплошь дебилы... Короче, не надо ля-ля на счёт записных книжек. Плохому танцору FK не поможет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 14:08 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Серж Здесь ничего этого нет, правда, и задачи здесь сильно отличаются от моих прежних. И самое главное -- все работает уже не один год. И это аргумент неопровержимый. Раньше в провинции всякие там ораклы стали диковинкой с приходом всяких там роботронов и атишек. Но были такие ынтересные вещи как борланд дельфи с локалскл, которые работали с табличками, которые были созданы на всяких там клипперах. Щоб не отставать народ переписывал с клипперов на эти локалскли всякие там бухгалтерии и торговли не трогая таблички (параллельно раотали старые и новын машинки, досы с виндовсами и ос/2 вкупе с новелями). Пашут лет 20. Это точно. БАЛАНС ТОЧНО ТАКОЙ ЖЕ КАК И у других джав и нетов с их субдшками с их констрейнтами на СЕРВЕРНОЙ стороне. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 16:52 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
> ну да, ну да... В середине девяностых была куча технологий, пригодных для промышленного применения. И ни одна из них не называлась FoxPro. > то все сплошь дебилы... Не обязательно. Есть люди, так и оставшиеся в середине девяностых. Если им там нравится - отлично. Только при этом делиться мыслями из середины девяностых нужно очень аккуратно и тщательно выбирая аудиторию из подобных себе. Чтобы нормальные люди это не видели и не слышали. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 17:03 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
guest_20040621> ну да, ну да... В середине девяностых была куча технологий, пригодных для промышленного применения. И ни одна из них не называлась FoxPro. Была. Где то там... А где то здесь народ покупал или тырил FoxPro, NetWare, ещё хрен знает что, и за скромное вознаграждение решал промышленные задачи подручными средствами. Конечно, в XXI веке задачи стали значительно сложнее тех, что решались в XXм, однако и в XX народ не куличики лепил и вполне успешно. И проблема 2000 года оказалась не смертельной. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 17:55 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
Коллеги, чего мучаетесь? :И самое главное -- все работает уже не один год. И это аргумент неопровержимый. Кругом ещё полно систем ждущих Вашего "мудрого" решения. Прелесть то в том и заключается что всё что однажды сделано "неправильно" - потенциально хороший кусок работы для Вас и Ваших детей. Вдумайтесь - почему Американцы НИЧЕГО не строят НАВЕКА - фундаментально? Да всё очень просто - мы думаем о наших ПОТОМКАХ - мы знаем что надо и им оставить нечто чтоб построить (или отремонтировать). Так ЗАЧЕМ отсраивать фундаментальные вещи если максимум через 10-15 лет (по айтишным меркам) камня на камне не останется от сегодняшних технологии, бизнеса, заклёпок, болтов и так далее. IBM на сегодня почти Мумия. Оракл и Мелкомягкий с CA в купе - седовласые реликты, а всего то им по 25 лет отроду. Вот помню DEC был с Алфой процессором и технологиями так и не пробравшимися в ХХ век... вот дети наши покапаются в исторических справках и разбомбенят всю теорию реляционной базы. Сведут всё в формат объектно-ориентированных баз и кому тогда вообще все ключи нужны будут... так что как сказал бы мой любимый герой Остап Ибрагимович - расслабьтесь и получайте удовольствие. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 18:19 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
авторВдумайтесь - почему Американцы НИЧЕГО не строят НАВЕКА - фундаментально? Да, ладно уж.Вы американцы-просто жадины,ваши дети с Кобола переписывать будут,если мы не все к тому времени успеем ;-) Из этой серии понравилась история.В Англии был сильный ураган и повалило все столбы электропередач, кроме одной компании, где проектировщик был из России.Англичане посчитали, что такие страсти бывают раз в 115 лет и экономически невыгодно делать такие опоры на случай ядерной войны.Парня уволили, а нас медальку дали бы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 20:17 |
|
||
|
Отсутствие PK, FK....
|
|||
|---|---|---|---|
|
#18+
SeVaВы американцы-просто жадины не так всё просто, Коллега. как ни странно на островах где по многу раз в год бушуют ураганы выживают в основном лёгкие и разборные домишки. А вот "фундаментальные" постройки никогда не бывают доведены до разумной кондиции. В Америку в начале XX века тогдашние "Новые Американские" понавозили зАмков из Вечного города Рима. на разборку и перевозку таких домов выделялись миллионы долларов и годы работы. Эти зАмки не выдержали конкуренции с природой. А вот разборные домишки разрушаются за часы и выстраиваются за дни - и пожалуйста живи опять... А вы говорите "Жадность". Разумная осторожность будет более подходящим термином на мой взгляд. Или вот - Лучшее Враг Хорошего.. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 15.12.2008, 20:51 |
|
||
|
|

start [/forum/topic.php?fid=32&msg=35710615&tid=1543491]: |
0ms |
get settings: |
7ms |
get forum list: |
10ms |
check forum access: |
3ms |
check topic access: |
3ms |
track hit: |
179ms |
get topic data: |
12ms |
get forum data: |
3ms |
get page messages: |
57ms |
get tp. blocked users: |
1ms |
| others: | 208ms |
| total: | 483ms |

| 0 / 0 |
