數(shù)據(jù)庫課設(shè)報(bào)告_第1頁
數(shù)據(jù)庫課設(shè)報(bào)告_第2頁
數(shù)據(jù)庫課設(shè)報(bào)告_第3頁
數(shù)據(jù)庫課設(shè)報(bào)告_第4頁
數(shù)據(jù)庫課設(shè)報(bào)告_第5頁
已閱讀5頁,還剩8頁未讀 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

現(xiàn)代數(shù)據(jù)庫技術(shù)南京航空航天大學(xué)南京航空航天大學(xué)數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告班級(jí)學(xué)號(hào)姓名指導(dǎo)老師E-mail二零一二年五月摘要運(yùn)用數(shù)據(jù)庫基本理論與應(yīng)用知識(shí),在微機(jī)RDBMS(SQLServer)的環(huán)境上建立一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)。要求把現(xiàn)實(shí)世界的事物及事物之間的復(fù)雜關(guān)系抽象為信息世界的實(shí)體及實(shí)體之間聯(lián)系的信息模型,再轉(zhuǎn)換為機(jī)器世界的數(shù)據(jù)模型和數(shù)據(jù)文件,并對(duì)數(shù)據(jù)文件實(shí)施檢索、更新和控制等操作。關(guān)鍵詞:設(shè)計(jì)目的,設(shè)計(jì)要求,軟件概要正文1.設(shè)計(jì)目的課程設(shè)計(jì)為學(xué)生提供了一個(gè)既動(dòng)手又動(dòng)腦,獨(dú)立實(shí)踐的機(jī)會(huì),將課本上的理論知識(shí)和實(shí)際有機(jī)的結(jié)合起來,鍛煉學(xué)生的分析解決實(shí)際問題的能力。提高學(xué)生適應(yīng)實(shí)際,實(shí)踐編程的能力。課程設(shè)計(jì)的目的:加深對(duì)數(shù)據(jù)庫系統(tǒng)、軟件工程、程序設(shè)計(jì)語言的理論知識(shí)的理解和應(yīng)用水平;在理論和實(shí)驗(yàn)教學(xué)基礎(chǔ)上進(jìn)一步鞏固已學(xué)基本理論及應(yīng)用知識(shí)并加以綜合提高;學(xué)會(huì)將知識(shí)應(yīng)用于實(shí)際的方法,提高分析和解決問題的能力,增強(qiáng)動(dòng)手能力;為畢業(yè)設(shè)計(jì)和以后工作打下必要基礎(chǔ)。2.設(shè)計(jì)要求運(yùn)用數(shù)據(jù)庫基本理論與應(yīng)用知識(shí),在微機(jī)RDBMS(SQLServer)的環(huán)境上建立一個(gè)數(shù)據(jù)庫應(yīng)用系統(tǒng)。要求把現(xiàn)實(shí)世界的事物及事物之間的復(fù)雜關(guān)系抽象為信息世界的實(shí)體及實(shí)體之間聯(lián)系的信息模型,再轉(zhuǎn)換為機(jī)器世界的數(shù)據(jù)模型和數(shù)據(jù)文件,并對(duì)數(shù)據(jù)文件實(shí)施檢索、更新和控制等操作。用E-R圖設(shè)計(jì)選定題目的信息模型;設(shè)計(jì)相應(yīng)的關(guān)系模型,確定數(shù)據(jù)庫結(jié)構(gòu);分析關(guān)系模式各屬于第幾范式,闡明理由;設(shè)計(jì)應(yīng)用系統(tǒng)的系統(tǒng)結(jié)構(gòu)圖,確定系統(tǒng)功能;通過設(shè)計(jì)關(guān)系的主碼約束、外碼約束和使用CHECK實(shí)現(xiàn)完整性控制;為參照關(guān)系設(shè)計(jì)插入、刪除、修改觸發(fā)器;實(shí)現(xiàn)應(yīng)用程序設(shè)計(jì)、編程、優(yōu)化功能;對(duì)系統(tǒng)的各個(gè)應(yīng)用程序進(jìn)行集成和調(diào)試,進(jìn)一步優(yōu)化系統(tǒng)功能、改善系統(tǒng)用戶界面完成實(shí)驗(yàn)內(nèi)容所指定的各項(xiàng)要求;分析遇到的問題,總結(jié)并寫出課程設(shè)計(jì)報(bào)告;自我評(píng)價(jià)3.軟件定義:windowsXP系統(tǒng)4.開發(fā)環(huán)境:Visualstudio2005C#,SQLServer四、概要設(shè)計(jì)1.系統(tǒng)功能結(jié)構(gòu)登錄名E-R圖:登錄名修改授課老師課程ID n修改授課老師課程ID登錄密碼登錄密碼課程名登錄名 1 m課程名登錄名選擇學(xué)生 1選擇學(xué)生課程信息登錄密碼 n課程信息登錄密碼課程授課老師登錄名 1 m課程授課老師登錄名查閱管理員查閱管理員課程備注登錄密碼 1課程備注登錄密碼五、詳細(xì)設(shè)計(jì)1.?dāng)?shù)據(jù)庫設(shè)計(jì)關(guān)系圖表:1.課程表CREATETABLE`classes`(

`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'鍵主',

`classname`char(255)NOTNULLCOMMENT'課程名稱',

`description`char(255)NOTNULLCOMMENT'程描述課',

`id_teacher`bigint(20)DEFAULTNULLCOMMENT'課授教師',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=39DEFAULTCHARSET=utf8;

--

--Tablestructurefor`student_class`

--

DROPTABLEIFEXISTS`student_class`;

2.用戶表CREATETABLE`users`(

`id`bigint(20)NOTNULLAUTO_INCREMENTCOMMENT'鍵主',

`username`char(50)NOTNULLCOMMENT'用戶名',

`password`char(50)NOTNULLCOMMENT'密碼',

`type`smallint(5)NOTNULLCOMMENT'類型0管理員1老師2學(xué)生',

PRIMARYKEY(`id`)

)ENGINE=InnoDBAUTO_INCREMENT=5DEFAULTCHARSET=utf8;

3.選課表CREATE

TABLE

`student_class`

(

`id`

bigint(20)

NOT

NULL

AUTO_INCREMENT,

`id_student`

bigint(20)

NOT

NULL,

`id_class`

bigint(20)

NOT

NULL,

PRIMARY

KEY

(`id`)

)

ENGINE=InnoDB

AUTO_INCREMENT=41

DEFAULT

CHARSET=utf8;主要功能模塊設(shè)計(jì)A登錄模塊設(shè)計(jì):public

static

User

CheckLogin(string

username,

string

password)

{

OdbcConnection

connection

=

OpenDatabase();

User

user

=

null;

string

sql

=

"SELECT

*

FROM

users

WHERE

username

=

'"

+

username

+

"'

AND

password

=

'"

+

password

+

"'";

OdbcCommand

cmd

=

new

OdbcCommand(sql,

connection);

OdbcDataReader

reader

=

cmd.ExecuteReader();

if

(reader.HasRows)

{

user

=

new

User();

user.UserId

=

reader.GetInt32(0);

user.Username

=

reader.GetString(1);

user.Type

=

(UserType)reader.GetInt32(3);

}

CloseDatabase(connection);

return

user;

}B開課信息模塊public

static

List<Class>

GetTeacherClasses(User

user)

{

OdbcConnection

connection

=

OpenDatabase();

List<Class>

classes

=

null;

string

sql

=

string.Format("SELECT

*

FROM

classes

WHERE

id_teacher

=

'{0}'",

user.UserId);

OdbcCommand

cmd

=

new

OdbcCommand(sql,

connection);

OdbcDataReader

reader

=

cmd.ExecuteReader();

if

(reader.HasRows)

{

classes

=

new

List<Class>();

while

(reader.Read())

{

Class

tmp

=

new

Class();

tmp.ClassId

=

reader.GetInt32(0);

tmp.ClassName

=

reader.GetString(1);

tmp.Description

=

reader.GetString(2);

classes.Add(tmp);

}

}

CloseDatabase(connection);

return

classes;

}C選課模塊publicstaticvoidGetSelectClasses(Useruser,List<Class>classes)

{

OdbcConnectionconnection=OpenDatabase();

foreach(Classcinclasses)

{

stringsql=string.Format("SELECT*FROMstudent_classWHEREid_student='{0}'ANDid_class='{1}'",user.UserId,c.ClassId);

OdbcCommandcmd=newOdbcCommand(sql,connection);

OdbcDataReaderreader=cmd.ExecuteReader();

if(reader.HasRows)c.Select=true;

reader.Close();

cmd.CommandText=string.Format("SELECT*FROMusersWHEREid='{0}'",c.TeacherId);

reader=cmd.ExecuteReader();

if(reader.HasRows)c.TeacherName=reader.GetString(1);

}

CloseDatabase(connection);

}D,選好后的選課模塊publicstaticvoidUpdateSelectClasses(Useruser,List<Class>classes)

{

OdbcConnectionconnection=OpenDatabase();

foreach(Classcinclasses)

{

if(c.Select==false)

{

stringsql=string.Format("DELETEFROMstudent_classWHEREid_student='{0}'ANDid_class='{1}'",user.UserId,c.ClassId);

OdbcCommandcmd=newOdbcCommand(sql,connection);

cmd.ExecuteNonQuery();

}

else

{

stringsql=string.Format("SELECT*FROMstudent_classWHEREid_student='{0}'ANDid_class='{1}'",user.UserId,c.ClassId);

OdbcCommandcmd=newOdbcCommand(sql,connection);

objecto=cmd.ExecuteScalar();

if(o!=null)continue;

cmd.CommandText=string.Format("INSERTINTOstudent_class(id_student,id_class)VALUES('{0}','{1}')",user.UserId,c.ClassId);

cmd.ExecuteNonQuery();

}

}

CloseDatabase(connection);

}六、課程設(shè)計(jì)小結(jié)通過本次課程設(shè)計(jì),我學(xué)習(xí)到了很多實(shí)用的知識(shí),由于之前對(duì)C#知識(shí)的不足,在課程設(shè)計(jì)中遇到很多困難,尤其是在數(shù)據(jù)庫的連接上,最后在老師的幫助下才解決問題,隨著一個(gè)個(gè)問題的解決,我學(xué)到了很多知識(shí),熟練了對(duì)軟件的使用,每做完一個(gè)模塊時(shí),都有一種成功的喜悅,體會(huì)到了學(xué)習(xí)的快樂,這次設(shè)計(jì)的軟件非常不完善,我將繼續(xù)努力學(xué)習(xí)C#.NET,將數(shù)據(jù)庫與編程語言結(jié)合,爭(zhēng)取在接下來的這個(gè)暑假能開發(fā)出一個(gè)完善的系統(tǒng),掌握更多實(shí)用的東西。本次課程設(shè)計(jì)讓我有機(jī)會(huì)能把之前學(xué)的數(shù)據(jù)庫知識(shí)系統(tǒng)的串聯(lián)起來,尤其是對(duì)數(shù)據(jù)庫的建立與操作都上了一個(gè)臺(tái)階,包括怎么建立更簡(jiǎn)潔,沒有冗余而又很完備的數(shù)據(jù)庫系統(tǒng),怎么對(duì)數(shù)據(jù)庫結(jié)構(gòu)模型進(jìn)行設(shè)計(jì),主鍵外鍵的定義,更重要的是對(duì)前期概念模型,也就是E-R圖的規(guī)劃,深刻的體會(huì)到前期工作的重要性。只有正確詳盡的對(duì)系統(tǒng)進(jìn)行分析,才能更高效的完成系統(tǒng)的開發(fā)。七、致謝感謝老師和研究生在機(jī)房的指導(dǎo),感謝韓羽佳,卜淼兩位同學(xué)的幫忙,感謝國(guó)家,感謝黨,感謝神!八、參考文獻(xiàn)1.康莉著《新手學(xué)VisualC#2008程序設(shè)計(jì)》電子工業(yè)出版社;2.王珊薩師煊著《數(shù)據(jù)庫系統(tǒng)概論》高等教育出版社;3.周峰著《SQLSever2005中文版關(guān)系數(shù)據(jù)庫基礎(chǔ)與實(shí)踐教程》;4..徐國(guó)智汪孝宣著《SQLSever數(shù)據(jù)庫開發(fā)實(shí)例精粹》電子工業(yè)出版社;5.周峰李德路王征著《VisualC#.NET2005中文版基礎(chǔ)與實(shí)踐教程》電子工業(yè)出版社;6.王華杰黃山著《精通C#數(shù)據(jù)庫編程》科學(xué)出版社;注:1公式要求:正文中可以用字母表示的符號(hào)請(qǐng)盡量不要用公式表示,公式大小為原大小的75%。如:2圖表要求:通常圖標(biāo)題名稱在下,表標(biāo)題名稱在上,文字大小比正文文字小一號(hào),為六號(hào)字體,其中,圖形為Word自帶繪圖工具繪制或者采用其它繪圖工具(Visio,Mat

溫馨提示

  • 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. 人人文庫網(wǎng)僅提供信息存儲(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ì)自己和他人造成任何形式的傷害或損失。

評(píng)論

0/150

提交評(píng)論