powered by simpleCommunicator - 2.0.49     © 2025 Programmizd 02
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД - текущее состояние дел?
25 сообщений из 122, страница 3 из 5
Проектирование БД - текущее состояние дел?
    #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
25 сообщений из 122, страница 3 из 5
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Проектирование БД - текущее состояние дел?
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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