
ЛЕКЦИЯ 3
Примерно до середины 1970-х годов все информационные системы создавались на базе файловых систем и ранних баз данных (в их основе лежали не абстрактные и не реляционные модели данных). В середине 1970-х годов произошло несколько значительных событий, которые привели к качественным изменениям в подходах к разработке БД и созданию на их основе информационных систем. Это произошло не случайно:
с одной стороны, был НАКОПЛЕН ОПЫТ СОЗДАНИЯ ПЕРВЫХ баз данных И ИС (период рождения, характерный для любого нового направления)
с другой стороны, повысился интерес к подобным системам со стороны крупных компаний и государственных структур, которые начали вкладывать в разработки и исследования ЗНАЧИТЕЛЬНЫЕ ИНВЕСТИЦИИ. Ранние БД создавались усилиями отдельных компаний.
Изменения коснулись трех ключевых элементов:
3. Модель представления данных - появление реляционной модели
4.1. Архитектура – появление трехуровневой модели построения БД
4.2. – 4.4. Состав комплекса БД – появление первых настоящих СУБД. До этого специальные функции ограничивались лишь манипуляцией данными, средствами разработки и библиотеками процедур.
С этого момента начинается, собственно, эпоха современных баз данных.
Тема 3. Общие понятия реляционного подхода к организации бд. Основные концепции и термины
Ключевым элементом новых подходов к разработке и созданию баз данных явилось появление реляционной модели. Термин "реляционная модель данных" впервые появился в 1970 году в статье сотрудника фирмы IBM доктора Эдгара Кодда. Реляционная модель данных сформировалось в результате анализа опыта создания многочисленных конкретных баз данных в 1960-1970-х годах.
Одна из основных целей разработчиков: элементы реляционной модели являются абсолютно абстрактными, т.е. ни как не связаны ни с какой конкретной предметной областью, ни с содержимым БД. Это позволило создать мощную УНИВЕРСАЛЬНУЮ реляционную СУБД.
В основе реляционного подхода лежит модель описания данных вида “сущность-связь” (ER-модель). Ее основные элементы (см. рисунок):
множества сущностей,
атрибуты,
связи.
Сущность – это абстрактный объект определенного вида. Набор однородных сущностей образует множество сущностей. Фильмы, актеры, студии.
Каждому множеству сущностей отвечает набор атрибутов, являющихся свойствами отдельных его представителей. Название, год, жанр; ФИО, адрес…
Связи – это отношения между двумя или большим числом множеств сущностей. Снимались, владеет.
Модель данных – это набор правил и определений, которым подчиняются все объекты, находящиеся внутри базы данных
Реляционная модель данных – это модель данных, включающая три основных компонента (правила): структурный, манипуляционный и целостный.
Структурная составляющая реляционной модели определяет:
Все объекты, хранимые внутри реляционной БД (исходные таблицы, представления, отчеты, формы, запросы, индексы и т.д.) сводятся к совокупности двумерных таблиц особого вида, известных в математике как N-арное нормальное отношение (relation).
Такая таблица представляет собой простое множество. Что это? (атомарность, нет дубликатов)
Манипуляционная составляющая реляционной модели:
Для обработки данных используется стандартный аппарат теории множеств (объединение, пересечение, разность, декартово произведение и т.д.) – реляционная алгебра и реляционное исчисление.
Важно! – это позволило унифицировать СУБД, т.е. дало возможность создать механизм манипуляции с данными, независимый от их содержания.
3.1. Элементы структурной составляющей реляционной модели
К элементам структурной составляющей реляционных БД относятся:
Тип данных
Домен
Отношение, атрибут, кортеж, схема отношения и схема БД.
На практике большинство этих понятий легко иллюстрируется (сводится) к обычным житейским понятиям.
Для наглядности покажем смысл этих понятий на примере отношения СОТРУДНИКИ, содержащего информацию о сотрудниках некоторой организации (рис. 03P1 – Иллюстрация основных понятий реляционных БД).
Тип данных
Понятие тип данных в реляционной модели данных полностью адекватно понятию типа данных в языках программирования.
Простые типы данных:
логический, строковый,
численный (целый, вещественный)
дата, время, деньги, интервал (времени) и т.д.
В дальнейшем (1980-е годы) развивается подход к расширению возможностей реляционных систем путем создания абстрактных типов данных.
Структурированные типы данных:
массивы
записи (структуры)
Ссылочные типы данных
Ссылочный тип данных (указатели) предназначен для обеспечения возможности указания на другие данные. Указатели характерны для языков процедурного типа, в которых есть понятие области памяти для хранения данных. Ссылочный тип данных предназначен для обработки сложных изменяющихся структур, например деревьев, графов, рекурсивных структур.
В нашем примере мы имеем дело с данными трех типов: строки символов, целые числа и "деньги". Примеры из СУБД MS Access.
Домен
В реляционной модели данных с понятием тип данных тесно связано понятие домена, которое можно считать уточнением типа данных. Домен - это семантическое понятие.
Домен - это подмножество значений некоторого типа данных имеющих определенный смысл.
Домен характеризуется следующими свойствами:
1) Домен имеет уникальное имя (в пределах базы данных).
2) Домен определен на некотором простом типе данных или на другом домене.
3) Домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена.
4) Домен несет определенную смысловую нагрузку - данные считаются сравнимыми только в том случае, когда они относятся к одному домену.
Если тип данных можно считать множеством всех возможных значений данного типа, то домен определяет подмножество в этом множестве.
Таким образом, домен определяется заданием:
базового типа данных, к которому относятся элементы домена,
произвольного логического выражения, применяемого к элементу типа данных. Если вычисление этого логического выражения дает результат "истина", то элемент данных является элементом домена.
Например, домен "Имена" определен на базовом типе строк символов, но в число его значений могут входить только те строки, которые могут изображать имя (в частности, такие строки, например, не могут начинаться с мягкого знака).
В нашем примере значения доменов "Номера пропусков" и "Номера групп" относятся к типу целых чисел, но не являются сравнимыми.
Отношение, атрибут, кортеж, схема отношения, схема БД
Фундаментальным понятием реляционной модели данных является понятие отношения (Relation).
Отношение состоит из двух частей - заголовка отношения и тела отношения.
Заголовок отношения - это аналог заголовка обычной таблицы. Заголовок отношения состоит из атрибутов. Количество атрибутов называется степенью отношения (N-арность).
Атрибут – это определение домена для выбранного отношения. Атрибут отношения есть пара вида - <Имя атрибута: Имя домена> или Тип данных (если домен для данного атрибута не определен)>.
В нашем примере – «Сотрудник - номер пропуска», «Сотрудник - имя»
Тело отношения - это аналог тела таблицы. Тело отношения состоит из кортежей. Кортеж отношения является аналогом строки таблицы. Количество кортежей отношения называется мощностью отношения.
Кортеж - это множество пар {имя атрибута, значение}, которое содержит одно вхождение каждого имени атрибута, принадлежащего схеме отношения.
Схема отношения - это именованное множество пар {имя атрибута, имя домена (или типа данных)}.
ЗАМЕЧАНИЕ. Если все атрибуты одного отношения определены на разных доменах, осмысленно использовать для именования атрибутов имена соответствующих доменов (однако, это является всего лишь удобным способом именования и не устраняет различия между понятиями домена и атрибута).
Схема БД (в структурном смысле) - это набор именованных схем отношений.
В нашем примере – «Сотрудники», «Отделы», «Выплаты», «Анкеты» и т.д.
Таким образом, обычным житейским представлением является наличие следующих соотношений понятий:
Таблица - отношение
Записи таблицы - кортежи
Названия столбцов таблицы - атрибуты;
Заголовок таблицы – схема отношения
Набор заголовков таблиц – схема БД.
Как видно, структурные основные понятия реляционной модели данных (если не считать понятия домена) имеют очень простую интуитивную интерпретацию, хотя в теории реляционных БД все они определяются абсолютно формально и точно.
Поэтому иногда говорят "столбец таблицы", имея в виду "атрибут отношения". Когда мы перейдем к рассмотрению практических вопросов организации реляционных баз данных и средств управления, мы будем использовать эту житейскую терминологию. Этой терминологии придерживаются в большинстве коммерческих реляционных СУБД.