数据库初学者在这里。关系模型vs EAV
我一直在研究专栏模型一段时间,我来到this paper。它基本上提出了专门的专卖店模式来为稀疏和庞大的临床数据进行快速搜索。
我大致理解本文提出的内容,但关于关系模型和EAV模型的一些想法让我困惑。该论文假设关系模型甚至不能用于临床数据,并比较EAV和列存储模型的性能。
EAV可以表示高维数据,由于现有RDBMS仅支持有限数量的列,因此无法用关系模型进行建模。
当我从this question和它的第一个答案了解,临床数据是高维(如预期),但
为什么经典的正常化,不是用来和EAV用于那些?
关系模型是:
Person: Id, Name, Surname, DateOfBirth, ...
Measurement: Id, Name, Desc, ...
PersonMeasurement: Id, PersonId, MeasurementId, Result, Date
现有RDBMS的限制并不妨碍我们使用关系模型来模拟高维数据,同样,算盘的限制并不妨碍我们用代数表示大数。现有的RDBMS甚至不忠实地实现关系模型。 – reaanb
请注意,您的PersonMeasurement表是EAV模型而不是关系数据模型。特别是,结果列的域取决于MeasurmentId的值。关系数据模型将组织测量结果作为一阶谓词,例如, '重量(PersonId PK,Date PK,Kilograms)','BloodPressure(PersonId PK,Date PK,收缩压,舒张压)'等等。 – reaanb
现在我很清楚,谢谢。还有一个问题。在今天的RDBMS中,如何将Weight和BloodPressure表示为真正的关系模型? – dewe