tec*_*hie 3 sql sqlite olap normalization denormalization
我开发了一个黑莓应用程序(分类帐管理系统),它使用 SQLite 进行数据存储。
我在我的应用程序中创建的表之间有几种关系
以下是一些表及其列:
1. Customer Details-Name,Phone,Email
2. Bills-Name,Amount
3. Update Customer-Name
4. Update Bills-ID
Run Code Online (Sandbox Code Playgroud)
和许多其他临时表。
当我开发这个应用程序时,我从来没有真正费心去查看我的表是否被规范化。
现在在我完成我的应用程序后,我想知道是否需要规范化。
我的大部分查询都是基于选择插入客户和账单表单的记录,然后对其进行操作。
例如,我有一个捕获所有客户数据的客户详细信息表。现在一旦在数据库中记录了一个名称,我不希望表中再次出现相同的名称,所以这需要规范化概念。
同样在像 SQLite 这样的 RDBMS 中,规范化是必不可少的。它是否与基于 DBMS 的表具有相同的含义。
OLAP 和 OLTP 系统与数据库规范化之间也有什么区别。如果是,我的黑莓应用程序会被归类为哪些类别?
如果有人对此表示赞赏,请给予指导。
小智 5
数据库规范化是指关系数据库。SQLite 是类似于 Oracle、MySQL 或 Postgress的RDBMS(我认为这就是您所说的基于 DBMS 的表的意思),所以是的,规范化适用于存储在 SQLite 中的数据库。当然,您可以像使用键值存储一样使用 SQLite,但您的情况似乎并非如此。
数据库规范化非常重要,但如果您仔细设计表,即使没有尝试,您通常也会得到3FN 中的数据库。对于您的应用程序来说,追求更高的 FN 可能不是必需的。
出于效率原因,OLAP 数据库通常保存非规范化数据。除非您遇到性能问题并且您知道自己在做什么,否则最好不要尝试这样做,特别是在小型应用程序中。
似乎您正在使用一个人的名字作为关键。为每个人分配一个数字标识符并使用它可能会更好,但这可能在您的应用程序中没有问题。