劉湘龍 曾麗
摘要:隨著電影行業的日益發展,電影院每天會產生大量的數據,數據管理是電影院管理系統中十分重要的部分,數據庫是存儲數據和處理數據的必要工具。電影院管理組織龐大,服務項目多,信息量大,要想提高勞動生產,降低成本,提高服務質量和管理水平,進而促進經濟效益,必須借助計算機來進行現代化的信息管理[1]。該文從電影院系統數據庫的需求分析,概念設計,邏輯設計,物理設計,數據庫實現等方面詳細闡述了電影院系統的建立和實現過程,為電影院中信息的數據化提供技術上的支持,本文使用SQL語言,設計并實現了針對電影院數據管理的數據庫。
關鍵詞:數據庫技術;電影院管理系統;SQLServer 2012
中圖分類號:TP311? ? ? ? 文獻標識碼:A
文章編號:1009-3044(2022)06-0016-03
開放科學(資源服務)標識碼(OSID):
1 概述
近些年來,國家經濟水平飛速發展,人們消費水平日益增高,同時網絡的飛速發展也給人們生活帶來巨大便利,我國電影行業也因此蓬勃發展,全國各地新增電影院數量大大增加,各種類型電影層出不窮,人們去電影院觀影的頻率大大增加,電影院產生的各種信息隨之大量增加。當前,我國影院市場普遍面臨著人力成本高,工作效率低,故障率高,技術人員流動性大等諸多問題[2]。并且數據量的劇增也帶來了一些弊端,如數據龐大,難以存儲,難以有效分析利用。影院作為最應該利用好人流發揮文化社交屬性的場所,卻并沒有將資源有效利用[3]。為了有效利用信息,提高影院的工作效率,滿足數據存儲和信息管理,處理等需求,本文根據電影院相關需求設計了電影院系統數據庫,電影院系統數據庫有利于電影院信息的存儲,管理和利用,有助于電影行業統計分析各種數據,提高影院工作效率,也有助于對電影的營銷和根據大量信息中有效數據來預測未來電影行業的發展趨勢和前景。
2 數據庫設計
2.1 需求分析
需求分析是根據顧客,影院等不同用戶角色的要求,采取調研問卷等方法獲取他們的需求,將非形式化的需求轉化為完整的需求定義。電影院管理系統主要是方便電影院的數據管理和存儲,電影院需要了解售票情況,上映電影受歡迎程度,電影的場次時間安排,查詢對應購票顧客是否為會員并給予相應的折扣,不同崗位員工的工作職責范圍等。顧客則需要查詢自己購買的電影票對應的影廳號和自己所觀看電影的開場時間和位置等操作。
2.2 數據庫概念設計
數據庫的概念設計是根據需求分析階段產生的需求來建立一個抽象的,面向用戶的,面向現實世界的獨立于具體DBMS的數據庫概念層數據模型。本文對于影院系統數據庫使用實體-聯系模型(E-R模型)來進行概念設計,概念設計中,采用自下而上的ER設計。首先進行數據抽象和局部E-R圖的設計,再將局部E-R圖集成為全局E-R圖,在進行集成時需要消除各分E-R圖的合成時產生的屬性沖突,命名沖突,結構沖突。最終集成的全局E-R圖如圖1所示:
2.3 數據庫邏輯設計
數據庫邏輯結構設計的任務是將在概念設計中設計的全局E-R模型轉換為具體的數據庫管理系統支持的數據模型,需先將概念設計中的E-R模型轉化為關系數據模型,將電影院系統中分析出來的實體,實體屬性和實體間的聯系轉化為關系模式。轉換為關系模式完成后,為了提高數據庫系統的性能,還需對數據模型進行優化,消除數據模型中的依賴、冗余,為數據庫的物理設計以及數據庫高效,正確地運行打下基礎。基于E-R圖1轉化為以下的關系模式:
(1) 顧客(顧客號,姓名,性別,手機號,會員)
(2) 會員(會員類型,折扣)
(3) 影廳(影廳號,容納人數)
(4) 電影類型(類型名,描述)
(5) 影片(影片號,影片名,主演,導演,類型,供片商,票價,時長)其中類型是外鍵
(6) 崗位(職位,工資)
(7) 職工(職工號,姓名,年齡,職位)其中職位為外鍵
(8) 管理表(員工號,影廳號)其中員工號影廳號是外鍵
(9) 觀影表(顧客號,影廳號,影片號,開場時間,座位號)其中顧客號,影廳號,影片號為外鍵
2.4 數據庫物理設計
數據庫物理結構是影響數據庫系統功能和性能的重要因素,數據庫的物理設計是針對已經確定好的數據庫邏輯結構,利用數據庫管理系統設計出高效的,可實現的物理數據庫結構。設計物理結構時,目標是設計一個占用存儲空間少,具有較高的數據訪問效率和較低的維護代價的數據庫存儲模式。電影院系統使用的是SQLServer2012進行設計,下面以顧客表舉一個實際的例子:
其中顧客號為顧客表的主鍵,性別具有非空約束,并在插入時會檢查是否為男或女,若否則會插入失敗,電話號碼也具有非空約束,會員類型是顧客表中的外鍵,引用了會員表中的會員類型,若為空則代表不是會員,買票時無折扣,若非空,可在會員表中查詢會員類型到對應的折扣。
3 數據庫實現
數據庫的實現就是根據對數據庫的邏輯設計和物理設計創建數據庫表格、視圖等。根據對關系模式,邏輯結構,物理設計的分析建立了九個表,分別為:顧客表、會員表、影廳表、影片表、職工表、崗位表、電影類型表、管理表、觀影表。下面選擇部分數據表進行介紹:
(1) 表的創建
在數據庫中創建相關表,給定名稱,數據類型以及約束,得到相應的表,某些表之間具有聯系。展示一個影片表創建的實例:
createtable影片(
影片號nvarchar(10)primarykey,
影片名nvarchar(20)notnull,
主演nchar(8)notnull,
導演nchar(8)notnull,
類型nvarchar(15)references電影類型(類型),
供片商nvarchar(50),
票價floatnotnull,
時長smallintnotnull
)
(2) 關系圖
本數據庫有九個表,完成表格創建完成后的具體關系圖如圖2所示:
(3) 視圖
視圖是數據庫中的一個對象,是數據庫管理系統提供給用戶的以多種角度觀察數據庫中數據的一種重要機制,視圖提供了一定程度的邏輯獨立性,可以使用戶從多角度看待同一數據。在顧客購票時,售票人員需要經常查詢影片對應的票價,所在影廳與開場時間的信息,所以創建了“影片播放具體信息”的視圖:
createview影片播放具體信息as
selectdistinct影片.影片號,影片名,票價,影廳號,開場時間
from影片 join 觀影
on影片.影片號 = 觀影.影片號
(4) 觸發器
觸發器是一段由對數據的更改操作引發的自動執行的代碼,觸發器通常用來保證業務規則和數據完整性。電影院上映電影也需具備良好性價比,票價過高不利于電影票銷售,所以這里創建名為“票價限制”的觸發器用來限定電影票價不得超過60元,并且提示信息。實現代碼如下:
createtrigger票價限制
on影片afterinsert
as
declare @price float
select @price=票價from inserted
if @price > 60
begin
ROLLBACK
print'票價請不要超過60元'
end
注釋:觸發器內容可以根據影院的實際需求進行調整,以便于針對各種不同情況
(5) 存儲過程
存儲過程可以改善數據庫性能,減少網絡流量消耗,一個需要多條SQL代碼完成的操作現在只需要一條執行存儲過程的代碼即可實現。影院工作人員在某些特定場景下,可能會需要查詢不同類型的電影,于是創建了名為“類型查詢”的存儲過程,可以查詢某一類型的電影。實現代碼如下:
createproc類型查詢
@類型nvarchar(15)
as
selectdistinct影片.影片號,影片名,類型,票價
from影片 join 觀影
on影片.影片號 = 觀影.影片號
where類型=@類型
注釋:調用“類型查詢”的存儲過程時,調用語句格式為exec<存儲過程><賦值>.例如若想查詢動作片類型的電影時,調用語句為:exec類型查詢 動作片
4 測試
4.1 輸入測試
成功向影片表中插入了'怒火·重案'的影片信息:
insert影片 values('009','怒火·重案','甄子丹,謝霆鋒','陳木勝','動作片','供片商5',35,128)
4.2 修改和刪除測試
(1) 成功把編號為009的電影類型改為犯罪片:
update 影片set類型='犯罪片'where影片號='009'
(2) 成功將電影名為怒火·重案的影片下架:
deletefrom影片where影片名='怒火·重案'
5 總結
基于這個網絡飛速發展的時代,電影行業的蓬勃發展給電影院帶來了大量的信息。在線票務行業提供海量購票信息的積累,動態把握用戶需求,在電影產品宣傳以及后續商業行為中做出正確決策[4]。為有效配合在線票務服務,需要建立電影院系統數據庫協助數據處理和存儲。數據庫中的數據按照一定的數據模型進行組織,描述和儲存,具有冗余度小,獨立性高和易擴展性的特點,而且數據能為各種信息用戶所共享[5]。數據庫與影院系統相結合能提高影院的工作效率,數據庫設計首先需要對需求進行分析,再根據分析出的需求進行數據庫的概念設計,抽象出影院系統的E-R圖,根據E-R圖再進行邏輯結構設計,將E-R圖中內容轉化為對應的關系模式,關系模式轉化為物理結構,最后對數據庫進行創建表,創建視圖等實現操作,本文使用SQLServer2012對電影院系統數據庫進行設計和實現。影院數據庫管理系統的實現提高了影院數據存儲利用率,加快了查找和存儲數據的速度,對數據的管理更加方便,當數據庫中存有一定量的數據后,還可以對數據進行分析,了解和預測電影行業的未來發展,或是什么類型,什么題材的電影更受人們歡迎,分析得出的數據可以協助導演了解市場需求做出拍什么類型電影的決策,也可以協助電影院對引進的電影進行排片量的安排,幫助影院實現利益最大化。
參考文獻:
[1] 肖娜,史爭軍,岳東輝.基于數據庫的影院管理系統設計[J].電腦編程技巧與維護,2011(10):48-49,98.
[2] 張海悅.新一代信息技術在影院智能化升級中的應用探討[J].現代電影技術,2021(8):38-41.
[3] 孫藝珈.電影院營銷策略淺析[J].現代營銷(經營版),2021(4):32-33.
[4] 陳浩.“互聯網+”模式下電影在線票務平臺的發展現狀與問題[J].廣西質量監督導報,2021(2):38-39.
[5] 李躍明.數據庫系統的創新發展[J].電腦知識與技術,2011,7(2):269-270,273.
【通聯編輯:梁書】