Модели баз данных
Покупка
Основная коллекция
Тематика:
Системы управления базами данных (СУБД)
Издательство:
Новосибирский государственный технический университет
Год издания: 2018
Кол-во страниц: 124
Дополнительно
Вид издания:
Учебное пособие
Уровень образования:
ВО - Бакалавриат
ISBN: 978-5-7782-3749-0
Артикул: 778152.01.99
Предлагаемое учебное пособие содержит описание широкого спектра моделей баз данных: дореляционных, реляционных, постреляционных, в том числе моделей класса NoSQL. Несмотря на то что
реляционная модель в настоящее время является доминирующей, каждая из этих моделей занимает свою нишу в области информационных технологий при решении задач обработки данных.
Включенный в пособие материал входит в программы курсов лекций «Технологии баз данных» (02.03.03), «Базы данных и экспертные системы» (01.03.02), «Современные технологии баз данных»
(02.04.03), читаемых студентам факультета прикладной математики и информатики. Учебное пособие может быть полезно также специалистам, занимающимся информационными технологиями и самостоятельно осваивающим вопросы разработки баз данных.
Тематика:
ББК:
УДК:
ОКСО:
- ВО - Бакалавриат
- 01.03.02: Прикладная математика и информатика
- 02.03.03: Механика и математическое моделирование
ГРНТИ:
Скопировать запись
Фрагмент текстового слоя документа размещен для индексирующих роботов
Министерство науки и высшего образования Российской Федерации НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ __________________________________________________________________________ О.Е. АВРУНЕВ, В.М. СТАСЫШИН МОДЕЛИ БАЗ ДАННЫХ Утверждено Редакционно-издательским советом университета в качестве учебного пособия НОВОСИБИРСК 2018
УДК 004.652(075.8) А 219 Рецензенты: Ю.В. Тракимус, канд. техн. наук, доцент каф. ПМт, А.А. Цыгулин, канд. техн. наук, доцент каф. ТПИ Работа подготовлена на кафедре теоретической и прикладной информатики для бакалавров IV курса ФПМИ дневного отделения (направления 01.03.02, 02.03.03) и магистров I курса ФПМИ дневного отделения (направление 02.04.03). Аврунев О.Е. А 219 Модели баз данных: учебное пособие / О.Е. Аврунев, В.М. Стасышин. – Новосибирск: Изд-во НГТУ, 2018. – 124 c. ISBN 978-5-7782-3749-0 Предлагаемое учебное пособие содержит описание широкого спектра моделей баз данных: дореляционных, реляционных, постреляционных, в том числе моделей класса NoSQL. Несмотря на то что реляционная модель в настоящее время является доминирующей, каждая из этих моделей занимает свою нишу в области информационных технологий при решении задач обработки данных. Включенный в пособие материал входит в программы курсов лекций «Технологии баз данных» (02.03.03), «Базы данных и экспертные системы» (01.03.02), «Современные технологии баз данных» (02.04.03), читаемых студентам факультета прикладной математики и информатики. Учебное пособие может быть полезно также специалистам, занимающимся информационными технологиями и самостоятельно осваивающим вопросы разработки баз данных. УДК 004.652(075.8) ISBN 978-5-7782-3749-0 © Аврунев О.Е., Стасышин В.М., 2018 © Новосибирский государственный технический университет, 2018
ОГЛАВЛЕНИЕ 1. Ранние подходы к организации баз данных .............................................................. 4 1.1. Иерархическая модель данных ................................................................................. 5 1.2. Сетевая модель данных ........................................................................................... 16 1.3. Системы, основанные на инвертированных списках ........................................... 26 2. Реляционная модель данных ...................................................................................... 30 2.1. Основные понятия реляционной модели данных ................................................. 30 2.2. Фундаментальные свойства отношений ................................................................ 35 3. Объектно-реляционная модель данных ................................................................... 42 3.1. Сложные типы данных ............................................................................................ 43 3.2. Наследование ........................................................................................................... 46 3.3. Определенные пользователем типы данных и функция приведения ................. 50 4. Объектно-реляционное отображение ........................................................................ 54 4.1. Традиционный метод доступа ................................................................................ 54 4.2. Основные компоненты объектно-реляционного отображения ........................... 55 4.3. Проблемы использования объектно-реляционного отображения ...................... 58 5. Многомерная модель данных..................................................................................... 59 5.1. OLAP-технология .................................................................................................... 59 5.2. Концептуальная модель данных ............................................................................. 62 5.3. Реализация многомерной модели данных ............................................................. 73 5.4. Расширения языка SQL для OLAP-анализа данных ............................................. 77 6. NoSQL базы данных ..................................................................................................... 81 6.1. NoSQL. Общие положения ..................................................................................... 81 6.2. Модель ключ-значение ............................................................................................ 89 6.3. Документная модель данных .................................................................................. 92 6.4. Столбцовая модель данных .................................................................................... 97 6.5. Графовая модель данных ...................................................................................... 102 6.6. Общие замечания по NoSQL моделям данных ................................................... 114 7. Темпоральные базы данных .................................................................................... 116 Библиографический список ............................................................................................. 123
В основе любой базы данных лежит модель данных. Моделью данных называется формализованное описание структур единиц информации и операций над ними в информационной системе. Тип модели данных определяет логическую структуру базы данных и то, каким образом данные могут быть сохранены, организованы и обработаны. 1. Ранние подходы к организации баз данных К ранним моделям относят модели, предшествующие реляционной модели данных: иерархическую, сетевую модели и модель на основе инвертированных списков. В явном виде таковых моделей осталось очень мало. Однако эти системы исторически предшествовали реляционным, и для правильного понимания причин повсеместного перехода к реляционным моделям необходимо иметь о них представление. Ниже приведены наиболее общие характеристики ранних систем. 1. Эти системы активно использовались в течение многих лет, дольше, чем используются многие из реляционных СУБД. Некоторые из ранних систем используются даже в наше время, накоплены громадные базы данных, и одной из актуальных проблем информационных систем является использование этих систем совместно с современными системами. 2. Все ранние системы не основывались на каких-либо абстрактных моделях. Понятие модели данных фактически вошло в обиход специалистов в области баз данных только вместе с реляционным подходом. Абстрактные представления ранних систем появились позже на основе анализа и выявления общих признаков у различных конкретных систем. 3. В ранних системах доступ к базам данных производился на уровне записей. Пользователи этих систем осуществляли явную нави
гацию в базе данных, используя языки программирования, расширенные функциями СУБД. Интерактивный доступ к базе данных поддерживался только путем создания соответствующих прикладных программ с собственным интерфейсом. 4. Навигационная природа ранних систем и доступ к данным на уровне записей заставляли пользователя самого производить всю оптимизацию доступа к базе данных без какой-либо поддержки системы. 5. После появления реляционных систем большинство ранних систем было оснащено «реляционными» интерфейсами. Однако в большинстве случаев это не сделало их по-настоящему реляционными системами, поскольку оставалась возможность манипулировать данными в естественном для них режиме. Необходимость изучения ранних моделей вызвана еще одним обстоятельством: внутренняя организация реляционных систем во многом основана на использовании методов ранних систем, и некоторое знание в области ранних систем будет полезно для понимания путей развития постреляционных СУБД (например, в основе графовой модели лежит сетевая модель данных). 1.1. Иерархическая модель данных Иерархическая модель данных была исторически первой структурой баз данных, видимо, из-за того, что древовидные иерархические структуры широко используются в повседневной человеческой деятельности. Это всевозможные классификаторы, ускоряющие поиск информации, иерархические функциональные структуры управления и т.д. Иерархическая модель данных – представление базы данных в виде древовидной (иерархической) структуры, состоящей из объектов (данных) различных уровней. В 1968 г. компания IBM предложила систему управления информацией IMS (Information Management System), основанную на иерархической модели данных. В этой модели данные представляются как дерево связанных записей. Имеется один корневой (родительский) тип записи – корень дерева. С ним в подчиненной связи типа 1: N находятся дочерние записи. Связи между записями выражаются в виде отношений предок/потомок, а у каждой записи есть ровно одна родительская запись. Это помогает поддерживать ссылочную целостность:
когда запись удаляется из дерева, все ее потомки должны быть также удалены. Общая схема иерархической модели представлена на рис. 1.1. Запись типа А Запись типа Б Набор N Запись – владелец набора N записей Член набора N Рис. 1.1. Общая схема иерархической модели данных Одной из наиболее важных сфер применения первых СУБД было планирование производства в компаниях, занимающихся выпуском продукции. Например, если автомобильная компания хотела выпустить 10 000 автомобилей одной модели и 5000 автомобилей другой модели, необходимо знать, сколько деталей следует заказать у своих поставщиков. Чтобы ответить на этот вопрос, необходимо выяснить, из каких частей состоит изделие, затем определить, из каких деталей состоят эти части, и т.д. Так, например, автомобиль состоит из двигателя, корпуса и ходовой части, двигатель состоит из клапанов, цилиндров, свеч и т.д. Список составных частей изделия (рис. 1.2) по своей природе является иерархической структурой. Для хранения данных, имеющих такую структуру, и была разработана иерархическая модель данных, представляющая собой упорядоченный граф (дерева). Автомобиль Двигатель Корпус Ходовая часть Левая дверь Правая дверь Днище Крыша Стекло Ручка Замок Записи Рис. 1.2. Список составных частей изделия
В этой модели каждая запись базы данных представляла конкретную деталь. Между записями существовали отношения предок/потомок, связывающие каждую часть с деталями, входящими в нее. Другими примерами такой иерархии могут быть представление структуры учебной дисциплины (рис. 1.3), где имеются уровни иерархической структуры: дисциплина, раздел, тема, вопрос, или структура организации (директор, заместитель, руководители отделов, сотрудники) (рис.1.4). Дисциплина Базы данных Управление ресурсами в ВС Модели данных Проектирование Управление транзакциями Инфологическое проектирование Логическое проектирование Физическое проектирование ER-диаграмма Формализация связей Классификация сущностей Классификация атрибутов Взаимноисключающие связи Дисциплина Раздел Тема Вопрос Рис. 1.3. Структура учебной дисциплины Организация Отделы Отделы Отделы Филиалы Филиалы Филиалы Начальник Сотрулники Сотрулники Сотрулники Оборудование Компьютеры Компьютеры Компьютеры Прочие устройства Рис. 1.4. Структура организации
На рис. 1.5 изображена простая иерархическая база данных, в которой фиксируется деятельность исполнителей. Корень дерева представляет собой запись об исполнителе. Ее потомками являются две записи о счет-фактурах и три записи об оплатах счетов. Структура счета номер 362 уточняется в трех дочерних записях, у счета номер 368 – в одной записи. Виктор Маркин Счет 362 rub 21/12/2017 Счет 368 rub 06/03/2018 Счет 312 $ 09/01/2018 Счет 389 rub 29/11/2017 Счет 309 $ 11/09/2017 Подготовка ТЗ Проектирование Кодирование Тестирование Рис. 1.5. Экземпляры логических записей базы данных организации В графической диаграмме схемы базы данных вершины используются для интерпретации сущностей, а дуги – для интерпретации связей. При этом возможна ситуация, когда сущность-предок не имеет потомков или имеет их несколько, тогда как у сущности-потомка обязательно должен быть только один предок. Объекты, имеющие общего предка, называются близнецами. Для описания структуры (или, правильнее, схемы) иерархической базы данных на некотором языке программирования используется тип данных дерево. Тип данных дерево схож с типами структура языков программирования PL/1 или С и запись языка Паскаль. Тип дерево является составным. Он может включать в себя подтипы, каждый из которых, в свою очередь является типом дерево. Каждый из типов дерево состоит из одного корневого типа и упорядоченного (возможно, пустого) набора подчиненных типов. Каждый из элементарных типов, включенных в тип дерево, является простым или составным типом запись. Простая запись состоит из одного типа,
например, числового, а составная запись объединяет некоторую совокупность типов (целое, строку символов и т.д.). На рис. 1.6 показан пример дерева, отражающего схему иерархической базы данных. Здесь тип записи «Отдел» является предком для типов записей «Руководитель» и «Сотрудник», а «Руководитель» и «Сотрудник» – потомки типа записи «Отдел». Между типами поддерживаются связи. Отд_номер Отд_размер Отд_Зарп Отдел Рук_номер Рук_Имя Рук_Отдел Руководитель Слу_номер Слу_Имя Слу_Отдел Сотрудник Рис. 1.6. Схема иерархической базы данных организации Содержимое базы данных с такой схемой могло бы выглядеть, например так, как показано на рис. 1.7. 626 25 1 300 000.00 Отдел 4434 Степанов 626 Руководитель 4434 Степанов 60 000.00 Сотрудник 4412 Иванов 35 000.00 4415 Петров 45 000.00 Рис. 1.7. Экземпляры логических записей иерархической базы данных организации Еще один пример схемы базы данных с иерархической моделью, описывающей структуру больницы, и частично загруженной базы данных с такой схемой показаны на рис. 1.8 и 1.9. В иерархических СУБД может использоваться терминология, отличная от приведенной выше. Так в упомянутой системе IMS понятию запись соответствует термин сегмент, а под записью базы данных понимается вся совокупность записей, относящихся к одному экземпляру типа дерево.
№_больницы Название Адрес Число_коек Больница * №_лаб Название Адрес Код ФИО Специальность №_пал Название Число_коек №_служ ФИО Должность Зарплата №_пац ФИО Адрес Код_врача _ / + $ о Лаборатория Врач Палата Персонал Пациент 1 уровень 2 уровень 3 уровень Рис. 1.8. Схема иерархической базы данных больницы Больница 25 60 * * _ _ _ _ L20 L21 L22 L23 18 + 30 + 10 + 933-40 998-50 995-42 / / / $ 1558 $ 5125 $ 3188 $ 1544 $ 1917 о 0588 о 1982 о 8976 о 9824 о 7777 Лаборатория Врач Персонал Пациент Палата Рис. 1.9. Экземпляры логических записей иерархической базы данных больницы Иерархические базы данных имеют централизованную структуру, поэтому безопасность данных легко контролировать. К сожалению, определенные знания о физическом порядке хранения записей все же необходимы, так как отношения предок/потомок реализуются в виде физических указателей из одной записи на другую. Это означает, что поиск записи осуществляется методом прямого обхода дерева. Записи, расположенные в одной половине дерева, ищутся быстрее, чем в другой. Отсюда следует необходимость правильно упорядочивать записи, чтобы время их поиска было минимальным.