Математические методы ф хранения информации 5 курс

advertisement
Математические методы
хранения информации
ф
ФН12 C 5 курс
Лекция 1
Концепции баз данных
База данных (БД) представляет собой совокупность специальным
образом
р
организованных
р
данных, хранимых
р
в памяти вычислительной системы и отображающих состояние объектов и их взаимосвязей в рассматриваемой предметной области.
Предметная область - часть реального мира, подлежащая изучению.
Система управления базами данных (СУБД) - это комплекс
языковых и программных средств, предназначенный для создания,
ведения и совместного использования БД многими пользователями.
пользователями
Логическая модель данных.
БД можно представить как совокупность информации, организованной в виде множеств.
множеств Каждое множество содержит записи унифицированного вида. Записи состоят из полей.
Множества называют таблицами,
таблицами а записи — строками таблиц.
таблиц Строки
таблиц связаны друг с другом
Способы связи строк:
•Отношение — "один к одному";
1:1.
•Отношение — "один
один ко многим
многим";;
1:N
1:N.
•Отношении — "многие ко многим"; N:M.
Логическую структуру хранимых в базе данных называют моделью
представления данных.
Основные модели представления данных:
•
•
•
•
•
•
•
иерархическая,
иерархическая
сетевая,
реляционная,
постреляционная,
многомерная,
объектно ориентированная,
объектно-ориентированная,
объектно- реляционная .
Иерархические базы данных
Иерархические базы данных поддерживают древовидную организацию
информации. Для описания структуры (схемы) иерархической БД на
некотором языке программирования используется тип данных "дерево"
дерево .
Справка. Ориентированным деревом называется бесконтурный ориентированный граф у
которого полустепень захода любой вершины не больше 1 и существует ровно одна вершина ,
называемая корнем ориентированного дерева, полустепень захода которой
й равна 0
Графически отношения изображают
дугами ор. графа, типы записей вершинами (диаграмма Бахмана).
Связи между записями выражаются в виде отношений предок/потомок.
Вершина V ориентированного дерева называют потомком вершины U,
U если существует
путь ненулевой длины из U в V. Вершина U называется предком вершины V.
У каждой записи есть ровно одна родительская запись. Это помогает поддерживать ссылочную целостность.
целостность Когда запись удаляется из дерева,
дерева
все ее потомки также должны быть удалены.
Пример: модель данных предприятия
Предприятие состоит из отделов, в которых работают
П
б
сотрудники. В
каждом отделе может работать несколько сотрудников, сотрудник не
может р
работать более чем в одном отделе.
Для информационной системы управления персоналом необходимо
создать отношение, состоящее из родительской записи
ОТДЕЛ (НАЗВАНИЕ_ОТДЕЛА, КОЛИЧЕСТВО_СОТРУДНИКОВ)
и дочерней записи
СОТРУДНИК (ФАМИЛИЯ, ДОЛЖНОСТЬ, ОКЛАД).
Для автоматизации учета контрактов с заказчиками необходимо создать
еще две иерархические структуры : заказчик - контракты - сотрудники
(задействованные в работе над контрактом) и исполнитель-контракт (если
исполнитель принимает участие более чем в одном контракте)
ЗАКАЗЧИК (НАЗВАНИЕ_ЗАКАЗЧИКА, АДРЕС),
(НОМЕР,, Д
ДАТА,СУММА),
,
),
КОНТРАКТ (
ИСПОЛНИТЕЛЬ (ФАМИЛИЯ, ДОЛЖНОСТЬ, НАЗВАНИЕ_ОТДЕЛА)
отдел
Название_отдела
Количество_сотрудников
Количество
сотрудников
заказчик
Название_заказчика
Адрес
сотрудник
сотрудник
сотрудник
Фамилия
Должность
Оклад
Фамилия
Должность
Оклад
Фамилия
Должность
Оклад
контракт
контракт
контракт
Номер
Дата
Сумма
Номер
Дата
Сумма
Номер
Дата
Сумма
1.1(a).
исполнитель
исполнитель
Фамилия
Должность
Название_отдела
Фамилия
Должность
Название_отдела
исполнитель
исполнитель
Фамилия
Должность
Название_отдела
контракт
контракт
контракт
Номер
Дата
Сумма
Номер
Дата
Сумма
Номер
Дата
Сумма
1.1(b).
1.1(c).
Рис. 1.1. Иерархическая база данных
Фамилия
Должность
Название_отдела
Из примера видны недостатки иерархических БД:
1)Частично дублируется информация между записями СОТРУДНИК и
ИСПОЛНИТЕЛЬ (такие записи называют парными, поддержка
соответствия между ними не предусмотрена.
предусмотрена )
2)Иерархическая модель реализует отношение между исходной и
дочерней записью по схеме 1:N, то есть одной родительской записи
может соответствовать любое число дочерних.
д
р
Если исполнитель принимает
р
у
участие более чем в одном контракте
р
(т.е.
(
возникает связь типа N:M), в базу данных необходимо ввести еще одно
групповое отношение, в котором ИСПОЛНИТЕЛЬ будет являться исходной
записью, а КОНТРАКТ - дочерней (рис. 1.1 (c)).
Происходит дублирование информации.
Information Management System (IMS) компании IBM, появившаяся в 1968 году.
Сетевые базы данных
Ориентированной сетью ( или просто сетью) называют
бесконтурный ориентированный граф.
Основные принципы сетевой модели данных были разработаны в
середине 60-х годов(Ч. Бахман. ), эталонный вариант описан в отчетах
рабочей группы по языкам баз данных (COnference on DAta SYstem
Languages) CODASYL (1971г.).
Для описания схемы сетевой БД используется две группы типов:
"запись" и "связь". Тип "связь" определяется для двух типов "запись":
предка и потомка.
В сетевой модели допускаются отношения "многие ко многим". Записи не
зависят друг от друга. При удалении записи удаляются и все ее связи, но
не сами связанные записи.
Примеры сетевых БД ADABAS, IDMS ( Cullinet), Total (Cincom)
Достоинства сетевой модели данных:
•Возможность эффективной реализации по показателям затрат
памяти и оперативности.
•В сравнении с И.М. сетевая модель предоставляет большие
возможности в смысле допустимости образования произвольных
связей.
•Программисту
р р
у не нужно
у
заботиться о том,, как организуется
р
у
физическое хранение данных на диске. Это ослабляет зависимость
приложений и данных.
данных
•Стандартизация (стандарт CODASYL) .
Недостатки сетевой модели данных:
•Высокая сложность и жесткость схемы БД, построенной на ее основе.
•Сложность для понимания и выполнения обработки информации в БД
обычным пользователем.
•Ослаблен контроль целостности связей вследствие допустимости
установления произвольных связей между записями.
•Оптимальную структуру базы данных сложно сформировать, готовую
структуру трудно менять.
•При изменении вида таблицы,
б
все отношения с другими таблицами
б
должны быть установлены заново, чтобы не нарушилась
целостность данных.
Под целостностью данных понимают: при модификации таблиц не должны
быть потеряны сами данные и логические связи между ними; указанный тип
и диапазон данных должен соблюдаться при любых изменениях.
Задача сложная,
сложная программисты часто отменяют некоторые ограничения целостности ради
упрощения приложений.
Преобразование иерархической структуры в сетевую:
•Деревья заменяются одной сетевой структурой;
•Для отображения типа N:M вводится запись СОТРУДНИК_КОНТРАКТ,
не имеющая полей, для связи записей КОНТРАКТ и СОТРУДНИК, рис.1.2
отдел
заказчик
Название_отдела
Количество_сотрудников
Название_заказчика
Адрес
сотрудник
сотрудник
Фамилия
Должность
Оклад
Фамилия
Должность
Оклад
контракт
контракт
контракт
Номер
р
Дата
Сумма
Номер
р
Дата
Сумма
Номер
р
Дата
Сумма
сотрудник
Фамилия
Должность
Оклад
Сотрудник_ контракт
Сотрудник_ контракт
Сотрудник_ контракт
Рис. 1.2. Сетевая база данных
Реляционные базы данных
Реляционная модель данных - разработанная Э.Коддом в 1970г.
логическая модель данных основанная на математической теории
отношений.
отношений
Эдгар Франк Кодд (23 августа 1923 — 18 апреля 2003) — британский
математик, работы которого заложили основы теории реляционных баз
данных.Работая в компании IBM, он создал реляционную модель данных.
Отношение ( relation ) представляет собой множество элементов,
называемых кортежами.
Наглядной формой представления отношения является двумерная
таблица.
Таблица имеет строки (записи) и столбцы (колонки).
Каждая строка таблицы имеет одинаковую структуру и состоит из
полей.
о ей Строкам
С ро а таблицы
аб
соо е с
соответствуют
ю кортежи,
ор е
а столбцам
с о б а атрибуты отношения.
"Изначально
Изначально ... реляционная модель ... рассматривалась как средство для
освобождения пользователей от неприятностей, связанных с потребностью иметь дело с массой деталей представления хранимых данных”
Э.Кодд сформулировал "принципиальные
принципиальные мотивы создания реляционной
модели":
•Независимость данных;
•Простейшая из числа возможных структура, согласованная с
семантическими соображениями;
•Обеспечение унифицирующего принципа, упрощающего
язык, требуемый для взаимодействия, и анализ операций,
требуемый для авторизации доступа и оптимизации поиска;
•Сравнительно легкий анализ согласованности [данных].
В сравнении с рассмотренными ранее моделями, реляционная модель
требует
б
от СУБД гораздо более
б
высокого уровня сложности.
В реляционной модели база данных представляет собой централизован
централизованное хранилище таблиц, обеспечивающее безопасный одновременный
доступ к информации со стороны многих пользователей.
Таблицы содержат данные относящиеся непосредственно к записи и
ссылки на строки других таблиц.
таблиц Связи между записями являются
неотъемлемым свойством реляционной модели.
Каждая строка таблицы имеет одинаковую структуру. Такие таблицы
легко изображать
р
в графическом
р ф
виде.
В реляционной модели достигается информационная и структурная
независимость.
Реляционная модель данных описывает:
•структуры данных в виде (изменяющихся во времени) наборов
отношений;
•теоретико-множественные операции над данными: объединение,
пересечение, разность и декартово произведение;
•специальные реляционные операции: селекция, проекция,
соединение и деление;
•специальные правила, обеспечивающие целостность данных.
Языки запросов можно отнести к двум классам:
1) алгебраические языки, позволяющие выражать запросы средствами специализированных операторов, применяемых к отношениям;
2) языки исчисления предикатов, представляющие собой набор правил для записи выражения, определяющего новое отношение.
В реляционных СУБД применяется язык SQL, позволяющий формировать произвольные, нерегламентированные запросы. Это язык
четвертого поколения, непроцедурный язык, т.е. говорит ,что надо
делать, а не как.
Достоинство реляционной модели данных заключается в простоте,
понятности и удобстве физической реализации на ЭВМ. Это явилось
основной причиной их широкого использования.
Недостатками реляционной модели являются :
о
отсутствие
е стандартных
р
средств
ре
идентификации
е
ф
о
отдельных
е
записей;
ей
сложность описания иерархических и сетевых связей.
MySQL —реляционная СУБД, открыто распространяемая. MySQL, как и
многие другие СУБД, функционирует по модели "клиент /сервер".
Компьютер
пользователя
Клиент
MySQL
Сервер
MySQL
Хранилище
данных
Рис. 1.3 Схема передачи данных в архитектуре "клиент/сервер"
Сервером определенного ресурса в компьютерной сети называется
компьютер (программа), управляющий этим ресурсом,
клиентом - компьютер (программа), использующий этот ресурс.
Достоинством организации ИС по архитектуре клиент
клиент-сервер
сервер является
сочетание централизованного хранения, обслуживания и коллективного
доступа к общей корпоративной информации с индивидуальной работой
пользователей над персональной информацией.
Постреляционная
р
модель
Классическая реляционная модель предполагает неделимость данных,
хранящихся в полях записей
й таблиц.
б
С
Существует ряд случаев, когда это
ограничение мешает эффективной реализации приложений.
Постреляционная модель данных представляет собой расширенную
реляционную
р
ц
у модель,
д
, снимающую
щу ограничение
р
неделимости
д
данных,,
д
хранящихся в записях таблиц.
Постреляционная модель данных допускает многозначные поля - поля,
значения которых состоят из подзначений.
Набор значений многозначных полей считается самостоятельной
таблицей,
б
й встроенной
й в основную таблицу.
б
Пример. Информация об объектах (накладные и товары) представлена с помощью реляционной (а) и постреляционной (б) моделей.
Таблица накладные (INVOICES) содержит номера накладных (INV_N) и
номерах покупателей (CUST_N).
Таблица накладные-товары содержит данные о каждой из
накладных: INV_N, название товара (GOODS) и количество товара (QTY).
а)
накладные
INV_N
CUST_N
0373
8723
8374
8232
7364
8723
б)
накладные
INV N
INV_N
CUST N
CUST_N
GOODS
QTY
0373
8723
Сыр
3
Рыба
2
Лимонад
1
0373
накладныетовары
INV N
INV_N
GOODS
QTY
8374
8232
0373
Сыр
3
8374
Сок
6
0373
Рыба
2
8374
Печенье
2
8374
Л
Лимонад
1
7364
Й
Йогурт
1
8374
Сок
6
8374
Печенье
2
7364
Й
Йогурт
1
8723
Рис. 1.4 Реляционная (а) и постреляционная (б) модели.
Д
Для
обеспечения целостности данных приходится
р
создавать
процедуры, автоматически вызываемые до или после обращения к
данным.
Достоинством постреляционной модели является возможность
представления совокупности связанных реляционных таблиц одной
постреляционной таблицей. Это обеспечивает высокую наглядность
представления информации и повышение эффективности ее обработки.
Недостатком постреляционной модели является сложность решения
проблемы
б
обеспечения
б
целостности и непротиворечивости хранимых
данных.
Постреляционная модель данных поддерживается СУБД uniVers.
К числу других СУБД,
СУБД основанных на постреляционной модели данных
данных,
относятся также системы Bubba и Dasdb
Многомерная модель
Многомерный подход к представлению данных в базе появился
практически одновременно с реляционным.
Многомерные системы позволяют оперативно обрабатывать информацию
для проведения анализа и принятия решения.
Интерес к МСУБД после выхода в 1993 году программной статьи «12
12
законов аналитической обработки в реальном времени» одного из
основоположников реляционного подхода Э. Кодда.
Э.Коддом был предложен термин OLAP.(Online Analytical Processing оперативная аналитическая обработка)
Работа Кодда финансировалась Arbor, компанией, выпустившей свой
собственный OLAP-продукт — Essbase (теперь принадлежит Hyperion)
В статье сформулированы 12 основных требований к системам класса
OLAP, важнейшие из которых связаны с возможностями концептуального
представления и обработки многомерных данных.
В развитии концепций ИС можно выделить следующие два
направления:
- системы оперативной
й (транзакционной)
(
й) обработки;
б б
- системы аналитической обработки (системы поддержки принятия
решений);
например, поиск в БД документов, в которых имеется вхождение
заданной фразы в определенном контексте.
Реляционные СУБД предназначались для информационных систем
оперативной обработки информации и в этой области были весьма
эффективны.
эффективны
В системах аналитической обработки они показали себя несколько
неповоротливыми и недостаточно гибкими.
Многомерные СУБД являются узкоспециализированными СУБД,
предназначенными
р
для интерактивной
р
аналитической обработки
р
информации.
Основные понятия, используемые в многомерных СУБД:
агрегируемостъ , историчность и прогнозируемость данных.
Агрегируемостъ данных означает рассмотрение информации на
различных уровнях ее обобщения. В ИС степень детальности
представления информации зависит от уровня пользователя :
пользователь-оператор, аналитик, управляющий, руководитель.
Историчность данных предполагает обеспечение высокого
уровня статичности (неизменности) собственно данных и их
взаимосвязей,, а также обязательность привязки
р
данных ко времени.
р
Прогнозируемость данных подразумевает задание функций
прогнозирования и применение их к различным временным
интервалам.
Многомерность модели данных означает не многомерность визуализации ц
ц
цифровых
фр
д
данных ((n-мерные
р
гиперкубы),
р у ), а многомерное
р
логическое представление структуры информации при описании и в
операциях манипулирования данными.
С формальной точки зрения мы имеем дело с n-арным отношением σ
σ ⊆ A1 × A2 × .. × An
где Ai-конечное множество, характеризующее признак.
При многомерной модели с мерностью больше двух, визуально
информация представляется в виде двухмерных таблиц или
графиками.
Данные при этом представляют собой "срезы" из многомерного
хранилища данных, выполненные с разной степенью детализации
По сравнению с реляционной моделью многомерная организация данных
обладает более высокой наглядностью и информативностью.
Пример:
а)
данные об объемах продаж автомобилей.
Модель
Месяц
Объем
апрель
10
ВАЗ " Калина "
май
15
ВАЗ " Калина "
июнь
4
"Ford"
апрель
10
"Ford"
июнь
18
"Renault"
июнь
20
ВАЗ "Калина"
б)
Модель
апрель
май
июнь
ВАЗ " Калина "
10
15
4
" Ford "
10
18
N
" Renault"
N
20
N
Рис. 1.5 Реляционная (а) и многомерное представление данных (б).
Основные понятия многомерных моделей
данных
данных.
Измерение (Dimension) - это множество однотипных данных,
данных
образующих одну из граней гиперкуба.
В многомерной
р
модели
д
данных
д
измерения
р
играют
р
р
роль индексов,
д
,
служащих для идентификации конкретных значений в ячейках
гиперкуба.
Ячейка (Cell) или показатель - это поле, значение которого
однозначно определяется фиксированным набором измерений. Тип
поля чаще всего определен как цифровой.
цифровой В зависимости от того,
того как
формируются значения некоторой ячейки, обычно она может быть
переменной либо формулой .
Рис. 1.6 Трехмерная модель данных.
В существующих МСУБД используются два основных варианта
(схемы) организации данных: гиперкубическая и поликубическая.
В поликубической схеме предполагается,
предполагается что в БД может быть
определено несколько гиперкубов с различной размерностью и с
различными измерениями в качестве граней. Примером системы,
поддерживающей поликубический вариант БД, является сервер Oracle
Express Server.
В случае гиперкубической схемы предполагается, что все показатели
определяются одним и тем же набором измерений. Это означает, что
при наличии нескольких гиперкубов БД все они имеют одинаковую
размерность и совпадающие измерения.
В случае многомерной модели данных применяется ряд
специальных операций, к которым относятся: формирование "среза",
"вращение", агрегация и детализация.
Операция
р ц
"Срез"
р
((Slice)) представляет
р д
собой подмножество
д
гиперкуба,
р у ,
полученное в результате фиксации одного или нескольких измерений.
Операция "вращение" (Rotate) применяется при двухмерном
представлении данных. Суть ее заключается в изменении порядка
измерений при визуальном представлении данных.
Операцию "вращение"
вращение можно обобщить и на многомерный случай
случай,
если под ней понимать процедуру изменения порядка следования
измерений. В простейшем случае, например, это может быть взаимная
перестановка двух произвольных измерений.
Операции "агрегация" (Drill Up) и "детализация" (Drill Down)
означают соответственно переход к более общему и к более детальному
представлению информации пользователю из гиперкуба.
Достоинством многомерной модели данных является удобство и
эффективность аналитической обработки больших объемов данных,
связанных со временем. При организации обработки аналогичных
данных на основе реляционной модели происходит нелинейный рост
трудоемкости операций
й в зависимости от размерности БД и существенное
увеличение затрат оперативной памяти на индексацию.
Недостатком многомерной модели данных является ее громоздкость
для простейших задач обычной оперативной обработки информации.
Примеры систем, поддерживающими многомерные модели данных:
M di M
Media
Multi-matrix
li
i (S
(Speedware),
d
) O
Oracle
l E
Express S
Server (Oracle)
(O
l )иC
Cache
h
(InterSystems).
Некоторые программные продукты,
продукты [Media/ MR (Speedware)],
(Speedware)] позволяют
одновременно работать с многомерными и с реляционными БД.
В СУБД Cache (внутренняя модель данных - многомерная) реализованы
три способа доступа к данным: прямой (на уровне узлов многомерных
массивов), объектный и реляционный.
Объектно-ориентированная модель
Объектно-ориентированная база данных (ООБД) позволяет
программистам, которые работают с языками третьего поколения,
интерпретировать все свои информационные сущности как объекты,
хранящиеся в оперативной памяти.
Дополнительный интерфейсный уровень абстракции обеспечивает
перехват запросов, обращающихся к тем частям базы данных, которые
находятся в постоянном хранилище на диске. Изменения, вносимые в
объекты,
б
оптимальным образом
б
переносятся из памяти на диск.
Преимуществом ООБД является упрощенный код.
Данные в ООБД способны принять вид любой структуры, которую
можно выразить на используемом языке программирования.
программирования .
Сложные информационные структуры выражаются в ООБД лучше,
чем в реляционных базах данных, устраняется необходимость
транслировать данные из того формата, в котором они хранятся в
ф
формат
поддерживаемый
й СУБД
Объектно-ориентированные СУБД выполняют много дополнительных
функций. Это окупается сполна, если отношения между данными очень
сложны
В объектно-ориентированной модели при представлении данных имеется
возможность идентифицировать отдельные записи базы.
Между записями БД и функциями их обработки устанавливаются взаимосвязи с помощью механизмов, подобных соответствующим средствам в
объектно-ориентированных
б
языках программирования.
Большим недостатком объектно-ориентированных баз данных является
их тесная связь с применяемым языком программирования.
Стандартизованная объектно-ориентированной модель описана в рекомендациях стандарта ODMG-93 (Object Database Management Group ).
Структура объектно-ориентированной БД графически представима в виде
дерева, узлами которого являются объекты, т.е. внешне похожа на
структуру иерархической БД. Основное отличие между ними состоит в
методах манипулирования данными.
Свойства объектов описываются некоторым стандартным типом.
типом
Для выполнения действий над данными в О.О. модели БД
Д
Д применяются
р
логические операции, используются такие механизмы ООП, как
инкапсуляция, наследование и полиморфизм. Могут применяться
операции, подобные командам SQL (например, для создания БД).
Создание и модификация БД сопровождается автоматическим формированием и последующей корректировкой индексов (для быстрого поиска
данных).
Инкапсуляция ограничивает область видимости имени свойства
пределами того объекта, в котором оно определено.
Наследование, наоборот, распространяет область видимости
свойства на всех потомков объекта.
объекта
Полиморфизм в объектно-ориентированных языках
программирования означает способность одного и того же
программного кода работать с разнотипными данными.
Недостатками объектно-ориентированной модели являются высокая
понятийная сложность,
сложность неудобство обработки данных и низкая скорость
выполнения запросов.
Широкое распространение следующие ООБД:
РОЕТ (РОЕТ Software), Jasmine (Computer Associates),
Versant ((Versant Technologies),
g ),
ODB-Jupiter (научно-производственный центр "Интелтек Плюс")
Iris, Orion и Postgres.
Объектно-реляционные базы данных
Объектно-реляционные СУБД объединяют в себе черты реляционной
и объектной моделей. Реляционные базы данных хорошо
работают со встроенными типами данных и гораздо хуже — с
пользовательскими,, нестандартными.
р
Д
Для р
работы с новыми типами
данных, надо или включать его поддержку в СУБД, или писать
программы для управления данными в приложении.
Объектно-реляционная СУБД позволяет загружать код,
предназначенный для обработки "нетипичных" данных. Таким
образом, база данных сохраняет свою табличную структуру, но
способ обработки некоторых полей таблиц определяется извне, т.е.
программистом.
Download