Опубликован: 20.12.2010 | Доступ: свободный | Студентов: 2412 / 165 | Оценка: 4.27 / 3.91 | Длительность: 39:39:00
ISBN: 978-5-9963-0353-3
Практикум 4:

Денормализация модели ХД

< Лекция 15 || Практикум 4: 123 || Лекция 16 >

  • Задачи:
    • Что такое денормализация и методы ее реализации;
    • Выполнить горизонтальное секционирование таблицы;
    • Выполнить вертикальное секционирование таблицы;
    • Выполнить объединение таблиц;
    • Выполнить денормализацию колонки.

Определения

  • Денормализацией называется процесс размещения одних и тех же данных в различных объектах БД с целью увеличить производительность обработки запросов.
  • Индикаторы на деномализацию:
    • Критические запросы, обращающиеся к данным более, чем одной таблицы;
    • Вычисления на колонках одной таблицы;
    • Различные пользователи обращаются к таблицам по разным схемам доступа;
    • Частота использования колонок в запросах.

Методы денормализации

  • Горизонтальное секционирование используется для разделения таблицы на несколько таблиц с теми же колонками, но меньшим числом строк.
  • Вертикальное секционирование используется для разделения таблицы на несколько таблиц с одинаковым числом строк, но с различным набором колонок.
  • Объединение таблиц используется для исключения соединений между таблицами путем объединения таблиц в одну.
  • Денормализация колонки используется для исключения соединений между таблицами путем дублирования колонки в этих таблицах.

Горизонтальное секционирование

  • Предположим, что маркетинговая служба анализирует постоянно продажи текущего года, а по годам анализ продаж выполняется один раз в году. Тогда целесообразно с целью увеличения производительности запросов выполнить горизонтальное секционирование таблицы фактов "Продажи" (Sale) по годам.

Рассмотрим, как CASE средства помогают проектировщику данных выполнять секционирование таблиц многомерной модели данных.

Модель ХД


Горизонтальное секционирование

  • Для этого введем в таблицу фактов Sales атрибут "Год продажи" (Sale_year) в качестве ключа секционирования.
  • Для того, чтобы выполнить горизонтальное секционирования таблицы фактов "Продажи" (Sale) можно щелкнуть правой кнопкой мыши на таблице фактов и из всплывающего меню выбрать пункт "Горизонтальное секционирование" (Horizontal Partitioning).

Рассмотрим, как CASE средства помогают проектировщику данных выполнять секционирование таблиц многомерной модели данных.

Ключ для горизонтального секционирования


Горизонтальное секционирование

  • На экране появится диалоговое окно "Выбор таблицы для секционирования" (Partitioned Table Selection). Выбрав таблицу "Продажи" (Sale), нажмите на кнопку "Далее".
  • На экране появится диалоговое окно "Определение секций" (Partition Definitions), в котором необходимо определить имена секций (пусть это будут имена Sale_CurYear, Sale_2009 и Sale_2008) и нажать на кнопку "Далее".

Рассмотрим, как CASE средства помогают проектировщику данных выполнять секционирование таблиц многомерной модели данных.

Выбор таблицы для горизонтального секционирования


Определение имен секций


Горизонтальное секционирование

  • На экране появится диалоговое окно "Выбор дискриминантной колонки" (Discriminant Column Selection). Дисериминантная колонка – этого колонка таблицы, которая входит в критерий секционирования, поэтому ее не обязательно хранить в секциях.
  • Щелкнув левой кнопкой мыши на пиктограмме "Добавить строку", вы активизируете диалоговое окно "Выбор" (Selection). Выберем в списке колонок колонку "Год продажи" (SALE_YEAR), по которой будет выполняться секционирование и нажмем кнопки "ОК" и "Далее".

Рассмотрим, как CASE средства помогают проектировщику данных выполнять секционирование таблиц многомерной модели данных.

Выбор дискриминантной колонки


Выбор дискриминантной колонки


Выбор дискриминантной колонки


< Лекция 15 || Практикум 4: 123 || Лекция 16 >
Владислав Нагорный
Владислав Нагорный

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

Спасибо!

Лариса Парфенова
Лариса Парфенова

1) Можно ли экстерном получить второе высшее образование "Программная инженерия" ?

2) Трудоустраиваете ли Вы выпускников?

3) Можно ли с Вашим дипломом поступить в аспирантуру?