问题标签 [relational]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
7 回答
4686 浏览

database - 对象数据库的优缺点是什么?

有很多关于对象关系映射器以及如何最好地避免阻抗不匹配的信息,如果要使用对象数据库,所有这些似乎都没有实际意义。我的问题是为什么不更频繁地使用它?是因为性能原因还是因为对象数据库导致您的数据成为应用程序的专有,还是由于其他原因?

0 投票
1 回答
261 浏览

graph-theory - 关系理论如何以我在学习时关心的方式应用?

所以我正在从麻省理工学院的 OpenCourseWare 学习离散数学课程,我想知道......我看到了关系和图形之间的联系,但还不足以“拥有”它。我也在 SQL 中实现了一个简单的状态机,所以我很好地理解了图表,只是没有更严格地研究关系和集合是如何应用的。我是否应该遵循 Yegge 的思路,只浏览那些我不喜欢摸索的东西,等我学到更多东西后再回来?我希望能够更好地分析我每天创建的图形结构(听起来很有趣),并且我想确保我现在没有传递有价值的信息。

(编辑:我想更好地了解不同的集合和关系属性如何与图论等事物相关,以及基本图论如何与集合/关系相关。)

有什么好的资源可以让我了解更多信息吗?我正在使用 Rosen 的第 5 版离散数学及其应用,以防万一。

谢谢!

0 投票
6 回答
5736 浏览

database-design - 在关系数据库中表达 is-a 关系

我想知道是否有一种干净的方式来表示 is-a 关系,如下例所示:

该数据库存储三种类型节目的录制时间:电影、游戏节目、戏剧。在面向对象的意义上,这些中的每一个都是一个程序。这些子类中的每一个都有不同的属性。以下是表格(fk 前缀表示外键):

电影
ID
名称
fkDirector

gameShow
id
name
fkHost
fkContestant


_

在 OO 术语中,记录表看起来像这样:

record
id
fkProgram
startTime
endTime

在不违反常规形式的情况下,我能想到的唯一方法是拥有三个记录表,即 recordMovierecordGameShowrecordDrama

有没有办法在不违反数据库规范化原则的情况下将这些表合并为一个?

以下是一些无效的示例来说明这个想法:

程序
id
fkMovie
fkGameShow
fkDrama

该表违反了第一范式,因为它将包含空值。对于每一行,3 个条目中只有一个不为空。

program
id
fkSpecific ← fkMovie OR fkGameShow OR fkDrama
fkType ← 将指示要查看的表

在这里,我将无法强制执行参照完整性,因为 fkSpecific 可能指向三个表之一。

我只是想节省在这里有 3 个表而不是一个的开销。也许这根本不适用于 RDB。

0 投票
7 回答
476 浏览

database-design - 关系阵营和“现实世界”数据库开发

自1995 年伊达和达尔文的《第三宣言》首次出版以来,已经过去了十多年。

关系学派在当今数据库世界中的位置是什么?是否有任何证据表明 Manifesto 的想法改变了主流软件开发和数据管理实践?他们是否催生了新的数据管理产品?这些产品在商业上是否成功?

0 投票
2 回答
1796 浏览

architecture - 选择数据库类型

你什么时候会使用 bigtabe/simpledb 数据库和关系数据库?

0 投票
2 回答
394 浏览

oop - 如何将对象的中间层连接到由 DataSet 组成的数据层?

我有一个包含多个相关对象的中间层和一个使用具有多个 DataTables 和关系的 DataSet 的数据层。

我想在我的一个对象(父对象)上调用 Save 方法,并将其私有变量数据转换为 DataRow 并添加到 DataTable。一些私有变量数据实际上是其他对象(子对象),每个对象都需要调用自己的 Save 方法并保留自己的变量数据。

我如何将它“系在一起”?应该在 ParentObject 中实例化 DataSet 的哪些部分以及需要将哪些部分传递给 ChildObject 以便它们可以将自己添加到数据集中?

另外,如何将两个表的关系连接在一起?

我看到的关于 Order OrderDetail 关系的示例创建了 OrderRow 和 OrderDetailRow,然后调用 OrderDetailRow.SetParentRow(OrderDetail)

我认为这对我不起作用,因为我的 Order 和 OrderDetail(使用它们的示例命名)位于不同的类中,并且示例都在 Big Honking Method 中发生。

谢谢你,基思

0 投票
12 回答
29293 浏览

sql - 你如何记录你的数据库结构?

许多数据库系统不允许对表和字段进行注释或描述,那么除了具有良好命名约定的明显内容之外,您如何记录表/字段的用途?

(我们现在假设“优秀”的表和字段名称不足以记录数据库中每个表、字段和关系的全部含义。)

我知道很多人使用 UML 图来可视化数据库,但我很少(如果有的话)见过包含字段注释的 UML 图。.sql但是,我在文件中使用注释方面有很好的经验。这种方法的缺点是,.sql当数据库结构随时间发生变化时,它需要手动保持文件是最新的——但如果你这样做了,你也可以让它处于版本控制之下。

我见过的其他一些技术是描述数据库结构和关系的单独文档,以及在 ORM 代码或其他数据库映射代码中手动维护的注释。

您过去是如何解决这个问题的?存在哪些方法以及与之相关的各种利弊?您希望如何在“完美世界”中解决这个问题?

更新

正如其他人所指出的,大多数流行的 SQL 引擎实际上都允许注释,这很棒。奇怪的是,人们似乎并没有过多地使用这些功能。至少不是我过去参与的项目。

0 投票
9 回答
1167 浏览

sql - 过去 10 年有哪些关系数据库创新

关系数据库的 SQL 实现以目前的形式已经存在了大约 25 年(自 System R 和 Ingres 以来)。甚至主要(松散地遵守)标准是 ANSI-92(尽管后来有更新)也有 15 年的历史。

在过去十年左右的时间里,您能想到基于 SQL 的数据库有哪些创新。我特别排除了 OLAP、列式和其他非关系(或至少非 SQL)创新。我还想排除“应用程序服务器”类型的功能和捆绑(如报告工具)

尽管基本方法仍然相当静态,但我可以想到:

  • 可用性
  • 能够处理更大的数据集
  • 易于维护和配置
  • 支持更高级的数据类型(blob、xml、unicode 等)

还有其他你能想到的吗?

0 投票
2 回答
2510 浏览

sql - 如何编写通过关系表获取结果的 SQL 语句?(多对多)

我有 3 个表(档案有很多部分,部分(可能)属于许多档案):

  • archive

    • id PK
    • description
  • archive_to_section

    • archive_id PK FK
    • section_id PK FK
  • section

    • id PK
    • description

列出属于某个归档 id 的所有部分的 SQL 会是什么样子?

我只是在学习 SQL。从我读到的内容听起来我需要加入或工会?仅供参考,我正在使用 postgres。


[编辑]这是 gdean2323 的答案,没有别名:

0 投票
8 回答
65813 浏览

database-design - 什么是标准化(或标准化)?

为什么数据库人员继续进行规范化?

它是什么?它有什么帮助?

它适用于数据库之外的任何东西吗?