數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)_第1頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)_第2頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)_第3頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)_第4頁
數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)_第5頁
已閱讀5頁,還剩33頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

黑龍江大“數(shù)據(jù)庫系統(tǒng)原理課程設(shè)計(jì)”總結(jié)報學(xué)計(jì)算機(jī)科學(xué)技術(shù)學(xué)年專計(jì)算機(jī)科學(xué)與技學(xué)報告日成開發(fā)環(huán)開發(fā)平臺:Windows開發(fā)工具:codeBlocksDBMS系統(tǒng)構(gòu)屬用陸視索DBMS主要功能模SQL語言的詞法和語法分功能介否符合規(guī)范:CreateDropAlterCreateDrop如果不是則輸出輸入格式不對算法描charconstchar*d1="();";chars[200];intpp=0;p=strtok(s,d1);{elseif(strcmp(p,"INDEX")==0)}elseif(strcmp(p,"INSERT")==0)ch='2';elseif(strcmp(p,"DELETE")==0)ch='3';elseif(strcmp(p,"UPDATE")==0)ch='4';elseif(strcmp(p,"SELECT")==0)ch='5';elseif(strcmp(p,"GRANT")==0)ch='g';elseif(strcmp(p,"REVOKE")==0)ch='r';elseif(strcmp(p,"ALTER")==0){}else{elseif(strcmp(p,"INDEX")==0)}{{}{boolfor(inti=0;i<4;{if(strcmp(p,KEY[i])==0)}{charK[100];}}} N判斷字符串 N判斷字符串Y(5)測試用例與實(shí)驗(yàn)結(jié)創(chuàng)建數(shù)據(jù)庫及數(shù)據(jù)操作功功能介相關(guān)理數(shù)據(jù)庫管理系統(tǒng)是一種和管理數(shù)據(jù)庫的大型軟件用于建立使用和dbms性和完整性用戶通過dbms數(shù)據(jù)庫中的數(shù)據(jù)數(shù)據(jù)庫管理員也通過dbms行數(shù)據(jù)庫的工作它可使多個應(yīng)用程序和用戶用不同的方法在同時或不同DBMS算法描建立表void{FILE*fp;FILE*fp1;charname[20];charBname[30];{}FILE*fp2;chara[100];{if(strcmp(a,"\n")==0)continue;constchar*d="";char*p;chars[100];p=strtok(a,d);{}}}插入元組voidAdd_Note(){FILE*fp1;fp1=fopen("Input.txt","r");charfindname[20];//表名;fscanf(fp1,"%s",findname);strcat(findname,".txt");FILE*fp2;fp2=fopen(findname,"a+");chara[100];while(fscanf(fp1,"%s",a)!=EOF){fprintf(fp2,"%15s",a);}fprintf(fp2,"\n");fclose(fp1);fclose(fp2);cout<<"添加記錄成功!"<<endl;}實(shí)現(xiàn)刪除元組void{charsx[30];FILE*fp1;charname[20];//表名;boolf;chara[100][100];if(!f)return;intFILE*fp;char*p;chars[100];constchar*d=",\n";p=strtok(s,d);intw=0,t=0;{{}}intintLen=0;//表長;{}for(intk=0;k<=Len;k++){p=strtok(s,d);intC=0;{{}}}}實(shí)現(xiàn)修改數(shù)據(jù)庫記錄的功能void{charsx[30];charvalue[30];charsx1[30];charvalue1[30];FILE*fp1;charname[20];charss[100];constchar*d1="=";char*p;//p=strtok(ss,d1);p=strtok(ss,d1);//p=strtok(ss,d1);//WHERE//p=strtok(ss,d1);boolf;if(!f)return;intFILE*fp;charchars[100];constchar*d=",\n";p=strtok(s,d);intw=-1,t=0,h=-1;cout<<sx<<""<<sx1<<endl;{{}}int{}intLen=0;{}for(intk=1;k<=Len;{p=strtok(s,d);intC=0;{{}}{char*q;intM=0;q=strtok(s,d);{}}}}實(shí)現(xiàn)在已有的關(guān)系中添加屬性的功能void{charsx[30];FILE*fp1;charname[20];//表名;boolf;if(!f)return;intchara[100][100];intj=1,w=0;FILE*fp;char*p;chars[100];constchar*d="";p=strtok(s,d);{{}}intLen=1;//表長;{}for(intk=0;k<Len;k++){{}{char}p=strtok(s,d);{}}}實(shí)現(xiàn)從已有的關(guān)系中刪除屬性的功能void{charsx[30];FILE*fp1;charname[20];//表名;boolf;chara[100][100];if(!f)return;intFILEchar*p;chars[100];constchar*d=",\n";p=strtok(s,d);intw=0,t=0;{{}}intintLen=0;//表長;{}for(intk=0;k<=Len;k++){p=strtok(s,d);intC=0;{{}}}}程序流程建立相應(yīng)的語句合語句合Y 參數(shù)合參數(shù)合NY實(shí)現(xiàn)輸入數(shù)據(jù)庫記錄的功N語句合YNY實(shí)現(xiàn)刪除數(shù)據(jù)庫記錄的功NN語句合Y實(shí)現(xiàn)修改數(shù)據(jù)庫記錄的功尋找符合修改條實(shí)現(xiàn)在已有的關(guān)系中添加屬性的功實(shí)現(xiàn)從已有的關(guān)系中刪除屬性的功N判斷屬性存N判斷屬性存Y 測試用例與實(shí)驗(yàn)結(jié)索引的創(chuàng)建及刪功能介createindexINDEX_NAMEondropindex相關(guān)理索使用索引可快速數(shù)據(jù)庫表中的特定信息索引是對數(shù)據(jù)庫表中一列或多列的值進(jìn)行排序索引提供指向在表的指定列中的數(shù)據(jù)值的指針然后根據(jù)您指定的排序順序?qū)@些指針唯一索employee表中職員的姓(lname)上創(chuàng)建了唯一索引,則任何兩個員工都不能同姓。主鍵索索引要求主鍵中的每個值都唯一當(dāng)在查詢中使用主鍵索引時它還允許對數(shù)據(jù)的快速索索 索算法描void{FILE*fp1,*fp2;charname[20];//索引名;charcopyname[50];chartable_name[50],tname[50],shuxing[50][50];inti=0;boolf;{}{}charintnum=find_num(tname,shuxing[0]);{}charconstchar*d=",\n";intt=0,j=0;{pstrtok(s,d);//分隔字符串{{}}}{}}(5)測試用例與實(shí)驗(yàn)結(jié)4詢功功能介SELECT語句用于從表中選取數(shù)據(jù)。結(jié)果被在一個結(jié)果表中相關(guān)理積的實(shí)現(xiàn)算法算法定義如FORRrDOFORSsDO連接操作的實(shí)現(xiàn)算法SQLRSSELECTR.*,S.*WHERER.AOO設(shè)M<=Br,M<=Bs,Bs<=Br,在這種情況下,將S分為Bs/(M-1)個子集合,每個子集合M-1SBM-1S的主存緩沖區(qū),RBR的主存緩沖算法如下FORi=1TOBs/(M-1)SiSB;FORj=1TOBrDOR的第jRB;FORRBrDOFORSBsIFr.AOs.B THEN(rs)存入結(jié)果關(guān)系;ENDIF;Br(Bs/(M-1))+Bs+BOBoRSO連接結(jié)果的塊數(shù)。連接操作實(shí)現(xiàn)算法輸入:關(guān)系R(A1,A2,…,An),S(B1,B2,…,Bn),連接條件輸出:R與ST。FORtRDOFORsSDOIFt[Ai]=S[Bj] THEN(ts)T;ENDIF;投影操作的實(shí)現(xiàn)算法IIA1,A2,…,Ak(R)R上的投影操作。輸入:具有n輸出:RT=IIA1,A2,…,Ak(R)。FORRrDO {A1,A2,…,Ak}中包含R的鍵屬性 排序TMP;i=1;j=2;WHILE TMP(i)WHILE DOj=j+1;集合的并/交/差的實(shí)現(xiàn)算法并操作輸入:關(guān)系RS,Rn個元組,Sm個元組,KRS的鍵。輸出:T=RS。方法KRSI:=1;j:=1;WHILE(i<=n)AND(j<=m) R(i)[K]>S(j)[K] THENS(j)T;j:=j+1;IFR(i)[K]<S(j)[K]THENR(i)ELSER(i)T;i:=i+1;j:=j+1;IFi<=nTHENFORk=ITOnDOR(k)T;ENDIF;IFj<=mTHENFORk=jTOmDOS(k)T;ENDIF;O(BrLogm(Br)BsLogm(Bs)BrBsBr)Br是結(jié)果T的交操作輸入:關(guān)系RS,Rn個元組,Sm個元組,KRS的鍵。輸出:T=RS。方法KRSI:=1;j:=1;WHILE(i<=n)AND(j<=m) R(i)[K]>S(j)[K] THENj=j+1;IFR(i)[K]<S(j)[K]THENELSER(i)T;i:=i+1;j:=j+1;O(BrLogm(Br)BsLogm(Bs)BrBsBr)Br是結(jié)果T的差操作輸入:關(guān)系RS,Rn個元組,Sm個元組,KRS的鍵。方法KRSI:=1;j:=1;WHILE(i<=n)AND(j<=m) R(i)[K]>S(j)[K] THENj=j+1;IFR(i)[K]<S(j)[K]THENR(i)Ti:=i+1;ELSEi:=i+1;j:=j+1;O(BrLogm(Br)BsLogm(Bs)BrBsBr)Br是結(jié)果T的算法描選擇的實(shí)現(xiàn)算voidChoose(TableT,charshuxing[],charvalue[],charrela[],Table{FILE*fp;boolflag=0;charindex_name[50],a[50],index_shuxing[50];{}}{charb[50];intii;{{table_index[ii].lennum=atoi(b);}else}intindex_length=ii;intCount=0;ii=table_index[ii].lennum-1;for(int{}for(int{}intSsum=0;for(int{if(strcmp(T.table_inf[k].yuanzu[0],value)==0)break;}cout<<endl<<endl<<"不利用索引查詢時間為"<<Ssum<<"} 處理{intloc=-1,i;{}{}intk=0;{{for(int{}}}}連接操作的實(shí)現(xiàn)voidLink(TableT3,charshuxing1[],charshuxing2[],Table&res,char{intintloc1=-1;//T1的屬性位置;intloc2=-1;//T2的屬性位置;intk=0; //res的長度;{{}{}}{}{{for(int{}}}投影操作的實(shí)現(xiàn){{voidShadow(charshuxing[][100],TableT,intl,Table{intflag[NN];intk=0;inti=0,sum=0;{for(int{{}}}{}{for(int{{}}}}集合的并/交的實(shí)現(xiàn)算voidUnion(TableT1,TableT2,Table&T3,charboolflag=1;intsum;int for(inti=0;i<T1.len;i++){for(int{for(int{}}for(int{for(int{for(int{{}}}{for(int{}elsefor(int{}}}測試用例與實(shí)驗(yàn)結(jié)實(shí)現(xiàn)全關(guān)系選擇操作(select*from關(guān)系名測試數(shù)據(jù)SELECT*FROM結(jié)果截圖實(shí)現(xiàn)單關(guān)系的投影操作。測試數(shù)據(jù)SELECTSNAMEFROM結(jié)果截圖實(shí)現(xiàn)單關(guān)系的選擇操作(允許多條件測試數(shù)據(jù)SELECT*FROMSWHERE結(jié)果截圖實(shí)現(xiàn)單關(guān)系的選擇和投影操作(允許多條件。(見下)實(shí)現(xiàn)兩個關(guān)系和多個關(guān)系的連接操作(實(shí)現(xiàn)兩個關(guān)系和多個關(guān)系的選擇和連接操作。測試數(shù)據(jù)SELECT*FROMS,CWHEREC.C#=S.SNAMEAND結(jié)果截圖實(shí)現(xiàn)多個關(guān)系的選擇、投影和連接操作。測試數(shù)據(jù)SELECTSNAME,SEX,THACHER,AGEFROMS,CWHEREC.C#=S.SNAMEAND結(jié)果截圖3.5詢優(yōu)功能介通過改變連接、投影、積的次序以及索引來實(shí)現(xiàn)優(yōu)化查詢相關(guān)理1,合理使用索引2,避免或簡化排3,消除對大型表行數(shù)據(jù)的順序存4,避免相關(guān)子查5,避免的正則表達(dá)6,使用臨時表加速查7,用排序來取代非順序存算法描voidChoose(TableT,charshuxing[],charvalue[],charrela[],Table {FILE*

溫馨提示

  • 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)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論