Основы информационных систем. Базы данных.

План.

1. Основные понятия.

2. Классификация баз данных.

3. Модели данных.

4. Информационные объекты и связи.

5. Проектирование баз данных.

6. Состав файла БД. Архитектура СУБД.

7. Связывание таблиц. Целостность данных.

8. Виды запросов. Структура запросов.

Основные понятия.

В истории развития вычислительной техники наблюдалось два основных направления ее применения.

Первое связано с выполнением больших численных расчетов, которые трудно или невозможно произвести вручную. Развитие этой области способствовало ускорению развития методов математического моделирования, численных методов, языков программирования высокого уровня, рассчитанных на удобное представление вычислительных алгоритмов.

Второе направление связано с использованием вычислительной техники для создания, хранения и обработки больших массивов данных. Такие задачи решают информационные системы (ИС). К ним относятся поисковые, справочные, банковские системы, автоматизированные системы управления предприятием.

Для задач первого типа характерны большие объемы вычислительной работы при относительно небольших потребностях в памяти. Задачи второго типа, наоборот, требуют больших объемов внешней памяти при относительно небольших расчетах. Вторая область применения возникла несколько позже первой. Это связано с тем, что на первых этапах внешняя память вычислительных систем была несовершенной, т.е. надежное хранение больших объемов данных не представлялось возможным.

Для облегчения обработки информации создаются информационные системы. Информационная система представляет собой аппаратно-программный комплекс, обеспечивающий выполнение следующих функций:

· ввод данных об объектах некоторой предметной области;

· надежное хранение и защита данных во внешней памяти вычислительной системы;

· дополнение, удаление, изменение данных;

· сортировка, выборка данных по запросам пользователей;

· выполнение специфических для данной предметной области преобразований информации;

· предоставление пользователям удобного интерфейса; обобщение данных и составление отчетов.

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

Пример структурированных данных - студенческая группа. Каждый член группы во многом индивидуален, и характеризовать его можно с разных сторон. Но деканат, скорее всего, заинтересуют следующие данные (предметная область): фамилия студента, имя, отчество, курс, наименование группы, массив оценок по изучаемым дисциплинам. Таким образом, из всего многообразия данных выбираются только некоторые, т.е. создается информационная модель объекта. Данные упорядочиваются по порядку следования, по применяемым типам (форматам) данных, после чего они могут быть обработаны автоматом, каковым является компьютер.

Совокупность взаимосвязанных данных называется структурой данных . Совокупность структурированных данных, относящихся к одной предметной области, называется базой данных (БД) . Совокупность программ, реализующих в БД функции ИС в удобной для пользователя форме, называется системой управления базой данных (СУБД) . Программы, производящие специфическую обработку данных в БД, составляют пакет прикладных программ (ППП). Итак, можно заключить, что ИС - это организационное объединение аппаратного обеспечения (АО), одной или нескольких баз данных (БД), системы управления базами данных (СУБД) и пакетов прикладных программ (ППП).

Классификация баз данных.

По технологии обработки данных БД подразделяются на централизованные и распределенные.

Централизованная БД хранится целиком в памяти одной вычислительной системы. Если система входит в состав сети, то возможен доступ к этой БД других систем.

Распределенная БД состоит из нескольких, возможно пересекающихся или дублирующих друг друга БД, хранимых в памяти разных вычислительных систем, объединенных в сеть.

По способу доступа к данным БД распределяются на локальный и удаленный (сетевой) доступ.

Локальный доступ предполагает, что СУБД обрабатывает БД, которая хранится на той же вычислительной системе.

Удаленный доступ - это обращение к БД, которая хранится на одной из систем, входящих в компьютерную сеть. Удаленный доступ может быть выполнен по принципу файл-сервер или клиент-сервер.

Архитектура файл-сервер предполагает выделение одного из компьютеров сети (сервер) для хранения централизованной БД. Все остальные компьютеры сети (клиенты) исполняют роль рабочих станций, которые копируют требуемую часть централизованной БД в свою память где и происходит обработка. Однако при большой интенсивности запросов к централизованной БД увеличивается нагрузка на каналы сети, что приводит к снижению производительности ИС в целом.

Архитектура клиент-сервер предполагает, что сервер, выделенный для хранения централизованной БД, дополнительно производит обработку клиентских запросов. Клиенты получают по сети уже обработанные данные. Учитывая широкое распространение БД в самых различных областях, в последнее время архитектура клиент-сервер применяется и на одиночных вычислительных системах. В этом случае клиент- программа, которой понадобились данные из БД, посылает запрос серверу - программе, управляющей ведением БД, на специальном универсальном языке запросов. Сервер пересылает программе данные, являющиеся результатом поиска в БД по ее запросу. Этот способ удобен тем, что программа - клиент не обязана содержать все функции поддержания и ведения БД, этим; занимается сервер. В результате упрощается написание программ - клиентов, Кроме того, к серверу может обращаться любое количество клиентов.

Модели данных.

Для реализаций основных функций в ИС используются различные принципы описания данных. Ядром любой БД является модель представления данных .

Модель данных определяет логическую структуру хранимых в базе данных (т.е. введение каких-то соглашений о способах представления данных) и взаимосвязи между ними.

К основным моделям представления данных относятся:

· Иерархическая

· Сетевая

· Реляционная

· Постреляционная

· Многомерная

· Объектно-ориентированная

Наибольшее распространение получила реляционная модель данных, она является наиболее универсальной и к ней могут быть сведены другие модели.. Реляционная модель данных ориентирована на организацию данных в виде двумерных таблиц.

Важнейшим понятием реляционных моделей данных является сущность . Сущность - это объект любой природы, данные о котором хранятся в БД. Данные о, сущности хранятся в двумерных таблицах, которые называют реляционными .

Каждая реляционная таблица должна обладать следующими свойствами:

· один элемент таблицы - один элемент данных;

· каждый столбец таблицы содержит однородные по типу данные (целочисленный, числовой, текстовый, и т.д.);

· каждый столбец имеет уникальное имя;

· число столбцов задается при создании таблицы;

· порядок записей в отношении может быть произвольным;

· записи не должны повторяться;

· количество записей в отношении не ограничено.

Объекты, их взаимосвязи и отношения представлены в виде таблиц . Формальное построение таблиц связано с фундаментальным понятием отношение (термин реляционная исходит от английского слова relation - отношение).

Для заданных произвольных конечных множеств М 1 , М 2 , ..., M N множество всевозможных наборов вида (μ 1 , μ 2 , …, μ Ν), где μ 1 Є М 1 , μ 2 Є М 2 , …, μ Ν Є M N называют их декартовым произведением М 1 ×М 2 ×...×M N . Отношением R , определенным на множестве М 1 , М 2 , ..., M N , называется подмножество декартова произведения М 1 ×М 2 ×...×M N . При этом множества М 1 , М 2 , ..., M N называются доменами отношения, а элементы декартова произведения - кортежами отношения. Число N определяет степень отношения, количество кортежей - его мощность .

В реляционной таблице каждый столбец есть домен (его альтернативное название поле ), а совокупность элементов каждой строки - кортеж (или запись ).

Строка заголовков называется схемой отношения .

Например , схема отношения СТУДЕНТ может быть следующей:

СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА), здесь СТУДЕНТ - отношение, а ФАМИЛИЯ, ИМЯ и т.д. - атрибуты.

В отношении каждый конкретный экземпляр сущности представляется строкой, которая называется кортежем (или записью) .

Следующая таблица представляет отношение СТУДЕНТ

ФАМИЛИЯ ИМЯ ОТЧЕСТВО ФАКУЛЬТЕТ КУРС
Иванов Иван Иванович ИЭФ
Петров Петр Петрович РТФ
Сидоров Антон Егорович ВТ

Первичным ключом отношения называется поле или группа полей, однозначно определяющие запись. В отношении СТУДЕНТ первичным ключом может быть поле ФАМИЛИЯ, если во всем с нет однофамильцев - это будет простой ключ. Если есть однофамильцы, то совокупность полей - фамилия, имя, отчество - создадут составной первичный ключ. На практике обычно в качестве ключевого выбирают поле, в котором совпадения заведомо исключены.

Для рассматриваемого примера таким полем может служить номер зачетной книжки студента.

Свойства первичного ключа:

· уникальность - в таблице может быть назначен только один первичный ключ, у составного ключа поля могут повторяться, но не все;

· неизбыточность - не должно быть полей, которые, будучи удаленными из первичного ключа, не нарушат его уникальность;

· в состав первичного ключа не должны входить поля типа, комментарий и графическое.

Чтобы избежать повторяющихся записей, приходят к связыванию таблиц. Например, если в отношении СТУДЕНТ надо описать вуз, в котором он обучается, то, на первый взгляд, можно было бы включить в отношение следующие поля СТУДЕНТ (ФАМИЛИЯ ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА, НАЗВАНИЕ вуза, АДРЕС). Но при заполнении такой таблицы для каждого студента придется указывать довольно длинное наименование вуза и его адрес, что неудобно. Более того, любая незначительная ошибка во вводе этих полей приведет к нарушению непротиворечивости базы данных. Например, ошибка в адресе вуза приведет к тому, что в БД появятся два вуза с одинаковым наименованием и разными адресами. Поступают в таком случае так: в отношение СТУДЕНТ вводят поле «код вуза» (целое число) и добавляют еще одно отношение ВУЗ (код вуза, название, адрес). Тогда отношения СТУДЕНТ и ВУЗ при этом будут связаны по полю «код вуза».

СТУДЕНТ (ФАМИЛИЯ, ИМЯ, ОТЧЕСТВО, ФАКУЛЬТЕТ, КУРС, ГРУППА, КОД вуза)

ВУЗ (КОД вуза, НАЗВАНИЕ, АДРЕС, ТЕЛЕФОН)

При работе с такими таблицами повторяться могут только данные в поле «КОД вуза», а все необходимые сведения о вузе можно взять из отношения ВУЗ. Заметим при этом, что ввод в поле «КОД вуза» целого числа, вместо длинного названия, принесет гораздо меньше ошибок. В отношении ВУЗ поле «КОД вуза» будет первичным ключом, а в отношении СТУДЕНТ поле «КОД вуза» будет внешним ключом.

Для связи реляционных таблиц необходимо ввести в обе таблицы одинаковые по типу поля, по которым определится связь между записями обеих таблиц. Связи бывают нескольких типов «один к одному», «один ко многим», «многие ко многим». В вышеприведенном примере была установлена связь «один ко многим», т.е. одной записи в таблице ВУЗ соответствуют многие записи в таблице СТУДЕНТ.

Информационные объекты и связи.

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

Пример . Информационный объект СТУДЕНТ имеет реквизитный состав: номер (номер зачетной книжки - ключевой реквизит), фамилия , имя , отчество , дата рождения , код места обучения . Информационный объект ЛИЧНОЕ ДЕЛО: номер студента , домашний адрес , номер аттестата о среднем образовании , семейное положение , дети . Информационный объект МЕСТО ОБУЧЕНИЯ включает реквизитъг, код (ключевой реквизит), наименование вуза , факультет , группа . Информационный объект ПРЕПОДАВАТЕЛЬ: код (ключевой реквизит), кафедра , фамилия , имя , отчество , ученая степень , ученое звание , должность .

Отношения, существующие между реальными объектами, определяются в информационных моделях как связи . Существует три вида связей: один к одному (1:1), один ко многим (1:∞) и многие ко многим (∞:∞).

Связь один к одному определяет соответствие одному экземпляру информационного объекта X не более одного экземпляра информационного объекта Y, и наоборот.

Пример . Информационные объекты СТУДЕНТ и ЛИЧНОЕ ДЕЛО будут связаны отношением один к одному. Каждый студент имеет определенные уникальные данные в личном деле.

При связи один ко многим одному экземпляру информационного объекта X может соответствовать любое количество экземпляров информационного объекта Y, но каждый экземпляр объекта Y связан не более чем с одним экземпляром объекта X.

Пример . Между информационными объектами МЕСТО ОБУЧЕНИЯ и СТУДЕНТ необходимо установить связь один ко многим. Одно и то же место обучения может многократно повторяться для различных студентов.

Связь многие ко многим предполагает соответствие одному экземпляру информационного объекта X любое количество экземпляров объекта Y, и наоборот.

Пример . Информационные объекты СТУДЕНТ и ПРЕПОДАВАТЕЛЬ имеют связь многие ко многим. Каждый студент обучается у множества преподавателей, а каждый преподаватель учит множество студентов.

В Access можно задать три вида связей между таблицами: один ко многим , многие ко многим и один к одному . Связь один ко многим является наиболее часто используемым типом связи между таблицами. Связи многие ко многим реализуется только с помощью третьей (связующей) таблицы, ключ которой состоит из, по крайней мере, двух полей, одно из которых является общим с табли­цей X, а другое - общим с таблицей Y. Связь один к одному используют не очень часто, поскольку такие данные могут быть помещены в одну таблицу. Связь с отношением один к одному используют для разделения очень широких таблиц, для отделения части таблицы по соображениям защиты, а также для сохранения сведений, относящихся к подмножеству записей в главной таблице.


Похожая информация.


Помимо описания объекта с его свойствами фиксируются связи между объектами разных классов в инфологической модели.

Различают 4 типа связи :

    1:N (один ко многим).

    N:1 (многие к одному).

    N:N(многие ко многим).

Помимо «тип связи» используется понятие«степень связи» . В инфологической модели помимо степени связи надо указыватьпринадлежность связи .

Класс принадлежности – показывает должен или не должен объект одного класса участвовать в связях с объектами другого класса. Класс принадлежности объекта может быть обязательным или необязательным.

Обязательный класс принадлежности.

Если все объекты первого класса должны участвовать в связи с объектами второго класса, то класс принадлежности объектов 1-го класса называется обязательным .

Необязательный класс принадлежности.

Если некоторые объекты 1-го класса могут не участвовать в связях с объектами 2-го класса, то класс принадлежности объектов 1-го класса называются необязательными .

8.ER-диаграммы и их разновидности. Понятия сущности, связи, атрибуты.

Преподаватель читает курс.

Связь именуется глаголом «читает».

Связь между объектами может быть выражена 2 способами представления с помощью ER-диаграмм.

    Диаграмма ER- экземпляра.

По номеру курса можно однозначно идентифицировать курс.

    Диаграмма ER- типа

Тип связи 1 к 1.

Класс принадлежности объектов и для П и для К необязательный.

Сущность – определяется как некоторый объект, представляющий интерес в данной предметной области. Этот объект должен иметь экземпляры, отличающиеся друг от друга и допускающие однозначную идентификацию.

Как правило в описании предметной области сущность обозначается как существительное.

Связь – представляет собой соединение между двумя или более сущностями.

При поиске связей в описании предметной области следует полагаться в основном на то, что связь отражается глаголом.

Атрибут – свойство сущности.

Атрибутами сущности «Преподаватель» является номер, ФИО, дата рождения, должность.

Ключ сущности – это атрибут или набор атрибутов, используемый для идентификации экземпляра сущности.

Ключ связи – набор ключей сущностей, которые соединяются этой связью.

Ключом связи «Читает» является набор сущностей П и К <НП, НК>.

К
аждый преподаватель читает 1 курс, каждый курс читается одним преподавателем.

Каждый преподаватель читает 1 курс, каждый курс читается не более, чем одним преподавателем.

Каждый курс читается одним преподавателем. Каждый преподаватель читает не более одного курса.

Каждый преподаватель читает одновременно несколько курсов, но каждый курс читается не более, чем одним преподавателем.


Каждый преподаватель читает не более одного курса, каждый курс может читаться несколькими преподавателями.


9.Описание сложных объектов. Составные, обобщенные, агрегированные объекты

По степени сложности различают простые и сложные объекты.

Простой объект – объект, который рассматривается как неделимый.

Сложный объект – объект, который представляет собой объединение других объектов, также выделяемых в предметной области.

Связи между объектами.

Наименование параметра Значение
Тема статьи: Связи между объектами.
Рубрика (тематическая категория) Связь

В реальном мире особенно в сложных системах между предметами существуют различные отношения. При моделировании предметы представляются как объекты, а отношения между ними как связи. Каждый типсвязи в модели имеет свое имя. В графической форме связь отображается в виде линии между связанными объектами с указанием идентификатора связи.

Существует три вида элементарных связей: один-к-одному (рис. 4.1.), один-ко-многим (рис. 4.2.) и многие-ко-многим (рис. 4.3.).

Связь один-к-одному существует, когда один экземпляр одного объекта связан с единственным экземпляром другого. Связь один-к-одному обозначается стрелками ←или→.

Руководит

Рис. 4.1. Пример связи ʼʼодин-к-одномуʼʼ.

Связь один-ко-многим существует, когда один экземпляр первого объекта связан с более чем с одним экземпляром второго объекта͵ но каждый экземпляр второго объекта связан только с одним экземпляром первого. Такая связь изображается двойной стрелкой →→.

Состоит из

Рис. 4. 2. Пример связи ʼʼодин-ко-многимʼʼ.

Связь многие-ко-многим существует, когда каждый экземпляр первого объекта связан с одним или большим количеством экземпляров второго, и каждый экземпляр второго связан с одним или многими экземплярами первого. Этот тип связи изображается двусторонней стрелкой ↔.

Изучает(ся)

Рис. 4.3. Пример связи ʼʼмногие-ко-многимʼʼ.

Помимо множественности, связи могут подразделяться на безусловные и условные. В безусловной связи участвует каждый экземпляр объекта. В условной связи принимают участие не всœе экземпляры объекта. Связь должна быть условной как с одной, так и с обеих сторон.

Все связи в информационной модели требуют описания, ĸᴏᴛᴏᴩᴏᴇ, как минимум, включает:

‣‣‣ идентификатор связи;

‣‣‣ вид связи (ее множественность и условность).

Элементарные связи являются составными частями структур связей . Безусловная последовательность связей один-к-одному принято называть структурой типа очередь и графически отображена на рис.4.4.а. Обобщением структуры типа очередь является циклическая структура, изображенная на рис. 4.4.б.

Очень важную роль играет древовидная информационная модель, являющаяся одной из самых распространенных типов классификационных структур.
Размещено на реф.рф
Древовидная связь является безусловной связью типа один-ко-многим и графически изображена на рис. 4.4. в. Особенностью такой структуры является то, что каждый объект может иметь не более одного предка, произвольное количество потомков. Объект, который не имеет потомков, называют листовым. Иерархическое дерево начинается с одного объекта͵ называемого корневым объектом. Очень важно, что каждый объект должен иметь свое уникальное имя или идентификатор.
Размещено на реф.рф
Эту структуру связи еще называют иерархической. На рис. 4.4. в. прямоугольник R является корневым объектом. Объекты B1,. . ., B8 являются листовыми. Иерархическая модель довольно удобна для представления предметных областей, так как иерархические отношения довольно часто встречаются между сущностями реального мира. Но иерархическая модель не поддерживает отношения ʼʼмногие ко многимʼʼ, когда множество объектов одного типа связаны со множеством объектов другого типа. Предположим, что требуется построить модель отношения между множеством преподавателœей и множеством предметов. Для моделирования таких отношений иерархическая древовидная структура не подходит.

Z
В
А
а) . . .
Z
B
б)
C

R
в)
A1
A2 A@A@
A3
A4
B1
B4
B5
B6
B7
B8

Рис.4.4. Информационные модели типа ʼʼочередьʼʼ (а), ʼʼциклʼʼ (б), ʼʼдеревоʼʼ (в).

Структурные элементы БД

В описании объекта данных нужно выделить 2 составляющие: структуру и экземпляр.

Структура – перечень атрибутов объекта и характеристики атрибутов.

Экземпляр – совокупность значений атрибутов.

Структура изменяется крайне редко. Экземпляр подвержен изменениям.

При хранении в ЭВМ базе данных соответствует группа файлов и папок, набору объектов соответствует файл. Каждому объекту соответствует запись в файле. Каждому атрибуту соответствует поле записи.

Для описания атрибута используются следующие характеристики:

1. имя, например, nContract, cStudent;

2. тип, например, символьный, числовой;

3. длина, например, 15 байт;

4. точность, для числовых данных.

5. описание, комментарий;

6. формат изображения на экране и бумаге;

7. подсказка;

8. формат ввода;

9. начальное значение;

10. диапазон значений.

Ключ – это средство упорядочивания объектов в наборе. Ключ содержит ключевое выражение, составляемое из атрибутов объектов. По возрастанию значения ключевого выражения объекты предъявляются для просмотра и обработки.

Для одного набора можно задать несколько ключей. Например, для набора Работники можно задать ключ по алфавиту фамилий, работники будут предъявляться по алфавиту.

Ключ называется первичным , если по одному значению его выражения из набора выделяется 0 или 1 объект. Например, для набора работников ключ «По табельному номеру» первичный, так как по одному значению табельного номера выделяется или ни одного, или только один работник.

Ключ называется вторичным , если по одному значению его выражения из набора выделяются 0 и более объектов. Например, ключ для набора работников ключ «По алфавиту фамилий» вторичен, так как среди работников могут быть однофамильцы.

По аксиоме отличия у каждого набора существует первичный ключ. В крайнем случае в его выражение включает все атрибуты объекта в наборе.

Хорошей практикой служит введение для объекта данных искусственного атрибута «Порядковый № в наборе», который автоматически присваивается и уникален. Ключ по такому атрибуту называется суррогатным .

Заметим, что понятия первичного и вторичного ключа не зависят от количества и значений объектов в наборе. Первичные и вторичные ключи бывают для пустых наборов.

Пусть имеется n наборов объектов Е 1 , Е 2, … , Е n .

Связью называется множество последовательностей объектов (е i 1 , е i 2, …, е i n), где е i 1 Î Е 1, е i 2 Î Е 2, …, е i n Î Е n.

С помощью связей наборы объектов объединяются в единую информационную структуру.

Между двумя наборами объектов (n=2) различают три типа связей:

1. один к одному (1:1);



2. один ко многим (1:М);

3. много ко многим (М:N).

«один к одному», если для каждого объекта из первого набора можно указать 0 или 1 объект из второго набора и для каждого объекта из второго набора можно указать 0 или 1 объект из первого набора.

Примерами связей типа 1:1 служат связи между:

· студентами и зачетными книжками,

· между государствами и валютами,

· между офицерами и табельным оружием,

· между гражданами и заграничными паспортами. У каждого студента или нет зачетной книжки, или есть только одна.

Для каждой зачетки или студент не указан, или имеется только один.

Связь между двумя наборами Е 1 и Е 2 относится к типу «один ко многим» 0 или более 0 или 1 объект из первого набора.

Примерами связей 1:М служат связи между

· банками и вкладами,

· вкладами и взносами,

· между группами и студентами,

· между отделами и сотрудниками,

· между ведомостями и строками ведомостей,

· между клиентами и заявками.

В каждом банке или нет вкладов (банк еще не открылся) или может быть много вкладов. Для каждого вклада или банк не указан, или есть только один.

Связь между двумя наборами Е 1 и Е 2 относится к типу «многие ко многим» , если для каждого объекта из первого набора можно указать 0 или более объектов из второго набора и для каждого объекта из второго набора можно указать 0 или более объектов из первого набора.

Примерами связей M:N служат связи между

· продуктами и странами,

· между студентами и дисциплинами,

· между сотрудниками и проектами,

· между заявками и товарами,

· между магазинами и покупателями.

Каждый продукт может поставляться из многих стран и не поставляться вовсе. Каждая страна может поставлять много продуктов и не поставлять никаких.

Графически связи изображаются стрелками (рис.4.5).

В реальных СУБД реализуется только один тип связи – один ко многим.

Связь 1:1 получается из связи 1:М путем ее ограничения.

Для реализации связи М:N вводится новый набор объектов и используются две связи 1:М.

Например, связь между странами и продуктами типа M:N получается с помощью набора данных «поставки» (рис.4.6).

1. Основные понятия и термины к теме
“ИНФОРМАЦИОННАЯ МОДЕЛЬ – ОСНОВА ПОСТРОЕНИЯ
СИСТЕМЫ УПРАВЛЕНИЯ БАЗАМИ ДАННЫХ.

Каждой цивилизации приходится иметь дело с обработкой информации. С развитием экономики и ростом численности населения возрастает и объем взаимосвязанных данных, необходимых для решения коммерческих и административных задач.

@ Модель сбора, хранения, обработки и использования взаимосвязанных данных с целью наиболее оптимального управления информационными потоками и решения поставленных задач в данной предметной области называют информационной системой . Такая система в первую очередь призвана облегчить труд человека, но для этого она должна как можно лучше соответствовать очень сложной модели реального мира.

@ Ядром информационной системы являются хранимые в ней данные . На любом предприятии данные различных отделов, как правило, пересекаются, то есть используются в нескольких подразделениях или вообще являются общими. Например, для целей управления часто нужна информация по всему предприятию. Заказ комплектующих невозможен без наличия информации о запасах. Хранящиеся в информационной системе данные должны быть легко доступны в том виде, в каком они нужны для конкретной производственной деятельности предприятия. При этом не имеет существенного значения способ хранения данных. Сегодня на предприятии мы можем встретить систему обработки данных традиционного типа, в которой служащий вручную помещает данные в скоросшиватель, и рядом с ней - современную систему с применением самой быстродействующей ЭВМ, сложнейшего оборудования и программного обеспечения. Несмотря на поразительную несхожесть, обе эти системы обязаны предоставлять достоверную информацию в определенное время, определенному лицу, в определенном месте и с ограниченными затратами.

Чтобы понять процесс построения информационной системы, необходимо знать ряд терминов, которые применяются при описании и представлении данных.

@ Предметной областью называется часть реальной системы, представляющая интерес для данного исследования.

При проектировании автоматизированных информационных систем предметная область отображается моделями данных нескольких уровней. Число используемых уровней зависит от сложности системы, но в любом случае включает логический и физический уровни. Предметная область может относиться к любому типу организации (например, банк, университет, больница или завод).

Необходимо различать полную предметную область (крупное производственное предприятие, склад, универмаг и т. д.) и организационную единицу этой предметной области. Организационная единица в свою очередь может представлять свою предметную область (например, цех по производству кузовов автомобильного завода или отдел обработки данных предприятия по производству ЭВМ). В данном случае цехи и отделы сами могут соответствовать определенным предметным областям.

Информация, необходимая для описания предметной области, зависит от реальной модели и может включать сведения о персонале, заработной плате, товарах, накладных, счетах, отчетах по сбыту, лабораторных тестах, финансовых сделках, историях болезней, то есть сведения о людях, местах, предметах, событиях и понятиях.

@ Объектом называется элемент информационной системы, информацию о котором мы сохраняем. В реляционной теории баз данных объект называется сущностью.

Объект может быть реальным (например, человек, какой-либо предмет или населенный пункт) и абстрактным (например, событие, счет покупателя или изучаемый студентами курс). Так, в области продажи автомобилей примерами объектов могут служить МОДЕЛЬ АВТОМОБИЛЯ, КЛИЕНТ и СЧЕТ. На товарном складе - это ПОСТАВЩИК, ТОВАР, ОТПРАВЛЕНИЕ и т. д. Каждый объект обладает определенным набором свойств, которые запоминаются в информационной системе. При обработке данных часто приходится иметь дело с совокупностью однородных объектов, например таких, как служащие, и записывать информацию об одних и тех же свойствах для каждого из них.

@ Классом объектов называют совокупность объектов, обладающих одинаковым набором свойств.

Таким образом, для объектов одного класса набор свойств будет одинаков, хотя значения этих свойств дл я каждого объекта, конечно, могут быть разными. Например, класс объектов МОДЕЛЬ свойств дл я каждого объекта, конечно, могут быть разными. Например, класс объектов МОДЕЛЬ АВТОМОБИЛЯ будет иметь одинаковый набор свойств, описывающих характеристики автомобилей, и каждая модель будет иметь различные значения этих характеристик.

Объекты и их свойства являются понятиями реального мира. В мире информации, существующем в представлении программиста, говорят об атрибутах объектов.

@ Атрибут - это информационное отображение свойств объекта. Каждый объект характеризуется рядом основных атрибутов.

Например, модель автомобиля характеризуется типом кузова, рабочим объемом двигателя, количеством цилиндров, мощностью, габаритами, названием и т.д. Клиент магазина, продающего автомобили, имеет такие атрибуты, как фамилию, имя, отчество, адрес и, возможно, идентификационный номер. Каждый атрибут в модели должен иметь уникальное имя - идентификатор. Атрибут при реализации информационной модели на каком-либо носителе информации часто называют элементом данных , полем данных или просто полем .

Рис. 1.1. Три области представления данных.

@ Таблица - это некоторая регулярная структура, состоящая из конечного набора однотипных записей. В некоторых источниках таблица называется отношением.

Мы постараемся избегать последнего термина, так как с развитием реляционной теории “отношением” наряду с термином “связь” часто стали называть связи между таблицами. Каждая запись одной таблицы состоит из конечного (и одинакового!) числа полей , причем конкретное поле каждой записи одной таблицы может содержать данные только одного типа.

@ Значения данных представляют собой действительные данные, содержащиеся в каждом элементе данных.

Элемент данных “НАИМЕНОВАНИЕ МОДЕЛИ” может принимать такие значения, как “Voyager"96 3.8 Grand ”, “Continental 4.6” или “Crown Victoria 4.6” . В зависимости от того, как элементы данных описывают объект, их значения могут быть количественными, качественными или описательными. Информацию о некоторой предметной области можно представить с помощью нескольких объектов, каждый из которых описывается несколькими элементами данных. Принимаемые элементами данных значения называются данными .

@ Единичный набор принимаемых элементами данных значений называется экземпляром объекта . Объекты связываются между собой определенным образом.

@ Соответствующая модель объектов с составляющими их элементами данных и взаимосвязями называется концептуальной моделью предметной области. Концептуальная модель дает представление о потоке данных в предметной области.

Некоторые элементы данных обладают важным для построения информационной модели свойством. Если известно значение, которое принимает такой элемент данных объекта, мы можем идентифицировать значения, которые принимают другие элементы данных этого же объекта. Например, зная уникальный номер модели автомобиля - 7, мы можем определить, что это “Voyager" 96” и что рабочий объем двигателя у данной модели “ 3778” .

@ Ключевым элементом данных называется такой элемент, по которому можно определить значения других элементов данных.

Однозначно идентифицировать объект могут два и более элемента данных. В этом случае их называют “кандидатами” в ключевые элементы данных. Вопрос о том, какой из кандидатов использовать для доступа к объекту, решается пользователем или разработчиком системы. Выбирать ключевые элементы данных следует тщательно, поскольку правильный выбор способствует созданию верной концептуальной модели данных.

@ Первичный ключ - это атрибут (или группа атрибутов), которые единственным образом идентифицируют каждую строку в таблице.

Понятие первичного ключа является исключительно важным в связи с понятием целостности баз данных, которое мы подробно рассмотрим в конце этого параграфа.

@ Альтернативный ключ - это атрибут (или группа атрибутов), несовпадающий с первичным ключом и уникально идентифицирующий экземпляр объекта.

Например, для объекта “СЛУЖАЩИЙ”, который имеет атрибуты “ИДЕНТИФИКАТОР СЛУЖАЩЕГО”, “ФАМИЛИЯ”, “ИМЯ” и “ОТЧЕСТВО”, группа атрибутов “ФАМИЛИЯ”, “ИМЯ”, “ОТЧЕСТВО” может являться альтернативным ключом по отношению к атрибуту “ИДЕНТИФИКАТОР СЛУЖАЩЕГО” (в предположении, что на предприятии не работают полные тезки).

@ Внешний ключ - это атрибут таблицы, являющийся первичным ключом другой таблицы.

Например, атрибут "НОМЕР МОДЕЛИ" объекта АВТОМОБИЛЬ может быть внешним ключом по отношению к объекту "MODEL" (Модель автомобиля).

@ Запись данных - это совокупность значений связанных элементов данных.

На рис. 1.2. такими элементами данных являются уникальный ключ и наименование модели, рабочий объем, количество цилиндров и мощность двигателя. Например, одна из записей –“7 Voyager’96 3.8 Grand 3778 6 164,0” . Эта строка представляет собой значения, которые принимают элементы данных объекта МОДЕЛЬ АВТОМОБИЛЯ (MODEL). Записи хранятся на некотором носителе, в качестве которого может выступать человеческий мозг, лист бумаги, память ЭВМ, внешнее запоминающее устройство и т. д.

MODEL

УНИКАЛЬНЫЙ КЛЮЧ МОДЕЛИ

Наименование модели

Рабочий объем (куб. см.)

Мощность (л.сил)

GMC Jimmy 4.3

7

Voyager’96 3.8 Grand

3778

164,0

Stealth 3.0

348 Spider 3.4

Рис.1.2. Записи данных объекта MODEL.

Каждая запись одной таблицы состоит из конечного (и одинакового!) числа полей , причем конкретное поле каждой записи одной таблицы может содержать данные только одного типа

@ Тип данных характеризует вид хранящихся данных.

Понятие типа данных в информационной модели полностью адекватно понятию типа данных в языках программирования. Обычно в современных СУБД допускается хранение символьных, числовых данных, битовых строк, специализированных числовых данных (например, суммы в денежных единицах), а также данных специального формата (дата, время, временной интервал и пр.). В любом случае при выборе типа данных следует учитывать возможности той СУБД, с помощью которой будет реализовываться физическая модель информационной системы.

@ Связь - это функциональная зависимость между сущностями.

Если между некоторыми сущностями существует связь, то факты из одной сущности ссылаются или некоторым образом связаны с фактами из другой сущности. Поддержание непротиворечивости функциональных зависимостей между сущностями называется ссылочной целостностью. Поскольку связи содержатся “внутри” реляционной модели, реализация ссылочной целостности может выполняться как приложением, так и самой СУБД (с помощью механизмов декларативной ссылочной целостности и триггеров).

Связи могу быть представлены пятью основными характеристиками:

Тип связи (идентифицирующая, не идентифицирующая)

Родительская сущность;

Дочерняя (зависимая) сущность;

Мощность связи (cordiality );

Допустимость пустых (null ) значений.

Связь называется идентифицирующей , если экземпляр дочерней сущности идентифицируется (однозначно определяется) через ее связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в первичный ключ дочерней сущности. Дочерняя сущность при идентифицирующей связи всегда является зависимой .

Связь называется не идентифицирующей , если экземпляр дочерней сущности идентифицируется иначе, чем через связь с родительской сущностью. Атрибуты, составляющие первичный ключ родительской сущности, при этом входят в состав не ключевых атрибутов дочерней сущности.

Мощность связи представляет собой отношение количества экземпляров родительской сущности к соответствующему количеству экземпляров дочерней сущности. Для любой связи, кроме неспецифической, эта связь записывается как 1:n .

@ Хранимые процедуры - это приложение (программа), объединяющее запросы и процедурную логику (операторы присваивания, логического ветвления и т. д.) и хранящееся в базе данных.

Хранимые процедуры позволяют содержать вместе с базой данных достаточно сложные программы, выполняющие большой объем работы без передачи данных по сети и взаимодействия с клиентом. Как правило, программы, записываемые в хранимых процедурах, связаны с обработкой данных. Тем самым база данных может представлять собой функционально самостоятельный уровень приложения, который может взаимодействовать с другими уровнями для получения запросов или обновления данных.

@ Правила позволяют вызывать выполнение заданных действий при изменении или добавлении данных в базу данных (БД) и тем самым контролировать истинность помещаемых в нее данных.

Обычно действие - это вызов определенной процедуры или функции. Правила могут ассоциироваться с полем или записью и, соответственно, срабатывать при изменении данных в конкретном поле или записи таблицы. Нельзя использовать правила при удалении данных. В отличие от ограничений, которые являются лишь средством контроля относительно простых условий корректности ввода данных, правила позволяют проверять и поддерживать сколь угодно сложные соотношения между элементами данных в БД.

@ Ссылочная целостность - это обеспечение соответствия значения внешнего ключа экземпляра дочерней сущности значениям первичного ключа в родительской сущности.

Ссылочная целостность может контролироваться при всех операциях, изменяющих данные.

@ Нормализация отношений - это процесс построения оптимальной структуры таблиц и связей в реляционной БД.

В процессе нормализации элементы данных группируются в таблицы, представляющие объекты и их взаимосвязи. Теория нормализации основана на том, что определенный набор таблиц обладает лучшими свойствами при включении, модификации и удалении данных, чем все остальные наборы таблиц, с помощью которых могут быть представлены те же данные. Введение нормализации отношений при разработке информационной модели обеспечивает минимальный объем физической, то есть записанной на каком-либо носителе, БД и ее максимальное быстродействие, что впрямую отражается на качестве функционирования информационной системы. Нормализация информационной модели выполняется в несколько этапов (1-ая, 2-ая и 3-я нормальные формы).

@ Словарь данных - это централизованное хранилище сведений об объектах, составляющих их элементах данных, взаимосвязях между объектами, их источниках, значениях, использовании и форматах представления.

@ Обеспечением целостности базы данных называется система мер, направленных на поддержание правильности данных в базе данных в любой момент времени.

Затраты на проверку и поддержание достоверности данных могут составлять значительную часть от общих эксплутационных затрат. Например, в транспортных предприятиях для контроля правильности ввода данных с путевой документации практикуется параллельный ввод одних и тех же данных несколькими операторами. Считается, что вероятность совершения одной и той же ошибки в этом случае будет крайне мала и простое сравнение результатов ввода различных операторов поможет получить безошибочные данные. В СУБД целостность данных обеспечивается набором специальных предложений, называемых ограничениями целостности.

@ Ограничения целостности - это набор определенных правил, которые устанавливают допустимость данных и связей между ними.

Система автоматизированной обработки данных основывается на использовании определенной модели данных или информационной модели. Модель данных отражает взаимосвязи между объектами.

2. Последовательность создания информационной модели

Процесс создания информационной модели начинается с определения концептуальных требований ряда пользователей (рис. 2.1). Концептуальные требования могут определяться и для некоторых задач (приложений), которые в ближайшее время реализовывать не планируется. Это может несколько повысить трудоемкость работы, однако поможет наиболее полно учесть все нюансы функциональности, требуемой для разрабатываемой системы, и снизит вероятность ее переделки в дальнейшем. Требования отдельных пользователей интегрируются в едином “обобщенном представлении”. Последнее называют концептуальной моделью.

@ Концептуальная модель представляет объекты и их взаимосвязи без указания способов их физического хранения.

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

Концептуальная модель транслируется затем в модель данных, совместимую с выбранной СУБД. Возможно, что отраженные в концептуальной модели взаимосвязи между объектами окажутся впоследствии нереализуемыми средствами выбранной СУБД. Это потребует изменения концептуальной модели. Версия концептуальной модели, которая может быть обеспечена конкретной СУБД, называется логической моделью.

@ Логическая модель отражает логические связи между элементами данных вне зависимости от их содержания и среде хранения.

Логическая модель данных может быть реляционной, иерархической или сетевой . Пользователям выделяются подмножества этой логической модели, называемые внешними моделями (в некоторых источниках их также называют подсхемами), отражающие их представления о предметной области. Внешняя модель соответствует представлениям, которые пользователи получают на основе логической модели, в то время как концептуальные требования отражают представления, которые пользователи первоначально желали иметь и которые легли в основу разработки концептуальной модели. Логическая модель отображается в физическую память, такую, как диск, лента или какой-либо другой носитель информации.

@ Физическая модель , определяющая размещение данных, методы доступа и технику индексирования, называется внутренней моделью системы.

С точки зрения прикладного программирования независимость данных определяется не техникой программирования, а его дисциплиной. Например, для того чтобы при любом изменении системы избежать перекомпиляции приложения, рекомендуется не определять константы (постоянные значения данных) в программе. Лучшее решение состоит в передаче программе значений в качестве параметров.

Все актуальные требования предметной области и адекватные им "скрытые" требования на стадии проектирования должны найти свое отражение вконцептуальной модели. Конечно, нельзя предусмотреть все возможные варианты использования и изменения базы данных. Но в большинстве предметных областей такие основные данные, как объекты и их взаимосвязи, относительно стабильны. Меняются только информационные требования, то есть способы использования данных для получения информации.

Степень независимости данных определяется тщательностью проектирования базы данных. Всесторонний анализ объектов предметной области и их взаимосвязей минимизирует влияние изменения требований к данным в одной программ на другие программы. В этом и состоит всеобъемлющая независимость данных.

3. Взаимосвязи в модели

Взаимосвязь выражает отображение или связь между двумя множествами данных. Различают взаимосвязи типа «один к одному », «один ко многим » и «многие ко многим ». В рассматриваемой задаче по автоматизации управления работой дилерапопродаже легковых автомобилей, если клиент производит заказ на покупку автомобиля впервые, осуществляется первичная регистрация его данных и сведений о сделанном заказе. Если же клиент производит заказ повторно, осуществляется регистрация только данного заказа. Вне зависимости от того, сколько раз данный клиент производил заказы, он имеет уникальный иденти­фикационный номер (уникальный ключ клиента). Информация о каждом клиенте включает наименование клиента, адрес, телефон, факс, фамилию, имя, отчество, признак юридического лица и примечание. Таким образом, атрибутами объекта КЛИЕНТ являются «УНИКАЛЬНЫЙ КЛЮЧ КЛИЕНТА», «НАИМЕНОВАНИЕ КЛИЕНТА», «АДРЕС КЛИЕНТА» и т. д. Следующий представляющий для нас интерес объект - МОДЕЛЬ АВТОМОБИЛЯ. Этот объект имеет атрибуты «УНИКАЛЬНЫЙ КЛЮЧ МОДЕЛИ», «НАИМЕНОВАНИЕ МОДЕЛИ» и т.д. Третий рассматриваемый объект - ЗАКАЗ. Его атрибутами являются «НОМЕР ЗАКАЗА», «КЛЮЧ КЛИЕНТА» и «КЛЮЧ МОДЕЛИ». И четвертый рассматриваемый объект - ПРОДАВЕЦ. Его атрибутами являются «УНИКАЛЬНЫЙ КЛЮЧ ПРОДАВЦА», «ИМЯ ПРОДАВЦА», «ФАМИЛИЯ» и «ОТЧЕСТВО».

Взаимосвязь «один к одному» (между двумя типами объектов)

Мысленно вернемся к временам планово-распределительной экономики. Допустим, в определенный момент времени один клиент может сделать только один заказ. В этом случае между объектами КЛИЕНТ и ЗАКАЗ устанавливается взаимосвязь «один к одному », обозначаемая одинарными стрелками, как это показано на рис. 2.2,а.

Рис. 2.2. Взаимосвязи между двумя объектами: а) «один к одному»; б) «один ко многим»; в) «многие ко многим»

Рис. 2.3. Взаимосвязь между данными при отношении «один к одному».

Взаимосвязь «один ко многим» (между двумя типами объектов).

В определенный момент времени один клиент может стать обладателем несколь­ких моделей автомобилей, при этом несколько клиентов не могут являться обладателями одного автомобиля. Взаимосвязь «один ко многим» можно обоз­начить с помощью одинарной стрелки в направлении к «одному» и двойной стрелки в направлении ко «многим», как это показано на рис. 2.2,б.

В этом случае одной записи данных первого объекта (его часто называют родительским или основным) будет соответствовать несколько записей второго объекта (дочернего или подчиненного). Взаимосвязь «один ко многим» очень распространена при разработке реляционных баз данных. В качестве родительского объекта часто выступает справочник, а в дочернем хранятся уникальные ключи для доступа к записям справочника. В нашем примере в качестве такого справочника можно представить объект КЛИЕНТ, в котором хранятся сведения о всех клиентах. При обращении к записи для определенного клиента нам доступен список всех покупок, которые он сделал и сведения о которых хранятся в объекте МОДЕЛЬ АВТОМОБИЛЯ, как это показано на рис. 2.4. В случае, если в дочернем объекте будут какие-то записи, для которых нет соответствующих записей в объекте КЛИЕНТ, то мы их не увидим. В этом случае говорят, что объект содержит потерянные (одинокие) записи. Это не допустимо, и в дальнейшем вы узнаете, как избегать подобных ситуаций.

Рис. 2.4. Взаимосвязь между данными при отношении «один ко многими».

Если мы будем просматривать записи объекта МОДЕЛЬ АВТОМОБИЛЯ, то в объекте КЛИЕНТ мы сможем получить данные о клиенте, купившем данный автомобиль (см. рис. 2.4). Обратите внимание, что для потерянных записей сведений о клиенте мы не получим.

Взаимосвязь «многие ко многими (между двумя типами объектов).

В рассматриваемом примере каждый продавец может обслуживать нескольких клиентов. С другой стороны, приобретая автомобили в различное время, каждый клиент вполне может быть обслужен различными продавцами. Между объектами КЛИЕНТ и ПРОДАВЕЦ существует взаимосвязь «многие ко многим». Такая взаимосвязь обозначается двойными стрелками, как это показано на рис. 2.2, в.

На рис. 2.5 приведена схема, по которой в этом случае будут взаимосвязаны данные. При просмотре данных в объекте КЛИЕНТ мы сможем узнать, какие продавцы обслуживали определенного клиента. Однако в объекте ПРОДАВЕЦ в этом случае нам придется завести несколько записей для каждого продавца. Каждая строчка будет соответствовать каждому обслуживанию продавцом кли­ента. При таком подходе мы столкнемся с серьезными проблемами. Например, не сможем ввести в объект ПРОДАВЕЦ уникальный ключ для каждого продав­ца, так как неизбежно один продавец будет обслуживать нескольких клиентов, и в этом случае у нас появится несколько записей для одного и того же продавца.

Рис. 2.5. Взаимосвязь между данными при отношении «многие ко многими

Согласно теории реляционных баз данных для хранения взаимосвязи «многие ко многим» требуются три объекта: по одному для каждой сущности и один для хранения связей между ними (промежуточный объект). Промежуточный объект будет содержать идентификаторы связанных объектов, как это показано на рис. 2.6.

Рис. 2.6. Отображение взаимосвязи между данными при отношении «многие ко многим» с помощью промежуточного объекта

Взаимосвязи между объектами являются частью концептуальной модели и должны отображаться в базе данных. Наряду с взаимосвязями между объектами существуют взаимосвязи между атрибутами объекта. Здесь также различают взаимосвязи типа «один к одному», «один ко многим» и «многие ко многим».

Взаимосвязь «один к одному» (между двумя атрибутами)

Мы предполагаем, что ключ (номер) клиента является его уникальным идентификатором, то есть он не изменяетсяпри последующих поступлениях заказов от данного клиента. Если наряду с номером клиента в базе данных хранится и другой его уникальный идентификатор (например, номер паспорта),то между такими двумя уникальными идентификаторами существует взаимосвязь «один к одному». На рис. 2.7,а эта взаимосвязь обозначается одинарными стрелками .

Взаимосвязь «один ко многим» (между двумя атрибутами)

Имя клиента и его номер существуют совместно. Клиентов с одинаковыми именами может быть много, но все они имеют различные номера. Каждому клиенту присваивается уникальный номер. Это означает, что данному номеру клиента соответствует только одно имя. Взаимосвязь «один ко многим» обозначается одинарной стрелкой в направлении к «одному» и двойной стрелкой в направлении ко «многим» (рис.2.7, б ).

Взаимосвязь «многие ко многим» (между двумя атрибутами)

Несколько клиентов с одинаковыми именами могли быть обслужены несколькими продавцами. Несколько продавцов с одинаковыми именами могли получить заказы от нескольких клиентов. Между атрибутами «имя клиента» и «имя продавца» существует взаимосвязь «многие ко многим». Мы обозначаем эту взаимосвязь двойными стрелками (рис. 2.7,в ).

а)

б)

в)

Рис. 2.7. Взаимосвязи между двумя атрибутами:
а) взаимосвязь «один к одному»; б) взаимосвязь «один ко многим
» в) взаимосвязь «многие ко многим »

Типы моделей данных

Иерархическая и сетевая модели данных стали применяться в системах управления базами данных в начале 60-х годов. В начале 70-х годов была предложена реляционная модель данных. Эти три модели различаются в основном способами представления взаимосвязей между объектами.

Иерархическая модель данных строится по принципу иерархии типов объектов, то есть один тип объекта является главным, а остальные, находящиеся на низших уровнях иерархии, - подчиненными (рис. 2.8). Между главным и подчиненными объектами устанавливается взаимосвязь «один ко многим». Иными словами, для данного главного типа объекта существует несколько подчиненных типов объекта. В то же время для каждого экземпляра главного объекта может быть несколько экземпляров подчиненных типов объектов. Таким образом, взаимосвязи между объектами напоминают взаимосвязи в генеалогическом дереве за единственным исключением: для каждого порожденного (подчиненног o ) типа объекта может быть только один исходный (главный) тип объекта. На рис. 2.8 узлы и ветви образуют иерархическую древовидную структуру. Узел является совокупностью атрибутов, описывающих объект. Наивысший в иерархии узел называется корневым (это главный тип объекта). Корневой узел находится на первом уровне. Зависимые узлы (подчиненные типы объектов) находятся на втором, третьем и т. д. уровнях.

Рис. 2.8. Схема иерархической модели данных.

В сетевой модели данных понятия главного и подчиненных объектов несколько расширены. Любой объект может быть и главным и подчиненным (в сетевой модели главный объект обозначается термином “владелец набора”, а подчиненный – термином “член набора”). Один и тот же объект может одновременно выступать и в роли владельца, и в роли члена набора. Это означает, что каждый объект может участвовать в любом числе взаимосвязей. Схема сетевой модели приведена на рис.2.9.

Рис.2.9. Схема сетевой модели данных.

В реляционной модели данных объекты и взаимосвязи между ними представляются с помощью таблиц, как это показано на рис. 2.10. Взаимосвязи также рассматриваются в качестве объектов. Каждая таблица представляет один объект и состоит из строк и столбцов. В реляционной базе данных каждая таблица должна иметь первичный ключ (ключевой элемент) – поле или комбинацию полей, которые единственным образом идентифицируют каждую строку в таблице. Благодаря своей простоте и естественности представления реляционная модель получила наибольшее распространение в СУБД для персональных компьютеров.

Рис. 2.10. Схема реляционной модели данных.