Урок 39
Виды моделей данных
— что представляет собой модель данных;
— в чем особенность иерархической модели данных;
— в чем особенность сетевой модели данных;
— в чем особенность реляционной модели данных;
— как устанавливаются связи в реляционной модели.
Сетевая модель данных
Сетевая модель, как и иерархическая, отражает взаимосвязь информационных объектов. Она базируется на тех же основных понятиях: узел, уровень, связь. Основным ее отличием является то, что каждый элемент одного уровня в сетевой модели может быть связан с любым количеством элементов другого уровня. Свойства сетевой модели:
♦ Каждый узел имеет имя (идентификатор).
♦ Узлы одного уровня образуют один класс объектов.
♦ Каждый узел одного уровня может быть связан с произвольным количеством узлов другого уровня.
В качестве примера можно рассмотреть базу данных, в которой хранятся сведения об увлечениях подростков (рис. 4.8). В модели представлены два уровня (класса): увлечения и подростки. Связи показывают увлечения конкретных подростков. С одной стороны, каждый подросток может иметь несколько увлечений. С другой стороны, одно увлечение может быть у многих подростков. Связи такого типа называются «многие-ко-многим», для них введено условное обозначение М:М.
Рис. 4.8. Пример сетевой модели
Реляционная модель данных
Таблица является одним из наиболее удобных и привычных человеку способов представления данных. Это свойство и определило основу реляционной модели данных, на которую сориентировано большинство современных СУБД — систем управления базами данных.
Реляционная модель данных представляет собой совокупность таблиц с установленными между ними связями. Название «реляционная» происходит от английского слова relation — отношение. Этот термин указывает, что модель отражает отношения составляющих ее частей.
В реляционной модели каждая таблица описывает один класс объектов.
Рассмотрим таблицу, содержащую сведения об учениках школы: номер личного дела, фамилия, имя, отчество, дата рождения (табл. 4.2). В ней описывается класс объектов Ученики.
Каждый столбец в такой таблице называется полем. Верхняя строка содержит названия параметров объекта и отображает структуру записи.
Каждая последующая строка является записью.
С такой формой хранения данных мы знакомились уже в начале этого раздела. Реляционная модель данных имеет следующие свойства.
Таблица 4.2. Ученики
1. Каждый элемент таблицы — один элемент данных. Элементом таблицы является ячейка. Данное свойство означает, что в одной ячейке реляционной таблицы не может указываться более одного значения параметра. Ниже показано правильное и неправильное представление данных.
2. Все элементы одного столбца (поля) имеют одинаковый тип (числовой, символьный и т. п.), формат и смысл. Данное свойство указывает, что в одном столбце таблицы не могут содержаться данные разных типов, например, и текст, и числа. Кроме того, данные одного типа (например, дата) должны иметь одинаковый формат, то есть нельзя в одном столбце записать дату сначала так: 8 сентября 2003 года, а потом так: 23.11.2001. И наконец, все данные одного столбца должны иметь одинаковый смысл. Иначе говоря, если в столбце установлен тип «Дата», то она должна для всех записей означать одно и то же, например дату рождения.
3. Каждый столбец (поле) имеет уникальное имя. Это свойство означает, что в таблице не может быть столбца, не имеющего имени, и не может быть двух столбцов с одинаковыми именами. В разных таблицах одной модели одинаковые имена столбцов допустимы, но нежелательны.
4. Одинаковые строки в таблице отсутствуют. Это означает, что каждая строка описывает конкретный объект. Если, например, в базе данных описываются автомобили, то в реальной жизни вполне допустимо, что два автомобиля имеют одинаковые характеристики: и марку, и цвет, и объем двигателя и пр. Чтобы различить автомобили-близнецы вводят специальный параметр — заводской номер двигателя. Таким образом, в таблице может оказаться несколько похожих записей, которые будут отличаться только заводским номером двигателя.
5. Порядок следования строк в таблице может быть произвольным. Это означает, что информация об объекте одного класса не зависит от информации о другом объекте этого же класса.
6. Каждая таблица должна иметь ключ. Ключ (ключевой элемент) — это поле или совокупность полей, которые единственным образом определяют каждую строку (запись) в таблице. Таким образом, все строки таблицы являются уникальными, то есть не может быть строк с одинаковыми ключами. Например, в табл. 4.2 в качестве ключевого поля можно выбрать поле Номер личного дела, а другие поля в качестве ключа выбрать нельзя, потому что значения в них могут повторяться.
7. Таблицы, входящие в модель данных, могут характеризоваться разным количеством полей и записей. Каждая таблица описывает определенный класс объектов, который может характеризоваться своим набором параметров, и, соответственно, таблицы могут иметь разную структуру, а также количество записей.
Рассмотрим приведенную выше табл. 4.2, в которой хранятся сведения об учениках школы. Эта модель данных является реляционной, так как она удовлетворяет всем перечисленным свойствам реляционных таблиц. В каждой ячейке таблицы записано только одно значение какого-либо признака (свойство 1). Информация в каждом столбце имеет одинаковый тип, формат записи и смысл (свойство 2). Заголовки столбцов имеют разные имена (свойство 3). Одинаковые строки отсутствуют (свойство 4). Сведения об одном ученике никак не зависит от сведений о других учениках, следовательно, строки можно расположить в любом порядке (свойство 5). Поле Номер личного дела можно выбрать в качестве ключа (свойство 6).
Над данной моделью базы удобно производить следующие действия:
— сортировку данных (например, по алфавиту);
— выборку данных по группам (например, по датам рождения или по фамилиям);
— поиск записей (например, по фамилиям) и т. д.
Контрольные вопросы и задания
1. Что такое модель данных и для чего она нужна?
2. Приведите определение информационной модели и сопоставьте его с определением модели данных. Найдите у них общие и различающиеся характеристики.
3. Какие вы знаете формы представления информационной модели? Сравните их и сделайте вывод о том, когда лучше использовать ту или иную форму представления.
4. Приведите примеры моделей данных для разных предметных областей.
5. Что представляет собой иерархическая модель данных в общем виде?
6. Что такое узел иерархической модели данных?
7. В чем состоят свойства иерархической модели данных?
8. Приведите примеры иерархических моделей данных.
9. Что представляет собой сетевая модель данных в общем виде?
10. В чем состоят свойства сетевой модели данных?
11. Приведите примеры сетевых моделей данных.
12. Что представляет собой реляционная модель данных в общем виде?
13. Как вы понимаете связь между информационными объектами 1:1? Приведите примеры такого типа связей.
14. Как вы понимаете связь между информационными объектами 1:М? Приведите примеры этого типа связей.
15. Как вы понимаете связь между информационными объектами М:М? Приведите примеры данного типа связей.
16. В чем состоят свойства реляционной модели данных?
17. Приведите примеры реляционных моделей данных.
18. Как графически отображается реляционная модель данных?
19. Приведите примеры преобразования иерархической модели в реляционную.
20. Приведите примеры преобразования сетевой модели в реляционную.
4.2.1. Пример сетевой модели.
Рассмотрим таблицу, на основе которой организуем два набора и определим связь между ними:
Экземпляров набора (ведет занятия) будет 3 (по числу преподавателей), экземпляров набора (занимается у экземпляров набора) будет 4 (по числу групп).
Пример взаимосвязи экземпляров двух наборов
4.2.2. Сингулярный набор.
Среди всех наборов выделяют специальный тип набора, называемый сингулярным набором, владельцем которого формально определена вся система. Сингулярный набор изображается в виде входящей стрелки, которая имеет имя набора и имя члена набора, но у которой не определен тип записи Владелец набора.
Например, сингулярный набор М:
Сингулярные наборы позволяют обеспечить доступ к экземплярам отдельных типов данных, поэтому если в задаче алгоритм обработки информации предполагает обеспечение произвольного доступа к некоторому типу записи, то для поддержки этой возможности необходимо ввести соответствующий сингулярный набор.
В общем случае сетевая база данных представляет совокупность взаимосвязанных наборов, которые образуют на концептуальном уровне некоторый граф.
Концептуальная модель торгово-посреднической организации
5. Реляционная модель данных
Появление теоретико-множественных моделей в системах баз данных было предопределено настоятельной потребностью пользователей в переходе от работы с элементами данных, как это делается в графовых моделях, к работе с некоторыми макрообъектами. Основной моделью в этом классе является реляционная модель данных – простая и наглядная для пользователей-непрограммистов, с одной стороны, и имеющая серьезное теоретическое обоснование, с другой стороны. Кроме того, развитие формального аппарата представления и манипулирования данными в рамках реляционной модели сделали ее наиболее перспективной для использования в системах представления знаний, что обеспечивает качественно иной подход к обработке данных в больших информационных системах.
Основной структурой данных в реляционной модели является отношение, именно поэтому модель получила название реляционной (от английского relation — отношение).
Отношение имеет простую графическую интерпретацию, оно может быть представлено в виде таблицы, столбцы которой соответствуют вхождениям доменов в отношение, а строки – наборам из n значений, взятых из исходных доменов, которые расположены в строго определенном порядке в соответствии с заголовком. Такие наборы из n значений часто называют n-ками.
Данная таблица обладает рядом специфических свойств:
- В таблице нет двух одинаковых строк.
- Таблица имеет столбцы, соответствующие атрибутам отношения.
- Каждый атрибут в отношении имеет уникальное имя.
- Порядок строк в таблице произвольный.
Вхождение домена в отношение принято называть атрибутом. Строки отношения называются кортежами.
Количество атрибутов в отношении называется степенью (рангом, отношения).
В отношении не может быть одинаковых кортежей, это следует из математической модели: отношение – это подмножество декартова произведения, а в декартовом произведении все n-ки различны,
Реляционная модель представляет базу данных в виде множества взаимосвязанных отношений. В отличие от теоретико-графовых моделей в реляционной модели связи между отношениями поддерживаются неявным образом. В этой модели, так же как и в остальных моделях, поддерживаются иерархические связи между отношениями. В каждой связи одно отношение может выступать как основное, а другое отношение выступает в роли подчиненного. Это означает, что один кортеж основного отношения может быть связан с несколькими кортежами подчиненного отношения. Для поддержки этих связей оба отношения должны содержать наборы атрибутов, по которым они связаны.
В основном отношении это – первичный ключ отношения (PRIMARY KEY), который однозначно определяет кортеж основного отношения. В подчиненном отношении для моделирования связи должен присутствовать набор атрибутов, соответствующий первичному ключу основного отношения. Однако здесь этот набор атрибутов уже является вторичным ключом, то есть он определяет множество кортежей подчиненного отношения, которые связаны с единственным кортежем основного отношения. Данный набор атрибутов в подчиненном отношении принято называть внешним ключом (FOREIGN KEY).