
Разработка концептуальной модели данных
Понятие концептуальной модели данных
В основе любой ИС всегда лежит среда хранения данных.
Откуда, например, в приложениях появится информация о рейсах, о вылетах, о проданных билетах? Где будет запоминаться вновь вводимая информация или откорректированная информация? Она где-то должна храниться. И этим хранилищем является БД.
Это хранилище является единым для всех пользователей ИС. Нет смысла в разных местах хранить одни и те же данные.
Например, данные о запланированных вылетах, используемые в формах, с которыми работают сотрудники различных служб (служба составления расписания, служба продажи авиабилетов). Одни пользователи могут изменять эти данные, другие – только просматривать.
На этапе разработки технического задания к информационной системе выполняется моделирование данных, которые будут храниться в БД.
Моделирование данных (Data Modeling) – это процесс создания концептуального представления БД, т.е. построения концептуальной модели данных.
Концептуальная модель данных – концептуальное представление хранимой информации, использующейся в проектируемой ИС.
Концептуальная модель данных является концептуальным представлением будущей БД, первым этапом структуризации данных.
Чтобы построить эффективную БД, разработчики должны ясно представлять себе модель данных пользователя или пользовательскую модель.
Модель данных пользователя (пользовательская модель, User Data Model) – взгляд пользователя на данные в его представлении предметной области.
Пользователи могут быть не в состоянии точно описать эту модель.
Если бы разработчик спросил типичного пользователя: «Как вы себе представляете структуру модели данных, касающихся вашей работы?», то некоторые пользователей были бы в замешательстве, некоторые - описали бы нечто загадочное или неполное, возможно, даже противоречивое, т.к. большинство пользователей не мыслят такими категориями.
Задача разработчика – построить модель данных пользователя, определяющую объекты, которые должны храниться в БД, их структуру и связи между ними.
Процесс моделирования данных еще больше усложняется в многопользовательских системах:
Различные пользователи могут представлять себе различные модели данных, которые могут оказаться несогласованными.
Пользователи могут употреблять один и тот же термин для разных вещей.
Пользователи могут употреблять различные термины для одной и той же вещи.
Правильно сконструированная модель данных должна поддерживать все пользовательские представления данных, т.к. БД – это единое хранилища информации для всей ИС.
Моделирование данных – процесс, в большей степени являющийся искусством, чем наукой.
Процесс разработки концептуальной модели данных
Средства моделирования данных:
модель «сущность-связь», ERD (Entity-Relationship Diagram);
диаграмма классов UML;
семантическая объектная модель.
В рамках курса «СУБД» мы рассмотрим ER-диаграммы как основной метод моделирования данных.
Ключевые элементы ER-диаграммы
Модель «сущность – связь», ER-диаграмма (Entity Relationship Diagram, ERD)
Модель «сущность – связь» (ER-диаграмма, ERD) была введена Питером Ченом в 1976 г. Он изобрел ER-диаграмму при появлении реляционных БД, чтобы моделировать их разработку более абстрактным образом.
В 1986 г. Теорей и его соавторы предложили расширенную ER-модель.
В настоящее время ER-диаграмма входит в состав многих CASE-средств (ERwin, Visio, Oracle Designer, JDeveloper).
При разработке БД ER-диаграмма является доминирующим методом моделирования данных.
На сегодняшний день не существует общепринятого стандарта для ER-диаграммы. Но есть набор общих конструкций, которые лежат в основе большинства вариантов этой модели.
Ключевые элементы ER-диаграммы:
сущности;
атрибуты;
идентификаторы;
связи.
1). Сущность (entity) – реальный или абстрактный объект, являющийся узловой точкой сбора информации.
Класс сущностей – совокупность сущностей одного типа.
Экземпляр сущности – конкретная сущность.
Пример: Класс сущностей КЛИЕНТ (НомерКлиента, ИмяКлиента, АдресКлиента, ТелефонКлиента).
Экземпляр сущности КЛИЕНТ - 123, Иванов, СПб ….
2). Атрибут (attributes) – поименованная характеристика сущности.
Все экземпляры данного класса сущностей имеют одинаковые атрибуты.
Виды атрибутов:
композитные атрибуты (composite attributes);
многозначные атрибуты (multi-valued attribuyes).
Композитный атрибут – атрибут, состоящий из группы атрибутов.
Многозначный атрибут – атрибут, содержащий несколько значений.
Пример: Композитный атрибут АдресКлиента – { Индекс, Город, Улица, Дом }.
Многозначный атрибут ИмяДоверенногоЛица – { Иванов, Андреев, Петров } – имена нескольких доверенных лиц клиента.
Одновременно композитный и многозначный атрибут ТелефонКлиента – { Код, Номер } – несколько телефонных номеров.
3). Идентификатор (identifiers) – атрибут или совокупность атрибутов, однозначно определяющие каждый экземпляр сущности.
Пример: Паспортные данные, Табельный номер, ИНН.
Графическое представление ER-диаграммы:
сущности - прямоугольники,
атрибуты - овалы,
идентификаторы - подчеркнутые атрибуты.
4). Связи (relationships) – моделируют отношения между сущностями.
Свойства связи:
Степень связи – число классов сущностей, участвующих в связи.
Пример: Бинарная связь (связь степени 2) – ПРОДАВЕЦ-ЗАКАЗ.
Тернарная связь (связь степени 3) – РОДИТЕЛЬ (МАТЬ-ОТЕЦ-РЕБЕНОК).
Типы бинарных связей:
связь «один-к-одному»;
связь «один-ко-многим»;
связь «многие-ко-многим».
Связь «один-к-одному» (1:1) – один экземпляр одной сущности связан с одним экземпляром другой сущности.
Пример: Связь 1:1 – СЛУЖЕБНЫЙ_АВТОМОБИЛЬ (СОТРУДНИК-АВТОМОБИЛЬ)
Связь «один-ко-многим» (1:M) – один экземпляр одной сущности связан со многими экземплярами другой сущности.
Пример: Связь 1:М – ПРОЖИВАНИЕ (ОБЩЕЖИТИЕ-СТУДЕНТ)
Связь «многие-ко-многим» (М:N) – один экземпляр одной сущности связан со многими экземплярами другой сущности.
Пример: Связь M:N – ДОСУГ (СТУДЕНТ-КЛУБ)
Максимальная кардинальность связи – максимальное количество экземпляров сущностей, участвующих в связи.
Кардинальные числа могут иметь значения, отличные от 1:1, 1:М, M:N.
Пример: Связь 1:5 – между сущностями КОМАНДА и ИГРОК (в команде может быть не более 5 игроков).
Минимальная кардинальность связи – минимальное количество экземпляров сущностей, участвующих в связи.
Минимальная кардинальность связи рассматривается как характеристика обязательности или необязательности участия экземпляра сущности в связи.
Пример: Связь между сущностями СТУДЕНТ и ОБЩЕЖИТИЕ (сущность СТУДЕНТ не обязана иметь связь с сущностью ОБЩЕЖИТИЕ) - знак овала на связи.
Связь между сущностями ОБЩЕЖИТИЕ и СТУДЕНТ (сущность ОБЩЕЖИТИЕ должна быть связана хотя бы с одной сущностью СТУДЕНТ) - знак вертикальной линии на связи.
У связей могут быть атрибуты.
Элементы расширенной ER-диаграммы
Подтипы сущности – сущности, уточняющие варианты типов исходной сущности, являющейся надтипом.
Каждый подтип должен принадлежать надтипу.
Подтипы сущностей наследуют атрибуты от надтипов.
Взаимоисключающие подтипы – экземпляр надтипа может принадлежать к одному и только одному подтипу.
Пример: Сущности КЛИЕНТ – надтип,
сущности ФИЗИЧЕСКОЕ_ЛИЦО, ТОВАРИЩЕСТВО, КОРПОРАЦИЯ – подтипы..
Графически подтипы указываются с помощью символа € .
Взаимоисключающие подтипы объединяются кривой линией с цифрой 1.
Невзаимоисключающие подтипы – экземпляр надтипа может принадлежать к нескольким подтипам.
Невзаимоисключающие подтипы объединяются кривой линией с буквой m.