powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД - текущее состояние дел?
122 сообщений из 122, показаны все 5 страниц
Проектирование БД - текущее состояние дел?
    #38728472
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Всем привет.
Зарегался тут, чтобы поделиться мыслями и собрать опыт тех, кто длительное время проектируют и используют крупные/старые базы данных.

Я пришел к выводу, что классический/школьный подход к разработке БД а-ля "нормализуйте все, нафигачьте справочников, пишите сложные запросы, которые будут выгребать и обновлять данные" в современном мире не работает. Мне сложно сформулировать, так что я перечислю некоторые утверждения, которые мне кажутся правильными, а внизу сделаю выводы. Вышенаписанное применимо, разумеется, к базам общего назначения, где требуется относительно быстрая вставка и селекты. Аналитические базы оставим в стороне.

- В крупных БД с десятками миллионов записей явные FK не используются, а кол-во констрейнтов сильно ограничено, ибо индексы.
- Справочники меняются крайне редко, разве что создаются новые версии элементов или добавляются новые. Иначе у юзера отчет за прошлый год не будет совпадать с бумажной версией или что-то подобное.
- Большая часть запросов по базе - "запихай-ка мне в базу большой и сложный бизнес-объект", "прочитай его же", "выдай справочник или его часть", "сделай поиск по тому самому большому и сложному бизнес-объекту".
- логику выносят из базы во внешние приложения - база только исполняет запросы. Причина очевидна - ЦПУ не резиновое, а распределенные базы ентерпрайз класса сложны и жутко дороги.
- Датабазные джойны дороги. По моим старым замерам в mssql, запрос без джойнов работает примерно раза в 2 быстрее, чем запрос с одним джойном по ПК.

Теперь выводы.

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

Бизнес-объекты. Обычно представляют из себя в базе мессиво мелких табличек, призванных отобразить разнообразные вложенные коллекции. Это мессиво сложно использовать и непрактично извлекать - см. цену джойнов. Почему бы тогда не зафигачивать данные в одну таблицу json-ом или аналогичным форматом? Ответ на вопрос "а как тогда селекты делать" чуть ниже, а пока назову только одну причину - "без приложения эти данные сложно извлечь, т.к. они не описаны в схеме".

Что касается селектов или какого-то поиска. Селекты, где критично получить именно актуальные данные в транзакции - почти всегда примитивны и просты. Все остальное отлично покрывается внешними индексирующими приложениями вроде Apache Solr или Sphinx. В своей сфере они работают намного эффективнее СУБД.

Что получается в итоге? Таблицы состоят из небольшого набора полей плюс клоб с Json-ом. Справочники есть, но большинство справочников используется только для создания новых объектов (данные из справочника встраиваются в сам объект). Простые и важные селекты идут по тем немногоим полям, которые остались в таблице. Сложный поиск делается специализированным софтом, данные в которое импортируются в рантайме приложением, которое висит на этой базе (в тяжелый случаях - джобой). Аналитика и кубы - на отдельной базе, с отдельным олап-кубом или тупо импорт в qlikview или подобную штуку.

И, собственно, что хотелось бы услышать. Чем такая схема плоха? Для приложений? Для быстродействия или DBA? Для архитектуры системы в целом? Для управления данными в этой базе в долгосрочной перспективе?

И, разумеется, что не хотелось бы услышать :) "КГАМ", "читай маны", "всё бред"
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728481
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Большое количество таблиц призваны разнообразить жизнь разработчику на этапе проектирования и всем остальным, - долгие годы потом.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728489
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Поздравляю, Вы изобрели NoSQL.
Про недостатки NoSQL - можете спросить Гугл
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728491
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

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

В общем Кот конечно же прав. Я могу только сказать что все зависит от поставленных задач. Тут могут быть как одни так и другие решения, в т.ч. и смешанные. Из всего что вы нацарапали верно только следующее:
scfАналитика и кубы - на отдельной базе
хотя немного непонятно, ведь вначале вы сами четко сказали:
scfАналитические базы оставим в стороне.
так зачем говорить о том что вы оставляете в стороне?..

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

В моем посте довольно много вопросительных знаков. Если вы обладаете достаточным опытом, то, пожалуйста, поделитесь им. Не нужно придираться к ничего не значащим мелочам и давать общие советы по саморазвитию (а также ссылки на знаменитые мануалы по ораклу 2500 страниц каждый и стандарты ISO по data architecture)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728512
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf

Я пришел к выводу, что классический/школьный подход к разработке БД а-ля "нормализуйте...
Так уж и школьная? Вроде в институте читают, и не все эти самые нормальные формы осиливают. Там есть теория РБД. Теорий нет у других типов БД. Что относят к одному из недостатков этих других.

scf Чем такая схема плоха?

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

Ссылок я изначально недавал, т.к. прекрасно понимаю что читать мануалы человеку который уже сделал выводы - ну как минимум лень.
Что касается вопросов. Если есть вопросы то задавайте конкретно по СУБД, с описанием задачи и т.п. Вопросы риторического характера я игнорирую, т.к. незная применения нельзя дать мало мальски правильный совет.

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

Напрасно потратили время: это не мысли, это помои.

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

Ничего личного, на самом деле вы вполне в мейнстриме.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728630
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfИ, собственно, что хотелось бы услышать. Чем такая схема плоха? Для приложений? Для быстродействия или DBA? Для архитектуры системы в целом? Для управления данными в этой базе в долгосрочной перспективе?

И, разумеется, что не хотелось бы услышать :) "КГАМ", "читай маны", "всё бред"

Вы путает ООП и РМД.
В ООП все так как вы говорите.
А РМД немного другое.
Нельзя "как есть" сохранить объекты в РБД.
Т.к. в РМД структура данных не должна меняться часто (в идеале вообще неизменна)
В отличии от ООП. Здесь "изменчивость" это основная "фишка".
На стыке данных технологий происходит весь холивар.
РБД "заточены" на хранение данных ACID наше все.
ООП наоборот на "работу" с данными их изменение.
Там где важно накопление точных данных, там всегда РМД (в основном финансы)
Там где это не важно, а важно быстро изменить структуру данных, там обычно разные NoSQL решения.

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

Из пары десятков ваших концептуальных заблуждений прокомментирую 3, 7 и 15-ую (с).

К примеру вот это утверждение:
автор- В крупных БД с десятками миллионов записей явные FK не используются, а кол-во констрейнтов сильно ограничено, ибо индексы.
мягко сказать заблуждение. Оперировать приходилось и приходится с базами в миллиарды записей в таблицах, и отсутствие FK на них привело бы как минимум к несогласованности данных и проблемам по типу "какого хрена эта запись здесь делает, если нет родительской?".
"Висяки" (читай нарушение ссылочной целостности) в противном случае (т.е. при отсутствии констреинтов) - это отдельная головная боль, т.к. надо напрягать всех и вся от аналитиков до QA на тему "что будет, если мы их удалим? а как можно их удалить/откорректировать?".

Что вы подразумевали под частью "ибо индексы" - не совсем понятно. Ибо много места занимают индексы? Ибо индексы "задерживают" вставку в таблицу? Ибо индексы надо периодически обслуживать? Дык это все вопросы архитектуры и все зависит от архитектора в первую очередь - нужен тривиальный баланс, когда индексы пойдут во благо, а не во вред процессу...

Пойдем дальше:
автор- Справочники меняются крайне редко, разве что создаются новые версии элементов или добавляются новые. Иначе у юзера отчет за прошлый год не будет совпадать с бумажной версией или что-то подобное.
Совершенно не верное понимание справочника и структуры справочников. Если предполагается расширение справочника или изменение справочной информации и при этом отчетность за произвольный период, то любая сущность должна иметь характеристику - период актуальности. И тут уж без СУБД достаточно сложно организовать структуру и поиск справочной информации на конкретную дату.

На счет крайне редко меняются - ой ли... Возьмите, к примеру, справочник товаров любого ритейлера.
Или к примеру справочник терминалов/банкоматов Банка.

Конечно же есть статичный справочники по типу регионов страны/городов, но как показал последние события (присоединение Крыма) - и они не достаточно статичны...
авторпочему бы не встроить данные из справочника в сам объект,
Как бэ "школьная" нормализация - чуть выше вы же сами переживали за размер БД (или мне показалось).
Ну и смена наименования сущности справочника - опять же не настолько редкая ситуация. И апдейт при этом одной записи именно в справочнике или всех сущностей, где данная справочная инфа пользуется. Как по вашему, что "дешевле"?


автор- логику выносят из базы во внешние приложения - база только исполняет запросы. Причина очевидна - ЦПУ не резиновое, а распределенные базы ентерпрайз класса сложны и жутко дороги.
Таки да - базы ентерпрайза достаточно сложны. Вы думали ДБА просто так свой хлеб едят?
Опять же задача архитектора грамотно распределить зоны ответственности между СУБД и клиентской частью, задача ДБА совместно с ДБ девелоперами = правильно сбалансировать нагрузку и сформировать распределенную серверную часть.


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

+1
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728906
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 25.08.2014 21:25, scf wrote:

> Я пришел к выводу, что классический/школьный подход к разработке БД а-ля
> "нормализуйте все, нафигачьте справочников, пишите сложные запросы,
> которые будут выгребать и обновлять данные" в современном мире не
> работает.

Ты пришёл к неверному выводу.


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

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


> - Датабазные джойны дороги. По моим старым замерам в mssql, запрос без
> джойнов работает примерно раза в 2 быстрее, чем запрос с одним джойном
> по ПК.

Это тоже бред. JOIN по индексу -- очень дешёвая операция.
А сравнивать "запрос без джойнов" с "запросом с одним джойном по ПК" --
это вообще верх непрофессионализма -- запросы разные бывают, к тому же я
полагаю, что твои способности замерять производительность запросов
достаточно примитивны.


> Сначала о справочниках. Зачем их джойнить при загрузке объекта?
> Приличные приложения справочники кешируют у себя и джойнят сами, руками
> или тем же Хибернейтом.

СУБД это сделает в 100 раз быстрее и эффективнее, чем все остальные.

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

Денормализация. Ересь.


> Бизнес-объекты. Обычно представляют из себя в базе мессиво мелких
> табличек, призванных отобразить разнообразные вложенные коллекции. Это
> мессиво сложно использовать и непрактично извлекать - см. цену джойнов.
> Почему бы тогда не зафигачивать данные в одну таблицу json-ом или
> аналогичным форматом? Ответ на вопрос "а как тогда селекты делать" чуть
> ниже, а пока назову только одну причину - "без приложения эти данные
> сложно извлечь, т.к. они не описаны в схеме".

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

> Что касается селектов или какого-то поиска. Селекты, где критично
> получить именно актуальные данные в транзакции - почти всегда примитивны
> и просты. Все остальное отлично покрывается внешними индексирующими
> приложениями вроде Apache Solr или Sphinx. В своей сфере они работают
> намного эффективнее СУБД.

Нет, это неправда. Это системы полнотектового индексирования.
Если они встроены в СУБД (а они встроены во многие СУБД), то они так же
эффективны, как и внешние индексаторы.


> Что получается в итоге?

В итоге получается фарш из каши из твоего головного мозга, я понял.
:-)


Таблицы состоят из небольшого набора полей плюс
> клоб с Json-ом. Справочники есть, но большинство справочников
> используется только для создания новых объектов (данные из справочника
> встраиваются в сам объект). Простые и важные селекты идут по тем
> немногоим полям, которые остались в таблице. Сложный поиск делается
> специализированным софтом, данные в которое импортируются в рантайме
> приложением, которое висит на этой базе (в тяжелый случаях - джобой).
> Аналитика и кубы - на отдельной базе, с отдельным олап-кубом или тупо
> импорт в qlikview или подобную штуку.


> И, собственно, что хотелось бы услышать. Чем такая схема плоха?

Тем, что она будет работать только для определённого рода приложений,
которые ты, по видимому, только и разрабатывал. Например, все внешние
индексаторы типа Apache Solr или Sphinx работают с данными off-line,
т.е. в них хранится некий слепок БД из прошлого, отдалённого от
настоящего настолько, насколько просто обновлять эту БД. Соотв., чем
больше БД, тем сложнее её обновлять.


> большинство справочников используется только для создания новых
> объектов (данные из справочника встраиваются в сам объект).

Это денормализация, опастность взрывного увеличения объёма данных.


> Для приложений?

Уже написал.

> Для быстродействия или DBA?

Быстродействие к этому индифирентно. Т.е. быстродействию пофиг.


> Для архитектуры системы в целом?

Архитектура системы должна подбираться под задачу, а не наоборот.
Твоя архитектура, ещё раз, не универсальна, под любую задачу она не
подойдёт.

> Для управления данными в этой базе в долгосрочной перспективе?

Для управления данными нужны хорошие системы хранения данных.
Реляционные таблицы -- это хорошие системы хранения данных.
JSON в блобе -- это неизвестно что, как его обрабатывать с помощью СУБД
-- не понятно. Хорошо, если в СУБД есть поддержка JSON-а, а если нет?
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38728917
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 26.08.2014 08:32, mad_nazgul wrote:

> В ООП все так как вы говорите.
> А РМД немного другое.
> Нельзя "как есть" сохранить объекты в РБД.

Да можно.

> Т.к. в РМД структура данных не должна меняться часто (в идеале вообще
> неизменна)
> В отличии от ООП. Здесь "изменчивость" это основная "фишка".

Нет, основная фишка в ООП -- не изменчивость, а инкапсуляция и полиморфизм.


> На стыке данных технологий происходит весь холивар.
> РБД "заточены" на хранение данных ACID наше все.
> ООП наоборот на "работу" с данными их изменение.
> Там где важно накопление точных данных, там всегда РМД (в основном финансы)
> Там где это не важно, а важно быстро изменить структуру данных, там
> обычно разные NoSQL решения.

Это ты говоришь про Schemaless. Это не одно и то же с NoSQL. Одно не
означает другое, и наоборот.

РБД есть и такие, которые заточены не на ACID, а на хранилища данных.


> ООП применяется и там, и там, но при использовании РБД с РМД начинается
> "конфликт интересов".

Нет такого конфликта, он выдуман.

> Разработчики ООП "плюются на" РБД, что там нельзя изменить структуру как
> им удобно, а разработчики под РБД "фигеют", что программисты ООП не
> хотят/не могут сделать нормализацию данных.

Это надумано. Нет такой проблемы. Если хочешь, менять структуру БД даже
и проще, чем структуру объектов -- в БД это просто изменение структуры,
в ООП надо ещё и переписать все программы, которые используют эту
структуру. Если в БД есть ещё и код, то та же проблема будет и в БД --
надо переписывать и триггера, и процедуры.
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729061
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> ООП применяется и там, и там, но при использовании РБД с РМД начинается
> "конфликт интересов".

Нет такого конфликта, он выдуман.
воистину +1 ))
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729159
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> Нельзя "как есть" сохранить объекты в РБД.

Да можно.


Это приведет к проблеме о которой вы писали.
Поэтому нельзя ;-)
Т.к. данные в РМД и данные в виде объектов это по большому счету разные вещи.
Хотя на первый взгляд кажутся "одно и то же".

MasterZiv> Т.к. в РМД структура данных не должна меняться часто (в идеале вообще
> неизменна)
> В отличии от ООП. Здесь "изменчивость" это основная "фишка".

Нет, основная фишка в ООП -- не изменчивость, а инкапсуляция и полиморфизм.


А для чего нужны "инкапсуляция" и "полиморфизм"?!
Чтобы обеспечить "изменчивость".
Мы скрываем как "внутри" устроен объект, чтобы его можно было менять как нам нужно.
;-)


MasterZivРБД есть и такие, которые заточены не на ACID, а на хранилища данных.


На сколько я помню они либо вымерли, либо их занимают ну очень специфичную нишу.
Сейчас балом правит SQL ;-)


MasterZivНет такого конфликта, он выдуман.


Но он есть.
И я его наблюдаю не на одном проекте.
Как только начинается использоваться ORM, так сразу он и возникает.
Т.к. со временем любое обращение к БД ч/з ORM обрастает кучей ХП (хранимых процедур).

MasterZivЭто надумано. Нет такой проблемы. Если хочешь, менять структуру БД даже
и проще, чем структуру объектов -- в БД это просто изменение структуры,
в ООП надо ещё и переписать все программы, которые используют эту
структуру.


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

MasterZivЕсли в БД есть ещё и код, то та же проблема будет и в БД --
надо переписывать и триггера, и процедуры.


Вот именно!
Но не только.
Нужно еще не забывать о нормализации и ACID!
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729489
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 26.08.2014 16:10, mad_nazgul wrote:

> Это приведет к проблеме о которой вы писали.
> Поэтому нельзя ;-)

На сколько я помню, я не говорил ни о каких проблемах.

> Т.к. данные в РМД и данные в виде объектов это по большому счету разные
> вещи.

Данные -- это данные. Ещё раз, т.н. object-relational gap -- выдумка.
Она вызвана грубо говоря тем, что в РМД нет массивов. Но всё это
решается. См. решения в Hibernate etc.


> А для чего нужны "инкапсуляция" и "полиморфизм"?!

Если ты пишешь объекты куда угодно в БД (любую), то тебе надо забыть о
инкапсуляции, это -- раз. Поэтому обеспечить просто изменчивость
объектов в этой БД невозможно ( сложно так же, как и в РБД ).

> Чтобы обеспечить "изменчивость".

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

> Мы скрываем как "внутри" устроен объект, чтобы его можно было менять как
> нам нужно.

Это очень наивное представление о проблеме.


> MasterZiv
> РБД есть и такие, которые заточены не на ACID, а на хранилища данных.
>
> На сколько я помню они либо вымерли, либо их занимают ну очень
> специфичную нишу.
> Сейчас балом правит SQL ;-)


Нет, скорее наоборот, их сейчас очень много.

> MasterZiv
> Нет такого конфликта, он выдуман.

> Но он есть.
> И я его наблюдаю не на одном проекте.
> Как только начинается использоваться ORM, так сразу он и возникает.

Обычно я такие слова слышу от людей, которые просто не умеют работать ни
с объектами, ни с РБД, ни с ОРМ.

> Т.к. со временем любое обращение к БД ч/з ORM обрастает кучей ХП
> (хранимых процедур).

И что в этом плохого, в ?

Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729495
Dimitry Sibiryakov
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulКак только начинается использоваться универсальный ORM, так сразу
он и возникает.
Поправил. Когда это "one size fits all" вообще работало?..
Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729589
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf,
Вам нужно, мне кажется, почитать аналитические темы, которые здесь периодически обсуждаются. Например, если бы Вы поучаствовали в этой теме
http://www.sql.ru/forum/973198-1/db-specific-orm
это помогло бы более формально описать то, что Вы предлагаете.
Просто приведите пример, который наглядно бы показал преимущество "того, что Вы предлагаете" над "тем, что сейчас, обычно, используется".
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729694
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДанные -- это данные. Ещё раз, т.н. object-relational gap -- выдумка.
Она вызвана грубо говоря тем, что в РМД нет массивов. Но всё это
решается. См. решения в Hibernate etc.


Вообще для РМД массив - это лишняя сущность.
Например в PostgreSQL есть массивы, но они там нужны для очень специфичных случаев (там их ввели для поддержки GIS).
На моей практике ни разу не использовались.
Hibernate - это ORM.
ORM - зло!

MasterZivЕсли ты пишешь объекты куда угодно в БД (любую), то тебе надо забыть о
инкапсуляции, это -- раз. Поэтому обеспечить просто изменчивость
объектов в этой БД невозможно ( сложно так же, как и в РБД ).


Опять же на моей практике ни полиморфизм, ни инкапсуляция не мешали сохранять данные из объектов в БД.
И это не мешает менять объекты как мне заблагорассудится.
Просто не надо "напрямую" "мапить" объекты в БД.


MasterZivЕсли у тебя что-то меняется в объекте, то это почти наверняка как-то
светится наружу объекта, потому что это кто-то как-то должен
использовать, иначе в этом нет смысла. А это значит, что инкапсуляция
опять не сильно поможет -- да, данные будут скрыты, но появятся или
изменятся новые интерфейсы данного класса, изменится код, использующий
этот классю


У-у-у вы даже ООП не знаете.
Классический пример с геометрическими фигурами.
Есть абстрактный класс "Фигура" у которой есть метод "нарисовать".
Есть потомки "квадрат", "круг", "треугольник".
У которых переопределен метод "нарисовать".
Данные разные, классы разные, используются одинаково!


MasterZivОбычно я такие слова слышу от людей, которые просто не умеют работать ни
с объектами, ни с РБД, ни с ОРМ.


Не знаю, просто всегда когда перед ORM ставиться задача чуть сложнее прочитать несколько строк из таблицы.
Тут же возникают ХП.
Практика из нескольких холиваров по поводу ORM.

MasterZiv> Т.к. со временем любое обращение к БД ч/з ORM обрастает кучей ХП
> (хранимых процедур).

И что в этом плохого, в ?



1) ХП не относиться к РМД. Это процедурное расширение РМД. Что приводит к тому, что методы оптимизации которые хорошо работают в РМД, там перестают работать, ну или работают плохо.
2) ХП это всегда перенос бизнес-логики из приложения в БД. Что "размазывает" бизнес-лгику м/у приложением и БД. И это приводит к п 3)
3) Зачем нам лишняя сущность "приложение", если все можно сделать в СУБД. (Смотреть все холивары с Oracle)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729721
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul...
ORM - зло!
...
Просто не надо "напрямую" "мапить" объекты в БД.
...
Зачем нам лишняя сущность "приложение", если все можно сделать в СУБД...
Все может сделать в том, что Вы назвали СУБД - программист. Потребитель даже фамилию человека не сможет узнать без программиста)) Так что это не СУБД, а СХОД (система хранения и обработки данных, предназначенная для программиста). Можно ли создать СУБД в среде РСХОД, например, в Oracle. Конечно. Получим некоторую модель данных верхнего уровня и маппинг в РМД по всем трем аспектам (структура, ограничения целостности, язык манипулирования). Который, видимо - зло))
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729738
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Народ, что-то вы скатились не туда :-)
ORM - это, конечно, хорошо, и при правильном использовании несет много пользы, но правильно использовать его очень тяжело, а при неправильном он генерит очень неоптимальные запросы.

Я думаю, что корень проблемы в вопросе "кто должен владеть данными в базе". Известно, что данные часто живут намного дольше, чем приложения, которые их породили, поэтому передача всего разработчикам приложения закономерно приводит к вопросу "что делать с данными, когда приложение умрет от старости".

Итого возможны следующие варианты:

- DBA низвергают до позиции инфраструктурщика, который занимается работоспособностью баз и дает консультации. Структурой и наполнением базы владеют разработчики, которые полностью изолируют базу от всех желающих ей пользоваться, предоставляя высокоуровневый сетевой API. Гугль, например, так работает.
- DBA владеет структурой и данными, для доступа и модификации данных он пишет хранимки, которые защищают данные от кривых рук разработчиков. Эти хранимки НЕ должны содержать бизнес-логику.
- Вся логика сосредоточена в базе, внешние приложения отвечают только за гуй.

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

"просто извлечь всем" - это важный критерий для database-centric архитектур, которые не очень хороши, ибо хрупки. Такой подход приводит к десяткам приложений вокруг одной базы и шансом сломать любое из них при любом изменении характера данных в базе, необязательно её схемы. Так что - редкие релизы и обширнейшее интеграционное тестирование.

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

Я думаю, что корень проблемы в вопросе "кто должен владеть данными в базе". Известно, что данные часто живут намного дольше, чем приложения, которые их породили, поэтому передача всего разработчикам приложения закономерно приводит к вопросу "что делать с данными, когда приложение умрет от старости".

Итого возможны следующие варианты:

- DBA низвергают до позиции инфраструктурщика, который занимается работоспособностью баз и дает консультации. Структурой и наполнением базы владеют разработчики, которые полностью изолируют базу от всех желающих ей пользоваться, предоставляя высокоуровневый сетевой API. Гугль, например, так работает.
- DBA владеет структурой и данными, для доступа и модификации данных он пишет хранимки, которые защищают данные от кривых рук разработчиков. Эти хранимки НЕ должны содержать бизнес-логику.
- Вся логика сосредоточена в базе, внешние приложения отвечают только за гуй.

Кто-нибудь знает книжку по данному вопросу? или хотя бы ключевые слова?
Вы невнимательны, все игнорируете и меняете темы))
Данными должен владеть тот, кто владеет велосипедом или табуреткой - потребитель, кто же еще. Вы движетесь в правильном направлении - DOA (сейчас скромно говорят IOA). Желательно, конечно, избавиться от приложений полностью, в том числе и от тех, которые обеспечивают интерфейс. А для этого придется либо использовать ORM, либо какую-то модель нижнего уровня, чтобы обойтись без маппинга. Но, вы же не хотите ничего читать((
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729787
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

Ничего не понял :)
Как пользователи могут владеть данными, если они ими только пользуются? Вот вы написали пост - разве вы владеете его представлением в базе форума или отвечаете за сохранность этих данных, в том числе в долговременной перспективе?

Расшифруйте DOA/IOA - гугль не в курсе этих аббривеатур.

"Избавиться от приложений полностью" - вы сторонник подхода "пихаем всё в СУБД, включая веб-сервер"? Видел я и такие проекты...

Что конкретно читать? Если вы про те 73 страницы - то пока не набрался смелости, чтобы выуживать из того болота ценные факты :-)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729790
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf,
Просто приведите пример, который наглядно бы показал преимущество "того, что Вы предлагаете" над "тем, что сейчас, обычно, используется".
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729793
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfvadiminfo,

"просто извлечь всем" - это важный критерий для database-centric архитектур, которые не очень хороши, ибо хрупки. .
Основная цель ИС удовлетворение информационных потребностей. В частности, что бы просто было получать требуемую инфу. В том числе и извлеч. Т.е. это, скорее всего, важный критерей всей ИС, а не архитектур.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729810
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

Пожалуйста, ответьте на предыдущий пост.

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

Ничего не понял :)
Как пользователи могут владеть данными, если они ими только пользуются? Вот вы написали пост - разве вы владеете его представлением в базе форума или отвечаете за сохранность этих данных, в том числе в долговременной перспективе?

Расшифруйте DOA/IOA - гугль не в курсе этих аббривеатур.

"Избавиться от приложений полностью" - вы сторонник подхода "пихаем всё в СУБД, включая веб-сервер"? Видел я и такие проекты...

Что конкретно читать? Если вы про те 73 страницы - то пока не набрался смелости, чтобы выуживать из того болота ценные факты :-)
1) Я сказал потребители - опять невнимательность. Вы что хотите сказать, что человек не владеет велосипедом, который купил?????
2) А разве здесь не РСХОД?)) Тогда, конечно, не владею.
3) Архитектура, ориентированная на данные. Гугль не обладает знаниями в области теории и проектирования баз данных. Но по IOA (... на информацию) материал, конечно, есть. См. соседнюю тему. Не ленитесь.
4) Болото создают те, кто не хочет обсуждать вопросы по существу, но хотят, тем не менее, что-то написать. Это неизбежность. Так что, наберитесь смелости, если действительно хотите разобраться.
5) Мне неизвестно о подходе "пихаем...". Неизвестно о том, что Вы видели. Поэтому и говорю приведите пример, демонстрирующий преимущество (или конкурентоспособность) Вашего подхода. Но, сначала четко опишите этот самый подход))
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729816
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfБредятина,

Пожалуйста, ответьте на предыдущий пост.

Что касается ОП - я думал, что преимущества очевидны :). Простота в использовании со стороны приложений и быстродействие. Меня больше недостатки интересуют, насчет преимуществ я вполне в курсе.
Ничего не понял((( Что за ОП. Я где-то написал про ОП???
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729879
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

ОП = OP=open post
Огромное спасибо за расшифровки, наконец-то нашел внемяемую литературу по проектированию хранилищ данных.
Насчет преимуществ. Возьмем, например, базу страховых полисов. Полисов бывает большое кол-во типов, у каждого типа куча информации, которая в нем хранится, причем часть этой информации опциональна, причем опциональность зависит не от типа полиса, а от его данных.

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

Альтернатива? Одна таблица с тремя полями: id, номер полиса, clob с json-ом.

Плюсы:
- простота и скорость вставки и чтения полисов. никакого random io, никаких джойнов, никакой необходимости вытаскивать полис по частям, т.к. json пусть и сложен по формату, но невелик по объему - не больше 5 кб. Для пущей эффективности можно его сжимать или даже использовать двоичный формат (хотя это может быть плохим решением - см. ниже)
- простота приложения, которое с этой базой работает. несколькими строчками можно достать из базы и развернуть полноценный объект полиса

Проблемы и пути их решения:
- справочники. Большая часть справочников не слишком велика и не обновляется оперативно, так что можно их кешировать на стороне приложения. Если обновляется оперативно - обновлять через другое приложение, которое предоставляет возможность подписки всем желающим. Если справочник реально огромен - делать селект из приложения по id. Если еще и roundtrip большой до базы... придется эти айдишники выносить из json в нашу таблицу и джойнить при извлечении полиса.
- Юзер хочет список полисов, отсортированный и отфильтрованный по хитрым, юзерским критериям. Используем внешний индекс, закачивая в него данные в формате, заточенном под требования пользователя. Т.е. с данными, по которым будет идти поиск + данными, которые надо показывать в списке полисов.
- Экспорт данных в другие системы? ETL уже не катит, да. Экспорт должно делать специальное приложение, которое загрузит полис, преобразует его и зальет куда надо.
- Отчеты и аналитика? Если используется OLAP, то у него все равно отдельная база звездой, см. предыдущий пункт про экспорт. Если обычная база, то при ее проектировании можно учитывать только задачи аналитики - это сильно упростит задачу. Если данных реально много и юзер может подождать несколько минут, то из исходной базы данные отлично переливаются в Hadoop.

Проблемы, которые я не уверен, как решать:
- Consistency. Поиск может не возвращать свежайшие данные, экспорт будет экспортировать не совсем снапшот(частично решается версионностью записей с таймстампом)
- Управление данными. Уже не посадишь sql-щика вычищать мусор из базы. И если данные в классической СУБД почти самодокументируемы, т.е. следующее поколение разработчиков, в теории, сможет их использовать, то json, а, тем более, двоичный формат потребует тщательного документирования.

О том, нафига создавать все эти проблемы, а потом их решать: Масштабируемость. Производительность поиска, ETL, отчетов больше не зависит от машины(ах), на которых стоит оракл. Для многих задач время отклика или пропускную способность можно улучшать линейно от кол-ва задействованных машин.


Фух :) Надеюсь, это внесет какую-то ясность.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729880
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторРасшифруйте DOA/IOA
Подозреваю, что сэр Бредятина подразумевает
Data Oriented Architecture и Information Oriented Architecture
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729894
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf шансом сломать любое из них при любом изменении характера данных в базе, необязательно её схемы. Так что - редкие релизы и обширнейшее интеграционное тестирование.

Практичнее изолировать базу за слоем API, сделанном или на хранимках, или на приложениях - "переходниках".

Можно пример "изменения характера данных", которое неизбежно сломает приложение, но от которого спасет "слой API"?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729896
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
А, насчет трех полей я погорячился - еще будут нужны поля для версионности и экспорта. дата создания, дата последнего изменения, номер версии и т.п.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729907
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

"Неизбежно" - неудачное слово.
Простейший пример - если мы добавили новое поле в таблицу, с дефолтом разумеется, чтобы инсерты не сломать. А приложение по этой таблице делало select * from ... Чем не повод сломаться?

Пример поинтереснее - мы решили добавить в базу новый тип полисов. Теперь любое приложение, которое селектит по этой базе, надо перетестировать - как оно себя поведет с этим новым типом?

API отличается тем, что может дать более жесткие гарантии. Или хотя бы более четкие гарантии. Насчет набора возвращаемых данных, насчет характера этих данных. И если что, то можно подпилить слой API, чтобы даунстрим не заметил разницы, пока они не смогут мигрировать.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729930
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfКот Матроскин,

"Неизбежно" - неудачное слово.
Простейший пример - если мы добавили новое поле в таблицу, с дефолтом разумеется, чтобы инсерты не сломать. А приложение по этой таблице делало select * from ... Чем не повод сломаться?

Никогда не видел клиентского приложения, которое бы могло сломаться от select *.
Это на какой библиотеке доступа такое возможно?
Ну так не пишите в приложении select *, если боитесь этой конструкции - при чем тут API?
scfПример поинтереснее - мы решили добавить в базу новый тип полисов. Теперь любое приложение, которое селектит по этой базе, надо перетестировать - как оно себя поведет с этим новым типом?

И как тут спасет API? И как тут спасут Ваши JSON'ы?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729939
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот Матроскин,

А, простите, я не обратил внимания, что вы тот самый человек альтернативной адекватности, который пишет ответы, не читая посты. Давайте я вас буду просто игнорировать.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729948
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfДавайте я вас буду просто игнорировать.

Не могу Вам в свою очередь этого обещать
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729958
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Кот МатроскинscfДавайте я вас буду просто игнорировать.

Не могу Вам в свою очередь этого обещать

Сейчас цветут многолетние травы, и они могут, через аллергические рецидивы способствовать обострению дискуссий, это также необходимо учитывать на уровне потенциальных угроз достижению целей.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38729970
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfБредятина,
...
Фух :) Надеюсь, это внесет какую-то ясность.
Конечно, внесло)
"- Юзер хочет список полисов, отсортированный и отфильтрованный по хитрым, юзерским критериям. Используем внешний индекс, закачивая в него данные в формате, заточенном под требования пользователя. Т.е. с данными, по которым будет идти поиск + данными, которые надо показывать в списке полисов."
Это - бесконечное программирование, как и в случае использования реляционных систем. Потребитель даже полис по фамилии владельца не сможет получить без программиста))). Но, когда, наконец-то, получит, то это будет "быстрее")..
Для начала, если уж Вы говорите об "одной таблице", подумайте об одной таблице со всеми полями (всеми свойствами полисов всех типов), а не с тремя или десятью))
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730021
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

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

"Все данные в одной таблице" а-ля денормализация - очень популярный способ упрощения базы, НО плохо применим к отношениям один-ко-многим. В итоге появляются кадавры Fio1, Fio2, Fio3 и в итоге упираются в макс. кол-во столбцов в таблице. Плюс без пол-литры не поймешь, какие поля в данной строке используются, а какие не очень.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730065
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfБредятина,

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

"Все данные в одной таблице" а-ля денормализация - очень популярный способ упрощения базы, НО плохо применим к отношениям один-ко-многим. В итоге появляются кадавры Fio1, Fio2, Fio3 и в итоге упираются в макс. кол-во столбцов в таблице. Плюс без пол-литры не поймешь, какие поля в данной строке используются, а какие не очень.
Итак, Вы предлагаете постоянное программирование (а не просто доработки), как и в случае использования реляционных систем. Это совсем плохо для потребителя, но очень хорошо для программиста, конечно))
Популярный способ упрощения какой базы? Ведь ни в одной модели данных нет никаких ограничений на количество "столбцов в таблице" или на "длину записи". Зачем говорить о том, что, пока, никому еще не удалось реализовать даже РМД?
Что за отношения "один-ко-многим"??? Поясняйте конкретно на Вашем примере. Почему не поймешь какие используются, а какие нет? Что трудно сделать одно из полей как раз "классификатором записей" (вот такой системный тип добавить в Вашу СУБД)?))
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730076
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Понеслась философия
авторИтак, Вы предлагаете постоянное программирование (а не просто доработки)
Чем программирование отличается от доработки в данном случае?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730085
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixПонеслась философия
авторИтак, Вы предлагаете постоянное программирование (а не просто доработки)
Чем программирование отличается от доработки в данном случае?
Пожалуйста, сначала исправьте Ваше сообщение на корректное. Как к существу вопроса относится фраза "Понеслась философия"?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730106
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

Тоже не понял фразу про программирование и доработки. "добавить в индекс новое поле" - это как раз доработка. Конфигурации индексатора и подсистемы экспорта данных в этот индексатор. Плюс гуй.

Как раз есть) Вот что гугль говорит с ходу про оракл:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:53174778859588

А просто - задачу "у полиса есть список застрахованных" в одну строчку таблицы нормально не денормализуешь.

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

Тоже не понял фразу про программирование и доработки. "добавить в индекс новое поле" - это как раз доработка. Конфигурации индексатора и подсистемы экспорта данных в этот индексатор. Плюс гуй.

Как раз есть) Вот что гугль говорит с ходу про оракл:
https://asktom.oracle.com/pls/asktom/f?p=100:11:0::::P11_QUESTION_ID:53174778859588

А просто - задачу "у полиса есть список застрахованных" в одну строчку таблицы нормально не денормализуешь.

Да, формально, конечно, можно отличить используемые поля от неиспользуемых по полю "тип записи". Но визуально и без долгого вкуривания кода - навряд ли.
Я снова и снова говорю - не торопитесь, будьте внимательнее)) Ни одна МОДЕЛЬ ДАННЫХ не накладывает ограничений на количество "столбцов в таблице" или "длину записи". Причем здесь реализации неизвестно чего? Давайте, пока, не будем рассматривать случаи, когда разработчики СХОД не смогли реализовать какую-то модель и добавили какие-то свои ограничения. Давайте от темы не отвлекаться.
Если бы Вы использовали СУБД, то при "добавлении поля" в подавляющем большинстве случаев НИЧЕГО БЫ ВООБЩЕ не пришлось делать. Да, могут быть доработки какие-то изредка. А у Вас именно постоянное программирование (в лучшем случае, визуальное)...
Что значит формально и визуально??? Зачем выкуривать код??? Вы же даже не пробовали это сделать)) Поэтому пока рано говорить о результате.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730127
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторЕсли бы Вы использовали СУБД, то при "добавлении поля" в подавляющем большинстве случаев НИЧЕГО БЫ ВООБЩЕ не пришлось делать
Даже не сомневаюсь. А если под этим полем лежит "кучерявая" логика, она сама собой сгенерируется
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730154
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixавторЕсли бы Вы использовали СУБД, то при "добавлении поля" в подавляющем большинстве случаев НИЧЕГО БЫ ВООБЩЕ не пришлось делать
Даже не сомневаюсь. А если под этим полем лежит "кучерявая" логика, она сама собой сгенерируется
Пожалуйста, цитируйте полностью и не вводите себя и других в заблуждение. Очевидно, что далеко не под каждым полем "лежит кучерявая логика". Да, могут быть доработки какие-то изредка. Однако, для многих приложений БД (разумеется не самых сложных) уже сейчас интерактивный интерфейс СУБД может покрывать весь функционал (то есть, ничего не нужно программировать). А еще 20 лет назад не превышал 20%.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730164
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторДа, могут быть доработки какие-то изредка.
Вы раскроете разницу между программированием и доработкой?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730207
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixавторДа, могут быть доработки какие-то изредка.
Вы раскроете разницу между программированием и доработкой?
1) Доработка не всегда требует программирования.
2) Доработка не перманентное мероприятие. Если она требует программирования, то это не постоянное программирование, как в подходе, предложенном автором.
Так что, именно постоянное программирование, а не просто доработка.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730214
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
xenixПонеслась философия

Скорее всего, называть редкостную ахинею философией все еще преждевременно.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730226
xenix
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
авторСкорее всего, называть редкостную ахинею философией все еще преждевременно.
Вы правы. Может, правильнее сказать "софистика, пастор, софистика"
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730276
Бредятина
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scf,
Как видите, подключились специалисты по формированию из темы того самого болота)) Это неизбежно, к сожалению. Так получается много страниц, из которых более половины лишние. Это не беда, я думаю.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730570
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgul
У-у-у вы даже ООП не знаете.
Классический пример с геометрическими фигурами.
Есть абстрактный класс "Фигура" у которой есть метод "нарисовать".
Есть потомки "квадрат", "круг", "треугольник".
У которых переопределен метод "нарисовать".
Данные разные, классы разные, используются одинаково!


Умник, попробуй эти данные после рисования куда-нибудь СОХРАНИТЬ, а потом проиндексировать и ПОИСКАТЬ фигуры, входящие в заданую область.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730574
Фотография DirksDR
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfКот Матроскин,

А, простите, я не обратил внимания, что вы тот самый человек альтернативной адекватности, который пишет ответы, не читая посты. Давайте я вас буду просто игнорировать.
Не торопитесь игнорировать замечания ветеранов форума
Ваш пример как раз из области документно ориентированных NoSQL СУБД, на что Вам намекал Кот Матроскин.
Кроме базы полисов, есть много других задач: бухгалтерия, склад, и т.п.
Там Ваш подход явно не прокатит.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730579
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulНе знаю, просто всегда когда перед ORM ставиться задача чуть сложнее прочитать несколько строк из таблицы.
Тут же возникают ХП.


Ну и что же в этом прохого, в чём проблема ?
Объекты Hiber (или кто ещё) легко может читать и из процедур,
и можно вообще не использовать Hiber именно в этом отдельном месте.


mad_nazgul1) ХП не относиться к РМД. Это процедурное расширение РМД.


Напомню, что РМД расшифровывается как "реляционная модель ДАННЫХ". Код не обязан подчиняться модели ДАННЫХ.
Всё, на твоём уровне развития я с тобой общаться не хочу. Неинтересно.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730588
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
авторORM - это, конечно, хорошо, и при правильном использовании несет много пользы, но правильно использовать его очень тяжело, а при неправильном он генерит очень неоптимальные запросы.


Правильно его использовать ОЧЕНЬ ЛЕГКО. Ну, ладно, просто легко.
С GRAILS например -- очень легко. Просто ключ тут в слове "правильно".
А это значит -- не забивать гвоздь отвёрткой, а шуруп не закручивать молотком.


авторКто-нибудь знает книжку по данному вопросу? или хотя бы ключевые слова?

Я не понял, о чём это. если хочешь -- уточни, может скажу книгу.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730618
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfКлассический подход - (местами) нормализованное хранилище, со связами один-ко-многим и многие-ко-многим через таблицы, местами денормализованное для повышения быстродействия плюс тщательно затюненные индексы для того, чтобы все нужные запросы работали быстро.


Забудь про выделенное, это уже давно неработающий бред. Давно неправда.
Денормализация никогда не приводит к повышению быстродействия, потому что она приводит к росту физического объёма данных, а оно ведёт к коллосальному падению производительности. Сейчас решения в VLDB строятся наоборот на гипернормализации и сжатии на физичесом уровне хранения данных.

scfАльтернатива? Одна таблица с тремя полями: id, номер полиса, clob с json-ом.

Плюсы:
...

Проблемы и пути их решения:


На самом деле проблем только одна -- это не база данных, не хранилище данных, а склад данных. Данные в таком складе невозможно обрабатывать средствами СУБД, внутри БД. Почти все описанные тобой проблемы -- это следствие этого.

Фактически ты вообще предлагаешь закинуть всё в некое хранилище, и не решать ни одну из проблем из области использования этих данных -- поиск и сортировки как делать -- ты не знаешь, аналитику предлагаешь делать во внешней БД (OLAP), в которую ты даже не знаешь, как эти данные выгружать.

А какую ж из задач по созданию системы для хранения и обработки этих данных ты тогда решил ?
Простую вставку данных? Но она и на ORM + RDBMS решается неплохо.

Я тебе сообщу о ещё одной проблеме, которую ты не видишь -- это проблема консистентности (т.е. целостности данных).
Кто будет проверять твой JSON перед вставкой в БД ? БД этого не сделает. А в JSON формат данных свободный, можно и добавить лишний атрибут, и не добавить обязательный, а обнаружишь ты это только на уровне приложения.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730634
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfЯ пришел к выводу, что классический/школьный подход к разработке БД а-ля "нормализуйте все, нафигачьте справочников, пишите сложные запросы


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

Тебе сейчас надо не делать какие-то выводы, а просто поработать так, как все, в стандартных технологиях.
Поднабраться опыта, понять, проанализировать, потом уже делать выводы.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730687
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДенормализация никогда не приводит к повышению быстродействия, потому что она приводит к росту физического объёма данных, а оно ведёт к коллосальному падению производительности. Сейчас решения в VLDB строятся наоборот на гипернормализации и сжатии на физичесом уровне хранения данных.

wikiДенормализация (англ. denormalization) — намеренное приведение структуры базы данных в состояние, не соответствующее критериям нормализации, обычно проводимое с целью ускорения операций чтения из базы за счет добавления избыточных данных.Не?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730697
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivДенормализация никогда не приводит к повышению быстродействия, потому что она приводит к росту физического объёма данных,

Это неправда - нормализованные данные запросто могут занимать больший объем, нежели ненормализованные.
Задача нормализации вообще не в том, чтобы экономить место - это всего лишь необязательный сопутствующий бонус.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730750
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. RavenMasterZivДенормализация никогда не приводит к повышению быстродействия, потому что она приводит к росту физического объёма данных, а оно ведёт к коллосальному падению производительности. Сейчас решения в VLDB строятся наоборот на гипернормализации и сжатии на физичесом уровне хранения данных.

wikiДенормализация (англ. denormalization) — намеренное приведение структуры базы данных в состояние, не соответствующее критериям нормализации, обычно проводимое с целью ускорения операций чтения из базы за счет добавления избыточных данных.Не?

А что неправильно ?

Написано, что ЦЕЛЬ денормализации -- УСКОРЕНИЕ. Это то, для чего её делают. Но это не значит, что если сделали, то достигли цели.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730754
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинMasterZivДенормализация никогда не приводит к повышению быстродействия, потому что она приводит к росту физического объёма данных,

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

Ну-ка расскажи подробнее...
Пока -- смешно.
Ну да, в каких-то самых простейших случаях так может быть, типа табличка в две строчки, и 20 справочников.
Но стоит ли об этом исключительном случае говорить ?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730794
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКот Матроскинпропущено...


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

Ну-ка расскажи подробнее...
Пока -- смешно.
Ну да, в каких-то самых простейших случаях так может быть, типа табличка в две строчки, и 20 справочников.
Но стоит ли об этом исключительном случае говорить ?

Пожалуйста - классический пример нарушения 1 НФ с перечислением ID товаров(скажем, пятизначных) в строчку через запятую в таблице заказа.
Нормализовав это безобразие, практически наверняка получим увеличение обьема данных- причем чем больше строк будет в таблице заказов и чем больше товаров в среднем в заказе, тем большее увеличение.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730825
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfИ, разумеется, что не хотелось бы услышать :) "КГАМ", "читай маны", "всё бред"

Ну, я вот уже лет 10 делаю довольно сложные и требовательные к производительности проекты примерно таким образом.
Особых проблем нет, есть несколько выработавшихся практик, достаточно простых. Даже несколько раз доклады делал на разных конференциях.

Как показывает опыт, практически невозможно объяснить классическим разрабочикам СУБД, чем такая схема удобнее и проще - отрицание происходит на уровне "так делать нельзя, даже думать в эту сторону грешно, нафиг-нафиг", так что проще и не пытаться )
А вот программисты предметной области легко такой подход принимают и начинают развивать.

Сложности начинаются при потребности в сложных взаимосвязях между сущностями (впрочем, при нормальном проектировании предметной области это бывает крайне редко), при требовании сложных произвольных поисков (хотя тут уже нужен OLAP, а не OLTP), при попытке использовать стандартные генераторы отчетов (но там тоже есть свои решения, разумеется).

Разумеется, такая СУБД остается вполне реляционной, всякие фразы про NoSQL тут совершенно не при чем.

Кстати, в 90% случаев подобные СУБД формально нормализованы (так как блоб с точки зрения СУБД является атомарным аттрибутом и только на уровне ApplicationLayer становится не атомарным), остальные формы сверх первой там тоже соблюдаются. И если удерживать в голове хотя бы первую форму, то проектирование такой СУБД становится гораздо проще.

Из подсказок - обязательно в БД для каждого блоб-поля хранить версию его формата. Иначе обновление структуры станет сложным (хотя все равно проще, чем для обычного перенормализованного решения).
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730832
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ранее
MasterZivДенормализация никогда не приводит к повышению быстродействия
Теперь
MasterZivНаписано, что ЦЕЛЬ денормализации -- УСКОРЕНИЕ. Это то, для чего её делают. Но это не значит, что если сделали, то достигли цели.Т.е. добиться таки можно? Чаще всего, по-опыту, достигают.
Раскрой первую мысль.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730879
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
DPH3,

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

А что со справочниками? Вы добавляете данные из них в блоб, грузите их отдельно по id (с кешированием), выносите айдишники за блоб и джойните при выборке?
))) Пожалуйста, определитесь с терминологией. Многие люди здесь, если читают что-то непонятное, считают, что дело не в них, и обижаются на того, кто пишет что-то непонятное. А я вот считаю, что если что-то не понимаю, то дело во мне. И стараюсь понять, задавая вопросы.
Вы много раз использовали термин "справочник", но ни разу не пояснили - что это такое. Дайте ясное определение. В некоторых системах, например, может быть Справочник сотрудников, Справочник товаров и т.п. Вы тоже называете справочником данные о людях? Или нет? И как Вы называете другие элементы структуры данных, которые (по Вашему) не справочники?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38730924
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Бредятина,

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

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


Умник, попробуй эти данные после рисования куда-нибудь СОХРАНИТЬ, а потом проиндексировать и ПОИСКАТЬ фигуры, входящие в заданую область.

Точно, вы в ООП вообще ни в зуб ногой.
Все решается для объекта созданием общих методов "сохранить_в_БД", "прочитать_из_БД"
А для БД создания приблизительно такой структуры:

Фигура:
ID
Тип_Фигуры_ID

Тип:
ID
Название

Точка:
ID
Фигура_ID
Координата_X
Кордината_Y

При реализации методов объекты сохраняют данные которые у них есть и считывают их из БД.

Почему нельзя структуру БД напрямую использовать в ООП?
Потому что это не удобно!
В программе гораздо удобнее использовать конкретные объекты (Круг, квадрат, треугольник и т.д.), а вот для сохранения нужна декомпозиция данных.
Т.е. из каких данных состоит объект фигура.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731105
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivНу и что же в этом прохого, в чём проблема ?
Объекты Hiber (или кто ещё) легко может читать и из процедур,
и можно вообще не использовать Hiber именно в этом отдельном месте.


Можно, только зачем?
Если persist для этих объектов не сделаешь (ну или опять же ч/з ХП)
Лучше сразу работать с SQL.
Т.е. ORM вынуждает кроме "прослойки" на стороне приложения, иметь еще "прослойку" на стороне СУБД.
Когда можно ограничится только стороной приложения.

MasterZivmad_nazgul1) ХП не относиться к РМД. Это процедурное расширение РМД.

Напомню, что РМД расшифровывается как "реляционная модель ДАННЫХ". Код не обязан подчиняться модели ДАННЫХ.
Всё, на твоём уровне развития я с тобой общаться не хочу. Неинтересно.

Вот об этом и речь!
Код ХП не относиться к РМД, т.к. он процедурный.
А вот, например, запрос (SELECT) относиться - он декларативный и работает в рамках РМД.
Хотя и то, и то код. ;-)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731610
egorych
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulКод ХП не относиться к РМД, т.к. он процедурный.
А вот, например, запрос (SELECT) относиться - он декларативный и работает в рамках РМД.какая редкостная чушь.
1. Код ХП может быть написан только с использованием оператора SELECT,
2. язык SQL может поддерживаться не только в РСУБД, но и в СУБД, основанных на других моделях данных, например в СУБД Cashe,
3. некоторые РСУБД не поддерживают язык SQL.

язык SQL не зависит от модели данных, это язык написания запросов.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731730
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
egorych1. Код ХП может быть написан только с использованием оператора SELECT,


PL/SQL и TSQL - процедурные языки, точно так же как и xBase.
В частности уже в FoxPro был возможность выполнять SQL команды, но это не делает его декларативным ЯП.

egorych2. язык SQL может поддерживаться не только в РСУБД, но и в СУБД, основанных на других моделях данных, например в СУБД Cashe,


Вообще то SQL был специально создан под РМД.
Остальные, просто "натянули глобус"

egorych
3. некоторые РСУБД не поддерживают язык SQL.
язык SQL не зависит от модели данных, это язык написания запросов.

Зависит.
В некоторых СУБД могут использоваться команды SQL.
А так почитайте на досуге стандарт SQL ;-)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731737
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Вот кто бы вас обоих забанил за оффтоп и кидание какашками...
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731746
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Кот МатроскинMasterZivпропущено...


Ну-ка расскажи подробнее...
Пока -- смешно.
Ну да, в каких-то самых простейших случаях так может быть, типа табличка в две строчки, и 20 справочников.
Но стоит ли об этом исключительном случае говорить ?

Пожалуйста - классический пример нарушения 1 НФ с перечислением ID товаров(скажем, пятизначных) в строчку через запятую в таблице заказа.
Нормализовав это безобразие, практически наверняка получим увеличение обьема данных- причем чем больше строк будет в таблице заказов и чем больше товаров в среднем в заказе, тем большее увеличение.

Плохой пример.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731748
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Infernal V. RavenРанее
MasterZivДенормализация никогда не приводит к повышению быстродействия
Теперь
MasterZivНаписано, что ЦЕЛЬ денормализации -- УСКОРЕНИЕ. Это то, для чего её делают. Но это не значит, что если сделали, то достигли цели.Т.е. добиться таки можно? Чаще всего, по-опыту, достигают.
Раскрой первую мысль.

Да нет, чаще всего ДУМАЮТ, что достигают.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731753
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulВсе решается для объекта созданием общих методов "сохранить_в_БД", "прочитать_из_БД"
А для БД создания приблизительно такой структуры:

Фигура:
ID
Тип_Фигуры_ID

Тип:
ID
Название

Точка:
ID
Фигура_ID
Координата_X
Кордината_Y

При реализации методов объекты сохраняют данные которые у них есть и считывают их из БД.


Ну вот, ты явно раскрыл структуру данных всех объектов. Где же инкапсуляция ?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731761
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulМожно, только зачем?
Если persist для этих объектов не сделаешь (ну или опять же ч/з ХП)
Лучше сразу работать с SQL.



Мне например лень писать по 4 лишних процедуры/запроса на каждый объект, если это Hiber делает самостоятельно.


mad_nazgulMasterZivпропущено...

Напомню, что РМД расшифровывается как "реляционная модель ДАННЫХ". Код не обязан подчиняться модели ДАННЫХ.
Всё, на твоём уровне развития я с тобой общаться не хочу. Неинтересно.

Вот об этом и речь!
Код ХП не относиться к РМД, т.к. он процедурный.
А вот, например, запрос (SELECT) относиться - он декларативный и работает в рамках РМД.



Код не может ни относится к какой-то модели данных, ни не относится. Потому что это код, а не данные.

Продолжай оставаться mad .
Успехов.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731763
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfВот кто бы вас обоих забанил за оффтоп и кидание какашками...

Пожалуй ты прав.
Я всё по теме сказал, поэтому от данного топика самоустраняюсь.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731773
Кот Матроскин
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivКот Матроскинпропущено...


Пожалуйста - классический пример нарушения 1 НФ с перечислением ID товаров(скажем, пятизначных) в строчку через запятую в таблице заказа.
Нормализовав это безобразие, практически наверняка получим увеличение обьема данных- причем чем больше строк будет в таблице заказов и чем больше товаров в среднем в заказе, тем большее увеличение.

Плохой пример.

Потому что он Вас опровергает? Да, это, конечно, очень нехорошо :)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731803
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivmad_nazgulВсе решается для объекта созданием общих методов "сохранить_в_БД", "прочитать_из_БД"
А для БД создания приблизительно такой структуры:

Фигура:
ID
Тип_Фигуры_ID

Тип:
ID
Название

Точка:
ID
Фигура_ID
Координата_X
Кордината_Y

При реализации методов объекты сохраняют данные которые у них есть и считывают их из БД.


Ну вот, ты явно раскрыл структуру данных всех объектов. Где же инкапсуляция ?

Так структура данных в БД а не в объектах.
Вы не знаете точно как, например, хранятся координаты точек в классах.
То ли это массив, то ли каждая точка отдельно, то ли вообще храниться ссылка на какой-то общий объект фигура.
Реализация как и что храниться в объектах вы не знаете.
У вас есть только есть методы - "нарисовать", "сохранить_в_БД", "прочитать_из_БД".

А в БД да, все данные "на виду" и доступны. ;-)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731826
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivМне например лень писать по 4 лишних процедуры/запроса на каждый объект, если это Hiber делает самостоятельно.


За вас это напишут программисты СУБД :-)
Потому что любой ORM может написать такие запросы только для простейших случаев.
Остальное ХП. ;-)


MasterZivКод не может ни относится к какой-то модели данных, ни не относится. Потому что это код, а не данные.

А вот ЯП может.
SQL специально создан для работы с РМД.
И SQL специально создан для манипуляции с данными в рамках РМД.
Команды SQL можно использовать в не реляционных БД, но с большими ограничениями.
А если полностью реализовывать стандарт SQL, то получим что нужно реализовывать РМД.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38731877
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfDPH3,
А что со справочниками? Вы добавляете данные из них в блоб, грузите их отдельно по id (с кешированием), выносите айдишники за блоб и джойните при выборке?

А смотря что за справочники.
Есть просто бизнес-сущности (типа списка пользователей) - и это не справочник, а нормальная сущность, связь с которой желательно хранить явно.

Есть всяческие справочники, имеющие смысл только на уровне бизнес-логики (типа списка алгоритмов, типов объектов и т.п.) - им в БД вообще делать нечего, так как существенна целостность совместно БД и кода приложения и только на уровне БД ее не отконтролировать.

Иногда под справочниками прячут разнообразный UI контент, типа списков стран. Но тут стандарты в помощь )

А что в конкретном случае вызывает проблему?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38733061
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 28.08.2014 16:48, mad_nazgul wrote:

> Ну вот, ты явно раскрыл структуру данных всех объектов. Где же
> инкапсуляция ?

>
> Так структура данных в БД а не в объектах.

Это -- структура ДАННЫХ в ОБЪЕКТАХ.
И именно потому, что ты допускаешь, что она может быть разной в БД и в
объектах, у тебя начинается object-relational gap.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38733064
Фотография MasterZiv
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
On 28.08.2014 16:56, mad_nazgul wrote:

> MasterZiv
> Мне например лень писать по 4 лишних процедуры/запроса на каждый объект,
> если это Hiber делает самостоятельно.
>

> За вас это напишут программисты СУБД :-)
> Потому что любой ORM может написать такие запросы только для простейших
> случаев.
> Остальное ХП. ;-)

Есть одна маленькая проблемка: я и есть программист СУБД :-(
Поэтому писать мне.


Posted via ActualForum NNTP Server 1.5
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38734566
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZiv> Так структура данных в БД а не в объектах.
Это -- структура ДАННЫХ в ОБЪЕКТАХ.
И именно потому, что ты допускаешь, что она может быть разной в БД и в
объектах, у тебя начинается object-relational gap.


Именно из-за того, что я допускаю что она может быть разная, я не использую ORM. ;-)
Т.е. проектирую объекты как удобно для решения задачи.
А потом делаю "слой" который сохраняет данные из объектов.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38734571
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MasterZivЕсть одна маленькая проблемка: я и есть программист СУБД :-(
Поэтому писать мне.


Рад за вас.
Я программист Java, мне проще написать запрос, чем использовать ORM и писать ХП. :-)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38735815
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Ну чего решили то?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38736092
Фотография Infernal V. Raven
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123,

Решили, что ты - тролль
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38736297
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123,

Решили, что уже пошла четвертая страница, а я получил ровно 1(один) ценный ответ. Ну и еще штуки три содержат полезную информацию.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38736979
DPH3
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfprog123,

Решили, что уже пошла четвертая страница, а я получил ровно 1(один) ценный ответ. Ну и еще штуки три содержат полезную информацию.

О, а что за ответ и какая информация?
Сделай уж summary )
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38736995
prog123
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Попробую подвести итог:

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

точно, тролль.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38737010
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123Попробую подвести итог:

Концепция, работы с данными, основанная на таблицах (сущностях) себя не просто изжила, но и с самого начала была ошибочной.

Вы правы!
Все NoSQL обречены от рождения!
<:o)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38737052
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123Попробую подвести итог:

Концепция, работы с данными, основанная на таблицах (сущностях) себя не просто изжила, но и с самого начала была ошибочной.

Соответственно 99 % баз данных работающих сейчас это только исключение из этого правила, а всех кто заработал кучу бабла на этом - просьба вернуть бабло обратно или перечислить заработанное на
благотворительность в фонд убогих и немощных, которые не смогли заработать на таблицах....
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38737124
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123Попробую подвести итог:

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

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

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

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

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

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

Нашли. Основой всему, - поле.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38737842
Жоао!
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
prog123Нашли. Основой всему, - поле.
Торсионное?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38737889
Фотография vadiminfo
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123
Нашли. Основой всему, - поле.
Хлеб всему голова?
Ну это без дополнительных пояснений звучит как что-то сельскохозяйственное. Типа Хлеб всему голова? На поля, товарищи!!!
Но пропагандой ИТ, скорее всего, не обманешь. Это я мыстль Явлинского расширил: у него вместо ИТ была экономика.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38738111
mad_nazgul
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
prog123Нашли. Основой всему, - поле.

Нифига!
Основой всему группа!
А поле потом... после группы ;-)
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #38738152
Фотография vmag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
mad_nazgulОсновой всему группа!
А поле потом... после группы ;-)

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

scf- Справочники меняются крайне редко, разве что создаются новые версии элементов или добавляются новые. Иначе у юзера отчет за прошлый год не будет совпадать с бумажной версией или что-то подобное.
Как обычно реализуется БД, если справочники меняются, а отчеты за прошлые годы постоянно нужны?

scf- логику выносят из базы во внешние приложения - база только исполняет запросы. Причина очевидна - ЦПУ не резиновое, а распределенные базы ентерпрайз класса сложны и жутко дороги.
Это правда на 2018 г?

С NoSQL пока знаком на уровне расшифровки аббревиатуры, буду изучать позже.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39706785
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пельмениscf- В крупных БД с десятками миллионов записей явные FK не используются , а кол-во констрейнтов сильно ограничено, ибо индексы.
Это правда на 2018 г?
Нет.

Пельмениscf- Справочники меняются крайне редко, разве что создаются новые версии элементов или добавляются новые. Иначе у юзера отчет за прошлый год не будет совпадать с бумажной версией или что-то подобное.
Как обычно реализуется БД, если справочники меняются, а отчеты за прошлые годы постоянно нужны?Отчёты строятся не по справочникам, а по фактам. Факты за прошлый год не меняются.

Либо сохраняют историю справочных данных.
Пельмениscf- логику выносят из базы во внешние приложения - база только исполняет запросы. Причина очевидна - ЦПУ не резиновое, а распределенные базы ентерпрайз класса сложны и жутко дороги.
Это правда на 2018 г?Да, выносят. Но не все.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39706790
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
И ещё есть версионность, ивент-сорсинг, лямбда-архитектура...
Вообщем как обычно решение зависит от задачи
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707045
Valery_B
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Пельмениscf- логику выносят из базы во внешние приложения - база только исполняет запросы. Причина очевидна - ЦПУ не резиновое, а распределенные базы ентерпрайз класса сложны и жутко дороги.
Это правда на 2018 г?

И да, и нет.

Хорошие разработчики: Выносят логику из базы во внешние приложения - Сервера приложений (Application Servers) .
Не хорошие разработчики: Используют курсоры, динамический SQL(который хз как отлаживать) и ищут любые причины, что бы ничего не переделывать. У них 15+лет опыта и вообще.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707178
Пельмени
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Спасибо.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707574
Фотография Megabyte
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BХорошие разработчики: Выносят логику из базы во внешние приложения - Сервера приложений (Application Servers) .

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

У меня на текущей работе так сложилось, что в 99% случаем FK отсуствует. Но в 50% я считаю, что зря, т.к. это потенциальный источник ошибок. Но так исторически сложилось.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707897
Пельмени
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
MegabyteУ меня на текущей работе так сложилось, что в 99% случаем FK отсуствует.
Меня жизнь вообще к такому не готовила.

Если меня пьяного разбудить в 3 часа ночи в поджечь кровать - я все равно расскажу про ключи и нормализацию.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707914
Фотография softwarer
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
ПельмениЕсли меня пьяного разбудить в 3 часа ночи в поджечь кровать - я все равно расскажу про ключи и нормализацию.
Пожалуй, это самая убедительная причина не будить кого-то в 3 часа ночи, какую я только слышал.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707921
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Ооо, мою первую тему подняли :-)

Добавлю свеженького опыта:
- одной базой должно пользоваться ровно одно приложения, для остальных есть API
- если базой пользуется одно приложение, оно может эффективно кешировать содержимое
- концепция "большой бизнес-объект в базе" ущербна, вместо наворачивания отношений один-ко-многим в хибернейте лучше сделать отдельно "страховой полис" и отдельно "список застрахованных страхового полиса по id полиса" и работать с ними независимо
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39707999
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfодной базой должно пользоваться ровно одно приложения
Админка?

Приложения, которыми пользуются пользователи напрямую в базу ходить не должны, ибо не фиг!
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39708001
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfесли базой пользуется одно приложение, оно может эффективно кешировать содержимое
А два типа не могут? Или Memcached, Redis считаются не эффективными?
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39708002
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfконцепция "большой бизнес-объект в базе" ущербна, вместо наворачивания отношений один-ко-многим в хибернейте лучше сделать отдельно "страховой полис" и отдельно "список застрахованных страхового полиса по id полиса" и работать с ними независимо
О да, давайте выкинем на помойку DDD и NoSQL базы
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39708010
scf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Дмитрий Мух,

Админка тоже должна использовать API. Помимо архитектурных плюсов, такой подход дает еще и плюс к безопасности в виде независимой авторизации, аудита и ограничение возможностей админки только запланированным функционалом.

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

Про помойку - топик про реляционные СУБД. NoSQL - отдельная тема.
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39708017
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfАдминка тоже должна использовать API. Помимо архитектурных плюсов, такой подход дает еще и плюс к безопасности в виде независимой авторизации, аудита и ограничение возможностей админки только запланированным функционалом.
Короче Вы фанат микросервисной архитектуры
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39708019
Дмитрий Мух
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
scfДва приложения писать в базу и поддерживать общий или собственный кеш - не могут. Инвалидация будет слишком сложна, да и совместное использование кеша имеет те же проблемы, что и совместное использование базы, только гораздо хуже.
Ещё как могут, и никаких сложностей с инвалидацией. Годами проверено на практике.

Хорошо бы Вы конкретные примеры проблем привели, а то я, признаюсь, в недоумении
...
Рейтинг: 0 / 0
Проектирование БД - текущее состояние дел?
    #39708182
tunknown
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Valery_BХорошие разработчики: Выносят логику из базы во внешние приложения - Сервера приложений (Application Servers) .
Не хорошие разработчики: Используют курсоры, динамический SQL(который хз как отлаживать) и ищут любые причины, что бы ничего не переделывать. У них 15+лет опыта и вообще.Вывод- хорошие=молодые. Опыт не нужен. Сарказм офф
...
Рейтинг: 0 / 0
122 сообщений из 122, показаны все 5 страниц
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД - текущее состояние дел?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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