В таблице Сотрудник в качестве первичного ключа выступает столбец табельный номер (каждое значение этого столбца уникально: не может повторяться).
Если первичный ключ состоит из нескольких атрибутов, он называется составным.
Товар
ПРОДАВЕЦ | ПОКУПАТЕЛЬ | ТОВАР | ЦЕНА |
А | А1 | Т1 | 50 |
А | А1 | Т2 | 70 |
В | А1 | Т1 | 60 |
С | С1 | Т3 | 80 |
Для таблицы «Товар» в качестве первичного ключа может использоваться только комбинация из трех полей ПРОДАВЕЦ ПОКУПАТЕЛЬ ТОВАР ( значения каждой комбинации является уникальными).
Внешний ключ – это атрибут (или несколько атрибутов) внутри отношения, значения которого соответствуют значениям первичного ключа другого (родительского) отношения. (рис. 1.2).
Отношение, содержащее внешний ключ называется дочерним.
Внешние ключи используются для обеспечения логической связи между отношениями.
В таблице «Сотрудник» в качестве внешнего ключа используется табельный номер руководителя. Зная этот номер, можно найти фамилию руководителя в таблице «Руководитель».
Поле внешнего ключа дочерней таблицы («таб_ном _рук») должно совпадать по типу с полем «табельный номер» в табл. «Руководитель» (хотя вовсе не обязательно, чтобы совпадали имена.
В родительской таблице это поле («таб_ном _рук») должно бать ключевым.
Анализируя все рассмотренные выше понятия, можно отметить следующие важные свойства отношений. В любом отношении
- не должно быть одинаковых кортежей;
- не требуется упорядочение кортежей;
- не требуется упорядочение атрибутов.
Альтернативные варианты терминов в реляционной модели
Основные термины | Альтернативные термины 1 | Альтернативные термины 2 |
Отношение | Таблица | Файл |
Кортеж | Строка | Запись |
Атрибут | Столбец | Поле |
1.4Схемы баз данных
Схема – это общее описание всей БД, включающее перечень всех таблиц и связей между ними (рис. 1.4). Схема создается администратором БД и в дальнейшем используется системой в качестве метаданных.
Одной из основных характеристик связи является тип связи.
Тип определяет возможность связи записей одной таблицы
только с одним или несколькими другой таблицы.
В первом случая говорят о типе связи 1:1(один к одному), во втором 1:М (один ко многим). Направленная связь, имеющая в обоих направлениях тип 1:М, называется связью типа М:М(многие ко многим).
Примером связи типа 1:1 является связь между таблицамиРис. 1.4 Схема БД
“Страна” и “Столица”. Действительно, каждая страна имеет только одну столицу. И наоборот, каждая столица принадлежит только одной стране.
Примером связи типа 1:М является связь между таблицами “Служащий” и “Профсоюз”. Каждый служащий принадлежит одному профсоюзу. И наоборот, каждый профсоюз объединяет много служащих.
Примером связи типа М:М является связь между таблицами “Товар” и “Заказ”. Каждый товар может входить в несколько заказов. С другой стороны, каждый заказ может включать в себя несколько товаров.
Лекция 3
1.5. Основные области внешней памяти
Обычно внешняя память логически делится на несколько областей, представленных на рис. При этом каждой области физически соответствует один или несколько файлов операционной системы (с точки зрения операционной системы БД – это просто один или несколько файлов, содержащих какую-то неизвестную для нее информацию).
Табличная область содержит таблицы и индексы. Системная область содержит информацию о самой системе и базе данных и, в частности , описание схемы базы данных. В журнальной области хранится информация, необходимая для восстановления базы данных в случае сбоя системы. Вспомогательная область, как правило, используется для временного (промежуточного) хранения самых различных данных (рис.1.5).
Рис. 1.5 Основные области внешней памяти
Далее рассматривается только табличная область.
На логическом уровне табличная область БД представляется как набор отдельных страниц.
Страница – это минимальная совокупность данных считываемая (записываемая) из внешней памяти за одно обращение. Размер страницы, как правило, равен размеру сектора диска 512 байт или кратен 512 байт, т.е. равен кластеру.
В табличной области содержатся только таблицы и индексы, каждый из которых может занимать от одной до нескольких страниц.
Причем данные на странице однородны. Т.е. в пределах одной страницы могут находиться таблицы или индексы (рис.1.6).
Рис. 1.6. Размещение таблиц и индексов на страницах
1.6. Хранение таблиц
Существуют 2 способа хранения
- по строкам
- по столбцам
Наиболее распространено горизонтальное хранение. Это обеспечивает более быстрый доступ, но в БД оказывается много дублированных значений в полях, что приводит к информационной избыточности. При вертикальном хранении избыточности нет, но время доступа резко возрастает, т.к. строку приходиться собирать из различных столбцов.
В дальнейшем будем предполагать, что используется именно горизонтальное хранение данных.
Все данные на страницах однородны, т.е. на каждой странице могут размещаться данные, принадлежащие или таблицам, или индексам (рис.1.7).
Записи фиксированной длины
Рис. 1.7.Структура записи фиксированной длины
Заголовок записи содержит :
- бит удаления
- длину записи
- время последней вставки / обновления
-
Группирование записей фиксированной длины по страницам
Рис 1.8. Хранение записей фиксированной длины на странице
Заголовок страницы может содержать:
1 cхему записи
2 таблицу размещения строк
3 таблицу размещения слотов
4 время последнего обновления страницы
Схема записи содержит количество полей типы полей и их размеры.
Таблицы размещения строк и слотов необходимы, т.к. строки (с данными) и слоты (свободные места) перемешаны между собой.
Хранение записей большого размера (типа DLOB)
Рис.1.9. Распределение связанных записей по страницам
Заголовок каждого фрагмента содержит:
1 бит, указывающий, что данная порция данных является всей записью или только фрагментом.
2 биты, указывающие, что фрагмент первый, последующий или последний.
3 указатели на предыдущий и/или следующий фрагмент
4 время вставки/удаления
5 бит удаления
При организации доступа в БД диспетчер файлов и диспетчер буферов всегда работают на уровне страниц, т.е. обеспечивают чтение, удаление, добавление, обновление страниц.
Вставка строк (кортежей)
Для вставки отыскивается свободное место на любой странице (т.е. местоположение записей никак не упорядочивается.
Удаление
Физически запись со страницы никак не удаляется. Просто бит удаления в заголовке записи (или фрагмента) устанавливается в “1”.
Обновление по месту
Это самый простой случай модификации данных. При этом новая запись записывается на место старой.
Хранение мультимедийных данных
Когда в таблице содержится столбец, имеющий тип данных LОВ (largeobjects– большие объекты), тогда в каждой строке таблицы хранится лишь небольшой указатель на то место внешней памяти, где действительно хранятся данные этого типа.
Существуют различные типы LOB, служащие для хранения текстовой, графической и другой информации. Для примера отметим два из них: ВLОВ и BFILE, используемые в СУБД Oracle.
Все типы данных LOB можно разделить на две части:
- сохраняемые в базе данных ( к ним, в частности, относится BLOB)
- сохраняемые вне базы данных виде файла операционной системы( к ним, в частности, относится BFLE).
Принципы хранения данных типа LОВ и проиллюстрированы на рис. 1.10.
Рис. 1.10 показывает, что характеристики хранения полей LОВ независят от характеристик хранения базовой таблицы. Это упрощает процесс обращения к данным LОВ, занимающим обычно большие области диска. В этом примере все не-LОВ- и не-ВFILE - данные для каждой строки таблицы хранятся вместе в одной табличной области, данные столбца LОВ — в другой табличной области, а данные столбца ВFILE — в файловой системе сервера. При этом основные табличные и связанные с ними мультимедийные данные распределяются для хранения среди разных физических областей (например, дисководов), что снижает конкуренцию при доступе к диску и повышает общую производительность системы.
Рис. 1.10 Использование указателей для хранения мультимедийных
данных
Лекция 4
1.7.Управление буферами
Буфер – область оперативной памяти, используемая для кратковременного хранения данных, участвующих в процессе обмена между внешней и оперативной памятью. В процессе чтения /записи, с диска данные попадают в буфер и там некоторое время хранятся (рис. 2.6). Обычно размер буфера выбирается кратным размеру страницы.
Основное назначение буферов - синхронизация работы быстрой оперативной памяти с медленной внешней памятью. Необходимость такой синхронизации обусловлена тем, что время доступа к оперативной памяти меньше, чем к внешней.