版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請進(jìn)行舉報(bào)或認(rèn)領(lǐng)
文檔簡介
學(xué)生成績管理第1章設(shè)計(jì)目的與要求1.1設(shè)計(jì)目的本實(shí)踐課的主要目的是:掌握運(yùn)用管理系統(tǒng)及數(shù)據(jù)庫原理知識進(jìn)行系統(tǒng)分析和設(shè)計(jì)的方法;掌握關(guān)系數(shù)據(jù)庫的設(shè)計(jì)方法;掌握SQLServer2000技術(shù)應(yīng)用;掌握簡單的數(shù)據(jù)庫應(yīng)用程序編寫方法;理解C/S模式結(jié)構(gòu)。1.2設(shè)計(jì)環(huán)境Windowsxp,VisualBasic6.0,SQLServer200,0SQLServer2000桌面引擎1.4設(shè)計(jì)內(nèi)容及要求一、內(nèi)容要求根據(jù)管理信息系統(tǒng)及數(shù)據(jù)庫設(shè)計(jì)原理,按照數(shù)據(jù)庫系統(tǒng)設(shè)計(jì)的步驟和規(guī)范,完成各階段的設(shè)計(jì)內(nèi)容。需求分析具體實(shí)際,數(shù)據(jù)流圖、數(shù)據(jù)字典、關(guān)系模型要正確規(guī)范在sqlserver2000上實(shí)現(xiàn)設(shè)計(jì)的數(shù)據(jù)庫模型。對應(yīng)用程序進(jìn)行概要設(shè)計(jì)。二、要求設(shè)計(jì)過程中,要嚴(yán)格遵守課程設(shè)計(jì)的時(shí)間安排,聽從指導(dǎo)教師的指導(dǎo)。正確地完成上述內(nèi)容,規(guī)范完整地撰寫出課程設(shè)計(jì)報(bào)告。第2章設(shè)計(jì)內(nèi)容2.1數(shù)據(jù)庫設(shè)計(jì)1.1需求分析1.學(xué)生管理系統(tǒng)總共包括四個(gè)表學(xué)生信息表student、教師信息表teacher、成績表score和課程表course。Student表:在建表時(shí),除了添加學(xué)號、姓名、班級必要字段,還添加一些其他的字段,比如:出生日期、性別、郵箱地址和類型等。Teacher表:在建表時(shí),除了添加教師編號,教師姓名,部門必要字段,還可以添加一些其他的字段,比如:出生日期、性別、和電話等。Score表:此表應(yīng)該包括學(xué)生學(xué)號、課程號和成績等。Course表:應(yīng)包括課程號,對應(yīng)的課程名稱和教此課程的教師編號。(1)、建立一個(gè)數(shù)據(jù)庫,然后在此數(shù)據(jù)庫中建立這四個(gè)數(shù)據(jù)表。(2)、向表中添加記錄。(3)、用一些查詢語句來查看表中的特定記錄。(4)、向表中添加一些字段。如:向teacher表中添加字段tel(5)、創(chuàng)建一個(gè)自定義數(shù)據(jù)類型,并修改student表中的某個(gè)字段為此數(shù)據(jù)類型。(6)、創(chuàng)建幾個(gè)視圖
查詢某個(gè)班級的學(xué)生信息查看每門課程的平均成績查看選修計(jì)算機(jī)課程的學(xué)生信息查看所有男教師和所有男學(xué)生的信息2.1.2概念設(shè)計(jì)四個(gè)表的E-R實(shí)體模型圖分析:教師學(xué)生NM教師學(xué)生NM在教學(xué)管理中,學(xué)校開設(shè)若干門學(xué)科,一個(gè)教師可以教授其中的一門或多門課程,每個(gè)學(xué)生也需要學(xué)習(xí)其中的幾門課程,因此,教學(xué)管理中涉及的對象(實(shí)體型)有學(xué)生、教師和課程。用E-R圖描述它們之間的聯(lián)系。如圖所示。其中,學(xué)生與課程是多對多的聯(lián)系,而教師與課程的聯(lián)系則是一對多。這四個(gè)表的總的實(shí)體-關(guān)系圖學(xué)號班級學(xué)號班級設(shè)計(jì)數(shù)據(jù)表在此學(xué)生成績信息中有4個(gè)表需要建立學(xué)生信息表(student)包括學(xué)號(sno)、姓名(sname)、性別(Ssex)、班級(class)、出生日期(sbirth)教師信息表(teacher)包括教師編號(tno)、姓名(tname)、性別(Tsex)、部門(depart)、職稱(prof)、出生日期(tbirth)成績表(score)包括學(xué)號(sno)、課程號(cno)、成績(degree)課程信息表(course)包括課程號(cno)、課程名稱(cname)、教師編號(tno)2.1.3邏輯設(shè)計(jì)邏輯結(jié)構(gòu)設(shè)計(jì)階段的任務(wù)是將概念結(jié)構(gòu)設(shè)計(jì)階段所得到的概念模型轉(zhuǎn)換為具體DBMS所能支持的數(shù)據(jù)模型(即邏輯結(jié)構(gòu)),并對其進(jìn)行優(yōu)化。邏輯結(jié)構(gòu)設(shè)計(jì)一般分為三步進(jìn)行:從E-R圖向關(guān)系模式轉(zhuǎn)化數(shù)據(jù)庫的邏輯設(shè)計(jì)主要是將概念模型轉(zhuǎn)換成一般的關(guān)系模式,也就是將E-R圖中的實(shí)體、實(shí)體的屬性和實(shí)體之間的聯(lián)系轉(zhuǎn)化為關(guān)系模式。一個(gè)實(shí)體類型轉(zhuǎn)換為一個(gè)關(guān)系模型,將每種實(shí)體類型轉(zhuǎn)換為一個(gè)關(guān)系,實(shí)體的屬性就是關(guān)系的屬性,實(shí)體的關(guān)鍵字就是關(guān)系的關(guān)鍵字。將“學(xué)生”實(shí)體轉(zhuǎn)換為一個(gè)關(guān)系模型,其中,帶下劃線的屬性為主鍵,該主屬性為關(guān)系模型外鍵。主鍵是一個(gè)表通過一個(gè)列或多個(gè)列組合的數(shù)據(jù)來唯一標(biāo)識表中的每一行,這個(gè)列或列組合就被稱為主鍵,煮件可以來強(qiáng)制實(shí)體完整性。主鍵約束有以下特征和作用:(1)主鍵約束通過不允許一個(gè)或多個(gè)列輸入重復(fù)的值來保證一個(gè)表中所有行的惟一性,使所有浪都是可以區(qū)分的。(2)一個(gè)表張只能有一個(gè)主鍵,且組成主鍵的列的數(shù)據(jù)都不能取空值。(3)當(dāng)定義主鍵約束時(shí),SQLserver在主鍵列上建立惟一性索引,這個(gè)索引在煮件被查詢時(shí)可以加快查詢的速度。在teacher表中,以教師編號tno為主鍵,對其進(jìn)行惟一性約束。在Course表中,以課程號為主鍵,對其進(jìn)行惟一性約束。2.1.4物理設(shè)計(jì)存儲(chǔ)結(jié)構(gòu)存儲(chǔ)結(jié)構(gòu)是建立一種由邏輯結(jié)構(gòu)到存儲(chǔ)空間的映射。存儲(chǔ)結(jié)構(gòu)是把一組結(jié)點(diǎn)存放在按地址相鄰的存儲(chǔ)單元里,結(jié)點(diǎn)間的邏輯關(guān)系用存儲(chǔ)單元的自然順序關(guān)系來表達(dá)的,即用一塊存儲(chǔ)區(qū)域存儲(chǔ)線性數(shù)據(jù)結(jié)構(gòu),為使用整數(shù)編碼訪問數(shù)據(jù)結(jié)點(diǎn)提供了便利。索引的創(chuàng)建為schoolgrade表創(chuàng)建一個(gè)以grade_id為索引的關(guān)鍵字的唯一聚簇索引1)展開數(shù)據(jù)庫中的表右鍵學(xué)生表,單擊所有任務(wù)彈出的索引管理。2)在窗體點(diǎn)新建索引名稱為grade_name,點(diǎn)擊復(fù)選框“聚簇索引”、“惟一值”。事務(wù)日志文件備份及存放SQLServer創(chuàng)建數(shù)據(jù)庫的時(shí)候,會(huì)同時(shí)創(chuàng)建事物日志文件,事物日志存儲(chǔ)在一個(gè)單獨(dú)的日志文件上。在修改寫入數(shù)據(jù)庫之前,事物日志會(huì)自動(dòng)地記錄對數(shù)據(jù)庫對象所做的所有修改,事物日志有助于防止數(shù)據(jù)庫損壞。日志文件與數(shù)據(jù)文件要分開放在不同的磁盤上,這樣事物日志就可以單獨(dú)的備份,事務(wù)日志不會(huì)搶占數(shù)據(jù)庫的空間,可以很容易的監(jiān)測事務(wù)日志的空間。存取方法:數(shù)據(jù)庫系統(tǒng)是多用戶共享的系統(tǒng),對同一個(gè)關(guān)系要建立多條存取路徑才能滿足多用戶的多種應(yīng)用要求。物理設(shè)計(jì)的任務(wù)之一就是要確定選擇哪些存取方法,即建立哪些存取路徑。存取方法是快速存取數(shù)據(jù)庫中數(shù)據(jù)的技術(shù)。數(shù)據(jù)庫管理系統(tǒng)一般都提供多種存取方祛。常用的存取方法有二類。第一類是索引方法,第二類是聚簇(Cluster)方法。索引方法是數(shù)據(jù)庫中經(jīng)典的存取方法,使用最普遍。索引法是為了加速對表中的數(shù)據(jù)行的檢索而創(chuàng)建的一種分散的存儲(chǔ)結(jié)構(gòu)。是針對一個(gè)表而建立的,它能夠以一列或多列的值為關(guān)鍵字,迅速查找/存取表中行數(shù)據(jù)加快了數(shù)據(jù)檢索。整個(gè)系統(tǒng)需要調(diào)用學(xué)生表、成績表等,所以學(xué)生表屬性“學(xué)號”,成績表表中的屬性“學(xué)號”,將經(jīng)常出現(xiàn)在查詢條件中,可以考慮在上面建立聚簇索引以提高查詢效率。數(shù)據(jù)庫模式定義1、Student表:snoChar(8)不允許為空snameChar(10)不允許為空SsexChar(2)不允許為空sbirthDatetime(8)允許為空classChar(4)不允許為空typeChar(7)允許為空score表結(jié)構(gòu):snoChar(8)不允許為空cnoChar(5)不允許為空degreeFloat(8)不允許為空Course表:以課程號為主鍵,通過這個(gè)主鍵來對這個(gè)表進(jìn)行唯一性約束。cno(主鍵)Char(5)不允許為空cnamevarchar(10)不允許為空tnochar(3)不允許為空Teacher表結(jié)構(gòu):Tno(主鍵)Char(5)不允許為空tnamevarchar(10)不允許為空departVarchar(8)不允許為空tsexChar(2)不允許為空tbirthdatatime允許為空profChar(6)允許為空六、其他對象的說明:(1)、外鍵約束(primarykey):外鍵也是由表中的一個(gè)列或多個(gè)列組成的,它是和在相關(guān)表中事先定義的具有惟一性的列一起使用的,該列一個(gè)是所在表的主鍵。外鍵約束用來建立和強(qiáng)制兩個(gè)表之間的關(guān)聯(lián),即一個(gè)表的一個(gè)列或列組合與另一個(gè)表的具有惟一性的列或列組合相關(guān),這個(gè)列或列組合就成為第一個(gè)表中的外鍵外鍵約束限制將破壞這種關(guān)聯(lián)的操作。作為外鍵的列的值可以是空值,或是它所引用的表中已經(jīng)存在的值。在score表中,其學(xué)號sno和課程號cno都是此表的外鍵約束,因?yàn)榇吮碇袑W(xué)號sno要受學(xué)生信息表中的學(xué)號的約束,student表中沒有的學(xué)號,score表中也應(yīng)該沒有,如果向score表添加數(shù)據(jù)時(shí)違反的此規(guī)則,則添加不成功。課程號cno也同樣,受到course表中課程號cno的約束.。(2)、空值(null):空值意味著數(shù)據(jù)尚未如,它與0或長度為零的字符串(“”)的含義不同。如果表中的某一列必須有值才能使記錄有意義,那么可以指明該列不允許取空值。在教師信息表teacher中其出生日期列tbirth和職稱prof允許為空,但并不表示該教師沒有生日,沒有職稱,而是目前還不知道而已。在學(xué)生信息表student中其出生日期sbirth也可為空,也是同樣的道理。(3)、check約束:檢查約束可以用來限制列上可以接受的數(shù)據(jù)值,檢查約束使用邏輯表達(dá)式來限制列上可以接受的數(shù)據(jù)??梢栽谝粋€(gè)列上使用多個(gè)檢查約束,也可以在表上建立一個(gè)可以在多個(gè)列上使用的檢查約束。比如:在學(xué)生信息表中,郵件地址semail的格式必須是%@%格式的。(4)、惟一性約束:使用惟一性約束的作用是保證在不是主鍵的指定惟一性的列上不會(huì)出現(xiàn)重復(fù)的數(shù)據(jù)。定義了惟一性約束的列上的數(shù)據(jù)可以為空值,一個(gè)表上可以定義多個(gè)惟一性6.?dāng)?shù)據(jù)庫實(shí)施階段1、創(chuàng)建數(shù)據(jù)庫:createdatabasesshon(name=ssh,老大\sql\ssh.mdf',size=1)logon(name=ssh1,老大\sql\ssh1.ldf',size=1)2、創(chuàng)建數(shù)據(jù)表(1)、student表usesshcreatetablestudent(snochar(8)primarykey,snamechar(10)notnull,Ssexchar(2)notnull,Sbirthdatetime,classchar(4)notnullsemailvarchar(20))(2)、score表createtablescore(snochar(8)notnull,cnochar(4)notnull,degreefloatnotnull)(3)、course表createtablecourse(cnochar(5)notnullprimarykey,cnamevarchar(10)notnull,tnochar(3)notnull)(4)、teacher表createtableteacher(tnochar(5)notnullprimarykey,tnamevarchar(10)notnull,departvarchar(8)notnull,Tsexchar(2)notnull,Tbirthdatetime,profchar(6))4向表中添加記錄1)、向?qū)W生信息表中添加insertintostudentvalues('101','生活','女','1983-09-18','11')insertintostudentvalues('102','insertintostudentvalues('103','insertintostudentvalues('104','insertintostudentvalues('105','insertintostudentvalues('106','insertintostudentvalues('107','insertintostudentvalues('108','insertintostudentvalues('109','insertintostudentvalues('110','風(fēng)塵','男','1984-01-01','11')離開','男','1984-01-01','11')流浪','女','1984-11-11','11')生命','男','1984-12-05','13')無悔','女','1984-11-01','13')歷史','女','1984-10-01','12')風(fēng)塵','男','1985-9-08','11')活著','男','1985-12-12','12')傻瓜','女','1985-08-28','12')查看記錄Select*fromstudent(2)、向成績表中添加insertintoscorevalues('101','01',88)insertintoscorevalues('101','02',85)insertintoscorevalues('102','02',80)insertintoscorevalues('101','03',88)insertintoscorevalues('102','02',85)insertintoscorevalues('102','03',80)insertintoscorevalues('103','01',83)insertintoscorevalues('103','02',85)insertintoscorevalues('103','03',90)insertintoscorevalues('104','01',60)查看記錄(3)、向教師表中添加數(shù)據(jù)insertintocoursevalues('01','計(jì)算機(jī)','11')insertintocoursevalues('02','網(wǎng)絡(luò)管理','12')insertintocoursevalues('03','專業(yè)英語','13')insertintocoursevalues('04','軟件工程','14')查看記錄4)、向課程表中添加數(shù)據(jù)insertintoteachervalues('11','無意','計(jì)算機(jī)系','男','1973-4-5','教授')insertintoteachervalues('12','生活','計(jì)算機(jī)系','女','1975-12-1','副教授')insertintoteachervalues('13','沒有','管理系','女','1975-3-3','副教授')insertintoteachervalues('14','離開','英語系','男','1973-5-5','教授')查看記錄Select*fromteacher5、一些查詢語句
、查詢成績大于學(xué)號為101的學(xué)生的課程為02的成績的所有列select*fromscorewheredegree>(selectdegreefromscorewheresno='101'andcno='02')、查詢課程號01大于課程號02的最大值、并以分?jǐn)?shù)降序排序的成績表中所有列select*o='01'ands.degree>=(selectmax(degree)o='02')orderbydegreedescgoselectmax(degree)as"02max"fromscorewherecno='02'、查詢性別為男的學(xué)號,姓名,班級,課程號和成績的學(xué)生selectstudent.sno,student.sname,student.class,o,score.degreefromstudent,scorewherestudent.sno=score.snoandssex='男'4)、查詢成績在60到80之間的所有列select*fromscorewheredegreebetween60and80
(5)、查詢score表中至少有5名學(xué)生選修的并以0開頭的課程的平均分selectavg(degree)as"平均分",cnofromscorewherecnolike'0%'groupbycnohavingcount(*)>=5創(chuàng)建視圖(1)、創(chuàng)建所有11班的學(xué)生信息的視圖createviewstudent11asselect*fromstudentwhereclass='11查看視圖中的記錄select*fromstudent11(2)、創(chuàng)建視圖course_degree,其中的內(nèi)容是選修計(jì)算機(jī)課程的學(xué)生信息,包括sno,sname,cno,cname,degree),創(chuàng)建時(shí)加上withcheckoptioncreateviewcourse_degree(sno,sname,cno,cname,degree)asselectscore.sno,sname,o,cname,degreefrom
溫馨提示
- 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
- 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(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ǔ)空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負(fù)責(zé)。
- 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請與我們聯(lián)系,我們立即糾正。
- 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。
最新文檔
- 三體讀書筆記
- 簡歷的自我評價(jià)(合集15篇)
- 售后客服工作總結(jié)合集15篇
- xxx生態(tài)養(yǎng)豬場建設(shè)產(chǎn)業(yè)化項(xiàng)目商業(yè)計(jì)劃書
- 南京某煤氣站鋼結(jié)構(gòu)氣柜施工組織設(shè)計(jì)
- 房地產(chǎn)銷售個(gè)人季度工作總結(jié)(合集六篇)
- 七年級人教版復(fù)習(xí)提綱
- 《職場溝通》電子教案 項(xiàng)目十 商務(wù)宴請溝通(4課時(shí))
- 2025年硅力敏傳感器項(xiàng)目發(fā)展計(jì)劃
- 門面房出租合同范文
- 《新編MPA英語閱讀教程教學(xué)參考書》正文(第一-第十五單元)第二稿
- “青藍(lán)工程”師徒結(jié)對體育青年教師總結(jié)反思
- 設(shè)備維護(hù)檢查修理三級保養(yǎng)記錄表
- 施工安全風(fēng)險(xiǎn)分析及應(yīng)對措施表
- 《針灸推拿》題庫
- 2023年上海市初中物理競賽復(fù)賽試題銀光杯
- GB/T 20475.2-2006煤中有害元素含量分級第2部分:氯
- GB 18218-2000重大危險(xiǎn)源辨識
- 油田視頻監(jiān)控綜合應(yīng)用平臺解決方案
- 福建省泉州市各縣區(qū)鄉(xiāng)鎮(zhèn)行政村村莊村名明細(xì)及行政區(qū)劃代碼
- 酒精性腦病的護(hù)理查房實(shí)用版課件
評論
0/150
提交評論