- •Шехтман в. Е.
- •1. Базы данных и модели данных
- •1.1. Введение.
- •1.2. Файлы операционной системы
- •1.3. Пример базы данных.
- •1.4. Иерархическая модель данных
- •1.5. Сетевая модель данных
- •1.6. Инвертированные списки.
- •2. Введение в реляционную модель данных.
- •1.7. Реляционная модель данных
- •3. Реляционная алгебра
- •3.1. Теоретико-множественные операции.
- •3.2. Специальные операции ra
- •4. Нормализация данных
- •4.1. Полная декомпозиция.
- •Магазин товар ндс
- •Товар ндс
- •Магазин ндс
- •Товар ндс
- •Магазин товар ндс
- •4.2. Проблема дублирования данных.
- •1 Глобус 33-33-33
- •2 Глобус 33-33-33
- •4 Океан 77-77-77
- •4.3. Висячие записи.
- •Поставщик Тел
- •4.4. Проблемы, возникающие из-за неудачной структуры данных.
- •4.5. Пятая нормальная форма (5нф).
- •4.6. Функциональная зависимость.
- •4.7. Связь между фз и полной декомпозицией отношения.
- •4.8. Первая нормальная форма (1нф).
- •4.9. Вторая нормальная форма (2нф).
- •4.10. Третья нормальная форма (3нф).
- •4.11. Нормальная форма Бойса-Кодда (нфбк).
- •4.12. Многозначная зависимость.
- •4.13. Четвертая нормальная форма (4нф).
- •4.14. Пример нормализации.
- •4.15. Резюме. Нормальные формы.
- •5. Инфологическое моделирование.
- •5.1. Сущность и набор сущностей
- •5.2. Связи между сущностями.
- •5.3. Рекурсивная связь. Роли.
- •5.4. Множественные связи.
- •5.5. Суперсущности и производные сущности
- •5.6. Слабые наборы сущностей
- •5.7. Борьба с избыточнотью
- •5.8. Преобразование инфологической модели в физическую модель.
- •5.9. Пример инфологического моделирования.
- •6. Язык sql
- •6.1. История sql.
- •6.2. Структура sql.
- •6.3. Язык запросов
- •6.4. Простые запросы на выборку данных.
- •6.5. Агрегатные (групповые) функции.
- •6.6. Вложенные запросы
- •6.7. Внешние объединения
- •6.8. Изменение данных
- •Insert into r1 (o, fio, d) values (5, ‘Иванов’, ’бд’)
- •7. Представления.
- •8. Определение схемы базы данных и ограничений целостности
- •9. Транзакции
- •9.1. Свойства транзакций
- •9.2. Надежное хранение данных
- •9.3. Параллельное выполнение транзакций
- •9.3.1. Коллизия “пропавшие изменения” - lost update problem
- •9.3.2. Коллизия “промежуточные данные” - dirty read
- •9.3.3. Коллизия “Несогласованные данные” - unrepeatable read, inconsistent analysis
- •9.3.4. Коллизия “фантом” - phantom
- •9.4. Уровни изолированности
- •9.5. Тупики
- •10. Ограничение прав доступа в целях обеспечения безопасности
- •11. Физическая организация баз данных
- •11.1. Организация размещения данных.
- •11.2. Организация индексов
- •11.2.1. Поиск в бд.
- •11.2.2. Плотный индекс (индексно-прямые файлы).
- •11.2.3. Неплотный индекс (индексно-последовательные файлы).
- •11.2.4. Сбалансированные деревья.
- •11.2.5. Инвертированные списки.
- •12. Архитектура субд. Методы оптимизации запросов.
- •Логические преобразования запросов.
- •Преобразования запросов с изменением порядка реляционных операций.
- •13. Аналитические системы.
- •Анализ данных.
- •Хранилища данных
- •Типы ошибок
- •Способы реализации olap.
- •Требования к средствам реализации систем оперативной и аналитической обработки данных
- •Многомерная модель данных.
- •Разработка данных
- •14. Загружаемые процедуры.
- •In pr double precision)
- •If eof then leave Cl end if;
- •Insert into providers(code, name)
- •Values (nr.Codec, ‘*** новый поставщик ***’);
- •15.4. Модель сервера приложений (трёхзвенная архитектура, “тонкий клиент”)
- •Список литературы
- •15. Модели совместного доступа к бд
- •15.1. Файл-серверная модель.
- •15.2. Модель клиент-сервер с бизнес-логикой на клиенте.
- •15.3. Модель клиент-сервер с бизнес-логикой на сервере субд (хранимые процедуры и триггеры) и частично на клиенте.
Хранилища данных
Кроме логической сложности построения такого класса систем, на их пути стоят и другие препятствия. Так, предприятие с развитой филиальной структурой может на каждом из филиалов использовать разные программные системы учета своей хозяйственной деятельности. Такие системы могут быть несовместимы друг с другом по составу и структуре информации. Это происходит в силу разных причин, чаще всего приходится сталкиваться с унаследованными системами, с исторически сложившимся состоянием дел. Обычно, приведение всех систем на всех филиалах (или дочерних предприятиях) к единому стандарту невозможно осуществить немедленно, а иногда и нежелательно в силу специфики деятельности конкретного подразделения. Но в рамках всего предприятия необходимо иметь данные, характеризующие общее положение, складывающееся из положений каждого филиала. Тогда возникает задача интеграции информации из разнородных источников – создания хранилища данных (Data Warehouse). Обычно, такая задача решается копированием данных каждого из филиалов в единую базу данных предприятия – хранилище данных, с преобразованием этих данных к единому формату. Кроме того, в хранилище необходима информация не только внутрикорпоративная, но и поступающая из внешнего мира, например, курсы валют, результаты торгов акциями и т. д. Данные в хранилище и являются предметом анализа.
При создании хранилища необходимо уделять внимание очистке поступающей в него информации. Это связано с наличием множества источников поступления данных в хранилище, каждый из которых может содержать ошибки, пропуски и т. д.
Типы ошибок
Противоречивость информации
Для каждой предметной области есть свое определение того, что считать противоречиями в данных. После того, как противоречия выявлены, можно поступать по разному:
При обнаружении нескольких противоречивых записей, удалять их.
Исправить противоречивые данные: вычислить вероятность появления каждого из противоречивых событий и выбрать наиболее вероятный.
Пропуски в данных
Очень серьезная проблема. Это вообще бич для большинства хранилищ данных. Большинство методов прогнозирования исходят из предположения, что данные поступают равномерным постоянным потоком. На практике такое положение встречается крайне редко. Поэтому одна из самых востребованных областей применения хранилищ данных – прогнозирование – оказывается реализованной не качественно или со значительными ограничениями. Для борьбы с этим явлением можно воспользоваться следующими методами:
Аппроксимация и экстраполяция. Т.е. если нет данных в какой-либо точке, мы берем ее окрестность и вычисляем по известным формулам значение в этой точке, добавляя соответствующую запись в хранилище. Хорошо это работает для упорядоченных данных. Например, сведения об ежедневных продажах продуктов.
Определение наиболее правдоподобного значения. Для этого берется не окрестность точки, а все данные. Этот метод применяется для неупорядоченной информации, т.е. в случае, когда нельзя определить окрестность исследуемой точки.
Аномальные значения
Довольно часто происходят события, которые сильно выбиваются из общей картины. И лучше всего такие значения откорректировать. Это связано с тем, что средства прогнозирования ничего не знают о природе процессов. Поэтому любая аномалия будет восприниматься как совершенно нормальное значение. Из-за этого будет сильно искажаться картина будущего. Какой-то случайный провал или успех будет считаться закономерностью. Метод борьбы – робастные оценки. Это методы устойчивые к сильным возмущениям. Мы оцениваем имеющиеся данные ко всему, что выходит за допустимые границы, и применяем одно из следующих действий:
значение удаляется;
значение заменяется на ближайшее граничное значение.
Шум
Почти всегда при анализе мы сталкиваемся с шумами. Шум не несет никакой полезной информации, а лишь мешает четко разглядеть картину. Методов борьбы с этим явлением несколько.
Спектральный анализ. При помощи него мы можем отсечь высокочастотные составляющие данных. Проще говоря, это частые и незначительные колебания около основного сигнала. Причем, изменяя ширину спектра, можно выбирать какого рода шум мы хотим убрать.
Авторегрессионые методы. Этот довольно распространенный метод активно применяется при анализе временных рядов и сводится к нахождению функции, которая описывает процесс плюс шум. Собственно шум после этого можно удалить и оставить основной сигнал.
Ошибки ввода данных
Перед внесением данных в хранилище можно провести проверку форматов. Кроме того, можно исправлять опечатки на основе каталогов допустимых значений (тезаурусов).
Грязные данные представляют собой очень большую проблему. Фактически они могут свести на нет все усилия по созданию хранилища данных. Причем, речь идет не о разовой операции, а о постоянной работе в этом направлении.
Описанные выше варианты решения проблем не единственные. Есть еще достаточно много методов обработки, начиная от экспертных систем и заканчивая нейросетями. Механизмы фильтрации должны стать таким же неотъемлемым атрибутом хранилищ данных как OLAP. Иначе в горе собранного мусора будет практически невозможно найти зерно полезного.
Обычная схема организации данных в хранилище, предназначенном для анализа – так называемая “звезда”. Она образована таблицей фактов – обычно очень большое множество данных, накапливаемое за длительный период времени (например, таблица SUPPLIES, см. Главу 4.14 и Главу 8 – торговая база данных) и несколькими таблицами измерений (обычно, не очень большие по объему, менее динамично изменяемые данные, характеризующие сущности, включаемые в таблицу фактов).
