Связь (база данных)
В баз данных теории отношение , первоначально определенное Э. Ф. Коддом , [1] представляет собой ( d набор кортежей 1 , d 2 ,...,d n ), где каждый элемент d j является членом D j , домена данных . Несмотря на исходное определение Кодда, в отличие от обычного определения в математике, элементы кортежей отношения не упорядочены. [2] [3] Вместо этого каждый элемент называется значением атрибута . Атрибут — это имя в паре с доменом (в настоящее время его чаще называют типом или типом данных ). — Значение атрибута это имя атрибута, связанное с элементом домена этого атрибута, а кортеж — это набор значений атрибута, в котором нет двух разных элементов с одинаковым именем. Таким образом, в некоторых источниках кортеж описывается как функция , сопоставляющая имена значениям.
Набор атрибутов, в котором нет двух различных элементов с одинаковым именем, называется заголовком . Из приведенных выше определений следует, что каждому кортежу соответствует уникальный заголовок, представляющий собой набор имен из кортежа в паре с доменами, из которых взяты домены элементов кортежа. Набор кортежей , соответствующих одному и тому же заголовку, называется телом . Таким образом, отношение представляет собой заголовок в паре с телом, причем заголовок отношения также является заголовком каждого кортежа в его теле. Количество атрибутов, составляющих заголовок, называется степенью , этот термин также применяется к кортежам и отношениям. Термин n -кортеж относится к кортежу степени n ( n ≥ 0).
Э. Ф. Кодд использовал термин «отношение» в его математическом смысле отношения , набора кортежей на некотором наборе из n множеств S 1 , S 2 ,...., Sn . финитного [4] Таким образом, n -арное отношение интерпретируется в соответствии с допущением о закрытом мире как расширение некоторого n -адического предиката : все и только те n -кортежи, значения которых, замененные на соответствующие свободные переменные в предикате, дают предложения, которые выполняются правда, появляются в отношении.
Заголовок в сочетании с набором ограничений, определенных в терминах этого заголовка, называется схемой отношения . Таким образом, отношение можно рассматривать как реализацию схемы отношения, если оно имеет заголовок этой схемы и удовлетворяет применимым ограничениям.
Иногда схема отношения включает имя. [5] [6] Таким образом, определение реляционной базы данных ( схема базы данных , иногда называемая реляционной схемой) можно рассматривать как набор именованных схем отношений . [7] [8]
В реализациях областью каждого атрибута фактически является тип данных. [9] а именованная схема отношения фактически является переменной отношения ( relvar сокращенно ).
В SQL , языке баз данных для реляционных баз данных, отношения представлены таблицами , где каждая строка таблицы представляет собой один кортеж, а значения каждого атрибута образуют столбец.
Примеры
[ редактировать ]Ниже приведен пример отношения, имеющего три именованных атрибута: «ID» из области целых чисел , а также «Имя» и «Адрес» из области строк :
Идентификатор (целое число) | Имя (строка) | Адрес (строка) |
---|---|---|
102 | Ёнезава Акинори | Наха, Окинава |
202 | Нилай Патель | Сендай, Мияги |
104 | Мурата Макото | Кумамото, Кумамото |
152 | Мацумото Юкихиро | Окинава, Окинава |
Предикатом для этого отношения, использующим имена атрибутов для обозначения свободных переменных, может быть: « Идентификатор номера сотрудника известен как Имя и живет по адресу ». Исследование отношения показывает, что существует всего четыре кортежа, для которых предикат справедлив. Так, например, сотрудник 102 известен только под этим именем, Ёнезава Акинори, и живет только в Нахе, Окинава. Кроме того, кроме четырех показанных сотрудников, нет другого сотрудника, у которого есть одновременно имя и адрес.
Согласно определению тела , кортежи тела не располагаются в каком-либо определенном порядке — нельзя сказать: «Кортеж «Мурата Макото» находится над кортежем «Мацумото Юкихиро»», и нельзя сказать: «Кортеж «Кортеж» Ёнезава Акинори — первый кортеж». Аналогичный комментарий относится и к строкам таблицы SQL.
Согласно определению заголовка , атрибуты элемента также не отображаются в каком-либо определенном порядке, как и элементы кортежа. Подобный комментарий здесь не применим к SQL, который определяет порядок столбцов таблицы.
Переменные отношения
[ редактировать ]Реляционная база данных состоит из именованных переменных отношения (relvars) для целей обновления базы данных в ответ на изменения в реальном мире. Обновление одной relvar приводит к замене тела отношения, присвоенного этой переменной, другим набором кортежей. Relvars делятся на два класса: базовые переменные отношения и производные переменные отношения , последние также известны как виртуальные relvars , но обычно называются краткосрочным представлением .
Переменная базового отношения — это переменная отношения, которая не является производной от каких-либо других переменных отношения. В SQL термин «базовая таблица» примерно соответствует переменной базового отношения.
Представление может быть определено выражением с использованием операторов реляционной алгебры или реляционного исчисления . Такое выражение работает с одним или несколькими отношениями и при вычислении дает другое отношение. Результат иногда называют «производным» отношением, когда операнды представляют собой отношения, присвоенные переменным базы данных. Представление определяется путем присвоения такому выражению имени, которое впоследствии можно использовать в качестве имени переменной. (Обратите внимание, что тогда в выражении должна упоминаться хотя бы одна переменная базового отношения.)
Используя язык определения данных (DDL), он может определять переменные базового отношения. В SQL, CREATE TABLE
синтаксис используется для определения базовых таблиц. Ниже приведен пример.
CREATE TABLE List_of_people (
ID INTEGER,
Name CHAR(40),
Address CHAR(200),
PRIMARY KEY (ID)
)
Язык определения данных (DDL) также используется для определения переменных производных отношений. В SQL, CREATE VIEW
синтаксис используется для определения производной переменной отношения. Ниже приведен пример.
CREATE VIEW List_of_Okinawa_people AS (
SELECT ID, Name, Address
FROM List_of_people
WHERE Address LIKE '%, Okinawa'
)
См. также
[ редактировать ]Ссылки
[ редактировать ]- ^ Э. Ф. Кодд (октябрь 1972 г.). «Дальнейшая нормализация реляционной модели базы данных». Системы баз данных . Институт Куранта: Прентис-Холл. ISBN 013196741X .
R является отношением в этих n областях, если оно представляет собой набор элементов вида (d 1 , d 2 , ..., d n ), где d j ∈ D j для каждого j=1,2,..., н.
- ^ CJ Date (май 2005 г.). База данных в глубине . О'Рейли. п. 42. ИСБН 0-596-10012-4 .
... кортежи не имеют упорядочения атрибутов слева направо...
- ^ Э. Ф. Кодд (1990). Реляционная модель управления базами данных, версия 2 . Аддисон-Уэсли. п. 3. ISBN 0-201-14192-2 .
Одна из причин полного отказа от позиционных концепций в отношениях реляционной модели заключается в том, что нередко встречаются отношения базы данных, каждое из которых имеет до 50, 100 или даже 150 столбцов.
- ^ Кодд, Эдгар Ф. (июнь 1970 г.). «Реляционная модель данных для больших общих банков данных» (PDF) . Коммуникации АКМ . 13 (6): 377–87. дои : 10.1145/362384.362685 .
Термин «отношение» используется здесь в его общепринятом математическом смысле.
- ^ Джеффри Д. Уллман (1989). Принципы баз данных и систем баз знаний . Джеффри Уллман. стр. 410– . Проверено 28 ноября 2012 г.
- ^ Деннис Эллиотт Шаша; Филипп Бонне (2003). Настройка базы данных: принципы, эксперименты и методы устранения неполадок . Морган Кауфманн. п. 124. ИСБН 978-1-55860-753-8 .
- ^ Питер Роб; Карлос Коронель, Питер Роб (2009). Системы баз данных: проектирование, внедрение и управление . Cengage Обучение. стр. 190–. ISBN 978-1-4239-0201-0 . Проверено 28 ноября 2012 г.
- ^ Т.А. Халпин; Энтони Дж. Морган (2008). Информационное моделирование и реляционные базы данных . Морган Кауфманн. стр. 772–. ISBN 978-0-12-373568-3 . Проверено 28 ноября 2012 г.
- ^ Майкл Ф. Уорбойс (1995). Гис: вычислительная перспектива . Тейлор и Фрэнсис. стр. 57–. ISBN 978-0-7484-0065-2 . Проверено 22 ноября 2012 г.
- Дата, CJ (2004). Введение в системы баз данных (8-е изд.). Аддисон-Уэсли . ISBN 978-0-321-19784-9 .