Database 构建数据库以在SQLite中存储矩阵

Database 构建数据库以在SQLite中存储矩阵,database,database-design,sqlite,matrix,Database,Database Design,Sqlite,Matrix,在工程模拟预测应用程序的数据库中: 每个用户创建一个“项目” 在项目中,用户指定两个类别的项数:cat_1和cat_2 cat_1和cat_2将分别具有n1和n2项 然后,该程序将cat_1和cat_2转换为两个矩阵mat_1 mat_2,使得每个矩阵的行=列=n1或n2。也就是说,如果一个类别有3条记录(“a”、“b”和“c”),那么矩阵将是3乘3,行和列分别为“a”、“b”和“c” 然后将矩阵乘以系数(K_r) 乘法返回48个矩阵,96个矩阵,48个用于cat_1,48个用于cat_2 每

在工程模拟预测应用程序的数据库中:

  • 每个用户创建一个“项目”
  • 在项目中,用户指定两个类别的项数:cat_1和cat_2
  • cat_1和cat_2将分别具有n1和n2项
  • 然后,该程序将cat_1和cat_2转换为两个矩阵mat_1 mat_2,使得每个矩阵的行=列=n1或n2。也就是说,如果一个类别有3条记录(“a”、“b”和“c”),那么矩阵将是3乘3,行和列分别为“a”、“b”和“c”
  • 然后将矩阵乘以系数(K_r)
  • 乘法返回48个矩阵,96个矩阵,48个用于cat_1,48个用于cat_2
  • 每个矩阵中都有用户指定并提供值的控制数组/变量mat_1_aij和mat_2_bi2j2
  • 这些变量表示模拟应匹配的现场采集数据
  • 算法对两个矩阵进行多次迭代(大约1000次),直到观测值分别=mat1_aij和mat_2bi2j2
问题


设计/构建/存储这样一个数据库(尤其是矩阵)的最佳实践方法是什么?您可能预见到的一些设计/实现问题是什么?

我认为矩阵通常在关系模型中表示为邻接列表。这意味着矩阵的每个维度都有一列包含坐标,该单元格中的值有一(或多)列

这应该允许有效的查询,但应该避免使用点查询(即,在单个单元格中请求值)在矩阵中进行迭代。如果可能,您应该用(ansi/无游标)sql编码尽可能多的算法,并让DBMS执行它

如果这是不可能的,您将从数据库中读取整个矩阵(或所需的块),执行算法并将其写回。如果您说到这一点,您可能想问问自己,关系数据库是否是您所需要的