设计一个用于管理会议室的数据库。经调查分析,得到的数据项列出如下: 房间号r# CHAR(4),部门号d# CHAR(3),部门名称dname CHAR(20), 房间容量content INT,部门主管dmanager CHAR(8),开会日

admin2009-02-24  36

问题 设计一个用于管理会议室的数据库。经调查分析,得到的数据项列出如下:
   房间号r# CHAR(4),部门号d# CHAR(3),部门名称dname CHAR(20),
   房间容量content INT,部门主管dmanager CHAR(8),开会日期mdate DATE,
   会议名称cname CHAR(20),会议主题(subject)CHAR(80),会议类型(type),
   部门人数dnum INT,当前房间状态state CHAR(1),
   并确定以会议室(room)信息、部门(department)信息、会议(conference)信息为实体,它们
通过”开会(meeting)”联系起来。为了简化问题做如下假定:
会议以部门召开,但一个部门在同一会议室不能重复召开同一个会议。会议室按部门借用,且不预借。当前房间状态取值为’1’表示该会议室当前正在开会,取值为’0’表示该会议室当前未被借用。数据库概念设计的只包含主键属性的简化E-R图如下:

要求:
   (1) 数据库的逻辑结构设计:给出相应的表名、表的属性名(数据类型可省)、主键。
   (2) 给出下列查询的SQL语句:
   a) 当前未借用的会议室(房间号)和容量;
   b) 2000年4月8日有哪些部门(部门名称)在开会?他们的主管是谁?
   c) 2000年4月8日’信息中43’在哪个会议室(房间号)开会?会议名称和主题是什么?
   d) 当前能够适合’信息中43’开会的有哪些会议室(房间号)?

选项

答案(1) 数据库的逻辑结构设计(给出相应的表名、表结构、主键): room(r#,content,state)主键:r# department(d#,dname,dmanager,dnum)主键:d# conference(cname,Subject,type)主键:cname meeting(r#,d#,cname,mdate)主键(r#,d#,cname) (2) 给出下列查询的SQL语句: a) 当前未借用的会议室(房间号)和容量: select r#,content from room where state=’O’ b) 2000年4月8日有哪些部门(部门名称)在开会?他们的主管是谁? Select dname,dmanager from departmentd,meeting m; Where d.d#=m.d# and mdate=’2000年4月8 日’ 或 Select dname,dmanager from department d; Where d.d#=in(select m.d#=from meeting m; Where mdate=’2000年4月8日,) c) 2000年4月8日’信息中心,在哪个会议室(房间号)开会?会议名称和主题是什么? Select r#,m.cname,subject from department d,meeting m,conference c; Where d.d#=m.d# and m.cname=c.cname and; Mdate=’2000年4月8日’and dname=’信息中心’ 或(注:本题中Select r#,c.cname,…….也可以是Select r#,m.cname,……. Select r#,c.cname,subject from meeting m,conference c; Where Mdate=’2000年4月8日’and m.cname=c.cname and; m.d#=(select d.d# from department d where dname=’信息中心’) d) 当前能够适合,信息中心,开会的有哪些会议室(房间号)? Select r# from room where state=’O’and; content>=(select dnum from department where dname=’信息中心’)

解析
转载请注明原文地址:https://kaotiyun.com/show/PLNZ777K
0

相关试题推荐
最新回复(0)