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

Данные в базах данных организуются в соответствии с одной из моделей данных.

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

Модель данных – совокупность структур данных и операций по их обработке.

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

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

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

Рис.17. Структура иерархической модели

Ветви между объектами отображают наличие некоторого отношения, причем название отношения пишется на ребре. Например, между объектами «клиент» и «заказ» может быть отношение, которое называется «делает», а между «заказ» и «товары» - отношение «состоит из». Этот тип модели отражает вертикальные связи, подчинение нижнего уровня верхнему, т.е. к каждой записи БД есть только один (иерархический) путь от корневой записи.

Примером такой модели может служить БД, содержащая сведения о ВУЗе (на примере БелГСХА)

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

Рис. 18. Представление связей в сетевой модели

3. Реляционная модель. Понятие реляционной модели данных (от английского relation – отношение) связано с разработками Эриха Кодда. Эта модель характеризуется простотой структуры данных, удобным для пользователя табличным представлением и возможностью использования аппарата реляционной алгебры для обработки данных.

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

Реляционная таблица обладает следующими свойствами:

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

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

Рассмотрим таблицу, содержащую данные о сотрудниках предприятия

Табельный № Фамилия И.О. Код отдела Рабочий телефон
  ПЕТРОВ А.В.   555-12-67
  РОМАНЕНКО С.Т.   555-12-80
  СТЕПАНОВА И.С.    

Можно увидеть, что у всех трех записей атрибуты одинаковы, однако принимают разные значения. Так, для записи №1 атрибут "табельный №" принимает значение "008976", а для записи №2 - "008980" и т.д.

Значения некоторых атрибутов у разных записей может совпадать, например, у записей №1 и №2 одинаковое значение атрибута "код отдела". Однако в каждой таблице должен иметься атрибут (или совокупность атрибутов), значение которых никогда не повторяется и однозначно идентифицирует каждую ее строку. Это нужно для того, чтобы при работе с базой можно было отличать одну запись от другой. Такие атрибуты называют уникальными. Уникальный атрибут таблицы или совокупность ее уникальных атрибутов называют первичным ключом или ключевым полем. В данной таблице ключом является атрибут "табельный №".

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

В ряде случаев атрибут может не получать никакого значения, например, у сотрудника №3 нет рабочего телефона, и соответствующий атрибут не заполнен. В этом случае говорят, что атрибут имеет нулевое значение. Ключ не может иметь нулевое значение.

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

Код Наименование отдела
  ДИРЕКЦИЯ
  БУХГАЛТЕРИЯ
  ОТДЕЛ КАДРОВ
  КАНЦЕЛЯРИЯ

Между двумя приведенными таблицами можно установить отношение "СОТРУДНИК - работает в - ОТДЕЛЕ". Если требуется узнать информацию об отделе, в котором работает сотрудник, нужно взять значение атрибута "код отдела" в таблице "СОТРУДНИКИ" и найти соответствующий код в таблице "ОТДЕЛЫ". Таким образом, две записи из разных таблиц как бы объединятся в одну:

Табельный № Фамилия И.О. Код отдела Рабочий телефон
  РОМАНЕНКО С.Т.   555-12-80

+

Код Наименование отдела
  ОТДЕЛ КАДРОВ

=

Табельный № Фамилия И.О. Код отдела Рабочий телефон Наименование отдела
  РОМАНЕНКО С.Т.   555-12-80 ОТДЕЛ КАДРОВ

Можно увидеть, что отношения между двумя таблицами устанавливаются на основе соответствия значений атрибутов двух таблиц, в нашем случае это атрибут "код отдела" таблицы "СОТРУДНИКИ" и атрибут "код" таблицы "ОТДЕЛЫ". Такие атрибуты называют атрибутами связи. Атрибут связи в одной таблице должен быть ключом. В приведенном примере атрибут "код" является ключом для таблицы "ОТДЕЛЫ". Если бы это было не так, и коды отделов в этой таблице повторялись, невозможно было бы определить, о каком из отделов говорится в первой таблице. Второй атрибут связи - в данном случае атрибут "код отдела" таблицы "СОТРУДНИКИ" - называют внешним ключом, так как он ссылается на ключ другой ("внешней") таблицы.

Для поддержания целостности данных необходимо, чтобы внешний ключ всегда ссылался на существующий ключ. Например, если в таблице "СОТРУДНИКИ" указать код отдела со значением 028, а в таблице "ОТДЕЛЫ" отдела с таким кодом не будет, то целостность данных нарушится - сотрудник будет показан работником несуществующего отдела. Поэтому сама база данных или работающее с ней приложение должно запрещать ввод значений внешнего ключа, ссылающегося на несуществующий ключ.

Подобное нарушение целостности может возникнуть и в том случае, когда удаляется одна из записей таблицы, содержащей ключевое поле. Например, при удалении из таблицы "ОТДЕЛЫ" записи №3, содержащей ключ 024, записи №1 и №2 таблицы "СОТРУДНИКИ" будут ссылаться на несуществующий отдел.

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

Целостность данных в этом случае поддерживается одним из нескольких способов:

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

2. Если запись удаляется, то все внешние ключи ссылающихся на нее записей принимают нулевое значение. В нашем случае атрибут "код отдела" для первых двух сотрудников примет нулевое значение.

3. Ссылающиеся записи "каскадно" уничтожаются. При удалении записи об отделе 024 в таблице "ОТДЕЛЫ" все записи о сотрудниках этого отдела в таблице "СОТРУДНИКИ" также будут удалены.

Итак, реляционная база данных - это такая база данных, которая воспринимается ее пользователем как совокупность таблиц.

Каждая таблица представляет один объект (сущность) состоит из строк и столбцов.

Т.о., реляционная модель – это множество нормализованных взаимосвязанных таблиц.

Нормализация отношений – это процесс построения оптимальной структуры таблиц и связей в реляционной базе данных.

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

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

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

Преимущества реляционной модели:

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

2. Легко производить изменения. Если в таблице СЕССИЯ изменить какие-нибудь значения, то правильная информация автоматически будет связана с другими таблицами, ссылающимися на первую, напр., табл. СТИПЕНДИЯ.

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

4. Максимально возможная компактность хранения данных;

5. Удобные для пользователя вид и форма извлекаемой информации;

6. Высокая скорость доступа к данным;

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

8. Удобство и простота конструирования пользователем запросов, форм и отчетов для выборки данных.

В последние годы появились новые модели данных:

  • постреляционная;
  • многомерная;
  • объектно-ориентированная;
  • объектно-раляционные;
  • семантические и др.

ЭЛЕМЕНТЫ БД:

1. Поле – элементарная единица логической организации БД, которая соответствует неделимой единице информации - реквизиту. Поле идентично столбцу в таблице. Для описания поля используются следующие характеристики:

- имя (краткое название реквизита);

- тип (числовой, текстовый);

- длина.

2. Запись – совокупность логически связанных полей.

3. Экземпляр записи – отдельная реализация записи, содержащая конкретные значения ее полей. Запись идентична строке в таблице. Запись соответствует составной единице информации – документу (разовый), или строке документа (накопительный).

4. Файл (таблица) – именованная совокупность одинаковых по структуре экземпляров записей.

Файл (таблица) соответствует составной единице информации – информационному массиву.

Описать логическую структуру – означает указать последовательность расположения полей записей и их основные характеристики (тип, длина).

5. Ключевое поле – это поле,значение которого однозначно идентифицирует запись. В структуре записи файла указываются поля, значения которых являются ключами: первичными (они идентифицируют экземпляр записи) и вторичными (они выполняют роль поисковых или группировочных признаков).


Понравилась статья? Добавь ее в закладку (CTRL+D) и не забудь поделиться с друзьями:  




Подборка статей по вашей теме: