КАТЕГОРИИ:
АстрономияБиологияГеографияДругие языкиДругоеИнформатикаИсторияКультураЛитератураЛогикаМатематикаМедицинаМеханикаОбразованиеОхрана трудаПедагогикаПолитикаПравоПсихологияРиторикаСоциологияСпортСтроительствоТехнологияФизикаФилософияФинансыХимияЧерчениеЭкологияЭкономикаЭлектроника
|
Реляционные объекты данныхОсновные понятия и ограничения реляционной модели (от английского relation – отношение) впервые были сформулированы сотрудником компании IBM Е.Ф.Коддом в 1970 г. Реляционная модель связана с тремя аспектами данных: объектами данных (структурой данных), целостностью данных и обработкой данных [1, 2]. Основной структурной частью (объектом) реляционной модели является отношение. Основные понятия Рассмотрим наиболее важные термины, используемые в структурной части реляционной модели. Декартово произведение Для заданных конечных множеств D1, D2,…, Dn (не обязательно различных) декартовым произведением D1× D2×…× Dn называется множество произведений вида: d1× d2×…× dn , где d1∈D1, d2∈D2,…, dn∈Dn. Пример: Имеем три домена D1={a,b,c}, D2={m,k}, D3={y,z}. Декартово произведение этих доменов D = D1×D2×D3 =(a × m × y, a × m × z, a × k × y, a × k × z, b × m × y, b × m × z, b × k × y, b × k × z, c × m × y, c × m × z, c × k × y, c × k × z)
Отношением R, определенным на множествах D1, D2,…, Dn (n ≥ 1), необязательно различных, называется подмножество декартова произведения D1× D2×…× Dn. Исходные множества D1, D2,…, Dn называются доменами отношения Элементы декартова произведения d1× d2×…× dn называются кортежами Число n определяет степень отношения (n=1 - унарное, n=2 - бинарное, ..., n-арное) Количество кортежей называется кардинальным числом или мощностью отношения Домен представляет собой именованное множество атомарных значений одного типа. Под атомарным значением понимается “наименьшая семантическая единица данных”, т.е. это значение, не имеющее внутренней структуры при рассмотрении в реляционной модели. Это не значит, что такое значение не имеет внутренней структуры вообще. Например, название должности состоит из букв, но, разложив название по буквам, мы потеряем значение. Домены являются общими совокупностями значений, из которых берутся конкретные значения атрибутов. Т.е. каждый атрибут должен быть определен на основе одного домена; это значит, что значения атрибута должны браться из этого домена. Значение доменов заключается в том, что домены ограничивают сравнения. Т.е. если два атрибута определены на одном и том домене, то их можно сравнивать, применяя операции сравнения допустимые для данного домена. Например, атрибуты Дата приема на работу и Дата окончания ВУЗа определены на одном домене Даты; для этого домена допустимы операции сравнения: =, ≠, <, ≤, >, ≥. Поэтому данные атрибуты можно сравнивать, используя все указанные операции сравнения. Отношение удобно представить в виде таблицы, столбцы которой соответствуют вхождениям доменов в отношение, а строки – наборам из n значений, взятых их исходных доменов, и расположенным в соответствии с заголовком отношения (Рис. 2-15). Столбцы отношения называют атрибутами, а строки – кортежами. Однако нельзя сказать, что отношение и таблица полностью идентичны. Различие между отношением и таблицей мы рассмотрим чуть позже, когда будем рассматривать свойства отношений. Отношение содержит две части: заголовок и тело (заголовок – это строка заголовков столбцов, тело – это множество строк данных). Заголовок (или схема отношения) содержит фиксированное множество атрибутов или, точнее, пар <имя-атрибута : имя-домена>: {<A1:D1>, <A2:D2>, …, <An:Dn>}, причем каждый атрибут Aj соответствует только одному из лежащих в основе доменов Dj (j = 1, 2, …, n). Все имена атрибутов A1, A2, …, An разные. Схемы двух отношений называются эквивалентными, если они имеют одинаковую степень и возможно такое упорядочение имен атрибутов в схемах, что на одинаковых местах будут находиться сравнимые атрибуты, т.е. атрибуты, принимающие значения из одного домена. Схема БД (в структурном смысле) - это набор именованных схем отношений. Тогда реляционная БД – это набор отношений, имена которых совпадают с именами схем отношений в схеме БД. Тело содержит множество кортежей. Каждый кортеж, в свою очередь, содержит множество пар <имя-атрибута : значение-атрибута>: {<A1:vi1>, <A2:vi2>, …, <An:vin>}, (i = 1, 2, …, m, где m – количество кортежей в этом множестве). В каждом таком кортеже есть одна такая пара <имя-атрибута : значение-атрибута>, т.е. <Aj:vij>, для каждого атрибута Aj в заголовке. Для любой такой пары <Aj:vij> vij является значением из уникального домена Dj, связанного с атрибутом Aj. Т.е. можно сказать, что отношение – это множество кортежей, соответствующих одной схеме отношения. Атрибут, значение которого однозначно идентифицирует кортежи, называется ключевым (или просто ключом). Если кортежи идентифицируются только сцеплением значений нескольких атрибутов, то говорят, что отношение имеет составной ключ. Отношение может содержать несколько ключей. Всегда один из ключей объявляется первичным, его значения не могут обновляться. Все остальные ключи отношения называются возможными (потенциальными или альтернативными) ключами. Пример: Для иллюстрации введенных терминов рассмотрим отношение Расписание, приведенное на Рис. 2-15. В этом отношении есть четыре основных домена: домен номеров рейса (№ рейса), домен наименований населенных пунктов (Населенные пункты), домен времени (Время) и домен типов поездов (Тип поезда).
Рис. 2-15. Пример отношения ж/д расписание
Обратите внимание, что количество доменов меньше количества атрибутов, т.е. некоторые атрибуты определены на одном и том же домене. Так атрибуты Пункт отправления и Пункт назначения определены на домене Населенные пункты, а атрибуты Время отправления и Время прибытия – на домене Время. Т.е. атрибуты Пункты отправления и Пункт назначения (и соответственно Время отправления и Время прибытия) можно сравнивать. Например, для определения транзитных рейсов, которыми можно добраться из Владивостока в Хасан, необходимо сравнить пункт назначения с пунктом отправления, а также время прибытия одного рейса с временем отправления другого (чтобы узнать есть ли запас времени для пересадки на транзитный рейс). Схема отношения (заголовок отношения) выглядит как (№ рейса, Пункт отправления, Пункт назначения, Время отправления, Время прибытия, Тип поезда) или по определению схема представляет собой набор упорядоченных пар: {<№ рейса : № рейса>, <Пункт отправления : Населенные пункты>, <Пункт назначения : Населенные пункты>, <Время отправления : Время>, <Время прибытия : Время>, <Тип поезда : Тип поезда>}, где первым компонентом каждой пары является имя атрибута, а вторым компонентом – имя соответствующего домена. На практике чаще всего имена доменов в схеме опускают, и схема отношения представляет собой перечень атрибутов отношения. Тело отношения представляет собой набор строк (кортежей). Рассмотрим подробнее один из кортежей: (681, Владивосток, Новочугуевка, 22:05, 9:30, ПАСС) по определению этот кортеж представляет собой набор упорядоченных пар: {<№ рейса : 681>, <Пункт отправления : ‘Владивосток’>, <Пункт назначения : ‘Новочугуевка’>, <Время отправления : 22:05>, <Время прибытия : 9:30>, <Тип поезда : ‘ПАСС’>}, где первым компонентом каждой пары является имя атрибута, а вторым компонентом – значение соответствующего атрибута. Часто на практике имена атрибутов опускают, так как известно, что каждое отдельное значение в таблице является значением атрибута, имя которого находится сверху соответствующего столбца; кроме того, значение принадлежит лежащему в основе этого атрибута домену. Например, значение “Владивосток” – это значение атрибута Пункт отправления, и оно взято из домена Населенные пункты. Ключевым атрибутом отношения Расписание будет атрибут № рейса, т.к. он однозначно идентифицирует кортежи. В самом деле, нет ни одного повторяющегося номера рейса, и по конкретному номеру рейса мы можем найти соответствующий кортеж отношения. Свойства отношений Рассмотрим теперь свойства отношений, которые следуют из приведенного выше определения отношения. В любом отношении • Отсутствуют одинаковые кортежи • Отсутствует упорядоченность кортежей • Отсутствует упорядоченность атрибутов • Все значения атрибутов атомарные
|