数据库---设计题Word文件下载.doc
《数据库---设计题Word文件下载.doc》由会员分享,可在线阅读,更多相关《数据库---设计题Word文件下载.doc(7页珍藏版)》请在冰豆网上搜索。
c的象集为:
{1}
2)W在(B)上的投影为:
{1,2}
3)因为a和b的象集包含了W在(B)上的投影,所以V÷
W={a,b}
2、设有关系R和S如下:
RS
C
4
5
6
7
8
9
D
请写出Π1,2,3,6(R►◄S)的结果关系。
书P46
2=2
3、一部门要利用计算机进行人事和生产两个方面的管理,其各自的信息需求如下。
人事方面的实体:
部门:
部门名称、电话号码、办公地点。
职工:
职工号、姓名、年龄、性别。
生产方面的实体:
生产:
车间名、车间电话、账号、职工号。
产品:
产品号、产品名、数量、生产车间名。
上述实体中,部门和车间可视为同一级管理部门,且每一个部门有多名职工,一个职工只属于一个部门;
一个车间可生产多重产品,一种产品可为多个车间生产。
请根据上述要求完成如下设计:
1)分别设计人事、生产两个局部E-R图。
2)综合人事、生产局部E-R图而产生一个总体E-R图。
人事E-R图
生产E-R图
总的E-R图
4、将3-24如图所示的两个局部E-R图合并为全局E-R图。
书P69
(注:
每名学生的总分是他所选课程成绩的总和)
5、一个读者可以订阅多种期刊,一种期刊可由多个读者订阅,订阅有订阅期限属性。
读者有读者编号、姓名、通信地址、电话等属性,期刊有期刊编号、期刊名称、定价等属性。
6、假设教学管理规定:
(1)一名学生可选修多门课,一门课可有若名干学生选修。
(2)一名教师可讲授多门课,一门课只能有一名教师讲授。
(3)一名学生选修一门课,仅有一个成绩。
学生的属性有学号、学生姓名;
教师的属性有教师编号,教师姓名;
课程的属性有课程号、课程名。
根据上述语义画出E-R图,要求在E-R图中画出实体的属性并注明联系的类型。
7、设有一个顾客商品关系数据库,有3个基本表,表解构如下:
商品表:
Article(商品号,商品名,单价,库存量)
客户表:
Customer(顾客号,顾客名,性别,年龄,电话)
订单表:
OrderItem(顾客号,商品号,数量,购买价,日期)
(1)请用SQL语言创建一个视图GM_VIEW,检索顾客的顾客号、顾客名和订购商品的商品名、金额和日期(金额=数量X购买价)
CREATEVIEWGM_VIEW(顾客号,顾客名,商品名,金额,日期)
AS
SELECTOrderItem.顾客号,Customer.顾客名,Article.商品名,OrderItem.数量*OrderItem.购买价as金额,OrderItem.日期
FROMOrderItem,Customer,Article
WHEREOrderItem.顾客号=Customer.顾客号
ANDOrderItem.商品号=Article.商品号
(2)请用SQL语言的ALTERTABEL命令给商品表Article增加一个字段,字段名为:
产地,数据类型为:
CHAR,长度为:
30。
ALTERTABLEArticleADD产地CHAR(30)
8、使用SQL语言的CREATE语句创建教师表T,各字段的定语如下:
教师号,CHAR
(2),主码;
教师名,CHAR(8),不能为空;
职称,CHAR(10);
年龄,int。
注意,主码约束名采用系统默认。
CREATETABLET(教师号char
(2)PRIMARYKEY,教师名char(8)NOTNULL,
职称char(10)NULL, 年龄intNULL)
9、假设城市交通管理业务规则如下:
(1)每个驾车者必须有驾驶执照,驾照有编号、姓名、性别、年龄、身份证号、工作单位、发证日期等属性。
(2)每个机动车要有一个牌照,牌照有车号、型号、制造商、生产日期、所有者等属性。
(3)若司机违反交通规则,将受到惩罚,惩罚记录有日期、车号、驾照编号、违章情节记载、处罚方式等属性。
要求:
(1)根据上述业务规则设计E-R模型
(2)将E-R模型转换成关系模型
驾驶员(编号,姓名,性别,年龄,身份证号,工作单位,发证日期)
机动车(车号,型号,制造商,生产日期,所有者)
驾驶违章(日期,车号,驾照编号,违章情节记载,处罚方式)
10、某企业需要采购多种材料,每种材料可由多个供应商提供,且每个供应商可以为企业提供多种材料,材料有材料编号、材料名称和规格等属性;
供应商有供应商号、名称、地址和电话号码等属性;
采购时需要记录采购日期、单价和数量等信息。
要求:
(1)根据上述语义设计E-R模型,并注明联系类型,可省略属性
(2)将E-R模型转换成关系模型,并指出每个关系的主码和外码。
材料(材料编号,材料名称,规格)主码:
材料编号
供应商(供应商号,名称,地址,电话号码)主码:
供应号员
采购材料(日期,材料编号,供应商号,单价,数量)
11、有“旅行社”、“景点”和“游客”3个实体,联系“组团”将3个实体联系在一起,形成他们之间的三元联系。
从E-R图导出关系,并指出每个关系的主码和外码。
游客(游客编号,姓名,工作单位,电话)主码:
游客编号
旅行社(旅行社名,地址,电话,联系人)主码:
旅行社名
景点(景点名,地址,电话)主码:
景点名
组团(旅行社名,游客编号,景点名)主码:
旅行社名,游客编号,景点名
11、将如图的E-R模型转换为关系模型,并说明各个关系的主码。
12、假设有3个表:
学生表:
S(学号,姓名,性别),课程表:
C(课程号,课程名,学分)
学生选课表:
SC(学号,课程号,成绩)
(1)请用SQL语句创建学生选课表SC,要求包含主码、外码的定义,同时要保证“成绩”的取值范围0~100(包含0和100)。
CREATETABLESC(学号char(8)NOTNULL,课程号char(6)NOTNULL,
成绩intcheck(成绩>
=0and成绩<
=100),
CONSTRAINTchoose_primPRIMARYKEY(学号,课程号),
CONSTRAINTchoose_StudentFOREIGNKEY(学号)REFERENCESS(学号),
CONSTRAINTchoose_CourseFOREIGNKEY(课程号)REFERENCESC(课程号))
(2)请用SQL语句创建一个包括姓名、课程名和成绩的视图CJ。
CREATEVIEWCJ(姓名,课程名,成绩)
SELECTS.姓名,C.课程名,SC.成绩
FROMSC,S,CWHERESC.学号=S.学号ANDSC.课程号=C.课程号
13、创建一个名为ins_proc的存储过程,实现向student表中插入一条记录,新记录的值由参数提供。
如果未提供性别,则由参数的默认值设置。
CREATEPROCEDUREins_proc
@SHCHAR(5),@XMCHAR(8),@XBCHAR
(2)='
男'
@CSRYDATETIME,@BHCHAR(3)
BEGIN
INSERTINTOstudent(学号,姓名,性别,出生日期,班号)
VALUES(@SH,@XM,@XB,@CSRY,@BH)
END
14、创建一个触发器select_trigger,实现当向表student中插入一条记录时,自动显示student表中的所有记录。
CREATETRIGGERselect_triggeronSTUDENT
forinsert
as
select*fromSTUDENT
15、创建一个触发器,实现向成绩表中插入值时,检查插入值是否合适,当插入的值大于100或者小于0时,提示“插入值不合适,请重新插入值”,并回滚插入操作;
当插入值在0到100之间时,提示“插入数据成功”,并显示插入后的结果。
CREATETRIGGER成绩检查on成绩表
Declare@CJint
select@CJ=成绩frominserted
if@CJ<
0or@CJ>
100
begin
rollback
raiserror('
插入值不合适,请重新插入值'
16,1)
end
else
commit
插入数据成功'
endif
2、编写实现银行转账业务的存储过程。
Createproctransfer@moneyint
As
Begintransaction
If(select余额from账户where账号=’A’)<
@money
Begin
Print‘余额不够,转账失败!
’
Rollback
End
Else
Update账户set余额=余额-@moneywhere账号=’A’
Update账户set余额=余额+@moneywhere账号=’B’
Print‘转账成功!
End
/*执行存储过程transfer*/
Exectransfer5000