数据库sqlserver期末简单课设

《电影票销售系统》项目实践报告

  1. 案例背景

对于传统电影票售票而言,通过前台购买等待,其对客户广泛的宣传和服务不便利,电影票销售系统的开发让人们可以体验到进入网络时代所带来的便利,让客户只需足不出户就可以在网站上找到自己在合适日期喜爱的电影并购票,相当于是把售票员请到家中来服务一样,无需东奔西跑。这种交互式的商业网站,既方便服务于客户,也节省了售票的人力资源,还有效的改善电影宣传的有限性和市场结构竞争,从而提高电影和影视公司的知名度。

  1. 案例需求

1)系统性质:MIS软件

(2)系统使用者:管理人员和用户

(3)根据系统的初步要求,整理出如下的系统功能

信息管理选片管理、排片管理、用户管理4个部分组成



信息管理



  1. 录入观众基本信息,包括账号、姓名联系方式等。
  2. 根据用户账号查询联系方式。

选片管理

  1. 录入观众观影信息,包括账号、姓名、影片名、影院名等
  2. 查询某天上映的电影
  3. 根据影片编号查询某影片的片名,简介。



4) 提供查询满足某星级的影院信息。

排片管理

(1)录入影片的基本信息,包括影片编号、片名、时长、简介等。

(2)录入影院的基本情况,包括影院编号、地址、星级等。

(3)提供查询满足某影片的上映信息。

用户管理

  1. 提供查询某观众的观影情况,看过哪些电影。
  2. 查询观看某电影的观众人数。

  1. 需要完成的任务

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图







逻辑结构设计

根据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.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.1 信息管理

查询0001用户的联系方式

select ID ,TEL

from YH

where ID=0001


5.2  选片管理

查询12.27上映的电影

select M_ID ,TIME

from SY

where TIME=12.27

  查询编号为02的影片的片名,简介

 select M_ID,M_NAME,M_INTRO

from YP

where M_ID=02

查询星级为3的影院

select Y_ADD, Y_STAR

from YY

where Y_STAR =3







5.3  排片管理

查询怦然心动影片的上映信息

select M_NAME,Y_ID,TIME

from SY,YP

where SY.M_ID=YP.M_ID

and M_NAME='怦然心动'

5.4  用户管理

查询0002观众的观影情况,看过哪些电影。

select XZ.ID,YP.M_NAME

from XZ,YP

where XZ.M_ID=YP.M_ID,

and ID=0002

查询观看编号02电影的观众人数

select count(ID) as 观影人数

from XZ

where M_ID=02






功能测试







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  程序运行

  1. 向数据表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电影的观众人数

  • 35
    点赞
  • 384
    收藏
    觉得还不错? 一键收藏
  • 3
    评论
评论 3
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值