數(shù)據(jù)庫課程設(shè)計(jì)-銷售模塊_第1頁
數(shù)據(jù)庫課程設(shè)計(jì)-銷售模塊_第2頁
數(shù)據(jù)庫課程設(shè)計(jì)-銷售模塊_第3頁
數(shù)據(jù)庫課程設(shè)計(jì)-銷售模塊_第4頁
數(shù)據(jù)庫課程設(shè)計(jì)-銷售模塊_第5頁
已閱讀5頁,還剩30頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

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

文檔簡介

1、精品文檔哈爾濱理工大學(xué)數(shù)據(jù)庫課程設(shè)計(jì)報(bào)告班 級(jí): 信息11- 學(xué) 號(hào): 1106040 姓 名: 指導(dǎo)教師: 2021.10歡迎下載精品文檔目錄1.功能模塊簡介21.1、進(jìn)入安裝程序21.2安裝的準(zhǔn)備過程21.3功能選擇與配置42.數(shù)據(jù)庫表分析132.1表1133.業(yè)務(wù)問題及SQL語句154.關(guān)系模式分析214.1關(guān)系模式1214.2關(guān)系模式2224.3關(guān)系模式3235.表在功能模塊中的應(yīng)用305.1功能應(yīng)用1305.2功能應(yīng)用2315.3功能應(yīng)用315.4功能應(yīng)用4325.5功能應(yīng)用5325.6功能應(yīng)用6336.總結(jié)331.功能模塊簡介1.1、進(jìn)入安裝程序插入SQL Server 2021

2、R2安裝光盤,自動(dòng)運(yùn)行后出現(xiàn)“SQL Server安裝中心。在這里我們在本機(jī)安裝一個(gè)SQL Server默認(rèn)實(shí)例,所以執(zhí)行以下步驟:1、在左側(cè)的目錄樹中選擇“安裝。2、在右側(cè)的選擇項(xiàng)中,選擇第1工程“全新安裝或向現(xiàn)有安裝添加功能,然后就進(jìn)入了安裝程序。方法/步驟 1.2安裝的準(zhǔn)備過程1、安裝程序支持規(guī)那么在這個(gè)準(zhǔn)備過程里,首先安裝程序要掃描本機(jī)的一些信息,用來確定在安裝過程中不會(huì)出現(xiàn)異常。如果在掃描中發(fā)現(xiàn)了一些問題,那么必須在修復(fù)這些問題之后才可能重新運(yùn)行安裝程序進(jìn)行安裝。安裝過程中,如果出現(xiàn)不能重啟計(jì)算機(jī)這一項(xiàng)不能通過,那么需要?jiǎng)h除一個(gè)注冊表項(xiàng)。刪除注冊表中HKEY_LOCAL_MACHIN

3、ESYSTEMControlSet001ControlSession Manager下PendingFileRenameOperations子鍵。文件掛起操作的錯(cuò)誤搞定,可以繼續(xù)下一步,輸入產(chǎn)口密鑰,許可條款,安裝程序支持文件21.3功能選擇與配置接下來,才是正式安裝SQL Server程序。1、安裝程序支持規(guī)那么這個(gè)步驟看起來跟剛剛在準(zhǔn)備過程中的一樣,都是掃描本機(jī),防止在安裝過程中出現(xiàn)異?!,F(xiàn)在并不是在重復(fù)剛剛的步驟,從下列圖明顯看出這次掃描的精度更細(xì),掃描的內(nèi)容也更多。在這個(gè)步驟中,一定不要忽略“Windows防火墻這個(gè)警告,因?yàn)槿绻赪indows2021操作系統(tǒng)中安裝SQL Serve

4、r,操作系統(tǒng)不會(huì)在防火墻自動(dòng)翻開TCP1433這個(gè)端口。將在后面的文章中提到這個(gè)問題。32、設(shè)置角色這里有3個(gè)選項(xiàng)可供選擇。我們選擇“SQL Server功能安裝。43、功能選擇在這里,我們點(diǎn)一下“全選按鈕,會(huì)發(fā)現(xiàn)左邊的目錄樹多了幾個(gè)工程:在“安裝規(guī)那么后面多了一個(gè)“實(shí)例配置,在“磁盤空間要求后面多了“效勞器配置、“數(shù)據(jù)庫引擎配置、“Analysis Services配置和“Reporting Services配置。如果只做為普通數(shù)據(jù)引擎使用,我常常是只勾選:“數(shù)據(jù)庫引擎效勞和“管理工具-根本54、安裝規(guī)那么在這里又要掃描一次本機(jī),掃描的內(nèi)容跟上一次又不同。5、實(shí)例配置我們這里安裝一個(gè)默認(rèn)實(shí)例

5、。系統(tǒng)自動(dòng)將這個(gè)實(shí)例命名為:MSSQLSERVER 。6、磁盤空間要求從這里可以看到,安裝SQL Server的全部功能需要5485MB的磁盤空間。67、效勞器配置在這里,首先要配置效勞器的效勞帳戶,也就是讓操作系統(tǒng)用哪個(gè)帳戶啟動(dòng)相應(yīng)的效勞。 為了省事,我們選擇“對(duì)所有SQL Server效勞使用相同的帳戶。也可以選擇,NT AUTHORITYSYSTEM,用最高權(quán)限來運(yùn)行效勞。接著,還要設(shè)備排序規(guī)那么,默認(rèn)是不區(qū)分大小寫的按你的要求自行調(diào)整。 78、數(shù)據(jù)庫引擎配置數(shù)據(jù)庫引擎的設(shè)置主要有3項(xiàng)。 帳戶設(shè)置中,一般MSSQLSERVER都做為網(wǎng)絡(luò)效勞器存在,為了方便,都使用混合身份驗(yàn)證,設(shè)置自己的

6、用戶密碼。然后添加一個(gè)本地帳戶方便管理即可。目錄和FILESTREAM沒有必要修改。對(duì)是數(shù)據(jù)目錄,我是這樣理解的,我習(xí)慣將軟件都裝在系統(tǒng)盤。在使用SQLSERVER時(shí),數(shù)據(jù)庫文件都放在其他盤,然后附加數(shù)據(jù),這樣不會(huì)混亂自己的數(shù)據(jù)庫和系統(tǒng)的數(shù)據(jù)庫。畢竟數(shù)據(jù)平安是第一。8后面的過程比擬簡單,一路下一步然后是等待安裝完成即可。在軟件工程實(shí)施的時(shí)候,數(shù)據(jù)導(dǎo)入一直是工程人員比擬頭疼的問題。如要把產(chǎn)品信息從現(xiàn)有的進(jìn)銷存管理系統(tǒng)中導(dǎo)入到ERP系統(tǒng)中,卻讓企業(yè)用戶手工的輸入這些信息,不怎么現(xiàn)實(shí)。其實(shí),在SQL Server中本來就集成了很多成批導(dǎo)入數(shù)據(jù)的方法。有些工程實(shí)施參謀頭疼的問題,在我們數(shù)據(jù)庫管理員眼中

7、,是小菜一碟?,F(xiàn)在的重點(diǎn)就是,如何讓用戶了解這些方法,讓數(shù)據(jù)導(dǎo)入變得輕松一些。第一種方法:使用Select Into語句假設(shè)企業(yè)數(shù)據(jù)庫都采用的是SQL Server數(shù)據(jù)庫的話,那么可以利用Select Into語句來實(shí)現(xiàn)數(shù)據(jù)的導(dǎo)入。Select Into語句,他的作用就是把數(shù)據(jù)從另外一個(gè)數(shù)據(jù)庫中查詢出來,然后參加到某個(gè)用戶指定的表中。在使用這條語句的時(shí)候,需要注意幾個(gè)方面的內(nèi)容。一是需要在目的數(shù)據(jù)庫中先建立相關(guān)的表。如想把進(jìn)銷存系統(tǒng)數(shù)據(jù)庫(SQLServer)中的產(chǎn)品信息表(Product)導(dǎo)入到ERP系統(tǒng)中的產(chǎn)品信息表(M_Product)中。那么前期是在ERP系統(tǒng)的數(shù)據(jù)庫中已經(jīng)建立了這張產(chǎn)

8、品信息表。二是這種方法只復(fù)制表中的數(shù)據(jù),而不復(fù)制表中的索引。如在進(jìn)銷存系統(tǒng)數(shù)據(jù)中的產(chǎn)品信息表中,在產(chǎn)品編號(hào)、產(chǎn)品種類等字段上建立了索引。那么利用Select Into語句把數(shù)據(jù)復(fù)制到ERP系統(tǒng)的表中的時(shí)候,只是復(fù)制了數(shù)據(jù)內(nèi)容的本身,而不會(huì)復(fù)制索引等信息。三是這條語句使用具有局限性。一般情況下,這只能夠在SQL Server數(shù)據(jù)庫中采用。不過,對(duì)于SQL Server不同版本的數(shù)據(jù)庫,如2021或者2003,還都是兼容的。假設(shè)需要導(dǎo)入的對(duì)象數(shù)據(jù)庫不是SQL Server的,那么需要采用其他的方法。四是采用這條語句的話,在目的表中必須不存在數(shù)據(jù)。否那么的話,目的表中的數(shù)據(jù)會(huì)被去除。也就是說,這個(gè)語

9、句不支持表與表數(shù)據(jù)的合并。在SQL Server中,有一條類似的語句,可以實(shí)現(xiàn)這個(gè)功能。這條語句就是:Insert Into。他的作用就是把另外一張表中的數(shù)據(jù)插入到當(dāng)前表中。假設(shè)用戶想要的時(shí)表與表數(shù)據(jù)的合并,那么可以采用這條語句。兩者不能夠混淆使用,否那么的話,很容易導(dǎo)致數(shù)據(jù)的喪失。五是以上兩條語句都支持兼容的不同類型的數(shù)據(jù)類型。如在原標(biāo)中,某個(gè)字段的數(shù)據(jù)類型是整數(shù)型,但是在目的表中這個(gè)字段的數(shù)據(jù)類型那么是浮點(diǎn)型,只要這個(gè)兩個(gè)數(shù)據(jù)類型本來就兼容的,那么在導(dǎo)入的時(shí)候,數(shù)據(jù)庫是允許的。第二種方法:利用Excel等中間工具進(jìn)行控制雖然第一種方法操作起來比擬簡單,但是其也有一些缺點(diǎn)。如他只支持同一種類

10、型的數(shù)據(jù)庫;不能夠?qū)?shù)據(jù)進(jìn)行過多的干預(yù)等等。一般情況下,假設(shè)用戶原數(shù)據(jù)準(zhǔn)確度比擬高,不需要過多的修改就可以直接拿來用的話,那么筆者就已采用第一種方式。但是,假設(shè)在原數(shù)據(jù)庫中,數(shù)據(jù)的準(zhǔn)確度不是很高,又或者,有很多數(shù)據(jù)是報(bào)廢的??傊?,需要對(duì)原數(shù)據(jù)庫的數(shù)據(jù)進(jìn)行整理,才能夠使用的情況,筆者不建議先導(dǎo)入進(jìn)去,再進(jìn)行更改。筆者在遇到這種情況時(shí),喜歡利用Excle作為中間工具。也就是說,先把數(shù)據(jù)中原數(shù)據(jù)庫中導(dǎo)到Excle中。有些數(shù)據(jù)庫,如Oracle數(shù)據(jù)庫,他不支持Excle格式。但是,我們可以把它導(dǎo)為CSV格式的文件。這種文件Excle也可以打得開。然后,再在Excle中,對(duì)記錄進(jìn)行修改。由于Excle是

11、一個(gè)很強(qiáng)的表格處理軟件,所以,其數(shù)據(jù)修改,要比在數(shù)據(jù)庫中直接修改來得方便,來得簡單。如可以利用按時(shí)間排序等功能,把一些長久不用的記錄清楚掉。也可以利用替換等功能,把一些不標(biāo)準(zhǔn)的字符更改掉。這些原來在數(shù)據(jù)庫中比擬復(fù)雜的任務(wù),在Excle等工具中都可以輕松的完成。等到表中的內(nèi)容修改無誤后,數(shù)據(jù)庫管理員就可以把Excle表格中的文件直接導(dǎo)入到SQL Server數(shù)據(jù)庫中。由于SQL Server與Excel是同一個(gè)父母生的,所以,他們之間的兼容性很好。在Sql Server中提供了直接從Excel文件中導(dǎo)入數(shù)據(jù)的工具。雖然這要借助中間工具導(dǎo)入數(shù)據(jù),但是,因?yàn)槠涮幚砥饋矸奖?、直觀,所以,筆者在大局部時(shí)

12、候都是采用這種方式。第三種方式:使用數(shù)據(jù)轉(zhuǎn)換效勞導(dǎo)入數(shù)據(jù)數(shù)據(jù)轉(zhuǎn)換效勞是SQL Server數(shù)據(jù)庫中提供的一個(gè)非常強(qiáng)大的工具。在SQLServer中,數(shù)據(jù)轉(zhuǎn)換功能有一個(gè)圖形用戶接口,用戶可以在圖形界面中導(dǎo)入數(shù)據(jù),并對(duì)數(shù)據(jù)進(jìn)行相應(yīng)的編輯。另外,數(shù)據(jù)轉(zhuǎn)換效勞還支持COM組件的編程接口。這也就是說,在前臺(tái)應(yīng)用程序開發(fā)的時(shí)候,可以直接調(diào)用數(shù)據(jù)轉(zhuǎn)換效勞。讓用戶通過前臺(tái)應(yīng)用系統(tǒng),而不用在后臺(tái)數(shù)據(jù)庫系統(tǒng)進(jìn)行任何的操作,就可以把數(shù)據(jù)導(dǎo)入數(shù)據(jù)庫系統(tǒng)中去。在前臺(tái)對(duì)數(shù)據(jù)庫系統(tǒng)進(jìn)行導(dǎo)入,有一個(gè)明顯的好處,就可以預(yù)先對(duì)數(shù)據(jù)的合法性進(jìn)行檢查。如可以利用VB等2.數(shù)據(jù)庫表分析2.1表1調(diào)用ERP數(shù)據(jù)庫操作步驟參考步驟一:翻開

13、數(shù)據(jù)庫步驟二:找到帳套對(duì)應(yīng)的數(shù)據(jù)庫,這里是U8_300_Zhangtao;(不同的帳套數(shù)據(jù)庫名不一樣。)步驟三:這里是用友軟件中各個(gè)模塊對(duì)應(yīng)的表在數(shù)據(jù)庫存放時(shí)的名稱。步驟四:利用上面給出的表名,查詢需要的表。3.業(yè)務(wù)問題及SQL語句SQL查詢語句的設(shè)計(jì):SnoSnameSsexSageSdept01張三男21IS02李四男22CS03李紅女19MA04王瑞女20ISSnoCnoGrade0119001399012900329703398CnoCnameCpnoCcredit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語言64CnoCnameCpnoC

14、credit1數(shù)據(jù)庫542數(shù)學(xué)23信息系統(tǒng)144操作系統(tǒng)635數(shù)據(jù)結(jié)構(gòu)746數(shù)據(jù)處理27PASCAL語言641. 查詢每一門課的間接先修課SELECT FIRST.Cno,SECOND.CpnoFROM Course FIRST,Course SECONDWHERE FIRST.Cpno=SECOND.Cno;2. 自然連接Student表和SC表SELECT Student.Sno,Sname,Ssex,Sage,Sdept,Cno,GradeFROM Student,SCWHERE Student,Sno=SC.Sno;3. 查詢在IS學(xué)習(xí)的同學(xué)SELECT Sno,Sname,Sdept

15、FROM Student WHERE Sdept=IS;4. 確定李紅所在的系SELECT SdeptFROM StudentWHERE Sdept=IS;5. 查詢選修2號(hào)課在90分以上的同學(xué)SELECT Student,Sno,SnameFROM Student,SCWHERE Student.Sno=SC.Sno AND SC.Cno=2AND SC.Grade>=90;6. 查詢選修了3號(hào)課程的學(xué)生成績,并按降序排列SELECT Sno,GradeFROM SC WHERE Cno=3ORDER BY Grade DESC;7. 查詢CS系年齡在20歲以下的學(xué)生SELECT Sn

16、ameFROM StudentWHERE Sdept=CSAND Sage<20;8. 查詢01號(hào)學(xué)生的具體情況SELECT *FROM Student WHERE Sno LIKE 01;9. 查詢所有姓李學(xué)生的姓名,學(xué)號(hào),和性別SELECT Sname,Sno,SsexFROM StudentWHERE Sname LIKE李;10. 查詢比IS系所有學(xué)生年齡都小的學(xué)生名單SELECT Sname,SageFROM StudentWHERE Sage<ALL (SELECT Sage FROM Student WHERE Sdept=IS) AND Sdept<>I

17、SORDER BY Sage DESC;11. 查詢在信息系的學(xué)生及年齡不大于21歲的學(xué)生SELECT *FROM StudentWHERE Sdept=ISUNIONSELECT * FROM Student WHERE Sage<=19;12. 查詢選修1號(hào)課的學(xué)生與選修2號(hào)課的學(xué)生差集SELECT SnoFROM SCWHERE Cno=1AND Sno NOT IN (SELECT Sno FROM SC WHERE Cno=2);13. 查詢選修了所有課程的學(xué)生姓名SELECT SnameFROM Student WHERE NOT EXISTS(SELECT *FROM Co

18、urseWHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=Course.Cno);14. 查詢未選修1號(hào)1課程的學(xué)生姓名SELECT SnameFROM StudentWHERE NOT EXISTS (SELECT * FROM SC WHERE Sno=Student.Sno AND Cno=1);15. 查詢選修1號(hào)課程的學(xué)生最高分SELECT MAX(Grade)FROM SCWHERE Cno=1;16. 計(jì)算選修1號(hào)課程的學(xué)生的平均分SELECT AVG(Grade)FROM SCWHERE Cno=1

19、;17. 查詢各個(gè)課程號(hào)與相應(yīng)的選修課人數(shù)SELECT Cno,COUNT(Sno)FROM SCGROUP BY Cno;18. 查詢學(xué)生總數(shù)SELECT COUNT(*)FROM Student;19. 查詢?nèi)鄙俪煽兊膶W(xué)生的學(xué)號(hào)和課程號(hào)SELECT Sno,CnoFROM SCWHERE Grade IS NULL;20. 查詢DB-Design課程號(hào)和學(xué)分SELECT Cno,CcreditFROM Course WHERE Cname LIKEDB_DesignESCAPE;主碼與外碼的關(guān)系:我們在建立數(shù)據(jù)庫的時(shí)候,需要為每張表指定一個(gè)主碼,主碼也叫主鍵。 所謂主碼就是在實(shí)體集中區(qū)分不

20、同實(shí)體的候選碼。 一個(gè)實(shí)體集中只能有一個(gè)主碼,但可以有多個(gè)候選碼。 必須注意兩點(diǎn): 1.主碼的選擇必須慎重。 例如:人的姓名是不可以做主碼的,因?yàn)榭赡苡卸鄠€(gè)人重名,而身份證可以做主碼。 2.主碼的選擇應(yīng)該是那些從不或極少變化的屬性。 例如:一個(gè)人的地址就不應(yīng)該作為主碼的一局部,因?yàn)樗芸赡茏兓?。下面是主碼與外碼的應(yīng)用舉例:eg:某醫(yī)院病房計(jì)算機(jī)管理中需要如下信息:科室:科名,科地址,科 ,醫(yī)生姓名病房:病房號(hào),床位號(hào),所屬科室名醫(yī)生:姓名,職稱,所屬科室名,年齡,工作證號(hào)病人:病歷號(hào),姓名,姓名,性別,診斷,主管醫(yī)生,病房號(hào)其中,一個(gè)科室有多個(gè)病房,多個(gè)醫(yī)生,一個(gè)病房只能屬于一個(gè)科室,一個(gè)醫(yī)生

21、只能屬于一個(gè)科室,但可以負(fù)責(zé)多個(gè)病人的診治,一個(gè)病人的主管醫(yī)生只能有一個(gè)。4.關(guān)系模式分析4.1關(guān)系模式1完成如下設(shè)計(jì):(1) 設(shè)計(jì)E-R圖(2) 講E-R圖轉(zhuǎn)換為關(guān)系模型結(jié)構(gòu) 要?jiǎng)?chuàng)立的兩個(gè)數(shù)據(jù)表4.2關(guān)系模式21. 研究生信息表表名:scott.student。表結(jié)構(gòu)如表7.6所示。4.3關(guān)系模式33. 兩個(gè)數(shù)據(jù)表的關(guān)系導(dǎo)師信息表scott.director的主碼“DIRECTOR_ID是研究生信息表scott.student的外碼。也就是說,當(dāng)導(dǎo)師信息表的“DIRECTOR_ID字段發(fā)生變化時(shí),研究生信息表的字段“DIRECTOR_ID也會(huì)隨之自動(dòng)發(fā)生變化。創(chuàng)立的步驟1. 創(chuàng)立導(dǎo)師信息表的

22、步驟1如圖7.2所示界面。2出現(xiàn)如圖7.3所示的創(chuàng)立表的【一般信息】選項(xiàng)卡。3切換到圖7.4所示的創(chuàng)立表的【約束條件】選項(xiàng)卡。在【類型】單元格下拉列表框中有5個(gè)選項(xiàng),如表7.8所示。4切換到圖7.5所示的創(chuàng)立表的【簇列】選項(xiàng)卡。5切換到圖7.6所示的創(chuàng)立表的【分區(qū)】選項(xiàng)卡。6切換到圖7.7所示的創(chuàng)立表的【存儲(chǔ)】選項(xiàng)卡。7切換到圖7.8所示的創(chuàng)立表的【存儲(chǔ)】選項(xiàng)卡。8切換到圖7.9所示的創(chuàng)立表的【約束條件存儲(chǔ)】選項(xiàng)卡。9出現(xiàn)如圖7.10所示界面。10在【企業(yè)管理器】中可以查看創(chuàng)立的數(shù)據(jù)表,如圖7.11所示。11上述步驟創(chuàng)立scott.director數(shù)據(jù)表的SQL代碼如下。在創(chuàng)立主關(guān)鍵字約束條件時(shí)將自動(dòng)建立該字段的索引。12讀者也可以在【SQL Plus Worksheet】中直接執(zhí)行createdirector.sql文件創(chuàng)立數(shù)據(jù)表scott.director,如圖7.12所示。2. 創(chuàng)立研究生信息表的步驟1與創(chuàng)立

溫馨提示

  • 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)論