![]() |
КОНСПЕКТЫ ЛЕКЦИЙ, ШПАРГАЛКИ
Базы данных. Реляционные объекты данных (самое важное) Справочник / Конспекты лекций, шпаргалки Оглавление (развернуть) Лекция № 3. Реляционные объекты данных 1. Требования к табличной форме представления отношений 1. Самое первое требование, предъявляемое к табличной форме представления отношений, - это конечность. Работать с бесконечными таблицами, отношениями или любыми другими представлениями и организациями данных неудобно, редко оправдываются затраченные усилия, и, кроме того, подобное направление имеет малое практическое приложение. Но помимо этого, вполне ожидаемого, существуют и другие требования. 2. Заголовок таблицы, представляющей отношение, должен обязательно состоять из одной строки - заголовка столбцов, причем с уникальными именами. Многоярусных заголовков не допускается. Например, таких: Все многоярусные заголовки заменяются одноярусными путем подбора подходящих заголовков. В нашем примере таблица после указанных преобразований будет выглядеть следующим образом: Мы видим, что имя каждого столбца уникально, поэтому их можно как угодно менять местами, т. е. их порядок становится несущественным. А это очень важно, поскольку является третьим свойством. 3. Порядок строк должен быть несущественным. Однако это требование также не является строго ограничительным, так как можно без труда привести любую таблицу к требуемому виду. Например, можно ввести дополнительный столбец, который будет определять порядок строк. В этом случае от перестановки строк тоже ничего не изменится. Вот пример такой таблицы: 4. В таблице, представляющей отношение, не должно быть строк-дубликатов. Если же в таблице встречаются повторяющиеся строки, это можно легко исправить введением дополнительного столбца, отвечающего за количество дубликатов каждой строки, например: Следующее свойство также является вполне ожидаемым, потому что лежит в основе всех принципов программирования и проектирования реляционных баз данных. 5. Данные во всех столбцах должны быть одного и того же типа. И кроме того они должны быть простого типа. Поясним, что такое простой и сложный типы данных. Простой тип данных - это такой тип, значения данных которого не являются составными, т. е. не содержат составных частей. Таким образом, в столбцах таблицы не должны присутствовать ни списки, ни массивы, ни деревья, ни подобные названным составные объекты. Такие объекты - составной тип данных - в реляционных системах управления базами данных сами представляются в виде самостоятельных таблиц-отношений. 2. Домены и атрибуты Домены и атрибуты - базовые понятия в теории создания баз данных и управления ими. Поясним, что же это такое. Формально, домен атрибута (обозначается dom(a)), где а - некий атрибут, определяется как множество допустимых значений одного и того же типа соответствующего атрибута а. Этот тип должен быть простым, т. е: dom(a) ⊆ {x | type(x) = type(a)}; Атрибут (обозначается а), в свою очередь, определяется как упорядоченная пара, состоящая из имени атрибута name(a) и домена атрибута dom(a), т. е.: a = (name(a): dom(a)); В этом определении вместо привычного знака "," (как в стандартных определениях упорядоченных пар) используется ":". Это делается для того, чтобы подчеркнуть ассоциацию домена атрибута и типа данных атрибута. Приведем несколько примеров различных атрибутов: а1 = (Курс: {1, 2, 3, 4, 5}); а2 = (МассаКг: {x | type(x) = real, x 0}); а3 = (ДлинаСм: {x | type(x) = real, x 0}); Заметим, что у атрибутов а2 и а3 домены формально совпадают. Но семантическое значение этих атрибутов различно, ведь сравнивать значения массы и длины бессмысленно. Поэтому домен атрибута ассоциируется не только с типом допустимых значений, но и семантическим значением. В табличной форме представления отношений атрибут отображается как заголовок столбца таблицы, и при этом домен атрибута не указывается, но подразумевается. Это выглядит следующим образом: Нетрудно заметить, что здесь каждый из заголовков a1, a2, a3 столбцов таблицы, представляющей какое-то отношение, является отдельным атрибутом. 3. Схемы отношений. Именованные значения кортежей В теории и практике СУБД понятия схемы отношения и именованного значения кортежа на атрибуте являются базовыми. Приведем их. Схема отношения (обозначается S) определяется как конечное множество атрибутов с уникальными именами, т. е.: S = {a | a ∈ S}; В каждой таблице, представляющей отношение, все заголовки столбцов (все атрибуты) объединяются в схему этого отношения. Количество атрибутов в схеме отношений определяет степень этого отношения и обозначается как мощность множества: |S|. Схема отношений может ассоциироваться с именем схемы отношений. В табличной форме представления отношений, как нетрудно заметить, схема отношения - это не что иное, как строка заголовков столбцов. S = {a1, a2, a3, a4} - схема отношений этой таблицы. Имя отношения изображается как схематический заголовок таблицы. В текстовой же форме представления схема отношений может быть представлена как именованный список имен атрибутов, например: Студенты (№ зачетной книжки, Фамилия, Имя, Отчество, Дата рождения). Здесь, как и в табличной форме представления, домены атрибутов не указываются, но подразумеваются. Из определения следует, что схема отношения может быть и пустой (S = ∅). Правда, возможно это только в теории, так как на практике система управления базами данных никогда не допустит создания пустой схемы отношения. Именованное значение кортежа на атрибуте (обозначается t(a))определяется по аналогии с атрибутом как упорядоченная пара, состоящая из имени атрибута и значения атрибута, т. е.: t(a) = (name(a) : x), x ∈ dom(a); Видим, что значение атрибута берется из домена атрибута. В табличной форме представления отношения каждое именованное значение кортежа на атрибуте - это соответствующая ячейка таблицы: Здесь t(a1), t(a2), t(a3) - именованные значения кортежа t на атрибутах а1, а2, а3. Простейшие примеры именованных значений кортежей на атрибутах: (Курс: 5), (Балл: 5); Здесь соответственно Курс и Балл - имена двух атрибутов, а 5 - это одно из их значений, взятое из их доменов. Разумеется, хоть эти значения в обоих случаях равны друг другу, семантически они различны, так как множества этих значений в обоих случаях отличаются друг от друга. 4. Кортежи. Типы кортежей Понятие кортежа в системах управления базами данных может быть интуитивно найдено уже из предыдущего пункта, когда мы говорили об именованном значении кортежа на различных атрибутах. Итак, кортеж (обозначается t, от англ. tuple - "кортеж") со схемой отношения S определяется как множество именованных значений этого кортежа на всех атрибутах, входящих в данную схему отношений S. Другими словами, атрибуты берутся из области определения кортежа, def(t), т. е.: t ≡ t(S) = {t(a) | a ∈ def(t) ⊆ S;. Важно, что одному имени атрибута обязательно должно соответствовать не более одного значения атрибута. В табличной форме записи отношения кортежем будет любая строка таблицы, т. е.: Здесь 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 ≡ r(S) = {t(S) | t ∈r}; По аналогии со схемами отношений количество кортежей в отношении называют мощностью отношений и обозначают как мощность множества: |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)}). Сравнимыми (по аналогии с кортежами), т. е., возможно равными, являются лишь отношения с одной и той же схемой отношения. Поэтому отношения с различными схемами отношений являются различными. В табличной форме представления, отношение - это тело таблицы, которому соответствует строка - заголовок столбцов, т. е. буквально - вся таблица, вместе с первой строкой, содержащей заголовки. << Назад: Отсутствующие данные (Пустые значения (Empty-значения). Неопределенные значения (Null-значения). Null-значения и общее правило вычисления выражений. Null-значения и логические операции. Null-значения и проверка условий) >> Вперед: Реляционная алгебра. Унарные операции (Унарная операция выборки. Унарная операция проекции. Унарная операция переименования. Свойства унарных операций)
▪ Теория организации. Шпаргалка ▪ Зарубежная литература древних эпох, средневековья и Возрождения в кратком изложении. Шпаргалка
Питомцы как стимулятор разума
06.10.2025 Мини-ПК ExpertCenter PN54-S1
06.10.2025 Глазные капли, возвращающие молодость зрению
05.10.2025
▪ Беспилотный автомобиль от Nokia ▪ Управление вещами силой мысли ▪ Биоэлектроника с питанием от человека ▪ Моргание фокусника и его зрителей
▪ раздел сайта Важнейшие научные открытия. Подборка статей ▪ статья Лавры Мильтиада не дают мне спать. Крылатое выражение ▪ статья Какое редкое имя было у жены писателя Бориса Васильева? Подробный ответ ▪ статья Самолюс. Легенды, выращивание, способы применения ▪ статья Превращение бутылки в букет цветов. Секрет фокуса
Главная страница | Библиотека | Статьи | Карта сайта | Отзывы о сайте www.diagram.com.ua |