Как вы определяете (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 ∨ ...