系统工程的真正问题
阅读下面的说明,回答问题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中获得的关系模式转换成数据库中相应的表。
我不干~