
- •Лекции по курсу «Базы данных» для студентов факультета вычислительной математики и кибернетики кгу
- •Системы управления базами данных, их состав и назначение. Файловые и клиент-серверные субд.
- •2. Типы базы данных. Реляционные, иерархические, сетевые, объектно-ориентированные базы данных.
- •Основные понятия теории баз данных. Поиск данных и пользовательские запросы.
- •4. Проектирование предметной области. Объекты и атрибуты предметной области. Связи между объектами типа 1:1, 1:m, m:n.
- •Первичные ключи и индексы
- •Реляционные отношения между таблицами Отношение один-ко-многим
- •Отношение один-к-одному
- •Отношение многие-ко-многим
- •Оператор переименования атрибутов.
- •Теоретико-множественные операторы:
- •Объединение
- •Пересечение
- •3. Вычитание
- •4. Декартово произведение
- •Специальные реляционные операторы
- •5. Выборка (ограничение, селекция)
- •Проекция
- •6. Соединение
- •7. Деление
- •Примеры использования реляционных операторов
- •Кросс-таблицы.
- •Ключи отношений. Их роль и использование в базах данных.
- •Связи между отношениями. Внешние ключи. Проблема целостности внешних ключей.
- •Функциональные зависимости. Аксиоматическая система функциональных зависимостей. Теорема полноты.
- •1. Аксиоматика функциональных зависимостей Армстронга.
- •Покрытия функциональных зависимостей. Структура неизбыточных покрытий.
- •Нормальные формы баз данных. Первая, вторая и третья нормальные формы. Нормальная форма Бойса- Кодда.
- •Вторая Нормальная Форма.
- •Отношение сотрудники_отделы
- •Отношение проекты
- •Отношение задания
- •3 Нормальная форма.
- •Отношение сотрудники
- •Отношение отделы
- •Нормализация баз данных. Алгоритм приведения к 3-й нормальной форме с помощью кольцевых зависимостей.
- •Метод «Entity-Relationship». Проектирование структуры баз данных с помощью er-диаграмм. Пример.
- •Физическая организация баз данных.
- •2. Блочный поиск.
- •3. Двоичный поиск.
- •4. Поиск в индексно-последовательном файле.
- •6. Поиск в сбалансированном дереве.
- •7. Перемешивание.
- •8. Комбинация вышеперечисленных способов.
- •Организация баз данных с помощью хеширования. Влияние на эффективность хеширования размеров блока, плотности заполнения и выбора алгоритма хеширования.
- •2. Деление.
- •3. Сдвиг разрядов.
- •4. Преобразование системы исчисления.
- •Язык sql. Команды create, select, insert, alter, update, drop.
- •Простая выборка
- •Использование операторов сравнения
- •Использование in
- •Использование like
- •Выборка с упорядочением
- •Применение агрегатных функций sum, max, min, average в предложении select.
- •Функции без использования фразы group by
- •Фраза group by
- •Использование фразы having
- •19. Организация сложных запросов с помощью команды select.
- •Декартово произведение таблиц
- •Соединение таблицы со своей копией
- •Простые вложенные подзапросы
- •Объединение (union)
- •Организация клиент–серверных бд. Модели технологий «клиент–сервер».
- •Технологии доступа к данным. Система драйверов odbc. Источники данных. Создание dsn-файла.
- •Модели безопасность данных. Мандатный и дискреционный подход к обеспечению безопасности данных. Передача и отзыв привилегий пользователей с помощью предложения grant.
- •26.Безопасность баз данных. Средства защиты бд access.
- •31. Использование внешних данных в Access. Создание страниц доступа к данным и загрузка внешних баз данных. Выполнение sql-запросов к серверу ms sql Server.
- •I. Создание html-страницы доступа к данным
- •II. Загрузка в Access базы данных c сервера и работа с ней.
- •III. Выполнение в Access запросов к внешним таблицам, хранящимся на ms sql Server.
- •Совместная работа Access и ms sql Server, работа с удаленными данными на сервере. Использование утилиты Query Analyzer.
- •Работа с внешними данными с помощью технологии odbc
- •Команды Transact-sql
- •Создание представлений
- •Создание триггеров
- •37. Raid массивы и уровни их организации.
Покрытия функциональных зависимостей. Структура неизбыточных покрытий.
Рассмотрим некоторые
методы представления множеств
F-зависимостей. Например, любая
F-зависимость, выводимая
из множеств
,
также выводима из множества
,
поскольку все F-зависимости
из F могут быть выведены
из F-зависимостей,
принадлежащих G. По какой
причине предпочтительнее более короткие
представления?
Меньшее множество F-зависимостей гарантирует более быстрое исполнение алгоритмов. Далее приводятся другие алгоритмы, для которых временная сложность также зависит от числа F-зависимостей на входе.
В системах баз данных F-зависимости способствуют обеспечению согласованности и целостности баз данных. Меньшее число F-зависимостей означает меньший объем используемой памяти и меньшее количество проверок при модификации баз данных.
Определение 1.
Два множества F-зависимостей
F и G над
схемой R эквивалентны,
,
если
.
Если
,
то F есть покрытие G.
В определении для покрытия нет упоминания об относительных размерах F и G. Однако далее рассматриваются покрытия частного вида, в которых F не превосходит G по числу F-зависимостей.
Если
,
то, поскольку
,
для каждой зависимости
из
следует
.
В частности, для
каждой F-зависимости
из
G имеет место
.
Обобщим понятие выводимости на множество
F-зависимостей, записав
это условие в виде
.
Поскольку определение эквивалентности
симметрично относительно F
и G, из
следует
.
Так как
включает каждую F-зависимость
,
такую, что
,
то из
следует
.
Применяя операцию замыкания к обеим
частям неравенства, получаем
.
Аналогично
влечет
за собой
.
Таким образом, доказана
Лемма 1. Для заданных множеств F-зависимостей F и G над схемой R тождество имеет место тогда и только тогда, когда и .
Пример 1. Множества
и
эквивалентны. Множество F
не эквивалентно множеству G
,
поскольку соотношение G
|= CD
E не выполняется.
Лемма 1 содержит простой способ проверки эквивалентности двух множеств F-зависимостей. Функция DERIVES проверяет условие .
Алгоритм 1. DERIVES
Вход: два множества F-зависимостей F и G.
Выход: истина, если ; ложь в противном случае.
DERIVES (F,G)
begin
v := истина
for каждая F-зависимость из G do
v:=v and MEMBER(F, );
return (v)
end.
Функция EQUIV алгоритма 2 проверяет эквивалентность двух множеств F-зависимостей.
Алгоритм 2. EQUIV
Вход: два множества F-зависимостей F и G.
Выход: истина , если; ложь в противном случае.
EQUIV (F,G)
begin
v:= DERIVES(F,G) and DERIVES(G,F);
return(v)
end.
Неизбыточные покрытия.
Определение.
Множество F-зависимостей
F неизбыточно, если у
него нет такого собственного подмножества
F,
что F
F.
Если такое множество F
существует, то F избыточно.
F является неизбыточным
покрытием G, если F
есть покрытие G и F
неизбыточно.
Пример. Пусть
.
Множество
эквивалентно G, но избыточно,
потому что F’=
является покрытием G.
Множество F’ представляет
собой неизбыточное покрытие.
По равносильной
характеристике неизбыточности множество
F неизбыточно, если в нем
не существует F-зависимости
,
такой, что
.
Назовем F-зависимость из
F избыточной в F,
если
.
Это свойство положено в основу алгоритма
5.3 проверки избыточности F.
Алгоритм 3. REDUNDANT
Вход: Множество F-зависимостей F.
Выход: истина, если F избыточно; ложь в противном случае.
REDUNDANT (F)
begin
v:=ложь
for каждая F-зависимость из F do
if
MEMBER(
)
then
v:=истина;
return(v)
end.
Для любого множества
F-зависимостей G
существует некоторое подмножество F,
такое, что F является
неизбыточным покрытием G.
Если G неизбыточно, то
F=G. Если G
избыточно, то в G существует
F-зависимость
,
которая является избыточной в G
. Пусть
.
Заметим, что
.
Если G’ избыточно, то в
G’ существует избыточная
F-зависимость
.
Пусть G’’=G’-{
};
(G’’)
.
Процесс удаления избыточных F-зависимостей,
естественно, должен закончиться. В
результате для G образуется
неизбыточное покрытие F.
Этот процесс является основой алгоритма
5.4 NONREDUN, который для
множества F-зависимостей
вычисляет неизбыточное покрытие.
Алгоритм 4. NONREDUN
Вход: Множество F-зависимостей G.
Выход: неизбыточное покрытие G.
NONREDUN(G)
begin
F:=G;
for каждая F-зависимость из G do
if MEMBER ( ) then
F:=F-{ };
return (F)
end.
Пример
3. Пусть
.
Результатом работы NONREDUN(G)
является множество
.
Если G представлено в
порядке
,
результатом NONREDUN(G)
является
.
Из примера 3 видно,
что множество F-зависимостей
G может иметь более одного
неизбыточного покрытия. Могут также
существовать неизбыточные покрытия G,
не содержащиеся в G. В
примере 3 таким неизбыточным покрытием
G служит множество F=
.
Структура неизбыточных покрытий.
Определение Множества
называются эквивалентными относительно
,
если
и
(обозначение
).
Теорема
(о структуре неизбыточного покрытия).
Если
-неизбыточные покрытия, то
относительно
.
Доказательство.
.
Строим
и для построения рассмотрим формулы
.
Если
тогда
.
.
Пусть
.
Рассмотрим вывод
над
.
Существует формула
:в её выводе используется
.
Действительно, если бы её не существовало,
то каждую формулу из
можно бы было получить из
,
т.к.
,
то
,
то есть
- избыточно. Приходим к противоречию.
Пусть в выводе
используется
.
Тогда
.
Имеем
,
откуда по правилу проекции
.
Обратно
- аксиома.
,
т.к.
.