Отношения зависимости между сущностями
База данных может быть определена как структурная совокупность данных, поддерживаемых в актуальном состоянии и отображающих свойства объектов реального мира.
Предметная область базы данных - это описание области реального мира, интересующей создателя базы данных, на естественном языке.
Для обозначения прообраза понятия любой природы используется термин «сущность». Можно сказать, что в теории баз данных под сущностью понимают любой объект реального мира, процесс или абстрактное понятие. Примеры таких сущностей легко обнаруживаются в окружающее мире – сущность «сотрудник» (физический объект), сущность «поставка товара» (процесс), сущность «преподаваемая дисциплина». Необходимо различать такие понятия, как тип сущности и экземпляр сущности (тип сущности – «Город», экземпляр сущности – «Москва»).
Каждая сущность обладает набором характеристик, при помощи которых можно отличить один экземпляр сущности от другого – фамилия сотрудника, стоимость товара, название дисциплины и т.п. В теории баз данных эти характеристики называются атрибутами сущности. Необходимо различать тип атрибута и экземпляр атрибута.
Каждый атрибут может заполняться значениями из какого-либо домена. Доменом называется совокупность однотипных значений данных. Примерами являются домен денежных сумм, домен имен, домен целых чисел и т. д. Несколько атрибутов могут получать значения из одного домена. Таким образом, значения домена по-разному интерпретируются в разных атрибутах, используемых при описании информационной структуры. Например, атрибуты «зарплата» и «комиссионные» сущности «служащие» получают значения из домена денежных сумм.
Объекты реального мира могут находиться друг с другом в сложных взаимоотношениях. Следовательно, в базе данных должны моделироваться такие взаимоотношения, существующие в реальном мире. Такие взаимоотношения представляются как связи между сущностями. Каждая связь может быть отнесена к одному из трех типов.
Пусть имеются сущности А и В.
6.2.1 Связь «один-к-одному» (краткое обозначение «1:1»), означает, что каждому экземпляру сущности А может соответствовать только один экземпляр сущности В, а каждому экземпляру сущности В может соответствовать только один экземпляр сущности А.
Для пояснения данного определения рассмотрим следующий пример. Пусть имеются две сущности – «гражданин РФ» и «паспорт гражданина РФ». У одного гражданина может быть только один паспорт (имеются в виду внутренние паспорта, загранпаспорта не рассматриваются). В то же время, каждый паспорт может быть выдан только одному гражданин
6.2.2 Связь «один-ко-многим» (краткое обозначение «1:М»), означает, что каждому экземпляру сущности А может соответствовать несколько экземпляров сущности В, а каждому экземпляру сущности В может соответствовать только один экземпляр сущности А.
Для пояснения данного определения рассмотрим следующий пример. Пусть имеются две сущности – «Корпус ВУЗа» и «Аудитория». В одном корпусе может находиться несколько аудиторий, одна аудитория или ни одной, например, если корпус административный или хозяйственный. В то же время каждая аудитория может физически располагаться только в одном корпусе .
6.2.3 Связь «многие-ко-многим» (краткое обозначение «М:N»), означает, что каждому экземпляру сущности А может соответствовать несколько экземпляров сущности В, а каждому экземпляру сущности В может соответствовать несколько экземпляров сущности А.
Для пояснения данного определения рассмотрим следующий пример. Пусть имеются две сущности – «Студент» и «Изучаемая дисциплина». Студент может изучать несколько дисциплин, в то же время каждую дисциплину может изучать несколько.
Таким образом, при проектировании базы данных необходимо определить не только наличие взаимосвязей между сущностями, но и тип этих связей
Понятие схемы данных
СУБД MS Access позволяет строить схему базы данных и автоматически поддерживает первичные и внешние ключи.
Схема базы данных (или просто схема данных) является графическим образом БД. В ней определяются и запоминаются связи между таблицами. Это позволяет Access автоматически использовать связи при конструировании форм, запросов, отчетов. Схема данных отображается в специальном окне Схема данных, где таблицы представлены списками полей, а связи - линиями между полями в связанных таблицах (рис. 3).
Создать схему данных можно двумя способами.
Первый способ предполагает наличие нормализованных таблиц, связывание которых осуществляется в окне Схема данных. Создание схемы данных начинается с размещения в окне всех таблиц, которые должны быть включены в схему. Далее можно приступать к определению попарных связей между ними.
Устанавливая связи между парой таблиц, надо выделить в главной таблице уникальное ключевое поле (ПК в каждой таблице отображается жирным шрифтом), по которому устанавливается связь. Далее при нажатой левой кнопке мыши это поле перетаскивается на соответствующее поле подчиненной таблицы. Если устанавливается связь по составному ключу, то необходимо выделить все поля, входящие в составной ключ главной таблицы, и перетащить их на одно из полей связи в подчиненной таблице.
После установления связи открывается диалоговое окно Изменение связи, в котором для ключевого поля главной таблицы определяется поле связи подчиненной таблицы. Для каждого поля составного ключа главной таблицы связь с полем подчиненной таблицы должна быть установлена отдельной строкой. Кроме того, в окне Изменение связи для каждой связи можно задать параметр Обеспечение целостности данных, после чего устанавливаются опции Каскадное обновление связанных полейи Каскадное удаление связанных записей.При этом Access автоматически установит тип связи 1:М (в схеме обозначается как 1:∞). Если таблицы содержат данные, не отвечающие требованиям целостности, связь 1:М не будет установлена, и Access в этом случае выводит соответствующее сообщение.
Второй способ - получение схемы данных из одной ненормализованной таблицы с помощью Мастера анализа таблиц.
Ненормализованные таблицы содержат поля с повторяющимися значениями. Для таких таблиц расходуется дополнительная память, не может быть обеспечен однократный ввод и корректировка данных в полях с повторяющимися значениями, велика вероятность возникновения ошибок.
С помощью Мастера анализа таблиц Access позволяет автоматически или вручную выполнить анализ таблицы и разделить ее на несколько взаимосвязанных таблиц, в которых данные не будут дублироваться. Для полученных таблиц Мастер анализа таблиц создает схему данных, в которой устанавливаются связи 1:М и определяются параметры обеспечения целостности. После процедуры анализа для исходной таблицы будут получены нормализованные взаимосвязанные таблицы.