當前位置:首頁 » 數據倉庫 » 微軟火車資料庫
擴展閱讀
webinf下怎麼引入js 2023-08-31 21:54:13
堡壘機怎麼打開web 2023-08-31 21:54:11

微軟火車資料庫

發布時間: 2023-08-31 09:22:31

1. 那個我也想要一個資料庫設計事例,就是火車售票管理SQL

目錄
概述: 5
1. 需求分析 5
1.1 用戶需求: 5
1.2 業務流程分析: 6
1.3 信息需求分析 6
1.4 功能需求分析: 7
2. (資料庫)概念(模型)設計 8
2.1構思ERD的四條原則及根據這些原則相應得出的實體、聯系及其屬性: 9
2.2、系統具體E-R圖: 9
3. (資料庫)邏輯(模型)設計 10
3.1 一般邏輯模型設計: 10
3.2 具體邏輯模型設計: 11
4. 資料庫物理設計與資料庫保護設計 12
5. 處理功能設計 12
5.1 主控模塊設計: 12
5.2 子模塊設計: 13
6. 資料庫應用系統的實現 14
6.1 資料庫及其表結構的建立: 14
6.2 創建表的相關視圖: 16
6.3 各表關系圖, 16
6.4 數據輸入:利用系統錄入數據,如下圖為各表內容: 17
6.5 模塊實現: 18
7. 資料庫應用系統運行 26
7.1 寫出系統操作使用的簡要說明。 26
7.2 按使用說明運行系統並列印出運行結果。 26
7.3 系統評價: 27

報告內容
概述:
隨著國民經濟快速發展, 人們出行、交通越來越頻繁, 對服務的快捷、便利性要求也越來越高。從而對客運行業的建設與管理提出了更高的要求。為適應和推動客運行業的發展, 各種交通公司和部門開始廣泛採用使用日趨成熟的計算機技術和資料庫技術來實現票務信息的現代化管理,具有手工管理所無法比擬的優點,如:檢索迅速,查找方便,可靠性高,存儲量大,保密性好,壽命長,成本底等。這些優點能夠極大地提高信息管理和業務管理的效率。
本學生火車訂票系統正是通過資料庫存儲信息實現高效率管理。該實驗設計首先進行需求分析,然後在需求文檔的指導下實現系統的功能,如操作員的信息管理功能及普通學生的火車信息查詢、訂票、退票等功能,最終實現的是學生購得一張自己滿意的票券,同時力求通過資料庫系統及計算機在其中的運用達到提高工作效率,節約人力資源的效果。

1. 需求分析
1.1 用戶需求:
(一)、問題描述:
學生火車票定票系統
(1)背景:一年兩次的火車票訂票管理
(2)主要實現以下功能:
1)學生基本信息的管理,尤其是所在地
2)學生購票的基本信息,尤其是價錢和車票目的地
3)購票以後的分發管理
4)退票的管理
5)信息的統計和查詢
6)操作員管理
(二)、目的及現狀:
1)、實驗目的:
資料庫設計就是要使學生採用本課程中學習的資料庫設計方法,運用其基本思路與主要圖表工具完成一個自己所了解的業務的資料庫應用系統信息需求分析與資料庫的概念設計、邏輯設計、物理設計以及處理功能設計,用自己熟悉的資料庫管理系統、程序設計語言及其相關開發工具實現該系統,並運行、評價、改進之;在此基礎上嚴格按本大綱所附報告提綱撰寫課程設計報告。通過本設計進一步弄懂資料庫系統及其相關的基本概念,理解資料庫系統的系統結構、主要特點,掌握資料庫設計的原理、方法及其基本過程,初步具備資料庫應用設計的能力,初步形成運用資料庫應用系統解決管理決策中的實際問題的基本素質。
2)、現狀和系統要求:
在傳統模式下利用人工進行火車訂票業務,存在著較多的缺點,如:效率底,保密性差,時間一長將產生大量的文件和數據,更不便於查找,更新,維護等。諸如這些情況,給各相關部門工作人員帶來了很大困難,嚴重影響了他們的工作效率。運用計算機技術和資料庫技術來實現票務信息的現代化管理,具有手工管理所無法比擬的優點,如:檢索迅速,查找方便,可靠性高,存儲量大,保密性好,壽命長,成本底等。這些優點能夠極大地提高信息管理和業務管理的效率。
在本系統中,系統用戶共有兩種, 並根據用戶許可權的不同而實現不同的功能,如操作員
擁有添加、修改、刪除某火車相關信息及修改自己的個人信息的功能。學生有對車票信息、、哪一車次哪天還剩餘多少張票和自己所訂票券的查詢功能,訂票功能及退票功能。系統利用計算機和資料庫的高效率大大減輕了學校票點工作人員的勞動強度, 提高了各部門的工作效率。
1.2 業務流程分析:
(一)、描述系統的業務流程:
本系統共有兩種用戶, 根據用戶許可權的不同而實現不同的功能。
操作員的許可權最大,他進入系統必須先登錄。操作員可以添加、修改、刪除某車票的相關信息,可以修改自己的個人信息;查詢、刪除學生的訂票情況,確認學生是否已付款取票等。
學生可以按目的地的車次對車票信息進行查詢,可以訂票,訂票時須錄入自己的信息及所選擇的車次,系統將檢查該車次票數是否已訂完或不足,若已訂完或不足則提示錯誤信息並返回到訂票界面,訂票成功後將生成訂票單。學生還可以對自己所訂的票券即訂票單進行查詢,以及查詢哪一車次哪天還剩餘多少張票。用戶付款和取票可在學校票點完成。
(二)、初步業務流程圖:

1.3 信息需求分析
1.3.1 資料收集

1.3.2 事項分析:
在本火車票訂票系統中,各資料的基本數據項列舉如下:
學生資料:學號,姓名,密碼,所在學院,專業,班級,電話,目的城市
車票基本信息:車次號,出發站,開車時間,到達站,到達時間,車票種類,余票數
車次詳細信息:ID號,車次號,途徑站,票價,
訂票單信息:訂單號,訂票人學號,訂單時間,付款取票與否
訂票具體信息:ID號,訂單號,所得車次號,目的城市,訂票數,總票價,取票時間
訂票點信息:票點號,票點主任的員工號,聯系電話,所在校區
操作員資料:員工號,票點號,密碼,姓名,性別,電話
1.4 功能需求分析:
(一)、完善業務流程圖:

(二)、功能層次圖:
本系統共有兩種用戶, 根據用戶許可權的不同而實現不同的功能,如操作員查詢、添加、修改、刪除某火車相關信息及查詢、修改自己的個人信息的功能。學生對車票信息、、哪一車次哪天還剩餘多少張票和訂票功能以及對自己所訂票券的查詢功能、退票功能。

2. (資料庫)概念(模型)設計
2.1構思ERD的四條原則及根據這些原則相應得出的實體、聯系及其屬性:

① 原則1 (確定實體):能獨立存在的事物,例如人、物、事、地、團體、機構、活動、事項等等,在其有多個由基本項描述的特性需要關注時,就應把它作為實體。
在本系統中,實體主要有學生、操作員、車票信息、車票詳細信息表、訂票單,訂票詳細信息表,訂票點。
②原則2 (確定聯系):兩個或多個實體間的關聯與結合,如主管,從屬,組成,佔有,作用,配合,協同等等,當需要予以關注時,應作為聯系。實體間的聯系可分為一對一、一對多、多對多等三類,在確定聯系時還要確定其類型。
在本系統中,學生、車票信息、訂票單和訂票詳細信息表之間存在「訂購」的聯系,一個車票信息可以被多個學生購買,而一個學生只可以購買多個車次所屬的一到兩張車票,它們之間的聯系是一對多的「購買」聯系,同時一次登錄無論訂多少車次只生成一張訂票單。訂票點和操作員之間存在「隸屬」的聯系,它們之間的聯系是一對多的「隸屬」聯系;車票信息和車票詳細信息表之間存在「包含」與被包含的關系;訂票單和訂票詳細信息表之間也存在「包含」與被包含的關系。
③原則3 (確定屬性):實體的屬性是實體的本質特徵。實體應有標識屬性(能把不同個體區分開來的屬性組),並指定其中一個作為主標識。聯系的屬性是聯系的結果或狀態。
從這條原則可得到實體和聯系的屬性如下:
學生(學號,姓名,密碼,所在學院,專業,班級,電話,目的城市)
車票基本信息(車次號,出發站,開車時間,到達站,到達時間,車票種類,余票數)
車次詳細信息(ID號,車次號,途徑站,票價)
訂票單信息(訂單號,訂票人學號,訂單時間,付款取票與否)
訂票具體信息(ID號,訂單號,所得車次號,目的城市,訂票數,總票價,取票時間)
訂票點(票點號,票點主任的員工號,所在校區,電話)
操作員(員工號,票點號,密碼,姓名,性別,電話)

④原則4(一事一地):信息分析中得到的基本項要在且僅在實體聯系圖中的一個地方作為屬性出現。
根據以上的分析,可以畫出本系統的原始ERD的基本結構。如

2.2、系統具體E-R圖:

3. (資料庫)邏輯(模型)設計
3.1 一般邏輯模型設計:
(一)、由ERD導出一般關系模型的四條原則:
原則1(實體轉換為關系模式):ERD中每個獨立的實體轉換為一個關系模式,實體的屬性組成關系的屬性,實體的主標識轉換成關系的主碼。
原則2(從實體及其主從聯系轉換為關系模式):ERD中一個從實體及其主從聯系轉換為一個關系,從實體的屬性及其主實體關系的屬性組成的屬性,其主實體關系的主碼,在主從關系聯系為一對多聯系時還要加上可把同一主實體個體所對應的從實體個體區分開來的,從實體的一組屬性,作為該關系的主碼。對子類實體可作類似一對一聯系的從實體的轉換。
原則3(一對多聯系在關系模式中的表示):ERD中的一個一對多聯系通過在其「多」實體關繫上增加「1」實體關系的主碼(作為外碼)和聯系本身的屬性來表示。
原則4(多對多聯系轉換為關系):ERD中的一個多對多聯系轉換為一個關系,其被聯系實體關系的主碼和該聯系本身的屬性一起組成的屬性,被聯系關系的主碼組成該關系的復合主碼。

(二)、資料庫初步構思的關系框架:
通過ERD轉換為一般關系模型四條原則分析,得到須在資料庫中進行存儲的一般關系模型如下(帶下劃線的為主碼,帶#的為外鍵):
學生(學號,姓名,密碼,所在學院,專業,班級,電話,目的城市)
車票基本信息(車次號,出發站,開車時間,到達站,到達時間,車票種類,余票數)
車次詳細信息(ID號,車次號#,途徑站,票價)
訂票單信息(訂單號,訂票人學號#,訂單時間,付款取票與否)
訂票具體信息(ID號,訂單號#,所得車次號#,目的城市,訂票數,總票價,取票時間)
訂票點(票點號,票點主任的員工號#,所在校區)
操作員(員工號,密碼,姓名,性別,電話)
3.2 具體邏輯模型設計:
(1)、Student表:用來保存學生信息:
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
學號 字元 12 是 非空
姓名 字元 20 非空
密碼 字元 12 非空
學院 字元 40 非空
專業 字元 30 非空
班級 數據 4 0 >0 非空
電話 字元 12 非空
目的城市 字元 30 非空
(2)、Ticket表:用來保存車票信息表
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
車次號 字元 20 是 非空
出發站 字元 30 非空
開車時間 日期 8 非空
到達站 字元 30 非空
到達時間 日期 8 非空
車票種類 字元 20 非空
余票數 數據 8 0 >0 非空
(3)、Citysite表:用來保存車票詳細信息表:
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
ID號 整數,自動編號 8 是 非空
車次號 字元 20 是 非空
途徑城市 字元 30 非空
票價 decimal 非空

(4)、Ticketsite表:用來保存訂票點表:
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
票點號 整數,自動編號 8 0 是 非空
票點主任員工號 整數,自動編號 8 0 是 非空
聯系電話 字元 12 非空
所在校區 字元 40 非空
(5)、Admin表:用來保存操作員表:
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
員工號 整數,自動編號 8 0 是 非空
用戶名 字元 20 非空
密碼 字元 12 非空
姓名 字元 20 非空
性別 字元 4 非空
電話 字元 12 非空
(6)、Book表:用來保存訂單表:
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
訂單號 整數,自動編號 8 0 是 非空
學號 字元 是 非空
訂單時間 字元 非空
付款取票與否 整數 2 0 非空
(7)、Ticket表:用來保存取票單表:
項名 類型 長度 小數位 值域 主鍵 外鍵 空鍵
ID號 整數,自動編號 8 0 是 非空
取票號 字元 8 0 是 非空
車次號 字元 是 非空
目的城市 字元 非空
訂票數 數據 8 0 >0 非空
總票價 Decimal 非空
取票時間 日期 8 非空
4. 資料庫物理設計與資料庫保護設計
根據表的結構關系,本系統採用SQL Server 2000資料庫。SQL Server 2000是微軟公司關系型資料庫產品,它是在由MS SQL Server 7.0建立的堅固基礎之上產生的。客戶的需求極大的推動了該產的革新,SQL Server2000在易用性、可縮放性和可靠性,以及數據倉庫等諸多方面有了很大的增強。這使得SQL Server 2000在很多資料庫產品發展最快的應用領域(如電子商務、移動計算、分支自動化、商業級應用和數據交換中心等)中成為領先者
在資料庫中創建表的同時須創建相關的索引。索引就是加快檢索表中數據的方法。資料庫的索引類似於書籍的索引。在書籍中,索引允許用戶不必翻閱完整個書就能迅速地找到所需要的信息。在資料庫中,索引也允許資料庫程序迅速地找到表中的數據,而不必掃描整個資料庫。本資料庫表較為簡單,且每個表中定義主鍵約束或者唯一性鍵約束,已經間接創建了索引,故無需再創建索引。
5. 處理功能設計
5.1 主控模塊設計:

(1)、登錄系統模塊:
在登錄窗體界面中,你可以輸入代碼和密碼,選擇你的身份(操作員或系統管理員),確認後就可進入主界面窗體。如果你是學生,且還沒注冊,可以在此窗體界面上點擊「注冊」,在注冊界面輸入所要求的項,確定後重新返回登錄界面,用你剛注冊的賬號登錄進入主界面。
在主界面中包含上述模塊圖的幾部分,根據身份,即是用戶或者管理員,對應許可權不同,分為不同的主界面,即用戶主界面和管理員主界面。
(2)、系統設置模塊圖:
用戶:在此模塊用戶可以查詢、修改自身注冊信息以及退出登錄,退出系統後將返回登錄界面。

管理員模塊:在此模塊管理員除了擁有用戶的各項設置外還可以注冊新的管理員,但為了安全起見,此功能只有當登錄人是票點主任時才可執行。

5.2 子模塊設計:
5.2.1、管理員模塊
1、車票信息管理模塊:在此模塊,管理員可以執行車票信息錄入、查詢、刪除和修改功能,不過刪除和修改功能須當該車次沒有被預訂的情況下才可執行。

2、訂票管理模塊:在此模塊,管理員可以查詢所有訂單情況、已付款取票和未付款取票的訂單情況,還可以按學號查詢某學生的訂票情況以及各種統計信息,並在學生來付款取票時執行「付款」操作。另外還可以在訂單已付款或學生取消訂單時刪除訂單。

5.2.2、用戶模塊:
1、訂票管理模塊:在此模塊,用戶可以查詢車票信息和自身訂票情況。查詢車票情況分為按車次、按目的地、按起始站—目的站查詢,當查詢到自身所想要的車票時即可訂票,但注意預定票的目的地須與學生家鄉所在城市相符,否則系統不允許訂票;查詢自身訂票情況包括訂單信息及金額統計,還須注意訂票信息上要求的取票期限,訂票人須在規定期限內去所在校區的票點付款取票,逾期票點工作人員將不予處理。

2、用戶小貼士模塊:在這里,用戶將了解本訂票系統的訂票流程及相關規定及用戶訂票後付款取票地點的信息等。

6. 資料庫應用系統的實現
6.1 資料庫及其表結構的建立:
利用SQLServer企業管理器創建資料庫Tickets,然後創建表:
1、學生表Book
create table Student
(Sno varchar(12) primary key, Sname varchar(20) not null,
Ssex varchar(4) not null, Spw varchar(12) not null, //密碼
Sadm varchar(40) not null, //學院
Sdept varchar(30) not null, Sclass numeric(4) not null,
Stel varchar(12) not null, //電話
Semail varchar(50) not null, Shcity varchar(30) not null //所在地
);
2、車票信息表Ticket
create table Ticket
(Tno varchar(20) primary key, //車次號
Startcity varchar(30) not null, Starttime varchar(20) not null,
Endcity varchar(100) not null, Endtime varchar(20) not null,
Ttype varchar(20) CHECK (Ttype IN('硬座','軟座','硬卧','軟卧')),
Tickets int not null //票數
);
3、車次站次信息表Citysite
create table Citysite
(Cityno numeric(8) identity(1,1), //票點號
Tno varchar(20), City varchar(100),
Tprice decimal not null, //票價
primary key (Cityno,Tno),
foreign key (Tno) references Ticket(Tno) on delete cascade
)
4、訂票單表Book
create table Book
(Bno numeric(8) identity(1,1) primary key, Sno varchar(12),
Maketime datetime not null, judge int,
foreign key (Sno) references Student(Sno),);
5、訂票詳細信息表Bookno
create table Bookno
(ID numeric(8) identity(1,1) primary key,
Bno numeric(8), Tno varchar(20), City varchar(100),
Booktime varchar(20) not null, Ticketnums int not null,
Price decimal not null, //票價
Pickdate datetime not null, foreign key (Tno) references Ticket(Tno),
foreign key (Bno) references Book(Bno));
6、操作員表Operater
create table Operater
(Adname varchar(20) primary key, //登錄用戶名
Adpw varchar(12) not null, //登錄密碼
Opname varchar(20) not null, //員工真實姓名
Opsex varchar(4) not null, Optel varchar(12) not null,
Opemail varchar(50) not null);
7、訂票點表Ticketsite
create table Ticketsite
(Siteno numeric(8) primary key identity, //票點號
Adname varchar(20), // 票點主任登錄名
Sitetel varchar(12) not null, Siteaddr varchar(40),
foreign key (Adname) references Operater(Adname));
//為安全起見,學校各校區訂票點內容的添加要以直接輸入資料庫的方式進行
insert into Ticketsite(Adname,Sitetel,Siteaddr) values('linyp','870432','龍洞校區行政樓205')
insert into Ticketsite(Adname,Sitetel,Siteaddr) values('admin','87084432','大學城校區E區205')
6.2 創建表的相關視圖:
1、創建V_Book視圖,得到對於某種車票的訂票人數和訂票張數
create view V_Book(Tno,stu_no,sumticket)
as
select Tno,count(distinct Sno),sum(Ticketnums) from Bookno,Book
where Bookno.Bno=Book.Bno group by Tno
2、創建W_Book視圖,得到對於所有訂票學生的人數和訂票總張數
create view W_Book(stu_nums,sumtickets)
as select count(distinct Sno),sum(Ticketnums) from Bookno,Book
where Bookno.Bno=Book.Bno
3、創建P_Book視圖,得到對於已付款取票的人數和車票總張數
create view P_Book(cout_no,cout_nums)
as select count(distinct Sno),sum(Ticketnums) from Bookno,Book
where Bookno.Bno=Book.Bno and judge=1
4、創建M_Book視圖, 得到對於某一訂票的總金額
create view M_Book(Allprice)
as select sum(Tprice*Ticketnums) from Book,Bookno,Citysite
where Bookno.Bno=Book.Bno and Bookno.Tno=Citysite.Tno and Bookno.City=Citysite.City
6.3 各表關系圖,

易知表Ticket與表Citysite之間是父表與子表的關系:

表Book與表Bookno之間也是父表與子表的關系:

它們之間都是父表對子表的一對多的關系。
根據表之間的結構關系圖,可以得出各表的完整性約束條件如下圖:
表名 主鍵列名 外鍵
外鍵列名 參照表
Student Sno 無
Ticket Tno 無
Citysite Cityno Tno Ticket
Book Bno Sno Student
Bookno ID Bno,Tno Book,Ticket
Operater Adname 無
Ticketsite Siteno Adname Operater

6.4 數據輸入:利用系統錄入數據,如下圖為各表內容:

6.5 模塊實現:
本次系統設計我前台採用JSP技術,後台採用SQL Server 2000,操作系統採用Windows XP。
JSP(JavaServer Pages)是由Sun Microsystems公司倡導、許多公司參與一起建立的一種動態網頁技術標准,它是在傳統的網頁HTML文件(*.htm,*.html)中插入Java程序段(Scriptlet)和JSP標記(tag),從而形成JSP文件(*.jsp)。JSP具備了Java技術的簡單易用,完全的面向對象,具有平台無關性且安全可靠,主要面向網際網路的所有特點。