Связи между классами объектов

Проектирование базы данных

Учебное пособие

Введение

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

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

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

Наиболее популярными сейчас являются реляционные СУБД, в которых данные хранятся в реляционных таблицах, и для них разработан стандарт языка обработки – SQL (термин «реляционная» будет пояснен далее в тексте пособия), поэтому пособие ориентировано именно на реляционные базы данных. В пособии рассмотрены следующие темы: уровни представления информации, построение инфологической модели данных, реляционная модель данных и основы реляционной алгебры, теория нормализации, пример проектирования базы данных для конкретной предметной области.

1. Этапы проектирования базы данных

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

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

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

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

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

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

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

На рисунке ниже отражена взаимосвязь моделей представления информации.

 
  Связи между классами объектов - student2.ru

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

Даталогические и физическая модели непосредственно реализуются в СУБД.

Физическая модель определяет структуру хранения данных на физических носителях.

Замечания

1. Обычно процесс построения моделей не является строго линейным. На любом шаге проектирования возможно возвращение к предыдущему этапу и исправление ранее построенной модели.

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

2. Модель предметной области

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

Для описания предметной области наиболее часто используется модель «сущность–связь», предложенная П. Ченом в 1976 году (или ее модификации). Сокращенно такую модель называют ER-моделью от английского названия «Entity–Relationship» («Сущность–связь»). Диаграмма модели имеет лексикографическую структуру, т. е. включает в себя текст и элементы графики. Из названия модели понятно, что основными ее структурными элементами будут объекты и связи между ними. Рассмотрим каждый из структурных элементов.

Объекты и классы объектов

Предметная область состоит из объектов, в качестве которых могут выступать люди, материальные предметы, производственные отделы, бумажные документы, операции, явления, абстрактные идеи. Например, объектами могут быть: студент Иванов И. И., группа 22301, экономический факультет, стипендия студента Иванова И. И., зачетная книжка студента Иванова И. И. и т. п.

Отобразить в модели каждый объект предметной области не представляется возможным. Модель предполагает некоторое обобщение и сведение всего к общей структуре. Поэтому среди всех конкретных объектов необходимо выделить их общие признаки, характеристики и по ним объединить объекты в классы. Так, Петрова С. П., Иванова И. И. и Булкина А. А. можно объединить в класс Студент, а Карандаш, Блокнот и Линейку – в класс Товар.

Каждый класс определяется набором атрибутов, т. е. свойств, которыми обладает каждый объект, принадлежащий к этому классу. Например, класс Студент может иметь следующие свойства: ФИО, Год рождения, Курс обучения, Номер зачетной книжки, а класс Товар – Наименование, Дата изготовления, Цена.

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

В терминах модели «сущность–связь» классы объектов обозначаются прямоугольниками, а свойства – овалами. Внутри прямоугольника записывается название класса, внутри овала – название свойства. Изменчивость свойств на схеме обозначается латинскими буквами S и D. Буква S означает статический характер свойства, буква D – динамический.

На рисунке ниже представлен класс Студент, имеющий четыре свойства, два из которых являются статическими (Год рождения и Номер зачетной книжки), а два других – динамическими (ФИО и Курс).

 
  Связи между классами объектов - student2.ru

Связи между классами объектов

Между классами объектов могут существовать некоторые отношения, называемые связями. Например, между классами Студент и Группа существует связь: студенты распределены по группам или можно сказать, что группы состоят из студентов.

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

Между одними и теми же классами может существовать любое количество связей. Например, между классами Студент и Группа можно образовать связь «распределение студентов по группам» и связь «староста группы».

Связи, как и классы, могут иметь свойства. Например, между двумя классами Товар и Поставщик существует связь, которую назовем Поставка, которая означает, что поставщик поставляет товар. Эта связь будет иметь два свойства – Дата поставки и Количество. Понятно, что и дата, и количество не могут быть свойствами ни класса Товар, ни класса Поставщик. Это характеристики связи между двумя классами.

В терминах ER-диаграмм связь изображается в виде ромба, внутри которого записывается название связи. Классы объектов, участвующие в этой связи, соединяются с ромбом стрелками. Употребление двойных стрелок будет рассмотрено ниже.

Связи между классами объектов - student2.ru

Свойства связи изображаются так же, как и свойства класса, и соединяются с ромбом, обозначающим связь.

Связи между классами объектов - student2.ru

Наши рекомендации