`
Franciswmf
  • 浏览: 800349 次
  • 性别: Icon_minigender_1
  • 来自: 上海
文章分类
社区版块
存档分类
最新评论

设计和创建表间关系

 
阅读更多

第 6 节:设计和创建表间关系


在这一课,您将学习如何使用外键来设计和创建表间关系。


有关更多信息,请参阅 " 表是由外键关联的 " 第 12 页。



虽然每个表都包含有关单个主题的信息,但两个或更多个表可能会包含

相关的信息。例如,职员是部门的成员,或者销售订单是一组产品的销

售订单。数据库中的关系可能表现为表间的外键关系,也可能自身就成

为独立的表。您将在本章中看到这两种情况的示例。


通过在数据库中创建关系,可以编写用于管理表中数据的规则或惯例的

代码。当关系置入数据库结构后,将不存在对例外情况的规定。


表间关系分为以下几个类别。


• 一对一关系 一个实体中的每个项都对应于另一个实体中的零个

或一个实体。例如,在示例数据库中,一个 职员管理一个 部门。

没有地方可以输入另一个部门经理。重复该部门条目会涉及到重

复部门 ID,由于部门 ID 列是主键,所以这是不可能的。


通常,最好将处于一对一关系的项组合到一个表中。 department

表中有一个 manager 列,而不是有一个单独的表名为 manager。


有关应该单独存放项的情况,请参阅 "ASA SQL 用户指南 > 设计

数据库 "。


多对一关系 多对一关系成为表间的外键关系。在多对一关系中,

一个 实体中的主键成为多个 表中的新外键列。


例如,在您刚创建的数据库中,一个 客户可以下多份 订单,但

每份订单只能由一个客户发出。若要表示一对多关系, sales_order

表中需要一个外键列 (cust_id),它映射到 customer 表中的主键列

(id)。通常,为这两个列指定相同的名称将会方便一些。



sales_order 表的 cust_id 列中的每一个条目都必须与 customer 表的 id

列中的一个条目相匹配。 sales_order 表 (包含关系中的外键)称

作外表或引用表。 customer 表 (包含被引用的主键)称作主表或

被引用表。


多对多关系 多对多关系由一个中间表来表示,而且从该中间表


到每个相关实体存在外键关系。



例如,在示例数据库中,产品和销售订单之间存在多对多关系。

一个销售订单可能包含多种产品,而一种产品可能会出现在多个

销售订单上。

product


id

name


integer

char(15)


id

id = prod_id


sales_order_items

integer


id = id



id


sales_order

integer


description char(30)


line_id


smallint


size char(18)


prod_id integer


order_date date


color

quantity


char(6)

integer


quantity integer

ship_date date


region


char(7)



unit_price numeric(15,2)


在某些情况下,中间表 (sales_order_items) 包含附加的信息,如已订

购产品的件数以及它们的发货日期。在本例中,中间表不包含任

何附加信息。


添加用于使数据库中的表相关联的外键。


添加以下外键:


• sales_order_items 中 id 列的外键,引用 sales_order 中的 id 列。该键

将销售订单和销售订单项之间的多对一关系置入数据库。


• sales_order_items 中的 prod_id 列的外键,它引用 product 中的 id 列。

该键将销售订单项和产品之间的多对一关系置入数据库。


• sales_order 中的 cust_id 列的外键,它引用 customer 中的 id 列。该键

将销售订单和客户之间的多对一关系置入数据库。


前两个外键一起将销售订单和产品之间的多对多关系置入数据库。

❖ 创建外键:


1 单击要为其创建外键的表。

2 打开 " 外键 " 文件夹。

3 双击 " 添加外键 " 以打开 " 新建外键 " 向导。

4 遵循向导中的指导操作。

至此,您就学完了有关设计和建立关系数据库的入门章节。本书的其余

章节将介绍如何在数据库中添加数据和从数据库中检索数据。这些章节

将使用 Adaptive Server Anywhere 示例数据库,该数据库比您刚创建的

数据库大一些。
分享到:
评论

相关推荐

    表关系的创建设置

    创建表间关系的步骤如下: 1. 首先,确保所有相关表都处于关闭状态,因为打开的表可能会干扰关系的建立。 2. 通过工具菜单选择"关系",或者直接点击"关系"按钮,打开关系窗口。 3. 使用"显示表"对话框,首次打开时会...

    实验报告 数据库创建表

    【实验报告 数据库创建表】涉及的知识点主要集中在SQL Server 2005数据库管理系统中,包括数据库的创建、表的构建、约束的设定、表间关系的建立以及数据库关系图的创建。以下是对这些知识点的详细解释: 1. **...

    access 讲述如何创建表以及应用

    在Access中,表间的关系是通过关联字段建立的,例如,一个客户可能有多个订单,客户表和订单表之间可以通过“客户代码”字段建立一对一或一对多的关系。这种关系管理使得数据的检索和更新更加高效。 表设计器还提供...

    实验二《用SQLQuery工具和SQL语句 创建数据库与相应的表》

    8. **数据库设计原则**:在创建数据库和表时,学生应遵循数据库设计的最佳实践,如最小冗余、规范化和数据完整性,以确保数据库的高效性和一致性。 9. **实验报告**:实验完成后,学生需要编写实验报告,记录实验...

    数据库系统设计大全,包括数据库的设计步骤和具体流程,如何设计,以及用具体的事例实现等,还包括UML模型,以及表之间的关系等。

    6. **实现与优化**:根据设计创建数据库,编写SQL脚本创建表、索引等对象。在系统运行后,根据性能监控和调优,可能需要调整索引、分区策略或者重构查询语句,以提高查询速度和整体系统效率。 实际案例中的数据库...

    数据库创建表模型工具数据库创建表模型工具数据库创建表模型工具

    数据库创建表模型工具是数据库设计过程中不可或缺的一部分,它帮助开发者和数据库管理员可视化地构建和管理数据库结构。在数据库系统的设计初期,这样的工具可以用来定义数据实体、属性以及它们之间的关系,确保数据...

    国家开放大学 MySQL数据库应用 实验训练1 在MySQL中创建数据库和表

    "国家开放大学 MySQL数据库应用实验训练1 在MySQL中创建数据库和表" 本实验训练旨在让学生掌握 MySQL 中的数据库...本实验训练旨在让学生掌握 MySQL 中的数据库和表的创建过程,提高学生的实践能力和数据库设计能力。

    实验3 创建Access数据库、表和修改数据表

    5. **表间联结**: Access支持表之间的关联,通过设置外键(通常是主键的一个副本)实现。在查询设计视图中,可以直观地拖拽字段建立联结,这有助于合并来自多个表的数据。 6. **参照完整性**: 参照完整性是...

    数据库设计,讲解业务实体对象到数据库表的映射关系。

    通过对业务实体对象到数据库表的映射关系的深入探讨,我们可以发现,合理的设计能够极大地提高系统的可维护性和扩展性。UML作为一种强大的建模工具,在这个过程中发挥了不可或缺的作用。同时,采用合理的分层架构和...

    从UML类图到关系数据库表的代码生成方法

    关系数据库设计包括确定表结构、字段属性和表间关系等。 1. 表(Table):存储数据的基本单位,每个表有唯一的表名。 2. 字段(Field):表的列,表示数据项的名称和类型。 3. 记录(Record):表的一行,包含一...

    vfp报表实例01-报表数据环境中的表间关系实现数据对应

    在IT领域,尤其是在数据库管理和数据分析中,报表是一个至关重要的部分,它可以帮助我们有效地展示和理解数据。...通过创建合适的关系和报表设计,我们可以有效地整合和呈现多表数据,为决策提供直观且详尽的信息支持。

    Access数据库中创建表

    9. **表间关系** - 在Access中,多个表可以通过关系连接起来,建立一对一、一对多或多对多的关系。 - 关系有助于数据的管理和查询,例如通过外键实现两个表之间的关联。 10. **导入/导出数据** - Access支持导入...

    OA 协同办公系统 数据库设计说明书(附数据库关系表)

    为了满足这些需求,需要对数据库进行详细的设计和规划,包括数据库的物理结构设计、表设计、表之间的关联设计、存储过程设计和触发器设计等。 数据库设计的主要目标是满足系统的数据存储和管理需求,确保数据的完整...

    设计数据库(表结构设计)

    本文将深入讲解数据库表结构设计的关键步骤和操作。 首先,设计数据库始于分析数据需求。这是设计过程的基础,需要明确数据库的目的,理解需要从数据库中获取哪些信息。这通常包括识别主要的主题,也就是将要创建的...

    用代码来创建关系access97;access2000

    Access2000”指的是使用编程语言(如VBA,Visual Basic for Applications)在Microsoft Access数据库中创建数据表间的关系。Access97和Access2000是两个不同的版本,前者是1997年发布的,后者是2000年发布的。在...

    创建数据库和表.pptx

    任务实践部分将指导读者创建“学生选课系统”数据库,创建studentInfo表,创建studentInfo表与scoreInfo表间的关系等知识点。 本资源摘要信息涵盖了SQL Server 2008数据库设计的高级案例教程项目,包括数据库存储...

    Access数据库应用技术-教案-课题:任务1-2-数据库的设计和表的创建.docx

    在Access中,数据库的设计和表的创建是核心技能,尤其对于开发数据库应用系统至关重要。 首先,教学目标明确指出,学生需要掌握数据库应用系统的分析和设计,以及数据库设计的基本过程。这意味着课程不仅关注技术...

    C#代码创建Access数据库和表

    在这个场景中,我们将深入探讨如何使用C#编程语言来创建Access数据库和表。 首先,为了连接到Access数据库,我们需要使用ADO.NET框架中的`System.Data.OleDb`命名空间,其中包含了`OleDbConnection`、`OleDbCommand...

    表创建规划设计共18页.pdf.zip

    标题中的“表创建规划设计共18页.pdf.zip”暗示了一个关于数据库设计的文档,它可能包含了一份详尽的表格创建和规划的方案,总计18页。这份文档可能涵盖了数据库设计的基础理论,如关系数据库模型,以及实际操作中的...

    数据库表/视图的创建与维护实验

    - **创建关系表**:根据实体和关系定义,创建对应的关系表,并确定表的结构,包括字段类型和长度。 ##### Sybase数据库表的创建与理解 在Sybase数据库中创建表,需要熟悉SQL语句,尤其是`CREATE TABLE`语句。表的...

Global site tag (gtag.js) - Google Analytics