Сетевая модель данных
В сетевой структуре при тех же основных понятиях (уровень, узел, связь) каждый элемент может быть связан с любым другим элементом. На рис. 3 изображена сетевая структура базы данных в виде графа.
Пример. Примером сложной сетевой структуры может служить структура базы данных, содержащей сведения о студентах, участвующих в научно-исследовательских работах (НИРС). Возможно участие одного студента в нескольких НИРС, а также участие нескольких студентов в разработке одной НИРС. Графическое изображение описанной в примере сетевой структуры, состоящей только из двух типов записей, показано на рис. 4. Единственное отношение представляет собой сложную связь между записями в обоих направлениях.
Рис. 2. Пример иерархической структуры БД
Р Рис. 3. Графическое изображение сетевой структурыЕляционная модель данных
Понятие реляционный (англ. relation — отношение) связано с разработками известного американского специалиста в области систем баз данных Е. Кодда.
Эти модели характеризуются простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования формального аппарата алгебры отношений и реляционного исчисления для обработки данных.
Реляционная модель ориентирована на организацию данных в виде двумерных таблиц. Каждая реляционная таблица представляет собой двумерный массив и обладает следующими свойствами:
- каждый элемент таблицы – один элемент данных;
- все столбцы в таблице однородные, т.е. все элементы в столбце имеют одинаковый тип (числовой, символьный и т.д.) и длину;
- каждый столбец имеет уникальное имя;
- одинаковые строки в таблице отсутствуют;
- порядок следования строк и столбцов может быть произвольным.
Пример. Реляционной таблицей можно представить информацию о студентах, обучающихся в вузе (Рис. 4).
№ л/д | Фамилия | Имя | Отчество | Дата рождения | Группа |
16493 | Сергеев | Петр | Михайлович | 01.01.76 | 111 |
16593 | Петрова | Анна | Владимировна | 15.03.75 | 112 |
16693 | Анохин | Андрей | Борисович | 14.04.76 | 111 |
Рис. 4. Пример реляционной таблицы Отношения представлены в виде таблиц, строки которых соответствуют кортежам или записям, а столбцы — атрибутам отношений, доменам, полям. Поле, каждое значение которого однозначно определяет соответствующую запись, называется простым ключом (ключевым полем). Если записи однозначно определяются значениями нескольких полей, то такая таблица базы данных имеет составной ключ. В примере, показанном на Рис. 4, ключевым полем таблицы является «№ личного дела». Чтобы связать две реляционные таблицы, необходимо ключ первой таблицы ввести в состав ключа второй таблицы (возможно совпадение ключей); в противном случае нужно ввести в структуру первой таблицы внешний ключ — ключ второй таблицы. Пример. На рис. 5 показан пример реляционной модели, построенной на основе отношений: СТУДЕНТЫ, СЕССИЯ, ПРЕДМЕТЫ. СТУДЕНТЫ(Код студента, Фамилия, Имя, Пол, Дата рождения, Телефон, Группа). СЕССИЯ(Код студента, Код предмета, Оценка). ПРЕДМЕТЫ(Код предмета, Название, Преподаватель). Таблица СЕССИЯ имеет два внешних ключа Код студентаиКод предмета, которые обеспечивают ее связь с таблицами СТУДЕНТЫ и ПРЕДМЕТЫ. Рис. 5
2.2. Сетевая модель данных
СМД позволяет отображать разнообразные взаимосвязи элементов данных в виде произвольного графа, обобщая тем самым ИМД (рис. 2.4). Наиболее полно концепция сетевых БД впервые была изложена в Предложениях группы КОДАСИЛ (KODASYL).
Рис. 2.4. Представление связей в сетевой модели
Для описания схемы сетевой БД используется две группы типов: «запись» и «связь». Тип «связь» определяется для двух типов «запись»: предка и потомка. Переменные типа «связь» являются экземплярами связей.
Сетевая БД состоит из набора записей и набора соответствующих связей. На формирование связи особых ограничений не накладывается. Если в иерархических структурах запись-потомок могла иметь только одну запись-предка,то в сетевой модели данных запись-потомок может иметь произвольное число записей-предков (сводных родителей).
Пример схемы простейшей сетевой БД показан на рис. 2.5. Типы связей здесь обозначены надписями на соединяющих типы записей линиях.
Рис. 2.5. Пример схемы сетевой БД
В различных СУБД сетевого типа для обозначения одинаковых по сути понятий зачастую используются различные термины. Например, такие как элементы и агрегаты данных, записи, наборы, области и т. д. (см. п. 1.1.3).
Физическое размещение данных в базах сетевого типа может быть организовано практически теми же методами, что и в иерархических базах данных.
К числу важнейших операций манипулирования данными баз сетевого типа можно отнести следующие:
переход от предка к первому потомку;
переход от потомка к предку;
обновление текущей записи;
исключение записи из связи;
Достоинством сетевой модели данных является возможность эффективной реализации по показателям затрат памяти и оперативности. В сравнении с иерархической моделью сетевая модель предоставляет большие возможности в смысле допустимости образования произвольных связей.
Недостатком сетевой модели данных является высокая сложность ижесткость схемы БД, построенной на ее основе, а также сложность для понимания и выполнения обработки информации в БД обычным пользователем. Кроме того, в сетевой модели данных ослаблен контрольцелостности связей вследствие допустимости установления произвольных связей между записями.
Системы на основе сетевой модели не получили широкого распространения на практике. Наиболее известными сетевыми СУБД являются следующие: IDMS, db_VistaIII, СЕТЬ, СЕТОР и КОМПАС.
2.3. Реляционная модель данных
Реляционная модель данных предложена сотрудником фирмы IBMЭдгаром Коддом и основывается на понятии «отношение» (relation).
Отношение представляет собой множество наборов элементов, называемых кортежами. Подробно теоретическая основа реляционной модели данных рассматривается в следующем разделе. Наглядной формой представления отношения является привычная для человеческого восприятия двумерная таблица.
Таблица имеет строки (записи) и столбцы (колонки). Каждая строка (запись) таблицы имеет одинаковую структуру и состоит из полей. Строкам таблицы соответствуют кортежи, а столбцам — атрибуты отношения (имена полей).
С помощью одной таблицы удобно описывать простейший вид связей между данными, а именно деление одного объекта (явления, сущности, системы и проч.), информация о котором хранится в таблице, на множество под объектов, каждому из которых соответствует строка или запись таблицы. При этом каждый из подобъектов имеет одинаковую структуруили свойства, описываемые соответствующими значениями полей записей. Например, таблица может содержать сведения о группе обучаемых, о каждом из которых известны следующие характеристики: фамилия, имя и отчество, пол, возраст и образование. Поскольку в рамках одной таблицыне удается описать более сложные логические структуры данных из предметной области, применяют связывание таблиц.
Физическое размещение данных в реляционных базах на внешних носителях легко осуществляется с помощью обычных файлов.
Достоинство реляционной модели данных заключается в простоте, понятности и удобстве физической реализации на ЭВМ. Именно простота и понятность для пользователя явились основной причиной их широкого использования. Проблемы же эффективности обработки данных этого типа оказались технически вполне разрешимыми.
Основными недостатками реляционной модели являются:отсутствие стандартных средств идентификации отдельных записей и сложность описания иерархических и сетевых связей.
Примерами зарубежных реляционных СУБД для ПЭВМ являются следующие: dBaseIII Plus и dBase IV (фирма Ashton-Tate), DB2 (IBM), R:BASE (Microrim), FoxPro ранних версий и FoxBase (Fox Software), Paradox и dBASE for Windows (Borland), FoxPro более поздних версий, Visual FoxPro и Access (Microsoft), Clarion (Clarion Software), Ingres (ASK Computer Systems) иOracle(Oracle).
К отечественным СУБД реляционного типа относятся системы: ПАЛЬМА (ИК АН Украины), а также система HyTech (МИФИ, РФ).
Заметим, что последние версии реляционных СУБД имеют некоторые свойства объектно-ориентированных систем. Такие СУБД часто называют объектно-реляционными. Примером такой системы можно считать продукты Oracle 8.x. Системы предыдущих версий вплоть до Oracle 7.x считаются «чисто» реляционными.
Модель данных СУБД MS ACCESS
Microsoft Access является одной из популярных систем проектирования и сопровождения БД, она представляет собой полнофункциональную СУБД, в которую входят таблицы данных, экранные формы для ввода данных в эти таблицы, запросы и отчеты для получения новой информации по данным из таблиц, макросы и модули для дополнительного программирования (рис. 7.1).
Рис. 7.1. Структура СУБД MS ACCESS
Благодаря тому, что таблицы, формы, запросы, отчеты, модули и макросы являются самостоятельными объектами, но при этом хранятся вместе в едином файле БД (файл имеет расширение.MDB), создание связанных по смыслу данных и проверка ограничений целостности, а также создание и модификация таблиц, форм, запросов, отчетов, модулей и макросов значительно облегчается.
Система управления БД MS ACCESS поддерживает реляционную модель данных с механизмом ссылочной целостности. Поэтому в базах данных СУБД MS ACCESS данные представляются в виде таблиц и функциональных бинарных связей между таблицами. Дополнительное средство представления данных – запросы. Запрос представляет собой виртуальную таблицу, которая формируется по требованию на основе зараннее составленного описания запроса по данным из физических таблиц БД. Никаких других различий между физическими таблицами и запросами нет. Во всех операциях они участвуют на равных правах. Основное назначение запросов – представление для вывода дополнительной информации, а также скрытие от пользователя сложных запросов: пользователь обращается к системе с простым запросом к виртуальным данным, а всю работу по их формированию (по зараннее составленному сложному запросу) берет на себя СУБД.
Механизм ссылочной целостности в настоящее время является общепризнанным для использования в реляционных моделях для реализации функциональных бинарных связей типа 1:1 или 1: M между связанными таблицами. Он соответствует бинарному групповому отношению при определении БД в терминах групп и групповых отношений (см. п. 2.3). Этот механизм основан на методе представления бинарной связи между сущностями через атрибут: первичный атрибут схемы исходной (родительской) сущности включается как вторичный атрибут в схемы атрибутов подчиненной (дочерней) сущности.
В системе управления БД MS ACCESS в рамках таблиц действуют механизмы определения и организации контроля стандартных правил целостности данных в реляционных моделях (см. выше). Между таблицами действует механизм описания и контроля ограничений ссылочной целостности для бинарных функциональных связей. В таблицах действуют также механизмы определения и организации контроля явных ограничений целостности данных, таких, как форматы данных, допустимые диапазоны значений данных при вводе.
Таким образом, сущности в базе моделируют таблицами. Свойства объектов (атрибуты) моделируют полями (столбцами таблиц). Один из атрибутов сущности должен быть идентификатором – первичным ключом (например, табельный номер у сотрудника). Связи между сущностями можно моделировать двояко: либо таблицей, либо с атрибутом (ссылочная целостность). При этом обе таблицы, между которыми должна быть создана связь, должны иметь один и тот же атрибут, который эту связь и реализует. Только в одной из таблиц (родительской) он будет идентифицирующим атрибутом – первичным ключом, а в другой (подчиненной) – обычным атрибутом (в этом случае его называют вторичным ключом). И в обеих таблицах он должен иметь один и тот же тип данных (имя может разнится). Для представления бинарных связей типа М: М можно использовать либо таблицу, либо две функциональные связи: 1: М и M:l с промежуточной таблицей (прием описан выше в сетевой модели).
Схему БД для СУБД MS ACCESS проектируют с учетом перечисленных особенностей, т.е. реализуют этап отображения схемы инфологической модели в схему датологической модели ПО. На рис. 7.2 приведен пример схемы датологической модели для СУБД MS ACCESS.
Рис. 7.2. Схема базы данных
Рассмотрим практические приемы работы при создании БД в среде СУБД MS ACCESS методами визуального программирования.
После запуска СУБД MS ACCESS появляется окно «Microsoft Access», являющееся главным окном СУБД, на котором располагаются другие окна. В частности, сразу же после запуска на нем появляется одноименное диалоговое окно, в котором пользователь должен выбрать один из вариантов последующих действий системы:
2) создание новой БД с помощью мастера;
3) открытие ранее созданной БД.