КОНЦЕПЦИИ ХРАНЕНИЯ ДАННЫХ

advertisement
Учебная дисциплина
«Хранилища данных»
Лекция 2
КОНЦЕПЦИИ ХРАНЕНИЯ ДАННЫХ
Учебные вопросы:
1 Концепция хранения в реляционных базах
данных
2 Концепция организации хранилищ данных
3 Концепция организации многомерной модели
данных
Литература
1. Малыхина М.П. Базы данных: основы,
проектирование, использование. – Спб.: БХВПетербург, 2004. – 512 с.
2. Бергер А.Б. Microsoft SQL Server 2005 Analysis
Services. OLAP и многомерный анализ данных /
Бергер А.Б, Горбач И.В., Меломед Э.Л, Щербинин
В.А., Степаненко В.П. / Под общ. Ред. А.Б. Бергера,
И.В. Горбач. – СПб.: БХВ-Петербург, 2007. – 928 с.
3. Барсегян А.А. Методы и модели анализа
данных: OLAP и Data Mining / Барсегян А.А.,
Куприянов М.С., Степаненко В.В., Холод И.И. –
СПб.: БХВ-Петербург, 2004. – 336 с.
Цель лекции
Цель
лекции
–
сформировать
представление у студентов об основных
концепциях организации реляционных баз
данных, хранилищ и витрин данных,
построении многомерных моделей в
системах
оперативного
и
интеллектуального анализа данных.
1 Концепция хранения в реляционных базах
данных
В настоящее время реляционные БД занимают
доминирующее положение. С математической точки
зрения
реляционная
БД
представляет
собой
ограниченный набор конечных отношений различной
арности на множестве элементарных данных. Над
отношениями
можно
осуществлять
различные
алгебраические операции. Теоретическое обоснование
реляционной
модели,
выполненное
Э.Коддом,
отличается
использованием строгих принципов
математики и точностью. Все данные в модели
размещаются в таблицах [1].
Трехуровневая архитектура описания данных
включает следующие уровни абстракции: внешний,
внутренний и концептуальный (рисунок 1).
Пользователи
П1
П2
•••
ПN
Внешний уровень
С
Концептуальный уровень
У
Б
Внутренний уровень
Д
База данных
Рисунок 1 – Трехуровневая архитектура описания БД
Представление БД с точки зрения пользователя является
внешним уровнем представления. Каждый пользователь
выделяет
в
моделируемой
предметной
области
интересующие его сущности, атрибуты и связи. Формируя своё
представление о предметной области, выражает их в
наиболее удобной для себя форме. При этом одни и те же
данные у различных пользователей могут отображаться поразному. Таким образом, каждый пользователь при работе
имеет своё представление о БД ( ) и может использовать свой
язык программирования запросов или специальный язык,
поддерживаемый приложением.
Концептуальный
уровень
обеспечивает
представление данных в абстрактной форме. Описание БД на
концептуальном
уровне
является
результатом
концептуального проектирования и включает логическое
описание всех элементов данных и отношений между ними,
логическую структуру БД.
На внутреннем уровне область хранения данных
представляется
как
бесконечное
линейное
адресное
пространство. Внутреннее представление описывает физическую
реализацию БД и содержит:
• распределение дискового пространства для хранения данных;
• описание подробностей сохранения записей;
• сведения о размещении записей;
• сведения о сжатии данных и выбранных методах их
шифрования.
Осуществляется взаимодействие СУБД с методами доступа
операционной системы на внутреннем уровне.
Структура БД OLTP-систем в высокой степени нормализована и
состоит из множества таблиц, связанных между собой
посредством внешних ключей. Нормализованная структура
обеспечивает высокую производительность при поиске и
обработке единичных записей.
Scientific_Teacher
Scientific_work
Work_ID: int
Name: char(250)
Balls_for_one: float
upsize_ts: timestamp
id: decimal(18,0)
pps_id: int
Kafedra_ID: int
Faculty_kod: int
Work_ID: int
Year: int
Value: int
Comments: char(200)
Name: char(250)
Sub_faculty
Faculty
Methodic_Teacher
Faculty_ID: int
Kafedra_ID: int
Faculty_kod: int
Dekan: nvarchar(100)
Telefon_faculty: nvarchar(20)
Faculty_name: nvarchar(50)
Faculty_short_name: nvarchar(50)
Year: int
Name: char(250)
ZavKafedra: nvarchar(50)
Short_name: nvarchar(15)
Telefon: char(15)
Year: int
Teacher
personid: int
Kafedra_ID: int
Faculty_kod: int
id: decimal(18,0)
Edition_ID: int
pps_id: int
Kafedra_ID: int
Faculty_kod: int
Work_ID: int
Year: int
familia: nvarchar(50)
imya: nvarchar(50)
otchestvo: nvarchar(50)
passport_number: nvarchar(20)
organ: nvarchar(100)
passport_data_vyd: datetime
obrazovanie: nvarchar(50)
address: nvarchar(100)
Methodic
Edition_ID: int
Work_ID: int
Authers: char(200)
Name: char(250)
Publish: char(250)
Page_count: int
Year_publish: int
Methodic_work
Work_ID: int
Name: char(250)
Balls_rating_K: float
Balls_rating_A: float
Educational_Teacher
Quality_Teacher
Qualification
Pokazatel_ID: int
Name: char(250)
Balls_rating_A: float
Balls_rating_K: float
id: decimal(18,0)
pps_id: int
Kafedra_ID: int
Faculty_kod: int
Pokazatel_ID: int
Year: int
Value: int
Comments: char(200)
id: decimal(18,0)
pps_id: int
Kafedra_ID: int
Faculty_kod: int
Work_ID: int
Year: int
Value: int
Comments: char(200)
Educational_work
Work_ID: int
Name: char(250)
Balls_for_one: float
Index_train: float
Рисунок 2 – Фрагмент логической структуры БД
Valuation Works
2 Концепция организации хранилищ данных
Основой концепции хранилищ данных (ХД)
является необходимость разделения наборов
данных, предназначенных для транзакционной
обработки, и наборов данных для анализа в
системах поддержки принятия решений (СППР).
Это разделение осуществляется интеграцией,
согласованием и агрегацией разъединенных
данных из OLTP-систем и внешних источниках
данных в ХД.
Автор концепции W. Inmon определяет ХД
как
предметно-ориентированные,
интегрированные,
неизменчивые,
поддерживающие
хронологию
средства
хранения данных [2,3].
Концепция
ХД
обеспечивает
единую
модель
представления данных предприятия, организации и
реализацию интегрированного источника данных. В
соответствие с этой реализацией в ХД собираются данные из
транзакционных БД и других источников. В ХД
поддерживается хронология данных: сохраняются данные о
времени. Концептуально модель ХД можно представить в
виде схемы на рисунке 3. Данные из различных источников
помещаются в ХД, а их описания в репозиторий метаданных.
Пользователь, используя средства визуализации, построения
отчетов, статистической обработки и другие, анализирует
данные в хранилище. Выбор средств работы пользователя с
ХД теоретически не должен влиять на его структуру и
функции поддержания в актуальном состоянии. Физическая
реализация приведённой концептуальной схемы может быть
самой разнообразной.
Данные
Операционные
системы
Хранилище
данных
Предоставление
информации
Информация
Источники данных
Внешние
источники
Запрос
Репозиторий
метаданных
Требование
Приложение
пользователя
Метаданные
Рисунок 3 – Концептуальная модель хранилища данных
ВИРТУАЛЬНОЕ ХД эмулируют работу с данными в
информационной системе, как с хранилищем данных.
Виртуальное ХД можно организовать, создав ряд
«представлений» (view) в БД или применив специальные
средства доступа.
Главными достоинствами такого подхода являются
простота и малая стоимость реализации, единая платформа с
источником информации, отсутствие сетевых соединений
между источником информации и ХД.
Существенный недостаток в том, что создается не ХД как
таковое, а иллюзия его существования. Структура хранения и
само хранение не претерпевают изменений, и остаются
проблемы
с
производительностью
системы,
трансформацией данных, интеграцией данных с другими
источниками, отсутствие истории и чистоты данных,
зависимость от характеристик основной БД.
Известна ДВУХУРОВНЕВАЯ АРХИТЕКТУРА ХД, предполагающая
построение витрин данных (Data mart) без создания
центрального хранилища. При этом вся информация,
поступающая
из
OLTP-систем,
ограничена
конкретной
предметной областью. При построении витрин данных
используются основные принципы построения ХД, которые
можно рассматривать как ХД в миниатюре.
Достоинства этого подхода состоит в простоте и малой
стоимости реализации, высокой производительности за счет
физического разделения регистрирующих и аналитических
систем, поддержке истории данных и возможности добавления
метаданных. Концепция витрин данных предложена Forrester
Research в 1991 году [4]. Главная идея витрин данных –
сохранение
тематического
подмножества
заранее
агрегированных данных. Размер тематического подмножества
данных намного меньше множества данных ХД, что значительно
снижает
уровень
требования
к
производительности
компьютерной техники.
Построение ХД предприятия, как правило, выполняется в
трехуровневой архитектуре.
На первом уровне расположены разнообразные источники данных
и справочные системы.
Второй уровень ХД содержит центральное хранилище и, возможно,
оперативный склад данных.
В центральном хранилище
консолидируется информация от всех источников с первого уровня.
Оперативный склад данных не содержит исторических данных и
выполняет две функции: хранения аналитической информации для
оперативного управления и подготовки данных для последующей
загрузки в центральное хранилище.
Третий уровень ХД представляет собой набор предметноориентированных витрин данных, данные в которые загружаются из
центрального хранилища данных. Таким образом, ХД представляет
собой предметно-ориентированное, интегрированное, связанное со
временем и неизменное во времени собрание данных. Предметная
ориентация коллекции данных означает, что данные отражают
существенные аспекты деятельности организации. Интеграция данных
предполагает
собрание
данных
в
целостную
структуру,
обеспечивающую анализ данных.
Основными составляющими структуры хранилищ данных
являются таблица фактов (Fact table) и таблицы измерений
(Dimension tables).
Таблица фактов. Таблица фактов является основной таблицей
хранилища данных. Как правило, она содержит сведения об
объектах или событиях, совокупность которых будет в
дальнейшем анализироваться. Обычно выделяют четыре
встречающихся типа фактов:
• факты, связанные с транзакциями (Transaction facts). Они
основаны на отдельных событиях;
• факты, связанные с «моментальными снимками» (Snapshot
facts). Основаны на состоянии объекта;
• факты, связанные с элементами документа (Line-item facts).
Основаны на том или ином документе;
• факты, связанные с событиями или состоянием объекта (Event
or state facts), представляюobt возникновение события без
подробностей.
Таблица фактов, которая может быть построена на основе БД
Valuation Works, приведена на рисунке 4. В рассматриваемом
примере измерениям будущего куба соответствуют первые
шесть полей, а агрегатным данным — последние четыре. В
таблице фактов нет никаких сведений о том, как группировать
записи при вычислении агрегатных данных. В ней есть
идентификаторы продуктов или клиентов. Эти сведения, в
дальнейшем используемые для построения иерархий в
измерениях куба, содержатся в таблицах измерений.
Work_Fact
Zvanie: int
pps_id: int
Kafedra_ID: int
Faculty_kod: int
Pokazatel_ID: int
Stepeny_ID: int
Doljnosty_ID: int
Year: int
Value: int
Рисунок 4 – Пример таблицы фактов
Таблицы измерений содержат неизменяемые либо редко
изменяемые данные. В подавляющем большинстве случаев эти
данные представляют собой по одной записи для каждого члена
нижнего уровня иерархии в измерении. Таблицы измерений
также содержат как минимум одно описательное поле (обычно с
именем члена измерения) и, как правило, целочисленное
ключевое поле (обычно это суррогатный ключ) для однозначной
идентификации члена измерения. Если будущее измерение,
основанное на данной таблице измерений, содержит иерархию,
то таблица измерений также может содержать поля,
указывающие на «родителя» данного члена в этой иерархии.
Таблица измерений может содержать и поля, указывающие на
«прародителей», и иных «предков» в данной иерархии. Каждая
таблица измерений должна находиться в отношении «один ко
многим» с таблицей фактов (рисунок 5).
Teacher_Dim
personid: int
Kafedra_ID: int
Faculty_kod: int
familia: nvarchar(50)
imya: nvarchar(50)
Рисунок 5 – Пример таблицы измерений
Одно измерение куба может содержаться как в одной
таблице, так и в нескольких связанных таблицах,
соответствующих различным уровням иерархии в измерении
(рисунок 6). Если каждое измерение содержится в одной
таблице, такая схема хранилища данных носит название
«звезда». Если же хотя бы одно измерение содержится в
нескольких связанных таблицах, такая схема хранилища данных
носит название «снежинка».
Degree_Dim
Faculty
Degree_Id: int
Faculty_Id: int
Dekan: nvarchar(100)
Telefon_faculty: nvarchar(20)
Faculty_name: nvarchar(50)Sub_fakulty
Faculty_short_name: nvarchar(50)
Sub_fakulty_Id: int
Faculty_id: int
Name: char(250)
ZavKafedra: nvarchar(50)
Short_name: nvarchar(15)
Teacher_Dim
Name: char(250)
Balls_degree_A: float
Balls_degree_K: float
Teacher_Id: int
Sub_fakulty_id: int
Faculty_id: int
First_name: nvarchar(50)
imya: nvarchar(50)
otchestvo: nvarchar(50)
pol: nvarchar(8)
passport_seria: nvarchar(20)
passport_number: nvarchar(20)
Post_Dim
Post_Id: int
Name: char(250)
Balls_post_A: float
Balls_post_K: float
Work_Fact
Teacher_id: int
Sub_fakulty_ID: int
Faculty_id: int
Degree_id: int
Post_id: int
Status_id: int
Year: int
Value: int
Comments: char(200)
Рисунок 6 – Пример схемы «снежинка»
Status_Dim
Status_Id: int
Name: char(250)
Balls_status_A: float
Balls_status_K: float
3 Концепция многомерной модели данных
В службах SQL Server Analysis Services используется
унифицированная многомерная модель данных
(Unified Dimensional Model, UDM). Эта модель
позволяет различным клиентским приложениям
получить доступ к данным из реляционных и
многомерных БД без применения различных моделей
(рисунок 7). Роль унифицированной многомерной
модели заключается в создании моста между
пользователем и источниками данных [2, 3]. Модель
UDM конструируется на одном или нескольких
источниках данных. Пользователь запрашивает
модель UDM при помощи различных клиентских
средств, например Microsoft Excel.
Analysis
Services
(сервер UDM)
MDX/SQL
Клиентские
приложения
Реляционные
БД
Файлы с
данными
XMLA
UDM
ADO.NET,
OLE DB
Web – серверы
Рисунок 7 – Многомерная модель данных
Преимущества
унифицированной
многомерной
модели данных:
• значительно обогащает пользовательскую модель;
• обеспечивает
высокую
производительность
запросов, поддерживая интерактивный анализ даже на
очень больших объемах данных;
• использует в модели бизнес-правила для поддержки
более содержательного анализа данных;
• поддерживает «закрытие цикла»: пользователям
позволяется действовать с данными, которые они видят
на экране монитора.
• Многомерная
модель
данных
определяет
представление
данных
на
трех
уровнях:
концептуальной
модели;
физической
модели;
прикладной модели.
Физическая
модель
основывается
на
концептуальной модели. Как и в случае
реляционных БД, физическая модель определяет
условия хранения данных на физических
носителях:
• место хранения: тип файлов с данными,
носитель информации, размещение носителя;
• способ хранения: в сжатом или несжатом
виде, вид индексирования;
• правила доступа к данным, организацию
кеширования данных, способ занесения и
извлечения данных из памяти.
Страница (Page)
Поле 1
Поле 2
Поле №
Null Bits
Поле №
Null Bits
Поле №
Null Bits
Запись (Record) 2
Поле 1
Поле 2
••••
Запись (Record) N
Поле 1
Поле 2
Рисунок 8 – Структура записей и страниц
Для описания многомерного пространства
используются следующие термины:
измерение (dimension), описывающее элемент
данных для анализа;
• элемент (member): соответствует одной точке на
измерении.
• значение элемента (member value): уникальная
характеристика элемента;
• атрибут (attribute): полная коллекция элементов
одного типа;
• размер (size) или кардинальность (cardinality)
измерения:
количество
элементов,
которое
содержит измерение.
Метки (Members)
y2
y1
y3
x1
x2
x3
z
z3
U313
U323
U333
z2
U312
U322
U332
z1
U311
U321
U331
Пустая ячейка (Empty Cell)
y
Измерения (Dimensions)
Ячейка (Cell)
Мера (Measure)
x
Рисунок 9 – Трехмерное пространство данных
При описании многомерного пространства
дополнительно
используются
следующие
понятия:
• кортеж (tuple), определяющий координату в
многомерном модельном пространстве;
• срез
(slice),
определяющий
секцию
многомерного модельного пространства, которая
определяется кортежем.
Контрольные вопросы
1.
2.
3.
4.
5.
6.
7.
8.
Поясните сущность концепции хранения в реляционных базах
данных.
Перечислите и охарактеризуйте уровни представления данных
в реляционных базах данных.
Поясните сущность концепции организации хранилищ
данных.
Приведите концептуальную модель организации хранилищ
данных и поясните назначение её элементов.
Поясните сущность трехуровневой архитектуры построения ХД
Поясните сущность концепции организации многомерной
модели данных.
Приведите многомерную модель данных и поясните
назначение её элементов.
Поясните преимущества унифицированной многомерной
модели данных.
Download