Основные понятия
Логика реляционная
Этот раздел классической математической логики используется для формального представления и обработки множества высказываний с одинаковой структурой. Такие высказывания удобно представлять двумерной таблицей, например:
Дисциплина | Лекции | Практика | Отчетность |
Информатика | зачет | ||
Математика | зачет | ||
Программирование | экзамен |
В этой таблице «закодированы» три высказывания:
1) По информатике читаются лекции в объеме 34 часов, проводятся практические занятия в объеме 56 часов, отчетность по дисциплине – зачет,
2) По математике читаются лекции в объеме 66 часов, проводятся практические занятия в объеме 77 часов, отчетность по дисциплине – зачет,
3) По программированию читаются лекции в объеме 45 часов, проводятся практические занятия в объеме 54 часов, отчетность по дисциплине – экзамен.
Именами столбцов такой таблицы являются имена свойств объектов, чаще всего называемых атрибутами,а строками, называемыми кортежами, - цепочки значений атрибутов. Область определения атрибута называют доменом. Число строк таблицы называют её мощностью.
Кортежи называют совместимыми, если они имеют одинаковую длину (или ранг), одинаковые имена компонент и одинаковый их порядок в кортеже. Множество совместимых кортежей называют отношением, а множество отношений для определенной области деятельности называют реляционной базой данных.
Отношение можно рассматривать как файл определенного типа. Такой файл состоит из последовательности записей,по одной на каждый кортеж, причем в файле не должно быть одинаковых записей. Все записи файла должны иметь одинаковое число полей, так как кортежи должны быть совместимыми.
Между таблицей, отношением и файлом есть соответствие:
ТАБЛИЦА ОТНОШЕНИЕ ФАЙЛ
строка « кортеж « запись
имя столбца « имя атрибута « имя поля
тип атрибута « тип домена « тип поля
Если дано множество атрибутов A={A1,A2,…,An} и множество доменов D={D1,D2,..., Dm}, то кортеж отношения есть t=(d1,d2,...,dn) где di∈Dj.
Так как отношение есть множество совместимых кортежей, то r={t| t=(d1,d2,...,dn), di∈Dj}. Отношение, заданное на множестве упорядоченных кортежей, есть подмножество n-арного прямого произведения доменов, т.е. r={t| t=(d1,d2,...,dn), di∈D}⊆ÄnD.
Отношение на множестве упорядоченных кортежей задают схемой отношения с указанием имени отношения и порядка следования атрибутов в кортеже: rel(r)=(A1, A2,…, An). Множество схем отношений, используемых в реляционной базе данных, называют схемой реляционной базы данных REL(R)={rel(r)}.
Для каждого отношения должен быть задан ключ – это один или несколько атрибутов, выделяющих единственный кортеж отношения или единственную запись файла.
Например, есть две таблицы Т1 и Т2 со структурой, соответственно:
Дисциплина | Лекции | Практика | Отчетность |
Информатика | зачет | ||
Математика | зачет | ||
Программирование | экзамен |
Преподаватель | Дисциплина | Учебная группа |
Иванов И.И. | Информатика | 11-ИЭ |
Петров П.П. | Информатика | 11-ВТ |
Сухов С.С. | Математика | 10-ИЭ |
Якушев Я.Я | Программирование | 11-ИЭ |
Таблица Т1 имеет столбцы с именами – атрибутами отношения: Дисциплина – А1, Лекции – А2, Практика – А3, Отчетность – А4; таблица Т2 имеет столбцы с именами – атрибутами отношения: Преподаватель – А5, Дисциплина – А1, Учебная группа – А6.
Мощность таблицы Т1 – 3, мощность таблицы Т2 – 4.
В рамках одной таблицы кортежи совместимы, следовательно, мы имеем два отношения: таблице Т1 соответствует отношение r1, а таблице Т2 – отношение r2. Отношения r1 и r2 составляют реляционную базу данных, описывающую распределение учебной нагрузки между преподавателями вуза.
Доменами атрибутов являются:
· А1:=Дисциплина – D1 – множество названий учебных дисциплин из учебного плана;
· А2:=Лекции – D2 – множество натуральных чисел;
· А3:=Практика – D2;
· А4:=Отчетность – D3 – множество форм отчетности, принятых в высшей школе;
· А5:=Преподаватель – D4 - множество фамилий преподавателей вуза;
· А6:=Учебная группа – D5 – множество шифров учебных групп вуза.
Дадим формальное определение введенной реляционной базе данных:
· множество атрибутов А={A1,A2,A3,A4,A5,A6},
· множество доменов D={D1,D2,D3,D4,D5},
· схемы отношений:
o rel(r1)=(A1, A2,A3, A4)
o rel(r2)=(A5, A1,A6)
· кортежи отношений:
o для отношения r1:
§ t1r1=(Информатика,34,56,зачет)
§ t2r1=(Математика,66,77,зачет)
§ t3r1=(Программирование,45,54,экзамен)
o для отношения r2:
§ t1r2=(Иванов И.И.,Информатика,11-ИЭ)
§ t2r2=(Петров П.П.,Информатика,11-ВТ)
§ t3r2=(Сухов С.С.,Математика,10-ИЭ)
§ t4r2=(Якушев Я.Я.,Программирование,11-ИЭ)
· формальное определение отношений:
o r1={ t1r1,t2r1,t3r1}
o r2={ t1r2,t2r2,t3r2,t4r2}
· формальное определение базы данных из примера:
REL(R)={rel(r1),rel(r2)}.
Над отношениями можно осуществлять алгебраические и логические операции. Так математическая логика нашла применение в управлении реляционными базами данных.
При изложении основ реляционной алгебры и реляционного исчисления будем придерживаться следующих ограничений:
· все атрибуты кортежа должны быть элементарными (или каждое поле записи должно иметь один тип: INTEGER (целые), REAL (вещественные), CHAR (символьные) или BOOLEAN (логические)) и не должны быть функционально связаны между собой,
· все кортежи должны быть упорядоченными и иметь одинаковое число компонент в одном отношении (или все записи в файле должны быть упорядочены и иметь одинаковое число полей),
· каждое отношение должно иметь ключ, в роли которого выступают один или несколько атрибутов и каждое отношение не должно содержать по одному ключу двух или более одинаковых кортежей (или файл не должен содержать двух или более одинаковых записей),
· никакие два столбца таблицы не должны иметь совпадающие имена атрибутов, но их значения могут принадлежать одному домену.