Базы данных
Лекция 4. Реляционная модель
4. 1 Принципы n n n независимость данных на логическом и физическом уровнях – стремление к независимости; создание структурно простой модели – стремление к коммуникабельности; использование концепции языков высокого уровня для описания операций над порциями информации – стремление к обработке множеств.
Каждая единица информации в реляционных БД (РБД) ассоциируется с уникальной тройкой: n именем отношения, n значением ключа, n именем атрибута. При таком подходе система должна сама (а) определить, где следует поместить фрагмент данных, (б) выбрать путь доступа при поиске.
4. 2 Модель модель данных – это комбинация n типов структур данных, n операторов или правил вывода, применимых к правильным типам данных, n общих правил целостности, который определяет множество непротиворечивых состояний БД и множество изменений ее состояний.
Структурная часть реляционной модели состоит из следующих компонент: n доменов – совокупности однотипных значений данных; n отношений неопределенного порядка , концептуально представленных таблицами; n атрибутов – атомарных данных, определяющих столбцы таблицы; n кортежей – строк таблицы, n потенциальных (возможных) ключей – атрибутов, однозначно определяющих кортеж в отношении; n первичных ключей – для отношения это один из возможных ключей.
n Обрабатывающая часть состоит из операторов выбора, проекции, соединения и т. п. , которые преобразуют отношения в отношения.
n Часть, относящаяся к целостности, состоит из правил: правила целостности на уровне объекта и правила целостности ссылок.
СУБД можно отнести к реляционным по следующим критериям n СУБД должна поддерживать таблицы без видимых пользователю навигационных связей; n язык манипулирования данными должен обеспечивать минимальную возможность реляционной обработки, то есть включать операторы выбора, проекции и соединения.
4. 3 Уточнения n Определение. Пусть существует n доменов D 1, …, Dn. Отношение R представляется как подмножество D 1 D 2 … Dn, т. е. подмножество упорядоченных n-ок (d 1, d 2, …, dn) – кортежей. Домен Di представлен i-м элементом. Вместо упорядоченности чаще используют уникальные имена.
n Определение. Отношения нормализованы, если каждый его атрибут атомарен, то есть, не заменим другим отношением.
n Определение. В отношении могут быть несколько одиночных или составных атрибутов, однозначно идентифицирующих кортеж. Это возможные ключи. Один из них объявляется первичным
свойства отношений: n Нормализованные отношения представляются в виде табличной структуры. n Упорядоченность кортежей теоретически несущественна. n Все кортежи различны.
Определение. Реляционная БД – совокупность изменяющихся во времени нормализованных отношений, которые могут быть связаны через общие домены.
n n Основные достоинства реляционной модели – теоретическое обоснование, простота определения данных и их реорганизации. Недостаток – проблемы с организацией связи. Он компенсируется различной степенью нормализации, однако явная связь (сеть, иерархия) чаще более эффективна по времени
n Реляционная база данных. База данных, которая организована и доступна в соответствии с реляционными отношениями между ее таблицами.
n n Отношение. Связь между таблицами, позволяющая организовывать доступ к содержимому выбранной в данный момент таблицы и к другим данным. Отношение "многие-ко-многим". Отношение между таблицами, при котором для записей каждой из таблиц имеется несколько соответствующих записей в другой таблице.
n n Отношение "один-к-одному". Отношение между таблицами, при котором каждой записи первичной таблицы может быть сопоставлена только одна запись в связанной таблице. Отношение "один-ко-многим". Отношение между таблицами, при котором каждой записи первичной таблицы может быть сопоставлено несколько записей другой таблицы (каждое значение первичного ключа может фигурировать несколько раз в связанной таблице
Лекция 5. Методы хранения данных и доступа к ним
n n Определение. Эффективность доступа – отношение числа логических обращений к числу физических при выборке элемента данных. Определение. Эффективность хранения – отношение числа информационных байтов к числу физических при хранении.
5. 1 Последовательный метод Предполагается физическое расположение записей в логической последовательности. Для выборки записи необходимо просмотреть все предшествующие ей. ЭД – линейно зависит от длины файла ЭХ - высокая
5. 2 Прямой метод Для прямого метода необходимо взаимно однозначное соответствие между ключом и адресом записи. ЭД – всегда 1 ЭХ – зависит от плотности размещения ключей
5. 3 Индексные методы В основе лежит создание вспомогательной структуры – индекса, содержащего ключи поиска и ссылки на физические адреса данных. Термин «ключ поиска» не обязательно подразумевает его уникальность, это просто атрибут (комбинация атрибутов), который должен удовлетворять критерию поиска. Используются понятия первичного (уникального) ключа, и вторичного, который не обязательно должен быть уникальным.
Ни эффективность доступа, ни эффективность хранения не достигают единицы, но производительность системы в целом может стать достаточно высокой. Для ее увеличения обычно требуют, чтобы индекс целиком размещался в оперативной памяти.
Различаются первичные и вторичные индексы в зависимости от вида ключа поиска. Если поиск и выборка производится по комбинации атрибутов (индексному выражению), соответствующий индекс называется составным.
Индекс, построенный на иерархии ссылок, называется многоуровневым. Индекс, который содержит ссылки не на все записи, а на некоторый диапазон, называется неплотным. Плотный индекс содержит ссылки на все записи. Элемент индекса часто называют статьей.
5. 3. 1 Индекснопоследовательный метод Информационный файл размещается по блокам одинакового размера, причем начальная часть блока заполнена информационными записями, а конечная часть свободна. В качестве ключа индекса блока выбирается значение ключа его первой или последней записи, индексы группируются в индексный файл, который упорядочен по значению ключа. Таким образом, индекс ссылается на группу записей (блок), которые расположены в логическом порядке(используется неплотный индекс).
ЭД – зависит от размера индексов и числа уровней их иерархии. Кроме того, на нее влияет размер блоков, наличие в них свободных мест, наличие областей переполнения. n ЭХ - в основном зависит от объема свободного места в блоках и от величины индексов.
1 Артюхов Бабаев Беляев 1 Мурадян 2 Яковлева 3 2 Днепров Мурадян 3 Назаров Селин Яковлева
5. 3. 2 Индекснопроизвольный метод В этом случае число статей индекса равно количеству информационных записей. Эд зависит от способа поиска статьи индекса, то есть от способа его организации. Кроме того, на него могут оказывать влияние некоторые свойства ключей (случайное расположение в файле, повторяемость). Эх зависит от размера индекса.
Артюхов Бабаев Беляев Днепров Мурадян Назаров Селин Яковлева 3 1 4 5 8 2 7 6 Бабаев Назаров Артюхов Беляев Днепров Селин Яковлев а Мурадян
5. 3. 3 Инвертированные списки Инвертированный индекс группируется по именам полей, которые в свою очередь группируются по значениям. При поиске записи с заданным значением ключа выбирается нужный индекс, в нем каким-то способом (например, индекснопроизвольным) выбирается статья с этим значением, затем выбирается все список ссылок на записи с искомым значением. Поиск по комбинации значений полей сводится к выбору соответствующих списков и их пересечению (операция И) или объединению (операция ИЛИ).
n n Достоинства метода – независимость от объема файла при выборе данных по произвольным значениям ключа, отбор списка записей по сложным условиям без обращения к файлу. Недостаток – большие затраты времени на создание и обновление инвертированных индексов, причем, время зависит от объема данных.
n n Эффективность доступа зависит от эффективности поиска в индексе, но в любом случае она ниже 0, 5 (доступ к индексу и доступ к записи файла). Для повышения эффективности следует размещать индексы в оперативной памяти. Эффективность хранения зависит от метода хранения индекса, от числа инвертируемых полей и от множества значений каждого вторичного ключа (от длины инвертированного списка).
Запись 1 6 Оценка 3 4 5 список 1 2 3 Запись 3 5 7 Запись 2 4 8 Студент Оценка Бабаев Назаров Артюхов Беляев Днепров Селин Яковлева Мурадян 3 5 4 3 4 5
Лекция 6. Реляционная алгебра
6. 1 Обзор реляционной алгебры Фактическим стандартом доступа к реляционным данным стал язык SQL (Structured Query Language - язык структурированных запросов). Он представляет собой смесь операторов реляционной алгебры и выражений реляционного исчисления, использующий синтаксис, близкий к фразам английского языка и расширенный дополнительными возможностями.
6. 2 Замкнутость реляционной алгебры Реляционная алгебра представляет собой набор операторов, использующих отношения в качестве аргументов, и возвращающие отношения в качестве результата.
Реляционная алгебра является замкнутой, т. к. в качестве аргументов в реляционные операторы можно подставлять другие реляционные операторы, подходящие по типу:
Где R- имя нового отношения, -отношения, участвующие в реляционном выражении, - отношение, которое участвует в реляционном выражении(может быть неименованным реально в базе не существует, а только вычисляется в момент вычисления реляционного оператора)
Теоретико-множественные операторы: n Объединение n Пересечение n Вычитание n Декартово произведение Специальные реляционные операторы: n Выборка n Проекция n Соединение n Деление
6. 3 Отношения, совместимые по типу Определение Будем называть отношения совместимыми по типу, если они имеют n n идентичные заголовки, а именно, Отношения имеют одно и то же множество имен атрибутов, т. е. для любого атрибута в одном отношении найдется атрибут с таким же наименованием в другом отношении, Атрибуты с одинаковыми именами определены на одних и тех же доменах.
6. 4 Оператор переименования атрибутов n где - отношение, - исходные имена атрибутов, - новые имена атрибутов. В результате применения оператора переименования атрибутов получаем новое отношение, с измененными именами атрибутов.
Следующий оператор возвращает неименованное отношение, в котором атрибут переименован в :
6. 5 Теоретикомножественные операторы
6. 5. 1 Объединение Определение Объединением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих или , или обоим отношениям.
Замечание. Объединение, как и любое отношение, не может содержать одинаковых кортежей. Поэтому, если некоторый кортеж входит и в отношение , и отношение , то в объединение он входит один раз.
А В
Замечание. Как видно из приведенного примера, потенциальные ключи, которые были в отношениях и не наследуются объединением этих отношений.
6. 5. 2 Пересечение Определение Пересечением двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих одновременно обоим отношениям и.
А В
Замечание. Вообще, никакие реляционные операторы не передают результатирующему отношению никаких данных о потенциальных ключах. Потенциальный ключ - понятие, отражающее различимость объектов предметной области. Наличие потенциальных ключей не выводится из структуры отношения, а явно задается для каждого отношения, исходя из его смысла. Реляционные же операторы являются формальными операциями над отношениями и выполняются одинаково, независимо от смысла данных, содержащихся в отношениях. Поэтому, реляционные операторы ничего не могут "знать" о смысле данных. Трактовка результата реляционных операций - дело пользователя.
6. 5. 3 Вычитание Определение Вычитанием двух совместимых по типу отношений и называется отношение с тем же заголовком, что и у отношений и , и телом, состоящим из кортежей, принадлежащих отношению и не принадлежащих отношению.
А В
6. 5. 4 Декартово произведение Определение Декартовым произведением двух отношений и называется отношение, заголовок которого является сцеплением заголовков отношений и : , а тело состоит из кортежей, являющихся сцеплением кортежей отношений и : таких, что
Замечание. Мощность произведения равна произведению мощностей отношений и , т. к. каждый кортеж отношения соединяется с каждым кортежем отношения. Замечание. Если в отношения и имеются атрибуты с одинаковыми наименованиями, то перед выполнением операции декартового произведения такие атрибуты необходимо переименовать. Замечание. Перемножать можно любые два отношения, совместимость по типу при этом не требуется.
n Замечание. Сама по себе операция декартового произведения не очень важна, т. к. она не дает никакой новой информации, по сравнению с исходными отношениями. Для реальных запросов эта операция почти никогда не используется. Однако операция декартового произведения важна для выполнения специальных реляционных операций, о которых речь пойдет ниже.
6. 6 Специальные реляционные операторы
6. 6. 1 Выборка (ограничение, селекция) Определение. Выборкой (ограничением, селекцией) на отношении с условием называется отношение с тем же заголовком, что и у отношения , и телом, состоящем из кортежей, значения атрибутов которых при подстановке в условие дают значение ИСТИНА. представляет собой логическое выражение, в которое могут входить атрибуты отношения и (или) скалярные выражения.
В простейшем случае условие имеет вид , где - один из операторов сравнения ( и т. д. ), а и - атрибуты отношения или скалярные значения. Такие выборки называются -выборки (тэта-выборки) или -ограничения, -селекции.
Смысл операции выборки очевиден выбрать кортежи отношения, удовлетворяющие некоторому условию. Таким образом, операция выборки дает "горизонтальный срез" отношения по некоторому условию.
6. 6. 2 Проекция Определение Проекцией отношения по атрибутам , где каждый из атрибутов принадлежит отношению , называется отношение с заголовком и телом, содержащим множество кортежей вида , таких, для которых в отношении найдутся кортежи со значением атрибута равным , …, значением атрибута равным.
Замечание. Операция проекции дает "вертикальный срез" отношения, в котором удалены все возникшие при таком срезе дубликаты кортежей.
Перечисленные выше реляционные операторы (объединение, вычитание, декартово произведение, выборка, проекция) являются примитивными операторами - их нельзя выразить друг через друга.
6. 6. 3 Соединение n n Общая операция соединения -соединение (тэта-соединение) Экви-соединение Естественное соединение
6. 6. 3. 1 Общая операция соединения Соединением отношений условию и по называется отношение Где - это логическое выражение , в которое могут входить атрибуты и или скалярные выражения.
Таким образом, операция соединения есть результат последовательного применения операций декартового произведения и выборки. Если в отношениях и имеются атрибуты с одинаковыми наименованиями, то перед выполнением соединения такие атрибуты необходимо переименовать.
6. 6. 3. 2 Тэта-соединение Определение Пусть отношение содержит атрибут , а - один из операторов сравнения ( и т. д. ). Тогда -соединением отношения по атрибуту с отношением по атрибуту называют отношение
6. 6. 3. 3 Эквисоединение Частным случаем -соединения является случай, когда есть просто равенство
P PD D
Недостатком эквисоединения является то, что если соединение происходит по атрибутам с одинаковыми наименованиями, то в результирующем отношении появляется два атрибута с одинаковыми значениями
6. 6. 3. 4 Естественное соединение Определение Пусть даны отношения и , имеющие одинаковые атрибуты (т. е. атрибуты с одинаковыми именами и определенные на одинаковых доменах).
Тогда естественным соединением отношений и называется отношение с заголовком и телом, содержащим множество кортежей , таких, что и.
Замечание. Соединение производится по всем одинаковым атрибутам.
Замечание. Естественное соединение эквивалентно следующей последовательности реляционных операций: n Переименовать одинаковые атрибуты в отношениях n Выполнить декартово произведение отношений n Выполнить выборку по совпадающим значениям атрибутов, имевших одинаковые имена n Выполнить проекцию, удалив повторяющиеся атрибуты n Переименовать атрибуты, вернув им первоначальные имена
Замечание. Можно выполнять последовательное естественное соединение нескольких отношений. Естественное соединение обладает свойством ассоциативности, т. е. поэтому такие соединения можно записывать, опуская скобки:
6. 6. 3 Деление Определение Пусть даны отношения причем атрибуты двух отношений. и , - общие для
Делением отношений на называется отношение с заголовком и телом, содержащим множество кортежей , таких, что для всех кортежей в отношении найдется кортеж.
P PD D