
- •Предисловие
- •1. Модели данных
- •1.1. Введение в базы данных
- •1.1. Структура интегрированного производственного комплекса
- •1.2. Трехуровневое представление интегрированной базы данных
- •1.3. Взаимодействия с бд
- •1.2. Концептуальное (семантическое) моделирование баз данных
- •1.1 1. Концептуальная модель бд в нотации п. Чена
- •1.13. Фрагмент концептуальной модели проектной организации (idef1x)
- •1.14. Фрагмент концептуальной модели в нотации Баркера
- •1.3. Логическое моделирование данных
- •1.15. Иерархическая модель данных
- •1.16. Организация иерархической модели
- •1.17. Иерархическая модель, поддерживаемая субд инес
- •1.18. Сетевая модель данных
- •1.19 . Организация сетевой модели
- •1.20. Таблица реляционной базы данных
- •1.21. Концептуальная модель тестовой базы данных
- •1.22. Физическая модель тестовой базы данных
- •2. Системы управления базами данных
- •2.1. Функции субд
- •2.1. Организация индексов
- •2 .2. Схема выполнения запроса
- •2.2. Унифицированный язык для работы с бд sql
- •2.3. Тенденции развития субд
- •3. Автоматизированные информационные системы
- •3.1. Сетевая обработка данных
- •3.1. Варианты организации взаимодействий в архитектуре “клиент-сервер”
- •3.2. Схема с централизованными данными
- •3.3. Иерархическая схема распределения данных
- •3.4. Схема с расщепленными данными
- •3.5. Схема с разделенными данными
- •3.6. Схема с реплицированными данными
- •3.2. Виды автоматизированных информационных систем
- •3.7. Структура документальной ипс
- •3.8. Варианты организации справочников в ипс
- •3.9. Функциональная диаграмма управления движением документов в edms-системе
- •3.10. Структура корпоративной информационной системы
- •3.11. Вариант упрощенного гиперкуба для анализа поставок деталей
- •3.12. Схема типа «звезда» аналитической витрины по поставкам деталей
- •3.13. Фрагмент сформированного отчета по поставкам деталей
- •3.3. МетодЫ анализа и проектирования информационных систем
- •3.14. Изображение блока
- •3 .15. Изображение дуги
- •3.16. Варианты объединения дуг
- •3.17. Функциональный блок и интерфейсные дуги
- •3.18. Декомпозиция диаграмм
- •3.28. Диаграммы потоков данных в нотации Yourdon / De Marco
- •3.29. Диаграммы потоков данных в нотации ssadm
- •3.30. Диаграммы потоков данных в нотации Gane/Sarson
- •3.31. Контекстная dfd- диаграмма
- •3.33. Ошибка, связанная с расщеплением потоков данных
- •3.34. Ошибка, связанная с использованием циклов
- •3.35. Ошибка, связанная активацией процессов входными сигналами
- •3.36. Пример диаграммы классов
- •3.37. Пример диаграммы объектов
- •3.38. Пример диаграммы компонентов
- •3 .39. Пример диаграммы развертывания
- •153003, Г. Иваново, ул. Рабфаковская, 34
1.20. Таблица реляционной базы данных
О
тношения
обладают следующими свойствами:
нет одинаковых кортежей, т.е. все записи различаются по уникальному идентификатору – первичному ключу;
кортежи не упорядочены сверху вниз;
атрибуты не упорядочены слева направо; в операциях с отношением его строки и столбцы могут просматриваться в любом порядке и в любой последовательности безотносительно к их информационному содержанию и смыслу;
в
се значения атрибутов – скаляры, при этом элементы столбца имеют одинаковую природу (построены на одном домене).
Такое отношение является нормализованным, т.е. находится в первой нормальной форме.
В отношении столбец или ряд столбцов, значения которых однозначно идентифицируют каждый кортеж, называются ключом. При этом может быть несколько ключей: один первичный, посредством которого осуществляется связывание отношений, а другие – альтернативные. Свойства ключа:
уникальная идентификация выборки;
неизбыточность (удаление любого атрибута из ключа лишает его свойства уникальности).
Наряду со смысловым ключом может использоваться инкрементный ключ (счетчик), состоящий из одного поля, которое автоматически наращивается в системе по мере включения новых записей. С точки зрения языка манипулирования данными SQL не имеет значения, применяется инкрементный ключ или смысловой.
Нормальные формы отношений
При проектировании БД стоит задача группировки атрибутов в отношения при условии, что набор возможных отношений заранее не фиксирован. Допускается большое количество различных вариантов, что приводит к проблеме выбора рационального варианта из множества альтернативных схем отношений.
Рациональные варианты группировки атрибутов в отношения должны отвечать следующим требованиям:
выбранные для отношений первичные ключи должны быть минимальными;
в ыбранный состав отношений базы данных должен отличаться минимальной избыточностью атрибутов;
при выполнении операций включения, удаления и модификации данных в базе не должно возникать трудностей (аномальных явлений);
перестройка набора отношений при введении новых типов данных должна быть минимальной;
разброс времени ответа на различные запросы должен быть незначительным.
Для оптимального проектирования структуры БД выполняется исследование функциональных зависимостей между атрибутами отношений. Исследование функциональных зависимостей между атрибутами является основой нормализации отношений, т.е. теоретического метода исключения избыточности и усиления целостности (точности и корректности в любой момент времени) реляционной БД.
Функциональная зависимость существует, когда один или более атрибутов уникально определяют другие один или более атрибутов:
X – множество определяющих атрибутов;
Y – множество определяемых атрибутов;
X -> Y.
Существует несколько нормальных форм отношений. Чем выше нормальная форма отношения, тем меньше аномальных явлений может иметь место при ведении базы. Процесс нормализации ведет к разукрупнению отношений.
Первая нормальная форма вытекает из самого определения отношения. Определение второй и третьей нормальных форм основано на исследовании транзитивных зависимостей между атрибутами.
Вторая нормальная форма требует, чтобы в отношении не существовало зависимости каких-либо неключевых атрибутов от части первичного ключа:
K -> T -> A, где
K – ключ;
T – подмножество ключа;
A – неключевой атрибут.
Например: ГРУППА (курс, номер группы, специальность, количество студентов, староста);
номер группы -> специальность.
Имеет место функциональная зависимость неключевого атрибута (специальность) от части ключа (номер группы). В случае изменения номера специальности необходимо просмотреть всю таблицу с изменением соответствующих записей.
Вставить (команда INSERT) информацию по новой специальности нельзя, не вводя информацию по группе; при удалении (команда DELETE) информации по всей группе теряется информация о специальности; при изменении (команда UPDATE) информации по специальности необходимо изменить все соответствующие записи групп.
При нормализации из схемы отношения «ГРУППА» извлекается атрибут «специальность» и выводится в отдельное отношение. Получается отношение во второй нормальной форме:
ГРУППА (курс, номер группы, количество студентов, староста);
СПЕЦИАЛЬНОСТЬ_ГРУППА (номер группы, специальность).
Переход от первой нормальной формы ко второй нормальной форме осуществляется расщеплением исходного отношения по принципу: атрибуты, функционально зависящие от одного из ключевых атрибутов, образуют с ним отношение с единственным ключом, а остальные атрибуты, которые полностью зависят от ключа, остаются в исходном отношении. При этом целостность базы будет поддерживать легче, уменьшается вероятность аномальных явлений при ее модификации.
Третья нормальная форма требует, чтобы не существовало транзитивных связей между неключевыми атрибутами (каждый кортеж состоит из первичного ключа и взаимно независимых атрибутов, описывающих сущность):
K -> Y -> A, где
K – ключ;
Y, A – неключевые атрибуты.
Например: РАСПИСАНИЕ (курс, номер группы, день недели, пара, предмет, преподаватель, аудитория);
предмет -> аудитория.
Имеет место функциональная зависимость между неключевыми атрибутами «предмет» и «аудитория» (будем считать, что аудитория закреплена за определенным предметом).
Вставить (команда INSERT) информацию по новой аудитории нельзя, не вводя информацию о предмете; при удалении (команда DELETE) информации о предмете теряется информация об аудитории; при изменении (команда UPDATE) информации об аудитории необходимо просмотреть всю таблицу расписания.
Для исключения аномальных явлений при ведении БД следует исходное отношение разбить на два:
РАСПИСАНИЕ (курс, номер группы, день недели, пара, предмет, преподаватель);
ПРЕДМЕТ_АУДИТОРИЯ (предмет, аудитория).
Итак, чем выше нормальная форма отношения, тем легче поддерживать целостность БД. Существует два основных ограничения целостности у реляционной модели, которые позволяют назвать базу данных реляционно-полной.
Целостность объектов – в базе не допускается, чтобы какой-либо атрибут из первичного ключа отношения принимал неопределенное значение.
Ссылочная целостность – БД не должна содержать несогласованных значений внешних ключей. Если отношение R2 имеет среди своих атрибутов какой-то внешний ключ (FK), который соответствует первичному ключу (PK) отношения R1, то каждое значение FK должно быть равно значению PK.
СУБД поддерживают ссылочную целостность на операциях обновления и удаления записей.
Операция удаления (DELETE):
при удалении первичного ключа (PK), на который есть ссылка во вторичных ключах (FK), для ограничения выполнения операции задается опция DELETE RESTRICTED;
при удалении первичного ключа (PK), на который есть ссылка во вторичных ключах (FK), для удаления всех соответствующих записей задается опция DELETE CASCADE.
Операция обновления (UPDATE):
при корректировке первичного ключа (PK), на который есть ссылки во вторичных ключах (FK), для ограничения выполнения операции задается опция UPDATE RESTRICTED;
при корректировке первичного ключа (PK), на который есть ссылки во вторичных ключах (FK), для изменения всех соответствующих записей задается опция UPDATE CASCADE.
Алгебра отношений
Манипулирование данными в реляционной БД основано на алгебре отношений. При этом результатом ответа на любой запрос является отношение. Степень отношения – это число атрибутов, входящих в него. Мощность отношения – это число строк (кортежей) в отношении.
Все множество операций можно разделить на два подмножества:
теоретико-множественные операции: пересечение, объединение, вычитание и декартово произведение;
специальные операции: проекция, ограничение, соединение, деление.
Операции реляционной алгебры и конструкции языка SQL приведены на модели тестовой базы данных по поставкам деталей (рис. 1.21, 1.22).