版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡(jiǎn)介
1、<p><b> 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告</b></p><p><b> 1.功能需求</b></p><p> 本報(bào)告主要介紹學(xué)生成績(jī)管理系統(tǒng)的數(shù)據(jù)庫設(shè)計(jì),從需求分析到數(shù)據(jù)庫的運(yùn)行與維護(hù)都進(jìn)行詳細(xì)的敘述。該系統(tǒng)是利用SQL開發(fā)出來的。通過SQL建立學(xué)生成績(jī)管理系統(tǒng),大大方便和簡(jiǎn)化了數(shù)據(jù)的查詢和處理,管理員可以通過SQL語言對(duì)表內(nèi)數(shù)
2、據(jù)進(jìn)行添加,刪除,修改,查詢等操作,還可以建立多用戶,對(duì)其使用權(quán)限進(jìn)行分配和回收。</p><p> 報(bào)告分為4部分,第一部分是課題簡(jiǎn)介及設(shè)計(jì)的內(nèi)容與目的,需求分析,此階段是數(shù)據(jù)庫設(shè)計(jì)的起點(diǎn)。第二部分是概念設(shè)計(jì),邏輯結(jié)構(gòu)設(shè)計(jì),它是將需求分析的用戶需求抽象為信息結(jié)構(gòu),并將概念模型轉(zhuǎn)換為某個(gè)DBMS所支持的數(shù)據(jù)模型。第三部分是數(shù)據(jù)庫的實(shí)施與運(yùn)行,它包括數(shù)據(jù)的載入及數(shù)據(jù)困的運(yùn)行和數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)建(代碼)。第四部分
3、是課程設(shè)計(jì)的總結(jié)。</p><p> 1.1開發(fā)環(huán)境及開發(fā)語言</p><p> 本次課程設(shè)計(jì)是以學(xué)生信息管理系統(tǒng)為模擬模型,運(yùn)用C++編程語言結(jié)合SQL數(shù)據(jù)庫所開發(fā)系統(tǒng)。開發(fā)平臺(tái)為VC6.0和SQL2008。</p><p><b> 1.2 設(shè)計(jì)目的</b></p><p> 隨著學(xué)生數(shù)量的日益增多,學(xué)校對(duì)學(xué)
4、生的管理要求也越來越高,為了使學(xué)生成績(jī)的管理更加系統(tǒng)化,數(shù)字化,因此我們?cè)O(shè)計(jì)了該學(xué)生信息管理系統(tǒng)。</p><p><b> 1.3 設(shè)計(jì)內(nèi)容</b></p><p> 運(yùn)用基于E-R模型的數(shù)據(jù)庫設(shè)計(jì)方法和關(guān)系規(guī)范化理論做指導(dǎo)完成從系統(tǒng)的分析到設(shè)計(jì)直至系統(tǒng)的最終實(shí)現(xiàn),開發(fā)學(xué)生成績(jī)管理系統(tǒng),完成學(xué)生成績(jī)管理系統(tǒng)的全部功能。首先做好需求分析,并完成數(shù)據(jù)流圖,其次做概念
5、分析,利用實(shí)體聯(lián)系的方法將需求分析的用戶需求抽象為信息結(jié)構(gòu),得到E-R圖,然后就是邏輯結(jié)構(gòu)設(shè)計(jì),將E-R圖轉(zhuǎn)換為計(jì)算機(jī)系統(tǒng)所支持的邏輯模型。最后利用SQL完成具體的實(shí)例。</p><p><b> 1.4.需求分析</b></p><p> 1、 問題的提出:為了高效率的完成學(xué)生成績(jī)的管理,決定開發(fā)學(xué)生成績(jī)管理系統(tǒng)。&
6、lt;/p><p> 2、 需完成的功能:</p><p> (1) 能提供管理員及普通用戶(除刪除和修改)錄入、注銷、顯示當(dāng)前用戶、修改、刪除、查詢、輸出,學(xué)生的檔案信息,這些信息包括學(xué)生的成績(jī)、課程、個(gè)人信息等。</p><p> 觸發(fā)器,索引,存儲(chǔ)過程的建立及使用。</p><p>&l
7、t;b> 2. 概念設(shè)計(jì)</b></p><p><b> (1)(E-R圖)</b></p><p><b> (2)物理結(jié)構(gòu)設(shè)計(jì)</b></p><p><b> Student</b></p><p><b> Cource <
8、/b></p><p><b> User</b></p><p><b> (3)分析關(guān)系模式</b></p><p> 對(duì)于關(guān)系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cuture )假定姓名也具有唯一性,那么Student&l
9、t;/p><p> 就有兩個(gè)碼,這兩個(gè)碼都由單個(gè)屬性組成,彼此不相交。其它屬性不存在對(duì)碼的傳遞依賴與部分依賴,又因?yàn)镾tudent中除學(xué)號(hào)、姓名外沒有其它的因素,所以Student屬于BCNF。對(duì)于關(guān)系模式Cource(|Sno|Cno|Score|)有兩個(gè)碼,這兩個(gè)碼都由單個(gè)屬性組成,彼此不相交,其它屬性不存在對(duì)碼的傳遞依賴與部分依賴,又因?yàn)槌煽?jī)中除學(xué)號(hào)、課程號(hào)外沒有其它的決定因素,所以成績(jī)屬于BCNF。對(duì)于關(guān)系
10、模式User(|UserName|UserType|UserPswd|)中,它只有一個(gè)碼,這里沒有任何屬性對(duì)課程號(hào)部分依賴或傳遞依賴,同時(shí)用戶名是唯一的決定因素,所以課程屬于BCNF。它和學(xué)生信息和成績(jī)沒有直接的聯(lián)系,因此它是一張單獨(dú)的表。</p><p><b> 3.SQL語句</b></p><p><b> 3.1 創(chuàng)建表</b>&l
11、t;/p><p><b> 學(xué)生表</b></p><p> create table Student</p><p><b> ( </b></p><p> Sno nchar(10) primary key,</p><p> Sname nchar(10) n
12、ot null</p><p> Sex nchar(10) not null</p><p> Age numeric(10)</p><p> Address nchar(10)</p><p> Class nchar(10) not null</p><p> Grade nchar(10)
13、not null</p><p> Tel nchar(10) not null</p><p> Politicnchar(10)not null</p><p> Cuturenchar(10) not null</p><p><b> )</b></p><p><
14、;b> 成績(jī)表</b></p><p> create table Exam</p><p><b> ( </b></p><p> Sno nchar(10) primary key //主鍵約束</p><p> Cno nchar(10) Not null</p>&
15、lt;p> Score nchar(10)</p><p> foreign key (Cno) references Course //外鍵約束</p><p> check(Score>=0) //完整性約束</p><p><b> )</b></p><p><b> 用戶表&
16、lt;/b></p><p> create table Teacher</p><p><b> ( </b></p><p> Username nchar(10) not null</p><p> UserPswd nchar(10) not null</p><p>
17、; UserType nchar(10) not null</p><p><b> )</b></p><p><b> 3.2數(shù)據(jù)初始化</b></p><p> 將學(xué)生類別加入表Student中</p><p> insert into Student</p>&l
18、t;p> values ('000’,’張明’,’M’,’’,’哈爾濱’,’軟件一班’,’大一’,’15880000’,</p><p> ’無’,’群眾’) </p><p> insert into Student</p><p> values('001’,’李三’,’M’,’’,’長(zhǎng)春’,’軟件二班’,’大三’ ’1523300
19、0’.’無’,</p><p><b> ’群眾’) </b></p><p> insert into Student</p><p> values('002’,’王強(qiáng)’,’M’,’’,’哈爾濱’,’軟件二班’,’大二’ ’15850040’.’無’,</p><p><b> ’群眾’)
20、</b></p><p> insert into Student</p><p> values('003’,’張雪’,’F’,’’,’哈爾濱’,’軟件一班’,’大一’ ’156809802’.’無’,</p><p><b> ’群眾’) </b></p><p> insert into
21、 Student</p><p> values('004’,’李力’,’M’,’’,’大連’,’軟件一班’,’大三’ ’15980000’.’無’,</p><p><b> ’群眾’) </b></p><p> insert into Student</p><p> values('005
22、’,’張小’,’M’,’’,’哈爾濱’,’軟件三班’,’大一’ ’15884444’.’無’,</p><p><b> ’群眾’) </b></p><p> 將考試類別加入Cource表中 </p><p> insert into Cource </p><p> values ('000'
23、;,'A-123','85' )</p><p> insert into Cource </p><p> values('001','B-123','77' )</p><p> insert into Cource </p><p> valu
24、es('002','C-123','91' )</p><p> insert into Cource </p><p> values('003','A-123','80' )</p><p> insert into Cource</p><
25、p> values('004','B-123','75' )</p><p> insert into Cource </p><p> values('005','A-123','89' )</p><p> 將課程加入U(xiǎn)ser表中</p>
26、<p> insert into User </p><p> values('阿生','921','0')</p><p> insert into User</p><p> values('光光','111','1')</p>&l
27、t;p> insert into User</p><p> values(' 甜甜','111','1')</p><p><b> 索引的使用</b></p><p> use student</p><p> create unique nonclus
28、tered index index_sno on Student</p><p><b> (sno )</b></p><p><b> 觸發(fā)器</b></p><p> create trigger reminder</p><p> on student</p><
29、p> after insert,update</p><p> as raiserror('你在插入或修改學(xué)生的數(shù)據(jù)',16,10)</p><p> drop trigger ‘reminder’</p><p> select * </p><p>
30、 from Student</p><p> where sno=002</p><p><b> 存儲(chǔ)過程</b></p><p> create procedure usp_getStudent</p><p> @name nchar(40)</p><p><b>
31、as </b></p><p> select * from Student where Sname=@name</p><p><b> 執(zhí)行存儲(chǔ)過程</b></p><p> execute usp_getStudent '張明'</p><p> 4、SQL與C++結(jié)合(可視化
32、的界面管理)</p><p> 1、準(zhǔn)備創(chuàng)建好的數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)源</p><p> 在創(chuàng)建數(shù)據(jù)庫的應(yīng)用程序之前,必須有一個(gè)可供應(yīng)用程序使用的數(shù)據(jù)庫。</p><p> 2、(1)建立了數(shù)據(jù)庫之后,必須配備 ODBC 數(shù)據(jù)源,使其指向剛剛建立的數(shù)據(jù)庫。選擇“控制面板”中“管理工具”下的“數(shù)據(jù)源(ODBC)”項(xiàng)。雙擊 ODBC 圖標(biāo),彈出“ODBC 數(shù)據(jù)源管理器
33、”對(duì)話框。在這里用戶可以設(shè)置 ODBC數(shù)據(jù)源的一些信息,其中的“用戶 DSN”選項(xiàng)卡是用戶定義的在本地計(jì)算機(jī)上使用的數(shù)據(jù)源名(DSN),</p><p> (2) 為新的數(shù)據(jù)源選擇數(shù)據(jù)庫驅(qū)動(dòng)程序。由于使用的是 Access 數(shù)據(jù)庫,所以選擇 Driver </p><p> do Microsoft Access(*.mdb)選項(xiàng),并單擊“完成”按鈕。 </p><
34、;p> “ODBC Microsoft Access 安裝”對(duì)話框中,為該數(shù)據(jù)源起一</p><p> 個(gè)簡(jiǎn)短的名稱。本例為 TeacherDB,可以在下一個(gè)編輯框中輸入對(duì)該數(shù)據(jù)庫的說明。</p><p> (4) 指定數(shù)據(jù)庫的位置。單擊“選擇”按鈕,然后指定所創(chuàng)建的 Access 數(shù)據(jù)庫。 </p><p> (5) 單擊“確定”按鈕,剛才創(chuàng)
35、建的用戶數(shù)據(jù)源被添加在“用戶 DSN”選項(xiàng)卡的“用</p><p> 戶數(shù)據(jù)源”列表框中。</p><p> 3. 創(chuàng)建 MFC AppWizard 應(yīng)用程序 </p><p> 用 MFC AppWizard(exe)創(chuàng)建一個(gè)對(duì)話框應(yīng)用程序 TeacherMIS。為了使程序能支持?jǐn)?shù)據(jù)庫對(duì)象,在頭文件 stdafx.h 中加入#include<afxd
36、b.h>。 </p><p> 4. 用 ClassWizard 為數(shù)據(jù)庫中的每一個(gè)表映射一個(gè)記錄集類 </p><p> 首先為表 Users 映射記錄集類 CUserSet。打開項(xiàng)目工作區(qū)的 ClassView 選項(xiàng)卡,</p><p> 選擇項(xiàng)目名稱,右擊,彈出快捷菜單,選擇 New Class 命令彈出的 New Class對(duì)話框,輸入記錄集類
37、名稱 CUserSet,并為其選擇基類 CRecordset,單擊 OK 按鈕,彈出的Database Options 對(duì)話框,為記錄集類選擇 ODBC 數(shù)據(jù)源 TeacherDB,單擊 OK 按鈕,彈出Select Database Tables 對(duì)話框,為記錄集類選擇數(shù)據(jù)庫表 Users,單擊OK 按鈕,即完成記錄集類 CUserSet 的定義。</p><p> 5、根據(jù)類屬性之間的關(guān)系添加如下類:<
38、;/p><p> 6、C++中實(shí)現(xiàn)對(duì)數(shù)據(jù)庫的管理(及增加、刪除、修改、查找、退出)</p><p> ?。?)增加:void CScore::OnBUTTONAdd()</p><p> strSQL.Format("insert into Score VALUES('%s','%s','%s')&q
39、uot;,m_sno, m_cno,m_score);</p><p> DoExecuteSQL(strSQL);</p><p> ?。?)刪除:CScore::OnBUTTONDel()</p><p> strSQL.Format("delete from Score where SNO='%s'and CNO=
40、9;%s' ",m_sno,m_cno); </p><p> DoExecuteSQL(strSQL);</p><p> ?。?)修改:void CScore::OnBUTTONEdit()</p><p> strSQL.Format("Update Score SET CNO='%s',SCORE='%
41、s' where sno='%s'and cno='%s' and score='%s' ", m_cno,m_score,save_sno,save_cno,save_score ); </p><p> DoExecuteSQL(strSQL);</p><p> ?。?)查找:void CSore::OnBUTTON
42、Find()</p><p> strSQL.Format("select * from teachers where %s ='%s'",strField, </p><p> m_FieldValue);</p><p> (5)退出:void CSore::OnCancel()</p><
43、;p> CDialog::OnCancel();</p><p> (6)顯示當(dāng)前用戶:</p><p> m_corr_user=login.GetUserNm();</p><p> ?。?)注銷:void CTeacherMISDlg::OnLogout()</p><p> m_score.Close();</p&
44、gt;<p> CDialog::OnCancel();</p><p> CLoginDlg login;</p><p> login.SetUser();</p><p> login.DoModal();</p><p><b> 7、運(yùn)行截圖</b></p><p&g
45、t;<b> ?。?)用戶登錄:</b></p><p> ?。?)學(xué)生信息管理系統(tǒng):</p><p><b> 3、成績(jī)管理系統(tǒng):</b></p><p> 5、設(shè)計(jì)中遇到的問題及心得</p><p> 在設(shè)計(jì)中遇到的幾個(gè)問題:</p><p> 關(guān)系圖的連接:當(dāng)數(shù)
46、據(jù)庫創(chuàng)建的時(shí)候沒把他們的關(guān)系圖連接起來,導(dǎo)致在投影時(shí)出問題,查詢的時(shí)候也出現(xiàn)了錯(cuò)誤</p><p> 刪除時(shí)錯(cuò)誤:在刪除操作的時(shí)候,由于沒考慮表之間的關(guān)系,和刪除次序。導(dǎo)致了一張表的數(shù)據(jù)元素刪除了,而另外一張的任然存在。</p><p> 對(duì)同一學(xué)生插入同一課程號(hào):剛開始的思想是使用not in進(jìn)行判斷該記錄是否存在,再插入我用的下面的這句語句strSQL.Format("i
47、nsert into SC VALUES('%s','%s','%s') where '%s' not in(select cno from SC where '%s'=SNO)" , m_sno, m_cno,m_score, m_cno,m_sno);結(jié)果未能實(shí)現(xiàn)禁止對(duì)對(duì)統(tǒng)一學(xué)生插入統(tǒng)一課程號(hào)。幾番周折后還是沒能看出問題的所在。一是我便
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告-- 學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)報(bào)告
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告----學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告---學(xué)生成績(jī)管理
- 學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)(學(xué)生成績(jī)管理系統(tǒng))
- 數(shù)據(jù)庫課程設(shè)計(jì)---學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 學(xué)生成績(jī)管理系統(tǒng)-數(shù)據(jù)庫課程設(shè)計(jì)
- 學(xué)生成績(jī)管理系統(tǒng)數(shù)據(jù)庫課程設(shè)計(jì)
- 數(shù)據(jù)庫學(xué)生成績(jī)管理系統(tǒng)課程設(shè)計(jì)
- 數(shù)據(jù)庫課程設(shè)計(jì)——學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)----學(xué)生成績(jī)管理系統(tǒng)
- 數(shù)據(jù)庫課程設(shè)計(jì)--學(xué)生成績(jī)管理系統(tǒng)
評(píng)論
0/150
提交評(píng)論