King_cat
Хочется понимать в чем проявляется смысл объектно- реляционной БД, чтобы создавать модели, которые будут эффективно писаться / храниться / читаться.
King_cat
Может кто- то объяснить (книжки на эту тему дружно молчат) в чем собственно выражается объектность Postgres
Чтобы это понимать, надо понимать объетно-ориентированную парадигму программирования. Знаешь ли ты, что такое объект? Тебе покажется, что да, ты знаешь, кто этого не знает и всё такое. Но дело в том, что объект в программировании не имеет отношения к объекту в философии. Объект в программировании - это такое отдельное абстрактное понятие, которое определяется рядом признаков. К тому же в программировании понятий “объект” есть несколько.
Так вот это понятие “объект”, про которое идёт речь в названии “объектно-реляционная база данных”, взято из понятия “объектно-ориентированная база данных”, а понятие “объект” в понятии “объектно-ориентированная база данных” взято из объектно-ориентированной парадигмы программирования. Соответственно, если ты её не знаешь (а почти все её не знают, хотя им кажется, что они знают), то ты и не можешь сообразить, о чём вообще речь идёт. Ты не можешь сообразить потому, что ты к понятию “объект” применяешь другое понимание понятия “объект”. Вот в этом лежит корень твоего сумбурного понимания объектно-реляционной базы данных.
Ты не понимаешь, про какие объекты речь идёт, потому что это понятие “объект” сначала нужно из ООП взять. Так этого ещё и не хватит, одного только определения. Дальше нужно будет ещё изучать, что такое взаимодействие между объектами, что такое протоколы объектов, роли объектов и так далее. А в объектно-ориентированной парадигме от объектов нужно ещё и к классам подниматься, рассматривать эти классы, какие асбтракции они представляют, как эти абстракции распределяются по хорошо отделённым друг от друга уровням абстракции. Довольно муторная тема, с наскока взять не получится её, так как там много всяких аспектов. Всё это нужно, чтобы проектировать большие системы, чтобы эти большие системы не разваливались сами собой в результате энтропии. Поэтому там есть иерархия классов с одним корневым классом, которая и сдерживает это всё в виде такой целой конструкции, из которой ничего не торчит. Есть такая метафора самолёта: в самолёте все болтики, листы обшивки, турбины и все остальные детали всё время пытаются упасть на Землю, это происходит непрерывно, но при этом на Землю они не падают, когда весь самолёт летит; это чудо какое-то, прямо парадокс; так вот это чудо получается в результате объектно-ориентированного устройства самолёта. С программами так же: ты получаешь преимущество внутри программы за счёт её внутреннего устройства. Вот для чего это ООП нужно. Ясен пень, что вероятность правильно собрать программу в таком виде, не зная необходимого материала, примерно равна вероятности собрать самолёт, который полетит, не зная всех нужных теорий. Получится ведро с гайками и болтами, которое в крайнем случае даже полетит, но не так как надо и не туда куда надо. Короче, оно на бошку кому-нибудь упадёт и всё.
Так что лучше забей пока что и используй Django + ORM + PostgreSQL. Никто тебя не будет дуплить, что ты это всё так построил. Всё равно на данный момент это предел твоих возможностей. Ну, то есть, по тебе видно, что ты не шаришь, поэтому никто не будет от тебя требовать какие-то космические вещи типа элементарного перехода в измерение Икс одним лёгким движением руки и победы там над Крэнгом и Шреддером вместе взятыми.
Отредактировано py.user.next (Июль 13, 2022 03:06:09)