如何将现有的关系数据库转换为键值存储?
How to convert an existing relational database to a key-value store?
我正在尝试将现有的关系数据库映射到键值存储。下面显示了几个示例 table。
例如上面的"Employee Details" table可以在Redis(或任何类似的键值存储)中表示如下
set emp_details.first_name.01 "John"
set emp_details.last_name.01 "Newman"
set emp_details.address.01 "New York"
set emp_details.first_name.02 "Michael"
set emp_details.last_name.02 "Clarke"
set emp_details.address.02 "Melbourne"
set emp_details.first_name.03 "Steve"
set emp_details.last_name.03 "Smith"
set emp_details.address.03 "Los Angeles"
"Payments"table也可以如上表示。但是这种方法并没有建立"Employee Details"table和"Payments"table之间的一对多关系。因此,有没有更好的方法从现有的 RDBMS 中实现键值存储。您可以参考这两个 table 并建议更好的键模式来存储值。提前致谢。
Nosql 数据库基本上是聚合存储。关系及其相关值存储在键-值设计的 'value' 部分。
避免连接有助于提高性能。
关于 nosql 建模的优秀链接 -
https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/
Relational tables represent business/application relationships/associations. FK(外键)得到 调用 关系但不是。 (它们只是关于每个 business/application 情况和相应数据库状态的真相。)FK 约束声明只是告诉 RDBMS 强制子行作为超级键(唯一键)出现在其他地方。 (尽管 DBMS 可以使用它来优化。)关系查询不需要约束。
外键是相关的。在非关系 DBMS 中,如果您想使某些查询更简单或更快,例如,当它们等效于涉及某些 FK 的某些关系连接时,以牺牲使更新和其他查询复杂化,然后你会做一些事情,比如冗余地记录数据,或者以 nested/hierarchical 的方式,或者使用 pointers/indirection.
关系与非关系模式和查询的这种差异是 difference in data models & to the benefits of the relational model. Using relational tables as data structure allows straightforward application-neutral querying with with certain implementation computational complexity & optimization opportunities. Any intro to a particular NoSQL DBMS 的基础,将解释如何建模和查询。 (通常假设初始 关系 设计。)
我正在尝试将现有的关系数据库映射到键值存储。下面显示了几个示例 table。
例如上面的"Employee Details" table可以在Redis(或任何类似的键值存储)中表示如下
set emp_details.first_name.01 "John"
set emp_details.last_name.01 "Newman"
set emp_details.address.01 "New York"
set emp_details.first_name.02 "Michael"
set emp_details.last_name.02 "Clarke"
set emp_details.address.02 "Melbourne"
set emp_details.first_name.03 "Steve"
set emp_details.last_name.03 "Smith"
set emp_details.address.03 "Los Angeles"
"Payments"table也可以如上表示。但是这种方法并没有建立"Employee Details"table和"Payments"table之间的一对多关系。因此,有没有更好的方法从现有的 RDBMS 中实现键值存储。您可以参考这两个 table 并建议更好的键模式来存储值。提前致谢。
Nosql 数据库基本上是聚合存储。关系及其相关值存储在键-值设计的 'value' 部分。
避免连接有助于提高性能。
关于 nosql 建模的优秀链接 - https://highlyscalable.wordpress.com/2012/03/01/nosql-data-modeling-techniques/
Relational tables represent business/application relationships/associations. FK(外键)得到 调用 关系但不是。 (它们只是关于每个 business/application 情况和相应数据库状态的真相。)FK 约束声明只是告诉 RDBMS 强制子行作为超级键(唯一键)出现在其他地方。 (尽管 DBMS 可以使用它来优化。)关系查询不需要约束。
外键是相关的。在非关系 DBMS 中,如果您想使某些查询更简单或更快,例如,当它们等效于涉及某些 FK 的某些关系连接时,以牺牲使更新和其他查询复杂化,然后你会做一些事情,比如冗余地记录数据,或者以 nested/hierarchical 的方式,或者使用 pointers/indirection.
关系与非关系模式和查询的这种差异是 difference in data models & to the benefits of the relational model. Using relational tables as data structure allows straightforward application-neutral querying with with certain implementation computational complexity & optimization opportunities. Any intro to a particular NoSQL DBMS 的基础,将解释如何建模和查询。 (通常假设初始 关系 设计。)