题目
某网上订书系统,涉及如下信息: (1)客户:客户号、姓名、地址、联系电话。 (2)图书:书号、书名、出版社、单价。 (3)订单:订单号、日期、付款方式、总金额。 其中:一份订单可订购多种图书,每种图书可订购多本;一位客户可有多份订单,一份订单仅对应一位客户。 (1)根据以上叙述,建立ER模型,要求标注联系类型(可省略实体的属性)。 (2)根据转换规则,将ER模型转换成关系模型,要求标注每个关系模型的主键和外键(如果存在)。
某网上订书系统,涉及如下信息: (1)客户:客户号、姓名、地址、联系电话。 (2)图书:书号、书名、出版社、单价。 (3)订单:订单号、日期、付款方式、总金额。 其中:一份订单可订购多种图书,每种图书可订购多本;一位客户可有多份订单,一份订单仅对应一位客户。 (1)根据以上叙述,建立ER模型,要求标注联系类型(可省略实体的属性)。 (2)根据转换规则,将ER模型转换成关系模型,要求标注每个关系模型的主键和外键(如果存在)。
题目解答
答案
解析
步骤 1:建立ER模型
根据题目描述,客户、图书和订单是三个实体。客户和订单之间是一对多的关系,因为一个客户可以有多个订单,但一个订单只能对应一个客户。订单和图书之间是多对多的关系,因为一个订单可以订购多种图书,一种图书也可以被多个订单订购。因此,我们需要引入一个中间实体“订购”来表示这种多对多的关系。ER模型如下:
- 客户(客户号,姓名,地址,联系电话)
- 订单(订单号,日期,付款方式,总金额)
- 图书(书号,书名,出版社,单价)
- 订购(订单号,书号,数量)
其中,客户和订单之间是一对多的关系,订单和图书之间是多对多的关系,通过订购实体来表示这种关系。订购实体的主键是订单号和书号的组合,外键是订单号和书号,分别指向订单和图书实体。
步骤 2:将ER模型转换成关系模型
根据ER模型,我们可以得到以下关系模型:
- 客户(客户号,姓名,地址,联系电话)
- 订单(订单号,日期,付款方式,总金额,客户号)
- 图书(书号,书名,出版社,单价)
- 订购(订单号,书号,数量)
其中,客户关系的主键是客户号,订单关系的主键是订单号,外键是客户号,指向客户关系。图书关系的主键是书号,订购关系的主键是订单号和书号的组合,外键是订单号和书号,分别指向订单和图书关系。
根据题目描述,客户、图书和订单是三个实体。客户和订单之间是一对多的关系,因为一个客户可以有多个订单,但一个订单只能对应一个客户。订单和图书之间是多对多的关系,因为一个订单可以订购多种图书,一种图书也可以被多个订单订购。因此,我们需要引入一个中间实体“订购”来表示这种多对多的关系。ER模型如下:
- 客户(客户号,姓名,地址,联系电话)
- 订单(订单号,日期,付款方式,总金额)
- 图书(书号,书名,出版社,单价)
- 订购(订单号,书号,数量)
其中,客户和订单之间是一对多的关系,订单和图书之间是多对多的关系,通过订购实体来表示这种关系。订购实体的主键是订单号和书号的组合,外键是订单号和书号,分别指向订单和图书实体。
步骤 2:将ER模型转换成关系模型
根据ER模型,我们可以得到以下关系模型:
- 客户(客户号,姓名,地址,联系电话)
- 订单(订单号,日期,付款方式,总金额,客户号)
- 图书(书号,书名,出版社,单价)
- 订购(订单号,书号,数量)
其中,客户关系的主键是客户号,订单关系的主键是订单号,外键是客户号,指向客户关系。图书关系的主键是书号,订购关系的主键是订单号和书号的组合,外键是订单号和书号,分别指向订单和图书关系。