數據庫初學者在這裏。關係模型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