电影院售票数据库系统设计_第1页
电影院售票数据库系统设计_第2页
电影院售票数据库系统设计_第3页
电影院售票数据库系统设计_第4页
电影院售票数据库系统设计_第5页
已阅读5页,还剩9页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

计算机实验报告课程:ORACLE班级:学号:姓名:仪器编号实验日期实验:四电影院售票数据库系统设计实验目的:进一步熟悉oracle的各种操作。能够在实际的实例中灵活运用学到的有关知识。实验环境:装有oracle10g的计算机且操作系统为Windowsxp。实验内容:(可用附页)见附页实验结果:(可用附页)见附页

实验内容:电影院售票数据库系统设计数据库设计是对于一个给定的应用环境,构建一个最优的数据库模式,并据此建立既能有效、完整、安全存储数据的数据库,又能满足多个用户的信息要求和处理要求的应用系统,本数据库设计就是为了能够在很好的保存商品进销存的所有数据而进行设计。(结合数据库设计和你要完成的系统进行陈述)。数据库设计的过程包含需求分析、概念结构设计、逻辑结构设计、物理结构设计、应用的设计。下面就按照数据库设计的过程进行逐一陈述需求分析系统设计的意义电影院售票系统的数据库设计适用于电影院的售票,订票,退票服务。利用数据库实现规范、方便的管理。从而提升工作的效率,达到增长营利的效果。数据库对象介绍余票表售票表订票表退票表电影票综合表系统相关对象电影院售票人员及管理人员,消费者(购票者)数据库对象分析余票表—>>可以出售给消费者的所有电影票的表单售票表—>>已经在售票处出售给消费者电影票的表单订票表—>>通过电话、网络等途径订购电影票的表单退票表—>>消费者(因某些原因)要求退还金钱的表单电影票综合表—>>包括电影院所有的电影票的表单功能分析电影院的售票人员根据余票表单出售电影票,然后在售票表中记录。通过订票表相应的在余票表中更新记录,减少一张票数。通过退票表相应的在余票表中更新记录,增加一张票数。根据表单实现查看总营利的功能查看已经和未拿走订票的情况查看当日上映电影及当日营利查看已过期的未出售电影表单…………进阶分析每张电影票都有自己唯一的编号ID,同一类型的电影票用片名来区分(同一片名的不同影片在片名后加入文字说明区分。)有一个电影综合表,可以根据某个元素查出其他的各元素。如:根据片名可以查看所有该影片的电影票的每张编号,座位,票价,片映时间,该影片的票数等其他各种信息。概念结构设计各对象属性余票表:编号,片名,片映日期,影片时间,影厅,座位,票价,余票数。售票表:编号,片名,片映日期,影片时间,影厅,座位,票价,实收,找零,售票日期,售票数。订票表:编号,片名,片映日期,影片时间,影厅,座位,票价,手续费,售票日期,取票时间。退票表:编号,片名,片映日期,票价,售票日期,手续费,实退金额。电影票综合表:编号,片名,片映日期,影片时间,影厅,座位,票价,总票数。(编号为每张电影票的区别号码,片名来区别不同的电影,影片时间单位为分钟)画出E-r图局部e-r图座位影厅影片时间片映日期座位影厅影片时间片映日期票价片名票价片名余票数余票表编号余票数余票表编号座位影厅影片时间片映日期座位影厅影片时间片映日期票价片名票价片名售票表实收编号售票表实收编号售票数售票日期找零售票数售票日期找零座位影厅影片时间片映日期座位影厅影片时间片映日期票价片名票价片名取票时间售票日期订票表编号取票时间售票日期订票表编号手续费手续费手续费票价售票日期片映日期手续费票价售票日期片映日期实收金额片名实收金额片名退票表编号退票表编号影厅片名片映日期影厅片名片映日期总票数座位编号总票数座位编号影片时间电影票综合表票价影片时间电影票综合表票价逻辑结构设计表的设计余票表(remain_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate影片时间movie_timenumber影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20余票数remain_countnumber20售票表(sale_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_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影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20手续费movie_poundagenumber20售票日期movie_saledatedate取票时间movie_picktimedate退票表(back_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate票价movie_pricenumber20售票日期movie_saledatedate手续费movie_poundagenumber20实退金额movie_refundnumber20电影票综合表(movie_ticket):列名列名表示数据类型宽度约束编号movie_idnumber20主键片名movie_namevarchar2100片映日期movie_datedate影厅movie_roomvarchar220座位movie_seatvarchar220票价movie_pricenumber20总票数all_countnumber20影片时间movie_timenumber四、物理结构设计创建表空间createtablespacemovie_tbsdatafile'D:\app\other_tablespace\movie_tbs01.dbf'size32m;在oracle中创建用户movie并使用上面的表空间createusermovieidentifiedbymoviedefaulttablespacemovie_tbs;给movie用户授权并使用movie用户完成下列步骤grantcreatesession,dbatomovie;创建各对象表余票表:createtableremain_ticket(movie_idnumber(20)PRIMARYKEY,movie_namevarchar2(100),movie_datedate,movie_timenumber(20),movie_roomvarchar2(20),movie_seatvarchar2(20),movie_pricenumber(20),remain_countnumber(20));售票表:createtablesale_ticket(movie_idnumber(20)PRIMARYKEY,movie_namevarchar2(100),movie_datedate,movie_timenumber(20),movie_roomvarchar2(20),movie_seatvarchar2(20),movie_pricenumber(20),movie_price_getnumber(20),movie_changenumber(20),movie_saledatedate,sale_countnumber(20));订票表:createtablebook_ticket(movie_idnumber(20)PRIMARYKEY,movie_namevarchar2(100),movie_datedate,movie_timenumber(20),movie_roomvarchar2(20),movie_seatvarchar2(20),movie_pricenumber(20),movie_poundagenumber(20),movie_saledatedate,movie_picktimedate);退票表:createtableback_ticket(movie_idnumber(20)PRIMARYKEY,movie_namevarchar2(100),movie_datedate,movie_pricenumber(20),movie_saledatedate,movie_poundagenumber(20),movie_refundnumber(20));电影综合表:createtablemovie_ticket(movie_idnumber(20)PRIMARYKEY,movie_namevarchar2(100),movie_datedate,movie_roomvarchar2(20),movie_seatvarchar2(20),movie_pricenumber(20),all_countnumber(20),movie_timenumber(20));创建视图根据余票表中电影片名、余票数、票价和电影综合表中的总票数创建销售视图createviewsale_conditionasselectr.movie_name,r.movie_price,r.remain_count,m.all_countfromremain_ticketr,movie_ticketm;根据售票表中的片名、票价、售票数创建营利视图createviewget_condition(片名,票价,售票数,收益)asselectmovie_name,movie_price,sale_count,movie_price*sale_countfromsale_ticket;订票表中已经拿走票的视图createviewtake_condition(编号,片名,片映时间,售票时间,取票时间)asselectmovie_id,movie_name,movie_date,movie_saledate,to_number(to_char(movie_picktime,'yyyy-mon-dd,hh24:mi:ss'))frombook_ticketwhereto_number(to_char(movie_picktime,'yyyy-mon-dd,hh24:mi:ss'))<=to_number(to_char(sysdate,'yyyy-mon-dd,hh24:mi:ss'));订票表中未拿走票的视图createviewuntake_conditionasselectmovie_id,movie_name,movie_date,movie_saledate,movie_picktimefrombook_ticketwheremovie_picktime=null;查看当天上映电影的表单(片名、片映时间、影片时间、票价、余票数)createviewtoday_movie(片名,片映时间,影片时间,票价,余票数)asselectmovie_name,to_char(movie_date,'yyyy-mon-dd'),movie_time,movie_price,remain_countfromremain_ticketwhereto_char(movie_date,'yyyy-mon-dd')=to_char(sysdate,'yyyy-mon-dd');查看电影票销售排行(片名、片映时间、票价、总票数-余票数、票价*(总票数-余票数))createviewsale_range(片名,片映时间,票价,售票数,收益)asselectr.movie_name,r.movie_date,r.movie_price,m.all_count-r.remain_count,r.movie_price*(m.all_count-r.remain_count)fromremain_ticketr,movie_ticketm;查看已过期的未出售的电影表单(片名、片映时间、票价、余票数)createviewunsale_condition(片名,片映时间,票价,余票数)asselectmovie_name,to_number(to_char(movie_date,'yyyy-mon-dd,hh24:mi:ss')),movie_price,remain_countfromremain_ticketwhereto_number(to_char(movie_date,'yyyy-mon-dd,hh24:mi:ss'))<=to_number(to_char(sysdate,'yyyy-mon-dd,hh24:mi:ss'));创建触发器订票表+1的同时,余票表-1createtriggerbook_ticket_addafterinsertofmovie_idonbook_ticketforeachrowbegindeletefromremain_ticketwhereremain_ticket.movie_id=book_ticket.movie_id;end;退票表+1的同时,余票表+1,售票表-1createtriggerback_ticket_addafterinsertofmovie_idonback_ticketbforeachrowbeginselect m.movie_id,m.movie_name,m.movie_date,m.movie_time,m.movie _room,m.movie_seat,m.movie_pricefrommovie_ticketwhereb.movie_id=m.movie_idinsertintoremain_ticketvalues(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);deletefromsale_ticketwheresale_ticket.movie_id=b.movie_id;end;电影综合表+1的同时,余票表+1createtriggermovie_ticket_addafterinsertonmovie_ticketmbegininsertintoremain_ticket(movie_id,movie_name,movie_date,movie_time,movie_room,movi e_seat,movie_price,movie_count)values(m.movie_id,m.movie_name,m.movie_date,m.movie_time, m.movie_room,m.movie_seat,m.movie_price,m.movie_count+1);end;创建过程输入一个元素,输出整列的其他信息createorreplaceproceduremovie_id_lookup(p_movie_idinnumber,p_movie_nameoutmovie_ticket.movie_name%type,p_movie_dateoutmovie_ticket.movie_date%type,p_movie_roomoutmovie_ticket.movie_room%type,p_movie_seatoutmovie_ticket.movie_seat%type,p_movie_priceoupricemovie_ticket.movie_price%type,p_all_countoutmovie_ticket.all_count%type,p_movie_timeoutmovie_ticket.all_count%type)asbeginselect movie_name,movie_date,movie_room,movie_seat,movie_price,mo vie_time,all_countfrommovie_ticketwheremovie_id=p_movie_id;exceptionwhenno_data_foundthenp_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';endmovie_id_lookup;variablenamevarchar2(100);variablemovie_datedate;variableroomvarchar2(20);variableseatvarchar2(20);variablenamevarchar2(100);variablepricenumber(20);variablecountnum

温馨提示

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

评论

0/150

提交评论