Чому термін “відношення (al)”?


26

Англійською мовою ми можемо говорити про співвідношення між, скажімо, Боб і Тімом. Можливо, вони двоюрідні брати. Термін "відношення" в цьому контексті для мене має сенс.

У контексті реляційних баз даних я розумію, до чого відноситься цей термін, але не розумію, для чого він використовується. Я вважаю, що розуміння того, чому він використовується, допоможе мені краще зрозуміти поле, тому я хотів би зрозуміти, для чого він використовується.

  • Чому, наприклад, Особу вважають "відношенням"? В англійській мові відношення - це іменник, який описує, як пов’язуються дві сутності. Це не стосується самих утворень. У контексті реляційних баз даних "відношення" відноситься до самих сутностей. Чому?
  • Я розумію, що реляційна модель з'явилася після ієрархічної та мережевої моделей (наприклад, батьків, сусідів). Але в цих моделях суб'єкти також мають відносини один до одного. То чому б називати цю модель реляційною моделлю? Чи є більш конкретна фраза / термін? Чи, можливо, слід сказати, що всі три моделі є реляційними моделями, але ієрархічні та мережеві моделі - це конкретні типи реляційних моделей?
  • Що робити, якщо у нас є самостійні сутності, які не стосуються один одного. Скажіть, особа, двері та дерево. Чи термін "відношення (al)" все ще застосовується?

(Можливо, це має бути кілька запитань. Я зрозумів, що відповіді дуже пов'язані - можливо, є лише одна відповідь, - тому я зрозумів, що має сенс це одне питання. Якщо я помиляюся, дайте мені знати, і я замість цього створіть окремі запитання.)


Редагувати: Ця діаграма може бути корисною для уявлення про те, що відношення стосується різних доменів один до одного:

введіть тут опис зображення

Відповіді:


33

Перш за все, я дуже рекомендую науковий документ, в якому доктор Едгар Френк Кодд опублікував реляційні рамки для широкої громадськості в 1970 році, тобто "Реляційна модель даних для великих спільних банків даних" . Там, у розділі 1.1, "Вступ", сам доктор Кодд заявляє, що:

Ця стаття стосується застосування елементарної теорії відношень до систем, які забезпечують спільний доступ до великих банків форматованих даних.


© Асоціація обчислювальної техніки. Комунікації ОСББ, том 13, випуск 6 (с. 377-387), червень 1970 року.

Отже, так, терміни співвідношення і (отже, реляція походять від математичного походження). Доктор Кодд, який, окрім своїх академічних та дослідницьких даних, мав близько 20 років досвіду роботи з обчислень та обробки інформації - передбачив величезні переваги застосування цього відношення (абстрактна конструкція, природно) у галузі управління даними. .

Я не математик, але, в основному, відношення - це асоціація між множинами , множина - це сукупність елементів ( цей зовнішній ресурс дає визначення математичного відношення, яке може допомогти зрозуміти це з іншого погляду). Під час роботи за допомогою системи управління базами даних SQL (СУБД для стислості) добре відомим наближенням відношення є таблиця , в цьому випадку асоціація відбувається між типами його стовпців . Очевидно, що в платформах SQL, які пропонують підтримку DOMAIN (наприклад, Firebird та PostgreSQL ), асоціація відбувається міждомени, закріплені за стовпцями відповідної таблиці; див. розділи нижче, щоб отримати більш детальну інформацію.

У цьому відношенні я знову наводжу доктора Кодда, який у розділі 1.3 "Реляційний погляд на дані" стверджує, що:

Термін відношення тут використовується в його прийнятому математичному значенні. Дані множини S 1 , S 2 , ⋯, S n , (не обов'язково виразні), R - відношення до цих n множин, якщо це набір n- пар, кожен з яких має свій перший елемент від S 1 , другий його елемент від S 2 тощо. 1 Ми будемо називати S J як J - й області з R . Як визначено вище, R, як кажуть, має ступінь n. Відносини ступеня-часто називають унарна , ступінь 2 довічних , ступінь 3 потрійних , і ступінь п п-кова .

1 Більш коротко, R є підмножиною декартового добутку S 1 × S 2 × S 3 ⋯ × S n .


© Асоціація обчислювальної техніки. Комунікації ОСББ, том 13, випуск 6 (с. 377-387), червень 1970 року.

І я погоджуюся з іншими відповідями в тому, що дуже актуально зазначити, що доктор Кодд вніс деякі адаптації в математичне відношення, щоб отримати максимальну користь від цього щодо управління даними, і вони пояснюються в документі, про який говорилося раніше і у всій його широкій бібліографії .

Відносини та стосунки

Ситуація, яку варто підкреслити, полягає в тому, що при роботі з цими предметами може виникнути плутанина через подібність, що існує щодо повсякденних (нематематичних, нетехнічних) визначень термінів співвідношення та відносини - які як не- носія англійської мови, мені здається особливо зрозумілою -.

Вид сутність-зв'язок і реляційна модель

Інший фактор, який, на мою думку, може також викликати плутанину (і тісно пов'язаний з технічними конотаціями двох викладених вище термінів) - це те, що під час навчання проектування баз даних студент або практик, як правило, спочатку знайомиться з методологією, запропонованою д-ром Пітер Пін-Шен Чен у погляді на дані про відносини між сутностями (опубліковані в 1976 р.), Який пропонує два різних реалізація (тобто сутність та взаємозв'язок ) для розмежування концептуальної схеми, і то лише після визначення зазначеної схеми. є стабільним, студент або практик знайомиться з реляційними термінами та інструментами (наприклад, відношення ) при оголошеннілогічне розташування відповідної бази даних. У концептуальній системі відліку відносини містять конотації, які набагато ближче до повсякденного сенсу цього слова.

Тоді, можливо, ця обставина також додає до питання про співвідношення та відносини - але послідовність спочатку визначення концептуальної схеми та згодом декларування відповідного логічного задуму, звичайно, цілком доречна, як я деталізую в наступних розділах.

Відповіді на кожне ваше запитання

Я вважаю, що включення цих трьох піддослідних справді доречне, оскільки вони встановлюють більш широкий контекст для посади, тому їх не можна не помічати. Таким чином, крім виключно адресації , чому терміни відносини і реляційна використовуються (що , безумовно , є дуже важливим і є назва посади, але це НЕ весь пост), сказав подвопроси може допомогти в розумінні більше обсягу ставлення і реляційна модель , коли один беруть участь в проекті управління всією інформацією (саме на часі , так як це сайт про адмініструванні баз даних) і , отже , працює на різних рівнях абстракції. Таким чином я збираюся поділитися своєю детальністю нижче.

Підпитання немає. 1

Чому, наприклад, Особу вважають "відношенням"? В англійській мові відношення - це іменник, який описує, як пов’язуються дві сутності. Це не стосується самих утворень. У контексті реляційних баз даних "відношення" відноситься до самих сутностей. Чому?

Концептуальний рівень

У даному бізнес-середовищі людину можна вважати типом сутності залежно від того, як люди, які працюють там (фахівці з бізнесу та дизайнери баз даних) концептуалізують це. І, так, в цьому бізнес - середовищі, можуть бути різні властивості , що представляють інтерес по відношенню до особистості типу об'єкта, наприклад, ім'я , BirthDate , Пол і т.д.

Крім того, тип юридичної особи Особи може мати певні типи відносин (або асоціацій або з'єднань ) із самим собою або іншими типами сутності; наприклад, особа може бути асоційована з типом сутності з назвою UserProfile , який, в свою чергу, може мати свої цікаві властивості, скажімо, ім'я користувача та пароль .

Але, (a) типи сутностей, (b) їх відповідні властивості, (c) типи відносин між типами суб'єктів господарювання та (d) відносини між самими властивостями - це поняття, які "належать" до конкретного бізнес-середовища, в якому вони перебувають вважається важливим. Це пристрої, що використовуються дизайнерами баз даних, які тісно співпрацюють з бізнес-експертами з метою визначення концептуальної схеми , що залежить від контексту , на етапі проектування.

Таким чином, на концептуальному рівні ми в основному працюємо зі структурою ідей, які виникають у реальному світовому сегменті інтересу, тобто (1) прототипи речей та (2) прототипи зв’язків між прототипами речей , з якими ми не працюємо (3) відносини - використання цього останнього терміна у значенні реляційної рамки даних.

Логічний рівень

Після того, як Особа була точно визначена як тип сутності на концептуальному рівні, і якщо хочеться реалізувати реляційну базу даних, яка передає значення Персони та всі пов'язані з нею поняття, то фактами про сутності цього типу можна керувати в силу математичного відношення на логічному рівні , і скористатися науково обгрунтованими операціями, які можна виконувати на цій абстрактній конструкції (тобто визначати її, обмежувати і маніпулювати нею).

Так, можна визначити певне відношення Людина, коли визначає логічне розташування бази даних, але це не перетворює поняття «реального світу» Особи у відношення, а підходить до неї як таке через переваги, які отримуються під час управління інформацією наприклад, застосовуючи операції з відносної алгебри на ньому для отримання нових відносин (і, отже, є отримання "нової" інформації). Зазначені переваги стають більш очевидними, враховуючи той факт, що сутності певного типу складають множину, а значення певної властивості складають також множину.

І так, як зазначено в попередніх параграфах та інших відповідях, одним із найважливіших аспектів відношення є зв’язок, що існує між його доменами - які зазвичай використовуються для представлення властивостей типів сутності або асоціації, що входять до складу концептуальна схема -. Наприклад, скажімо, що ми оголосили таке (потрійне) відношення:

  • Salary (PersonNumber, EffectiveDate, Amount)

… І припустимо, що у відповідному бізнес-середовищі кортеж - який (i) означає конкретну сутність , тобто екземпляр типу сутності з відповідної концептуальної схеми та (ii) чий аналог SQL є рядок -

  • Salary (x, y, z)

… Матиме значення

  • "Зарплата, що виплачується особі, визначеній PersonNumber xна EffectiveDate, yвідповідає Сумі z" .

Відповідно - щоб описати речі приблизним чином - зв’язок між трьома доменами має найважливіше значення, всі вони пов'язані (і, так, унарне відношення передбачає лише один домен). Зв'язок між усіма значеннями певного домену теж дуже вагомий, оскільки вони складають набір точного типу . Також вміст кожного кордону Salaryвідносини повинен відповідати структурі твердження, проілюстрованому вище.

Концептуальний рівень відносин і логічний рівень відносини

Як було показано, я зараз мав справу з управлінням базами даних на двох різних рівнях абстрагування, а саме концептуальному та логічному, і ще є нижчий рівень, відомий як фізичний , який у SQL СУБД зазвичай включає, наприклад, індекси, сторінки, розширення, тощо.

Отже, відповідно до пояснень, що були раніше пояснені, на логічному рівні людина працює виключно з (а) математичними відносинами, де (b) концептуальні зв'язки або асоціації представлені (c) значеннями, що містяться в кордонах таких математичних відносин, і зазначені значення зазвичай розмежовуються за допомогою обмежень FOREIGN KEY, щоб вони могли точно представляти застосовні відносини.

І так, асоціативні сутності, тобто випадки типів відносин з коефіцієнтом кардинальності багато-багато (M: N), можна передати за допомогою кортежів одного математичного відношення - за допомогою відповідних обмежень, оголошених належним чином, звичайно -.

Підпитання немає. 2

Я розумію, що реляційна модель прийшла після ієрархічної та мережевої моделей. Але в цих моделях суб'єкти також мають відносини один до одного. То чому б називати цю модель реляційною моделлю? Чи є більш конкретна фраза / термін? Чи, можливо, слід сказати, що всі три моделі є реляційними моделями, але ієрархічні та мережеві моделі - це конкретні типи реляційних моделей?

Мережеві та ієрархічні СУБД передували їх формальній теоретичній підтримці

Доречно зазначити, що теоретична підтримка навколо ієрархічного та мережевого підходів насправді була створена на основі раніше існуючих СУБД, з метою, серед інших аспектів, тестування та встановлення надійності (1) зазначених видів програмного забезпечення та (2) пов'язаних практик управління даними - явище перевернуте, з моєї точки зору -.

Неповний у порівнянні з реляційною рамкою

Незважаючи на це, хоча існують ієрархічні та мережеві СУБД, які передували реляційній моделі, і навіть коли доктор Кодд називав кожен із цих підходів як "модель", жодна не визначається як така, якою є реляційна структура. Реляційна парадигма надає наукові конструкції для (i) визначення, (ii) обмеження та (iii) маніпулювання даними, а ієрархічний та мережевий підходи не мають повного теоретичного супроводу, щоб охопити всі три вищезгадані конструкції.

Мережеві та ієрархічні особливості

Крім того, як було сказано раніше, типи сутності та відносини - це пристрої на концептуальному рівні, вони не належать до ієрархічного або мережевого підходу, кожен з яких пропонує конкретні механізми для представлення зазначених аспектів:

  • Мережева парадигма передбачає два пристрої для представлення даних, тобто вузли та дуги (і, звичайно, ця характеристика передбачає два різні види операцій з маніпулювання даними), які, протиставляючи реляційній моделі, яка (відповідно до інформаційного принципу ) вимагає лише однієї конструкції (співвідношення), стає очевидним непотрібність, яка пов'язана з мережею. Наприклад, враховуючи, що він вдається до двох інструментів представлення, мережевий підхід накладає непрактичне зміщення запитів, що перешкоджає маніпулюванню даними.

  • Зі свого боку, ієрархічний вигляд пропонує представити дані за допомогою (фізичних!) Файлів, що складаються із записів (які, у свою чергу, складаються з полів ), організованих у три схожий спосіб; тобто один батьківський запис, пов’язаний ланцюжком із можливо багатьма дочірніми аналогами через покажчики , що створює фізичний шлях доступу щодо маніпулювання даними. Такий підхід також є несприятливим, оскільки представляє заплутаність між концептуальними та фізичними аспектами, тому зміни у форматі фізичного зберігання потребують реорганізації структур даних, що, в свою чергу, вимагає змін щодо операцій з обробки даних.

Як показано, ієрархічні та мережеві погляди накладають свої конструкції на дані, якими слід керувати, тоді як реляційна модель пропонує керувати даними елегантно в їх природній структурі за допомогою набору супутніх фактів (з яких n наступних типів множин, не очікуваних при фаза проектування, може бути виведена тощо!).

Реляційна модель не має підмоделей

І, що дуже важливо, ні ієрархічний, ні мережевий вигляд не є специфічними типами реляційних моделей, вони є просто іншими парадигмами, за якими хтось може дотримуватися (a) створення СУБД і (b) створення баз даних, але врахуйте, що ієрархічна а мережеві підходи вже десятиліттями вважаються застарілими.

Підпитання немає. 3

Що робити, якщо у нас є самостійні сутності, які не стосуються один одного. Скажіть, особа, двері та дерево. Чи термін "відношення (al)" все ще застосовується?

Так, він цілком застосований, якщо (1) керувати інформацією про ці типи сутності за допомогою мастила адаптованих математичних співвідношень та (2) виконувати застосовні реляційні операції на логічному рівні в певній базі даних, керованій за підтримки заданих реляційних СУБД .

Не має значення, якщо на концептуальному рівні вказані типи сутностей не мають типів відносин з іншими типами сутності (і варто зазначити, що тип сутності може мати відношення співвідношення «один до нуля-один-чи-багато») з самим собою), і таким чином не можна передавати і не нав'язувати жодної залежності між значеннями кортежів розглянутих відносин.


1
Я не думаю, що бути "носієм англійської мови" не потрібно розуміти або плутати термін "відношення". Якщо ви не вивчали цю конкретну область математики, це абсолютно чуже визначення. Якщо чесно, якби я не знав, що означає "відношення" в цьому контексті, ця відповідь не особливо допомогла б, цікаво, хоча деякі з них є.
IMSoP

1
@IMSoP Я цього раніше не помічав, але мій намір полягав у тому, щоб написати "іншомовний англомовний", тому я вже завершив відповідний уривок. З іншого боку, я не погоджуюся, ця відповідь особливо допомагає, оскільки я звернувся до (1) заголовка питання та (2) усіх підзапитів, що містяться в тілі запитання, які ширше контекстують публікацію. Але, звичайно, ти маєш право на власну думку.
MDCCL

16

Найцікавіше, що стоїть за «реляційною базою даних», це те, що вона (в першу чергу) не стосується відносин між таблицями, як ви могли очікувати, але стосується відношення декількох властивостей (стовпців) у кортежі. Реляційна база даних зберігає ці кортежі як рядок у таблиці.

Він заснований на реляційній алгебрі, визначеній Альфредом Тарським у своїй роботі (!) 1941 року про обчислення відносин . Він узагальнив історію терміна та використання в символічній логіці, але визначив операції, які зрештою стали основою для SQL.

Кодд перетворив це на визначення того, що можна зрозуміти як реляційну базу даних у своїх 12 заповідях .


10

Термін "реляційний" походить від математики і не має нічого спільного з відносинами між сутностями. Я не математик (тоді як Кодд мав доктор наук з математики) і тому не буду деталізувати, але вкажу на цю статтю у вікіпедії про бінарні відносини . Запис у вікіпедії про співвідношення (бази даних) дає додаткову інформацію про те, як Кодд адаптував математичні поняття для застосування до управління даними. Щодо того, чому цю математичну структуру називають відношенням, я думаю, що це має відношення до думки про те, що між доменами, що складають відношення, існує "взаємозв'язок". Найкраще джерело, яке я знаю, щоб краще зрозуміти оригінальне мислення Кодда - Фабіан Паскаль '. Кріс Дата також багато написав на RDM, і на його сайті " Третій маніфест " є розділ, в якому перераховані документи та книги. Його книга " Реляційна теорія для фахівців з обчислювальної техніки" є хорошим вступом. Я сподіваюся, що це допомагає.


7

Це інтуїтивна назва, коли ви думаєте про них за допомогою природних ключів. Ви можете вважати значення комірки як представлення сутності.

Relation: Employee
|--------+------------+--------|
| name   | job        | boss   |
|--------+------------+--------|
| Mark   | owner      | NULL   |
| Bob    | manager    | Mark   |
| Jane   | supervisor | Bob    |
| Claire | supervisor | Bob    |
| John   | cashier    | Jane   |
| Jesse  | cashier    | Jane   |
| Jason  | cashier    | Claire |
|--------+------------+--------|
  • Прізвище працівника "Джейн" пов'язане з роботою "керівник".
  • Ім’я працівника «Джон» пов’язане з начальником «Джейн».
  • Робота "касир" пов'язана з іменами працівників "Джон", "Джессі" та "Джейсон".
  • Робота «касир» пов’язана з начальниками «Джейн» та «Клер».

Я вважаю цю відповідь найбільш інтуїтивно зрозумілою, але не такою вичерпною, як MDCCL. Поєднання цієї відповіді та відповіді MDCCL мене дуже задовольняє.
Адам Зернер

6

Ви вже прийняли дуже довгу відповідь, яка має багато сказати про бази даних, але дозвольте мені відповісти на запитання, яке ви насправді задали:

Чому термін "реляційний".

Тому що таблиця є конкретним екземпляром математичного об'єкта "відношення".

Подивимося, що Вікіпедія повинна сказати про термін "відношення" (в математиці, а не RDBMS), а потім переведемо його в бази даних:

Формально відношення - це набір n-кортежів однакового ступеня. Таким чином, бінарне відношення - це сукупність пар, потрійне відношення - набір трійки тощо. Мовою теорії множин відношення між двома множинами є підмножиною їх декартового добутку.

Mathematics             | RDBMS
========================|===============
A relation is           | A table is
a set of                | a bunch of 
n-tuples                | rows
of equal degree.        | with the same cell (a.k.a. column) types and sizes.

Він продовжується теорією множин. Пам'ятайте, що це математика, настільки більш абстрактна, ніж матеріали з бази даних. Останнє речення таким чином

відношення між двома множинами є підмножиною їх декартового продукту.

Це перекладається на одну таблицю з двома стовпцями:

  • Назвемо стовпчик А "ім'ям". Його математичний набірA - це сукупність усіх (людських) імен.
  • Стовпець BI називає "місто". Його математичний набірB - це сукупність усіх міст.
  • Декартовий продукт A x B(з математики) - це новий набір, який містить усі пари (ака, тюльпани), (a, b)де aє членом Aі bє членом B. Тобто, aце ім'я та bмісто. Прикладами можуть бути (Alice, New York)або (Bob, Hollywood). Але декартовий продукт - це не лише декілька таких, але й усі вони. Співвідношення, щоб дійти до суті, є підмножиною цього декартового продукту. Іншими словами, відношення - це будь-яка кількість пар, (a, b)де aє ім’ям і bє містом, навіть взагалі жодним.

Тепер я сподіваюся, що все починає мати сенс. У RDBMS рядки таблиці просто вибирають підмножину декартового продукту з усіх можливих комбінацій у цих стовпцях. Що є при використанні RDBMS абсолютно тривіально і неактуально.

Але так як комп'ютерні науки, включаючи реляційні бази даних, це має своє коріння в математиці, ми благословенні з терміном «реляційна» тут. Це абсолютно абстрактно і не має нічого спільного з стосунками між людьми або з вами.

Як осторонь, термін "відношення" також іноді використовується для "асоціації", і він точно такий же (тут основними множинами відношення є самі відносини, як описано вище (також, таблиці)).

NB: у математиці стосунки не стосуються баз даних, а є чимось на зразок функцій, просто більш загальних (будь ласка, всі ви, математики, не починайте зараз займатися нитками, ми в dba.SE, а не в математиці. Я знаю що це неправильний шлях :)). Така функція, як f(x)=x+1також, може бути виражена набором кортежів (1, 2), (2, 3), ..., але вона може мати кожне число лише один раз на лівій руці кортежу. Тобто, це не буде дійсна функція: (1, 2), (1, 3), .... Але останнє було б дійсним відношенням; тобто у вас може бути Боб у Нью-Йорку та Боб у Голлівуді.


5

Реляційні бази даних базуються на реляційній моделі EFCodd. Реляційна алгебра описує методи , як для запиту даних. Відношення - це просто підмножина перехресного продукту деяких наборів (доменів).

Приклад

У нас є такі набори:

DepIds = {1, 2, 3, ...}
EmpIds = {1, 2, 3, ...}
DepNames = {'Engineering', 'Finance', 'Sales', ...}
FirstNames = {'John', 'Walter', 'Mary', 'Roxane', ...}
LastNames = {'Smith', 'Bondy', 'Taylor', ...}
BirthDates = {..., 1950-01-01, 1950-01-02, ...}
Jobs = {'Accountant', 'Programmer', 'Database Administrator', ...}

Далі ми маємо набори кортежів

departements = { 
    (1, 'Engineering'), 
    (2, 'Finance')}
employees = { 
    (1, 1, 'John', 'Taylor', 1985-03-22, 'Programmer'), 
    (2, 1, 'Walter', 'Bondy', 1997-09-11, 'Database Administrator'), 
    (3, 2, 'Roxane', 'Myers', 1987-12-19, 'Accountant')}

departements є підмножиною

    DepIds x DepNames

і тому це відношення.

employees є підмножиною

    EmpIds x DepIds x FirstNames x LastNames x BirthDates x Jobs

і тому це стосунок теж.

Очевидно, як відносини можна реалізувати за таблицями.

Чому математики називають набір кортежів відношенням?

Зазвичай такі властивості, як '2 менше 3', '4 дорівнює 4', '2 становить від 1 до 3,4', '-1 є негативним', називаються відношеннями.

Відношення 'менше ніж' у множині A = {1, 2, 3} визначається підмножиною

{(1, 2), (1, 3), (2, 3) }

з

A x A = {1, 2, 3} x {1, 2, 3}=
{ (1, 1), (1, 2), (1, 3), 
  (2, 1), (2, 2), (2, 3), 
  (3, 1), (3, 2), (3, 3) } 

Аналогічним чином інші відносини можна розглядати як підмножину перехресного продукту. 'x менше y', 'x дорівнює y' - двійкові відношення і тому визначаються набором пар. 'x між y a z' є потрійним відношенням 'і тому визначається набором трійки. 'x є негативним' є одинарним відношенням і тому визначається набором одинакових.

Набір заданих нами департаментів, визначених вище, є бінарним відношенням, відношення до співробітників - 6-арним відношенням.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.