Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсовая работа по БД.doc
Скачиваний:
0
Добавлен:
01.05.2025
Размер:
341.5 Кб
Скачать

Логическое проектирование. Построение и проверка реляционной модели данных.

Для построения логической модели базы данных выбран реляционный тип базы данных.

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

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

Формирование набора отношений.

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

book_lending (book_lend_id, library_card_id, edition_id, lending_date, delivery_date_fact, delivery_date_plan, penalty);

Первичный ключ — book_lend_id;

Внешние ключи: library_card_id ссылается на library_card (library_card_id), edition_id ссылается на edition (edition_id);

Альтернативные ключи: отсутствуют;

Производные атрибуты: penalty ((delivery_date_fact – delivery_date)*edition_format.format_penalty).

edition (edition_id, edition_name, edition_author, edition_genre_id, edition_format_id, edition_pubhouse_id, edition_year, edition_count, edition_biblfeatures, edition_number)

Первичный ключ — edition_id;

Внешние ключи: edition_genre_id ссылается на genre (genre_id), edition_format_id ссылается на edition_format (format_id), edition_pubhouse_id ссылается на publishing_house (pubhouse_id);

Альтернативные ключи: отсутствуют;

Производные атрибуты: отсутствуют.

genre (genre_id, genre_name)

Первичный ключ — genre_id;

Альтернативные ключи: отсутствуют;

Производные ключи: отсутствуют.

edition_format (format_id, format_name, format_penalty);

Первичный ключ — format_id;

Альтернативные ключи: отсутствуют;

Производные ключи: отсутствуют.

publishing_house (pubhouse_id, pubhouse_name);

Первичный ключ — pubhouse_id;

Альтернативные ключи: отсутствуют;

Производные ключи: отсутствуют.

library_card (library_card_id, library_card_number, reader_surname, reader_first_name, reader_middle, reader_address, reader_phone, reader+pass_s, reader_pass_n);

Первичный ключ — library_card_id;

Альтернативные ключи: reader_card_number;

Производные атрибуты: отсутствуют.

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

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

Реляционная схема.

Определение ограничений целостности.

Были определены следующие ограничения целостности:

  • book_lending: внешний ключ library_card_id ссылается на library_card (library_card_id) ON UPDATE CASCADE ON DELETE NO ACTION

  • book_lending: внешний ключ edition_id ссылается на edition (edition_id) ON UPDATE CASCADE ON DELETE NO ACTION

  • edition: внешний ключ edition_genre_id ссылается на genre (genre_id) ON UPDATE CASCADE ON DELETE NO ACTION

  • edition: внешний ключ edition_format_id ссылается на edition_format (format_id) ON UPDATE CASCADE ON DELETE NO ACTION

  • edition: внешний ключ edition_pubhouse_id ссылается на publishing_house (pubhouse_id) ON UPDATE CASCADE ON DELETE NO ACTION

  • book_lending: [lending_date]<[delivery_date_fact] OR [delivery_date_fact]=NULL

  • book_lending: [lending_date]<[delivery_date_plan] OR [delivery_date_plan]=NULL

  • edition_format: [format_penalty]>=(0)

  • library_card: [reader_pass_n] like '[0-9][0-9][0-9][0-9][0-9][0-9]'

  • library_card: [reader_pass_s] like '[0-9][0-9][0-9][0-9]'