Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
Ответы.doc
Скачиваний:
25
Добавлен:
21.09.2019
Размер:
400.9 Кб
Скачать

8. Файлы с записями переменной длины. Вторичное индексирование. Временные характеристики операций. (стр. 92 методички)

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

Записи переменной длины возникают, если допускается использование повторяющихся групп полей (агрегатов) с переменным числом повторов или полей переменной длины. Работа с хранимыми записями переменной длины существенно усложняет управление пространством памяти, но может быть продиктована желанием уменьшить объём требуемой памяти или характером модели данных концептуального уровня.

Хранимая запись состоит из двух частей:

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

Информационная часть. Содержит значения элементов данных.

Вторичные индексы

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

Создание плотного вторичного индекса, который соответствует всем записям файла данных, но при этом в нем допускается наличие дубликатов.

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

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

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

9. Реляционная модель: базовые понятия, реляционная алгебра. (стр. 16 методички)

* Структурной части (описывает, какие объекты рассматриваются реляционной моделью. Постулируется, что единственной структурой данных, используемой в реляционной модели, являются нормализованные n-арные отношения).

* Целостной части (описывает ограничения специального вида, которые должны выполняться для любых отношений в любых реляционных базах данных. Это целостность сущностей и целостность внешних ключей).

* Манипуляционной части (описывает два эквивалентных способа манипулирования реляционными данными - реляционную алгебру и реляционное исчисление).

N-арным отношением R, или отношением R степени n, называют подмножество декартового произведения множеств D1, D2, ..., Dn (n>= 1), не обязательно различных.

Исходные множества D1,D2,...,Dn называют в модели доменами.

Пример

Допустим, содержание доменов следующее:

* D1 = {Иванов, Петров, Сидоров}

* D2 = {Физика, Химия}

* D3 = {3,4,5}

Тогда полное декартово произведение состоит из 18 троек, где первый элемент тройки — одна из фамилий, второй элемент — учебная дисциплина, а третий — оценка.

Тогда отношение R может моделировать реальную ситуацию и содержать пять строк, которые соответствуют результатам сессии (Сидоров не сдавал Химию):

Иванов Физика 3

Иванов Химия 4

Петров Физика 5

Петров Химия 3

Сидоров Физика 4

Отношения обладают рядом свойств:

В отношении нет одинаковых кортежей.

Кортежи неупорядочены (сверху вниз).

Атрибуты не упорядочены (слева направо).

Каждый атрибут в отношении имеет уникальное имя.

Отношение имеет простую графическую интерпретацию, оно может быть представлено в виде таблицы, столбцы (поля, атрибуты) которой соответствуют вхождениям доменов в отношение, а строки (записи, кортежи) — элементам декартова произведения.

Число строк (кортежей) n в отношении называют мощностью отношения.

Число атрибутов (столбцов) в отношении называют степенью (или -арностью) отношения.

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

* Домен имеет уникальное имя (в пределах базы данных).

* Домен определен на некотором простом типе данных или на другом домене.

* Домен может иметь некоторое логическое условие, позволяющее описать подмножество данных, допустимых для данного домена.

* Домен несет определенную смысловую нагрузку.

Например, домен, имеющий смысл "возраст сотрудника" можно описать как следующее подмножество множества натуральных чисел: D = {nEN: n>=18 and n<=60}

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

Несколько атрибутов одного отношения и даже атрибуты разных отношений могут быть определены на одном и том же домене. В примере, показанном на рисунке, атрибуты "Оклад" и "Премия" определены на домене "Деньги". Поэтому, понятие домена имеет семантическую нагрузку: данные можно считать сравнимыми только тогда, когда они относятся к одному домену. Таким образом, в рассматриваемом нами примере сравнение атрибутов "Табельный номер" и "Оклад" является семантически некорректным, хотя они и содержат данные одного типа.

Перви́чный ключ (англ. primary key) —минимальное множество атрибутов (то есть нельзя убрать ни один из атрибутов), являющееся подмножеством заголовка данного отношения, составное значение которых уникально определяет кортеж отношения.

Ограничения Первичным ключом могут быть поля отвечающие следующим требованиям:

* две разные строки не могут иметь одно и то же значение первичного ключа;

* каждая строка должна иметь определенное значение первичного ключа (не NULL).

Некоторые СУБД не допускают изменения значения в столбце первичного ключа.

Простые и составные ключи

Первичный ключ может состоять из единственного поля таблицы, значения которого уникальны для каждой записи. Так, например, на предприятии не может быть двух работников с одинаковыми табельными номерами, поэтому в таблице, содержащей записи о работниках, табельный номер может быть первичным ключом. Такой первичный ключ называют простым ключом. Если таблица не имеет единственного уникального поля, первичный ключ может быть составлен из нескольких полей, совокупность значений которых гарантирует уникальность. Так, номер паспорта, серия паспорта не могут быть первичными ключами по отдельности, так как могут оказаться одинаковыми у двух и более людей. Но не бывает двух личных документов одного типа с одинаковыми серией и номером. Поэтому в таблице, содержащей записи о людях, первичным ключом может быть набор полей, состоящий из типа личного документа, его серии и номера. Такой первичный ключ называют составным ключом (англ. compound key, composite key, concatenated key).

Вне́шний ключ (англ. foreign key) — понятие теории реляционных баз данных - поле таблицы, предназначенное для хранения значения первичного ключа другой таблицы с целью организации связи между этими таблицами.

Пусть имеются таблицы A и B. Таблица A содержит поля a, b, c, d, из которых поле a — первичный ключ. Таблица B содержит поля x, y, z. В поле y содержатся значение поля a одной из записей таблицы A. В таком случае поле y в таблице B называется внешним ключом таблицы A.

Внешний ключ в таблице может ссылаться и на саму эту таблицу. В таких случаях говорят о рекурсивном внешнем ключе.

Реляционной базой данных называется набор отношений.

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

Реляционная модель данных (РМД) — логическая модель данных, прикладная теория построения баз данных, которая является приложением к задачам обработки данных таких разделов математики как теории множеств и логика первого порядка.

Для лучшего понимания РМД следует отметить три важных обстоятельства:

модель является логической, то есть отношения являются логическими (абстрактными), а не физическими (хранимыми) структурами;

для реляционных баз данных верен информационный принцип: всё информационное наполнение базы данных представлено одним и только одним способом, а именно — явным заданием значений атрибутов в кортежах отношений; в частности, нет никаких указателей (адресов), связывающих одно значение с другим;

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

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

Операции реляционной алгебры

Переименование

В результате применения операции переименования получаем новое отношение, с измененными именами атрибутов. Синтаксис:

R RENAME Atr1, Atr2, … AS NewAtr1, NewAtr2, …

где

R — отношение

Atr1, Atr2, … — исходные имена атрибутов

NewAtr1, NewAtr2, … — новые имена атрибутов

Объединение

Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих или A, или B, или обоим отношениям. Синтаксис: A UNION B

Пересечение

Отношение с тем же заголовком, что и у отношений A и B, и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям A и B. Синтаксис: A INTERSECT B

Вычитание

Отношение с тем же заголовком, что и у совместимых по типу отношений A и B, и телом, состоящим из кортежей, принадлежащих отношению A и не принадлежащих отношению B. Синтаксис: A MINUS B

Декартово произведение

Отношение (A1, A2, …, Am, B1, B2, …, Bm), заголовок которого является сцеплением заголовков отношений A(A1, A2, …, Am) и B(B1, B2, …, Bm), а тело состоит из кортежей, являющихся сцеплением кортежей отношений A и B:

(a1, a2, …, am, b1, b2, …, bm)

таких, что

(a1, a2, …, am)∈ A,

(b1, b2, …, bm)∈ B.

Синтаксис:A TIMES B

Выборка (ограничение)

Отношение с тем же заголовком, что и у отношения A, и телом, состоящим из кортежей, значения атрибутов которых при подстановке в условие c дают значение ИСТИНА. c представляет собой логическое выражение, в которое могут входить атрибуты отношения A и/или скалярные выражения. Синтаксис:A WHERE c

Проекция Основная статья: Проекция (реляционная алгебра)

Отношение с заголовком (X, Y, …, Z) и телом, содержащим множество кортежей вида (x, y, …, z), таких, для которых в отношении A найдутся кортежи со значением атрибута X равным x, значением атрибута Y равным y, …, значением атрибута Z равным z. При выполнении проекции выделяется «вертикальная» вырезка отношения-операнда с естественным уничтожением потенциально возникающих кортежей-дубликатов. Синтаксис: A[X, Y, …, Z]

или

PROJECT A {x, y, …, z}

Соединение

Операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать. Синтаксис:(A TIMES B) WHERE c

Деление

Отношение с заголовком (X1, X2, …, Xn) и телом, содержащим множество кортежей (x1, x2, …, xn), таких, что для всех кортежей (y1, y2, …, ym) B в отношении A(X1, X2, …, Xn, Y1, Y2, …, Ym) найдется кортеж (x1, x2, …, xn, y1, y2, …, ym). Синтаксис:A DIVIDEBY B

Соседние файлы в предмете [НЕСОРТИРОВАННОЕ]