數(shù)據(jù)庫課程設(shè)計宿舍管理系統(tǒng)

數(shù)據(jù)庫設(shè)計說明書題 目:宿舍管理系統(tǒng)二 級 學(xué) 院:汽車與電子工程學(xué)院年級、 專業(yè):2010級計算機科學(xué)與技術(shù)學(xué) 生 姓 名:學(xué) 號:指 導(dǎo) 教 師:完 成 時 間:2011年12月20日目錄1 系統(tǒng)需求分析 31.1 系統(tǒng)功能 31.2 系統(tǒng)功能 42 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 52.1 數(shù)據(jù)庫的整體實體關(guān)系圖 52.2 數(shù)據(jù)庫的的實體E-R圖 63 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計 94 數(shù)據(jù)庫及的表實現(xiàn)(代碼) 101 系統(tǒng)需求分析系統(tǒng)采用MICROSOFT公司的 VISUAL BASIC語言編寫的學(xué)生公寓管理系統(tǒng),本系統(tǒng)在研制開發(fā)過程中,嚴(yán)格遵循軟件工程方法,完全采用結(jié)構(gòu)化程序設(shè)計方法本系統(tǒng)的主要功能可以方便的對學(xué)生宿舍進行管理,系統(tǒng)采用Microsoft SQL Server 2005數(shù)據(jù)庫使數(shù)據(jù)具有較強的完整性、較好的數(shù)據(jù)安全性等特點以及提供了標(biāo)準(zhǔn)的幫助,使用戶方便的獲得所需的幫助界面友好、操作簡單、功能齊全、具有較好的人機接口界面是本系統(tǒng)的最大優(yōu)點1.1 系統(tǒng)功能宿舍管理系統(tǒng)的后臺網(wǎng)站系統(tǒng)的功能結(jié)構(gòu),如下圖所示學(xué)生宿舍管理系統(tǒng)系統(tǒng)登錄模塊系統(tǒng)控制模塊系統(tǒng)控制模塊舍區(qū)管理模塊房間管理模塊系統(tǒng)管理模塊打印數(shù)據(jù)模塊門衛(wèi)登記模塊水費管理模塊電費管理模塊數(shù)據(jù)備份模塊1.2 系統(tǒng)功能宿舍管理系統(tǒng)的前臺網(wǎng)站系統(tǒng)的功能結(jié)構(gòu),如下圖所示。
學(xué)生宿舍管理系統(tǒng)系統(tǒng)登錄模塊系統(tǒng)控制模塊系統(tǒng)登錄模塊用戶登錄界面來訪查看界面宿舍留言界面宿舍編號欄登錄信息界面來訪時間欄信息查詢界面離開時間欄2 數(shù)據(jù)庫概念結(jié)構(gòu)設(shè)計 2.1 數(shù)據(jù)庫的整體實體關(guān)系圖 本網(wǎng)站的實體有:用戶,樓管 ,舍區(qū),電費,房間,宿舍成員,水費,數(shù)據(jù)庫的整體實體關(guān)系如下圖所示 用戶水費上繳屬于屬于舍區(qū)電費房間宿舍成員從屬樓管 上繳管理 2.2 數(shù)據(jù)庫的的實體E-R圖舍區(qū)電話號碼區(qū)名稱舍區(qū)編號房間數(shù)床位數(shù)現(xiàn)住人數(shù)電費樓房名稱房間號舍區(qū)編號年份月份用電量超支量電話號碼水費樓房名稱房間號舍區(qū)編號年份月份用水量超支量電話號碼用戶密碼權(quán)限用戶名機密問題答案創(chuàng)建日期宿舍成員樓房名稱房間號舍區(qū)編號床位號學(xué)生姓名院系名稱班級名稱家庭地址電話號碼 房間樓房名稱房間號舍區(qū)編號舍長床位數(shù)現(xiàn)住人數(shù)電話號碼來訪者來訪者姓名來訪者證件名稱來訪者序號來訪者證件號碼受訪者姓名受訪者舍區(qū)號受訪者房間號關(guān)系來訪時間離開時間3 數(shù)據(jù)庫邏輯結(jié)構(gòu)設(shè)計社區(qū)表列名?數(shù)據(jù)類型?長度?說明?索引舍區(qū)編號?Int?4?為主鍵?主索引區(qū)名稱?char?4?小于等于4的漢字?電話號碼?char?4?只能是數(shù)字與’-‘包括區(qū)號與號碼房間數(shù)?int8??床位數(shù)?int?8??現(xiàn)住人數(shù)?Int?8??電費表:列名?數(shù)據(jù)類型?長度?說明?索引舍區(qū)編號?Int?4?為主鍵?主索引樓房名稱?Char?4為主鍵(只能是英文字母)?房間號?Int?4?為主鍵年份?Chat4??為主鍵(只能是數(shù)字)?月份?char4??為主鍵(只能是數(shù)字)?用電量?Int?8??超支量?Int?8??電話號碼?Char4?宿舍電話號碼?水費表:列名?數(shù)據(jù)類型?長度?說明?索引舍區(qū)編號?Int?4?為主鍵?主索引樓房名稱?char?4為主鍵(只能是英文字母)?房間號?Int?4?為主鍵年份?Char4??為主鍵(只能是數(shù)字)?月份?Char4??為主鍵(只能是數(shù)字)?用水量?int?8??超支量?Int?8??電話號碼?Char4?宿舍電話號碼?用戶表:列名?數(shù)據(jù)類型?長度?說明?索引用戶名?Char?4?為主鍵(中文或英文字母)?主索引密碼?char?4?權(quán)限?Int?4?機密問題?char4???答案?Char4???創(chuàng)建日期?Datatime?8?用getdate()來設(shè)置默認(rèn)值?宿舍成員表:列名?數(shù)據(jù)類型?長度?說明?索引舍區(qū)編號?int?4?為主鍵?主索引樓房名稱?Char4為主鍵(只能是英文字母)?房間號?Int?4?為主鍵床位號??Int4??為主鍵?學(xué)生姓名?char10???院系名稱char?20??班級名稱?char?10??家庭地址?char50電話號碼char10?宿舍電話號碼(數(shù)字與-)?房間表:列名?數(shù)據(jù)類型?長度?說明?索引舍區(qū)編號?Int?4?為主鍵?主索引樓房名稱?Char4為主鍵(只能是英文字母)?房間號?Int?4?為主鍵舍長?char10??床位數(shù)?char?20??現(xiàn)住人數(shù)?char?10??電話號碼?char10?宿舍電話號碼(數(shù)字與-)?來訪登記表:列名?數(shù)據(jù)類型?長度?說明?索引來訪者序號?Int?4?為主鍵?主索引來訪者姓名?char15?來訪者證件名稱?char?15?來訪者證件號碼??char20???受訪者姓名?char15???受訪者舍區(qū)號?Int?20??受訪者房間號?Int?10??關(guān)系?char50來訪時間?Datadate4??離開時間?Datadate4備注char16 用戶日志表:列名?數(shù)據(jù)類型?長度?說明?索引用戶名稱?Char20為主鍵主索引錯誤次數(shù)?Int?4??最后登錄時間Datadate10?4 數(shù)據(jù)庫及的表實現(xiàn)(代碼)創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)庫表的sql語句,如下所示。
//創(chuàng)建數(shù)據(jù)庫USE [master]GOCREATE DATABASE [學(xué)生宿舍管理系統(tǒng)] ON PRIMARY ( NAME = N'學(xué)生宿舍管理系統(tǒng)', FILENAME = N'E:\學(xué)習(xí)資料\《數(shù)據(jù)庫原理與應(yīng)用》大作業(yè)\新建文件夾\學(xué)生宿舍管理系統(tǒng).mdf' , SIZE = 3072KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) LOG ON ( NAME = N'學(xué)生宿舍管理系統(tǒng)_log', FILENAME = N'E:\學(xué)習(xí)資料\《數(shù)據(jù)庫原理與應(yīng)用》大作業(yè)\新建文件夾\學(xué)生宿舍管理系統(tǒng)_log.ldf' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%)GOALTER DATABASE [學(xué)生宿舍管理系統(tǒng)] SET COMPATIBILITY_LEVEL = 100GO//舍區(qū)表CREATE TABLE [dbo].[舍區(qū)表]( [舍區(qū)編號] [int] NOT NULL, [區(qū)名稱] [char](10) NULL, [電話號碼] [char](10) NULL, [房間數(shù)] [int] NULL, [床位數(shù)] [int] NULL, [現(xiàn)住人數(shù)] [int] NULL, CONSTRAINT [PK_舍區(qū)表] PRIMARY KEY CLUSTERED ( [舍區(qū)編號] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFF//電費表CREATE TABLE [dbo].[電費表]( [舍區(qū)編號] [int] NOT NULL, [樓房名稱] [char](10) NOT NULL, [房間號] [int] NOT NULL, [年份] [char](10) NOT NULL, [月份] [char](10) NOT NULL, [用電量] [int] NULL, [超支量] [int] NULL, [電話號碼] [char](10) NULL, CONSTRAINT [PK_電費表] PRIMARY KEY CLUSTERED ( [舍區(qū)編號] ASC, [樓房名稱] ASC, [房間號] ASC, [年份] ASC, [月份] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[電費表] WITH CHECK ADD CONSTRAINT [FK_電費表_房間表] FOREIGN KEY([舍區(qū)編號], [樓房名稱], [房間號])REFERENCES [dbo].[房間表] ([舍區(qū)編號], [樓房名稱], [房間號])GOALTER TABLE [dbo].[電費表] CHECK CONSTRAINT [FK_電費表_房間表]//水費表GOCREATE TABLE [dbo].[水費表]( [舍區(qū)編號] [int] NOT NULL, [樓房名稱] [char](10) NOT NULL, [房間號] [int] NOT NULL, [年份] [char](10) NOT NULL, [月份] [char](10) NOT NULL, [用水量] [int] NULL, [超支量] [int] NULL, [電話號碼] [char](10) NULL, CONSTRAINT [PK_水費表] PRIMARY KEY CLUSTERED ( [舍區(qū)編號] ASC, [樓房名稱] ASC, [房間號] ASC, [年份] ASC, [月份] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[水費表] WITH CHECK ADD CONSTRAINT [FK_水費表_房間表] FOREIGN KEY([舍區(qū)編號], [樓房名稱], [房間號])REFERENCES [dbo].[房間表] ([舍區(qū)編號], [樓房名稱], [房間號])GOALTER TABLE [dbo].[水費表] CHECK CONSTRAINT [FK_水費表_房間表]//用戶表CREATE TABLE [dbo].[用戶表]( [用戶名] [char](10) NOT NULL, [密碼] [char](10) NULL, [權(quán)限] [int] NULL, [機密問題] [char](10) NULL, [答案] [char](10) NULL, [創(chuàng)建日期] [datetime] NULL, CONSTRAINT [PK_用戶表] PRIMARY KEY CLUSTERED ( [用戶名] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFF//宿舍成員表CREATE TABLE [dbo].[宿舍成員表]( [舍區(qū)編號] [int] NOT NULL, [樓房名稱] [char](10) NOT NULL, [房間號] [int] NOT NULL, [床位號] [int] NOT NULL, [學(xué)生姓名] [char](10) NULL, [院系名稱] [char](10) NULL, [班級名稱] [char](10) NULL, [家庭地址] [char](50) NULL, [電話號碼] [char](10) NULL, CONSTRAINT [PK_宿舍成員表] PRIMARY KEY CLUSTERED ( [舍區(qū)編號] ASC, [樓房名稱] ASC, [房間號] ASC, [床位號] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[宿舍成員表] WITH CHECK ADD CONSTRAINT [FK_宿舍成員表_房間表] FOREIGN KEY([舍區(qū)編號], [樓房名稱], [房間號])REFERENCES [dbo].[房間表] ([舍區(qū)編號], [樓房名稱], [房間號])GOALTER TABLE [dbo].[宿舍成員表] CHECK CONSTRAINT [FK_宿舍成員表_房間表]//房間表CREATE TABLE [dbo].[房間表]( [舍區(qū)編號] [int] NOT NULL, [樓房名稱] [char](10) NOT NULL, [房間號] [int] NOT NULL, [舍長] [char](10) NULL, [床位數(shù)] [char](10) NULL, [現(xiàn)住人數(shù)] [char](10) NULL, [電話號碼] [char](10) NULL, CONSTRAINT [PK_房間表] PRIMARY KEY CLUSTERED ( [舍區(qū)編號] ASC, [樓房名稱] ASC, [房間號] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[房間表] WITH CHECK ADD CONSTRAINT [FK_房間表_舍區(qū)表] FOREIGN KEY([舍區(qū)編號])REFERENCES [dbo].[舍區(qū)表] ([舍區(qū)編號])GOALTER TABLE [dbo].[房間表] CHECK CONSTRAINT [FK_房間表_舍區(qū)表]//來訪者登記表CREATE TABLE [dbo].[來訪登記表]( [來訪者序號] [int] NOT NULL, [來訪者姓名] [char](10) NOT NULL, [來訪者證件名稱] [char](15) NULL, [來訪者證件號碼] [char](20) NULL, [受訪者姓名] [char](10) NULL, [受訪者舍區(qū)號] [int] NULL, [受訪者房間號] [int] NULL, [受訪者樓房名稱] [char](10) NULL, [關(guān)系] [char](10) NULL, [來訪時間] [datetime] NULL, [離開時間] [datetime] NULL, [備注] [text] NULL, CONSTRAINT [PK_來訪登記表] PRIMARY KEY CLUSTERED ( [來訪者序號] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY] TEXTIMAGE_ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[來訪登記表] WITH CHECK ADD CONSTRAINT [FK_來訪登記表_房間表] FOREIGN KEY([受訪者舍區(qū)號], [受訪者樓房名稱], [受訪者房間號])REFERENCES [dbo].[房間表] ([舍區(qū)編號], [樓房名稱], [房間號])GOALTER TABLE [dbo].[來訪登記表] CHECK CONSTRAINT [FK_來訪登記表_房間表]//用戶日志表CREATE TABLE [dbo].[用戶日志表]( [用戶名稱] [char](10) NOT NULL, [錯誤次數(shù)] [int] NULL, [最后登錄時間] [datetime] NULL, CONSTRAINT [PK_用戶日志表] PRIMARY KEY CLUSTERED ( [用戶名稱] ASC)WITH (PAD_INDEX = OFF, STATISTICS_NORECOMPUTE = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS = ON, ALLOW_PAGE_LOCKS = ON) ON [PRIMARY]) ON [PRIMARY]GOSET ANSI_PADDING OFFGOALTER TABLE [dbo].[用戶日志表] WITH CHECK ADD CONSTRAINT [FK_用戶日志表_用戶表] FOREIGN KEY([用戶名稱])REFERENCES [dbo].[用戶表] ([用戶名])GOALTER TABLE [dbo].[用戶日志表] CHECK CONSTRAINT [FK_用戶日志表_用戶表]。