如何解释此图

How To Interpret This Diagram

我这学期在上数据库课程,我想弄清楚如何解释这张图

我知道键符号代表主键或外键,但我分不清哪个是哪个。我认为具有 2 条垂直线的 tables 至少有一个外键来自线来自的 table,但我不是 100% 确定。这就是我(认为)我所理解的。

我真正需要的是有人告诉我这种图表的名称and/or如何解释它,以便我可以编写SQL脚本来表示它。

  • A键符号表示主键或PK。
  • 外键 (FK) 没有任何符号,但您可以猜到。例如 student.dept_name 来自 department.dept_name
  • 箭头从 department 指向 student 表示一个系有 0 to N 名学生
  • 它们是两个符号,一个以圆圈开始,另一个以双线开始。我猜一个是 0 .. N,另一个是 1 .. N,但不知道你是如何制作图表的,所以无法确定。
  • 此图调用ER或Entity Relationship
  • 每个框都是一个 table 或您必须在脚本中创建的实体,然后创建 PK,然后定义 FK。

这就是我在图表中看到的内容,尽管它可能并不完美,因为并非所有键都直接连接到它们的主要来源。 >OO< 表示需要有很多反对的东西。一个例子是一个部门有很多学生。 O||O表示必须有1个且只能有1个。每个学生必须注册一个系,但他们只能注册一个系。 ||表示一对多。每门课程可以有一个或多个部分(通常由希望参加该课程的学生人数决定)。

对于键的问题,主键和外键没有明显的区别。我假设在每种情况下,如果一个键简单地称为 ID 或包含 table 名称的一部分(例如部门:dept_name),那么它就是主键,所有其他键都是外键.同样,有些难以分辨,因为并非所有关系都映射到此特定图表中(例如 teaches/takes 和键集 course_id、学期和年份),但在这些情况下,我们假设它是一个复合关系键(多个字段中的值构成唯一记录)而不是单个主键(尽管 table 部分似乎只有一个主键)。在这种情况下,简单地说第 01 或 01O 部分没有任何意义,并且可能 return 行数与 class 标题的行数相同。您必须为当前学期在线 CIT261 课程的第一部分指定 course_id = CIT261, sec_id = '01O', semester = 'fall', year = 2015,这应该 return 一行。

另一个有趣的注意事项,似乎顾问table满足多对多关系,并且不包含主键,而是另一个组合键,但它似乎不是实体作为学术顾问的模型通常通过系与学生联系在一起。这可能是为了反映导师的TA。

我希望这能为您指明正确的方向。

-C§