|
||||
|
Лекция № 3. Реляционные объекты данных1. Требования к табличной форме представления отношений1. Самое первое требование, предъявляемое к табличной форме представления отношений, – это конечность. Работать с бесконечными таблицами, отношениями или любыми другими представлениями и организациями данных неудобно, редко оправдываются затраченные усилия, и, кроме того, подобное направление имеет малое практическое приложение. Но помимо этого, вполне ожидаемого, существуют и другие требования. 2. Заголовок таблицы, представляющей отношение, должен обязательно состоять из одной строки – заголовка столбцов, причем с уникальными именами. Многоярусных заголовков не допускается. Например, таких: Все многоярусные заголовки заменяются одноярусными путем подбора подходящих заголовков. В нашем примере таблица после указанных преобразований будет выглядеть следующим образом: Мы видим, что имя каждого столбца уникально, поэтому их можно как угодно менять местами, т. е. их порядок становится несущественным. А это очень важно, поскольку является третьим свойством. 3. Порядок строк должен быть несущественным. Однако это требование также не является строго ограничительным, так как можно без труда привести любую таблицу к требуемому виду. Например, можно ввести дополнительный столбец, который будет определять порядок строк. В этом случае от перестановки строк тоже ничего не изменится. Вот пример такой таблицы: 4. В таблице, представляющей отношение, не должно быть строк-дубликатов. Если же в таблице встречаются повторяющиеся строки, это можно легко исправить введением дополнительного столбца, отвечающего за количество дубликатов каждой строки, например: Следующее свойство также является вполне ожидаемым, потому что лежит в основе всех принципов программирования и проектирования реляционных баз данных. 5. Данные во всех столбцах должны быть одного и того же типа. И кроме того они должны быть простого типа. Поясним, что такое простой и сложный типы данных. Простой тип данных – это такой тип, значения данных которого не являются составными, т. е. не содержат составных частей. Таким образом, в столбцах таблицы не должны присутствовать ни списки, ни массивы, ни деревья, ни подобные названным составные объекты. Такие объекты – составной тип данных – в реляционных системах управления базами данных сами представляются в виде самостоятельных таблиц-отношений. 2. Домены и атрибутыДомены и атрибуты – базовые понятия в теории создания баз данных и управления ими. Поясним, что же это такое. Формально, домен атрибута (обозначается dom(a)), где а – некий атрибут, определяется как множество допустимых значений одного и того же типа соответствующего атрибута а. Этот тип должен быть простым, т. е:
Атрибут (обозначается а), в свою очередь, определяется как упорядоченная пара, состоящая из имени атрибута name(a) и домена атрибута dom(a), т. е.:
В этом определении вместо привычного знака «,» (как в стандартных определениях упорядоченных пар) используется «:». Это делается для того, чтобы подчеркнуть ассоциацию домена атрибута и типа данных атрибута. Приведем несколько примеров различных атрибутов:
Заметим, что у атрибутов а2 и а3 домены формально совпадают. Но семантическое значение этих атрибутов различно, ведь сравнивать значения массы и длины бессмысленно. Поэтому домен атрибута ассоциируется не только с типом допустимых значений, но и семантическим значением. В табличной форме представления отношений атрибут отображается как заголовок столбца таблицы, и при этом домен атрибута не указывается, но подразумевается. Это выглядит следующим образом: Нетрудно заметить, что здесь каждый из заголовков a1, a2, a3 столбцов таблицы, представляющей какое-то отношение, является отдельным атрибутом. 3. Схемы отношений. Именованные значения кортежейВ теории и практике СУБД понятия схемы отношения и именованного значения кортежа на атрибуте являются базовыми. Приведем их. Схема отношения (обозначается S) определяется как конечное множество атрибутов с уникальными именами, т. е.:
В каждой таблице, представляющей отношение, все заголовки столбцов (все атрибуты) объединяются в схему этого отношения. Количество атрибутов в схеме отношений определяет степень этого отношения и обозначается как мощность множества: |S|. Схема отношений может ассоциироваться с именем схемы отношений. В табличной форме представления отношений, как нетрудно заметить, схема отношения – это не что иное, как строка заголовков столбцов. S = {a1, a2, a3, a4} – схема отношений этой таблицы. Имя отношения изображается как схематический заголовок таблицы. В текстовой же форме представления схема отношений может быть представлена как именованный список имен атрибутов, например:
Здесь, как и в табличной форме представления, домены атрибутов не указываются, но подразумеваются. Из определения следует, что схема отношения может быть и пустой (S = ?). Правда, возможно это только в теории, так как на практике система управления базами данных никогда не допустит создания пустой схемы отношения. Именованное значение кортежа на атрибуте (обозначается t(a))определяется по аналогии с атрибутом как упорядоченная пара, состоящая из имени атрибута и значения атрибута, т. е.:
Видим, что значение атрибута берется из домена атрибута. В табличной форме представления отношения каждое именованное значение кортежа на атрибуте – это соответствующая ячейка таблицы: Здесь t(a1), t(a2), t(a3) – именованные значения кортежа t на атрибутах а1, а2, а3. Простейшие примеры именованных значений кортежей на атрибутах:
Здесь соответственно Курс и Балл – имена двух атрибутов, а 5 – это одно из их значений, взятое из их доменов. Разумеется, хоть эти значения в обоих случаях равны друг другу, семантически они различны, так как множества этих значений в обоих случаях отличаются друг от друга. 4. Кортежи. Типы кортежейПонятие кортежа в системах управления базами данных может быть интуитивно найдено уже из предыдущего пункта, когда мы говорили об именованном значении кортежа на различных атрибутах. Итак, кортеж (обозначается t, от англ. tuple – «кортеж») со схемой отношения S определяется как множество именованных значений этого кортежа на всех атрибутах, входящих в данную схему отношений S. Другими словами, атрибуты берутся из области определения кортежа, def(t), т. е.:
Важно, что одному имени атрибута обязательно должно соответствовать не более одного значения атрибута. В табличной форме записи отношения кортежем будет любая строка таблицы, т. е.: Здесь t1(S) = {t(a1), t(a2), t(a3), t(a4)} и t2(S) = {t(a5), t(a6), t(a7), t(a8)} – кортежи. Кортежи в СУБД различаются по типам в зависимости от своей области определения. Кортежи называются: 1) частичными, если их область определения включается или совпадает со схемой отношения, т. е. def(t) ? S. Это общий случай в практике баз данных; 2) полными, в том случае если их область определения полностью совпадает, равна схеме отношения, т. е. def(t) = S; 3) неполными, если область определения полностью включается в схему отношений, т. е. def(t) ? S; 4) нигде не определенными, если их область определения равна пустому множеству, т. е. def(t) = ?. Поясним на примере. Пусть у нас имеется отношение, заданное следующей таблицей. Пусть здесь t1 = {10, 20, 30}, t2 = {10, 20, Null}, t3 = {Null, Null, Null}. Тогда легко заметить, что кортеж t1 – полный, так как его область определения def(t1) = { a, b, c} = S. Кортеж t2 – неполный, def(t2) = { a, b} ? S. И, наконец, кортеж t3 – нигде не определенный, так как его def(t3) = ?. Надо заметить, что нигде не определенный кортеж – это пустое множество, тем не менее ассоциируемое со схемой отношений. Иногда нигде не определенный кортеж обозначается: ?(S). Как мы уже видели в приведенном примере, такой кортеж представляет собой строку таблицы, состоящую только из Null-значений. Интересно, что сравнимыми, т. е. возможно равными, являются только кортежи с одной и той же схемой отношений. Поэтому, например, два нигде не определенных кортежа с различными схемами отношений не будут равными, как могло ожидаться. Они будут различными так же, как их схемы отношений. 5. Отношения. Типы отношенийИ наконец дадим определение отношению, как некой вершине пирамиды, состоящей из всех предыдущих понятий. Итак, отношение (обозначается r, от англ. relation – «отношение») со схемой отношений S определяется как обязательно конечное множество кортежей, имеющих ту же схему отношения S. Таким образом:
По аналогии со схемами отношений количество кортежей в отношении называют мощностью отношений и обозначают как мощность множества: |r|. Отношения, как и кортежи, различаются по типам. Итак, отношения называются: 1) частичными, если для любого входящего в отношение кортежа выполняется следующее условие: [def(t) ? S]. Это (как и с кортежами) общий случай; 2) полными, в том случае если ?t ? r(S) выполняется: [def(t) = S]; 3) неполными, если ?t ? r(S) def(t) ? S; 4) нигде не определенными, если ?t ? r(S) [def(t) = ?]. Обратим отдельное внимание на нигде не определенные отношения. В отличие от кортежей работа с такими отношениями включает в себя небольшую тонкость. Дело в том, что нигде не определенные отношения могут быть двух видов: они могут быть либо пустыми, либо могут содержать единственный нигде не определенный кортеж (такие отношения обозначаются {?(S)}). Сравнимыми (по аналогии с кортежами), т. е., возможно равными, являются лишь отношения с одной и той же схемой отношения. Поэтому отношения с различными схемами отношений являются различными. В табличной форме представления, отношение – это тело таблицы, которому соответствует строка – заголовок столбцов, т. е. буквально – вся таблица, вместе с первой строкой, содержащей заголовки. |
|
||
Главная | В избранное | Наш E-MAIL | Добавить материал | Нашёл ошибку | Другие сайты | Наверх |
||||
|