Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
МР - занятие № 2.doc
Скачиваний:
2
Добавлен:
24.08.2019
Размер:
308.22 Кб
Скачать

Методическая разработка

Тема № 1:

Базы данных специального назначения

Занятие № 2:

Реляционная модель: Введение в реляционные БД. Основы языка SQL.

Учебные вопросы:

п/п

Содержание вопроса

1

Введение в реляционные базы данных

2

Введение в язык SQL

3

Домены, отношения, базовые переменные-отношения

Реляционная модель

Реляционные системы базируются на формальных основах, или теории, которая называется реляционная модель данных. Для таких систем характерно выполнение трех условий:

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

  • Аспект целостности. Эти таблицы удовлетворяют определенным условиям целостностности.

  • Аспект обработки. В распоряжении пользователя имеются операторы манипулирования данными, которые генерируют новые таблицы на основании уже имеющихся и среди которых есть по крайней мере операторы выборки (restrict), проекции (project) и объединения (join).

Пример 2.1. На рис. 2.1 представлен простой пример реляционной базы данных отделов (таблица Отделы) и служащих (таблица Служащие). На рис. 2.2 показаны некоторые примеры применения операций SELECT, PROJECT и JOIN для этой базы данных.

Отделы

НомОтдела

НазваниеОтд

Бюджет

Отд1

Экономический

10М

Отд2

Конструкторский

12М

Отд3

Исследовательский

Служащие

НомСлужащего

ИмяСлужащего

НомОтдела

Зарплата

С1

Иванов

Отд1

21K

С2

Петров

Отд1

18K

С3

Никитин

Отд2

20K

С4

Буденко

Отд2

19K

Рис. 2.1. База данных отделов и служащих

SELECT (RESTRICT)

Выборка строк из Отделы, где БЮДЖЕТ > 8M

НомОтдела

НазваниеОтд

Бюджет

Отд1

Экономический

10М

Отд2

Конструкторский

12М

PROJECT

Извлечение столбцов НомОтдела,

НомОтдела

Бюджет

Отд1

10М

Отд2

12М

Отд3

JOIN:

Соединение Отделы и Служащие на основе столбца НомОтдела

НомОтдела

НазваниеОтд

Бюджет

НомСлужащего

ИмяСлужащего

Зарплата

Отд1

Экономический

10М

С1

Иванов

21K

Отд1

Экономический

10М

С2

Петров

18K

Отд2

Конструкторский

12М

С3

Никитин

20K

Отд2

Конструкторский

С4

Буденко

19K

Рис. 2.2. Примеры выполнения операций SELECT, PROJECT и JOIN

Операция SELECT предназначена для извлечения определенных строк из таблицы. Операция PROJECT предназначена для извлечения определенных столбцов из таблицы. Операция JOIN предназначена для соединения двух таблиц на основе общих значений в общих столбцах. При выполнении операции JOIN строки таблиц соединяются на основе значения некоторого столбца и только тогда, когда две строки соединяемых таблиц содержат в этих полях одинаковое значение.

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

Другой момент, на который следует обратить внимание, это то, что операции применяются ко всему множеству строк, а не к отдельной строке за один раз, т.е. операндами и результатами являются не отдельные строки, а целые таблицы, которые содержат множество строк.

Таблицы в реляционной системе являются логическими, а не физическими структурами. На физическом уровне СУБД может использовать любую структуру памяти (индексированный файл, последовательный файл и т.п.), лишь бы существовала возможность их отображения в виде таблиц на логическом уровне. Таким образом, таблицы представляют некоторую абстракцию способа физического хранения данных, в которой множество деталей на уровне памяти скрыто от пользователя. «Логическая структура» в терминологии ANSI/SPARC относится как к концептуальному, так и к внешнему уровням.

Вернемся к аспекту целостности. Данный аспект состоит в том, что на хранимые в базе данные может и должны накладываться некоторые ограничения, которые представляют те, или иные семантические (смысловые, логические) ограничения на их значения. В частности, возвращаясь к примеру, представленному на рис. 2.1 можно сказать, что такие ограничения есть. Например, каждая строка в таблице «Служащие» должна иметь уникальное значение столбца «НомСлужащего», а каждая строка в таблице «Отделы» - уникальное значение столбца «НомОтдела». В таком случае говорят, что указанные столбцы в соответствующих таблицах являются потенциальными ключами. Среди всех потенциальных ключей (по тем или иным соображениям) выбирается один, который называется первичным ключом. На рис. 2.1 столбцы, соответствующие первичным ключам таблиц, подчеркнуты двойной линией. Могут быть и другие ограничения, например размер зарплаты не может быть отрицательным значением или имя служащего состоять менее чем из 2-х символов.

Итак, в первом приближении дадим определение реляционной модели.

Реляционная модель состоит из следующих пяти компонентов:

  • Неограниченный набор скалярных типов (включая, в частности, логический тип или значение истины).

  • Генератор типов отношений и соответствующая интерпретация для таких сгенерированных типов отношений.

  • Возможность определения переменных отношений для таких сгенерированных типов отношений.

  • Операции реляционного присвоения для присвоения реляционных значений таким переменным отношений.

  • Неограниченный набор общих реляционных операторов для получения значений отношений из других значений отношений.

В определении отсутствует явное упоминание ограничений целостности , так как они представляют собой просто приложения, использующие реляционные операторы. Иначе говоря, такие правила формулируются в терминах реляционных операторов.