版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認領(lǐng)
文檔簡介
1、<p><b> 一、設(shè)計目的</b></p><p> 《數(shù)據(jù)庫原理及應(yīng)用》是一門實踐性很強的課程,為了學好這門課程,必 須在掌握理論知識的同時,加強上機實踐。</p><p> 本課程設(shè)計的主要目的在于:</p><p> 1、加深對數(shù)據(jù)庫基礎(chǔ)理論和基本知識的理解,培養(yǎng)學生運用所學理論知 識對數(shù)據(jù)庫進行組織、管理和使用的能
2、力。 </p><p> 2、掌握數(shù)據(jù)庫應(yīng)用系統(tǒng)的整個設(shè)計過程(包括需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計與物理設(shè)計與實施),提高運用數(shù)據(jù)庫解決實際問題的能力。</p><p><b> 二、編程環(huán)境</b></p><p> 數(shù)據(jù)庫:Oracle</p><p><b> 語言:c#</b>
3、</p><p><b> 需求分析</b></p><p> 該系統(tǒng)至少應(yīng)包含如下功能:</p><p><b> 1、身份驗證模塊</b></p><p> 進入系統(tǒng)時首先進行身份驗證。只有用戶名和密碼正確才能進入系統(tǒng)。</p><p><b> 2、
4、用戶管理</b></p><p> 對使用本系統(tǒng)的用戶進行添加、查詢、修改密碼、刪除等操作。</p><p><b> 3、學生信息錄入</b></p><p> 本系統(tǒng)能夠錄入學生的學號、姓名、性別、班級等信息。</p><p><b> 4、學生成績查詢</b></p&
5、gt;<p> 可以根據(jù)學號、姓名、班級、學期等信息項中的一項或多項的組合,進行模 糊查詢和精確查詢,從而高效地找到您想要的信息。</p><p><b> 5、學生成績更新</b></p><p> 可以根據(jù)學號、姓名等信息項中的一項進行更新</p><p><b> 6、學生成績排序</b><
6、;/p><p> 可以按照學號、姓名、性別、班級、成績的升序/降序</p><p><b> 7、統(tǒng)計 </b></p><p> 可以按照課程、班級、專業(yè)等進行統(tǒng)計。</p><p><b> 總體設(shè)計</b></p><p><b> 系統(tǒng)總體
7、結(jié)構(gòu)如下:</b></p><p><b> 五、數(shù)據(jù)庫設(shè)計</b></p><p><b> 1、概念設(shè)計</b></p><p> 由需求分析的結(jié)果可知,本系統(tǒng)設(shè)計的實體包括:</p><p> ?。?)學生基本信息:學號,姓名,性別,班級,學院。</p><
8、;p> (2)課程基本信息: 課程名,課程號。 </p><p><b> E—R圖:</b></p><p><b> 2.邏輯</b></p><p><b> 2.物理結(jié)構(gòu)設(shè)計</b></p><p> 2.1由系統(tǒng)E—R圖轉(zhuǎn)化而得到的關(guān)系模式如下:<
9、;/p><p> ?。?)學生(學號,姓名,性別,班級,學院),其主關(guān)鍵字為學號;</p><p> ?。?)課程(課程名,課程號),其中主關(guān)鍵字為課程號;</p><p> ?。?)成績(課程號,學號,分數(shù),學期)其中主關(guān)鍵字為學號和課程號,可以與學生關(guān)系模式合并為:學生(學號,姓名,性別,年齡,班級,學院,成績,學期,課程號)。</p><p&g
10、t; 2.2 確定關(guān)系模型的存取方法</p><p> 在將概念模型轉(zhuǎn)換成物理模型之后,我們可以對物理模型進行設(shè)計,雙擊物理模型的 關(guān)系,可以對該關(guān)系的名稱、注釋等信息進行查詢。可對該關(guān)系的屬性列進行設(shè)計,可分別設(shè)置其名稱、碼、數(shù)據(jù)類型以及主碼、是否為空等。在實際設(shè)計中最常用的存取方法是索引發(fā),使用索引可以大大減少數(shù)據(jù)的查詢時間,在建立索引時應(yīng)遵循:在 經(jīng)常需要搜索的列上建立索引; 在主關(guān)鍵字上建
11、立索引;在經(jīng)常用于連接的列上建 立索引,即在外鍵上建立索引;在經(jīng)常需要根據(jù)范圍進行搜索的列上創(chuàng)建索引,因為 索引已經(jīng)排序,其指定的范圍是連續(xù)的等規(guī)則。才能充分利用索引的作用避免因索引引起的負面作用。</p><p> 2.3確定數(shù)據(jù)庫的存儲結(jié)構(gòu)</p><p> 確定數(shù)據(jù)庫的存儲結(jié)構(gòu)主要指確定數(shù)據(jù)的存放位置和存儲結(jié)構(gòu),包括確定關(guān)系、索引、日志、備份等的存儲安排及存儲結(jié)構(gòu),以及確定系統(tǒng)存
12、儲參數(shù)的配置。因為該成績管理系統(tǒng)的數(shù)據(jù)量小,,所以我們只用把數(shù)據(jù)存儲在使用的電腦硬盤上,不用作更多的安排。</p><p><b> 2.4建表</b></p><p><b> 以DBA登錄數(shù)據(jù)庫</b></p><p> SQL>CONNECT SYSTEM/123456:1521@demo</p&g
13、t;<p><b> 創(chuàng)建永久表空間</b></p><p> CREATE TABLESPACE ts_perm</p><p> DATAFILE 'C:\app\Administrator\oradata\demo\ts_perm_data.dbf' SIZE 10M </p><p> AUTOE
14、XTEND ON</p><p> EXTENT MANAGEMENT LOCAL AUTOALLOCATE;</p><p> --默認路徑在D:\app\Administrator\product\11.1.0\db_1\database下</p><p> 查看結(jié)果desc dba_tablespaces; </p><p>
15、 select tablespace_name from dba_tablespaces</p><p> 創(chuàng)建臨時表空間ts_temp(也可以使用系統(tǒng)臨時表空間temp)</p><p> CREATE TEMPORARY TABLESPACE ts_temp</p><p> TEMPFILE 'c:\app\Administrator\orada
16、ta\demo\ts_temp_data.dbf' SIZE 50M AUTOEXTEND ON</p><p> EXTENT MANAGEMENT LOCAL; </p><p> --默認路徑在D:\app\Administrator\product\11.1.0\db_1\database下</p><p> 得到.dbf、.ctl和
17、redo log文件.log</p><p> select file_name from dba_data_files;</p><p> select name from v$ControlFile;</p><p> select member from v$logfile;</p><p> 創(chuàng)建用戶Turing</p&
18、gt;<p> create user Turing </p><p> identified by 123456</p><p> profile default</p><p> default tablespace ts_perm</p><p> temporary tablespace
19、 ts_temp</p><p> account unlock;</p><p> 查看結(jié)果:desc dba_users; </p><p> select username from dba_users;</p><p> 給用戶Turing授權(quán)</p><p><b> GRANT<
20、/b></p><p> CONNECT, RESOURCE,</p><p> CREATE SESSION, </p><p> CREATE TABLE, </p><p> CREATE PROCEDURE, </p><p> CREATE SEQUENCE,</p><
21、;p> CREATE TRIGGER, </p><p> CREATE VIEW, </p><p> CREATE SYNONYM, </p><p> ALTER SESSION, </p><p> CREATE MATERIALIZED VIEW,</p><p> CREATE
22、DATABASE LINK</p><p> TO Turing;</p><p> 建立“學生”表Student,學號是主碼,姓名取值唯一。</p><p> CREATE TABLE Turing.student(</p><p> Sno VARCHAR2(12),</p><p> Snam
23、e VARCHAR2(10) not null,</p><p> SSex VARCHAR2(4) ,</p><p> SAge NUMBER ,</p><p> SDEPT VARCHAR2(20),</p><p> unique ("SNAME"),</p
24、><p> primary key ("SNO") validate,</p><p> check (SSex in('男','女'))</p><p><b> ) </b></p><p> TableSpace ts_perm</p>&l
25、t;p> PCTFree 10</p><p> PCTUsed 40 </p><p> IniTrans 1 MAXTrans 255 </p><p> storage ( initial 64K freelists 1 freelist groups 1 buffer_pool default) </p><p>
26、logging NoCompress ; </p><p> 建立一個“課程”表Course</p><p> CREATE TABLE Turing.course(</p><p> Cno VARCHAR2(8),</p><p> Cname VARCHAR2(40) not null unique,</p
27、><p> CPNO VARCHAR2(8) ,</p><p> CCredit NUMBER ,</p><p> primary key ("CNO") VALIDATE,</p><p> foreign key ("CPNO") references Turing.co
28、urse("CNO")</p><p><b> ) </b></p><p> TableSpace ts_perm</p><p> PCTFree 10</p><p> PCTUsed 40 </p><p> IniTrans 1 MAXTrans 255
29、 </p><p> storage ( initial 64K freelists 1 freelist groups 1 buffer_pool default) </p><p> logging NoCompress ;</p><p><b> 建立一個sc表</b></p><p> CREATE T
30、ABLE turing.sc(</p><p> Sno VARCHAR2(12),</p><p> Cno VARCHAR2(8) ,</p><p> Grade NUMBER ,</p><p> primary key ("SNO","CNO") v
31、alidate,</p><p> foreign key("SNO") references turing.student("SNO") validate,</p><p> foreign key("CNO") references turing.course("CNO") validate</
32、p><p><b> ) </b></p><p> TableSpace ts_perm</p><p> PCTFree 10</p><p> PCTUsed 40 </p><p> IniTrans 1 MAXTrans 255 </p><p> st
33、orage ( initial 64K freelists 1 freelist groups 1 buffer_pool default) </p><p> logging NoCompress ;</p><p><b> 功能模塊</b></p><p><b> 用戶登錄</b></p>&l
34、t;p><b> 主界面</b></p><p><b> 錄入信息</b></p><p><b> 成績查詢</b></p><p><b> 成績錄入</b></p><p><b> 成績修改</b></
35、p><p><b> 成績刪除</b></p><p><b> 排序</b></p><p><b> 統(tǒng)計</b></p><p><b> 用戶修改密碼</b></p><p><b> 七、總結(jié)</b&
36、gt;</p><p> 通過本次實驗,我掌握了c#和oracal的很多知識,在課設(shè)期間遇到很多問題,在同學的幫助下,一一解決,使我更加體會到團結(jié)就是力量。在驗收的過程中,我明白了做程序一定要規(guī)范,類名、窗體名不能亂起,明白了今后還需要更加努力!</p><p><b> 附錄</b></p><p> 數(shù)據(jù)庫連接及用戶登陸的主要代碼&l
37、t;/p><p> private string computerName = Environment.MachineName.ToString(); </p><p> public OracleConnection myOrclConnection ;</p><p> public void connection()</p><p>
38、<b> {</b></p><p> myOrclConnection = new OracleConnection(@"user id=system;password=123456;</p><p> data source= ( DESCRIPTION=( ADDRESS=(PROTOCOL=tcp)</p><p>
39、 (HOST=" + computerName + @")</p><p> (PORT=1521)</p><p><b> )</b></p><p> (CONNECT_DATA=(SID=ZDB))</p><p><b> (HS=OK)</b></p&g
40、t;<p><b> ) ");</b></p><p><b> }</b></p><p> public void login(TextBox textBox_UserName, TextBox textBox_UserPwd)</p><p><b> {</b>
41、;</p><p> connection();</p><p><b> try</b></p><p><b> {</b></p><p> myOrclConnection.Open();</p><p><b> }</b></
42、p><p> catch (Exception ex)</p><p><b> {</b></p><p> MessageBox.Show("數(shù)據(jù)庫連接失?。涸?!" + ex.Message);</p><p><b> }</b></p><p&g
43、t; string sql = "select usid,pwd from turing.login where usid='" + textBox_UserName.Text.Trim() + "' and pwd='" + textBox_UserPwd.Text.Trim() + "'";</p><p> Or
44、acleCommand com1 = new OracleCommand();</p><p> com1.CommandText = sql;</p><p> com1.Connection = myOrclConnection;</p><p> OracleDataReader sdr = com1.ExecuteReader();</p>
45、;<p> if (sdr.Read())</p><p><b> {</b></p><p> Main longs = new Main();</p><p> longs.Show();</p><p> myOrclConnection.Close();</p><p
46、><b> }</b></p><p><b> else</b></p><p><b> {</b></p><p> MessageBox.Show("請輸入正確用戶和密碼");</p><p><b> }</b>
47、;</p><p><b> 信息錄入</b></p><p> bc.myOrclConnection.Open();</p><p> DataSet sd = new DataSet();</p><p> string sqlsno = "select sno from turing.stude
48、nt where sno='" + textBox1.Text + "'";</p><p> OracleDataAdapter sda = new OracleDataAdapter(sqlsno, bc.myOrclConnection);</p><p> sd.Clear();</p><p> sda.
49、Fill(sd);</p><p> if (sd.Tables[0].Rows.Count != 0)</p><p><b> {</b></p><p> MessageBox.Show("你輸入的學號已存在");</p><p><b> }</b></p&
50、gt;<p><b> else</b></p><p><b> {</b></p><p> string sqlc;</p><p> if (radioButton1.Checked)</p><p><b> {</b></p>
51、<p> sqlc = "男";</p><p><b> }</b></p><p> else sqlc = "女";</p><p> string sql = "insert into turing.student values('" + textBo
52、x1.Text + "','"</p><p> + textBox2.Text + "','" + sqlc + "','" + textBox3.Text + "','" + comboBox1.Text + "')";</p>
53、;<p> OracleCommand com = new OracleCommand(sql, bc.myOrclConnection);</p><p> com.ExecuteNonQuery();</p><p> bc.myOrclConnection.Close();</p><p> MessageBox.Show("恭
54、喜你!輸入成功!");</p><p> 排序及統(tǒng)計的類的主要代碼</p><p> bc.myOrclConnection.Open();</p><p> DataSet myDS = new DataSet();</p><p> OracleDataAdapter myAdapter = new OracleData
55、Adapter(str,bc.myOrclConnection);</p><p> myDS.Clear();</p><p> myAdapter.Fill(myDS);</p><p> sd.DataSource = myDS;</p><p> sd.DataSource = myDS.Tables[0].DefaultVi
56、ew;</p><p> myDS = null;</p><p> myAdapter = null;</p><p> 成績更新、成績錄入及刪除的類的代碼</p><p> DataSet sd = new DataSet();</p><p> string sqlsno = "select
57、sno from turing.student where sno='" + tBox.Text + "'";</p><p> OracleDataAdapter sda = new OracleDataAdapter(sqlsno, bc.myOrclConnection);</p><p> sd.Clear();</p>
58、<p> sda.Fill(sd);</p><p> if (sd.Tables[0].Rows.Count == 0)</p><p><b> {</b></p><p> MessageBox.Show("你輸入的學號不存在");</p><p><b> }
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 眾賞文庫僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
- 6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 倉儲信息管理課程設(shè)計
- java學生基本信息管理課程設(shè)計
- 物流信息管理課程設(shè)計
- 用戶信息管理課程設(shè)計論文
- 圖書信息管理課程設(shè)計
- 信息管理系統(tǒng)倉庫管理課程設(shè)計
- vb超市銷售信息管理課程設(shè)計
- 商品信息管理課程設(shè)計報告
- 學生信息管理系統(tǒng)課程設(shè)計
- 課程設(shè)計----學生信息管理系統(tǒng)
- 課程設(shè)計--學生信息管理系統(tǒng)
- 課程設(shè)計---學生信息管理系統(tǒng)
- javaweb課程設(shè)計--學生信息管理
- 學生信息管理系統(tǒng)課程設(shè)計
- 學生信息管理系統(tǒng)課程設(shè)計
- 學生信息管理系統(tǒng) 課程設(shè)計
- 課程設(shè)計-學生信息管理系統(tǒng)
- 課程設(shè)計——學生信息管理系統(tǒng)
- 學生信息管理管理系統(tǒng)課程設(shè)計
- 課程設(shè)計-- 學生信息管理系統(tǒng)設(shè)計
評論
0/150
提交評論