Лекция 2
Реляционная модель данных
В лекции рассматривается наиболее распространенная реляционная модель представления данных; дается определение реляционной модели и характеристика ее элементов; связывание таблиц и контроль целостности связей, описываются индексирование.
Часть 1. Определение реляционной модели
При создании информационной системы совокупность отношений позволяет хранить данные об объектах предметной области и моделировать связи между… Элементы РМД и формы их представления приведены в табл.1.
Таблица 1.
Элемент реляционной модели
Форма представления
Отношение
Таблица
…
Часть 2. Индексирование
Для реализации этих функций в СУБД применяют индексирование.
Термин «индекс» тесно связан с понятием «ключ», хотя между ними есть и… Под индексом понимают средство ускорения операции поиска записей в таблице, а следовательно, и других операций,…
Часть 3. Связывание таблиц
При проектировании реальных БД информацию обычно размещают в нескольких таблицах. Таблицы при этом связаны семантикой информации. В реляционных СУБД для указания связей таблиц производят операцию их связывания.
Укажем выигрыш, обеспечиваемый в результате связывания таблиц. Многие СУБД при связывании таблиц автоматически выполняют контроль целостности вводимых в базу данных в соответствии с установленными связями. В конечном итоге это повышает достоверность хранимой в БД информации.
Кроме того, установление связи между таблицами облегчает доступ к данным. Связывание таблиц при выполнении таких операций, как поиск, просмотр, редактирование, выборка и подготовка отчетов, обычно обеспечивает возможность обращения к произвольным полям связанных записей. Это уменьшает количество явных обращений к таблицам данных и число манипуляций в каждой из них.
Основные виды связей между таблицами
Между таблицами могут устанавливаться бинарные (между двумя таблицами), тернарные (между тремя таблицами) и, в общем случае, n-арные связи. Рассмотрим наиболее часто встречающиеся бинарные связи.
При связывании двух таблиц выделяют основную и дополнительную (подчиненную) таблицы. Логическое связывание таблиц производится с помощью ключа связи.
Ключ связи, по аналогии с обычным ключом таблицы, состоит из одного или нескольких полей, которые в данном случае называют полями связи (ПС).
Суть связывания состоит в установлении соответствия полей связи основной и дополнительной таблиц. Поля связи основной таблицы могут быть обычными и ключевыми. В качестве полей связи подчиненной таблицы чаще всего используют ключевые поля.
В зависимости от того, как определены поля связи основной и дополнительной таблиц (как соотносятся ключевые поля с полями связи), между двумя таблицами в общем случае могут устанавливаться следующие четыре основных вида связи:
1. один - один (1:1);
2. один - много (1:М);
3. много - один (М:1);
4. много - много (М:М или M:N).
Характеристика видов связей таблиц приведена в табл. 2.
Таблица 2.
Дадим характеристику названным видам связи между двумя таблицами и приведем примеры их использования.
Связь вида 1:1
Связь вида 1:1 образуется в случае, когда все поля связи основной и дополнительной таблиц являются ключевыми. Поскольку значения в ключевых полях обеих таблиц не повторяются, обеспечивается взаимно-однозначное соответствие записей из этих таблиц. Сами таблицы, по сути, здесь становятся равноправными и могут быть объединены в одну таблицу.
Самостоятельно приведите примеры таких связей.
Связь вида 1:М
Связь 1:М имеет место в случае, когда одной записи основной таблицы соответствует несколько записей вспомогательной таблицы.
Самостоятельно приведите примеры таких связей.
Связь вида М:1
Связь М:1 имеет место в случае, когда одной или нескольким записям основной таблицы ставится в соответствие одна запись дополнительной таблицы.
Пример. Рассмотрим связь таблиц А и B.
В основной таблице А содержится информация о названиях деталей (Название), видах материалов, из которого детали можно изготовить (Материал), и марках материала (Марка).
В дополнительной таблице B содержатся сведения о названиях деталей (Название), планируемых сроках изготовления (Срок_изготовления) и стоимости заказов (Стоимость_заказа).
Таблица А
+
Название
Материал
Марка
деталь 1
чугун
марка1
деталь 1
чугун
марка2
деталь2
сталь
марка1
деталь2
сталь
марка2
деталь2
сталь
маркаЗ
детальЗ
алюминий
-
деталь4
чугун
марка2
Таблица B
* +
Название
Срок_изготовления
Стоимость_заказа
деталь 1
4.03.98
деталь2
3.01.98
детальЗ
17.02.98
деталь4
6.05.98
В таком случае, поменяв таблицы местами, можно получить связь вида 1:М.
Отсюда следует, что вид связи (1: М или М: 1) зависит от того, какая таблица является главной, а какая дополнительной.
Связь вида М:М
Самый общий вид связи М:М возникает в случаях, когда нескольким записям основной таблицы соответствует несколько записей дополнительной таблицы.
Пример.
Пусть в основной таблице А содержится информация о том, на каких станках могут работать рабочие некоторой бригады. Таблица B содержит сведения о том, кто из бригады ремонтников какие станки обслуживает.
Таблица A
* +
Работает
На станке
Иванов А.В.
станок1
Иванов А.В.
станок2
Петров Н.Г.
станок1
Петров Н.Г.
станокЗ
Сидоров В.К.
станок2
Таблица B.
Обслуживает
Станок
Голубев А.М.
станок1
Голубев А.М.
Станок3
Зыков Н.Г.
Станок2
Зыков Н.Г.
Станок3
Зыков Н.Г.
Станок1
Очевидно, аналогично связи 1:1, связь М:М не устанавливает подчиненности таблиц. Для проверки этого можно основную и дополнительную таблицу поменять местами и выполнить объединение информации путем связывания. Результирующие таблицы А+B» и B+А будут отличаться лишь порядком следования отдельных полей, а также порядком расположения записей.
Такую структуру необходимо переделать и привести итоговые таблицы к связи 1:М.
Замечание
На практике в связь обычно вовлекается сразу несколько таблиц. При этом одна из таблиц может иметь различного рода связи с несколькими таблицами. В случаях, когда связанные таблицы, в свою очередь, имеют связи с другими таблицами, образуется иерархия или дерево связей.
Часть 4. Контроль целостности связей
Напомним, что при образовании связи вида 1:М одна запись главной таблицы (главная, родительская запись) оказывается связанной с несколькими…