电影院售票数据库系统设计

上传人:m**** 文档编号:205947624 上传时间:2023-05-01 格式:DOCX 页数:15 大小:172.31KB
收藏 版权申诉 举报 下载
电影院售票数据库系统设计_第1页
第1页 / 共15页
电影院售票数据库系统设计_第2页
第2页 / 共15页
电影院售票数据库系统设计_第3页
第3页 / 共15页
资源描述:

《电影院售票数据库系统设计》由会员分享,可在线阅读,更多相关《电影院售票数据库系统设计(15页珍藏版)》请在装配图网上搜索。

1、计算机实验报告课程:ORACLE班级:学号:_姓名:_仪器编号实验日期实验:四电影院售票数据库系统设计实验目的:1进一步熟悉oracle的各种操作。2能够在实际的实例中灵活运用学到的有关知识。实验环境:装有oracle 10g的计算机且操作系统为Windows xp。实验内容:(可用附页)见附页实验结果:(可用附页)见附页实验内容:电影院售票数据库系统设计数据库设计是对于一个给定的应用环境,构建一个最优的数 据库模式,并据此建立既能有效、完整、安全存储数据的数据库, 又能满足多个用户的信息要求和处理要求的应用系统,本数据库设计就是为了能够在很好的保存商品进销存的所 有数据而进行设计。(结合数据

2、库设计和你要完成的系统进行陈 述)。数据库设计的过程包含需求分析、概念结构设计、逻辑结构 设计、物理结构设计、应用的设计。下面就按照数据库设计的过 程进行逐一陈述一、需求分析1、系统设计的意义电影院售票系统的数据库设计适用于电影院的售票,订票,退 票服务。利用数据库实现规范、方便的管理。从而提升工作的效率, 达到增长营利的效果。2、数据库对象介绍1)余票表2)售票表3)订票表4)退票表5)电影票综合表3、系统相关对象电影院售票人员及管理人员,消费者(购票者)4、数据库对象分析余票表 可以出售给消费者的所有电影票的表单 售票表 已经在售票处出售给消费者电影票的表单 订票表 通过电话、网络等途径订

3、购电影票的表单 退票表 消费者(因某些原因)要求退还金钱的表单 电影票综合表一 包括电影院所有的电影票的表单5、功能分析1)电影院的售票人员根据余票表单出售电影票,然后在售票表中记 录。2)通过订票表相应的在余票表中更新记录,减少一张票数。3)通过退票表相应的在余票表中更新记录,增加一张票数。4)根据表单实现查看总营利的功能5)查看已经和未拿走订票的情况6)查看当日上映电影及当日营利7)查看已过期的未出售电影表单8)6、进阶分析每张电影票都有自己唯一的编号ID,同一类型的电影票用片名来 区分(同一片名的不同影片在片名后加入文字说明区分。)有一个电 影综合表,可以根据某个元素查出其他的各元素。如

4、:根据片名可以 查看所有该影片的电影票的每张编号,座位,票价,片映时间,该影 片的票数等其他各种信息。二、概念结构设计1、各对象属性余票表:编号,片名,片映日期,影片时间,影厅,座位,票价, 余票数。售票表:编号,片名,片映日期,影片时间,影厅,座位,票价, 实收,找零,售票日期,售票数。订票表:编号,片名,片映日期,影片时间,影厅,座位,票价, 手续费,售票日期,取票时间。退票表:编号,片名,片映日期,票价,售票日期,手续费,实 退金额。电影票综合表:编号,片名,片映日期,影片时间,影厅,座位, 票价,总票数。(编号为每张电影票的区别号码,片名来区别不同的电影,影片时 间单位为分钟)2、 画

5、出E-r图三、逻辑结构设计1、表的设计余票表(remain_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate影片时间movie_timenumber影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20余票数remain_countnumber20售票表(sale_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期m

6、ovie_datedate影片时间movie_timenumber影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20实收movie_price_getnumber20找零movie_changenumber20售票日期movie_saledatedate售票数sale_countnumber20订票表(book_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate影片时间movie_timenumber

7、影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20手续费movie_poundagenumber20售票日期movie_saledatedate取票时间movie_picktimedate退票表(back_ticket):列名列名表示数据类型J D J 宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate票价movie_pricenumber20售票日期movie_saledatedate手续费movie_poundagenumber20

8、实退金额movie_refundnumber20电影票综合表(movie_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20总票数all_countnumber20影片时间movie_timenumber四物理结构设计1、创建表空间create tablespace movie_tbs datafileD:appother_tablespacemovi

9、e_tbs01.dbf size 32m;2、在oracle中创建用户movie并使用上面的表空间create user movieidentified by moviedefault tablespace movie_tbs;3、给movie用户授权并使用movie用户完成下列步骤grant create session,dba to movie;4、创建各对象表余票表:create table remain_ticket(movie_id number(20) PRIMARY KEY, movie_name varchar2(100), movie_date date, movie_tim

10、e number(20), movie_room varchar2(20), movie_seat varchar2(20), movie_price number(20),remain_count number(20);售票表:create table sale_ticket(movie_id number(20) PRIMARY KEY, movie_name varchar2(100), movie_date date, movie_time number(20), movie_room varchar2(20), movie_seat varchar2(20), movie_price

11、 number(20), movie_price_get number(20), movie_change number(20), movie_saledate date, sale_count number(20)、 );订票表:create table book_ticket(movie_id number(20) PRIMARY KEY, movie_name varchar2(100), movie_date date, movie_time number(20), movie_room varchar2(20), movie_seat varchar2(20), movie_pric

12、e number(20), movie_poundage number(20), movie_saledate date, movie_picktime date);退票表:create table back_ticket(movie_id number(20) PRIMARY KEY, movie_name varchar2(100), movie_date date, movie_price number(20), movie_saledate date, movie_poundage number(20), movie_refund number(20);电影综合表:create tab

13、le movie_ticket(movie_id number(20) PRIMARY KEY,movie_name varchar2(100), movie_date date, movie_room varchar2(20), movie_seat varchar2(20), movie_price number(20), all_count number(20), movie_time number(20));5、创建视图1) 根据余票表中电影片名、余票数、票价和电影综合表中的总票数创建销售视图create view sale_conditionasselect r.movie_name

14、,r.movie_price,r.remain_count,m.all_count from remain_ticket r,movie_ticket m;2) 根据售票表中的片名、票价、售票数创建营利视图create view get_condition(片名漂价,售票数,收益)asselect movie_name,movie_price,sale_count,movie_price*sale_count from sale_ticket;3) 订票表中已经拿走票的视图create view take_condition(编号,片名,片映时间,售票时间,取票时间)asselectmovie

15、_id,movie_name,movie_date,movie_saledate,to_number(to_cha r(movie_picktime,yyyy-mon-dd,hh24:mi:ss)from book_ticketwhereto_number(to_char(movie_picktime,yyyy-mon-dd,hh24:mi:ss) = to_number(to_char(sysdate,yyyy-mon-dd,hh24:mi:ss);4) 订票表中未拿走票的视图create view untake_conditionasselect movie_id,movie_name,m

16、ovie_date,movie_saledate,movie_picktime from book_ticketwhere movie_picktime = null;5)查看当天上映电影的表单(片名、片映时间、影片时间、票价、余票数)create view today_movie(片名,片映时间,影片时间,票价,余票数)as selectmovie_name,to_char(movie_date,yyyy-mon-dd),movie_time,movie_ price,remain_countfrom remain_ticketwhere to_char(movie_date,*yyyy-m

17、on-dd)= to_cbar(sysdate,*yyyy-mon-dd);6) 查看电影票销售排行(片名、片映时间、票价、总票数-余票数、票价* (总票数-余票数)create view sale_range(片名,片映时间,票价,售票数,收益)as selectr.movie_name,r.movie_date,r.movie_price,m.all_count - r.remain_count, r.movie_price * (m.all_count - r.remain_count)from remain_ticket r,movie_ticket m;7) 查看已过期的未出售的电影

18、表单(片名、片映时间、票价、余票数)create view unsale_condition(片名,片映时间,票价,余票数)asselectmovie_name,to_number(to_cbar(movie_date,yyyy-mon-dd,bb24:mi: ss),movie_price,remain_countfrom remain_ticketwhere to_number(to_cbar(movie_date,yyyy-mon-dd,bb24:mi:ss*) =to_number(to_cbar(sysdate,yyyy-mon-dd,bb24:mi:ss);6、创建触发器1)订票表

19、+1的同时,余票表-1create trigger book_ticket_addafter insertof movie_idon book_ticketfor each rowbegindelete from remain_ticketwhere remain_ticket.movie_id = book_ticket.movie_id; end;2) 退票表+1的同时,余票表+1,售票表-1create trigger back_ticket_add after insert of movie_id on back_ticket b for each row beginselectm.m

20、ovie_id,m.movie_name,m.movie_date,m.movie_time,m.movie _room,m.movie_seat,m.movie_price from movie_ticketwhere b.movie_id = m.movie_idinsert into remain_ticket values(m.movie_id,m.movie_name,m.movie_date,m.movie_time,m.movi e_room,m.movie_seat,m.movie_price,remain_ticket=remain_ticke t+1);delete fro

21、m sale_ticketwhere sale_ticket.movie_id=b.movie_id; end;3) 电影综合表+1的同时,余票表+1create trigger movie_ticket_addafter inserton movie_ticket mbegininsert into remain_ticket(movie_id,movie_name,movie_date,movie_time,movie_room,movi e_seat,movie_price,movie_count) values(m.movie_id,m.movie_name9m.movie_date,

22、m.movie_time, m.movie_room,m.movie_seat,m.movie_price,m.movie_count+1); end;7、创建过程输入一个元素,输出整列的其他信息create or replace procedure movie_id_lookupp_movie_id in number,p_movie_name out movie_ticket.movie_name%type, p_movie_date out movie_ticket.movie_date%type, p_movie_room out movie_ticket.movie_room%typ

23、e, p_movie_seat out movie_ticket.movie_seat%type, p_movie_price oupricemovie_ticket.movie_price%type, p_all_count out movie_ticket.all_count%type, p_movie_time out movie_ticket.all_count%type)asbeginselect movie_name,movie_date,movie_room,movie_seat9movie_price,mo vie_time,all_count from movie_ticke

24、t where movie_id = p_movie_id;exceptionwhen no_data_found then p_movie_name :=null; p_movie_date :=null; p_movie_room :=null; p_movie_seat :=null; p_movie_price :=null; p_movie_time :=null; p_all_count :=null;end movie_id_lookup;variable name varchar2(100); variable movie_date date; variable room va

25、rchar2(20); variable seat varchar2(20);variable name varchar2(100); variable price number(20); variable count number(20);五、数据库实施本数据库利用ORACLE的表、视图和触发器等实现电影票售票系统的相应功能。数据库性能评价:本数据库只是利用Oracle实现几个基本的功能,实际的数据库还需要更多复杂的功能。由于较简单,数 据库的性能较好,且利于发现错误和进行维护。六、数据库运行和维护数据库每个季度(3个月)进行一次全部维护,在本季度结 束的时候,对表和数据等进行备份,同时把各

26、个表清空来开始存 储下个季度的数据。这样有利于数据库运行的效率。同时保证了 在以后出现纠纷时可以从备份中查找到相应的数据。实验结果:演示数据的输入:insert into movie_ticket values(0001,赤壁,date2010-6-10 10:30:00,第二影厅,5 号 ,30,150,120);insert into movie_ticket values(0002,三国,date2010-6-10 14:30:00,第三影厅,10 号 ,25,100,120);售票:insert into sale_ticket values(0001,赤壁,date2010-6-10 10:30:00,120,第二影厅,5 号 ,30,50,20,date2010-6-8 14:30:30,T);订票:insert into book_ticket values(0002,三国,date2010-6-10 14:30:00,120,第三影厅,10 号 ,25,0,date2010-6-7 12:30:30,date2010-6-7 15:30:00);退票:insert into sale_ticket values(0001,赤壁,date2010-6-1010:30:00,30,date2010-6-814:30:30,2,28);

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


本站为文档C2C交易模式,即用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知装配图网,我们立即给予删除!