我有兴趣了解像这样运行的工具:
给定数据库模式和一些数据,建议模式是否可能以任何特定的正常形式构建,然后告诉如何对模式进行分解以产生进一步的规范化.
基本上,用于数据库模式设计的静态分析工具.
像其他静态分析工具一样,这样的数据库工具不需要生成完美的结果(我怀疑这种"完美"工具在计算上是可行的),或者适用于所有数据库系统,或免费/开源,或其他任何东西.该工具不必独立; 它可以捆绑为一些复杂的IDE功能.我只是想知道那里有什么.
对于像stackoverflow这样的高流量网站,数据库设计和规范化的最佳实践是什么?
是否应该使用标准化数据库进行记录保存或标准化技术或两者的组合?
将规范化数据库设计为记录保存的主数据库以减少冗余并同时维护数据库的另一种非规范化形式以便快速搜索是否合理?
要么
主数据库是否应该非规范化,但在应用程序级别使用标准化视图来进行快速数据库操作?
或其他一些方法?
performance database-design high-availability denormalization database-normalization
我是个小伙子.开发人员(工作5个月),我对数据规范化有疑问.现在,据我所知,数据规范化背后的一般原则是创建一个RDBMS,将数据冗余保持在最低限度.在我的项目中,其中一个DB人员创建了一个DB.我们有50多个表,DB中的表通常非常分散,即.一个表有两三列,就是这样.现在,在编写SQL查询时,由于每个查询都涉及梳理几个不同的表并将它们连接在一起,因此它已成为一个小问题.我想知道这是否是数据规范化的副作用?或者这指向其他什么?
我知道对我来说最简单的事情就是根据我必须编写的查询来编写表.这将创建一个包含大量冗余数据的数据库,但我很好奇是否有一个快乐的媒体?
就像后记一样,我不想碰到我正在抱怨我的工作,但我真的很想知道更多关于这一点.我的工作环境不是最友好的,所以我不愿意和同事提出这个问题.但是,我会感谢来自更有经验的人的任何想法,书籍,教程或意见.
谢谢.
我对事实表进行了一些研发,无论它们是标准化还是非标准化.我遇到了一些令我困惑的发现.
根据Kimball的说法:
维度模型结合了规范化和非规范化表格结构.描述性信息的维度表在同一个表中具有高度非规范化,具有详细和分层的汇总属性.同时,具有性能指标的事实表通常是标准化的.虽然我们建议不要在单独的表中使用snowflaked维度属性进行完全规范化(为业务用户创建类似暴雪的条件),但是在同一个表中同时包含度量和描述的单个非规范化大型宽表也是不明智的.
我认为另一个发现,我认为是好的,来自GeekInterview的fazalhp:
DW的主要基础是对数据进行去规范化,以便报告工具更快地访问...因此,如果你构建一个DW ..90%,它必须被去规范化,当然事实表必须被规范化. ..
所以我的问题是,事实表是规范化的还是非规范化的?如果这些中的任何一个如何以及为什么?
reporting data-warehouse database-normalization business-intelligence
我一直在阅读许多关于如何区分3NF/BCNF关系的不同来源.到目前为止,这是我的理解......
我将以此关系为例......
R = {A, B, C, D, E}
和
F = {A -> B, B C - > E, E D -> A}.
首先,我们必须找到关系的关键.我用这个视频来帮助我做到这一点.我得到了
Keys = {ACD, BCD, CDE}
现在要确保R在BCNF中,我们必须确保每个功能依赖的左侧F是其中之一Keys.我们立即知道情况并非如此,因为第一个FD是A -> B并且A不是其中一个键.所以它不在BCNF.
现在要确保R在3NF中,我们必须确保每个函数依赖的左侧F是Keys OR中的每个函数依赖的右侧之一F是其中一个的子集Keys.如果你看看每个FD的右侧,它们就是B,E和A.这些都是a的子集Key,因此这意味着它在3NF中.
因此,这是一种罕见的情况(根据维基),其中存在关系3NF但不存在 …
database 3nf database-normalization functional-dependencies bcnf
员工被组织成团队。每个团队可以有多个员工,每个员工可以属于多个团队。这种多对多关系由team_membership表表示。
每个项目分配给一个团队。项目细分为任务,每个任务分配给一名员工。
是否可以保证任务的员工是相应项目团队的成员,而不添加触发器或冗余列?
CREATE TABLE employee
(
employee_id bigserial PRIMARY KEY,
employee_name text
);
CREATE TABLE team
(
team_id bigserial PRIMARY KEY,
team_name text
);
CREATE TABLE team_membership
(
team_id bigint NOT NULL REFERENCES team,
employee_id bigint NOT NULL REFERENCES employee,
PRIMARY KEY (team_id, employee_id)
);
CREATE TABLE project
(
project_id bigserial PRIMARY KEY,
team_id bigint NOT NULL REFERENCES team,
project_name text
);
CREATE TABLE task
(
task_id bigserial PRIMARY KEY,
task_name text,
project_id bigint NOT …Run Code Online (Sandbox Code Playgroud) 我在平面文件中输入数据.我想通过将它们分成表来规范化这些数据.我可以巧妙地做到这一点pandas- 也就是说,通过将扁平数据读入DataFrame实例,然后应用一些函数来获得结果DataFrame实例?
例:
数据以CSV文件的形式提供给我,如下所示:
ItemId ClientId PriceQuoted ItemDescription
1 1 10 scroll of Sneak
1 2 12 scroll of Sneak
1 3 13 scroll of Sneak
2 2 2500 scroll of Invisible
2 4 2200 scroll of Invisible
Run Code Online (Sandbox Code Playgroud)
我想创建两个DataFrame:
ItemId ItemDescription
1 scroll of Sneak
2 scroll of Invisibile
Run Code Online (Sandbox Code Playgroud)
和
ItemId ClientId PriceQuoted
1 1 10
1 2 12
1 3 13
2 2 2500
2 4 2200
Run Code Online (Sandbox Code Playgroud)
如果pandas对于最简单的情况只有一个很好的解决方案(规范化导致2个表具有多对一关系 - 就像上面的例子一样),它可能足以满足我当前的需求.但是,我将来可能需要一个更通用的解决方案.
我只是想确保我正确地思考它
1)完全依赖性是指一个或多个主键确定另一个属性
2)部分依赖性是当其中一个主键确定另一个或多个属性时
3)传递依赖性是当nonkey属性确定另一个属性时
我在想它吗?
因此,我正在查看我的数据库备注和材料,试图让自己了解即将采访的一般概念和术语.然而,我已经陷入了依赖,然而无损连接分解.我已经搜遍了所有并且看到了许多mathy方程式,但我正在寻找一个简单而简单的英语响应或示例.
我从http://www.cs.kent.edu/~jin/DM09Fall/lecture6.ppt找到了一个powerpoint,它说明了一个我无法完全理解的例子.它发布在下面.
R = (A, B, C)F = {A ? B, B ? C)
Can be decomposed in two different ways
R1 = (A, B), R2 = (B, C)
Lossless-join decomposition:
R1 ? R2 = {B} and B ? BC
Dependency preserving
R1 = (A, B), R2 = (A, C)
Lossless-join decomposition:
R1 ? R2 = {A} and A ? AB
Not dependency preserving (cannot check B -> C without computing R1 ? R2)
Run Code Online (Sandbox Code Playgroud)
所以我理解A→B和B→C意味着你们彼此有"参考",而A→B和A→C意味着B和C之间没有参考或联系.
所以,
Lossless-join分解是否意味着整体数据仍然完好无损?在这两种情况下,您仍然可以最终获得两种数据,对吧?如果这是错的,请纠正我!:)
在第二次分解中将连接B设置为C有什么意义,这又如何使它不依赖于保留? …
警告:
我在用户和门钥匙之间有两种关系.我想了解:
json nosql database-normalization firebase firebase-realtime-database
database ×5
sql ×2
3nf ×1
bcnf ×1
firebase ×1
foreign-keys ×1
genexus ×1
json ×1
nosql ×1
pandas ×1
performance ×1
postgresql ×1
python ×1
reporting ×1