期末简单课设"/>
数据库sqlserver期末简单课设
《电影票销售系统》项目实践报告
- 案例背景
对于传统电影票售票而言,通过前台购买等待,其对客户广泛的宣传和服务不便利,电影票销售系统的开发让人们可以体验到进入网络时代所带来的便利,让客户只需足不出户就可以在网站上找到自己在合适日期喜爱的电影并购票,相当于是把售票员请到家中来服务一样,无需东奔西跑。这种交互式的商业网站,既方便服务于客户,也节省了售票的人力资源,还有效的改善电影宣传的有限性和市场结构竞争,从而提高电影和影视公司的知名度。
- 案例需求
(1)系统性质:MIS软件
(2)系统使用者:管理人员和用户
(3)根据系统的初步要求,整理出如下的系统功能
由信息管理、选片管理、排片管理、用户管理4个部分组成。
信息管理
录入观众基本信息,包括账号、姓名、联系方式等。- 根据用户账号查询联系方式。
选片管理
- 录入观众观影信息,包括账号、姓名、影片名、影院名等
- 查询某天上映的电影
- 根据影片编号查询某影片的片名,简介。
(4) 提供查询满足某星级的影院信息。
排片管理
(1)录入影片的基本信息,包括影片编号、片名、时长、简介等。
(2)录入影院的基本情况,包括影院编号、地址、星级等。
(3)提供查询满足某影片的上映信息。
用户管理
- 提供查询某观众的观影情况,看过哪些电影。
- 查询观看某电影的观众人数。
- 需要完成的任务
(1)根据需求的说明完成系统功能图(必做),给出系统核心业务的数据流图和数据字典描述(选做,加分项)。
(2)概念结构设计(要求:分析系统的实体,属性和联系,结合局部E-R图合并与优化的规则,完成系统全局E-R图)。
(3)逻辑结构设计(要求:将E-R图转换为关系模式,分析各关系模式的范式等级。若未达到3NF要求,先进行规范化处理,再给出各关系模式的数据表定义,确定表中各属性的类型、长度、是否为主键等信息)。
(4)数据库实施(要求:根据上述关系模式,使用SQL命令创建数据库和数据表,设置相应的约束,并组织数据入库)。
(5)数据库运行
(要求:①SQL命令能完成案例需求中的指定系统功能;②增加新功能,如连接、子查询、视图、更新、删除等,每增加一个+5,最多加20分)。
(6)功能测试(要求:使用有效数据测试SQL命令的正确性,SQL命令运行及操作结果有截图,与第(5)步的功能对应)
1.需求分析
电影票销售系统主要包含选片管理、信息管理、排片管理、用户管理4个功能。
图1.1 电影票销售系统功能模块图
系统核心业务的数据流图如下所示:
图1.2 电影票销售系统数据流图-顶层图
图1.3 电影票销售系统数据流图-0层图
2 概念结构设计
经分析可知,电影票销售系统的实体包括:
影片:影片编号、片名、时长、简介.
影院:影院编号、地址、星级.
用户:账号、姓名、联系方式.
各实体间的联系描述如下:
1个影片在一个多个影院上映,1个影院可以上映多个影片.
每个用户可以选择多个影片,每个影片又可以被多个影院上映.
系统的完整E-R图如下所示:
图2.1 系统E-R图
3 逻辑结构设计
根据E-R图向关系模式转换的原则,作如下设计:
影院(影院编号,影院地址,影院星级)
表3.1 影院表YY
列名 | 数据类型 | 长度 | 是否主键 | 备注 |
Y_ID | char | 10 | Y | 影院编号 |
Y_ADD | varchar | 50 | N | 影院地址 |
Y_STAR | char | 10 | N | 影院星级 |
影片(影片编号,影片名,影片时长,影片简介)
表3.2 影片表YP
列名 | 数据类型 | 长度 | 是否主键 | 备注 |
M_ID | char | 10 | Y | 影片编号 |
M_NAME | varchar | 20 | N | 影片名 |
M_TIME | varchar | 30 | N | 影片时长 |
M_INTRO | varchar | 200 | N | 影片简介 |
用户(用户账号,姓名,联系方式)
表3.3 用户表YH
列名 | 数据类型 | 长度 | 是否主键 | 备注 |
ID | char | 10 | Y | 账号 |
NAME | varchar | 15 | N | 姓名 |
TEL | char | 20 | N | 联系方式 |
上映(影片编号,影院编号,上映时间)
表3.4 上映表SY
列名 | 数据类型 | 长度 | 是否主键 | 备注 |
M_ID | char | 10 | Y | 影片编号 |
Y_ID | char | 10 | Y | 影院编号 |
TIME | char | 20 | N | 上映时间 |
选择(用户账号,影片编号)
表3.5 选择表XZ
列名 | 数据类型 | 长度 | 是否主键 | 备注 |
ID | char | 10 | Y | 账号 |
M_ID | char | 10 | Y | 影片编号 |
TIME | char | 20 | N | 上映时间 |
4 数据库实施
4.1 使用SQL命令创建数据库
CREATE DATABASE movie
4.2 使用SQL命令创建数据表
CREATE TABLE YY( Y_ID char(10) primary key,Y_ADD varchar(50),Y_STAR char(10))CREATE TABLE YP(M_ID char(10) primary key,M_NAME varchar(20),M_TIME varchar(30),M_INTRO varchar(200))CREATE TABLE YH(ID char(10) primary key,NAME varchar(15),TEL char(20))CREATE TABLE SY(M_ID char(10),Y_ID char(10),TIME char(20)constraint Y_ID_M_ID_PK primary key (M_ID,Y_ID))CREATE TABLE XZ(ID char(10),M_ID char(10),constraint ID_M_ID_PK primary key (ID,M_ID))
4.3 组织数据入库
1、增加影院基本信息
INSERT INTO YY(Y_ID, Y_ADD, Y_STAR)VALUES('001','万达影院','4')INSERT INTO YY(Y_ID, Y_ADD, Y_STAR)VALUES('002','新港国际影城','3')INSERT INTO YY(Y_ID, Y_ADD, Y_STAR)VALUES('003','华夏世纪影城','3')
2、增加影片基本信息
INSERT INTO YP(M_ID, M_NAME,M_TIME,M_INTRO)VALUES('01','怦然心动','150','讲述了青春期中男孩女孩之间的有趣战争')INSERT INTO YP(M_ID, M_NAME,M_TIME,M_INTRO)VALUES('02','遇见你之前','90','讲述了懵懂的小镇女孩小露与下肢瘫痪的老板威尔间缠绵悱恻的爱情挽歌')INSERT INTO YP(M_ID, M_NAME,M_TIME,M_INTRO)VALUES('03','当幸福来敲门','120','讲述了一位业务员成为知名的金融投资家的励志故事')INSERT INTO YP(M_ID, M_NAME,M_TIME,M_INTRO)VALUES('04','这个杀手不太冷','110','讲述了一名职业杀手与小女孩相识相爱,并为她复仇的故事')INSERT INTO YP(M_ID, M_NAME,M_TIME,M_INTRO)VALUES('05','美丽人生','120','讲述了在纳粹时期,爸爸保护儿子的心灵把生活当做游乐场,把痛苦也过成诗一样的美好故事。')
3、增加用户基本信息。
INSERT INTO YH(ID,NAME,TEL)VALUES('0001','张三','1234567')INSERT INTO YH(ID,NAME,TEL)VALUES('0002','李四','2345678')INSERT INTO YH(ID,NAME,TEL)VALUES('0003','王五','3456789')
4.增加上映基本信息。
INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('01','001','12.25')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('01','002','12.26')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('02','001','12.27')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('02','003','12.29')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('03','003','12.27')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('04','001','12.25')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('04','002','12.27')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('04','003','12.29')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('05','001','1.1')INSERT INTO SY(M_ID, Y_ID, TIME)VALUES('05','003','1.3')
5.增加选择基本信息
INSERT INTO XZ(ID, M_ID)VALUES('0001','01')INSERT INTO XZ(ID, M_ID)VALUES('0001','02')INSERT INTO XZ(ID, M_ID)VALUES('0001','04')INSERT INTO XZ(ID, M_ID)VALUES('0002','02')INSERT INTO XZ(ID, M_ID)VALUES('0002','03')INSERT INTO XZ(ID, M_ID)VALUES('0003','05')
5 数据库运行
5.1 信息管理
查询0001用户的联系方式
select ID ,TELfrom YHwhere ID=0001
5.2 选片管理
查询12.27上映的电影
select M_ID ,TIMEfrom SYwhere TIME=12.27
查询编号为02的影片的片名,简介
select M_ID,M_NAME,M_INTROfrom YPwhere M_ID=02
查询星级为3的影院
select Y_ADD, Y_STARfrom YYwhere Y_STAR =3
5.3 排片管理
查询怦然心动影片的上映信息
select M_NAME,Y_ID,TIMEfrom SY,YPwhere SY.M_ID=YP.M_IDand M_NAME='怦然心动'
5.4 用户管理
查询0002观众的观影情况,看过哪些电影。
select XZ.ID,YP.M_NAMEfrom XZ,YPwhere XZ.M_ID=YP.M_ID,and ID=0002
查询观看编号02电影的观众人数
select count(ID) as 观影人数from XZwhere M_ID=02
6 功能测试
6.1 建立测试数据
表6.1 影院表YY
Y_ID | Y_ADD | Y_STAR |
001 | 万达影院 | 4 |
002 | 新港国际影城 | 3 |
003 | 华夏世纪影城 | 3 |
表6.2 影片表YP
M_ID | M_NAME | M_TIME | M_INTRO |
01 | 怦然心动 | 150 | 讲述了青春期中男孩女孩之间的有趣战争 |
02 | 遇见你之前 | 90 | 讲述了懵懂的小镇女孩小露与下肢瘫痪的老板威尔间缠绵悱恻的爱情挽歌 |
03 | 当幸福来敲门 | 120 | 讲述了一位业务员成为知名的金融投资家的励志故事 |
04 | 这个杀手不太冷 | 110 | 讲述了一名职业杀手与小女孩相识相爱,并为她复仇的故事 |
05 | 美丽人生 | 120 | 讲述了在纳粹时期,爸爸保护儿子的心灵把生活当作游乐场,把痛苦也过成诗一样的美好故事。 |
表6.3 用户表YH
ID | NAME | TEL |
0001 | 张三 | 1234567 |
0002 | 李四 | 2345678 |
0003 | 王五 | 3456789 |
表6.4 上映表SY
M_ID | Y_ID | TIME |
01 | 001 | 12.25 |
01 | 002 | 12.26 |
02 | 001 | 12.27 |
02 | 003 | 12.29 |
03 | 003 | 12.27 |
04 | 001 | 12.25 |
04 | 002 | 12.27 |
04 | 003 | 12.29 |
05 | 001 | 1.1 |
05 | 003 | 1.3 |
表6.5选择表 XZ
ID | M_ID |
0001 | 01 |
0001 | 02 |
0001 | 04 |
0002 | 02 |
0002 | 03 |
0003 | 05 |
6.2 程序运行
- 向数据表YH中插入数据
图6.1 创建数据表YH
2、查询0001用户的联系方式
图6.2 查询0001用户的联系方式
3、向数据表SY插入数据
图6.3 创建数据表SY
4、查询12.27上映的电影
图6.4 查询12.27上映的电影
5、向数据表YP插入数据
图6.5 创建数据表YP
6、查询编号为02的影片的片名,简介
图6.6 查询编号为02的影片的片名,简介
7、向数据表YY插入数据
图6.7 创建数据表YY
8、查询星级为3的影院
图6.8 查询星级为3的影院
9、查询怦然心动影片的上映信息
图6.9 查询怦然心动影片的上映信息
10、向数据表XZ插入数据
图6.10 创建数据表XZ
11、查询0002观众的观影情况,看过哪些电影。
图6.11 查询0002观众的观影情况,看过哪些电影。
12、查询观看编号02电影的观众人数
图6.12 查询观看编号02电影的观众人数
更多推荐
数据库sqlserver期末简单课设
发布评论