系统工程的真正问题

测试二(15分)

阅读下面的说明,回答问题1到5,将答案填在答题卡上相应的栏目里。

[描述]

企业在线销售管理系统数据库部分的关系模型如下:

客户(客户编号、姓名、性别、地址、邮政编码)

产品(产品编号、名称、库存、单价)

订单(订单号、时间、金额、客户号)

订单详情(订单号、产品号、数量)

关系模式的主要属性和约束如表2-1所示。

表2-1关系模式的主要属性和约束

关系名称约束

客户的客户号唯一标识一个客户,客户的性别值为“男”或“女”

产品产品号唯一标识产品。

订单号唯一标识一个订单。一个订单只能对应一个客户,一个订单可以由一个或多个订单明细组成。一个客户可以有多个订单。

订单详细信息订单详细信息对应于订单中的一种产品。

客户、产品、订单、订单的详细关系及部分数据分别如表2-2、2-3、2-4、2-5所示。

表2-2客户关系

客户编号、姓名、性别、地址和邮政编码

南京路2号王晓丽200005

林俊杰北京南路18号02邮编200010

表2-3产品关系

产品编号名称库存单价

01产品A 20 298.00

02产品B 50 168.00

表2-4订购关系

订单编号时间金额客户编号

1001 2006.02.03 1268.00 01

1002 2006.02.03 298.00 02

表2-5订单详细信息

订单号产品编号量

1001 01 2

1001 02 4

1002 01 1

【问题1】(3分)

下面是创建一些关系表的SQL语句。请完成缺少的部分。

创建表客户(

客户编号char(5)_(a)_ _

姓名字符(30),

性别CHAR(2)_ _ _ _(b)_ _ _ _

地址充电器(30),

邮政编码CHAR(6));

创建表顺序(

订单编号字符(4),

时间字符(10),

金额为$ NUMBER(6,2),

客户号字符(5)不为空,

主键(订单号),

_ _ _(c)_ _ _ _;

【问题2】(4分)

请根据下列问题回答问题(d)、(e)和(f)。

选择客户编号

从订单,订单详细信息

订单详细信息。订单号=订单。订单编号和

产品编号= "02 "和

数量> 10;

(d)上述查询语句的作用是什么?请简单回答一下。(30字以内)

(e)将上述查询语句转换成相应的关系代数表达式。

(f)能否进一步优化上述SQL查询语句?如果可能,给出优化的SQL查询语句。

【问题3】(3分)

请根据问题的意思完成下面SQL查询语句的空白部分。

按照客户总购买量的降序,输出每个客户的客户名称和总购买量。

选择客户。客户名称,_ _ _ _ _ _(g)_ _ _ _

来自客户,订单

客户在哪里。顾客没有。=订单。客户编号

_ _ _(h)_ _ _ _

___(一)_ _ _ _;

【问题4】(3分)

使用SQL语句完成以下要求。

(1)定义一个视图,描述订单的客户号和相应订单详细信息中的产品号之间的关系。客户产品(客户号、产品号)。

(2)借助(1)定义的视图,至少查询客户01购买的所有产品的客户号。

选择客户编号

来自客户产品客户产品1

其中_ _ _(j)_ _ _ _

(选择*

来自客户产品客户产品2

其中_ _(k)_ _ _ _

(选择*

来自客户产品客户产品3

其中_ _(l)_ _);

【问题5】(2分)

当一个订单和对应的订单明细数据入库时,晶体生产关系中对应的产品库存要减少。应该使用数据库管理系统的什么机制来实现这个功能?请用100字简要说明。

1.补充完善题目中数据库对应的描述信息,根据此分析得到对应的实体-联系图(E-R图)。

2.根据E-R图得到对应的关系模式,并适当归一化(归一化到3NF)。

3.创建一个数据库,将2中获得的关系模式转换成数据库中相应的表。

4.将主键约束和外键约束添加到创建的表中,并根据需要添加相应的唯一约束、默认值约束和检查约束,以确保数据完整性。

下面还有补充问题~补充问题:

5.为数据库中的适当表创建至少一个索引。

6.至少创建一个用户定义的函数,并将其绑定到适当的表。

7.至少创建一个视图。

8.至少创建一个用户存储过程(根据具体情况,可以决定是否取相应的参数)。

9.至少创建一个触发器。

这个大问题还有三个问题,请回答。

1.补充完善题目中数据库对应的描述信息,根据此分析得到对应的实体-联系图(E-R图)。

2.根据E-R图得到对应的关系模式,并适当归一化(归一化到3NF)。

3.创建一个数据库,将2中获得的关系模式转换成数据库中相应的表。

我不干~