Как вы определяете (1,6) кардинальности, используя Реляционное исчисление

У меня есть эти три таблицы:

 Customer
 Rent
 Book

Кардинальность между Клиентом и таблицей Рента равна (1,6), а кардинальная величина между таблицей Рента и Книга составляет (1, бесконечность).

Используя синтаксис реляционного исчисления, я бы определил (0,1) мощность следующим образом:

∀x∀y∀z(rent(x,y)∧rent(x,z) → y =z)

Но как я могу определить (1,6) кардинальность?

1 ответ

Решение

Вы можете выразить это (в исчислении предикатов, как вы выразили свой вопрос) следующим образом:

∀ x (x ∈ Customers →  ∃ y rent(x,y))

∧

∀ x (x ∈ Customers → cardinality ({ y | rent(x,y)}) ≤ 6)

Если вы предпочитаете, вы можете написать условие cardinality(set) ≤ n со сложным логическим выражением формы:

∀y1∀y2 ... ∀yn (rent(x,y1) ∧ rent(x,y2) ∧ ... ∧ rent(x,yn)
                  ∧ y1 ≠ y2 ^ ... (all the possible pairs) ... 
  → ∄ ys (rent(x,ys)  ∧ ys ≠ y1 ^ ys ≠ y2 ^ ... ^ ys ≠ yn)

или в более сжатой форме (см. примечание @philipxy):

∀y0∀y1 ... ∀yn (rent(x,y0) ∧ rent(x,y1) ∧ ... ∧ rent(x,yn) → y0 = y1 ∨ ... 
Другие вопросы по тегам