Автор: Пользователь скрыл имя, 28 Февраля 2012 в 19:04, курс лекций
В самом общем смысле база данных - это набор записей и файлов, организованных специальным образом. В компьютере, например, можно хранить фамилии и адреса друзей или клиентов. Один из типов баз данных - это документы, набранные с помощью текстовых редакторов и сгруппированные по темам. Другой тип - файлы электронных таблиц, объединяемые в группы по характеру их использования.
Введение 2
ЧТО ТАКОЕ БАЗЫ ДАННЫХ? (СЛАЙД №1) 2
ПЕРВЫЕ МОДЕЛИ ДАННЫХ 2
СИСТЕМЫ УПРАВЛЕНИЯ ФАЙЛАМИ. (СЛАЙД №2) 2
ИЕРАРХИЧЕСКИЕ СУБД (СЛАЙД №3) 2
СЕТЕВЫЕ БАЗЫ ДАННЫХ (СЛАЙД №5) 3
РЕЛЯЦИОННАЯ МОДЕЛЬ ДАННЫХ 4
Элементы теории множеств 6
МНОЖЕСТВА (СЛАЙД №11) 6
Операции над множествами (Слайд №13) 7
Декартово произведение множеств (Слайд №14) 7
ОТНОШЕНИЕ (СЛАЙД №16) 7
Примеры отношений 8
Бинарные отношения (отношения степени 2) 8
Отношение эквивалентности (Слайд №17) 8
Отношения порядка 9
Функциональное отношение 10
Еще пример бинарного отношения(Слайд №18) 10
n-арные отношения (отношения степени n) (Слайд №21) 12
Транзитивное замыкание отношений (Слайд №22) 14
ВЫВОДЫ 15
Наиболее простая структура данных, используемая в математике, имеет место в случае, когда между отдельными изолированными данными отсутствуют какие-либо взаимосвязи. Совокупность таких данных представляет собой множество. Понятие множества является неопределяемым понятием. Множество не обладает внутренней структурой. Множество можно представить себе как совокупность элементов, обладающих некоторым общим свойством. Для того чтобы некоторую совокупность элементов можно было назвать множеством, необходимо, чтобы выполнялись следующие условия:
Должно существовать правило, позволяющее определить, принадлежит ли указанный элемент данной совокупности.
Должно существовать правило, позволяющее отличать элементы друг от друга. (Это, в частности, означает, что множество не может содержать двух одинаковых элементов).
(Слайд №12)
Множества обычно обозначаются заглавными латинскими буквами. Если элемент принадлежит множеству , то это обозначается:
Если каждый элемент множества является также и элементом множества , то говорят, что множество является подмножеством множества :
Подмножество множества называется собственным подмножеством, если
Используя понятие множества можно построить более сложные и содержательные объекты.
Основными операциями над множествами являются объединение, пересечение и разность.
Определение 1. Объединением двух множеств называется новое множество
Определение 2. Пересечением двух множеств называется новое множество
Определение 3. Разностью (дополнением) двух множеств называется новое множество
Одним из способов конструирования новых объектов из уже имеющихся множеств является декартово произведение множеств.
Пусть и - множества. Выражение вида , где и , называется упорядоченной парой. Равенство вида означает, что и . В общем случае, можно рассматривать упорядоченную n-ку из элементов . Упорядоченные n-ки иначе называют наборы или кортежи.
(Слайд №15)
Определение 4. Декартовым (прямым) произведением множеств называется множество упорядоченных n-ок (наборов, кортежей) вида
Определение 5. Степенью декартового произведения называется число множеств n, входящих в это декартово произведение.
Замечание. Если все множества одинаковы, то используют обозначение
.
Определение 6. Подмножество декартового произведения множеств называется отношением степени n (n-арным отношением).
Определение 7. Мощность множества кортежей, входящих в отношение , называют мощностью отношения .
Замечание. Понятие отношения является очень важным не только с математической точки зрения. Понятие отношения фактически лежит в основе всей реляционной теории баз данных. Как будет показано ниже, отношения являются математическим аналогом таблиц. Сам термин "реляционное представление данных", впервые введенный Коддом [43], происходит от термина relation, понимаемом именно в смысле этого определения.
Т.к. любое множество можно рассматривать как декартовое произведение степени 1, то любое подмножество, как и любое множество, можно считать отношением степени 1. Это не очень интересный пример, свидетельствующий лишь о том, что термины "отношение степени 1" и "подмножество" являются синонимами. Нетривиальность понятия отношения проявляется, когда степень отношения больше 1. Ключевыми здесь являются два момента:
Во-первых, все элементы отношения есть однотипные кортежи. Однотипность кортежей позволяет считать их аналогами строк в простой таблице, т.е. в такой таблице, в которой все строки состоят из одинакового числа ячеек и в соответствующих ячейках содержатся одинаковые типы данных. Например, отношение, состоящее из трех следующих кортежей {(1, "Иванов", 1000), (2, "Петров", 2000), (3, "Сидоров", 3000)} можно считать таблицей, содержащей данные о сотрудниках и их зарплатах. Такая таблица будет иметь три строки и три колонки, причем в каждой колонке содержатся данные одного типа.
В противоположность этому рассмотрим множество {(1), (1, 2), (1, 2, 3)}, состоящее из разнотипных числовых кортежей. Это множество не является отношением ни в , ни в , ни в . Из кортежей, входящих в это множество нельзя составить простую таблицу. Правда, можно считать это множество отношением степени 1 на множестве всех возможных числовых кортежей всех возможных степеней , но такая трактовка ничего нового, по сравнению с понятием подмножества, не дает.
Во-вторых. За исключением крайнего случая, когда отношение есть само декартово произведение , отношение включает в себя не все возможные кортежи из декартового произведения. Это значит, что для каждого отношения имеется критерий, позволяющий определить, какие кортежи входят в отношение, а какие - нет. Этот критерий, по существу, определяет для нас смысл (семантику) отношения.
Действительно, каждому отношению можно поставить в соответствие некоторое логическое выражение , зависящее от n параметров (n-местный предикат) и определяющее, будет ли кортеж принадлежать отношению . Это логическое выражение называют предикатом отношения . Более точно, кортеж принадлежит отношению тогда и только тогда, когда предикат этого отношения принимает значение "истина". В свою очередь, каждый n-местный предикат задает некоторое n-арное отношение. Таким образом, существует взаимно однозначное соответствие между n-арными отношениями и n-местными предикатами.
Если это не вызывает путаницы, удобно и отношение, и его предикат обозначать одной и той же буквой. Например, отношение имеет предикат .
В математике большую роль играют бинарные отношения, т.е. отношения, заданные на декартовом произведении двух множеств .
Определение 8. Отношение на множестве называется отношением эквивалентности, если оно обладает следующими свойствами:
для всех (рефлексивность)
Если , то (симметричность)
Если и , то (транзитивность)
Обычно отношение эквивалентности обозначают знаком или и говорят, что оно (отношение) задано на множестве (а не на ). Условия 1-3 в таких обозначениях выглядят более естественно:
для всех (рефлексивность)
Если , то (симметричность)
Если и , то (транзитивность)
Легко доказывается, что если на множестве задано отношение эквивалентности, то множество разбивается на взаимно непересекающиеся подмножества, состоящие из эквивалентных друг другу элементов (классы эквивалентности).
Пример 1. Рассмотрим на множестве вещественных чисел отношение, заданное просто равенством чисел. Предикат такого отношения:
, или просто
Условия 1-3, очевидно, выполняются, поэтому данное отношение является отношением эквивалентности. Каждый класс эквивалентности этого отношения состоит из одного числа.
Пример 2. Рассмотрим более сложное отношение эквивалентности. На множестве целых чисел зададим отношение "равенство по модулю n" следующим образом: два числа и равны по модулю n, если их остатки при делении на n равны. Например, по модулю 5 равны числа 2, 7, 12 и т.д.
Условия 1-3 легко проверяются, поэтому равенство по модулю является отношением эквивалентности. Предикат этого отношения имеет вид:
Классы эквивалентности этого отношения состоят из чисел, дающих при делении на n одинаковые остатки. Таких классов ровно n:
[0] = {0, n, 2n, …}
[1] = {1, n+1, 2n+1, …}
…
[n-1] = {n-1, n+n-1, 2n+n-1, …}
Определение 9. Отношение на множестве называется отношением порядка, если оно обладает следующими свойствами:
для всех (рефлексивность)
Если и , то (антисимметричность)
Если и , то (транзитивность)
Обычно отношение порядка обозначают знаком . Если для двух элементов и выполняется , то говорят, что "предшествует" . Как и для отношения эквивалентности, условия 1-3 в таких обозначениях выглядят более естественно:
для всех (рефлексивность)
Если и , то (антисимметричность)
Если и , то (транзитивность)
Пример 3. Простым примером отношения порядка является отношение, задаваемое обычным неравенством на множестве вещественных чисел . Заметим, что для любых чисел и выполняется либо , либо , т.е. любые два числа сравнимы между собой. Такие отношения называются отношениями полного порядка.
Предикат данного отношения есть просто утверждение .
Пример 4. Рассмотрим на множестве всех сотрудников некоторого предприятия отношение, задаваемое следующим образом: сотрудник предшествует сотруднику тогда и только тогда, когда выполняется одно из условий:
является начальником (не обязательно непосредственным)
Назовем такое отношение "быть начальником". Легко проверить, что отношение "быть начальником" является отношением порядка. Заметим, что в отличие от предыдущего примера, существуют такие пары сотрудников и , для которых не выполняется ни , ни (например, если и являются сослуживцами). Такие отношения, в которых есть несравнимые между собой элементы, называют отношениями частичного порядка.
Определение 10. Отношение на декартовом произведении двух множеств называется функциональным отношением, если оно обладает следующим свойством:
Если и , то (однозначность функции).
Обычно, функциональное отношение обозначают в виде функциональной зависимости - тогда и только тогда, когда . Функциональные отношения (подмножества декартового произведения!) называют иначе графиком функции или графиком функциональной зависимости.
Предикат функционального отношения есть просто выражение функциональной зависимости .
Пример 5. Пусть множество есть следующее множество молодых людей: {Вовочка, Петя, Маша, Лена}, причем известны следующие факты:
Вовочка любит Вовочку (эгоист).
Петя любит Машу (взаимно).
Маша любит Петю (взаимно).
Маша любит Машу (себя не забывает).
Лена любит Петю (несчастная любовь).
Информацию о взаимоотношения данных молодых людей можно описать бинарным отношением "любить", заданном на множестве . Это отношение можно описать несколькими способами.
(Слайд №19)
Способ 1. Перечисление фактов в виде произвольного текста (как это сделано выше).
Способ 2. В виде графа взаимоотношений:
Рисунок 1 Граф взаимоотношений
(Слайд №20)
Способ 3. При помощи матрицы взаимоотношений:
Кого Кто | Вовочка | Петя | Маша | Лена |
Вовочка | Любит |
|
|
|
Петя |
|
| Любит |
|
Маша |
| Любит | Любит |
|
Лена |
| Любит |
|
|
Таблица 1. Матрица взаимоотношений
Способ 4. При помощи таблицы фактов:
Кто любит | Кого любят |
Вовочка | Вовочка |
Петя | Маша |
Маша | Петя |
Маша | Маша |
Лена | Петя |
Таблица 2 Таблица фактов
С точки зрения реляционных баз данных наиболее предпочтительным является четвертый способ, т.к. он допускает наиболее удобный способ хранения и манипулирования информацией. Действительно, перечисление фактов как текстовая форма хранения информации уместна для литературного произведения, но с трудом поддается алгоритмической обработке. Изображение в виде графа наглядно, и его удобно использовать как конечную форму представления информации для пользователя, но хранить данные в графическом виде неудобно. Матрица взаимоотношений уже больше соответствует требованиям информационной системы. Матрица удобна в обработке и компактно хранится. Но одно небольшое изменение, например, появился еще Вася и влюбился в несчастную Лену, требует перестройки всей матрицы, а именно, добавления и колонок, и столбцов. Таблица фактов свободна от всех этих недостатков - при добавлении новых действующих лиц просто добавляются новые строки.