數據庫課設報告_第1頁
數據庫課設報告_第2頁
數據庫課設報告_第3頁
數據庫課設報告_第4頁
數據庫課設報告_第5頁
已閱讀5頁,還剩8頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

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

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;主要功能模塊設計A登錄模塊設計: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);

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

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論