
Лабораторная работа № 1
Проектирование базы данных
Цель: Разработать и обосновать инфологическую модель данных по предложенной тематике; построить концептуальную модель простой базы данных нормализовать разработанную модель базы данных.
Теоретические сведения:
Инфологическое проектирование
Цель инфологического моделирования – обеспечение наиболее естественных для человека способов сбора и представления той информации, которую предполагается хранить в создаваемой базе данных. Основными конструктивными элементами инфологических моделей являются сущности, связи между ними и их свойства (атрибуты).
Сущность – любой различимый объект (объект, который мы можем отличить от другого), информацию о котором необходимо хранить в базе данных.
Атрибут – поименованная характеристика сущности. Его наименование должно быть уникальным для конкретного типа сущности, но может быть одинаковым для различного типа сущностей.
Ключ – минимальный набор атрибутов, по значениям которых можно однозначно найти требуемый экземпляр сущности.
Связь – ассоциирование двух или более сущностей.
Характеристика связей и язык моделирования
Между двумя сущностям, например, А и В возможны четыре вида связей.
Первый тип – связь ОДИН-К-ОДНОМУ (1:1): в каждый момент времени каждому представителю (экземпляру) сущности А соответствует 1 или 0 представителей сущности В.
Второй тип – связь ОДИН-КО-МНОГИМ (1:М): одному представителю сущности А соответствуют 0, 1 или несколько представителей сущности В.
Так как между двумя сущностями возможны связи в обоих направлениях, то существует еще два типа связи МНОГИЕ-К-ОДНОМУ (М:1) и МНОГИЕ-КО-МНОГИМ (М:N).
Классификация сущностей
Стержневая сущность (стержень) – это независимая сущность (несколько подробнее она будет определена ниже).
Ассоциативная сущность (ассоциация) – это связь вида "многие-ко-многим" ("-ко-многим" и т.д.) между двумя или более сущностями или экземплярами сущности.
Характеристическая сущность (характеристика) – это связь вида "многие-к-одной" или "одна-к-одной" между двумя сущностями (частный случай ассоциации).
Реляционное проектирование
Таблица – плоская таблица, состоящая из строк и столбцов. Синоним: отношение
Атрибут – столбец таблицы, имеющий собственное имя, уникальное в пределах таблицы. Синоним: поле.
Запись – строка таблицы, хранящая информацию о конкретном объекте.
Домен – набор допустимых значений для одного или нескольких атрибутов.
Реляционная база данных – набор нормализованных таблиц.
Нормализация – особые методы составления и проверки целостности и неизбыточности таблиц.
Свойства таблиц
Таблица имеет имя, отличное от имен всех других таблиц базы данных.
Каждая ячейка таблицы имеет неделимое значение.
Каждый атрибут имеет уникальное имя.
Значения атрибута берутся из одного и того же домена.
Порядок следования атрибутов не имеет никакого значения.
Каждая запись является уникальной, т. е. дубликатов записей быть не может.
Порядок следования записей в таблице не имеет значения.
Реляционные ключи
Потенциальный ключ – атрибут или множество атрибутов, которое единственным образом идентифицирует запись данной таблицы.
Таблица может иметь несколько потенциальных ключей. Если ключ состоит из нескольких атрибутов, то он называется составным ключом, если только из одного – простым.
Первичный ключ – потенциальный ключ, который выбран для уникальной идентификации записей внутри таблицы.
Потенциальные ключи, которые не выбраны в качестве первичного ключа, называются альтернативными ключами.
Если некоторый атрибут присутствует в нескольких таблицах, то его наличие обычно отражает связь между записями этих таблиц.
Внешний ключ – это атрибут или множество атрибутов внутри таблицы, которое соответствует первичному ключу некоторой (может быть, той же самой) таблицы.
Реляционная целостность
Определитель NULL - указывает, что значение атрибута в настоящий момент неизвестно или неприемлемо для этой записи.
Целостность сущностей - в базовой таблице ни один атрибут первичного ключа не может содержать отсутствующих значений, обозначаемых определителем NULL.
Ссылочная целостность – если в таблице существует внешний ключ, то значение внешнего ключа должно либо соответствовать значению потенциального ключа некоторой записи в ее базовой таблице, либо задаваться определителем NULL.