Работа с базами данных

ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ


ЛАБОРАТОРНАЯ РАБОТА 13

ЛОГИЧЕСКОЕ ПРОЕКТИРОВАНИЕ БАЗЫ ДАННЫХ

Цель работы

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

Содержание работы и методические указания

к ее выполнению



Цель логического этапа проектирования - организация данных, выделенных на этапе инфологического проектирования в форму, принятую в выбранной СУБД. Задачей логического этапа проектирования является отображение объектов предметной области в объекты используемой модели данных, чтобы это отображение не противоречило семантике предметной области и было по возможности наилучшим (эффективным, удобным и т.д.). С точки зрения выбранной СУБД задача логического проектирования реляционной базы данных состоит в обоснованном принятии решений о том:

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

  • отношения должны отличаться минимальной избыточностью атрибутов;
  • выбранные для отношения первичные ключи должны быть минимальными;
  • между атрибутами не должно быть нежелательных функциональных зависимостей;
  • выбор отношений и атрибутов должен обеспечивать минимальное дублирование данных;
  • не должно быть трудностей при выполнении операций включения, уда-ления и модификации данных;
  • время выполнения запросов на выборку данных (см. описание запросов из варианта задания учебного пособия "Введение в проектирование реляционных баз данных") должно удовлетворять предъявляемым требованиям;
  • перестройка набора отношений при введении новых типов должна быть минимальной.
  • Удовлетворение отмеченных требований обеспечивается аппаратом нормализации отношений. Нормализация отношений - это пошаговый обратимый процесс композиции или декомпозиции исходных отношений в отношения, обладающие лучшими свойствами при включении, изменении и удалении данных, назначение им ключей по определенным правилам нормализации и выявление всех возможных функциональных зависимостей.


    Процесс получения реляционной схемы базы данных из ER-диаграммы включает следующие шаги:

    1. Каждая простая сущность превращается в отношение. Простая сущность - сущность, не являющаяся подтипом и не имеющая подтипов. Имя сущности становится именем отношения.

    2. Каждый атрибут становится возможным столбцом с тем же именем; может выбираться более точный формат исходя из возможностей СУБД. Столбцы, соответствующие необязательным атрибутам, могут содержать неопределенные значения; столбцы, соответствующие обязательным атрибутам, - не могут.

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

    4. Связи M:1 (и 1:1) становятся внешними ключами. Для этого делается копия уникального идентификатора с конца связи "один" и соответствующие столбцы составляют внешний ключ. Необязательные связи соответствуют столбцам, допускающим неопределенные значения; обязательные связи - столбцам, не допускающим неопределенные значения.

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

    6. Если в концептуальной схеме присутствовали подтипы, то возможны два способа:

    а) все подтипы размещаются в одной таблице;

    б) для каждого подтипа строится отдельная таблица.

    При применении способа (а) таблица создается для наиболее внешнего супертипа. В таблицу добавляется по крайней мере один столбец, содержащий код ТИПА, и он становится частью первичного ключа. Для работы с подтипами могут создаваться представления. При использовании метода (б) супертип воссоздается с помощью конструкции UNION.

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



    Выделяют три группы правил целостности:

  • целостность по сущностям;


  • целостность по ссылкам;


  • целостность, определяемая пользователем.


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

    По способам реализации ограничения целостности делятся на:

  • декларативные, выполняемые средствами языка SQL;


  • процедурные, выполняемые посредством триггеров и хранимых процедур.


  • При выполнении этой лабораторной работы в процессе построения реляционной модели данных должны быть обеспечены декларативные ограничения целостности. Заданию процедурных ограничений целостности посвящена лабораторная работа 14. Декларативные ограничения целостности должны обеспечивать:

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


  • определение необходимых внешних ключей для обеспечения целостности по ссылкам;


  • контроль функциональных ограничений на значения атрибутов, определяемых требованиями предметной области;


  • задание неопределенных значений и значений по умолчанию;


  • задание условий каскадного удаления и пр.


  • Последовательность выполнения лабораторной работы:

    1. Изучить вопросы теории нормализации, условия нахождения отношения в той или иной нормальной форме

    2. Выполнить процедуру построения реляционной модели данных из ER-модели, построив необходимый набор отношений. Определить состав атрибутов отношений.

    Определить первичные и внешние ключи отношений.

    Выполнить шаги по нормализации полученных отношений, приведя модель к третьей нормальной форме.

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

    6. Представить связи между первичными и внешними ключами в виде вертикальной диаграммы.

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

    8. На языке SQL записать выражения для указанных в варианте задания запросов на выборку данных из созданной базы данных.


    Проверить работоспособность написанных запросов в интерактивном режиме.

    9. Оформить следующие разделы отчета:

  • " Логическое проектирование реляционной модели базы данных", включив в него информацию из пп. 2 - 6;


  • "Типовые запросы на выборку данных", включив в него тексты запросов на языке SQL на выборку данных из созданной базы данных.




  • Контрольные вопросы



  • Каковы задачи, решаемые на этапе логического проектирования?


  • Каковы базовые свойства реляционной модели данных?


  • В чем состоят требования структурной части реляционной модели данных?


  • В чем состоят требования манипуляционной части реляционной модели данных?


  • В чем состоят требования целостной части реляционной модели данных?


  • Каковы общие свойства нормальных форм?


  • Что такое функциональная, функционально полная зависимость?


  • Каковы условия нахождения отношений в первой нормальной форме?


  • Каковы условия нахождения отношений во второй нормальной форме?


  • Каковы условия нахождения отношений в третьей нормальной форме?


  • Каковы условия нахождения отношений в третьей усиленной нормальной форме?


  • Что понимается под многозначной зависимостью?


  • Каковы условия нахождения отношений в четвертой нормальной форме?


  • Что понимается под понятием "проецирование без потерь"?


  • Каковы условия нахождения отношений в пятой нормальной форме?


  • В чем состоят общие требования обеспечения ограничений целостности?


  • Каковы средства задания ограничений целостности в языке SQL?



  • Содержание раздела