版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進行舉報或認(rèn)領(lǐng)
文檔簡介
1、數(shù)據(jù)庫項目設(shè)計報告題目:Oracle學(xué)生成績管理系統(tǒng)姓名:郎元釗班級:144-2學(xué)號:201458504242學(xué)院:計控學(xué)院1 .系統(tǒng)調(diào)查分析1.1 任務(wù)概述1.1.1 項目背景當(dāng)今社會已進入信息時代,作為信息管理的主要工具的數(shù)據(jù)庫已經(jīng)成為舉足輕重的角色。無論是企業(yè),組織的管理還是電子商務(wù)或電子政務(wù)等應(yīng)用系統(tǒng)的管理,都需要數(shù)據(jù)庫的支持,Oracle是目前最流行的關(guān)系型數(shù)據(jù)庫管理系統(tǒng),被越來越多的用戶在信息系統(tǒng)管理、企業(yè)數(shù)據(jù)處理、Internet、電子商務(wù)網(wǎng)站等領(lǐng)域作為應(yīng)用數(shù)據(jù)的后臺處理系統(tǒng)。1.1.2 開發(fā)意圖采用學(xué)生成績管理系統(tǒng),可以方便地對學(xué)生和學(xué)生成績進行管理。1.1.3 用戶特點本系統(tǒng)
2、的最終用戶只有一個:管理員。系統(tǒng)的管理員主要是對學(xué)生信息以及學(xué)生成績進行一些操作。這些操作包括對學(xué)生信息的添加、對學(xué)生成績的錄入以及對學(xué)生成績進行分析等。1.1.4 可行性分析隨著我國的市場經(jīng)濟的發(fā)展,各大高校的學(xué)生數(shù)目增多,以前的人工管理學(xué)生成績方式已經(jīng)不能再適應(yīng)現(xiàn)在的環(huán)境,取而代之的是先進的學(xué)生管理系統(tǒng),通過使用oracle9i創(chuàng)建的asp/oracle學(xué)生成績管理系統(tǒng)可以讓管理人員方便而快捷的進行管理、查詢、插入、更新等工作。因此,開發(fā)一套適和大眾的、兼容性好的系統(tǒng)是很有必要的。1.2 功能描述1.2.1 模塊劃分該系統(tǒng)主要分為三個模塊:信息數(shù)據(jù)管理、基本信息管理和成績管理。信息數(shù)據(jù)管理
3、模塊1 .進入系統(tǒng)后臺2 .學(xué)生基本信息錄入:可選擇兩種方式進行學(xué)生信息錄入,一個是單條錄入,另一個是批量導(dǎo)入。批量導(dǎo)入是將一個Excel表提交給系統(tǒng),系統(tǒng)負責(zé)將該表中的數(shù)據(jù)存儲到數(shù)據(jù)庫中,Excel需要按照一定的格式。3 .學(xué)生基本信息導(dǎo)出:可按班或系導(dǎo)出基本信息到Excel表中。4 .所選科目成績錄入:在教師批閱卷完畢后,由教師錄入該科目的學(xué)生考試成績,并打印提交成績單??蛇x擇兩種方式進行成績錄入,一個是單條錄入,另一個是批量導(dǎo)入。批量導(dǎo)入是將一個Excel表提交給系統(tǒng),系統(tǒng)負責(zé)將該表中的數(shù)據(jù)存儲到數(shù)據(jù)庫中,Excel需要按照一定的格式。5 .所選科目成績導(dǎo)出:可按照班或?qū)I(yè)導(dǎo)出成績到一個
4、Excel表中?;拘畔⒐芾砟K1 .基本信息查詢:可按年級、系別、專業(yè)、班級對學(xué)生基本信息進行查詢。2 .基本信息修改:通過基本信息的查詢,可對相應(yīng)的信息進行修改。成績管理模塊:1 .成績查詢:根據(jù)查詢的班級、學(xué)號和姓名以及科目進行成績查詢。2 .成績報告單處理:(1)按專業(yè)匯總學(xué)生的成績,成績應(yīng)反映轉(zhuǎn)專業(yè)前后學(xué)生的成績信息。(2)按學(xué)期、學(xué)年或四年匯總每個學(xué)生的成績,成績應(yīng)反映轉(zhuǎn)專業(yè)前后所修課程的成績。3 .成績變更處理:如果因成績遺漏或錄入錯誤,教師可根據(jù)審批手續(xù)重新錄入成績。由管理部門的專門人員來查詢并提交,永久保存。4 .重修處理:同一門課可修多次,選取成績最高的作為該門可的成績,并
5、更改以往所修的該門課成績。5 .成績統(tǒng)計分析:(1)對每系或每班各科成績進行分析(即求單科平均成績、及格率和優(yōu)秀率);(2)對所開課程的成績分析(求其平均成績,最高分和最低分);(3)不及格情況的統(tǒng)計、導(dǎo)出、打印(4)對學(xué)生考試成績進行排名(單科按系別或班級進行排名,對每一個班級,同一學(xué)期學(xué)生總體成績進行排名,并顯示各科成績信息)2系統(tǒng)分析與設(shè)計2.1 數(shù)據(jù)建模與分析包括DFD根據(jù)分析,該學(xué)生成績管理系統(tǒng)可以分為下圖所示的功能模塊:信息數(shù)據(jù)基本信息圖30功能模塊圖2.2 系統(tǒng)數(shù)據(jù)流圖如下:學(xué)生信息學(xué)生信息數(shù)據(jù)D1添加學(xué)生信息已添加成功的信息成績信息數(shù)據(jù)成績信息已添加成功的信息圖總體數(shù)據(jù)流圖2.
6、2.2學(xué)生信息數(shù)據(jù)流圖管理員添據(jù)擇數(shù)選加加條生息添一學(xué)信批量添加學(xué)息*出信添生一條學(xué)生信息2.3用添加成績信息一條成績信息圖33成績信息數(shù)據(jù)流圖2.2.4信息操作數(shù)據(jù)流圖修改后的學(xué)生信息圖34信息操作數(shù)據(jù)流圖2.3數(shù)據(jù)庫設(shè)計2.3.1概念模型設(shè)計概念模型表示必須用UMUEE-R圖表示。管理員課|V;/課二,>教師邈,J歲/4學(xué)生戔3,)二>成績。茂:Q更學(xué)號:成績j(課程號飛生引2.3.2邏輯模型設(shè)計建立具體的表及表問的約束,所有數(shù)據(jù)庫對象的命名要有一定的規(guī)范內(nèi)學(xué)生成績管理系統(tǒng)數(shù)據(jù)字典數(shù)據(jù)結(jié)構(gòu):db_teacher描述:教師基.信息表定義:teacher=work_id+t_nam
7、e數(shù)據(jù)結(jié)構(gòu):db_student描述:學(xué)生基禾信息表定義:student=register_no+stu_name+stu_sex+stu_dep+stu_class+stu_tel數(shù)據(jù)結(jié)構(gòu):db_course描述:學(xué)校課用信息表定義:course=course_no+course_name+course_point+course_term+work_id數(shù)據(jù)結(jié)構(gòu):db_grade描述:成績表定義:grade=register_no+grade+course_no+course_name+flag+course_term表1教師基本信息表db_teacher字段標(biāo)示含義數(shù)據(jù)類型長度精確度主鍵外
8、鍵work_id教師編號Characters®)6Xt_name教師姓名Characters(8)8表2學(xué)生基本信息表db_student字段標(biāo)示含義數(shù)據(jù)類型長度精確度主鍵外鍵register_no學(xué)生學(xué)號Characters(12)12Xstu_name學(xué)生姓名Characters(8)8stu_sex學(xué)生性別Characters(2)2stu_dep所屬學(xué)院Characters(8)8stu_class所屬班級Characters(8)8stu_tel學(xué)生電話Characters(11)11表3課程基本信息表db_course字段標(biāo)示含義數(shù)據(jù)類型長度精確度主鍵外鍵course_n
9、o課程號VariableCharacters(9)9Xcourse_name課程名VariableCharacters(20)20course_poin學(xué)分Number(4,1)41course_term開課學(xué)期Characters。)1work_id任課教師Characters®)6X表4學(xué)生成績信息表db_grade字段標(biāo)示含義數(shù)據(jù)類型長度精確度主鍵外鍵register_no學(xué)生學(xué)號Characters(12)12XXgrade成績Number(7,1)71course_no課程號VariableCharacters(9)9XXcourse_name課程名VariableChar
10、acters(20)20course_term開課學(xué)期Characters。)1flag是否補考Smallint12.3.3物理模型設(shè)計包括索引、視圖、各種數(shù)據(jù)庫對象的物理結(jié)構(gòu),如表空間,數(shù)據(jù)塊的選擇,數(shù)據(jù)文件以及約束的設(shè)計等。廳p任務(wù)描述1數(shù)據(jù)庫名中文名:成績管理數(shù)據(jù)庫全局?jǐn)?shù)據(jù)庫名:Grade.dlpu.dalian域名:.dlpu.dalianSID:Grade21操作系統(tǒng)WindowsServer2008EnterpriseEdition3數(shù)據(jù)庫管理系統(tǒng)OracleDatabase9i4服務(wù)器模式共享服務(wù)器模式5事務(wù)類型OLTP6存儲結(jié)構(gòu)文件系統(tǒng)7數(shù)據(jù)存取路徑分別創(chuàng)建以表中主關(guān)鍵字以及外
11、部關(guān)鍵字為主的索引;創(chuàng)建以查詢字段為主的索引8數(shù)據(jù)存放位置將數(shù)據(jù)文件、重做日志文件及控制文件存放在于Oracle系統(tǒng)文件不同的磁盤上9數(shù)據(jù)庫用戶教師用戶:teauser學(xué)生用戶:stduser教務(wù)管理部門:staffuser10數(shù)據(jù)庫對象所有者數(shù)據(jù)庫的數(shù)據(jù)表、索引由教務(wù)管理部門staffuser用戶擁啟11表空間的選擇新建數(shù)據(jù)表空間TBS_GRAD眸為存儲成績表表空間;新建數(shù)據(jù)表空間TBS_TEACH_STD為存儲教師學(xué)生表去空間表5與teauser相關(guān)的視圖定義視圖名稱查詢的列口更改的列相關(guān)表vt_teach_gradestu_name,course_name,t_name,grade,co
12、urse_term,coursepointdb_coursedb_teacherdbstudentvt_teach_grade_ugradedb_gradePd表6與stduser相關(guān)的視圖定義視圖名稱查詢的列口更改的列相關(guān)表vs_studentregister_no,stu_name,stu_sex,stu_dep,stu_class,stu_teledb_studentvsstudentupdstuteledbstudent教師基本信息表教師編號教師姓名CHAR(6)<pk>CHAR(8)課程基本信息表課程號VARCHAR2(9)<pk>課程名VARCHAR2(20
13、)學(xué)分Number(4,1)開課學(xué)期CHAR(1)任課教師CHAR(6)<fk>學(xué)生學(xué)號CHAR(12)<pk>學(xué)生姓名CHAR(8)學(xué)生性別CHAR(2)所屬學(xué)院CHAR(8)所屬班級CHAR(8)學(xué)生電話CHAR(11)學(xué)生基本信息表CHAR(12)<pk,fk1>Number(7,1)VariableCharacters(9)VARCHAR2(20)SMALLINT<pk>VARCHAR2(9)CHAR(1)<fk2>號程號考、期學(xué)號名補基學(xué)生績程程否程課學(xué)成課課是課開學(xué)生成績信息表圖37數(shù)據(jù)庫物理模型2.3.4數(shù)據(jù)庫對象的代碼
14、腳本,如存儲過程,函數(shù),觸發(fā)器等表7與用戶相關(guān)的存儲過程、函數(shù)表定義存儲過程/函數(shù)名功能相關(guān)表及列所屬用戶p_query_std_inf查詢學(xué)生個人信息相關(guān)表:db_student查詢:register_no輸出:stu_dep,stu_sexstu_class,stu_name,stu_telestaffuserP_upd_std_inf更新學(xué)生個人信息相關(guān)表:db_student查詢:register_no輸出:stu_sex,stu_depstu_class,stu_tele,stu_name,staffuserp_query_std_grade查詢考試成績相關(guān)表:db_grade查詢:
15、register_no,course_no,gradestaffuserp_ins_upd_tea_grade插入或修改學(xué)生的考試成績相關(guān)表:db_gradestaffuserp_sum_desc根據(jù)學(xué)生總成績進行排名相關(guān)表:db_studentdb_grade查詢:register_nostu_name,gradestaffuserp_not_pass統(tǒng)計/、及格需補考的學(xué)生相關(guān)表:db_grade查詢:grade,gradecourse_namestaffuserp_fx所開課程成績分析(最高分,最低分,平均成績,及格率,優(yōu)秀率)相關(guān)表:db_grade查詢:gradestaffuserF
16、un_query_std_gra查詢某學(xué)號、某課程的學(xué)生成績相關(guān)表:db_grade查詢:register_no,courseno,gradestaffuser2.3,4.1創(chuàng)建存儲過程存儲過程一:根據(jù)輸入的學(xué)號,查詢學(xué)生的部分信息該存儲過程存儲在staffuser模式下,stduser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程。CREATEORREPLACEPROCEDUREp_query_std_inf(v_reg_noINdb_student.register_no%type,v_stu_nameOUTdb_student.stu_name%type,v_stu_sexOUTdb_student.s
17、tu_sex%type,v_stu_depOUTdb_student.stu_dep%type,v_stu_classOUTdb_student.stu_class%type,v_stu_teleOUTdb_student.stu_tele%type)AS一一一BEGINSELECTstu_name,stu_sex,stu_dep,stu_class,stu_teleINTOvstuname,vstusex,vstu_dep,vstuclass,vstuteleFROMdb_studentWHEREregister_no=v_reg_no;ENDp_query_std_inf;/PERKV&g
18、t;CREfiTEQRREPLACEPROCEDUREpq(iery_Etd_inf2u_reg_noINdb_student.register_notiype,3u_stu_naneOUTdb_tud?nt,4ustusexOUTdbstudent.stu_sextype,5u_studppOUTdb_stiident.stu.dep%tpe,6ustuclassOUTdb_student-stu_clas5tpe,7ustuteleOUTdhstudent.stutele默ppp)8AS9BEGIN10SELECTstu_name1stu_sex,5tu_dep,stu_class,stu
19、tele11INTOustunanestusexTustudep,ustuclass,ustutele12FROMdb_student13 WHEREregister_no=vreg_no;14 ENDp_query_std_inF;15/過程已創(chuàng)建,PERKV>|2U圖38創(chuàng)建過程p_query_std_inf存儲過程二:根據(jù)輸入的學(xué)號,更新學(xué)生的部分信息該存儲過程存儲在staffuser模式下,stduser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程CREATEORREPLACEPROCEDUREp_upd_std_inf(v_reg_noindb_student.register_no%typ
20、e,v_nameindb_student.stu_name%type,v_sexindb_student.stu_sex%type,v_depindb_student.stu_dep%type,v_classindb_student.stu_class%type,v_teleindb_student.stu_tele%type)aS一一BEGINUPDATEdb_studentSETstu_name=v_name,stu_sex=v_sex,stu_dep=v_dep,stu_class=v_class,stu_tele=v_teleWHEREregister_no=v_reg_no;ENDp
21、_upd_std_inf;立Drft.de:SQL*FLtls文件。涮捐如搜索選項必和助皿PERKV>CREATEORREPLACEPROCEDUREp_upd_stdinf(2ureg_noindbstudent.registerno%type,3vnaineindbstudent,stu_nanetyipe,4usexindbstudent.5tw_sex%type,5u_depindb_student.stu_depltype,6u_nlassIndb_£tudent.,1u_telbindbstudcnt.stutelettpeS>"9AS10BEGIN
22、11UPDAIEdb_£tudent12SET13stu,5tu_手0)!嗎_5正乂.5tu_曰口0_dpu5tu_clv5s114jla/s*stu_te1&UHERErpgister_no=u_regi_nn:15EHDpupdstdinf;16/過程已包健&PERKV>圖39創(chuàng)建過程p_upd_std_inf存儲過程三:根據(jù)輸入的學(xué)號,查詢學(xué)生的考試成績該存儲過程存儲在staffuser模式下,stduser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程createorreplaceprocedurep_query_std_grade(v_reg_noindb_grade
23、.register_no%type,v_course_nooutdb_grade.course_no%type,v_course_nameoutdb_grade.course_name%type,v_gradeoutdb_grade.grade%type)asbeginselectcourse_no,course_name,gradeintov_course_no,v_course_name,v_gradefromdb_gradewhereregister_no=v_reg_no;endp_query_std_grade;PERKV>createorreplaceprocedurepqu
24、erijstdgradet2vregnoindbgrade-registernotype,3vcoursenooutdtj_grade.coursenotype,4ucourccnameoutdbgrade.coursnanp%type,5vgradeoutdbgrade-gradetype)6as7begin8selectcourseno,coursenamevgrade9intoucourse_no,u_cour5enane.ugrde1flfromdbgracla11whereregister_no=v_reg_no;12endp_querp_std_grade;13/-過程已創(chuàng)建。圖4
25、0創(chuàng)建過程p_query_std_grade存儲過程四:根據(jù)輸入的學(xué)號,插入或修改學(xué)生的考試成績該存儲過程存儲在staffuser模式下,teauser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程CREATEORREPLACEPROCEDUREp_ins_upd_tea_grade(v_reg_noindb_grade.register_no%type,v_course_noindb_grade.course_no%type,v_course_nameindb_grade.course_name%type,v_gradeindb_grade.grade%type)ASBEGINUPDATEdb_gradeS
26、ETgrade=v_grade,course_no=v_course_no,course_name=v_course_nameWHEREregister_no=v_reg_no;IFSQL%NOTFOUNDTHENINSERTINTOdb_grade(register_no,course_no,course_name,grade)VALUES(v_reg_no,v_course_no,v_course_name,v_grade);ENDIF;COMMIT;ENDp_ins_upd_tea_grade;/一一一一文件®編輯捶索)選項仍幫助如PERKV>CREATEORREPLAC
27、EPROCEDUREp_ins_upd_tea_grade(2 u_reg_ftoindb_gratle-rcgister_notype,3 ucoursenoIndbgrade.coursenootype,4 ucoursenaneindbgrade.coursenanetijpe,5 «_gradeindbgrade.grade%tipe)6 AS7 BEGIN8 UPDATEdb_grade9 SETgradp=v_grade,course_no=u_coursp_no,coursp_namc-u_coursp_naiie10VIHEREregister_no=u_reg_no
28、;11 IFSQLHOTFOUNDTHEN12 INSERTIHTOdb_grade(register_no,course_noTcourse_nanefgrde)13 UALUES(uregno,vcourseno,vcour&enane,vgrade);1UENDIF;15 COMMIT;16 ENDpinsupdteagradp;過程已創(chuàng)建.PERKY)圖41創(chuàng)建過程p_ins_upd_tea_grade存儲過程五:根據(jù)學(xué)生總成績進行排名-該存儲過程存儲在staffuser模式下,teauser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程CREATEORREPLACEPROCEDUREp_su
29、m_desc(cursor_gd_sumoutsys_refcursor)ASBEGINOPENcursor_gd_sumforSELECTDISTINCTsno,stu_name,sumFROMdb_student,(selectregister_noassno,sum(grade)assumFROMdb_gradeGROUPBYregister_no).WHEREregister_no=snoORDERBYSUMDESC;ENDp_sum_desc;/一一:PERK?CREATEORREPLACEPROCEDUREp_sun_desc(2 cursorqdsumoutsys_rpfcurs
30、or>3 AS4 BEGIN5 OPEHcursorgdsumfor6SELECTDISTINCTsno.stunane,su(nI7FROMdbstudent,(selectregister_noassno,sun)(grade)sum8FROMdbgradei9GROUPBYregisterno,ioJ-'11WHEREregister_no=sno12ORDERBYSUMDESC;13 ENDpsumdesc;14 /一一過程己創(chuàng)建PERKY一;*-像±n圖42創(chuàng)建過程p_sum_desc存儲過程六:統(tǒng)計不及格需補考的學(xué)生-該存儲過程存儲在staffuser模式下
31、,teauser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程CREATEORREPLACEPROCEDUREp_not_pass(cursor_not_passoutsys_refcursor)AS一一一BEGINOPENcursor_not_passFORSELECTregister_no,course_name,gradeFROMdb_gradeWHEREgrade<60;endp_not_pass;/i?ERKV>CREATEORREPLACEPROCEDUREp_not_pass("2cursor_not_passoutsysrefcursor)3AS!UBEGIN5OPENc
32、ursornotpassFORL6SELECTregisterno,course_nar»e.grade7 FROMdb_grade8 WHEREgrde<60;9 endp_not_pass;10 /:過程已創(chuàng)建。J:PERKYI21J圖43創(chuàng)建過程p_not_pass存儲過程七:所開課程成績分析-該存儲過程存儲在staffuser模式下,teauser用戶需經(jīng)授權(quán)才能執(zhí)行該存儲過程CREATEORREPLACEPROCEDUREp_fx(cursor_fxoutsys_refcursor)ASBEGINOPENcursor_fxFORSELECTcourse_no,MAX(
33、grade)ASzuigao,MIN(grade)ASzuidi,AVG(grade)ASpingjung,SUM(CASEWHENgrade>=60THEN1ELSE0END)/COUNT(*)*100ASjigelv,SUM(CASEWHENGRADE>=80THEN1ELSE0END)/COUNT(*)*100ASyouxiulvFROMdb_gradeGROUPBYcourse_no;endp_fx;/FERKV>CREifiTEORREPLACEPROCEDUREp_fx(2 cursioi-_fxoutcursor)3 AS4 BEGIN5 OPENcursorf
34、xFOR6 SELECTcDurseno於zuigao,111N(grade)ASzuidirAUG(grade)1pingjung,SUI1(CASEWHENgrade>-60THEN1ELSE0END)/COUHT(*)«100AS8SUM(iCASEWHENCRADE>=80THEN1ELSE&EHD)/C0UNT(*)»100ASyouxiulv9 FROMdb_grade10 GROUPBYcourse_no;11 endp_Fx;12 /.過程已倉惟.:PERK¥>|":::.:.圖44創(chuàng)建過程p_fx2.3.4.2
35、在staffuser用戶下創(chuàng)建該函數(shù)函數(shù)一:查詢某學(xué)號、某課程的學(xué)生成績CREATEORREPLACEFUNCTIONFun_query_std_gra(v_reg_nodb_grade.Register_no%type,v_cnovarchar2)RETURNnumberISv_std_c_gradenumber;bEGiN-selectgradeintov_std_c_gradefromdb_gradewhereRegister_no=v_reg_noandcourse_no=v_cno;RETURNv_std_c_grade;EXCEPTION一一whenno_data_foundthe
36、nreturn999;ENDFun_query_std_gra;PERK?>CREfiTEORREPLACEFUNCTIONFun_query_std_gra(2 regnodbgrade.Begisternotype,3 ucnovarchar2)“RETURNnumberSIS6 u_std_c_gradenumber;7 BEGIN8 selectgradeintou_std_c_grade9 Fromdb_grade10 whereRegister_no=v_regLnoand11 RETURNu_std_cjrade;12 EXCEPTION13 whenno_data_fou
37、ndthenreturn14 ENDFun_query_std_gra;15 /函數(shù)已創(chuàng)建。2JJJcourse_no=u_cno;999;T二;1j圖45創(chuàng)建過程p_query_std_grade數(shù)據(jù)庫連接界面的代碼實現(xiàn)publicvoidtestOracle()(Connectioncon=null;/創(chuàng)建一個數(shù)據(jù)庫連接PreparedStatementpre=null;/創(chuàng)建預(yù)編譯語句對象,一般都是用這個而不用StatementResultSetresult=null;/創(chuàng)建一個結(jié)果集對象try(Class.forName("oracle.jdbc.driver.OracleD
38、river");/加載Oracle驅(qū)動System.out.println("開始嘗試連接數(shù)據(jù)庫!");Stringurl="jdbc:oracle:"+"thin:192.168.252.131:Grade"192.168.252.131是本機地址,Grade是Oracle的數(shù)據(jù)庫名Stringuser="system"/用戶名,系統(tǒng)默認(rèn)的賬戶名Stringpassword="system"/安裝時選設(shè)置的密碼con=DriverManager.getConnection(url,u
39、ser,password);獲取連接System.out.println("連接成功!");Stringsql="select*fromdb_studentwherename=?"/預(yù)編譯語句,”代表參數(shù)一pre=con.prepareStatement(sql);/實例化預(yù)編譯語句pre.setString(1,"劉顯安)/設(shè)置參數(shù),前面的1表示參數(shù)的索引,而不是表不列名的索引result=pre.executeQuery();/執(zhí)行查詢,注意括號中不需要再加參數(shù)while(result.next()/當(dāng)結(jié)果集不為空時System.out.p
40、rintln("學(xué)號:"+result.getInt("id")+"姓名:"+result.getString("name");)catch(Exceptione)e.printStackTrace();)finallytry/逐一將上面的幾個對象關(guān)閉,因為不關(guān)閉的話會影響性能、并且占用資源/注意關(guān)閉的順序,最后使用的最先關(guān)閉if(result!=null)result.close();if(pre!=null)pre.close();if(con!=null)con.close();System.out.prin
41、tln("數(shù)據(jù)庫連接已關(guān)閉!");)catch(Exceptione)e.printStackTrace();)數(shù)據(jù)庫的安全措施的規(guī)劃,包括不同用戶的權(quán)限及具體管理。表8用戶口令、權(quán)限及角色初步分配用戶名口令授予的角色授予的系統(tǒng)權(quán)限staffuserstaffuser123connect;resoursecreatefunction;createview;createpackage;droptable;altertableteauserteauserconnect;resoursecreateview;createsynonymstduserstduserconnect;r
42、esoursecreateview;createsynonym3.數(shù)據(jù)庫優(yōu)化數(shù)據(jù)庫創(chuàng)建完成后,用PowerDesigner模擬生成10萬條數(shù)據(jù)插入到相應(yīng)的表中,并分析如何規(guī)劃該數(shù)據(jù)庫的物理存儲結(jié)構(gòu)并采用何種措施才能提高系統(tǒng)的數(shù)據(jù)處理效率。詳細分析。1,配置數(shù)據(jù)庫初始化參數(shù)在新建一數(shù)據(jù)庫時,如果不配置這些初始化參數(shù),Oracle會給這些參數(shù)以默認(rèn)值。當(dāng)數(shù)據(jù)庫規(guī)模不大時,采用Oracle的默認(rèn)值通常不會遇到性能問題。下面介紹對處理大量數(shù)據(jù)效率有“舉足輕重”影響,并且,默認(rèn)值會帶來性能問題的幾個參數(shù):1) db_block_size該參戒設(shè)置了Oracle進行一次I/O的基本單位一一數(shù)據(jù)庫塊的大小(
43、以字節(jié)計)。毫不夸張的說,該參數(shù)對于大數(shù)據(jù)量處理是最重要的一個參數(shù)。該參數(shù)值設(shè)置的越大,對大數(shù)據(jù)量處理越有利。受操作系統(tǒng)所限,NT41大只能設(shè)置為8K,Win2k最大只能設(shè)置為16K。Oracle本身允許的最大值是64K。對于分析型數(shù)據(jù)庫,就比如本系統(tǒng),設(shè)置為32K不錯的選擇。db_block_size是最基本的一個參數(shù),也是最容易被忽視的一個參數(shù)。該參數(shù)只能在加建數(shù)據(jù)庫時設(shè)置,此后不能更改;一旦有所失誤,只能通過重建數(shù)據(jù)庫的方法補救。建庫時應(yīng)當(dāng)慎重考慮該參數(shù)。2) db_file_multiblock_read_countOracle官方的說明:石涉及一個完全連續(xù)掃描的一次I/O操作過程中讀
44、取的塊的最大數(shù)量。對于大的查詢來說,進行全表掃描往往比使用索引效率高很多。全表掃描操作是典型的“完全連續(xù)掃描”。如果db_block_size設(shè)置為32K,db_file_multiblock_read_count設(shè)置為8;則一次I/O操作最多可以連續(xù)讀8個數(shù)而塊,即256K。db_file_multiblock_read_count并非越大越好。對于數(shù)據(jù)分析系統(tǒng),db_file_multiblock_read_count和db_block_size的乘積為256Kl夠了。一五數(shù)據(jù)連續(xù)辦布匯物理磁盤上比考飛該參藪更加有效。3) sort_area_sizesort_area_size的重要性可
45、以說是和db_block_size并列的。該參數(shù)指出數(shù)據(jù)而行二個查詢時最多可以使用多大內(nèi)不來排后。受系統(tǒng)資源所限,我們無法將該參數(shù)設(shè)置太大。特別是當(dāng)我們采用獨立模式建庫時,每個Session都可能會申請一個或多個排序空間。如果我們設(shè)置sort_area_size為8M同時登上來100個用戶并發(fā)查詢,則可能會占去800M至B多。當(dāng)主存不夠用時,就要用虛擬內(nèi)存了。如果Oracle被迫使用虛擬內(nèi)存,則數(shù)據(jù)庫的性能將急劇下降。對于該參數(shù)的設(shè)置,網(wǎng)上有人建議至少應(yīng)超過用于排序記錄數(shù)的平方根。也就是說,對100萬條記錄進行排序,每條記錄占用1Ka間,則sort_area_size至少應(yīng)設(shè)置為1ML對1000萬條記錄進行排序,每條記錄占用1Ks問,sort_area_size設(shè)置為4ME該夠用了。數(shù)據(jù)分析系統(tǒng)的sort_area_size不妨設(shè)置為4M£8M2.編寫高效的SQL一般說來,看起來簡單的SQLS常都不會遇到性能問題。SQL勺執(zhí)行
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
- 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
- 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
- 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 二零二五版新型幕墻材料研發(fā)與推廣應(yīng)用合同4篇
- 2025年度新型建筑用搭設(shè)鋼管腳手架施工合同范本4篇
- 2025年全球森林資源評估報告
- 2025年有機復(fù)料項目可行性研究報告
- 二零二五年度水利工程建設(shè)項目施工合同樣本4篇
- 2025年中國汽車制動軟管行業(yè)全景評估及投資規(guī)劃建議報告
- 二零二五年度城市綜合體物業(yè)使用權(quán)及增值服務(wù)合同3篇
- 2025年發(fā)動機機油泵行業(yè)深度研究分析報告
- 2025年中國羅紅霉素市場前景預(yù)測及投資規(guī)劃研究報告
- 2025年度圖書租賃門店承包管理服務(wù)協(xié)議4篇
- 2024生態(tài)環(huán)境相關(guān)法律法規(guī)考試試題
- 有砟軌道施工工藝課件
- 兩辦意見八硬措施煤礦安全生產(chǎn)條例宣貫學(xué)習(xí)課件
- 40篇短文搞定高中英語3500單詞
- 人教版高中數(shù)學(xué)必修二《第九章 統(tǒng)計》同步練習(xí)及答案解析
- 兒科護理安全警示教育課件
- 三年級下冊口算天天100題
- 國家中英文名稱及代碼縮寫(三位)
- 人員密集場所消防安全培訓(xùn)
- 液晶高壓芯片去保護方法
- 拜太歲科儀文檔
評論
0/150
提交評論