Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Глава19.docx
Скачиваний:
3
Добавлен:
25.08.2019
Размер:
2.42 Mб
Скачать

19.3. Реляционные языки манипулирования данными

725

Между записями реляционных таблиц устанавливаются отношения следующих типов:

1:1 — одно — однозначное соответствие, когда записи в первой таблице соответ­ствует запись в связанной с ней другой таблице (в обратном направлении также выпол­няется данное соответствие).

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

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

Пример 19.48. Если таблица СТУДЕНТ содержит первичный ключ [№ зач.книжки], а таблица ОЦЕНКА имеет схему ([№ зач.книжки], [Код дисциплины], [Результат]), то поле [№ зач.книжки] таблицы ОЦЕНКА выступает как внешний ключ для орга­низации связи с таблицей СТУДЕНТ. Связь возможна, если тип данных и значение данного поля в обеих таблицах будут одинаковыми, при этом эти поля могут иметь и произвольные названия. Так, в таблице ОЦЕНКА может использоваться поле [Код студента], к примеру.

Применительно кразносхемным таблицам выполняются различные действия.

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

Пример 19.49. Имеются таблицы СТУДЕНТ и ДИСЦИПЛИНА([Код дисциплины], [Наименование дисциплины]). Декартово произведение таблиц дает новую таб­лицу — УСПЕВАЕМОСТЬ со схемой ([Имя], [Фамилия], [Дата рождения], [№ зач.книжки], [Код дисциплины], [Наименование дисциплины]). Если какой-либо студент не связан с определенной дисциплиной либо по дисциплине не предпо­лагается учет успеваемости, результирующая запись, полученная как декартово произведение, не имеет смысла.

СТУДЕНТ

Имя

Фамилия

Дата рождения

зач.книжки

Петр

Иванов

12.12.80

123245

Марина

Петрова

1.1.80

233244

ДИСЦИПЛИНА

Код дисциплины

Наименование дисциплины

1

Высшая математика

2

Информатика

УСПЕВАЕМОСТЬ

Имя

Фамилия

Дата рож­дения

зач. книжки

Код дис­циплины

Наименование

дисципли ны

Петр

Иванов

12.12.80

123245

1

Высшая математика

Петр

Иванов

12.12.80

123245

2

Информатика

Марина

Петрова

1.1.80

233244

1

Высшая математика

Марина

Петрова

1.1.80

233244

2

Информатика

Условием совместной обработки разносхемных реляционных таблиц в ряде случаев является наличие общих по типу и значению полей, так называемых внешних ключей.

726 ГЛАВА 19. ИНСТРУМЕНТАЛЬНЫЕ СРЕДСТВА ПОЛЬЗОВАТЕЛЯ В СРЕДЕ MICROSOFT OFFICE ^^

Соединение — две таблицы, имеющие общие поля — внешние ключи, участвуют в создании новой таблицы, схема которой строится объединением всех полей исходных отношений, а результирующие записи формируются по определенным условиям:

для одинаковых значений внешних ключей — симметричное соединение;

для всех записей одной из таблиц и соответствующих им записей другой таблицы —

внешнее соединение.

Пример 19.50. Соединить таблицы СТУДЕНТЫ и ОЦЕНКА при условии, что включены все записи таблицы СТУДЕНТ и соответствующие им записи таблицы ОЦЕНКА. Объединение таблиц возможно по общему полю — [№ зач.книжки].

СТУДЕНТЫ

Имя

Фамилия

Дата рождения

зач.книжки

Петр

Иванов

12.12.80

123245

Марина

Петрова

1.1.80

233244

Иван

Сидоров

12.1.80

123247

ОЦЕНКА

Код дисциплины

зач.книжки

Результат

1

123245

3

1

233244

4

2

233244

5

2

123245

5

РЕЗУЛЬТАТЫ

Имя

Фамилия

Дата рождения

зач. книжки

Код дисциплины

зач. книжки

Резуль­тат

Петр

Иванов

12.12.80

123245

1

123245

3

Петр

Иванов

12.12.80

123245

1

233244

4

Марина

Петрова

1.1.80

233244

2

233244

5

Марина

Петрова

1.1.80

233244

2

123245

5

Иван

Сидоров

12.1.80

123247

пустые поля, так как нет соот­ветствующих записей в таблице ОЦЕНКА

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

Пример 19.51. Результат деления таблицы УСПЕВАЕМОСТЬ на таблицу ОЦЕНКА дает таблицу СТУДЕНТ (см. предыдущий пример).

КЛАССИФИКАЦИЯ РЕЛЯЦИОННЫХ ЯЗЫКОВ

Типы реляционных языков

Реляционные языки обеспечивают типовые операции по обработке реляционных таблиц, позволяют формулировать логические условия, используемые в операциях выборки, про­верку целостности (непротиворечивости) данных взаимосвязанных таблиц.

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