Книжная полка Сохранить
Размер шрифта:
А
А
А
|  Шрифт:
Arial
Times
|  Интервал:
Стандартный
Средний
Большой
|  Цвет сайта:
Ц
Ц
Ц
Ц
Ц

Модели баз данных

Покупка
Основная коллекция
Артикул: 778152.01.99
Предлагаемое учебное пособие содержит описание широкого спектра моделей баз данных: дореляционных, реляционных, постреляционных, в том числе моделей класса NoSQL. Несмотря на то что реляционная модель в настоящее время является доминирующей, каждая из этих моделей занимает свою нишу в области информационных технологий при решении задач обработки данных. Включенный в пособие материал входит в программы курсов лекций «Технологии баз данных» (02.03.03), «Базы данных и экспертные системы» (01.03.02), «Современные технологии баз данных» (02.04.03), читаемых студентам факультета прикладной математики и информатики. Учебное пособие может быть полезно также специалистам, занимающимся информационными технологиями и самостоятельно осваивающим вопросы разработки баз данных.
Аврунев, О. Е. Модели баз данных : учебное пособие / О. Е. Аврунев, В. М. Стасышин. - Новосибирск : Изд-во НГТУ, 2018. - 124 с. - ISBN 978-5-7782-3749-0. - Текст : электронный. - URL: https://znanium.com/catalog/product/1866904 (дата обращения: 16.07.2024). – Режим доступа: по подписке.
Фрагмент текстового слоя документа размещен для индексирующих роботов. Для полноценной работы с документом, пожалуйста, перейдите в ридер.
Министерство науки и высшего образования Российской Федерации 

НОВОСИБИРСКИЙ ГОСУДАРСТВЕННЫЙ ТЕХНИЧЕСКИЙ УНИВЕРСИТЕТ 
__________________________________________________________________________ 
 
 
 
 
 
 
 
О.Е. АВРУНЕВ, В.М. СТАСЫШИН 
 
 
МОДЕЛИ БАЗ ДАННЫХ 

 
 
Утверждено Редакционно-издательским советом университета 
в качестве учебного пособия 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

НОВОСИБИРСК 

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. Экземпляры логических записей иерархической базы  
данных больницы 

Иерархические базы данных имеют централизованную структуру, 
поэтому безопасность данных легко контролировать. К сожалению, 
определенные знания о физическом порядке хранения записей все же 
необходимы, так как отношения предок/потомок реализуются в виде 
физических указателей из одной записи на другую. Это означает, что 
поиск записи осуществляется методом прямого обхода дерева. Записи, 
расположенные в одной половине дерева, ищутся быстрее, чем в другой. Отсюда следует необходимость правильно упорядочивать записи, 
чтобы время их поиска было минимальным. 

 

Основные операции манипулирования иерархически организованными данными: 
 найти указанное дерево базы данных (например, дерево со значением 40 в поле «№_больницы»);  
 перейти от одного дерева к другому;  
 перейти от одной записи к другой внутри дерева в порядке 
иерархии (например, от палаты к первому пациенту);  
 перейти от одной записи к другой на одном уровне внутри дерева (например, к следующему пациенту);  
 вставить новую запись в указанную позицию;  
 удалить текущую запись.  
Способы описания схем данных, базирующиеся на иерархической 
модели, и соответствующие языки манипулирования данными зависят 
от конкретной реализации.  
На рис. 1.10 приведено графическое представление иерархической 
модели базы данных тематических сборников издательств и описание 
схемы иерархической модели в системе IMS фирмы IBM. 
 

Издательство
Издательство
Издательство

Сборник
Сборник
Сборник

Сборник
Сборник
Статья

Сборник
Сборник
Автор

Выпускает

Содержит

Написана

 

Dbd  
Name = Тематические сборники 
Segm  
Name = Издательство 
Field  Name = Название 
Field  Name = Адрес 
Field  Name = Счет 
Segm  
Name =  Сборник, Parent = Издательство 
Field  Name = Название 
Field  Name = Периодичность 
Field  Name = Цена 
Field  Name = Ответственный_редактор 
Segm  
Name =  Статья, Parent = Сборник 
Field  Name = Название 
Segm  
Name = Автор, Parent = Статья 
Field  Name = ФИО 
Field  Name = Гонорар 

Рис. 1.10. Описание иерархической базы данных тематических сборников  
издательств