
- •Теоретико-множественные операции над отношениями.
- •Языки, включаемые в состав субд.
- •Операция соединения, проецирования и деления отношений.
- •9.Концептуальная схема и правила ее построения.
- •10. Логическая и физическая независимость данных
- •Словарь данных и его функции в субд.
- •20. Реляционная алгебра, алгебраические выражения.
Словарь данных и его функции в субд.
Словарь данных, описанный в Словаре вычислений от IBM (IBM Dictionary of Computing) как «центральное хранилище информации о данных, такой как значение, взаимосвязи с другими данными, их иcточник, применение и формат.»[1]Термин может иметь одно из близких по смыслу значений, относясь к базам данных и СУБД:
документ, описывающий базу данных или комплект баз данных
целый компонент СУБД, необходимый для определения ее структуры
часть подпрограммного ПО, расширяющее или подменяющее встроенные словари данных СУБД
Документация словаря данных
Пользователи баз данных и разработчики приложений могут получить выгоду от единого стандартизированного документа словаря данных, который перечисляет организацию, содержимое, соглашения по одной или более баз данных. Это обычно включает в себя имена и описания различных таблиц и полей в каждой базе данных, дополнительные детали такие, как тип и длина каждого элемента данных. Не существует универсального стандарта, описывающего уровень детализации в подобном документе, но есть основное описание метаданных о структуре базы данных, а не о самих данных. Документ словаря данных также может включать в себя дополнительную информацию, описывающую кодирование элементов данных. Одним из преимуществ хорошо спроектированного документа словаря данных является то, что он помогает упорядочить структуру базы данных или большого комплекса распределенных баз данных
12. Определение ключа, типы ключей, описание ключей при описании отношений Потенциальный ключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованиям уникальности и минимальности (несократимости). Уникальность означает, что не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны). Минимальность (несократимость) означает, что в составе потенциального ключа отсутствует меньшее подмножество атрибутов, удовлетворяющее условию уникальности. Иными словами, если из потенциального ключа убрать любой атрибут, он утратит свойство уникальности. Поскольку все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один потенциальный ключ (например, включающий все атрибуты отношения). В отношении может быть одновременно несколько потенциальных ключей. Один из них может быть выбран в качестве первичного ключа отношения, тогда другие потенциальные ключи называют альтернативными ключами Теоретически, все потенциальные ключи равно пригодны в качестве первичного ключа, на практике в качестве первичного обычно выбирается тот из потенциальных ключей, который имеет меньший размер (физического хранения) и/или включает меньшее количество атрибутов. Интеллектуа́льный ключ (англ. — intelligent key) — понятие теории реляционных баз данных, разновидность естественного ключа. Это ключ, который зависит от одного или более полей своей таблицы, и его значение формируется на основе значений этих полей. Вне́шний ключ (англ. foreign key) — понятие теории реляционных баз данных. Неформально выражаясь, внешний ключ представляет собой множество атрибутов некоторой переменной отношения R2, значения которых должны совпадать со значениями некоторого потенциального ключа некоторой переменной отношения R1. Перви́чный ключ (англ. primary key) — в реляционной модели данных один из потенциальных ключей отношения, выбранный в качестве основного ключа (или ключа по умолчанию). Если в отношении имеется единственный потенциальный ключ, он является и первичным ключом. Если потенциальных ключей несколько, один из них выбирается в качестве первичного, а другие называют «альтернативными». С точки зрения теории все потенциальные ключи отношения эквивалентны, то есть обладают одинаковыми свойствами уникальности и минимальности. Однако в качестве первичного обычно выбирается тот из потенциальных ключей, который наиболее удобен для тех или иных практических целей, например для создания внешних ключей в других отношениях либо для создания кластерного индекса. Поэтому в качестве первичного ключа как правило выбирают тот, который имеет наименьший размер (физического хранения) и/или включает наименьшее количество атрибутов. Суррога́тный ключ — понятие теории реляционных баз данных. Это дополнительное служебное поле, добавленное к уже имеющимся информационным полям таблицы, единственное предназначение которого — служить первичным ключом. Значение этого поля не образуется на основе каких-либо других данных из БД, а генерируется искусственно. Суперключ — в реляционной модели данных — подмножество атрибутов отношения, удовлетворяющее требованию уникальности: не существует двух кортежей данного отношения, в которых значения этого подмножества атрибутов совпадают (равны). Суперключ отличается от потенциального ключа тем, что на суперключ не накладывается требование минимальности, или несократимости (это требование означает, что в составе ключа отсутствует меньшее подмножество атрибутов, удовлетворяющее условию уникальности). Вследствие этого в состав суперключа может входить другой, более «компактный» по количеству атрибутов суперключ. Таким образом, потенциальный ключ может быть определён как суперключ, обладающий свойством минимальности (несократимости). Поскольку все кортежи в отношении по определению уникальны, в нём всегда существует хотя бы один суперключ (например, включающий все атрибуты отношения).
13. Виды связей между отношениями (таблицами): Связь работает путем сопоставления данных в ключевых столбцах; обычно это столбцы с одним и тем же именем в обеих таблицах. В большинстве случаев связь сопоставляет первичный ключ одной таблицы, являющийся уникальным идентификатором каждой строки этой таблицы, с записями внешнего ключа другой таблицы. Например продажи книг можно связать с названиями проданных книг и создать связь между столбцом title_id таблицы titles (первичный ключ) и столбцом title_id таблицы sales (внешний ключ). Существует три типа связей между таблицами. Тип создаваемой связи зависит от того, как определены связанные столбцы. Связь «один ко многим» самая распространенная. В этом типе связей у строки таблицы А может быть несколько совпадающих строк таблицы Б, но каждой строке таблицы Б может соответствовать только одна строка из А. Например, между таблицами publishers и titles установлена связь «один ко многим»: каждый издатель публикует много книг, но каждая книга публикуется только у одного издателя. Используйте связь «один ко многим», если только у одного из связанных столбцов есть ограничение первичного ключа или уникальности. Столбец, являющийся первичным ключом в связи «один ко многим», отмечается символом ключа. Столбец, являющийся внешним ключом в связи «один ко многим», отмечается символом бесконечности. Связи «многие ко многим» В связи «многие ко многим» строке таблицы А может сопоставляться несколько строк таблицы Б, и наоборот. Такие связи создаются определением третьей таблицы, которая называется таблицей соединения, чей первичный ключ состоит из внешних ключей А и Б. Например, между таблицами authors и titles связь «многие ко многим» определена через связи «один ко многим» каждой из этих таблиц с таблицей titleauthors. Первичный ключ таблицы titleauthors представляет собой сочетание столбца au_id (первичный ключ таблицы authors) и столбца title_id (первичный ключ таблицы titles). Связи «один к одному» В связи «многие к одному» строке таблицы А может сопоставляться только одна строка таблицы Б, и наоборот. Связь «один к одному» создается, если для обоих связанных ключей определены ограничения первичного ключа или уникальности. Этот тип связи обычно не используется, так как большую часть связанных таким образом данных можно хранить в одной таблице. Связь «один к одному» можно использовать для:
Разделения таблицы со многими столбцами.
Изоляции части таблицы из соображений безопасности.
Хранения кратковременных данных, которые можно легко удалить вместе со всей таблицей.
Хранения данных, которые относятся только к части основной таблицы.
Преобразование иерархической структуры данных в набор отношений. Наиболее общим случаем иерархической структуры является дерево с неограниченным уровнем вложенности и неограниченным количеством потомков. Для хранения такого рода иерархии необходимо добавить в описание сущности дополнительное поле - ссылку на первичный ключ предка. Такой способ организации иерархии является самым распространенным и универсальным. Однако ему присущи следующие недостатки:
Необходимость рекурсивных запросов для получения полного пути от произвольного элемента до корня дерева.
Сложность вычисления уровня вложенности произвольного элемента.
Сложность получения всех (в том числе и не прямых) потомков данного узла. Следующей по степени универсальности является иерархия с неограниченным числом уровней вложенности и конечным числом потомков элемента иерархии. Ограничение количества потомков позволяет хранить данные в следующем виде. * Ссылка на предка * Информация о первом элементе уровня иерархии * Информация о втором элементе уровня иерархии * ... * Информация о n-ном элементе уровня иерархии, где n - количество максимальное количество потомков Ссылка на предка содержит в себе ссылку на запись, хранящую информацию о предыдущем уровне иерархии и смещение (номер столбца) с описанием родителя. Последний из видов иерархии - иерархия с ограниченной вложенностью и ограниченным числом потомков. В данном типе иерархии при определенной организации первичного ключа можно существенно упростить работу с иерархией. Для хранения данного вида иерархии можно использовать ранее описанные структуры иерархий с неограниченной вложенностью и количеством потомков и иерархий с ограниченным количеством уровней и неограниченным числом потомков.
15.Преобразование
сетевой структуры данных в набор
отношений.
Предполагаем,
что вся сетевая МД считается совокупностью
элементов-пар записей владелец - член
, а структура записей предполагается
простой (без агрегатов), без обратных
связей.
Обозначим
через N и R записи и отношения в сетевой
и реляционной БД соответственно.
Проделаем следующие действия.
Для
любого типа записи Ni определяется такое
отношение:
а)
Ri содержит один атрибут для любого
элемента данных Ni ;
б)
если Ni имеет ключ, то ключ Ri соответствует
ключу Ni , иначе ключ Ri соответствует
ключу БД Ni , который появляется в Ri как
явный атрибут.
Для
любой связи Lij , где Ni - запись-владелец,
Nj - запись-член, определить реляционное
ограничение и изменить существующее
отношение так, чтобы:
а)
ключ Ni появился как внешний ключ в Ri
;
б)
ввести ограничения в зависимости от
типа членства.
Пусть
X - внешний ключ (foreign key) FK(Ri ) отношения
Ri в отношении Rj . Это ограничение обозначим
FCij . Ключ X может быть и не определен
(запись сетевой МД передается системе).
Это факт обозначим NFCij .
В
сетевой БД есть команды отключения -
MANDATORY (обязательное уничтожение) и
OPTIONAL (необязательное уничтожение,
передача SYSTEM), а также команды включения
– AUTOMATIC (автоматическое) и MANUAL (ручное,
от SYSTEM).
Рассмотрим
алгоритмы для разных случаев.
16.
Операция соединения и эквисоединения.
Операция
соединения (СУБД) - реализация в конкретной
СУБД операции соединения реляционной
алгебры.
Исходными
данными для операции являются два
отношения (таблицы) и описание условия
соединения. Результатом операции
является отношение (таблица), получаемая
как декартово произведение исходных
отношений, ограниченная условием
соединения.
Важный
частный случай соединения - эквисоединение.
Операция соединения называется операцией
эквисоединения, если условие соединения
имеет вид (a = b), где a и b - атрибуты разных
операндов соединения. Этот случай важен
потому, что он часто встречается на
практике, и для него существуют эффективные
алгоритмы реализации.
17.
Три уровня абстракции данных в
информационных структурах.
ИЛИ
Проектирование
баз данных — процесс создания схемы
базы данных и определения необходимых
ограничений целостности.
Концептуальное
(инфологическое) проектирование —
построение семантической модели
предметной области, то есть информационной
модели наиболее высокого уровня
абстракции. Такая модель создаётся без
ориентации на какую-либо конкретную
СУБД и модель данных. Чаще всего
концептуальная модель базы данных
включает в себя:
-
описание информационных объектов, или
понятий предметной области и связей
между ними.
-
описание ограничений целостности, т.е.
требований к допустимым значениям
данных и к связям между ними.
Логическое
(даталогическое) проектирование —
создание схемы базы данных на основе
конкретной модели данных, например,
реляционной модели данных. Для реляционной
модели данных даталогическая модель —
набор схем отношений, обычно с указанием
первичных ключей, а также «связей» между
отношениями, представляющих собой
внешние ключи.
Физическое
проектирование —
создание схемы базы данных для конкретной
СУБД. Специфика конкретной СУБД может
включать в себя ограничения на именование
объектов базы данных, ограничения на
поддерживаемые типы данных и т.п. Кроме
того, специфика конкретной СУБД при
физическом проектировании включает
выбор решений, связанных с физической
средой хранения данных (выбор методов
управления дисковой памятью, разделение
БД по файлам и устройствам, методов
доступа к данным), создание индексов и
т.д.
18.
Ключи – первичные и вторичные, внешние
ключи.
Перви́чный
ключ —
в реляционной модели данных один из
потенциальных ключей отношения, выбранный
в качестве основного ключа. Если в
отношении имеется единственный
потенциальный ключ, он является и
первичным ключом. Если потенциальных
ключей несколько, один из них выбирается
в качестве первичного, а другие называют
«альтернативными». Если первичный ключ
состоит из единственного атрибута, его
называют простым ключом. Если первичный
ключ состоит из двух и более атрибутов,
его называют составным ключом. Первичный
ключ может состоять из информационных
полей таблицы (то есть полей, содержащих
полезную информацию об описываемых
объектах). Такой первичный ключ называют
естественным ключом. На практике,
использование естественных ключей
наталкивается на определённые сложности:
низкая эффективность, необходимость
каскадных изменений, несоответствие
реальности, повторяемость. Вследствие
этих и других соображений в практике
проектирования БД чаще используют т.
н. синтетические (суррогатные) ключи —
искусственно созданные технические
ключевые поля, не несущие информации
об объектах.
Допустим,
что R2 —
переменная отношения. В таком случае внешним
ключом FK
в R2 является
множество атрибутов R2,
такое что выполняются следующие
требования:
1)
существует переменная отношения R1 (R1 и
R2 не
обязательно должны быть разными) с
потенциальным ключом ПК;
2)
существует возможность переименования
некоторого подмножества атрибутов FK,
такое что FK преобразуется (скажем) в
FK’, a FK’ и ПК относятся к одному и тому
же типу (кортежу);
3)
в любое время каждое значение FK в текущем
значении R2 приводит
к получению значения для FK’, которое
идентично значению ПК в некотором
кортеже в текущем значении R1.
Поддержка
внешних ключей также называется
соблюдением ссылочной целостности.
Реляционные СУБД поддерживают
автоматический контроль ссылочной
целостности.
19.
Безопасность и секретность
данных.
Данные
также подвергаются шифрованию. Различают
необратимое шифрование, когда данные,
подвергшиеся шифрованию, невозможно
расшифровать, и так называемое симметричное
шифрование – когда данные шифруются с
использованием секретного ключа, обладая
которым можно произвести дешифровку
данных.