Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Лекции информатика (бакалавры).doc
Скачиваний:
37
Добавлен:
21.09.2019
Размер:
854.02 Кб
Скачать

6.2.2 Сетевая модель данных

Сетевая модель данных определяется в тех же терминах, что и иерархическая. Она состоит из множества записей, которые могут быть владельцами или членами групповых отношений. Связь между записью-владельцем и записью-членом также имеет вид 1:N. Основное различие этих моделей состоит в том, что в сетевой модели запись может быть членом более чем одного группового отношения. Согласно этой модели каждое групповое отношение именуется и проводится различие между его типом и экземпляром. Тип группового отношения задается его именем и определяет свойства общие для всех экземпляров данного типа. Экземпляр группового отношения представляется записью-владельцем и множеством (возможно пустым) подчиненных записей. При этом имеется следующее ограничение: экземпляр записи не может быть членом двух экземпляров групповых отношений одного типа (т.е. сотрудник, например, не может работать в двух отделах).

Рисунок – Схема сетевой МД

Достоинства: Навигационная природа БД обеспечивает очень быстрый доступ при следовании вдоль заранее определенных связей.

Существуют 2 модели, описывающие сети связей между данными:

    1. Простая сетевая модель данных - все связи имеют тип 1:1 или 1:n.

Недостатки:

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

- выполнить незапланированные (с заранее не определенными связями) запросы очень сложно.

    1. Сложная сетевая модель - допускает непосредственную реализацию связей типа n:n.

Недостатки:

- связи n:n чересчур запутанные и сложные для сопровождения (Эта модель представляет только теоретический интерес).

6.2.3 Реляционная модель данных

Реляционная модель предложена сотрудником компании IBM Е.Ф.Коддом в 1970 г. В настоящее время эта модель является фактическим стандартом, на который ориентируются практически все современные коммерческие СУБД.

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

Отношения представляются в виде таблиц (рисунок ).

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

Поэтому, столбцы в таблице, представляющей реляционное отношение, называют атрибутами.

Основные компоненты реляционного отношения.

Поле 1

Поле 2

Поле 3

Поле 1

Поле 2

Поле 3

Поле 1

Поле 2

Поле 3

Рисунок – Пример реляционной модели данных

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

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

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

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

Реляционная БД использует язык манипулирования данными SQL.

Понятие нормализации.

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

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

В теории реляционных баз данных обычно выделяется следующая последовательность нормальных форм:

  1. первая нормальная форма (1NF);

  2. вторая нормальная форма (2NF);

  3. третья нормальная форма (3NF);

  4. нормальная форма Бойса-Кодда (BCNF);

  5. четвертая нормальная форма (4NF);

  6. пятая нормальная форма, или нормальная форма проекции-соединения (5NF или PJ/NF).

Основные свойства нормальных форм:

  1. каждая следующая нормальная форма в некотором смысле лучше предыдущей;

  2. при переходе к следующей нормальной форме свойства предыдущих нормальных свойств сохраняются.

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

Простой атрибут - атрибут, значения которого атомарны (неделимы).

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

Определение первой нормальной формы:

отношение находится в 1NF если значения всех его атрибутов атомарны.

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

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

  • Полная функциональная зависимость. Поле В находится в полной функциональной зависимости от составного поля А, если оно функционально зависит от А и не зависит функционально от любого подмножества поля А.

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

Определение второй нормальной формы:

Отношение находится во 2НФ, если оно находится в 1НФ и каждый не ключевой атрибут функционально полно зависит от ключа.

Отношение R находится во второй нормальной форме (2NF) в том и только в том случае, когда находится в 1NF, и каждый не ключевой атрибут полностью зависит от первичного ключа.

Третья нормальная форма связана с наличием транзитивной функциональной зависимости между атрибутами.

Транзитивная зависимость выявляет дублирование данных в одном отношении.

Например, Если А,В,С – 3 атрибута одного отношения и С зависит от В, а В зависит от А, то С транзитивно зависит от А.

П реобразование в 3 нормальную форму ппроисходит за счет разделения исходного отношения на 2.

Отношение с транзитивной зависимостью. Отношения без транзитивной зависимости.

Определение третьей нормальной формы:

Отношение находится в 3НФ, если оно находится во 2НФ и каждый не ключевой атрибут не транзитивно зависит от первичного ключа.