Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
22700_62_OSBD_Lektsii.doc
Скачиваний:
61
Добавлен:
11.02.2015
Размер:
1.11 Mб
Скачать

Тема 3. Информационно-логическое моделирование в разработке баз данных Лекция №3. Моделирование предметной области

В рамках данной лекции рассматриваются нижеследующие вопросы:

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

  • Модель «сущность-связь». ER- диаграммы.

  • Представление сущности. Ключевые и неключевые атрибуты. Ключи-кандидаты. NULL-значения.

  • Связи. Атрибуты связей. Зависимые и независимые сущности. Внешние ключи.

  • Ограничения целостности. Поддержка целостности. Категорная и ссылочная целостность.

  • Поддержка целостности при выполнении Insert, Replace(Update), Delete (IRD).

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

Примерами нотаций для представления структур баз данных могут быть нотация UML унифицированного языка моделирования или нотация языка IDEF1X для разработки реляционных баз данных методологии SADT структурного анализа и проектирования. Нотация IDEF1X стандартизована. Установленные стандарты позволяют избежать различной трактовки построенной модели.

Одним из подходов к моделированию реляционных баз данных является модель сущность-связь(ER-модель), или ER-диаграмма Ее удобно предоставлять в графической нотации языка IDEF1X. По этой нотации сущности и связи представляются прямоугольниками и линиями. ER-модель удобна при проектировании баз данных, архитектур компьютерных приложений. С её помощью можно выделитьсущностии ихатрибуты, а такжеатрибуты связей, которые могут устанавливаться между этими сущностями. Существует ряд программных средств (например, ERWin), которые позволяют высокоуровневое проектирование, документирование разрабатываемых баз данных на уровне представлений логической и физической моделей.

Основные понятия ER-модели

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

Атрибутсущности - этоименованная характеристика, отражающая некоторое свойство сущности. Наименование атрибута должно выражатьсясуществительным в единственном числе.

Ключсущности –одиночный атрибутилинеизбыточныйнабор атрибутов, значения которых в совокупности являютсяуникальнымидля каждого экземпляра сущности. Неизбыточность заключается в том, что удаление любого атрибута из набора нарушает уникальность идентификации. Сущность может иметьнесколько различных ключей. Обычно один из них выбирается в качествепервичного (PK). Остальные, если есть, помечаются какальтернативные (AK) ключи.

Сущность Студент

Номер зач.кн.

ИНН

Номер паспорта

Фамилия

Имя

Группа

PK

AK

AK

Связь служит для указания взаимосвязи между двумя сущностями в модели. Одна сущность может быть связана сдругойсущностью или сама ссобою. Имеются 3 вида связей 1:1, 1:M и M:N.

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

Связь типа один-ко-многим(1:M) означает, чтоодин экземпляр первой сущности связан снесколькими экземплярами второй сущности. Это наиболее часто используемый тип связи. Сущность (со стороны "один") называетсяродительской, (со стороны "много") -дочерней. На уровне таблиц в реляционной базе данных это означает, что одна строка родительской таблицы связана с одной или несколькими строками второй таблицы, но любая строка второй таблицы может быть связана только с одной строкой родительской таблицы.

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

Различают зависимыеинезависимыесущности. Это определяется по связи сущности с другими сущностями и по возможности идентификации экземпляра сущности. Независимые сущности имеют PKи, следовательно, экземпляр может быть идентифицирован по его значению, без привлечения дополнительной информации.Идентифицирующаясвязь устанавливается между независимой (родительский конец связи) и зависимой (дочерний конец связи) сущностями, еслиPK родительской сущности используется дляидентификациидочерней сущности. Пример изображения сущностей и идентифицирующей связи междунезависимой сущностью «Клиент» изависимойсущностью «Заказ», в которой идентификация экземпляра заказа осуществляется указанием 2-х атрибутов «номер заказа» и внешнего ключа «номер клиента».

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

Целостность данных

Под целостностью понимают «правильность» данных, содержащихся в БД, по отношению к предметной области. Целостность данных подразделяется на следующие категории.

  • Сущностная целостность

  • Доменная целостность

  • Ссылочная целостность

  • Пользовательская целостность

Сущностная целостность

Целостность на уровне сущности означает обеспечение уникальности экземпляра сущности, т.е., строки в конкретной таблице. Она обеспечивается указанием ограничений целостности PRIMARY KEY или UNIQUE в SQL, или указанием первичного ключа таблицы.

Доменная целостность

Доменная целостность - достоверность значений атрибута, или в конкретном столбце. Она поддерживается в соответствии с указанием типаданных,формата,правил и ограничений CHECK, а также ограничения надиапазонвозможных значений, задаваемого с помощью FOREIGN KEY (внешний ключ), DEFAULT (значение по умолчанию), определений NOT NULL (недопустимость значения NULL).

Ссылочная целостность

Ссылочная целостность гарантирует согласованность значений ключевых атрибутов в связанных таблицах. Этот вид целостности проверяет наличие ссылок на несуществующие значения, а также обеспечивает согласованное изменение ссылок во всей базе данных при изменении значения ключа. Обычно ссылочная целостность основана на связи первичных и внешних ключей и обеспечивается с помощью ограничений FOREIGN KEY и CHECK.

При обеспечении ссылочной целостности СУБД не допускает следующих действий пользователей.

  • Добавления или изменения строк в связанной таблице, если в первичной таблице нет соответствующей строки.

  • Изменения значений в первичной таблице, которое приводит к появлению потерянных строк в связанной таблице.

  • Удаления строк из первичной таблицы, если имеются соответствующие ей строки в связанных таблицах.

Пример таблиц с нарушением ссылочной целостности:

Студент

Дисциплина

Студ_ИД

Студ_Фио

Студ_рейтинг

СтудентДисциплина

Дсц_ИД

Наим

1

Иванов

40

Студ_ИД

Дсц_ИД

Оценка

10

ТАУ

2

Иванов

37

1

10

42

20

ОБЖ

3

Иванова

40

3

20

45

1

20

43

Пользовательская целостность подразумевает определение бизнес-правил. Поддержку пользовательской целостности обеспечивают с помощью ограничений на уровне атрибутов (столбцов) и таблицы при описании структуры таблицы, в операторе CREATE TABLE, хранимых процедурах итриггерах.

Триггером является хранимая процедура, выполняемая автоматическипри возникновениисобытияна сервере. Различают триггеры DML (срабатывающие при попытке изменения данных) и триггеры DDL (срабатывающие при попытке изменить описание данных).

DML-триггеры выполняются по событиям, вызванным попыткой пользователя изменить данные с помощью языка обработки данных. Событиями DML являются процедуры INSERT, UPDATE или DELETE, применяемые к таблице или представлению (View). Триггеры DML используют внутренние логические таблицы, именуемыеdeleted иinserted. По своей структуре они подобны таблице, на которой определен триггер, то есть таблице, к которой применяется действие пользователя. В таблицахdeletedиinsertedсодержатся старые или новые значения строк, которые могут быть изменены действиями пользователя.

DML-триггеры могут обращаться к другим таблицам. DML-триггеры удобно использовать в следующих случаях:

  • для каскадных изменений в связанных таблицах базы данных;

  • для предотвращения случайных или неправильных операций INSERT, UPDATE и DELETE.

При редактировании связанных таблиц в зависимости от заданных ограничений поддержки целостности СУБД может:

  • выполнить каскадное(CASCADE) удаление/обновление строк в связанных таблицах;

  • не выполнять действий (NO ACTION) по редактированию связанных таблиц.

Основная литература

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

Раздел

Страницы

1. Карпова Т.С. Базы данных: модели, разработка, реализация. - СПб.: Питер, 2001.- 304 с.; ил.

Глава 7.

121-134

2. Хомоненко А.Д, Цыганков В.М., Мальцев М.Г. Базы данных: Учебник для высших учебных заведений / под ред. проф. Хомоненко А.Д., 6-ое изд. – М.:Бином-Пресс; СПб.:Корона-Век, 2007.-736с.

Гл.5

175 -194

Дополнительная литература

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

Раздел

Страницы

1. Коннолли Т., Бегг К., Страчан А. Базы данных: проектирование, реализация и сопровождение. Теория и практика, 2-е изд.: Пер. с англ. - М.: Издательский дом “Вильямс”,. 2001. – 1120 с.: ил.

4.3 – 4.5, 6.1 - 6.8

159 – 168, 223 - 240

2. Дейт К. Дж. Введение в системы баз данных, 6-е издание: Пер. с англ. – К.;М.; СПб.: Издательский дом “Вильямс”,. 1999. – 848 с.: ил. (7-е и 8-е издание).

9.1 – 9.3, 10.1 – 10.3

271 – 274, 288 – 301

Соседние файлы в предмете Операционные системы