- •Минобрнауки россии
- •Тема 2. Структура и механизмы ос Лекция №2. Структура и механизмы ос
- •Тема 3. Организация многопрограммной работы. Процессы и потоки Лекция №3. Организация многопрограммной работы
- •Тема 4 . Управление данными в ос. Файловая система Лекция №4. Управление данными в ос
- •Тема 5. Управление данными в субд. Концепции и архитектура субд. Представление пользователя Организация баз данных Лекция №5. Концепции и архитектура субд
- •Тема 6. Проектирование данных. Отношения Лекция №6. Отношения. Нормальные формы
- •Тема 2. Структуры хранения и доступа к данным. Индексы Лекция №2. Структуры хранения на примере sql Server
- •Тема 3. Информационно-логическое моделирование в разработке баз данных Лекция №3. Моделирование предметной области
- •Тема 4. Работа с данными. Язык баз данных Лекция №4. Основные понятия языка баз данных на примереSql
- •Лекция №5. Запросы к базе данных
- •Тема 5. Защита и безопасность при доступе данным в многопользовательской среде Лекция №6. Защита и безопасность данных
Тема 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 |
