宾馆管理系统数据库课程设计实验报告Word格式文档下载.docx
《宾馆管理系统数据库课程设计实验报告Word格式文档下载.docx》由会员分享,可在线阅读,更多相关《宾馆管理系统数据库课程设计实验报告Word格式文档下载.docx(11页珍藏版)》请在冰豆网上搜索。
式的信息交互方式已经被人们广泛应用。
让计算机来管理顾客的信息是现在各个宾馆都在积极进行的工作之一,也是宾馆管理工作的重要内容之一。
数据库对于一个应用系统的意义是相当重要的,一个设计良好的数据库系统一方面,能够给开发者带来便捷,更轻松的进行系统设计及编码;
另一方面,对于系统的后期维护也非常重要,一个良好的数据库系统能够保证系统的可扩充性,以及系统的移植性等问题。
1.2研发资料整理
在研发学生选课系统的过程中,我选择了《数据库设计项目开发实例》《数据库设计》等资料,这些资料包含项目开发的需求分析,概念结构分析,逻辑结构分析,数据字典,数据库实施及维护,以及语言基础等等。
二、需求分析
2.1客房管理系统分析
客房管理是学校宾馆管理中的一项重要任务,以往的手工操作已经不能适应现在办公的需要。
为了摆脱繁琐的劳动,提高工作效率,利用计算机进行信息处理成为必然。
开发功能完善及安全可靠的管理系统可以大大提高宾馆资源的利用率,及时,准确地获取需要的信息,充分发挥人员的工作潜力。
正是咨询业的迅速发展使得人们从过去的手工劳动中得以解脱。
同时,编写一套完善的客房管理系统的任务就显得尤为重要。
本客房管理系统可实现客房类型,价目信息,客房信息的管理,客户信息的管理,实现入住和退房管理,费用管理。
2.2需求分析
开发工具:
myeclipse
开发语言:
java
数据库:
MySQL
面向对象:
需求者
2.3系统主要功能:
1.客人信息的基本录入;
2.客人基本信息的查询、修改、增加、删除;
3.客房相关信息的录入,包括房间号,收费标准,床位,类别等;
4.客房类别标准的制定,类别信息的输入;
5.客房基本信息的查询、修改、删除等;
6.住房信息的录入,包括房间号、客人姓名等;
7.退房信息的更新;
三、结构设计
3.1概念设计
概念结构设计阶段的目标是通过对用户需求进行综合、归纳及抽象,形成一个独立于具体DBMS的概念模型。
概念结构的设计方法有两种:
(1)集中式模式设计法:
这种方法是根据需求由一个统一机构或人员设计一个综合的全局模式。
这种方法简单方便,适用于小型或不复杂的系统设计,由于该方法很难描述复杂的语义关联,而不适于大型的或复杂的系统设计。
(2)视图集成设计法:
这种方法是将一个系统分解成若干个子系统,首先对每一个子系统进行模式设计,建立各个局部视图,然后将这些局部视图进行集成,最终形成整个系统的全局模式。
在我们的数据库系统中共有6个实体:
客户,物品,客房,管理员
(1)客户的属性:
客户编号,客户姓名,客户性别,客户身份证号
(2)物品的属性:
客房号,物品号,物品名称,物品状态,物品单价,物品数量
(3)管理员的属性:
管理员编号,管理员姓名,管理员职称
3.2E-R图
(1)客户
(2)物品
(3)管理员
(8)将以上实体之间联系表示出来,画出数据库系统的E-R图
3.3逻辑结构设计
3.3.1逻辑转换
具体的E—R图向关系模型的转化结果如下;
客户customers(Cno,Cname,Csex,cid)
客房Rooms(Rno,Rstyle,Rprice,Rstate,Rtel)
客户住宿Living(Tno,Rno,Ccomedate,Cleftdate,Ctime,Camount)
客房物品Roomitem(Rno,Ritemno,Ritemname,Ritemprice,Ritemstate,Ritemnum)
宾馆管理员Administrators(Ano,Aname,position,password)
3.4物理结构设计
数据库物理设计是后半段。
将一个给定逻辑结构实施到具体的环境中时,逻辑数据模型要选取一个具体的工作环境,这个工作环境提供了数据存储结构及存取方法,这个过程就是数据库的物理设计。
物理结构依赖于给定的DBMS和和硬件系统,因此设计人员必须充分了解所用RDBMS的内部特征、存储结构、存取方法。
数据库的物理设计通常分为两步,第一,确定数据库的物理结构,第二,评价实施空间效率和时间效率
确定数据库的物理结构包含下面四方面的内容:
1、确定数据的存储结构
2、设计数据的存取路径
3、确定数据的存放位置
4、确定系统配置
数据库物理设计过程中需要对时间效率、空间效率、维护代价和各种用户要求进行权衡,选择一个优化方案作为数据库物理结构。
在数据库物理设计中,最有效的方式是集中地存储和检索对象。
3.4.1数据库的表设计
进一步确定逻辑设计中设计好的关系模式中各个数据项的类型和长度,将每个关系转换为数据库中的二维表格,并确定了各个表的主键和外键,该系统设计了如下数据表:
房间信息表结构:
客人信息表:
3.5触发器设计
触发器c1的功能为当有一条信息插入Living表中时,触发Rooms表中的Rstate=‘满’。
Createtriggerc1
OnLivingforinsert
As
Ifexists(select*fromLiving,RoomswhereLiving.Rno=Room.Rno)
Begin
UpdateRooms
SetRstate=‘满’
WhereRno=(selectRnofrominserted)
End
触发器c2的功能为当从Living表中删除一条信息时,触发Rooms表中的Rstate=‘空’
代码如下:
Createtriggerc2
OnLivingfromdelete
As
Ifexists(select*fromLiving,RoomswhereLIving.Rno=Rooms.Rno)
SetRstate=‘空’
WhereRno=(selectRnofromdeleted)
end
四、数据字典
数据字典是指对数据的数据项、数据结构、数据流、数据存储、处理逻辑、外部实体等进行定义和描述,其目的是对数据流程图中的各个元素做出详细的说明。
数据字典(Datadictionary)是一种用户可以访问的记录数据库和应用程序源数据的目录。
主动数据字典是指在对数据库或应用程序结构进行修改时,其内容可以由DBMS自动更新的数据字典。
被动数据字典是指修改时必须手工更新其内容的数据字典。
1.数据口词条:
更新信息:
{客户信息|客房信息}
客户信息:
{客户编号+客户姓名+客户性别+客户姓名客户身份证号}
客房信息:
{客房号+客房类型+客房单价+客房状态+客房电话}
查询信息:
{客户信息|客房信息|物品信息}
客户住宿信息:
{客户编号+客房号+入住日期+结算日期+住宿时间+房费}
2.数据存储文件词条:
客户信息文件:
存放客户信息。
客房信息文件:
存放客房信息。
住宿信息文件:
存放客户住宿基本情况。
3.加工词条:
查询客房条件:
对客房状态进行查询。
客户登记:
登记客户信息及所住客房信息。
查询住宿信息:
对客户住宿信息进行查询。
修改住宿信息:
对客户住宿信息进行修改。
检查客户房间物品:
对客户房间的物品进行检查。
物品赔偿:
对已损坏的物品进行赔偿。
结算:
客户退房时进行结算。
五、运用设计
5.1数据库系统的完整性
数据库完整性(DatabaseIntegrity)是指数据库中数据在逻辑上的一致性、正确性、有效性和相容性。
数据库完整性由各种各样的完整性约束来保证,因此可以说数据库完整性设计就是数据库完整性约束的设计。
数据库完整性对于数据库应用系统非常关键,其作用主要体现在以下几个方面:
1.数据库完整性约束能够防止合法用户使用数据库时向数据库中添加不合语义的数据。
2.利用基于DBMS的完整性控制机制来实现业务规则,易于定义,容易理解,而且可以降低应用程序的复杂性,提高应用程序的运行效率。
同时,基于DBMS的完整性控制机制是集中管理的,因此比应用程序更容易实现数据库的完整性。
3.合理的数据库完整性设计,能够同时兼顾数据库的完整性和系统的效能。
比如装载大量数据时,只要在装载之前临时使基于DBMS的数据库完整性约束失效,此后再使其生效,就能保证既不影响数据装载的效率又能保证数据库的完整性。
4.在应用软件的功能测试中,完善的数据库完整性有助于尽早发现应用软件的错误。
数据库完整性约束可分为6类:
列级静态约束、元组级静态约束、关系级静态约束、列级动态约束、元组级动态约束、关系级动态约束。
动态约束通常由应用软件来实现。
不同DBMS支持的数据库完整性基本相同。
5.2数据库系统的安全性
在数据库中,由于用户的身份不同,对数据库的访问权限也就不同。
管理员几乎能够对所有的用户自定义表进行操作(包括增、删、改、查)。
但根据实际情况,学生一旦选课成功,管理员是无法对其选课信息进行修改。
同样,学生及教师对数据库的访问权限就更加小了。
这样也就保证了数据库安全性。
另外一方面,数据库表中,各表之间根据实体完整性、参照完整性、域完整性设置了各种约束。
一旦一张表被非法操作,如删除,修改。
也会影响其它的表。
所以这就要求DBA定时进行备份,防止当数据丢失时,引起不可估量的损失。
数据库的安全性是指保护数据库以防止不合法的使用所造成的数据泄露、更改或破坏。
安全性问题不是数据库系统所独有的,所有计算机系统都有这个问题。
只是在数据库系统中大量数据集中存放,而且为许多最终用户直接共享,从而使安全性问题更为突出。
系统安全保护措施是否有效是数据库系统的主要指标之一。
数据库的安全性和计算机系统的安全性,包括操作系统、网络系统的安全性是紧密联系、相互支持的。
实现数据库安全性控制的常用方法和技术有:
(1)用户标识和鉴别:
该方法由系统提供一定的方式让用户标识自己咱勺名字或身份。
每次用户要求进入系统时,由系统进行核对,通过鉴定后才提供系统的使用权。
(2)存取控制:
通过用户权限定义和合法权检查确保只有合法权限的用户访问数据库,所有未被授权的人员无法存取数据。
例如C2级中的自主存取控制(I)AC),Bl级中的强制存取控制(M.AC)。
(3)视图机制:
为不同的用户定义视图,通过视图机制把要保密的数据对无权存取的用户隐藏起来,从而自动地对数据提供一定程度的安全保护。
(4)审计:
建立审计日志,把用户对数据库的所有操作自动记录下来放人审计日志中,DBA可以利用审计跟踪的信息,重现导致数据库现有状况的一系列事件,找出非法存取数据的人、时间和内容等。
(5)数据加密:
对存储和传输的数据进行加密处理,从而使得不知道解密算法的人无法获知数据的内容。
5.3数据库系统的运行
要使数据库系统投入并保持正常运行,需要许多人做许多工作。
这里主要讨论作为计算机系统的一个组成部分的DBMS及其数据库及其他系统部件的接口关系、系统的工作原理。
任何时刻都可能有多个用户同时对数据库施加各种类型的操作,因而有许多程序活动并发执行。
这种情况还可以分为所有应用集中在一起而形成的集中式的系统和应用分散在不同的地理位置的分散式或分布式系统。
它们对数据库运行可施加不同的影响,因而要求OS、DBMS及DCMS等的不同支持。
用户请求的实现过程
用户请求实现模型是一个层次结构,它包含了三层软件、四层接口和物理数据库。
三层软件是:
第一次是应用软件层,它直接支持最终用户,使他们能够对数据的请求来存取数据库。
它将用户的数据请求转换成逻辑存取命令而嵌入在主语言程序或专门的查询中。
第二层主要是数据库管理软件,还可能作为集成数据管理软件的部件而包括一些应用支撑软件,它们将逻辑存取命令转换成存储数据的存取命令。
第三层是存取方法,它一般是操作系统的一部分,也包括DBMS的一些专门扩充和接口,它将存储记录命令转换成物理记录(块)操作,并执行物理记录接口上的数据传输。
5.4数据库系统的维护
数据库既是共享的资源,又要进行适当的保密。
DBA必须对数据库安全性和完整性控制负起责任。
尤其在计算机网络普遍引应用的今天,保证数据安全、防止黑客攻击、防止病毒入侵等,都是DBA所需要面对的。
按照设计阶段提供的安全防范和故障恢复规范,DBA要经常检查系统的安全是否受到侵犯,根据用户的实际需要授予用户不同的操作权限。
数据库在运行过程中,由于应用环境发生变化,对安全性的要求可能发生变化,数据库运行过程中物理存储也会不断变化,对数据库设计进行评价、调整、修改等维护工作是一个长期的任务,也是设计工作的继续和提高。
DBA要对其进行调整,以满足用户的要求。
在数据库运行阶段,对数据库经常性的维护工作主要是由DBA完成的,它包括:
1.数据库的转储和恢复
数据库的转储和恢复是系统正式运行后最重要的维护工作之一。
DBA要针对不同的应用要求制定不同的转储计划,以保证一旦发生故障能尽快将数据库恢复到某种一致的状态,并尽可能减少对数据库的破坏。
2.数据库的安全性和完整性控制
在数据库运行过程中,由于应用环境的变化,对安全性的要求也
会发生变化,比如有的数据原来是机密的,现在是可以公开查询的了,而新加入的数据又可能是机密的了。
系统中用户的密级也会改变。
这些都需要DBA根据实际情况修改原有的安全性控制。
同样,数据库的完整性约束条件也会变化,也需要DBA不断修正,以满足用户要求。
3.数据库性能的监督、分析和改造
在数据库运行过程中,监督系统运行,对监测数据进行分析,找出改进系统性能的方法是DBA的又一重要任务。
目前有些DBMS产品提供了监测系统性能参数的工具,DBA可以利用这些工具方便地得到系统运行过程中一系列性能参数的值。
DBA应仔细分析这些数据,判断当前系统运行状况是否是最佳,应当做哪些改进。
例如调整系统物理参数,或对数据库进行重组织或重构造等。
4.数据库的重组织及重构造
数据库运行一段时间后,由于记录不断增、删、改,会使数据库的物理存储情况变坏,降低了数据的存取效率,数据库性能下降,这时DBA就要对数据库进行重组织,或部分重组织(只对频繁增、删的表进行重组织)。
DBMS一般都提供数据重组织用的实用程序。
在重组织的过程中,按原设计要求重新安排存储位置、回收垃圾、减少指针链等,提高系统性能。
数据库的重组织,并不修改原设计的逻辑和物理结构,而数据库的重构造则不同,它是指部分修改数据库的模式和内模式。
由于数据库应用环境发生变化,增加了新的应用或新的实体,取消了某些应用,有的实体及实体问的联系也发生了变化等,使原有的数据库设计不能满足新的需求,需要调整数据库的模式和内模式。
例如,在表中增加或删除某些数据项,改变数据项的类型,增加或删除某个表,改变数据库的容量,增加或删除某些索引等。
当然数据库的重构也是有限的,只能做部分修改。
如果应用变化太大,重构也无济于事,说明此数据库应用系统的生命周期己经结束,应该设计新的数据库应用系统了。