powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Я слышал про базы данных в которых нельзя делать Update
18 сообщений из 18, страница 1 из 1
Я слышал про базы данных в которых нельзя делать Update
    #35781917
Я слышал про базы данных в которых нельзя делать Update данных вроде называються warehouse

Просветите по этому вопросу
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35782093
Василий Петрович,
Это называется "слышал звон..."
Лет 4 - 5 назад интересовался этой проблемой (писал диплом). Поэтому кратко объясняю.

Data Warehouse (хранилища данных) - особым образом организованные БАЗЫ ДАННЫХ. И, соответственно, в них есть таблицы с данными. К таблицам хранилищ применимы любые операции, применимые к таблицам "обычных" баз данных. В том числе и Update.
Отличия хранилищ от "обычных" баз данных заключаются в том, что данные в хранилищах определенным образом организованы. Хранятся в хранилищах, как правило, агрегированные данные, т.е. некоторые суммарные значения (допустим, выпуск определенным предприятиятием определенной группы продукции в определенном году). И , как правило, данные эти частично денормализованы. То есть, таблицы хранилищ могут содержать такую информацию, которую в других базах данных делят на две таблицы. Это нужно для того, чтобы не "перелопачивать гору" данных "обычной" учетной системы за несколько лет, а максимально быстро получить отчет для принятия управленческого решения или найти некоторую закономерность в данных (Data Mining).

Т.е., технически сделать Update Вам ничего не помешает. Другое дело, что логически это может быть неверно...
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35782179
Что то типа Olap...
Спасибо неизвестный станиславский!!!!
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783811
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Василий ПетровичЯ слышал про базы данных в которых нельзя делать Update данных вроде называються warehouse

Коллега, базы в которых нельзя делать UPDATE называются READ ONLY базы данных. Они имеют определённое отношение к Data Mart и Data Warehouse - но только с точки зрения пользователя. Используются они в основном для аналитических и статистических отчётов. Данные в эти таблицы могут быть записаны специальным образом - методами ETL - Extraction Transformation & Load. Техника этого процесса выходит за рамки моего поста. Но идея очень проста - заливать можно, читать - пожалуйста, удалять и изменять - только в самом крайнем случае. И то - чаще всего всё и сразу. Или есть ещё так называемое "Slow Changing Dimensions" Например Вы анализируете работу Вашего агента продаж в Северном Регионе а она возьми даи выйди за муж и смени фамилию. Для того чтобы не потерять ее историю надо придумать механизм активации новой фамилии и деактивации старой. Весь процесс Вы совершенно правы - известен под OLAP - On-Line Analitical Processing. Но по секрету Вам скажу - если нельзя делать UPDATE но очень хочется - то всегда можно...
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783832
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr Marmelad,
Почему ReadOnly? Может там разрешены Insert и Delete
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783837
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Naf,

Обычно :UPDATE = DELETE + INSERT :)
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783849
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
То есть если уж разрешено и INSERT и DELETE то запрещать UPDATE - полный .... пробел
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783851
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr MarmeladNaf,

Обычно :UPDATE = DELETE + INSERT :)
это почему? то есть если я хочу поправить название в записи справочника произойдет удаление записи и создание новой? а все ссылки на запись?
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783853
Naf
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr MarmeladТо есть если уж разрешено и INSERT и DELETE то запрещать UPDATE - полный .... пробелну почему же, просто созданные записи неизменяемы
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783875
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafну почему же, просто созданные записи неизменяемы

BIG QUESTION MARK

Если Вы обратите внимание Коллега - я именно так и указал - если нельзя но очень хочется то - можно. Когда я указал READ ONLY - не сочтите за повелительное наклонение. Для ЮЗЕРОВ такая база будет READ ONLY. Логически. Потому как если они там бесконтрольно начнут исправлять.... ой что будет..... Поэтому мы и делаем такие системы. Виртуально они - READ ONLY чтение разрешено. Вся оптимизация делается на чтение. А вот запись (и как подмножество исправление) - только подконрольными методами. И если запись можно удалить а на ее место вставить точно такую же (но с изменениями) - будет исправление.
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35783915
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Nafто есть если я хочу поправить название в записи справочника произойдет удаление записи и создание новой? а все ссылки на запись?

В SQL не зря придумана комманда UPDATE - изменение: позволяет сэкономить ресурсы системы. Изменение можно проводить на уровне колонки. Но по логике вполне достаточно удалить (DELETE) и внести новую (INSERT) для любого изменения. Но это не значит что мы всегда так делаем, ведь правда? Некоторые SQL движки именно так и технически выполняют комманду UPDATE - сначала запоминаются все связи и индексы, потом связи обрываются (bypass), заносится в память строка данных, на диске эта запись удаляется, в памяти (ОЗУ) происходят все изменения, новая строка записывается и все связи восстанавливаются вместе с индексами. Выглядит это как UPDATE а на практике это DELETE + INSERT.
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35784014
expla
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Mr Marmelad,

ладно вам коллегам мозги пудрить. UPDATE в общем случае не заменяется последовательностью DELETE и INSERT, хотя из другой транзакции не всегда можно понять, как была получена запись. Не надо путать низкоуровневое удаление/вставку записи с командами INSERT и DELETE которые ещё много чего делают, например триггеры запускают.

В OLAP системах не принято делать не только UPDATE, но и DELETE. Но технических ограничений для выполнения этих команд как правило нет.
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35784026
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
explaВ OLAP системах не принято делать не только UPDATE, но и DELETE

Абсолютно корректно - во-первых НЕ ПРИНЯТО. Во вторых если вам или ВЫ запретили UPDATE - должен быть запрещён и DELETE. Об этом я и толкую. Поэтому данные можно собрать под лозунгом: Всех впускать - никого не выпускать.
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35812758
Сергей.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В DWH за один раз заливают и меняют миллионы строк, поэтому Update применять нельзя - слишком ресурсоемкая операция.

Update нужно делать на одной строке. Delete + Insert - на миллионах.
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35813960
Фотография ASCRUS
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
NafMr MarmeladNaf,

Обычно :UPDATE = DELETE + INSERT :)
это почему? то есть если я хочу поправить название в записи справочника произойдет удаление записи и создание новой? а все ссылки на запись?
Вся фича в том, что проектирование схем хранилищ данных (ХД) сильно отличаются от проектирования баз для OLTP. И принципы загрузки информации туда так же отличаются. Обычно информация грузится подготовленная скриптами или через ETL средство, где она при загрузке в том числе верифицируется. Поэтому в ХД ссылки чаще всего просто не используются. Бывает что при загрузке информация вообще соединяется в одну таблицу (денормализуется), что дает отличный прирост производительности ad-hoc запросов (например Sybase IQ не сильно показывает выдающиеся результаты на модели ХД с нормализованными таблицами и ссылками, но без ссылок и денормализацией таблиц он просто начинает летать с бешеной скоростью на огромных объемах информации).
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35814048
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей.В DWH за один раз заливают и меняют миллионы строк, поэтому Update применять нельзя - слишком ресурсоемкая операция.

Update нужно делать на одной строке. Delete + Insert - на миллионах.

С этим постулатом я вынужден не согласиться. При правильной постановке задачи UPDATE выигрывает в производительности. Но это совсем не значит что UPDATE должен иметь место. Кстати ничего не мешает Вам на многомиллионной таблице сделать UPDATE:

Код: plaintext
1.
2.
3.
UPDATE Customer
SET CustomerName = CustomerName + '_' + 'OLD'
FROM Customer
WHERE CustomerID BETWEEN  10 , 000 , 000  and  30 , 000 , 000 

Отработает очень эффективно. Практически на любой SQL базе данных. Но если UPDATE разрешён данному оператору.
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35814165
Сергей.
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Mr Marmelad,

Ваше право, соглашаться с этим или нет. Ральф Кимбал в своем DWH ETL Toolkit ясно пишет - update в DWH делать нельзя.

Я сравнивал update в хранилище - 20 часов против 20 минут delete+insert

Загрузка хранилища - сложный процесс, его одним упдейтом не взять...
...
Рейтинг: 0 / 0
Я слышал про базы данных в которых нельзя делать Update
    #35814249
Фотография Mr Marmelad
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Сергей.Ральф Кимбал в своем DWH ETL Toolkit ясно пишет - update в DWH делать нельзя.
..

Коллега, Я нигде не утверждал обратное. Обратите внимание - делать то можно, но нужно ли. Для DWH Должен быть логический запрет на UPDATE и DELETE. От физического запрета таких действий защиты нет.

А проблема временнОго толка описанная Вами - решилась бы просто оптимизацией запроса. Правильным индексом например. Хотя конечно не всегда.
...
Рейтинг: 0 / 0
18 сообщений из 18, страница 1 из 1
Форумы / Проектирование БД [игнор отключен] [закрыт для гостей] / Я слышал про базы данных в которых нельзя делать Update
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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