学生宿舍管理方案计划系统数据库课程教学设计.doc
-!目录摘要2一 需求分析21.1 需求分析21.1.1 基本信息21.1.2 用户对系统要求31.2 系统功能分析:41.3 业务流程概述41.4 数据流程图51.5 数字字典101.5.1数据项101.5.2数据结构131.5.3数据流131.5.4数据存储131.5.5处理过程14二 概念结构设计14三 逻辑结构设计143.1逻辑设计的任务和目标143.2数据组织153.2.1将E-R图转换为关系模型153.2.2 逻辑结构定义15四 物理结构设计174.1物理设计阶段的目标与任务174.2数据存储方面18五 数据实施和维护185.1建立数据库、数据表、视图、索引、导入数据185.1.1 建立数据库185.1.2 建立数据表185.1.3 建立视图205.1.4 建立索引215.1.5 导入数据225.2 记录和约束条件的的增加、删除和修改245.2.1 记录的增加、删除、修改245.2.2 约束条件的增加、删除、修改245.3查询语句255.4 建立存储过程,触发器26六 总结27附件28摘要学生宿舍管理系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括基本信息管理、住宿管理、服务管理、来访者管理等四大功能模块。该系统开发由需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施与维护阶段等阶段组成。一 需求分析目前,我们学校的宿舍管理都是由人工管理的,信息都是由文本记录的。针对这一实际情况,我们设计了学生宿舍管理系统。1.1 需求分析经过实际分析调查,一个学生宿舍管理系统主要是要方便宿舍管理人员的工作,提高其工作效率,不仅可以方便广大学生,而且还可以方便于教师和相关人员。1.1.1 基本信息学生住在宿舍楼中,每幢宿舍楼都会有若干名老师负责本宿舍楼的日常管理。(1)学生的基本信息:入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。(2)宿舍的基本信息:每间宿舍都有唯一的楼号和宿舍号,入校时,宿舍会装公用电话机,相应地就有宿舍电话号码。(3)工作人员基本信息:每幢宿舍都有驻楼阿姨和保洁阿姨的编号。(4)报修的基本信息:宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。(5)来访者基本信息每幢宿舍对于每一次的人员来访都要做好相应的登记。包括来访者和被访者的信息。1.1.2 用户对系统要求1、信息要求:宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,报修的所有信息和来访者的信息,以利于对整个宿舍楼的全面管理。2、处理要求:当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。3、安全性与完整性要求:A、安全性要求:(1)系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;(2)系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;(3)系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。B、完整性要求:(1)各种信息记录的完整性,信息记录内容不能为空;(2)各种数据间相互的联系的正确性;(3)相同的数据在不同记录中的一致性。1.2 系统功能分析:学生宿舍管理系统基本信息管理服务管理住宿管理来访者管理学生信息工作人员信息入住租赁电费维修水费宿舍信息调房退房来访者信息登记来访者查询本系统主要有以下功能:基本信息管理、住宿管理、服务管理、来访者管理。基本信息管理包括学生信息、宿舍信息、工作人员信息;住宿信息包括入住、调房、退房;服务管理包括租赁、水费、电费、维修;来访者管理包括来访者信息登记、来访者查询。数据库操作功能:查询、删除、修改、插入;1.3 业务流程概述系统的业务是系统要达到的业务目标,业务流程分析是系统分析中的基础环节。根据以上系统功能的分析,我们将学生宿舍管理业务分成基本信息管理、住宿管理、服务管理、来访者管理四个模块。1.基本信息管理宿舍信息管理:主要是记录宿舍的基本状况,可住人数,已住人数,电话号码,便于工作人员分配寝室以及联系。学生信息管理:宿舍的学生信息主要来自学生处提供的,对于已住进宿舍的学生,工作人员从学生处提取相关信息,进行统一管理,如果学生退房之后,相应的信息也将被删除。员工信息管理:记录在宿舍、楼管处工作的员工信息,及时增、删、改,便于有个统一的收集、管理、宿舍更好的运作。2.住宿管理新生入住:新生向楼管处提出入住申请,工作人员进行查询宿舍相关信息之后,再根据学生的信息相应的给新生安排宿舍,登记和修改相关信息。调房:学生向楼管处提出宿舍调房申请,楼管处根据学生的所要调房的信息,给予核实确认之后,查询宿舍信息之后,满足条件就给予学生办理调房,并修改相应信息,否则不办理。退房:学生向楼管处提出退房申请,楼管处核实证件准确无误之后,办理退房手续,并删除学生的相关信息。 3.服务管理水电费:楼管处在每个月下旬记录每个宿舍的水,电使用情况,根据收费标准,结算出每个宿舍所需支付的费用,再由每个宿舍在月底之前进行付费。临时设备的租赁:学生把所需的临时设备向楼管处进行租赁申请,再由工作人员核实,确定之后,给予学生批准,并收取相应的租赁费用。报修:学生把需要维修的设备向楼管处提出申请,填写相应的维修单,支付相应的费用,工作人员根据维修单派发维修员工对设备进行维修,楼管处再把已修信息反馈给学生。4.外来人员管理外来访客登记来访信息,楼管处根据外来访客所登记的信息表,从宿舍、工作人员信息、学生信息这三张表单中,查询外来访客所要访问的人员的基本信息,最后经过核实,确定其是否可以访问。1.4 数据流程图数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。根据以上的业务流程的分析,以及学生宿舍的特点,我们给出了以下学生宿舍管理信息系统的数据流程图。由于学生宿舍主要涉及学生的入住和退缩问题,以及住宿的管理,我们将学生宿舍管理系统的顶层设计如下:学生工作人员学生宿舍管理系统入住及离宿申请信息处理结果入住及离宿审批信息检索请求将顶层进行细分,主要是工作人员管理宿舍,接收和处理各种事务,包括学生,宿舍,以及工作人员的基本信息管理,学生住宿管理,宿舍的服务管理,来访者管理,得到以下的第一层数据流程图如下:管理员1.0接受事务事务基本信息事务住宿事务服务事务出入事务1.4来访者管理1.3服务管理1.2住宿管理1.1基本信息管理工作人员基本信息住宿信息服务信息来访信息D3宿舍表D2学生表D3宿舍表D4学生住宿表D8设备租赁表D5设备维修表D水电费表D来访者表针对每个事务的管理,我们进行了分类,即第二层数据流程图如下:第二层1:工作人员住宿管理事务1.2.0事务分类1.2.2调房管理1.2.1入住管理1.2.3退房管理调房信息入房信息退房信息入住信息调房信息退房信息D4学生住宿表D3宿舍表D4学生住宿表D3宿舍表D4学生住宿表D3宿舍表第二层2:D3宿舍表工作人员基本信息事务1.1.0事务分类1.1.2宿舍管理1.1.1员工管理1.1.3学生管理宿舍信息员工信息学生信息员工信息宿舍信息学生信息D1员工表D2学生基本信息表第二层3:1.3.1报修管理1.3.2临时设备租赁管理人员来访信息1.3.3水电费临时设备信息临时设备信息报修信息水电费信息水电费信息服务事务1.3.0事务分类工作人员第二层4:来访人员1.4.0事务分类1.4.2访问结束1.4.1人员来访工作人员人员来访信息结束信息D7人员来访信息表以上当中的住宿管理事务,有学生的入住管理,调房管理,退房管理,由于这三个事务都有相似性,首先都需要学生提出申请,再经过管理者的审核,通过查询宿舍表,了解住宿情况之后再考虑是否满足学生的申请,申请通过之后,相应的调整学生住宿表和宿舍表的信息,所以我们就以学生入住管理为例,其流程图如下:学生查询床位分配宿舍宿舍不满足学生D3宿舍表D3宿舍表D4学生住宿表满足1.5 数字字典1.5.1数据项住宿学生数据字典属性名类型长度备注学号char8住宿学生学号姓名Varchar10住宿学生姓名性别char2男/女专业Varchar20学生专业联系方式char11联系方式员工数据字典属性名类型长度备注员工号char4员工姓名Varchar10年龄smallint2性别char2职位Varchar20联系方式char11宿舍数据字典属性名类型长度备注楼号char2宿舍号char3宿舍电话char12可住人数smallint2已住人数smallint2临时设备租赁数据字典属性名类型长度备注设备号char8设备名Varchar20租赁日期Datetime8所租的日期归还日期Datetime8归还设备日期租赁费用decimal5租赁设备的费用报修数据字典属性名类型长度备注楼号char2宿舍号char3报修人宿舍号物品号varchar8报修物品编号报修原因char50物品损坏原因提交日期datetime 8报修提交日期解决日期datetime8问题解决日期报修费用decimal5报修的费用水电费数字字典属性名类型长度备注楼号char2宿舍号char3月份Varchar4用电量decimal(5,2)电费decimal(5,2)用水量decimal(5,2)水费decimal(5,2)来访者数字字典属性名类型长度备注来访人姓名Varchar10被访人姓名Varchar10所属关系Varchar20证件名称Varchar20来访日期Datetime8来访时间Datetime8结束时间Datetime8备注Varchar501.5.2数据结构数据结构名组成学生住宿信息学号,姓名,性别,专业,联系方式,入住时间员工信息员工号,姓名,年龄,性别,职位,家庭地址,联系方式宿舍信息楼号,宿舍号,宿舍电话,可住人数,已住人数临时设备信息设备号,设备名,租赁日期,归还日期,租赁费用报修信息楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用水电费信息楼号,宿舍号,月份,用电量,电费,用水量,水费来访者信息来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,备注1.5.3数据流数据流名数据流来源数据流去向组成登记报修信息学生报修信息表报修信息查询报修信息报修信息表管理员报修信息登记已修信息管理员报修信息表已修信息登记设备租赁信息学生设备租赁信息表设备租赁信息查询设备租赁信息设备租赁信息表学生设备租赁信息登记设备归还信息管理员管理员设备归还信息登记来访者信息来访者来访者信息表来访信息查询来访者信息管理员来访者信息表来访信息登记来访结束信息管理员来访者信息表来访结束信息1.5.4数据存储数据存储名输入的数据流输出的数据流组成报修信息表报修信息已修信息报修信息报修信息已修信息设备租赁信息表设备租赁信息设备归还信息设备租赁信息设备租赁信息设备归还信息来访者信息表来访信息来访结束信息来访信息来访信息来访结束信息1.5.5处理过程处理过程名输入数据流输出数据流登记报修报修信息报修信息查询报修报修信息报修信息登记已修信息已修信息已修信息登记设备租赁信息设备租赁信息设备租赁信息查询设备租赁设备租赁信息设备租赁信息登记设备归还信息设备归还信息设备归还信息登记来访者信息来访者信息来访者信息查询来访者信息来访者信息来访者信息登记来访结束信息来访结束信息来访结束信息二 概念结构设计概念结构是将需求分析抽象为信息结构即概念模型的过程,这样才能更好地、更准确的用某一DBMS实现这些需求,是整个数据库设计的关键,它主要特点是能真实、充分地反映现实社会,包括事物和事物之间的联系,能满足用户对数据的处理需求,是对现实世界的一个真实模型,而且还易于理解,也方便用户的操作,对数据的修改和各种模型的转换。从以上的数据流程图中,我们选择了第二层数据流程图作为设计E-R图的出发点,从分析数据流图和数字字典中可以看出,整个系统功能是围绕“学生住宿”问题进行处理,学生住进宿舍,工作人员管理宿舍,处理宿舍提供的各种服务,另外,还有来访者对学生的来访。ER图见附件。 三 逻辑结构设计3.1逻辑设计的任务和目标以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。3.2数据组织3.2.1将E-R图转换为关系模型由于宿舍与学生是1:n关系,可以将其之间的联系与n端实体学生合并,宿舍和员工,学生和临时设备,学生和来访者也是1:n关系,同样也将其之间的联系与n端实体员工,临时设备,来访者合并,具体的基本E-R图向关系模型的转化如下:学生住宿表:(学号,姓名,性别,专业,入住时间,联系方式,楼号,宿舍号)宿舍表:(楼号,宿舍号,电话号码,可住人数,已住人数)员工表:(员工号,员工姓名,性别,职位,家庭地址,联系方式,楼号)临时设备租赁表:(设备号,设备名,租赁日期,归还日期,租赁费用,学号)报修表:(楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用)水电费表:(楼号,宿舍号,月份,用电量,电费,用水量,水费)来访者表:(来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,学号)3.2.2 逻辑结构定义由以上分析,得出上述7个表格结构如下:学生住宿表,主要记录学生住宿的基本信息。属性名类型长度完整性约束备注学号char8主码住宿学生学号姓名Varchar10非空住宿学生姓名性别char2男或女,默认值男学生性别专业Varchar20非空学生专业联系方式char11可以为空联系方式入住时间datetime8非空新生搬入时间楼号char2外码学生住的楼号宿舍号char3外码学生住的宿舍号员工表,主要记录员工的基本信息。属性名类型长度完整性约束备注员工号char4主码员工姓名Varchar10非空年龄smallint2大于18,小于65楼号char2非空性别char2男或女职位Varchar20非空联系方式char11可以为空宿舍表,主要记录宿舍的入住信息。属性名类型长度完整性约束备注楼号char2非空宿舍号char3非空宿舍电话char12非空可住人数smallint2非空已住人数smallint2非空设备租赁表,主要记录设备的租赁信息。属性名类型长度完整性约束备注设备号char8主码设备名Varchar20非空租赁日期Datetime8非空所租的日期归还日期Datetime8非空归还设备日期租赁费用decimal(5,2)非空租赁设备的费用学号char8外码租设备学生学号报修表,主要记录物品的报修信息。属性名类型长度完整性约束备注楼号char2非空宿舍号char3非空报修人宿舍号物品号varchar8非空报修物品编号报修原因char50非空物品损坏原因提交日期datetime8非空报修提交日期解决日期datetime8非空问题解决日期报修费用decimal(5,2)非空报修的费用水电费表,主要是每个月记录各个宿舍的水电使用情况以及相应的费用。属性名类型长度完整性约束备注楼号char2非空宿舍号char3非空月份Varchar4非空用电量decimal(5,2)非空电费decimal(5,2)非空用水量decimal(5,2)非空水费decimal(5,2)非空来访者表,主要记录来访者的信息。属性名类型长度完整性约束备注来访人姓名Varchar10主码被访人姓名Varchar10非空所属关系Varchar20非空证件名称Varchar20非空来访日期Datetime8非空来访时间Datetime8非空结束时间Datetime8非空学号char8外码四 物理结构设计4.1物理设计阶段的目标与任务数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;(2)对物理结构进行评价,评价的重点是时间和空间效率。4.2数据存储方面为数据库中各基本表建立的索引如下:(1)由于基本表学生住宿表的主码学号经常在查询条件和连接操作的连接条件中出现,且它的值唯一,考虑在学号这个属性上建立唯一性索引;(2)宿舍表的主码楼号,宿舍号经常在查询条件中出现,且它们的组合值唯一,考虑在它们之上建立组合索引;(3)基本表学生住宿表的一属性姓名,经常在查询条件中出现,且经常出现在相等的比较条件中,考虑在其之上建立聚簇索引;(4)由于员工表,报修表,设备租赁表,水电费表,来访者表的属性值经常发生变化,权衡系统为维护索引付出的代价,暂考虑不建立索引;五 数据实施和维护5.1建立数据库、数据表、视图、索引、导入数据5.1.1 建立数据库create database 学生宿舍管理系统;5.1.2 建立数据表宿舍表Create table 宿舍表( 楼号 char(2),宿舍号 char(3),primary key(楼号,宿舍号),宿舍电话 char(12) not null,可住人数 smallint not null,已住人数 smallint not null,);学生住宿表Create table 学生住宿表(学号 char(8) primary key,姓名 varchar(10) not null,性别 char(2) default 男 check(性别 in (男,女),专业 varchar(20) not null,联系方式 char(11),入住时间 datetime not null,楼号 char(2) not null,宿舍号 char(3) not null,foreign key(楼号,宿舍号) references 宿舍表(楼号,宿舍号),);员工的基本信息表Create table 员工表(员工号 char(4) primary key,员工姓名 varchar(10) not null,年龄 smallint check(年龄14 and 年龄65),楼号 char(2),性别 char(2) check (性别 in(男,女),职位 varchar(20) not null,联系方式 char(11),);设备的租赁信息表Create table 设备租赁表(设备号 char(8) primary key,设备名 Varchar(20) not null,租赁日期 Datetime not null,归还日期 Datetime not null,租赁费用 decimal(5,2) not null,学号 char(8) foreign key references 学生住宿表(学号),);报修信息表create table 报修表(楼号 char(6) not null,宿舍号 char(6) not null,物品号 char(8) not null,保修原因 char(50) not null,提交日期 datetime not null,解决日期 datetime not null,保修费用 decimal(5,2) not null,);水电费表Create table 水电费表(楼号 char(2) not null,宿舍号 char(3) not null,月份 Varchar(4) not null,用电量 decimal(5,2) not null,电费 decimal(5,2) not null,用水量 decimal(5,2) not null,水费 decimal(5,2) not null,);来访者信息表Create table 来访者表(来访者姓名 varchar(10) not null,被访者姓名 varchar(10) not null,所属关系 Varchar(20) not null,证件名称 Varchar(20) not null,来访日期 Datetime not null,来访时间 Datetime not null,结束时间 Datetime not null,备注 Varchar(50),学号 char(8) foreign key references 学生住宿表(学号),);5.1.3 建立视图1.建立物流管理专业的学生住宿的视图Create view 物流管理学生住宿表AsSelect 学号,姓名,楼号,宿舍号From 学生住宿表Where 专业=物流管理;2.建立住在22号楼的学生信息的视图Create view 22号楼学生住宿表AsSelect 学号,姓名,专业From 学生住宿表Where 楼号=22;3.建立职位是管理员的员工信息的视图Create view 管理员信息表AsSelect *From 员工表Where 职位=管理员;4.建立4月份各个宿舍的水电使用情况的视图Create view 4月水电表AsSelect *From 水电表Where 月份=4;5.建立22号楼各个宿舍的信息的视图Create view 22号楼宿舍信息表AsSelect *From 宿舍表Where 楼号=22;5.1.4 建立索引create unique index 住宿_学号 on 学生住宿表(学号);create unique index 宿舍楼_宿舍号on 宿舍表(楼号,宿舍号);create cluster index 学生_姓名 on 学生住宿表(姓名);Create unique index IX_员工号 on 员工表(员工号);Create unique index IX_设备号 on 设备租赁表(设备号);5.1.5 导入数据1./*宿舍表格记录插入*/Insert into 宿舍表Values (27,101,057108011010,04,04)Insert into 宿舍表Values (22,111,057108011110,04,04)Insert into 宿舍表Values (27,131,057108011160,04,04)截图如下:2. /*学生住宿表格记录插入*/Insert into 学生住宿表Values (08030004,王晓明,男,物流管理,15158110001,20080906,27,101)Insert into 学生住宿表Values (08030002,李倩,女,物流管理,15158110002,20080906,22,111)Insert into 学生住宿表Values (08030005,李明,男,物流管理,15158110003,20080906,27,131)截图如下:3./*员工表格记录插入*/Insert into 员工表 Values (y001,叶玉,40,27,女,清洁工,15058101000)Insert into 员工表 Values (y002,王思思,26,22,女,管理员,15058101010)Insert into 员工表 Values (y003,李伟,34,22,男,管理员,15058101110)截图如下:4./*报修表格记录插入*/Insert into 报修表Values (27,101,0001,日光灯不亮,20100920,20100922,00.00)Insert into 报修表Values (22,111,0001,热水器坏了,20100920,20100922,00.00)Insert into 报修表Values (27,131,0001,下水道坏了,20100920,20100922,05.00)截图如下:5./*水电费表格记录插入*/Insert into 水电费表Values (27,101,09,17.12,13.00,05.24,07.52)Insert into 水电费表Values (27,131,09,18.12,14.00,06.24,08.52)Insert into 水电费表Values (22,111,08,11.12,13.00,06.24,08.52)截图如下:6./*来访者表格记录插入*/Insert into 来访者表Values (张晓红,王晓明,母子,身份证,20100920,2010/9/20 12:20:30,2010/9/20 12:50:30,帮忙带东西,08030004)Insert into 来访者表Values (王伟,李倩,兄妹,身份证,20100910,2010/9/10 12:20:30,2010/9/10 12:50:30,看望她,08030002)Insert into 来访者表Values (王梦,李明,姐妹,身份证,20100930,2010/9/30 12:10:30, 2010/9/30 13:50:30,看望她,08030005)截图如下:7./*设备租赁表格记录插入*/Insert into 设备租赁表Values (00000001,饮水机,10:09:20,14:06:20,50,08030001)Insert into 设备租赁表Values (00000002,热水器,10:04:20,14:02:12,22,08030002) 截图如下:5.2 记录和约束条件的的增加、删除和修改5.2.1 记录的增加、删除、修改1.一个新生住进宿舍:insert into 学生住宿表Values (08032111,张三,男,物流管理,15122235673,09/03/12,27,325)2.删除员工号为0103的信息Delete from 员工表where 员工号=01033.修改宿舍表中11号楼214宿舍的已住人数Update 宿舍表Set 已住人数=04 Where楼号=11 and 宿舍号=214;5.2.2 约束条件的增加、删除、修改1.在学生住宿表中增加一属性为学院,数据类型为varchar(20),Alter table 学生住宿表 add 学院 varchar(20);2.删除学生住宿表中新增的属性学院Alter table 学生住宿表 drop column 学院;3.在设备租赁表中,增加设备名取唯一值的约束条件Alter table 设备租赁表 add unique(设备名);5.3查询语句1.查询员工姓名为李倩的基本信息Select *From 员工表Where 员工姓名=李倩;2.查询年龄在22岁到32岁的员工号,员工姓名,职位Select 员工号,员工姓名,职位From 员工表Where 年龄 between 22 and 32;3.查询所有姓黄的来访者信息Select *From 来访者表Where 来访者姓名 like 黄%;4.查询张三所在的宿舍的已住人数Select 宿舍表.楼号, 宿舍表.宿舍号,已住人数From 宿舍表,学生住宿表Where 姓名=张三 and 宿舍表.楼号=学生住宿表.楼号 and 宿舍表.宿舍号=学生住宿表.宿舍号;5.查询住在22号楼123宿舍所住的学生信息Select 学号,姓名,专业,联系方式From 学生住宿表Where 楼号=22 and 宿舍号=123;6.查询物流专业的学生住宿人数Select count(学号)From 学生住宿表Where 专业=物流专业;7.查询姓名为李四的学生所租的设备信息Select *From 设备租赁表Where 学号 in (select 学号 From 学生住宿表 Where 姓名=李四);8.查询员工号为0124的员工所在楼的住宿信息Select *From 宿舍表Where 楼号 in (select 楼号 From 员工表 Where 员工号=0124);5.4 建立存储过程,触发器1.存储过程,返回指定的月份的水费总额和电费总额Create proc pro benning varchar(4),ending varchar(4), all_waterpay decimal(8,2),all_elecpay decimal(8,2) output/* 给存储过程定义四个参数:开始月份和结束月份的水费总额和电费总额*/ AS select all_waterpay=sum(水费), all_elecpay=sum(电费) From 水电费表 where 月份 between benning and ending2.触发器,当学生退房,即删除某一学生时,这学生所租的设备也删除Create trigger triOn 学生住宿表For delete AS
收藏
- 资源描述:
-
-!
目录
摘要 2
一 需求分析 2
1.1 需求分析 2
1.1.1 基本信息 2
1.1.2 用户对系统要求 3
1.2 系统功能分析: 4
1.3 业务流程概述 4
1.4 数据流程图 5
1.5 数字字典 10
1.5.1数据项 10
1.5.2数据结构 13
1.5.3数据流 13
1.5.4数据存储 13
1.5.5处理过程 14
二 概念结构设计 14
三 逻辑结构设计 14
3.1逻辑设计的任务和目标 14
3.2数据组织 15
3.2.1将E-R图转换为关系模型 15
3.2.2 逻辑结构定义 15
四 物理结构设计 17
4.1物理设计阶段的目标与任务 17
4.2数据存储方面 18
五 数据实施和维护 18
5.1建立数据库、数据表、视图、索引、导入数据 18
5.1.1 建立数据库 18
5.1.2 建立数据表 18
5.1.3 建立视图 20
5.1.4 建立索引 21
5.1.5 导入数据 22
5.2 记录和约束条件的的增加、删除和修改 24
5.2.1 记录的增加、删除、修改 24
5.2.2 约束条件的增加、删除、修改 24
5.3查询语句 25
5.4 建立存储过程,触发器 26
六 总结 27
附件 28
摘要
学生宿舍管理系统是应对学生宿舍管理的现代化、网络化,逐步摆脱当前学生宿舍管理的人工管理方式,提高学生宿舍管理效率而开发的,它包括基本信息管理、住宿管理、服务管理、来访者管理等四大功能模块。
该系统开发由需求分析阶段、概念结构设计阶段、逻辑结构设计阶段、物理结构设计阶段、数据库实施与维护阶段等阶段组成。
一 需求分析
目前,我们学校的宿舍管理都是由人工管理的,信息都是由文本记录的。针对这一实际情况,我们设计了学生宿舍管理系统。
1.1 需求分析
经过实际分析调查,一个学生宿舍管理系统主要是要方便宿舍管理人员的工作,提高其工作效率,不仅可以方便广大学生,而且还可以方便于教师和相关人员。
1.1.1 基本信息
学生住在宿舍楼中,每幢宿舍楼都会有若干名老师负责本宿舍楼的日常管理。
(1)学生的基本信息:
入校时,每位同学都有唯一的学号,并被分配到指定的宿舍楼和指定的宿舍,也会有一个宿舍号,其入校时间就是他的入住时间。
(2)宿舍的基本信息:
每间宿舍都有唯一的楼号和宿舍号,入校时,宿舍会装公用电话机,相应地就有宿舍电话号码。
(3)工作人员基本信息:
每幢宿舍都有驻楼阿姨和保洁阿姨的编号。
(4)报修的基本信息:
宿舍楼中经常出现财产的损坏,比如灯泡坏了,厕所的马桶出故障了等,这时,同学们需要将财产损坏情况报告给宿舍楼管理员,以便学校派人进行维修。这时,需要记录报修的宿舍号和损坏的财产编号,同时记录报修的时间和损坏的原因。当损坏的财产维修完毕后,应记录解决时间,表示该报修成功解决。
(5)来访者基本信息
每幢宿舍对于每一次的人员来访都要做好相应的登记。包括来访者和被访者的信息。
1.1.2 用户对系统要求
1、信息要求:
宿舍楼管理员能查询上面提到的宿舍楼的所有相关信息,包括某一学号的学生在宿舍楼中住宿的详细信息,报修的所有信息和来访者的信息,以利于对整个宿舍楼的全面管理。
2、处理要求:
当学生基本信息发生变化时,宿舍楼管理员能对其进行修改。比如,某些同学搬到其他的宿舍中去,他们在本宿舍楼中相应的记录就应该删去;当宿舍财产报修及时解决后,管理员应登记解决时间,表明该报修问题已成功解决。
3、安全性与完整性要求:
A、安全性要求:
(1)系统应设置访问用户的标识以鉴别是否是合法用户,并要求合法用户设置其密码,保证用户身份不被盗用;
(2)系统应对不同的数据设置不同的访问级别,限制访问用户可查询和处理数据的类别和内容;
(3)系统应对不同用户设置不同的权限,区分不同的用户,如区分普通用户(学生),管理员。
B、完整性要求:
(1)各种信息记录的完整性,信息记录内容不能为空;
(2)各种数据间相互的联系的正确性;
(3)相同的数据在不同记录中的一致性。
1.2 系统功能分析:
学
生
宿
舍
管
理
系统
基本信息管理
服务管理
住宿管理
来访者管理
学生信息
工作人员信息
入住
租赁
电费
维修
水费
宿舍信息
调房
退房
来访者信息登记
来访者查询
本系统主要有以下功能:基本信息管理、住宿管理、服务管理、来访者管理。基本信息管理包括学生信息、宿舍信息、工作人员信息;住宿信息包括入住、调房、退房;服务管理包括租赁、水费、电费、维修;来访者管理包括来访者信息登记、来访者查询。
数据库操作功能:查询、删除、修改、插入;
1.3 业务流程概述
系统的业务是系统要达到的业务目标,业务流程分析是系统分析中的基础环节。根据以上系统功能的分析,我们将学生宿舍管理业务分成基本信息管理、住宿管理、服务管理、来访者管理四个模块。
1.基本信息管理
宿舍信息管理:主要是记录宿舍的基本状况,可住人数,已住人数,电话号码,便于工作人员分配寝室以及联系。
学生信息管理:宿舍的学生信息主要来自学生处提供的,对于已住进宿舍的学生,工作人员从学生处提取相关信息,进行统一管理,如果学生退房之后,相应的信息也将被删除。
员工信息管理:记录在宿舍、楼管处工作的员工信息,及时增、删、改,便于有个统一的收集、管理、宿舍更好的运作。
2.住宿管理
新生入住:新生向楼管处提出入住申请,工作人员进行查询宿舍相关信息之后,再根据学生的信息相应的给新生安排宿舍,登记和修改相关信息。
调房:学生向楼管处提出宿舍调房申请,楼管处根据学生的所要调房的信息,给予核实确认之后,查询宿舍信息之后,满足条件就给予学生办理调房,并修改相应信息,否则不办理。
退房:学生向楼管处提出退房申请,楼管处核实证件准确无误之后,办理退房手续,并删除学生的相关信息。
3.服务管理
水电费:楼管处在每个月下旬记录每个宿舍的水,电使用情况,根据收费标准,结算出每个宿舍所需支付的费用,再由每个宿舍在月底之前进行付费。
临时设备的租赁:学生把所需的临时设备向楼管处进行租赁申请,再由工作人员核实,确定之后,给予学生批准,并收取相应的租赁费用。
报修:学生把需要维修的设备向楼管处提出申请,填写相应的维修单,支付相应的费用,工作人员根据维修单派发维修员工对设备进行维修,楼管处再把已修信息反馈给学生。
4.外来人员管理
外来访客登记来访信息,楼管处根据外来访客所登记的信息表,从宿舍、工作人员信息、学生信息这三张表单中,查询外来访客所要访问的人员的基本信息,最后经过核实,确定其是否可以访问。
1.4 数据流程图
数据流程图是全面描述信息系统逻辑模型的工具,它抽象概括地把信息系统中各种业务处理过程联系起来。根据以上的业务流程的分析,以及学生宿舍的特点,我们给出了以下学生宿舍管理信息系统的数据流程图。
由于学生宿舍主要涉及学生的入住和退缩问题,以及住宿的管理,我们将学生宿舍管理系统的顶层设计如下:
学生
工作
人员
学生宿舍
管理系统
入住及离宿申请
信息处理结果
入住及离宿审批
信息检索请求
将顶层进行细分,主要是工作人员管理宿舍,接收和处理各种事务,包括学生,宿舍,以及工作人员的基本信息管理,学生住宿管理,宿舍的服务管理,来访者管理,得到以下的第一层数据流程图如下:
管理员
1.0
接受事务
事务
基本信息事务
住宿事务
服务事务
出入事务
1.4
来访者
管理
1.3
服务管理
1.2
住宿管理
1.1
基本信息管理
工作人员
基本信息
住宿信息
服务信息
来访信息
D3
宿舍表
D2
学生表
D3
宿舍表
D4
学生住宿表
D8
设备租赁表
D5
设备维修表
D
水电费表
D
来访者表
针对每个事务的管理,我们进行了分类,即第二层数据流程图如下:
第二层1:
工作人员
住宿管理事务
1.2.0
事务分类
1.2.2
调房管理
1.2.1
入住管理
1.2.3
退房管理
调房信息
入房信息
退房信息
入住信息
调房信息
退房信息
D4
学生住宿表
D3
宿舍表
D4
学生住宿表
D3
宿舍表
D4
学生住宿表
D3
宿舍表
第二层2:
D3
宿舍表
工作人员
基本信息事务
1.1.0
事务分类
1.1.2
宿舍管理
1.1.1
员工管理
1.1.3
学生管理
宿舍信息
员工信息
学生信息
员工信息
宿舍信息
学生信息
D1
员工表
D2
学生基本信息表
第二层3:
1.3.1
报修管理
1.3.2
临时设备租赁管理
人员来访信息
1.3.3
水电费
临时设备信息
临时设备信息
报修信息
水电费信息
水电费信息
服务事务
1.3.0
事务分类
工作
人员
第二层4:
来访人员
1.4.0
事务分类
1.4.2
访问结束
1.4.1
人员来访
工作
人员
人员来访信息
结束信息
D7
人员来访信息表
以上当中的住宿管理事务,有学生的入住管理,调房管理,退房管理,由于这三个事务都有相似性,首先都需要学生提出申请,再经过管理者的审核,通过查询宿舍表,了解住宿情况之后再考虑是否满足学生的申请,申请通过之后,相应的调整学生住宿表和宿舍表的信息,所以我们就以学生入住管理为例,其流程图如下:
学生
查询床位
分配宿舍
宿舍
不满足
学生
D3
宿舍表
D3
宿舍表
D4
学生住宿表
满足
1.5 数字字典
1.5.1数据项
住宿学生数据字典
属性名
类型
长度
备注
学号
char
8
住宿学生学号
姓名
Varchar
10
住宿学生姓名
性别
char
2
男/女
专业
Varchar
20
学生专业
联系方式
char
11
联系方式
员工数据字典
属性名
类型
长度
备注
员工号
char
4
员工姓名
Varchar
10
年龄
smallint
2
性别
char
2
职位
Varchar
20
联系方式
char
11
宿舍数据字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
宿舍电话
char
12
可住人数
smallint
2
已住人数
smallint
2
临时设备租赁数据字典
属性名
类型
长度
备注
设备号
char
8
设备名
Varchar
20
租赁日期
Datetime
8
所租的日期
归还日期
Datetime
8
归还设备日期
租赁费用
decimal
5
租赁设备的费用
报修数据字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
报修人宿舍号
物品号
varchar
8
报修物品编号
报修原因
char
50
物品损坏原因
提交日期
datetime
8
报修提交日期
解决日期
datetime
8
问题解决日期
报修费用
decimal
5
报修的费用
水电费数字字典
属性名
类型
长度
备注
楼号
char
2
宿舍号
char
3
月份
Varchar
4
用电量
decimal
(5,2)
电费
decimal
(5,2)
用水量
decimal
(5,2)
水费
decimal
(5,2)
来访者数字字典
属性名
类型
长度
备注
来访人姓名
Varchar
10
被访人姓名
Varchar
10
所属关系
Varchar
20
证件名称
Varchar
20
来访日期
Datetime
8
来访时间
Datetime
8
结束时间
Datetime
8
备注
Varchar
50
1.5.2数据结构
数据结构名
组成
学生住宿信息
学号,姓名,性别,专业,联系方式,入住时间
员工信息
员工号,姓名,年龄,性别,职位,家庭地址,联系方式
宿舍信息
楼号,宿舍号,宿舍电话,可住人数,已住人数
临时设备信息
设备号,设备名,租赁日期,归还日期,租赁费用
报修信息
楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用
水电费信息
楼号,宿舍号,月份,用电量,电费,用水量,水费
来访者信息
来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,备注
1.5.3数据流
数据流名
数据流来源
数据流去向
组成
登记报修信息
学生
报修信息表
报修信息
查询报修信息
报修信息表
管理员
报修信息
登记已修信息
管理员
报修信息表
已修信息
登记设备租赁信息
学生
设备租赁信息表
设备租赁信息
查询设备租赁信息
设备租赁信息表
学生
设备租赁信息
登记设备归还信息
管理员
管理员
设备归还信息
登记来访者信息
来访者
来访者信息表
来访信息
查询来访者信息
管理员
来访者信息表
来访信息
登记来访结束信息
管理员
来访者信息表
来访结束信息
1.5.4数据存储
数据存储名
输入的数据流
输出的数据流
组成
报修信息表
报修信息
已修信息
报修信息
报修信息
已修信息
设备租赁信息表
设备租赁信息
设备归还信息
设备租赁信息
设备租赁信息
设备归还信息
来访者信息表
来访信息
来访结束信息
来访信息
来访信息
来访结束信息
1.5.5处理过程
处理过程名
输入数据流
输出数据流
登记报修
报修信息
报修信息
查询报修
报修信息
报修信息
登记已修信息
已修信息
已修信息
登记设备租赁信息
设备租赁信息
设备租赁信息
查询设备租赁
设备租赁信息
设备租赁信息
登记设备归还信息
设备归还信息
设备归还信息
登记来访者信息
来访者信息
来访者信息
查询来访者信息
来访者信息
来访者信息
登记来访结束信息
来访结束信息
来访结束信息
二 概念结构设计
概念结构是将需求分析抽象为信息结构即概念模型的过程,这样才能更好地、更准确的用某一DBMS实现这些需求,是整个数据库设计的关键,它主要特点是能真实、充分地反映现实社会,包括事物和事物之间的联系,能满足用户对数据的处理需求,是对现实世界的一个真实模型,而且还易于理解,也方便用户的操作,对数据的修改和各种模型的转换。
从以上的数据流程图中,我们选择了第二层数据流程图作为设计E-R图的出发点,从分析数据流图和数字字典中可以看出,整个系统功能是围绕“学生住宿”问题进行处理,学生住进宿舍,工作人员管理宿舍,处理宿舍提供的各种服务,另外,还有来访者对学生的来访。ER图见附件。
三 逻辑结构设计
3.1逻辑设计的任务和目标
以上的概念设计阶段是独立于任何一种数据模型的,但是逻辑设计阶段就与选用的DBMS产品发生关系了,系统逻辑设计的任务就是将概念设计阶段设计好的基本E-R图转换为选用DBMS产品所支持的数据模型相符合的逻辑结构。
3.2数据组织
3.2.1将E-R图转换为关系模型
由于宿舍与学生是1:n关系,可以将其之间的联系与n端实体学生合并,宿舍和员工,学生和临时设备,学生和来访者也是1:n关系,同样也将其之间的联系与n端实体员工,临时设备,来访者合并,具体的基本E-R图向关系模型的转化如下:
学生住宿表:(学号,姓名,性别,专业,入住时间,联系方式,楼号,宿舍号)
宿舍表:(楼号,宿舍号,电话号码,可住人数,已住人数)
员工表:(员工号,员工姓名,性别,职位,家庭地址,联系方式,楼号)
临时设备租赁表:(设备号,设备名,租赁日期,归还日期,租赁费用,学号)
报修表:(楼号,宿舍号,物品号,报修原因,提交日期,解决日期,报修费用)
水电费表:(楼号,宿舍号,月份,用电量,电费,用水量,水费)
来访者表:(来访人姓名,被访人姓名,所属关系,证件名称,来访日期,来访时间,结束时间,学号)
3.2.2 逻辑结构定义
由以上分析,得出上述7个表格结构如下:
学生住宿表,主要记录学生住宿的基本信息。
属性名
类型
长度
完整性约束
备注
学号
char
8
主码
住宿学生学号
姓名
Varchar
10
非空
住宿学生姓名
性别
char
2
男或女,默认值男
学生性别
专业
Varchar
20
非空
学生专业
联系方式
char
11
可以为空
联系方式
入住时间
datetime
8
非空
新生搬入时间
楼号
char
2
外码
学生住的楼号
宿舍号
char
3
外码
学生住的宿舍号
员工表,主要记录员工的基本信息。
属性名
类型
长度
完整性约束
备注
员工号
char
4
主码
员工姓名
Varchar
10
非空
年龄
smallint
2
大于18,小于65
楼号
char
2
非空
性别
char
2
男或女
职位
Varchar
20
非空
联系方式
char
11
可以为空
宿舍表,主要记录宿舍的入住信息。
属性名
类型
长度
完整性约束
备注
楼号
char
2
非空
宿舍号
char
3
非空
宿舍电话
char
12
非空
可住人数
smallint
2
非空
已住人数
smallint
2
非空
设备租赁表,主要记录设备的租赁信息。
属性名
类型
长度
完整性约束
备注
设备号
char
8
主码
设备名
Varchar
20
非空
租赁日期
Datetime
8
非空
所租的日期
归还日期
Datetime
8
非空
归还设备日期
租赁费用
decimal
(5,2)
非空
租赁设备的费用
学号
char
8
外码
租设备学生学号
报修表,主要记录物品的报修信息。
属性名
类型
长度
完整性约束
备注
楼号
char
2
非空
宿舍号
char
3
非空
报修人宿舍号
物品号
varchar
8
非空
报修物品编号
报修原因
char
50
非空
物品损坏原因
提交日期
datetime
8
非空
报修提交日期
解决日期
datetime
8
非空
问题解决日期
报修费用
decimal
(5,2)
非空
报修的费用
水电费表,主要是每个月记录各个宿舍的水电使用情况以及相应的费用。
属性名
类型
长度
完整性约束
备注
楼号
char
2
非空
宿舍号
char
3
非空
月份
Varchar
4
非空
用电量
decimal
(5,2)
非空
电费
decimal
(5,2)
非空
用水量
decimal
(5,2)
非空
水费
decimal
(5,2)
非空
来访者表,主要记录来访者的信息。
属性名
类型
长度
完整性约束
备注
来访人姓名
Varchar
10
主码
被访人姓名
Varchar
10
非空
所属关系
Varchar
20
非空
证件名称
Varchar
20
非空
来访日期
Datetime
8
非空
来访时间
Datetime
8
非空
结束时间
Datetime
8
非空
学号
char
8
外码
四 物理结构设计
4.1物理设计阶段的目标与任务
数据库的物理设计就是为逻辑数据模型选取一个最合适应用要求的物理结构的过程,在这个阶段中要完成两大任务:
(1)确定数据库的物理结构,在关系数据库中主要是存取方法和存储结构;
(2)对物理结构进行评价,评价的重点是时间和空间效率。
4.2数据存储方面
为数据库中各基本表建立的索引如下:
(1)由于基本表学生住宿表的主码学号经常在查询条件和连接操作的连接条件中出现,且它的值唯一,考虑在学号这个属性上建立唯一性索引;
(2)宿舍表的主码楼号,宿舍号经常在查询条件中出现,且它们的组合值唯一,考虑在它们之上建立组合索引;
(3)基本表学生住宿表的一属性姓名,经常在查询条件中出现,且经常出现在相等的比较条件中,考虑在其之上建立聚簇索引;
(4)由于员工表,报修表,设备租赁表,水电费表,来访者表的属性值经常发生变化,权衡系统为维护索引付出的代价,暂考虑不建立索引;
五 数据实施和维护
5.1建立数据库、数据表、视图、索引、导入数据
5.1.1 建立数据库
create database 学生宿舍管理系统;
5.1.2 建立数据表
宿舍表
Create table 宿舍表
( 楼号 char(2),
宿舍号 char(3),
primary key(楼号,宿舍号),
宿舍电话 char(12) not null,
可住人数 smallint not null,
已住人数 smallint not null,
);
学生住宿表
Create table 学生住宿表
(学号 char(8) primary key,
姓名 varchar(10) not null,
性别 char(2) default 男 check(性别 in (男,女)),
专业 varchar(20) not null,
联系方式 char(11),
入住时间 datetime not null,
楼号 char(2) not null,
宿舍号 char(3) not null,
foreign key(楼号,宿舍号) references 宿舍表(楼号,宿舍号),
);
员工的基本信息表
Create table 员工表
(员工号 char(4) primary key,
员工姓名 varchar(10) not null,
年龄 smallint check(年龄>14 and 年龄<65),
楼号 char(2),
性别 char(2) check (性别 in(男,女)),
职位 varchar(20) not null,
联系方式 char(11),
);
设备的租赁信息表
Create table 设备租赁表
(设备号 char(8) primary key,
设备名 Varchar(20) not null,
租赁日期 Datetime not null,
归还日期 Datetime not null,
租赁费用 decimal(5,2) not null,
学号 char(8) foreign key references 学生住宿表(学号),
);
报修信息表
create table 报修表
(楼号 char(6) not null,
宿舍号 char(6) not null,
物品号 char(8) not null,
保修原因 char(50) not null,
提交日期 datetime not null,
解决日期 datetime not null,
保修费用 decimal(5,2) not null,
);
水电费表
Create table 水电费表
(楼号 char(2) not null,
宿舍号 char(3) not null,
月份 Varchar(4) not null,
用电量 decimal(5,2) not null,
电费 decimal(5,2) not null,
用水量 decimal(5,2) not null,
水费 decimal(5,2) not null,
);
来访者信息表
Create table 来访者表
(来访者姓名 varchar(10) not null,
被访者姓名 varchar(10) not null,
所属关系 Varchar(20) not null,
证件名称 Varchar(20) not null,
来访日期 Datetime not null,
来访时间 Datetime not null,
结束时间 Datetime not null,
备注 Varchar(50),
学号 char(8) foreign key references 学生住宿表(学号),
);
5.1.3 建立视图
1.建立物流管理专业的学生住宿的视图
Create view 物流管理学生住宿表
As
Select 学号,姓名,楼号,宿舍号
From 学生住宿表
Where 专业=’物流管理’;
2.建立住在22号楼的学生信息的视图
Create view 22号楼学生住宿表
As
Select 学号,姓名,专业
From 学生住宿表
Where 楼号=’22’;
3.建立职位是管理员的员工信息的视图
Create view 管理员信息表
As
Select *
From 员工表
Where 职位=’管理员’;
4.建立4月份各个宿舍的水电使用情况的视图
Create view 4月水电表
As
Select *
From 水电表
Where 月份=’4’;
5.建立22号楼各个宿舍的信息的视图
Create view 22号楼宿舍信息表
As
Select *
From 宿舍表
Where 楼号=’22’;
5.1.4 建立索引
create unique index 住宿_学号 on 学生住宿表(学号);
create unique index 宿舍楼_宿舍号on 宿舍表(楼号,宿舍号);
create cluster index 学生_姓名 on 学生住宿表(姓名);
Create unique index IX_员工号 on 员工表(员工号);
Create unique index IX_设备号 on 设备租赁表(设备号);
5.1.5 导入数据
1./*宿舍表格记录插入*/
Insert into 宿舍表
Values (27,101,057108011010,04,04)
Insert into 宿舍表
Values (22,111,057108011110,04,04)
Insert into 宿舍表
Values (27,131,057108011160,04,04)
截图如下:
2. /*学生住宿表格记录插入*/
Insert into 学生住宿表
Values (08030004,王晓明,男,物流管理,15158110001,20080906,27,101)
Insert into 学生住宿表
Values (08030002,李倩,女,物流管理,15158110002,20080906,22,111)
Insert into 学生住宿表
Values (08030005,李明,男,物流管理,15158110003,20080906,27,131)
截图如下:
3./*员工表格记录插入*/
Insert into 员工表
Values (y001,叶玉,40,27,女,清洁工,15058101000)
Insert into 员工表
Values (y002,王思思,26,22,女,管理员,15058101010)
Insert into 员工表
Values (y003,李伟,34,22,男,管理员,15058101110)
截图如下:
4./*报修表格记录插入*/
Insert into 报修表
Values (27,101,0001,日光灯不亮,20100920,20100922,00.00)
Insert into 报修表
Values (22,111,0001,热水器坏了,20100920,20100922,00.00)
Insert into 报修表
Values (27,131,0001,下水道坏了,20100920,20100922,05.00)
截图如下:
5./*水电费表格记录插入*/
Insert into 水电费表
Values (27,101,09,17.12,13.00,05.24,07.52)
Insert into 水电费表
Values (27,131,09,18.12,14.00,06.24,08.52)
Insert into 水电费表
Values (22,111,08,11.12,13.00,06.24,08.52)
截图如下:
6./*来访者表格记录插入*/
Insert into 来访者表
Values (张晓红,王晓明,母子,身份证,20100920,2010/9/20 12:20:30,2010/9/20 12:50:30,帮忙带东西,08030004)
Insert into 来访者表
Values (王伟,李倩,兄妹,身份证,20100910,2010/9/10 12:20:30,2010/9/10 12:50:30,看望她,08030002)
Insert into 来访者表
Values (王梦,李明,姐妹,身份证,20100930,2010/9/30 12:10:30, 2010/9/30 13:50:30,看望她,08030005)
截图如下:
7./*设备租赁表格记录插入*/
Insert into 设备租赁表
Values (00000001,饮水机,10:09:20,14:06:20,50,08030001)
Insert into 设备租赁表
Values (00000002,热水器,10:04:20,14:02:12,22,08030002)
截图如下:
5.2 记录和约束条件的的增加、删除和修改
5.2.1 记录的增加、删除、修改
1.一个新生住进宿舍:
insert into 学生住宿表
Values (08032111,张三,男,物流管理,15122235673,09/03/12,27,325)
2.删除员工号为0103的信息
Delete from 员工表
where 员工号=0103
3.修改宿舍表中11号楼214宿舍的已住人数
Update 宿舍表
Set 已住人数=04
Where楼号=11 and 宿舍号=214;
5.2.2 约束条件的增加、删除、修改
1.在学生住宿表中增加一属性为学院,数据类型为varchar(20),
Alter table 学生住宿表 add 学院 varchar(20);
2.删除学生住宿表中新增的属性学院
Alter table 学生住宿表 drop column 学院;
3.在设备租赁表中,增加设备名取唯一值的约束条件
Alter table 设备租赁表 add unique(设备名);
5.3查询语句
1.查询员工姓名为李倩的基本信息
Select *
From 员工表
Where 员工姓名=李倩;
2.查询年龄在22岁到32岁的员工号,员工姓名,职位
Select 员工号,员工姓名,职位
From 员工表
Where 年龄 between 22 and 32;
3.查询所有姓黄的来访者信息
Select *
From 来访者表
Where 来访者姓名 like 黄%;
4.查询张三所在的宿舍的已住人数
Select 宿舍表.楼号, 宿舍表.宿舍号,已住人数
From 宿舍表,学生住宿表
Where 姓名=张三 and 宿舍表.楼号=学生住宿表.楼号 and 宿舍表.宿舍号=学生住宿表.宿舍号;
5.查询住在22号楼123宿舍所住的学生信息
Select 学号,姓名,专业,联系方式
From 学生住宿表
Where 楼号=22 and 宿舍号=123;
6.查询物流专业的学生住宿人数
Select count(学号)
From 学生住宿表
Where 专业=物流专业;
7.查询姓名为李四的学生所租的设备信息
Select *
From 设备租赁表
Where 学号 in (select 学号
From 学生住宿表
Where 姓名=李四);
8.查询员工号为0124的员工所在楼的住宿信息
Select *
From 宿舍表
Where 楼号 in (select 楼号
From 员工表
Where 员工号=0124);
5.4 建立存储过程,触发器
1.存储过程,返回指定的月份的水费总额和电费总额
Create proc pro
@benning varchar(4),@ending varchar(4),
@all_waterpay decimal(8,2),@all_elecpay decimal(8,2) output
/* 给存储过程定义四个参数:开始月份和结束月份的水费总额和电费总额*/
AS
select @all_waterpay=sum(水费), @all_elecpay=sum(电费)
From 水电费表
where 月份 between @benning
and @ending
2.触发器,当学生退房,即删除某一学生时,这学生所租的设备也删除
Create trigger tri
On 学生住宿表
For delete
AS
展开阅读全文