Разработка базы данных ”Продажа книг” и приложения для работы с ней, страница 2

ПОСТАВКИ                                ПОСТАВЩИКИ

Поставки содержат разные книги, а каждая книга может быть из разных поставок, следовательно между КНИГИ и ПОСТАВКИ связь М:М.

                                              1                              м

КНИГИ                               ПОСТАВКИ

                                               м                            1

У каждого клиента свой определенный набор покупок, но каждая покупка может быть у различных клиентов, следовательно между КНИГИ и ПОСТАВКИ связь М:М

В общем случае, между объектами в предметной области могут существовать связи 1:1, 1:М и М:М.

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

2.4. Экземпляры объектов

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

Экземпляры объекта АВТОРЫ

Экземпляры объекта ИЗДАТЕЛЬСТВО

Экземпляры объекта Клиенты

Экземпляры объекта КНИГИ

Экземпляры объекта КНИГИ_АВТОРА

Экземпляры объекта КОНТАКТНОЕ_ЛИЦО

Экземпляры объекта ПОКУПКИ

Экземпляры объекта ПОСТАВКИ

Экземпляры объекта ПОСТАВЩИКИ

Экземпляры объекта РАЗДЕЛЫ

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

3.1. Отношения  реляционной модели. Ключи отношений

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

Таблицы строятся по определенным правилам так, чтобы каждая из таблиц представляла бы собой математическое отношение. Строки таблицы называются кортежами отношения. Столбцы таблицы называются атрибутами отношений.

В соответствии с разработанной логической структурой данных в модели БД "Продажа книг" будут определены  5 отношений (5 таблиц) КНИГИ, АВТОРЫ, КЛИЕНТЫ,ПОСТАВКИ,ПОСТАВЩИКИ

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

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

В отношении КЛИЕНТ в качестве первичного ключа можно использовать атрибут Имя клиента, поскольку его значения не повторяются (ранее было принято ограничение о том, что имена клиентов не повторяются и, следовательно, имя клиента однозначно определяет город и телефон).

В отношении КНИГИ первичный ключ - Название книги.

В отношении АВТОРЫ – составной первичный ключ: Фамилия и Имя.

3.2. Нормализация отношений

Все отношения реляционной модели должны быть нормализованы, т.е. приведены к 1, 2 и 3 нормальным формам (НФ).

Все рассмотренные отношения находятся в 1 НФ, т.к. значения всех атрибутов в них не структурированы.

К 2 НФ необходимо приводить отношения, имеющие составной первичный ключ и более одного не ключевого атрибута. В нашей модели все отношения уже находятся в 2 НФ, так как составной первичный ключ есть лишь в отношении АВТОРЫ, но в этом отношении лишь один не ключевой атрибут.

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

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

Итак, теперь наша модель состоит из 4 отношений: КНИГИ, АВТОРЫ, КЛИЕНТЫ. Все отношения приведены к 3 НФ.

3.3. Связи между отношениями

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

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

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

Для установления связи М:М между двумя отношениями необходимо создать дополнительное связующее отношение (связующую таблицу). Это отношение должно содержать, как минимум, первичные ключи тех отношений, между которыми устанавливается связь.