- •Введение
- •Лекция 1: Информационные системы с базами данных Информация, данные, информационные системы Информация как социальный ресурс
- •Информация и данные
- •Определение понятия информации
- •Информационные системы
- •Итерационная процедура построения информационных систем
- •Концепция баз данных
- •Основные подходы к обработке информации в автоматизированных информационных системах
- •Концепция баз данных
- •Системы управления базами данных
- •Модели данных Понятие о модели данных
- •Информационная модель данных
- •Концепция трех схем
- •Основные типы моделей и их эквивалентность
- •Общие принципы классификации субд
- •Обзор основных моделей данных
- •Иерархическая модель
- •Сетевая модель данных
- •Модели вычислений
- •Лекция 2. Предметная область базы данных и ее модели Понятие предметной области
- •Информационная модель предметной области базы данных
- •Сущности, атрибуты и идентификаторы (ключи) сущности, домены атрибутов
- •Отношения, связи
- •Подтипы и супертипы
- •Диаграммы "сущность-связь"
- •Документирование сущностей и атрибутов
- •Документирование доменов
- •Документирование отношений (связей)
- •Документирование супертипов и подтипов
- •Функциональная модель предметной области базы данных Понятие функциональной модели предметной области базы данных
- •Бизнес-модель процессов (иерархия функций системы)
- •Модель потока данных
- •Модель жизненного цикла сущности
- •Набор спецификаций функций системы (требования), описание функций системы через сущности и атрибуты, бизнес-правила
- •Общесистемные требования и решения
- •Контроль качества результатов анализа предметной области
- •Лекция 3. Что такое проектирование баз данных Введение
- •Что такое проектирование базы данных
- •Типовая бизнес-модель процесса проектирования базы данных
- •Бизнес-модель процесса проектирования базы данных: сбор и анализ входных данных
- •Бизнес-модель процесса проектирования реляционной базы данных: создание логической модели базы данных
- •Бизнес-модель этапа проектирования - создание физической модели реляционной базы данных
- •Бизнес-модель этапа проектирования - создание физической модели реляционной базы данных: учет влияния транзакций
- •Краткое рассмотрение задач создания серверного кода и подготовки скрипта
- •Лекция 4. Реляционная модель данных Информация, данные, информационные системы Понятие отношения
- •Формы представления отношений
- •Реляционные операции
- •Объединение отношений
- •Пересечение отношений
- •Разность отношений
- •Декартово произведение отношений
- •Проекция отношения
- •Деление отношений
- •Выбор из отношения
- •Соединение отношений
- •Лекция 5. Функциональные зависимости и реляционные базы данных Информация, данные, информационные системы Понятие функциональной зависимости в данных
- •Основные классы функциональных зависимостей
- •Аксиомы вывода функциональных зависимостей
- •Минимальные покрытия множеств функциональных зависимостей
Формы представления отношений
Как мы уже упоминали выше, отношения можно представлять в виде таблиц. Но в табличном представлении сложно показывать некоторые свойства отношений. Например, неоднозначность трактовки домена колонки. Поэтому предпринимаются попытки строить более четкие схемы описания отношений в реляционных базах данных. Ниже представлен фрагмент такого описания в виде примера схемы базы данных "КАДРЫ":
СХЕМА "ОТДЕЛ_КАДРОВ"
ДОМЕН Т_Табельный_номер ТИП целое
ДОМЕН Т_ФИО ТИП символьное
ДОМЕН Т_Зарплата ТИП десятичное с фиксированной точкой
.....
ОТНОШЕНИЕ Служащий ( Табельный-номер / КЛЮЧ /
ДОМЕН = Т_Табельный-номер, ФИО / ДОМЕН = Т_ФИО, .... )
....
КОНЕЦ ОПИСАНИЯ СХЕМЫ.
Подобное описание не прижилось среди проектировщиков баз данных. На практике прибегают к такому описанию крайне редко.
Для дальнейшего изложения нам понадобится одно из самых важных понятий обработки данных - понятие ключа.
Ключом или ключевым полем называется уникальное значение, которое позволяет тем или иным способом идентифицировать сущность или часть сущности предметной области, т.е. ключ - это значение некоторого атрибута или атрибутов в кортеже отношения, который представляет экземпляр сущности в реляционной модели данных.
Внимание! На данном этапе изложения мы не проводим особого различия между понятиями "ключ отношения" и "ключ сущности" предметной области, хотя далее мы будем эти ключи различать.
Заметим, что в определении ключа не требуется однозначной идентификации сущности предметной области базы данных. Ключ отношения - это не уникальный идентификатор сущности предметной области. Однако последний есть возможный кандидат на ключ отношения, иначе говорят, возможный ключ.
Принято различать первичные ключи и частичные ключи. Математически первичным ключом отношения R со схемой r является подмножество сужения декартового произведения, которое позволяет однозначно идентифицировать кортеж. Если первичный ключ содержит несколько атрибутов, то он называется составным ключом, в противном случае - атомарным. Частичным ключом называется атрибут составного ключа, если он однозначно определяет совокупность неключевых атрибутов отношения. Атрибут кортежа, который является первичным ключом другого отношения, называется внешним (иногда посторонним) ключом.
Из определения отношения следует следующее важное свойство реляционной модели данных: каждое отношение должно иметь первичный ключ. Отсутствие первичного ключа в отношении может привести к приобретению кортежей, которые не определены текущим состоянием предметной области, или к потере уже существующих кортежей при выполнении теоретико-множественных операций. Причина подобных казусов лежит в механизме построения декартова произведения.
Заметим, что ключ в контексте модели предметной области базы данных всегда отражает ту или иную степень связи между атрибутами сущностей предметной области, т.е. семантически ключ есть средство моделирования связей в модели.
Пример: рассмотрим предложение "Гражданин Иванов проживал в городе Москве 10 лет". Возможными атрибутами в отношении Место_жительства являются фамилия гражданина, название города проживания и время проживания. Фамилия гражданина может выступать в качестве первичного ключа этого отношения, так как личность однозначно определяет время ее проживания в конкретном городе. Таким образом, в этом отношении моделируется связь "проживал" между атрибутами "фамилия" и "город".
Отношения в реляционной модели данных, как правило, представляются с помощью функциональной формы записи (так как мы записываем функции нескольких переменных в математическом анализе), при этом атрибуты первичного ключа подчеркиваются:
ИМЯ_ОТНОШЕНИЯ (Атрибуты первичного ключа, неключевые атрибуты).
Пример. Представление связи отношением. Представим связь
между личностью и местом ее проживания через отношение
ПРОЖИВАЕТ (Кл. личность, Кл. населенный_пункт, время)
Описание личности:
ЛИЧНОСТЬ (Кл. личность, ФИО, возраст, пол)
Описание населенного пункта:
НАСЕЛЕННЫЙ_ПУНКТ (Кл.населенный_пункт, география, население)
Однако наибольшее распространение получило представление отношений в виде графических диаграмм, например ER-диаграмм, о которых мы говорили в первой лекции. Преимуществами такого представления являются наглядность диаграмм и возможность их построения в ряде CASE-средств проектирования баз данных. Обычно CASE-средства позволяют поддерживать несколько уровней представления отношений. Так, например, ErWin поддерживает уровень логической и физической моделей базы данных.
Отметим, что представление фрагментов реального мира через отношения даже в рамках одной модели данных не характеризуется единственностью. Например, зададимся вопросом: "Что есть цвет автомобиля? Связь, объект или атрибут?" Если за объект принять автомобиль, то цвет может выступать в качестве атрибута автомобиля. Если рассматривать зависимость отражательной способности покрытия автомобиля от его цвета, то цвет можно считать объектом. Если рассматривать взаимосвязь между цветом модели автомобиля и ее номером, то цвет можно считать связью.
В любом случае при представлении какого-либо качества реального мира в модели следует четко понимать, какие запросы в рамках создаваемой модели данных должны быть разрешимыми. Рассмотрим отношение КРАСНЫЙ (модель). При использовании такого отношения на вопрос: "Является ли модель X красного цвета?" может быть получен ответ: "Да" или "Нет". Вопрос: "Какой цвет у модели Х?" ответа не имеет, так как в отношении отсутствует атрибут "цвет".
В итоге сформулируем основные свойства реляционной модели данных, которые следуют из понятия отношения как множества.
Все кортежи одного отношения должны иметь одно и то же количество атрибутов.
Значение каждого из атрибутов должно принадлежать некоторому определенному домену.
Каждое отношение должно иметь первичный ключ.
Никакие два кортежа не могут иметь полностью совпадающих наборов значений.
Каждое значение атрибутов должно быть атомарными, т.е. не должно иметь внутренней структуры и содержать в качестве компонента другое отношение.
Реляционная модель данных должна быть непротиворечивой, в частности должен выполняться 1) принцип ссылочной целостности - связи между отношениями должны быть замкнутыми, 2) значения колонок должны принадлежать одному и тому же определенному для них домену.
Порядок следования кортежей в отношении не имеет значения. Порядок есть в большей степени свойство хранения данных, чем свойство непосредственно самой реляционной модели данных.
