资源描述
数据库课程设计报告
摘要
国内电影院的售票系统不完善,有很多问题存在,售票效率低下,管理混乱.现今社
会是个讲究效率的社会,时间就是金钱。开发简单,便于操作的的软件不仅可以节省时间,还可以节省人力,物理,财力等。建立的影院售票系统,要把影院的售票管理、订票管理,财务管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平。
通过本系统软件,能帮助售票人员利用计算机,快速方便地对影院售票情况,订票情
况,剩余座位查询等进行高效的管理。
关键字:SQL语句,影院管理系统,数据库设计
目录
第一章绪论
1。1课题简介
1。2设计目的
1.3设计内容
第二章需求分析
2。1 需求分析的任务
2.2 系统目标
2.3 数据字典与流程图
2.4 系统框架
第三章概念结构设计
3。1 概念结构设计的方法与步骤
3.1.1 概念结构设计的方法
3。1.3 概念结构设计的步骤
3。2 数据抽象与局部视图设计
3。3视图的集成
第四章逻辑结构设计
4。1 E-R图向关系模型的转换
4。2 数据模型的优化
4。3 数据库的结构
第五章数据库的实现
5。1数据库的建立
5.3安全性的实现
5.4完整性的实现
5。5恢复技术的实现
第六章运行与结果
6。1简单查询和连接查询
6.2嵌套查询
6。3组合查询和统计查询
第一章 绪论
1。1课题简介
国内电影院的售票系统不完善,有很多问题存在,售票效率低下,管理混乱。现今社
会是个讲究效率的社会,时间就是金钱.开发简单,便于操作的的软件不仅可以节省时间,还可以节省人力,物理,财力等。建立的影院售票系统,要把影院的售票管理、订票管理,财务管理等日常管理工作实行计算机统一管理,以提高工作效率和管理水平.
通过本系统软件,能帮助售票人员利用计算机,快速方便地对影院售票情况,订票情
况,剩余座位查询等进行高效的管理。
1.2设计目的
应用对数据库系统原理的理论学习,通过上机实践的方式将理论知识与实践更好的结合起来,巩固所学知识。
实践和巩固在课堂教学中学习的关于关系数据库原理的有关知识和数据库系统的建立方法,熟练掌握对于给定实际问题,为了建立一个关系数据库信息管理系统,必须得经过系统调研、需求分析、概念设计、逻辑设计、物理设计、系统调试、维护以及系统评价的一般过程,为毕业设计打下基础。
1。3设计内容
本软件的使用对象有影院负责人或管理人员(更新维护系统),影院售票人员(办理售票,订票,退票)和买票人(购买影票人员).通过这些信息制成表格,输入到数据库中,使之能够进行所需的操作。需求分析阶段就是要研究系统的具体分类和实施过程流图。概念设计阶段要完成数据抽象与局部视图设计还有视图的集成。逻辑结构设计阶段要把E-R图转化为关系模式。最后就是要运行和实施数据库。
第二章 需求分析
2。1 需求分析的任务
科学发展,社会进步,人们的生活水平日渐提高,人们日益增长的物质文化需要也渐渐提高,去电影院看电影来缓解生活与工作的压力成为当下一种潮流.随着需求量增大,传统的人工管理方式已经不能很好的对影院进行系统的管理,出现了诸如安排不合理、统计不全以及对顾客的要求不能及时满足等问题。为杜绝此现象的发生,我们开发了现代化的管理信息系统。本管理系统操作简单而且实用,包括销售管理、预定影票管理、退票管理、查询管理和用户管理等管理系统,包括影票基本信息、影院基本信息、放映时间信息、人员管理等,完成这些信息的增加、删除、修改查询统计功能,同时,还可以将这些信息打印输出。该系统对影院以及影票统一进行自动化管理,大大提高了工作人员的效率,降低了对资源的浪费,可以说是管理者的好帮手。
影院预定系统应用领域涉及的内容,对涉及到领域的各个应用的信息要求和操作要求进行详细分析,形成需求分析说明书。该系统可以满足的需求有:
1。高效管理:数据处理速度快,通过对某一时间段的经营数据进行统计分析,供经营者分析经营状况,以便采取相应的经营、促销策略。
2.客户资源充分利用:通过分析顾客的消费信息,制定出有针对性的促销措施,为顾客提供更为得体的服务。与顾客形成互动,加深印象,促进消费。
3。效益最大化:通过票房分析和排片情况,院线经理可对影院票房收益有一个直观的了解,通过最优的影片安排和促销活动来最大限度的增加院线收益。
2.2 需求分析的过程
影院为了方便管理,需开发一个管理系统.该系统分为两个部分,首先方便顾客查看所有影片信息,然后确定购买其所需要的的电影票,由影院雇员查询顾客是否为会员并提供会员办理。其次方便影院经理查询雇员信息与影片、影厅信息,以便于合理排片.
2.3 数据字典与流程图
数据流程分析是把数据在组织内部的流动情况抽象地独立出来, 舍去了具体的组织机构等,以发现和解决数据流中的问题.
顾户查询影片信息
顾客确认购票
会员信息
核实信息
影片信息
顾客购票流程图
经理管理影院
查询信息
电影信息
影厅信息
经理管理流程图
① 调查用户需求
① 影院职员办公需求
l 功能:可以查到顾客的会员信息,影片、影厅的信息.
② 客购票需求
l 购票
l 办理会员卡
③ 经理管理需求
l 查询功能:
u 影片信息
u 影厅信息
l 管理功能
④影片信息需求
l 查询功能:
u 导演
u 主演
u 场次
u 上映时间
u 影片格式
2。4系统框架
在调查完了用户需求之后,就要开始分析用户需求.在此,我们采用自顶向下的结构化分析方法(SA方法)。首先,定义全局概念结构的框架,如图所示。
影院管理系统
影院职员系统
会员系统
顾客系统
电影票购买系统
经理管理系统
经理管理系统需要进一步细化。
经理管理系统
影片信息查询系统
影厅信息查询系统
将所有子系统全部细化。将所有用户需求分析完毕之后,就要开始构造数据字典了.。数据结构定义如表2.1所示。
表2.1 数据结构定义
数据结构名
含义说明
组成
影院职员
定义了影院职员的有关信息
职员编号、职员姓名、职员性别、联系电话
顾客
定义了顾客有关信息
顾客编号、姓名、性别
影片信息
定义了影片
的有关信息
电影编号、电影名、导演、主演、上映时间、影片格式
会员
定义了会员相关有关信息
会员编号、会员姓名、会员联系电话、
会员级别
影厅信息
定义了影厅有关信息
影厅号、座位数、影厅规格
影院经理
定义了经理有关信息
经理编号、经理姓名、经理联系电话、
经理性别
电影票信息
定义了电影票有关信息
电影票编号、场次、时间、座位号
第三章 概念结构设
3。1概念结构设计的方法与步骤
3。1。1 概念结构设计的方法
概念设计阶段我采用自底向上的方法,即自顶向下的进行需求分析,然后再自底向上的进行概念结构设计。对已经细化到无法再分的阶段逐步集成在一起,最终合成一个全局概念模式。
3.1。3 概念结构设计的步骤
第一步是进行局部视图的设计:由于高层的数据流图只能反映系统的概貌,而中层流图能较好的反映系统中各局部应用的子系统组成。因此我们先逐一的设计分E—R图。
第二步是进行视图的集成:各子系统的E-R图设计好之后,下一步就是要将所有的分E—R图合成一个系统的总E—R图,一般有两个方式,多个分E—R图一次集成,另一种是一次集成两个分E—R图。我想采用一次集成两个分E-R图的方式。
3。2 数据抽象与局部视图设计
职员编号
职员姓名
职员性别
职员联系电话
影院职员
电影编号
电影名
导演
主演
上映时间
电影规格
电影
会员姓名
会员编号
会员级别
会员联系电话
会员
经理编号
经理联系电话
经理名
经理性别
影院经理
电影票编号
时间
场次
电影票
座位号
影厅号
座位数
影厅规格
影厅
顾客编号
姓名
性别
顾客
3。3视图的集成
购买数量
影片
影院经理
电影票
影厅
会员卡
影院职员
顾客
办理
对应
管理
服务
购买
1
1
1 N 1 N
N
1
N
1
M
经过逐步细化再进行每两个一集成初步形成一个E-R图,最后得到图3。4总体概念结构E—R图.
第四章 逻辑结构设计
4.1 E-R图向关系模型的转换
影院职员(职员编号,职员姓名,职员性别,联系电话)
顾客(顾客编号,职员编号,姓名,性别)
会员卡(会员编号,会员姓名,会员联系电话,会员级别,顾客编号)
电影票(顾客编号,影厅号,电影票编号,场次,时间,座位号,购买数量)
影院经理(经理编号,经理姓名,经理联系电话,经理性别)
管理(影厅号,电影编号,经理编号)
影厅(影厅号,座位数,影厅规格)
影片信息(电影编号,电影名,导演,主演,上映时间,影片格式)
4.2 数据模型的优化
将转化的关系模式进行优化,最终达到第三范式.
1、确定数据依赖
影院职员(职员编号,职员姓名,职员性别,联系电话)
职员编号→职员姓名,职员编号→职员性别,职员编号→联系电话
顾客(顾客编号,职员编号,姓名,性别)
(顾客编号,职员编号)→姓名,(顾客编号,职员编号)→性别
会员卡(会员编号,会员姓名,会员联系电话,会员级别,顾客编号)
会员编号→会员姓名,会员编号→会员联系电话,会员编号→会员级别
电影票(顾客编号,影厅号,电影票编号,场次,时间,座位号,购买数量)
(顾客编号,影厅号,电影票编号)→场次,(顾客编号,影厅号,电影票编号)→时间,(顾客编号,影厅号,电影票编号)→座位号,(顾客编号,电影票编号)→购买数量
影院经理(经理编号,经理姓名,经理联系电话,经理性别)
经理编号→经理姓名,经理编号→经理联系电话,经理编号→经理性别
影厅(影厅号,座位数,影厅规格)
影厅→座位数,影厅→影厅规格
影片信息(电影编号,电影名,导演,主演,上映时间,影片格式)
电影编号→电影名,电影编号→导演,电影编号→主演,电影编号→上映时间,
电影编号→影片格式
2、对各关系模式间数据依赖进行极小化处理,消除冗余
职员编号→职员姓名,职员编号→职员性别,职员编号→联系电话,(顾客编号,职员编号)→姓名,(顾客编号,职员编号)→性别,会员编号→会员姓名,会员编号→会员联系电话,会员编号→会员级别,顾客编号,影厅号,电影票编号)→场次,(顾客编号,影厅号,电影票编号)→时间,顾客编号,影厅号,电影票编号)→座位号,(顾客编号,电影票编号)→购买数量,经理编号→经理姓名,经理编号→经理联系电话,经理编号→经理性别,
影厅→座位数,影厅→影厅规格,电影编号→影片格式,电影编号→电影名,电影编号→导演,电影编号→主演,电影编号→上映时间,
3、看这些模式是否符合要求,确定是否要对某些模式进行合并或者分解,最终分解成第三范式:
(订单号,电话号,身份证号)(订单号,旅客姓名)(旅客姓名,取票时间,性别,工作单位,机票类型)(旅客姓名,航班号)(旅客姓名,座位号)(航班号,座位号,机票类型)(航班号,起飞地,目的地,起飞时间)
4。2 基本表结构
职员信息表:staff
字段名
数据类型
长度
是否为空
主/外键
描述
staff number
char
10
否
主键
职员编号
staff name
varchar
20
否
职员姓名
Staff sex
char
2
否
职员性别
Staff phone number
varchar
20
否
联系电话
顾客信息表:customer
字段名
数据类型
长度
是否为空
主/外键
描述
customer number
char
10
否
主键
顾客编号
staff number
char
10
否
外键
职员编号
Customer name
varchar r
20
否
姓名
Customer sex
char
2
否
性别
会员卡信息表:member
字段名
数据类型
长度
是否为空
主/外键
描述
Membernumber
char
10
否
主键
会员编号
member name
varchar
20
否
会员姓名
Member
phonenumber
varchar
20
是
会员联系电话
member level
varchar
10
否
会员级别
customer number
char
10
否
外键
顾客编号
电影票信息表:ticket
字段名
数据类型
长度
是否为空
主/外键
描述
customer number
char
10
否
主键
外键
顾客编号
locations
char
10
否
影厅号
ticket number
char
10
否
电影票编号
number
varchar
10
否
场次
time
datetime
否
时间
seat number
varchar
10
否
座位号
purchase quantity
int
否
购买数量
经理信息表:manager
字段名
数据类型
长度
是否为空
主/外键
描述
manager number
char
10
否
主键
经理编号
manager's name
varchar
10
否
经理姓名
manager
phone number
varchar
20
否
经理联系电话
manager sex
char
2
否
经理性别
管理表:GL
字段名
数据类型
长度
是否为空
主/外键
描述
locations
char
10
否
主键
外键
影厅号
film number
char
10
否
电影编号
manager number
char
10
否
经理编号
影厅信息表:screen
字段名
数据类型
长度
是否为空
主/外键
描述
locations
char
10
否
主键
影厅号
Seating
Int
否
座位数
Screens
specifications
varchar
10
是
影厅规格
电影信息表:film
字段名
数据类型
长度
是否为空
主/外键
描述
film number
char
10
否
主键
电影编号
name
varchar
10
否
电影名
director
varchar
10
是
导演
star
varchar
10
是
主演
Showtime
datetime
是
上映时间
video format
varchar
10
是
影片格式
第五章 数据库的实现
5。1数据库的建立
建数据库,SQL语句:
Createdatabase YYGL
ONPRIMARY
(NAME=YYGL,
FILENAME=’D:\袁博文\YYGL。mdf',
SIZE= 4096KB ,
MAXSIZE=UNLIMITED,
FILEGROWTH= 1024KB
)
LOGON
(NAME= YYGL_log,
FILENAME='D:\袁博文\YYGL_log。ldf’,
SIZE= 1024KB ,
MAXSIZE= 2048GB ,
FILEGROWTH= 10%
)
5.2数据库基本结构的建立
1、基本表的建立
(1)职员信息表:STAFF
USE YYGL
GO
CREATETABLE STAFF
(staffnumber char(10)NOTNULL,
staffname varchar(20)NOTNULL,
staffsex char(2)NOTNULL,
staffph varchar(20)NOTNULL,
PRIMARYKEY(staffnumber)
)
GO
(2)顾客信息表:CUSTOMER
USE YYGL
GO
CREATETABLE CUSTOMER
(customernumber char(10)NOTNULL,
Customername varchar(20)NOTNULL,
Customersex char(2)NOTNULL,
Staffnumber char(10)NOTNULL,
PRIMARYKEY(staffnumber,customernumber),
FOREIGNKEY(staffnumber)REFERENCES STAFF(staffnumber)
)
GO
(3)会员卡信息表:MEMBER
USE YYGL
GO
CREATETABLE MEMBER
(membernumber char(10)NOTNULL,
membername varchar(20)NOTNULL,
memberph varchar(20)NULL,
memberlevel varchar(10)NOTNULL,
customernumber char(10)NOTNULL,
staffnumber char(10)NOTNULL,
PRIMARYKEY(membernumber),
FOREIGNKEY(staffnumber,customernumber)REFERENCESCUSTOMER(staffnumber,customernumber)
)
GO
(4)电影票信息表: TICKET
USE YYGL
GO
CREATETABLE TICKET
(staffnumber char(10)NOTNULL,
customernumber char(10)NOTNULL,
locations char(10)NOTNULL,
ticketnumber char(10)NOTNULL,
number varchar(10)NOTNULL,
timedatetimeNOTnull,
seatnumber varchar(10)NOTNULL,
purchasequantity intNOTNULL,
PRIMARYKEY(staffnumber,customernumber,locations,ticketnumber),
FOREIGNKEY(staffnumber,customernumber)REFERENCES CUSTOMER(staffnumber,customernumber),
FOREIGNKEY(locations)REFERENCES SCREEN(locations)
)
GO
(5)经理信息表:MANAGER
USE YYGL
GO
CREATETABLE MANAGER
(managernumber char(10)NOTNULL,
managername varchar(20)NOTNULL,
managersex char(2)NOTNULL,
managerph varchar(20)NOTNULL,
PRIMARYKEY(managernumber)
)
GO
(6)管理表:GL
USE YYGL
GO
CREATETABLE GL
(managernumber char(10)NOTNULL,
filmnumber char(10)NOTNULL,
locations char(10)NOTNULL,
PRIMARYKEY(filmnumber,locations),
FOREIGNKEY(locations)REFERENCES SCREEN(locations),
FOREIGNKEY(managernumber)REFERENCES MANAGER(managernumber),
FOREIGNKEY(filmnumber)REFERENCES FILM(filmnumber)
)
GO
(7)影厅信息表:SCREEN
USE YYGL
GO
CREATETABLE SCREEN
(locations char(10)NOTNULL,
seating intNOTNULL,
screens varchar(10)NULL,
PRIMARYKEY(locations)
)
GO
(8)电影信息表:FILM
USE YYGL
GO
CREATETABLE FILM
(filmnumber char(10)NOTNULL,
namevarchar(10)NOTNULL,
director varchar(10)NULL,
star varchar(10)NULL,
showtime datetimeNULL,
videoformat varchar(10)NULL,
PRIMARYKEY(filmnumber)
)
GO
2、插入数据
USE YYGL
INSERTINTO STAFF
VALUES('006’,’于开晨’,'M’,’18890567325')
GO
USE YYGL
INSERTINTOCUSTOMER
VALUES(’0201’,'赵红’,'F’,'001')
GO
USE YYGL
INSERTINTOFILM
VALUES(’020’,’智取威虎山’,'徐克’,’张涵予’)
GO
USE YYGL
INSERTINTOMANAGER
VALUES(’0101',’胡星’,’M’,’15518908398')
GO
USE YYGL
INSERTINTOMEMBER
VALUES(’1001','赵红’,'15690879657’,’1',’0201’,'001’)
GO
USE YYGL
INSERTINTOSCREEN
VALUES('1','200’,’2’)
GO
3、视图建立
建立管理人员为男性的视图A:
4、建立索引
为会员卡信息表的memberlevel列创建名为A的索引
use YYGL
GO
createindex A
on MEMBER(memberlevel)
GO
5、创建游标
声明一个名为A的游标,用于读取由001号雇员服务的顾客
USE YYGL
GO
DECLARE AA cursor
FORSELECT*
FROM CUSTOMER
where staffnumber=’001'
open AA
fetchfrom AA
GO
6、存储过程的创建
USE YYGL
GO
createprocedure [dbo].[MEMBER](@membername varchar(20))
AS
insertinto MEMBER(membername)
values(@membername)
GO
7、触发器建立
创建一个触发器B,使在对会员卡信息表进行修改插入时都会自动提示:
use YYGL
GO
createTRIGGER B
on MEMBER
for
INSERT,UPDATE
AS
PRINT'对会员表进行插入或修改’
GO
验证:更改“赵红“为"赵宏“:
5。3安全性的实现
1、利用图形化工具
为了提高安全性,建立系统用户,SQL SERVER用户,数据库用户,写出你所建立的三个用户名.
为SQL SERVER用户,数据库用户分配角色,写出分配的角色名。
(1) 系统用户名
SQL SERVER 用户
数据库名
角色创建
2、利用Transact—SQL
设计一个SQL server登录账户,并设置密码,写出相应的SQL语句
代码:sp_addlogin’YYGL',’123456’
为登陆账户,设计创建一个数据库用户,写出相应的SQL语句
代码:sp_grantbaccess’YYGL’,’123456'
为数据库用户创建数据库角色,写出相应的SQL语句
代码:sp_addrolemember’db_owner’,'login’
5。4完整性的实现
1、UNIQUE约束
代码:
alter table MEMBER
add constraint PK_ZKZH
primary key clustered(ZKZH)
2、CHECK约束
代码:
alter table MEMBER
add constraint check_CJ
check(CJ〉=80and CJ〈100)
3.DEFAULT约束
代码:
alter table MEMBER
add constraint default_CJ
default 2 for CJ
4、NOT NULL约束
代码:
ALTER TABLE [dbo]。[MEMBER] WITH CHECK ADD CONSTRAINT [check_CJ] CHECK ((CJ IS NOT NULL))
GO
ALTER TABLE [dbo].[MEMBER] CHECK CONSTRAINT [check_CJ]
GO
5.5恢复技术的实现
完成所有数据的设计工作后,备份数据库,写出备份文件存放位置和文件名。
如:D:\YBW\Microsoft SQL Server\MSSQL。1\MSSQL\Backup\影院。bak
第六章运行与结果
6。1简单查询和连接查询
1、简单查询
(1)查询所有影片的信息:
(2) 查询职员信息
2、连接查询
(1) 查询所有顾客的会员卡信息:
(2) 查询职员给顾客服务的对应情况:
6.2嵌套查询
(1)查询顾客赵红的电话:
(2)查询职员号为001服务过的顾客
6.3统计查询
(1)男女职员的人数:
(2)每个职员接待顾客人数:
展开阅读全文