Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Курсова БД / Література / Л8-Визуальное моделирование баз данных.doc
Скачиваний:
59
Добавлен:
12.02.2016
Размер:
463.87 Кб
Скачать

8. Лекция: Визуальное моделирование баз данных

В этой лекции рассказывается о визуальном моделировании схем баз данных на основе модели "сущность-связь". Показывается, как это делать с помощью диаграммы классов UML. Рассматриваются разные виды схем данных - концептуальная, логическая и физическая, затрагиваются вопросы автоматической генерации кода для самых распространенных промышленно-используемых СУБД - реляционных. Подробно рассматривается реализация отношений "многие-ко-многим", "один-ко-многим", а также наследования. В качестве примера представлен фрагмент схемы баз данных приложения, автоматизирующего работу факультета университета, реализованный в Microsoft Visual Studio для СУБД Microsoft SQL Server

Схемы данных и модельно-ориентированный подход

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

  • точно отражать структуру предметной области;

  • позволять программным приложениям эффективно работать с данными;

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

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

Хороший результат здесь не достигается "за один присест" - сели и спроектировали хорошую структуру данных. В данном случае применима базовая идея визуального моделирования: разработку ПО удобно проводить как процесс создания уточняющих друг друга моделей. Именно так происходит переход от предметной области к работающему ПО.

Модель "сущность-связь"

Итак, при создании структур баз данных принято использовать моделирование, а не сразу писать код, например, на SQL/DDL. Общепринятым способом моделирования структуры данных являетсямодель "сущность-связь", предложенная Петером Ченом еще в 1976 году[8.1].

Язык SQL/DDLявляется промышленным стандартом для задания схемы реляционных баз данных и поддерживается практически всеми промышленными СУБД. Этот язык позволяет описывать таблицы баз данных, задавать их поля, индексы, ключи и так далее. Дальнейшую информацию о SQL можно получить в[8.2],[8.5].

СУБД (система управления базами данных) - это программное обеспечение, предназначенное для решения задач разработки, хранения и программного доступа к большим массивам данных. Самые известные СУБД - это Oracle, Microsoft SQL Server, MySQL. Дальнейшую информацию о разработке баз данных и различных СУБД можно получить в[8.2],[8.3],[8.4].

Сущность(entity) - это "предмет" рассматриваемой предметной области, который может быть идентифицирован некоторым способом, отличающим его от других "предметов". Конкретные человек, компания или событие являются примерами сущности.

Связь(relationship) - это некоторое отношение между двумя и более сущностями, отражающее то, как они участвуют в общей деятельности, взаимодействуют друг с другом, совместно используются некоторой другой сущностью и т. д.

На рис. 8.1,апоказаны две сущности - "Студент" и "Кафедра", - которые связаны отношением "Принадлежит". Еще точнее будет сказать, что студент принадлежит кафедре. Это пример направленного отношения между двумя сущностями.

Рис. 8.1.  Примеры моделей сущность-связь

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

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

У сущностей-типов появляются атрибуты, которые аналогичны атрибутам классов в UML, а сами типы сущностей во многом похожи на классы. Нарис. 8.1, г показано, какие атрибуты имеют сущности1)"Студент" и "Кафедра". Например, ФИО - это набор из трех строк на русском языке, представляющих фамилию, имя и отчество студента. Номер курса - это атрибут, который имеет диапазон значений от единицы до шести. Атрибут "специальность" имеет значение из некоторого заданного списка специальностей и т. д.

В примерах, которые будут рассмотрены ниже, используется модель "сущность-связь", представленная в терминах диаграмм классовUML. При этом классы соответствуют типам сущностей, их атрибуты - атрибутам типов, а ассоциации - связям.

Несмотря на простоту модели "сущность-связь", она оказалась мощным инструментом при моделировании баз данных, поскольку ее нотация проста и доступна для восприятия разными специалистами и может, например, служить "мостом" между программистами и аналитиками предметной области. В том виде, в котором эту модель определил Петер Чен [8.1], в настоящий момент она не применяется - создано большое количество различных нотаций, расширяющих и уточняющих эту модель, например, IDEF1x [8.6]. Кроме того, многие виды диаграмм UML, не имеющие отношения к моделированию схем баз данных (диаграммы развертывания, диаграммы компонент, диаграммы классов, диаграммы объектов и т. д.), фактически, основываются на модели "сущность-связь", предлагая разработчикам ПО создавать специальные типы сущностей, их атрибуты и связи. Наконец, отметим, что диаграммы классов UMLмогут с успехом использоваться для моделирования схем баз данных (реляционных, объектно-ориентированных, постреляционных и т. д.) [8.4], [8.8].

Соседние файлы в папке Література