学校各班级定期在教室组织班会,设计一个用于管理教室使用的数据库。经调查分析,得到的数据项类型如下:
教室号r CHAR(4),教室容量content INIT,教室可用状态state CHAR(1),班级号cCHAR(6),班级名称classname CHAR(20),班长monitor CHAR(8),班级人数cnum INT,班会编号cm CHAR(8),班会名称name CHAR(20),班会主题subject CHAR(80),开会日期mdate DATE。
并确定以教室(classroom)信息、班级(class)信息、班会(classmeeting)信息为实体,它们通过“开班会”联系起来。为了简化问题做如下假定:
(1) 一个班级在同一个教室不能重复召开同一个班会;
(2) 教室可用状态:‘1’表示教室可用,‘0’表示该教室不可用。
数据库概念设计只包含主键属性的简化E-R图如下:
要求:
1.数据库的逻辑结构设计:给出相应的表名、表的属性名(数据类型可省)、主键。
2.给出下列查询的SQL语句:
a) 当前未借用的教室号和容量。
b) 2001年3月28号有哪些班级(班级名称)在开会?他们的班长是谁?
c) 2001年2月28号‘计算机98级1班’在哪个教室(教室号)开会?班会名称和班会主题是什么?
d)当前能够适合‘计算机98级2班’开会的有哪些教室(教室号)?
答案说明:本题目答案来自网络整理或转载,最终答案请以官网为准。
答 案:1.数据库的逻辑结构设计(给出相应的表明表结构主键) classroom(r#contentstate) 主键r# class(c#classroommonitorcnum) 主键c# calssmeeting(cm#namesubject) 主键cm# meeting(r#c#cm#mdate) 主键(r#c#cm#) 2.给出下列查询的SQL语句: a) 当前未借用的教室号和容量 select r#content from classroom where state='1' b) 2001年3月28号有哪些班级(班级名称)在开会?他们的班长是谁? Select c.classnamec.monitor from class cmeeting m; where c.c# =m.c# and mdate='2001年2月28号' c) 2001年2月28号‘计算机98级1班’在哪个教室(教室号)开会?班会名称和班会主题是什么? Select r# m.name subject from class c classmeeting cm meeting m; Where c.c# =m.c# and m.cm#=cm.cm# and; mdate='2001年2月28号'and name='计算机98级1班' d) 当前能够适合‘计算机98级2班’开会的有哪些教室(教室号)? Select r# from classroom where state='1'and; Content>=(select cnum from class where classname='计算机98级2班'(4分)
1.数据库的逻辑结构设计(给出相应的表明,表结构,主键) classroom(r#,content,state) 主键r# class(c#,classroom,monitor,cnum) 主键c# calssmeeting(cm#,name,subject) 主键cm# meeting(r#,c#,cm#,mdate) 主键(r#,c#,cm#) 2.给出下列查询的SQL语句: a) 当前未借用的教室号和容量 select r#,content from classroom where state='1' b) 2001年3月28号有哪些班级(班级名称)在开会?他们的班长是谁? Select c.classname,c.monitor from class cmeeting m; where c.c# =m.c# and mdate='2001年2月28号' c) 2001年2月28号‘计算机98级1班’在哪个教室(教室号)开会?班会名称和班会主题是什么? Select r#, m.name, subject from class c classmeeting cm meeting m; Where c.c# =m.c# and m.cm#=cm.cm# and; mdate='2001年2月28号'and name='计算机98级1班' d) 当前能够适合‘计算机98级2班’开会的有哪些教室(教室号)? Select r# from classroom where state='1'and; Content>=(select cnum from class where classname='计算机98级2班'(4分)