|
|
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Я слышал про базы данных в которых нельзя делать Update данных вроде называються warehouse Просветите по этому вопросу ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 10:41 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Василий Петрович, Это называется "слышал звон..." Лет 4 - 5 назад интересовался этой проблемой (писал диплом). Поэтому кратко объясняю. Data Warehouse (хранилища данных) - особым образом организованные БАЗЫ ДАННЫХ. И, соответственно, в них есть таблицы с данными. К таблицам хранилищ применимы любые операции, применимые к таблицам "обычных" баз данных. В том числе и Update. Отличия хранилищ от "обычных" баз данных заключаются в том, что данные в хранилищах определенным образом организованы. Хранятся в хранилищах, как правило, агрегированные данные, т.е. некоторые суммарные значения (допустим, выпуск определенным предприятиятием определенной группы продукции в определенном году). И , как правило, данные эти частично денормализованы. То есть, таблицы хранилищ могут содержать такую информацию, которую в других базах данных делят на две таблицы. Это нужно для того, чтобы не "перелопачивать гору" данных "обычной" учетной системы за несколько лет, а максимально быстро получить отчет для принятия управленческого решения или найти некоторую закономерность в данных (Data Mining). Т.е., технически сделать Update Вам ничего не помешает. Другое дело, что логически это может быть неверно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:26 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Что то типа Olap... Спасибо неизвестный станиславский!!!! ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 11:48 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Василий ПетровичЯ слышал про базы данных в которых нельзя делать Update данных вроде называються warehouse Коллега, базы в которых нельзя делать UPDATE называются READ ONLY базы данных. Они имеют определённое отношение к Data Mart и Data Warehouse - но только с точки зрения пользователя. Используются они в основном для аналитических и статистических отчётов. Данные в эти таблицы могут быть записаны специальным образом - методами ETL - Extraction Transformation & Load. Техника этого процесса выходит за рамки моего поста. Но идея очень проста - заливать можно, читать - пожалуйста, удалять и изменять - только в самом крайнем случае. И то - чаще всего всё и сразу. Или есть ещё так называемое "Slow Changing Dimensions" Например Вы анализируете работу Вашего агента продаж в Северном Регионе а она возьми даи выйди за муж и смени фамилию. Для того чтобы не потерять ее историю надо придумать механизм активации новой фамилии и деактивации старой. Весь процесс Вы совершенно правы - известен под OLAP - On-Line Analitical Processing. Но по секрету Вам скажу - если нельзя делать UPDATE но очень хочется - то всегда можно... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:29 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Mr Marmelad, Почему ReadOnly? Может там разрешены Insert и Delete ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:39 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Naf, Обычно :UPDATE = DELETE + INSERT :) ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:40 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
То есть если уж разрешено и INSERT и DELETE то запрещать UPDATE - полный .... пробел ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:43 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Mr MarmeladNaf, Обычно :UPDATE = DELETE + INSERT :) это почему? то есть если я хочу поправить название в записи справочника произойдет удаление записи и создание новой? а все ссылки на запись? ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:43 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Mr MarmeladТо есть если уж разрешено и INSERT и DELETE то запрещать UPDATE - полный .... пробелну почему же, просто созданные записи неизменяемы ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:44 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Nafну почему же, просто созданные записи неизменяемы BIG QUESTION MARK Если Вы обратите внимание Коллега - я именно так и указал - если нельзя но очень хочется то - можно. Когда я указал READ ONLY - не сочтите за повелительное наклонение. Для ЮЗЕРОВ такая база будет READ ONLY. Логически. Потому как если они там бесконтрольно начнут исправлять.... ой что будет..... Поэтому мы и делаем такие системы. Виртуально они - READ ONLY чтение разрешено. Вся оптимизация делается на чтение. А вот запись (и как подмножество исправление) - только подконрольными методами. И если запись можно удалить а на ее место вставить точно такую же (но с изменениями) - будет исправление. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 18:53 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Nafто есть если я хочу поправить название в записи справочника произойдет удаление записи и создание новой? а все ссылки на запись? В SQL не зря придумана комманда UPDATE - изменение: позволяет сэкономить ресурсы системы. Изменение можно проводить на уровне колонки. Но по логике вполне достаточно удалить (DELETE) и внести новую (INSERT) для любого изменения. Но это не значит что мы всегда так делаем, ведь правда? Некоторые SQL движки именно так и технически выполняют комманду UPDATE - сначала запоминаются все связи и индексы, потом связи обрываются (bypass), заносится в память строка данных, на диске эта запись удаляется, в памяти (ОЗУ) происходят все изменения, новая строка записывается и все связи восстанавливаются вместе с индексами. Выглядит это как UPDATE а на практике это DELETE + INSERT. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 19:12 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Mr Marmelad, ладно вам коллегам мозги пудрить. UPDATE в общем случае не заменяется последовательностью DELETE и INSERT, хотя из другой транзакции не всегда можно понять, как была получена запись. Не надо путать низкоуровневое удаление/вставку записи с командами INSERT и DELETE которые ещё много чего делают, например триггеры запускают. В OLAP системах не принято делать не только UPDATE, но и DELETE. Но технических ограничений для выполнения этих команд как правило нет. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 20:29 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
explaВ OLAP системах не принято делать не только UPDATE, но и DELETE Абсолютно корректно - во-первых НЕ ПРИНЯТО. Во вторых если вам или ВЫ запретили UPDATE - должен быть запрещён и DELETE. Об этом я и толкую. Поэтому данные можно собрать под лозунгом: Всех впускать - никого не выпускать. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 28.01.2009, 20:42 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
В DWH за один раз заливают и меняют миллионы строк, поэтому Update применять нельзя - слишком ресурсоемкая операция. Update нужно делать на одной строке. Delete + Insert - на миллионах. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 10:46 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
NafMr MarmeladNaf, Обычно :UPDATE = DELETE + INSERT :) это почему? то есть если я хочу поправить название в записи справочника произойдет удаление записи и создание новой? а все ссылки на запись? Вся фича в том, что проектирование схем хранилищ данных (ХД) сильно отличаются от проектирования баз для OLTP. И принципы загрузки информации туда так же отличаются. Обычно информация грузится подготовленная скриптами или через ETL средство, где она при загрузке в том числе верифицируется. Поэтому в ХД ссылки чаще всего просто не используются. Бывает что при загрузке информация вообще соединяется в одну таблицу (денормализуется), что дает отличный прирост производительности ad-hoc запросов (например Sybase IQ не сильно показывает выдающиеся результаты на модели ХД с нормализованными таблицами и ссылками, но без ссылок и денормализацией таблиц он просто начинает летать с бешеной скоростью на огромных объемах информации). ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 15:45 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Сергей.В DWH за один раз заливают и меняют миллионы строк, поэтому Update применять нельзя - слишком ресурсоемкая операция. Update нужно делать на одной строке. Delete + Insert - на миллионах. С этим постулатом я вынужден не согласиться. При правильной постановке задачи UPDATE выигрывает в производительности. Но это совсем не значит что UPDATE должен иметь место. Кстати ничего не мешает Вам на многомиллионной таблице сделать UPDATE: Код: plaintext 1. 2. 3. Отработает очень эффективно. Практически на любой SQL базе данных. Но если UPDATE разрешён данному оператору. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 16:13 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Mr Marmelad, Ваше право, соглашаться с этим или нет. Ральф Кимбал в своем DWH ETL Toolkit ясно пишет - update в DWH делать нельзя. Я сравнивал update в хранилище - 20 часов против 20 минут delete+insert Загрузка хранилища - сложный процесс, его одним упдейтом не взять... ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 16:45 |
|
||
|
Я слышал про базы данных в которых нельзя делать Update
|
|||
|---|---|---|---|
|
#18+
Сергей.Ральф Кимбал в своем DWH ETL Toolkit ясно пишет - update в DWH делать нельзя. .. Коллега, Я нигде не утверждал обратное. Обратите внимание - делать то можно, но нужно ли. Для DWH Должен быть логический запрет на UPDATE и DELETE. От физического запрета таких действий защиты нет. А проблема временнОго толка описанная Вами - решилась бы просто оптимизацией запроса. Правильным индексом например. Хотя конечно не всегда. ... |
|||
|
:
Нравится:
Не нравится:
|
|||
| 12.02.2009, 17:10 |
|
||
|
|

start [/forum/topic.php?fid=32&fpage=93&tid=1543441]: |
0ms |
get settings: |
6ms |
get forum list: |
15ms |
check forum access: |
2ms |
check topic access: |
2ms |
track hit: |
75ms |
get topic data: |
12ms |
get forum data: |
4ms |
get page messages: |
46ms |
get tp. blocked users: |
1ms |
| others: | 211ms |
| total: | 374ms |

| 0 / 0 |
