我正在修改Prolog并遇到了以下问题。 假设我想创建一个关于大学课程的小知识库。 我需要以下两种关系方案:
relation scheme for lecturer: lecturer(Name,Surname)
relation scheme for course: course(Topic,Lecturer,Date,Location).
我有一位讲师John Doe:
lecturer(doe,john).
John Doe教授复杂性课程:
course(complexity,lecturer(doe,john),monday,roomA).
现在我的信息冗余 - 不好! 有没有办法实现这样的目标:
l1 = lecturer(doe,john).
course(complexity,l1,monday,roomA).
非常感谢提前!
答案 0 :(得分:3)
与数据库中相同的归一化可能性适用:
id_firstname_surname(1, john, doe).
和
course_day_room_lecturer(complexity, monday 'A', 1).
也就是说,我们为每位讲师引入了一个唯一的ID,并用它来引用该人。