版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領
文檔簡介
1、<p><b> 數(shù)據(jù)庫課程設計報告</b></p><p><b> 1.功能需求</b></p><p> 本報告主要介紹學生成績管理系統(tǒng)的數(shù)據(jù)庫設計,從需求分析到數(shù)據(jù)庫的運行與維護都進行詳細的敘述。該系統(tǒng)是利用SQL開發(fā)出來的。通過SQL建立學生成績管理系統(tǒng),大大方便和簡化了數(shù)據(jù)的查詢和處理,管理員可以通過SQL語言對表內數(shù)
2、據(jù)進行添加,刪除,修改,查詢等操作,還可以建立多用戶,對其使用權限進行分配和回收。</p><p> 報告分為4部分,第一部分是課題簡介及設計的內容與目的,需求分析,此階段是數(shù)據(jù)庫設計的起點。第二部分是概念設計,邏輯結構設計,它是將需求分析的用戶需求抽象為信息結構,并將概念模型轉換為某個DBMS所支持的數(shù)據(jù)模型。第三部分是數(shù)據(jù)庫的實施與運行,它包括數(shù)據(jù)的載入及數(shù)據(jù)困的運行和數(shù)據(jù)庫和數(shù)據(jù)表的創(chuàng)建(代碼)。第四部分
3、是課程設計的總結。</p><p> 1.1開發(fā)環(huán)境及開發(fā)語言</p><p> 本次課程設計是以學生信息管理系統(tǒng)為模擬模型,運用C++編程語言結合SQL數(shù)據(jù)庫所開發(fā)系統(tǒng)。開發(fā)平臺為VC6.0和SQL2008。</p><p><b> 1.2 設計目的</b></p><p> 隨著學生數(shù)量的日益增多,學校對學
4、生的管理要求也越來越高,為了使學生成績的管理更加系統(tǒng)化,數(shù)字化,因此我們設計了該學生信息管理系統(tǒng)。</p><p><b> 1.3 設計內容</b></p><p> 運用基于E-R模型的數(shù)據(jù)庫設計方法和關系規(guī)范化理論做指導完成從系統(tǒng)的分析到設計直至系統(tǒng)的最終實現(xiàn),開發(fā)學生成績管理系統(tǒng),完成學生成績管理系統(tǒng)的全部功能。首先做好需求分析,并完成數(shù)據(jù)流圖,其次做概念
5、分析,利用實體聯(lián)系的方法將需求分析的用戶需求抽象為信息結構,得到E-R圖,然后就是邏輯結構設計,將E-R圖轉換為計算機系統(tǒng)所支持的邏輯模型。最后利用SQL完成具體的實例。</p><p><b> 1.4.需求分析</b></p><p> 1、 問題的提出:為了高效率的完成學生成績的管理,決定開發(fā)學生成績管理系統(tǒng)。&
6、lt;/p><p> 2、 需完成的功能:</p><p> (1) 能提供管理員及普通用戶(除刪除和修改)錄入、注銷、顯示當前用戶、修改、刪除、查詢、輸出,學生的檔案信息,這些信息包括學生的成績、課程、個人信息等。</p><p> 觸發(fā)器,索引,存儲過程的建立及使用。</p><p>&l
7、t;b> 2. 概念設計</b></p><p><b> (1)(E-R圖)</b></p><p><b> (2)物理結構設計</b></p><p><b> Student</b></p><p><b> Cource <
8、/b></p><p><b> User</b></p><p><b> (3)分析關系模式</b></p><p> 對于關系模式Student(Sno|Sname|Sex|Age|Address|Grade|class|Tel|Politic|Cuture )假定姓名也具有唯一性,那么Student&l
9、t;/p><p> 就有兩個碼,這兩個碼都由單個屬性組成,彼此不相交。其它屬性不存在對碼的傳遞依賴與部分依賴,又因為Student中除學號、姓名外沒有其它的因素,所以Student屬于BCNF。對于關系模式Cource(|Sno|Cno|Score|)有兩個碼,這兩個碼都由單個屬性組成,彼此不相交,其它屬性不存在對碼的傳遞依賴與部分依賴,又因為成績中除學號、課程號外沒有其它的決定因素,所以成績屬于BCNF。對于關系
10、模式User(|UserName|UserType|UserPswd|)中,它只有一個碼,這里沒有任何屬性對課程號部分依賴或傳遞依賴,同時用戶名是唯一的決定因素,所以課程屬于BCNF。它和學生信息和成績沒有直接的聯(lián)系,因此它是一張單獨的表。</p><p><b> 3.SQL語句</b></p><p><b> 3.1 創(chuàng)建表</b>&l
11、t;/p><p><b> 學生表</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> 成績表</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> 將學生類別加入表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’,’’,’長春’,’軟件二班’,’大三’ ’1523300
19、0’.’無’,</p><p><b> ’群眾’) </b></p><p> insert into Student</p><p> values('002’,’王強’,’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> 將課程加入User表中</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('你在插入或修改學生的數(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> 存儲過程</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í)行存儲過程</b></p><p> execute usp_getStudent '張明'</p><p> 4、SQL與C++結合(可視化
32、的界面管理)</p><p> 1、準備創(chuàng)建好的數(shù)據(jù)庫,創(chuàng)建數(shù)據(jù)源</p><p> 在創(chuàng)建數(shù)據(jù)庫的應用程序之前,必須有一個可供應用程序使用的數(shù)據(jù)庫。</p><p> 2、(1)建立了數(shù)據(jù)庫之后,必須配備 ODBC 數(shù)據(jù)源,使其指向剛剛建立的數(shù)據(jù)庫。選擇“控制面板”中“管理工具”下的“數(shù)據(jù)源(ODBC)”項。雙擊 ODBC 圖標,彈出“ODBC 數(shù)據(jù)源管理器
33、”對話框。在這里用戶可以設置 ODBC數(shù)據(jù)源的一些信息,其中的“用戶 DSN”選項卡是用戶定義的在本地計算機上使用的數(shù)據(jù)源名(DSN),</p><p> (2) 為新的數(shù)據(jù)源選擇數(shù)據(jù)庫驅動程序。由于使用的是 Access 數(shù)據(jù)庫,所以選擇 Driver </p><p> do Microsoft Access(*.mdb)選項,并單擊“完成”按鈕。 </p><
34、;p> “ODBC Microsoft Access 安裝”對話框中,為該數(shù)據(jù)源起一</p><p> 個簡短的名稱。本例為 TeacherDB,可以在下一個編輯框中輸入對該數(shù)據(jù)庫的說明。</p><p> (4) 指定數(shù)據(jù)庫的位置。單擊“選擇”按鈕,然后指定所創(chuàng)建的 Access 數(shù)據(jù)庫。 </p><p> (5) 單擊“確定”按鈕,剛才創(chuàng)
35、建的用戶數(shù)據(jù)源被添加在“用戶 DSN”選項卡的“用</p><p> 戶數(shù)據(jù)源”列表框中。</p><p> 3. 創(chuàng)建 MFC AppWizard 應用程序 </p><p> 用 MFC AppWizard(exe)創(chuàng)建一個對話框應用程序 TeacherMIS。為了使程序能支持數(shù)據(jù)庫對象,在頭文件 stdafx.h 中加入#include<afxd
36、b.h>。 </p><p> 4. 用 ClassWizard 為數(shù)據(jù)庫中的每一個表映射一個記錄集類 </p><p> 首先為表 Users 映射記錄集類 CUserSet。打開項目工作區(qū)的 ClassView 選項卡,</p><p> 選擇項目名稱,右擊,彈出快捷菜單,選擇 New Class 命令彈出的 New Class對話框,輸入記錄集類
37、名稱 CUserSet,并為其選擇基類 CRecordset,單擊 OK 按鈕,彈出的Database Options 對話框,為記錄集類選擇 ODBC 數(shù)據(jù)源 TeacherDB,單擊 OK 按鈕,彈出Select Database Tables 對話框,為記錄集類選擇數(shù)據(jù)庫表 Users,單擊OK 按鈕,即完成記錄集類 CUserSet 的定義。</p><p> 5、根據(jù)類屬性之間的關系添加如下類:<
38、;/p><p> 6、C++中實現(xiàn)對數(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> ?。?)退出:void CSore::OnCancel()</p><
43、;p> CDialog::OnCancel();</p><p> (6)顯示當前用戶:</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、運行截圖</b></p><p&g
45、t;<b> ?。?)用戶登錄:</b></p><p> ?。?)學生信息管理系統(tǒng):</p><p><b> 3、成績管理系統(tǒng):</b></p><p> 5、設計中遇到的問題及心得</p><p> 在設計中遇到的幾個問題:</p><p> 關系圖的連接:當數(shù)
46、據(jù)庫創(chuàng)建的時候沒把他們的關系圖連接起來,導致在投影時出問題,查詢的時候也出現(xiàn)了錯誤</p><p> 刪除時錯誤:在刪除操作的時候,由于沒考慮表之間的關系,和刪除次序。導致了一張表的數(shù)據(jù)元素刪除了,而另外一張的任然存在。</p><p> 對同一學生插入同一課程號:剛開始的思想是使用not in進行判斷該記錄是否存在,再插入我用的下面的這句語句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);結果未能實現(xiàn)禁止對對統(tǒng)一學生插入統(tǒng)一課程號。幾番周折后還是沒能看出問題的所在。一是我便
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
- 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 數(shù)據(jù)庫課程設計報告--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計報告-- 學生成績管理系統(tǒng)
- 數(shù)據(jù)庫學生成績管理系統(tǒng)課程設計報告
- 數(shù)據(jù)庫課程設計報告---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計報告---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計報告----學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計報告--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計報告---學生成績管理
- 學生成績管理系統(tǒng)數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫課程設計---學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計(學生成績管理系統(tǒng))
- 數(shù)據(jù)庫課程設計---學生成績管理系統(tǒng)數(shù)據(jù)庫設計
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 學生成績管理系統(tǒng)-數(shù)據(jù)庫課程設計
- 學生成績管理系統(tǒng)數(shù)據(jù)庫課程設計
- 數(shù)據(jù)庫學生成績管理系統(tǒng)課程設計
- 數(shù)據(jù)庫課程設計——學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計----學生成績管理系統(tǒng)
- 數(shù)據(jù)庫課程設計--學生成績管理系統(tǒng)
評論
0/150
提交評論