第一篇:SQL Server 數(shù)據(jù)庫教學(xué)方法實(shí)踐淺析
SQL Server 數(shù)據(jù)庫教學(xué)方法實(shí)踐淺析
href=“#”> [摘 要]SQL Server數(shù)據(jù)庫課程是計(jì)算機(jī)專業(yè)的基礎(chǔ)課程,其教學(xué)難度大。若采用原先的教學(xué)辦法,學(xué)生不能有效接受,教師教時也很困難。所以,我們需要采用新的項(xiàng)目組教學(xué)方法來教授學(xué)生,以期達(dá)到預(yù)定的教學(xué)效果。 [關(guān)鍵詞]SQL Server;項(xiàng)目組;實(shí)踐 [中圖分類號]G642 [文獻(xiàn)標(biāo)識碼]A [文章編號]1005-6432(2010)31-0163-01 教學(xué)方法設(shè)計(jì)原則 1.1 理論與項(xiàng)目的實(shí)踐有效地結(jié)合起來 數(shù)據(jù)庫的理論較為嚴(yán)謹(jǐn),學(xué)生學(xué)習(xí)起來的難度很大,而且其用語很專業(yè),讓學(xué)生感到生澀難懂,教師的教學(xué)效果也不甚理想。為使學(xué)生在日后的工作中可以自己完成相關(guān)的項(xiàng)目系統(tǒng)分析和設(shè)計(jì)工作,并可以融會貫通,使學(xué)生在學(xué)校所學(xué)的理論知識與數(shù)據(jù)庫的理論知識相結(jié)合是構(gòu)建這一教學(xué)目的的基礎(chǔ)。讓理論的學(xué)習(xí)在項(xiàng)目實(shí)施的過程逐步推進(jìn),可以讓學(xué)生更有質(zhì)感,對相關(guān)的概念與理論也能夠有效地結(jié)合起來,記憶的效果會很好。不但可以讓學(xué)生對數(shù)據(jù)庫的學(xué)習(xí)效果更加的理想,而且對于學(xué)生今后在工作中能夠理論聯(lián)系實(shí)際也有較大益處。例如我們在講解某個數(shù)據(jù)庫的具體管理時,就在這當(dāng)中加入一些數(shù)據(jù)庫的基本知識,這樣學(xué)生掌握得也會較為牢靠。 1.2 在課程內(nèi)加入可視化編程語言的內(nèi)容 在數(shù)據(jù)庫的開發(fā)當(dāng)中,編程語言一般作為系統(tǒng)的前臺,但同時也是一個連接數(shù)據(jù)庫時無法回避的問題。以前的教學(xué)內(nèi)容設(shè)計(jì)的不盡合理,數(shù)據(jù)庫與編程語言的內(nèi)容沒有很好地聯(lián)系起來,而是相互割裂與分離的。我們嘗試將這二者放在一起學(xué)習(xí),并在同一個項(xiàng)目中同時學(xué)習(xí)這二者的內(nèi)容。例如我們在SQL Server課中所采用的學(xué)生管理項(xiàng)目。我們可以讓學(xué)生在學(xué)習(xí)可視化編程語言中試著利用自己所學(xué)的可視化編程語言來為學(xué)生管理項(xiàng)目設(shè)計(jì)符合自己要求的前臺界面,并能與后臺的數(shù)據(jù)庫建立起有效的鏈接。通過這樣的教學(xué)過程,學(xué)生對二者之間內(nèi)容的掌握可以較為熟稔,學(xué)生學(xué)習(xí)的積極性也會被充分的調(diào)動起來。 1.3 以團(tuán)隊(duì)形式進(jìn)行項(xiàng)目開發(fā) 學(xué)生在初步掌握了SQL Server之后,我們可以考慮讓學(xué)生以3~5人為一個小組作為研發(fā)的團(tuán)隊(duì),相互開展工作配合,讓他們自己來研發(fā)數(shù)據(jù)庫的應(yīng)用。這樣對于學(xué)生之間的相互配合、團(tuán)結(jié)協(xié)作能力的提升有一定的促進(jìn)作用,而且學(xué)生能夠自己去查詢相關(guān)的資料來研究,對他們的學(xué)習(xí)精神也是一種促進(jìn)。在規(guī)定的時間到來后,各小組將研發(fā)成果上交。這樣較為規(guī)范、嚴(yán)謹(jǐn)?shù)难邪l(fā)程序?qū)τ趯W(xué)生日后的工作習(xí)慣的養(yǎng)成也是一個良好的開端。 1.4 確定科學(xué)的核定標(biāo)準(zhǔn) 以往我們考試大部分采用書面的形式。在實(shí)施項(xiàng)目教學(xué)以后發(fā)現(xiàn)如果還是采用書面考試的形式則不能有效地反映出教學(xué)的漏洞,所以讓學(xué)生上交自己的研發(fā)作品作為考試的內(nèi)容。只要學(xué)生能夠解決問題即可,但必須是自己獨(dú)立完成的。這樣,學(xué)生的實(shí)際操作能力可以有效地培養(yǎng)出來。數(shù)種教學(xué)方法的合并使用 2.1 項(xiàng)目教學(xué)法 以項(xiàng)目為主體,讓教學(xué)圍繞這個項(xiàng)目而展開。先教授一定的理論知識作為今后學(xué)習(xí)的基礎(chǔ),隨后通過對理論的講解并結(jié)合該項(xiàng)目的具體實(shí)際給出正確的結(jié)論與方案。學(xué)生在練習(xí)的初期會充滿新鮮感,通過我們的耐心講解學(xué)生方能滿足要求并開發(fā)出系統(tǒng)。這樣就可以做到在知曉理論的基礎(chǔ)上去重新理解這個理論并延續(xù)這個理論。 2.2 團(tuán)隊(duì)合作學(xué)習(xí)的方法 項(xiàng)目的開發(fā)并不是依靠一個人單槍匹馬就能夠完成的,而是需要一個團(tuán)隊(duì)來通力合作完成。我們在教學(xué)的過程中,要注重學(xué)生的創(chuàng)新與團(tuán)隊(duì)合作精神的培養(yǎng)。在教授SQL Server數(shù)據(jù)庫管理系統(tǒng)中,我們讓學(xué)生組成一個個團(tuán)隊(duì),并以團(tuán)隊(duì)的形式來學(xué)習(xí)和開發(fā)管理系統(tǒng)。這樣,學(xué)生在學(xué)習(xí)的過程中不但可以養(yǎng)成相互配合的工作習(xí)慣還可以印證自己的所學(xué)。每個項(xiàng)目組要有一個組長,主要是組織組內(nèi)的成員探討問題。團(tuán)隊(duì)中的每一個成員都要完成自己所負(fù)責(zé)的工作內(nèi)容。在此期間,我們需要主動地去引導(dǎo)學(xué)生完成工作。對于學(xué)生當(dāng)中出現(xiàn)的各種情況,我們需要及時地跟進(jìn)解決。我們可以幫助學(xué)生創(chuàng)建符合本項(xiàng)目組的學(xué)習(xí)計(jì)劃。對學(xué)生的學(xué)習(xí)情況和項(xiàng)目開發(fā)的實(shí)際情況有效地掌握。這樣對于我們教學(xué)目標(biāo)的實(shí)現(xiàn)是極為有力的。 參考文獻(xiàn): [1]王珊.面向21世紀(jì)數(shù)據(jù)庫課程教學(xué)改革[J].中國大學(xué)教學(xué),2006(4).[2]龔沛曾.大學(xué)計(jì)算機(jī)基礎(chǔ)課程體系建設(shè)與教學(xué)改革實(shí)踐[R].西安:2005首屆大學(xué)計(jì)算機(jī)基礎(chǔ)課程報(bào)告論壇,2005-??11-??15. SQL Server數(shù)據(jù)庫入門學(xué)習(xí)總結(jié) 經(jīng)過一段時間的學(xué)習(xí),也對數(shù)據(jù)庫有了一些認(rèn)識。 數(shù)據(jù)庫基本是由表,關(guān)系,操作組成;對于初學(xué)者首先要學(xué)的: 1.數(shù)據(jù)庫是如何存儲數(shù)據(jù)的表,約束,觸發(fā)器 2.數(shù)據(jù)庫是如何操作數(shù)據(jù)的 insert,update,delete T-sql 函數(shù) 存儲過程 觸發(fā)器 3.數(shù)據(jù)庫是如何顯示數(shù)據(jù)的select SQLServer數(shù)據(jù)庫學(xué)習(xí)總結(jié) 1.SQL基礎(chǔ) SQL Server2000安裝、配置,服務(wù)器啟動、停止,企業(yè)管理器、查詢分析器 第一代數(shù)據(jù)庫--網(wǎng)狀數(shù)據(jù)庫和層次數(shù)據(jù)庫;第二代數(shù)據(jù)庫--關(guān)系數(shù)據(jù)庫 數(shù)據(jù)庫(DB);數(shù)據(jù)庫管理系統(tǒng)(DBMS);數(shù)據(jù)庫系統(tǒng)(DBS) SQL Server 2000 提供了不同版本:企業(yè)版、標(biāo)準(zhǔn)版、個人版、開發(fā)版 SQL Server中的數(shù)據(jù)類型:整數(shù):int,smallint,tinyint,bigint;浮點(diǎn)數(shù):real,float,decimal;二進(jìn)制:binary,varbinary;邏輯:bit;字符:char,nchar,varchar,nvarchar;文本和圖形:text,ntext,image;日期和時間:datetime,smalldatetime;貨幣:money,smallmoney 數(shù)據(jù)庫的創(chuàng)建和刪除;數(shù)據(jù)庫表的創(chuàng)建、修改和刪除 數(shù)據(jù)完整性:實(shí)體完整性:Primary Key,Unique Key,Unique Index,Identity Column;域完整性:Default,Check,Foreign Key,Data type,Rule;參照完整性:Foreign Key,Check,Triggers,Procedure;用戶定義完整性:Rule,Triggers,Procedure;Create Table中得全部列級和表級約束 SQL Server中有5種約束:主鍵約束(Primary Key Constraint)、默認(rèn)約束(Default Constraint)、檢查約束(Check Constraint)、唯一性約束(Unique Constraint)、外鍵約束(Foreign Key Constraint).關(guān)系圖 數(shù)據(jù)庫設(shè)計(jì)的步驟:需求分析、概念結(jié)構(gòu)設(shè)計(jì)、邏輯結(jié)構(gòu)設(shè)計(jì)、數(shù)據(jù)庫物理設(shè)計(jì)、數(shù)據(jù)庫實(shí)施、數(shù)據(jù)庫運(yùn)行和維護(hù) 兩個實(shí)體之間的聯(lián)系:一對一(1:1)、一對多(1:n)、多對多(m:n) 實(shí)體關(guān)系模型--E-R圖 數(shù)據(jù)庫規(guī)范化:將數(shù)據(jù)庫的結(jié)構(gòu)精簡為最簡單的形式;從表中刪除冗余列;標(biāo)識所有依賴于其他數(shù)據(jù)庫的數(shù)據(jù)。 數(shù)據(jù)庫三范式:第一范式就是無重復(fù)的列;第二范式就是非主屬性非部分依賴于主關(guān)鍵字;第三范式就是屬性不依賴于其他非主屬性 2.SQL語句 SQL全稱是“結(jié)構(gòu)化查詢語言(Structured Query Language)” SQL的4個部分: 數(shù)據(jù)定義語言DDL(Data Definition Language)用來定義數(shù)據(jù)的結(jié)構(gòu):create、alter、drop。 數(shù)據(jù)控制語言DCL(Data Control Language)用來控制數(shù)據(jù)庫組件的存取許可、存取權(quán)限等得命令:grant、revoke。 數(shù)據(jù)操縱語言DML(Data Manipulation Language)用來操縱數(shù)據(jù)庫中得數(shù)據(jù)的命令:insert、update、delete。 數(shù)據(jù)查詢語言DQL(Data Query Language)用來查詢數(shù)據(jù)庫中得數(shù)據(jù)的命令:select。 SQL中得運(yùn)算符 :算術(shù)運(yùn)算符、位運(yùn)算符、比較運(yùn)算符、邏輯運(yùn)算符、通配運(yùn)算符、字符串連接符、賦值運(yùn)算符 3.查詢 簡單查詢,使用TOP子句 查詢結(jié)果排序order by 帶條件的查詢where,使用算術(shù)表達(dá)式,使用邏輯表達(dá)式,使用between關(guān)鍵字,使用in關(guān)鍵字,模糊查詢like 在查詢中使用聚合函數(shù):sum(x),avg(x),min(x),max(x),count(x),count(*)使用分組查詢group by,having子句 distinct關(guān)鍵字 列別名 select top 6 * from sales order by qty desc select au_id,au_fname,au_lname from authors where state in('ks','ca','mi') select au_fname,au_lname,phone from authors where au_id like '72[234]-%' select 簡單子查詢:嵌套子查詢、相關(guān)子查詢;子查詢的select語句中不能使用order by子句,roder by子句只能對最終查詢結(jié)果排序。type,sum(price),avg(price),count(*) from titles group by type having type in('business','psycheology')嵌套子查詢:執(zhí)行過程,先執(zhí)行子查詢,子查詢得到的結(jié)果不被顯示,而是傳給外層查詢,作為外層查詢的條件,然后執(zhí)行外層查詢,并顯示結(jié)果。 嵌套子查詢的執(zhí)行不依賴于外層查詢,子查詢只執(zhí)行一次。 帶有比較運(yùn)算符的子查詢,帶有in和not in的子查詢,帶有any或all的子查詢 相關(guān)子查詢:子查詢?yōu)橥鈱硬樵兊拿恳恍袌?zhí)行一次,外層查詢將子查詢引用的列的值傳給了子查詢。 相關(guān)子查詢的執(zhí)行依賴于外層查詢,子查詢需要重復(fù)的執(zhí)行。 帶有exists和not exists的相關(guān)子查詢。 多表聯(lián)接查詢:內(nèi)聯(lián)接(inner join)、外聯(lián)接((left、right、full)outer join)、自聯(lián)接(self join)和交叉聯(lián)接(cross join) 在查詢上創(chuàng)建新表:select into語句首先創(chuàng)建一個新表,然后用查詢的結(jié)果填充新表。 表別名 select coursename from course where courseid in(select distinct courseid from grade where grade>10) select studname from student where sudbirthday > any(select studbirthday from student where class = '信息系')and class<>'信息系' select studname from student where exists(select * from grade where studid = student.studid and courseid = '01') select stud1.* from student as stud1 join student as stud2 on stud2.studname = 'mm' and stud1.studsex = stud2.studsex select * into girls from student where studsex='m' 4.視圖、索引和事務(wù) 視圖是由一個或多個數(shù)據(jù)表(基本表)導(dǎo)出的虛擬表或者查詢表,是關(guān)系數(shù)據(jù)庫系統(tǒng)提供給用戶以多種角度觀察數(shù)據(jù)庫中數(shù)據(jù)的重要機(jī)制。 視圖的好處:能夠簡化用戶的操作;視圖能夠?qū)C(jī)密數(shù)據(jù)提供安全保護(hù)。 創(chuàng)建視圖時,視圖的名稱存在sysobjects表中。有關(guān)視圖中所定義列的信息添加到syscolumns表中,而有關(guān)視圖相關(guān)性的信息添加到sysdepends表中。另外,create view語句的文本添加到syscomments表中。 在通過視圖向表中插入數(shù)據(jù)時,如果insert語句列表中包含有視圖中沒有選擇的列和不允許為空值的列,這種操作是不允許的。 創(chuàng)建視圖:create view view_employee as select emp_id,fname,lname from employee 使用視圖:select * from view_employee 修改視圖:alter view view_employee as select emp_id,fname,job_id from employee where job_id>10 刪除視圖:drop veiw view_employee 查看視圖結(jié)構(gòu):exec sp_help view_employee 查看視圖定義信息:exec sp_helptext 'view_employee' 索引提供了一種基于一列或多列的值對表的數(shù)據(jù)行進(jìn)行快速訪問的方法。索引提供的是表中得邏輯順序。 聚集索引基于數(shù)據(jù)行的鍵值在表內(nèi)排序和存儲這些數(shù)據(jù)行。當(dāng)數(shù)據(jù)表以某列為關(guān)鍵字建立聚集索引時,表中得數(shù)據(jù)行就以該列(聚集索引鍵)的排序次序進(jìn)行存儲。每個表只能有一個聚集索引。 非聚集索引具有完全獨(dú)立于數(shù)據(jù)行的結(jié)構(gòu),一個表可以建立多個非聚集索引。 創(chuàng)建聚集索引:create clustered index studid_ind on stud(studid) 創(chuàng)建非聚集索引:create unique index studfullname_ind on stud(fname desc,lname)刪除索引:drop index stud.studid_ind 查看stud表上得索引:exec sp_helpindex stud 事務(wù)是一種機(jī)制,是一個操作序列,它包含了一組數(shù)據(jù)庫操作命令,并且所有的命令作為一個整體一起向系統(tǒng)提交或撤銷操作請求。 事務(wù)的特性:原子性(Atomicity)、一致性(Consistenty)、隔離性(Isolation)、永久性(Durability)。事務(wù)分類:顯示事務(wù)、隱性事務(wù)、自動提交事務(wù)。 視圖、索引和事務(wù)的創(chuàng)建、使用、修改和刪除 5.Transact—SQL編程 全局變量:由系統(tǒng)定義和維護(hù),其名稱以@@字符開頭 局部變量:由用戶定義和賦值,其名稱以@字符開頭 輸出語句:print 邏輯控制語句:begin...end;break;case;continue;goto;if...else;return;while 常用函數(shù):行集函數(shù),聚合函數(shù),標(biāo)量函數(shù) 轉(zhuǎn)換函數(shù):convert(dt,e,s),cast() 數(shù)學(xué)函數(shù):絕對值abs(n),向上取整ceiling(n),向下取整floor(n),指定次冪power(n,y),四舍五入round(n,length),求符號sign(n),平方根sqrt(n)日期 和 時 間 函 數(shù) :dateadd(datepart,num,date),datediff(datepart,date1,date2),datename(datepart,date),datepart(datepart,date),getdate(),year(date),month(date),day(date) 字符串函數(shù):lower(e),upper(e),left(e,i),right(e,i),replace(s1,s2,s3)用3替換1中的2,replicate(e,i)重復(fù)指定次數(shù),stuff(s1,start,length,s2)用2替換1中指定位置,substring(expression,start,length)元數(shù) 據(jù) 函 數(shù) :db_id('database_name'),db_name(datebase_id),object_id('obj_name'),object_name(obj_id),col_length('table','column'),col_name(table_id,col_id)聚合函數(shù):avg(expr),count(expr),count(*),max(expr),min(expr),sum(expr)select au_lname,au_fname,contory = case state when 'u t' then 'utah' when 'ca' then 'california' else 'world' end,city from authors order by state desc while(select avg(price)from titles)<30 begin update titles set price = price * 2 if(select max(price)from titles)>50 break else continue end print '價格太高' begin insert into jobs values('a',80,234)if @@error<>0 print '數(shù)據(jù)插入失敗' else goto M end M:print '數(shù)據(jù)插入成功' 6.游標(biāo) 游標(biāo)是一種能從包含多條數(shù)據(jù)記錄的結(jié)果集中每次提取一條記錄的機(jī)制。將批操作變成行操作,對結(jié)果集中得某行進(jìn)行操作。 declare author_csr cursor read_only for--定義只讀游標(biāo) select au_fname,au_lname from authors where state = 'ca' order by au_fname,au_lname declare @lname varchar(20),@fname varchar(20)--定義變量 open author_csr--打開游標(biāo) fetch next from author_csr into @lname,@fname--執(zhí)行一次數(shù)據(jù)讀取操作 while @@fetch_status=0--循環(huán)游標(biāo)讀取數(shù)據(jù) begin print 'author name:'+@lname+''+@fname fetch next from author_csr into @lname,@fname end close author_csr--關(guān)閉游標(biāo) deallocate author_csr--釋放游標(biāo) 7.存儲過程 存儲過程(stored procedure)類似c語言中的函數(shù),是一組為了完成特定功能的SQL語句集,經(jīng)編譯后存儲在數(shù)據(jù)庫中。用戶通過指定存儲過程的名字餅給出參數(shù)來執(zhí)行它。 常用的系 統(tǒng) 存 儲 過 程 :sp_database,sp_helpdb,sp_renamedb,sp_tables,sp_column,sp_help,sp_helpconstraint,sp_helpindex,sp_stored_procedure,sp_password 創(chuàng)建存儲過程: create as select @total=count(jy.askbookid)from book,jyls jy where bookname like @book_name and book.isbn=jy.isbn and jy.starttime>=@starttime and endtime<=@endtime procedure book_num (@book_name varchar(26),@starttime datetime,@endtime datetime,@total int output)使用存儲過程: declare @book_name char(26),@total int set @book_name='面向?qū)ο蠓治龊驮O(shè)計(jì)' exec book_num @book_name,'2007-01-01','2007-11-01',@total output select @book_name as bookname,@total as num 8.觸發(fā)器 觸發(fā)器是一種特殊類型的存儲過程,主要是通過實(shí)踐進(jìn)行觸發(fā)而被執(zhí)行。 觸發(fā)器的主要作用就是能夠?qū)崿F(xiàn)由主鍵和外鍵所不能保證的復(fù)雜的參照完整性和數(shù)據(jù)的一致性。其他功能:強(qiáng)化約束,跟蹤變化,級聯(lián)運(yùn)行,存儲過程調(diào)用。 SQL Server 2000支持兩種類型觸發(fā)器: after觸發(fā)器:要求只有執(zhí)行某一操作之后,觸發(fā)器才被執(zhí)行,且只能在表上定義。 instead of觸發(fā)器:表示并不執(zhí)行其所定義的操作,而僅是執(zhí)行觸發(fā)器本身。既可以在表上定義,也可以在視圖上定義,但對同一操作只能定義一個instead of觸發(fā)器。 工作原理: 當(dāng)觸發(fā)insert觸發(fā)器時,新的數(shù)據(jù)行就會被插入到觸發(fā)器表和inserted表中。觸發(fā)器通過檢查inserted表來確定是否執(zhí)行觸發(fā)器動作或如何執(zhí)行。 當(dāng)在定義有觸 發(fā)器的表上執(zhí)行update語句時,原始行被移入到deleted表,更新行被移入inserted表。觸發(fā)器檢查deleted表和inserted表以及被更新的表,來確定是否更新了多行以及如何執(zhí)行觸發(fā)器動作。 當(dāng)觸發(fā)deleted觸發(fā)器后,從受影響的表中刪除的行將被放置到一個特殊的deleted表中。 create trigger update_smoke_t_sale on smoke_t_sale for update as declare @newsalenum int,@smokeproductname varchar(40)select @newsalenum= salenum from inserted select @smokeproductname=smokeproductname from inserted if update(salenum)--判斷是否更新 begin update smoke_t_sale set saletotalprice=@newsalenum * saleprice where smokeproductname=@smokeproductname insert into smoke_log(logContent)values('更新成功')end else print '未更新' 9.數(shù)據(jù)庫高級管理 SQL Server安全體系結(jié)構(gòu),4個等級:客戶機(jī)操作系統(tǒng)的安全性,SQL Server的登錄安全性,數(shù)據(jù)庫的使用安全性,數(shù)據(jù)對象的使用安全性 SQL Server驗(yàn)證模式:windows身份驗(yàn)證模式和混合模式(windows身份驗(yàn)證和SQL Server身份驗(yàn)證) 登錄賬戶:用戶登錄(連接)SQL Server服務(wù)器的賬戶和密碼。 角色管理:服務(wù)器角色(負(fù)責(zé)管理和維護(hù)SQL Server的組);數(shù)據(jù)庫角色(是對某個數(shù)據(jù)庫具有相同訪問權(quán)限的用戶賬戶和組的集合) 數(shù)據(jù)庫用戶:對于每個要求訪問數(shù)據(jù)庫的登錄賬戶,必須在要訪問的數(shù)據(jù)庫中建立該數(shù)據(jù)庫的訪問賬戶,且與其登錄賬戶鏈接關(guān)聯(lián),才可進(jìn)入該數(shù)據(jù)庫訪問。 權(quán)限管理:是指用戶是否能進(jìn)行訪問數(shù)據(jù)庫資源的相應(yīng)操作。權(quán)限包括:語句權(quán)限、對象權(quán)限和暗示權(quán)限。 授予權(quán)限: grant 語句 [...] to 安全賬戶[...] grant 權(quán)限 [...] on 表或視圖[(列[,...])]|on 存儲過程|on用戶自定義函數(shù) to 安全賬戶[,...] 拒絕權(quán)限: deny 語句 [...] to 安全賬戶[...] deny 權(quán)限 [...] on 表或視圖[(列[,...])]|on 存儲過程|on用戶自定義函數(shù) to 安全賬戶[,...] 撤銷權(quán)限: revoke 語句 [...] from 安全賬戶[...] revoke 權(quán)限 [...] on 表或視圖[(列[,...])]|on 存儲過程|on用戶自定義函數(shù) from 安全賬戶[,...] 備份和恢復(fù): 數(shù)據(jù)庫備份設(shè)備,在進(jìn)行數(shù)據(jù)庫備份之前,首先要創(chuàng)建備份設(shè)備。包括:磁盤、磁帶和命名管道 SQL Server 備份策略:只備份數(shù)據(jù)庫、備份數(shù)據(jù)庫和事務(wù)日志、差異備份。 backup database medicaldb to disk='medical_bk1' with name='medicaldb backup' description='medicaldb fullbackup' init restore database medicaldb from medical_bk1 導(dǎo)入導(dǎo)出: DTS(Data Transformation Service)是SQL Server提供的數(shù)據(jù)傳輸服務(wù)。使用戶可以將來自完全不同數(shù)據(jù)源的數(shù)據(jù)析取、轉(zhuǎn)換并合并到單個或多個目的。 分離與附加:創(chuàng)建可移動的數(shù)據(jù)庫。 SQL Server數(shù)據(jù)完整性 一、完整性的概念 之所以要引入數(shù)據(jù)完整性是為了在數(shù)據(jù)的添加、刪除、修改等操作中不出現(xiàn)數(shù)據(jù)的破壞或多個表數(shù)據(jù)不一致 數(shù)據(jù)完整性是指存儲在數(shù)據(jù)庫中的數(shù)據(jù)正確無誤并且相關(guān)數(shù)據(jù)具有一致性 二、完整性的類型 1)實(shí)體完整性 實(shí)體:表中的記錄,一個實(shí)體就是指表中的一條記錄。實(shí)體完整性:在表中不能存在完全相同的記錄,且每條記錄都要具有一個非空且不重復(fù)的主鍵值。 實(shí)現(xiàn)實(shí)體完整性的方法:設(shè)置主鍵、惟一索引、惟一約束 2)域完整性 域完整性:向表中添加的數(shù)據(jù)必須與數(shù)據(jù)類型、格式及有效的數(shù)據(jù)長度相匹配。 實(shí)現(xiàn)域完整性的方法:CHECK約束、外鍵約束、默認(rèn)約束、非空定義、規(guī)則以及在建表時設(shè)置的數(shù)據(jù)類型 3)參照完整性 參照完整性:又稱為引用完整性。是指通過主鍵與外鍵相聯(lián)系的兩個表或兩個以上的表,相關(guān)字段的值要保持一致。 實(shí)現(xiàn)實(shí)體完整性的方法:外鍵約束 4)用戶定義的完整性 用戶定義的完整性:是根據(jù)具體的應(yīng)用領(lǐng)域所要遵循的約束條件由用戶自己定義的特定的規(guī)則。 三、約束的類型 約束:SQL Server提供的自動強(qiáng)制數(shù)據(jù)完整性的一種方法。它通過定義列的取值規(guī)則來維護(hù)數(shù)據(jù)的完整性。 常用約束:NOT NULL,CHECK、UNIQUE、PRIMARY KEY、FOREIGN KEY、DEFAULT 1)主鍵約束:在表中定義一個主鍵來惟一標(biāo)識表中的每行記錄 特點(diǎn):每個表中只能有一個主鍵,主鍵可是一列,也可是多列;主鍵不能為空;主鍵值不能重復(fù) 2)UNIQUE約束:它主要用來限制表的非主鍵列中的值不能重復(fù)。特點(diǎn):一個表中可以定義多個惟一約束 3)NOT NULL約束:它用來設(shè)定某列值不能為空。 特點(diǎn):如果設(shè)定某列為NOT NULL,則在添加記錄時,則此列必須插入數(shù)據(jù)。4)CHECK約束:它使用邏輯表達(dá)式來限制表中的列可以接受哪些數(shù)據(jù)值。 例如:成績值應(yīng)該在0-100之間,則可以為成績字段創(chuàng)建CHECK約束,使取值在正常范圍內(nèi)。 5)DEFAULT約束:它為表中某列建立一個默認(rèn)值,當(dāng)為表中添加記錄時,如果沒有提供輸入值,則自動以默認(rèn)值賦給該列。 特點(diǎn):默認(rèn)值可以為常量、函數(shù)或表達(dá)式。使用默認(rèn)值可以提高數(shù)據(jù)輸入的速度。6)FOREIGN KEY約束 外鍵:是指一個表中的一列或列組合,它雖不是該表的主鍵,但是另一個表的主鍵。特點(diǎn):實(shí)現(xiàn)兩表之間相關(guān)數(shù)據(jù)的一致性。 Visual Foxpro數(shù)據(jù)庫教學(xué)方法探討 VFP數(shù)據(jù)庫應(yīng)用基礎(chǔ)課程是中等職業(yè)學(xué)校計(jì)算機(jī)專業(yè)的一門重要基礎(chǔ)課程。可以使學(xué)生掌握一種較先進(jìn)的數(shù)據(jù)庫應(yīng)用知識,進(jìn)一步學(xué)會對數(shù)據(jù)庫的操作能力和用一種數(shù)據(jù)庫語言進(jìn)行程序設(shè)計(jì)的方法,培養(yǎng)學(xué)生具有利用軟件開發(fā)環(huán)境解決實(shí)際問題的能力,為進(jìn)一步學(xué)習(xí)其它計(jì)算機(jī)知識及今后使用或開發(fā)計(jì)算機(jī)應(yīng)用程序奠定基礎(chǔ)。 VFP教學(xué)從開始到結(jié)束都是都在講解同一個問題——如何把各種日常管理信息用計(jì)算機(jī)未進(jìn)行管理。而這種形式的課程是學(xué)生以前從沒有接觸過的,他們還是帶著過去的學(xué)習(xí)方式來學(xué)習(xí)VFP數(shù)據(jù)庫程序設(shè)計(jì)的內(nèi)容,結(jié)果是每節(jié)課的學(xué)習(xí)目標(biāo)不明確,在頭腦中很難建立起“系統(tǒng)開發(fā)”的整體概念。致使學(xué)生很難掌握數(shù)據(jù)庫領(lǐng)域內(nèi)的實(shí)踐動手能力、分析問題解決問題的能力和崗位職業(yè)技能。 作者在承擔(dān)VFP課程的教學(xué)任務(wù)時,對該課程進(jìn)行了認(rèn)真的分析上述問題產(chǎn)生的原因,主要問題還是由于教師在教學(xué)過程設(shè)計(jì)上存在一定的問題,在組織教學(xué)過程中沒能給學(xué)生建立起一個完整的學(xué)習(xí)目標(biāo)框架。 如何能讓學(xué)生只有帶著明確的學(xué)習(xí)目標(biāo)來完成每一節(jié)課的學(xué)習(xí),這是教師首先應(yīng)該考慮的問題。經(jīng)過認(rèn)真的分析,作者認(rèn)為VFP教學(xué)中采取以“案例式”為主的課堂教學(xué)方式,選取學(xué)生熟悉的內(nèi)容作為課堂以實(shí)驗(yàn)用的實(shí)例——“學(xué)生成績管理系統(tǒng)”和,進(jìn)一步提高學(xué)生的學(xué)習(xí)興趣,降低學(xué)習(xí)難度,從而提高課堂教學(xué)質(zhì)量,收到良好的教學(xué)效果。 所謂案例教學(xué)法,就是以對案例的分析解決為主線,通過對案例中的問題進(jìn)行分析,激發(fā)學(xué)生的求知欲,調(diào)動學(xué)生的積極性,使學(xué)生自覺主動地學(xué)習(xí)案例,掌握原理和方法,實(shí)行科學(xué)的教育思想觀念的一種教學(xué)方式。它是一種互動式的教學(xué)方法,可以實(shí)現(xiàn)啟發(fā)式教學(xué),能夠極大地促進(jìn)學(xué)生的學(xué)習(xí)興趣,實(shí)現(xiàn)真正的教學(xué)相長。它更是實(shí)現(xiàn)理論聯(lián)系實(shí)際的現(xiàn)實(shí)可行的途徑。通過案例分析,學(xué)生可以獲得蘊(yùn)涵其中的那些已形成的教育原理、教學(xué)方法等知識,同時可以提高和發(fā)展學(xué)生的創(chuàng)造能力以及解決實(shí)際問題能力。更重要的是,通過案例教學(xué)獲得的知識是內(nèi)化了的知識,是“做中學(xué)”,獲得自己理解了的能駕馭的知識,不再像傳統(tǒng)教學(xué)下獲得的抽象的、過度概括化的生硬知識,它能立即被用到類似教學(xué)實(shí)踐情境中去解決處理類似的疑難教學(xué)問題。 在還沒有開始講解課程內(nèi)容之前,教師自己創(chuàng)作一個完整的管理系統(tǒng)實(shí)例,開始上課時,由教師對系統(tǒng)提出功能需求。等實(shí)例演示結(jié)束,教師明確指出,剛剛演示的系統(tǒng),就是VFP將要完成的學(xué)習(xí)任務(wù)。它要完成的是一個完整的信息管理系統(tǒng)。通過對實(shí)例的實(shí)際操作后,學(xué)生們會對使用“ VFP數(shù)據(jù)庫程序設(shè)計(jì)”開發(fā)的信息管理系統(tǒng)產(chǎn)生感性認(rèn)識,同時也會對VFP課程產(chǎn)生學(xué)習(xí)的興趣。將演示的系統(tǒng)逐一進(jìn)行分解,讓學(xué)生看清楚整個系統(tǒng)是由哪幾部分組成。最后對分析的結(jié)果進(jìn)行歸納總結(jié),便可得出結(jié)論:一方面是基礎(chǔ)數(shù)據(jù)的存儲,一方面是對基礎(chǔ)數(shù)據(jù)的操作。此時,教師便可以進(jìn)行正確的引導(dǎo),闡明VFP課程學(xué)習(xí)需要從始至終未完成一個小型管理系統(tǒng)的制作。 在VFP課堂教學(xué)過程中,以一個學(xué)生較熟悉的系統(tǒng)“學(xué)生成績管理系統(tǒng)”為例貫穿在整個教學(xué)實(shí)施過程中作為教學(xué)實(shí)例;適當(dāng)結(jié)合其他教學(xué)方法來完成每一節(jié)課的教學(xué)。既把實(shí)例中整個“學(xué)生成績管理系統(tǒng)”的分解結(jié)果,應(yīng)用到每一節(jié)課的教學(xué)中之。在講解新課之前,首先給學(xué)生演示本節(jié)課將要制作的實(shí)例,讓對學(xué)習(xí)的內(nèi)容有一個直觀的感性認(rèn)識,然后引入新課內(nèi)容。 實(shí)際上,一個數(shù)據(jù)庫管理系統(tǒng)設(shè)計(jì)與實(shí)現(xiàn)的過程就是不斷分解任務(wù)的過程。例如,在學(xué)生管理系統(tǒng)中,教師可以引導(dǎo)學(xué)生通過聯(lián)系實(shí)際不斷地提出這樣的問題:班級成績管理需要管理學(xué)生的成績,包括成績的錄入、成績的修改、成績的查詢、成績的備份、成績的刪除等功能;另外,班級的人數(shù)有變化時也得體現(xiàn),比如有學(xué)生退學(xué)了或進(jìn)了新的同學(xué)等,因此還必須有學(xué)生人數(shù)的增加、查詢、修改以及刪除等功能;在使用過程中有時需要打印表格的需求,所以還得有打印的功能;如果該系統(tǒng)規(guī)定專人負(fù)責(zé),還需要規(guī)定用戶名和登錄密碼,體現(xiàn)保密性等等。經(jīng)過這樣的分析,可以出來一個基本功能框架。 所有的基本內(nèi)容講解之后,留出足夠的時間,由教師帶領(lǐng)學(xué)生一起,按照系統(tǒng)開發(fā)的標(biāo)準(zhǔn)步驟,來完成一個“職工信息管理系統(tǒng)”的開發(fā),讓學(xué)生清晰地學(xué)會系統(tǒng)開發(fā)的完整過程。 通過這樣一種“學(xué)習(xí)—實(shí)踐—提高”的過程,讓學(xué)生理解數(shù)據(jù)庫的基本概念、理論和技術(shù),同時也掌握了一個簡單的數(shù)據(jù)庫應(yīng)用系統(tǒng)從分析、設(shè)計(jì)到實(shí)現(xiàn)的完整開發(fā)過程,真正做到學(xué)以致用。在VFP教學(xué)中采用實(shí)例教學(xué),創(chuàng)設(shè)情景,激發(fā)動機(jī),以實(shí)例開發(fā)作為教學(xué)的切入點(diǎn),馬上引出問題,馬上讓學(xué)生研究問題與分析問題,最終解決問題。這樣做,打破了傳統(tǒng)教學(xué)概念、命令、程序一條線的教學(xué)安排,能夠提高學(xué)生的學(xué)習(xí)興趣,進(jìn)而調(diào)動起他們主動學(xué)習(xí)新知識、探索新方法的積極性,也加深了他們對相關(guān)知識點(diǎn)的理解,為今后更加深入的學(xué)習(xí)打下良好基礎(chǔ),使學(xué)生對整個課程的學(xué)習(xí)進(jìn)入良心循環(huán)的軌道。 本教案以學(xué)生較熟悉的“學(xué)生選課系統(tǒng)”為貫穿始終的教學(xué)實(shí)例,以關(guān)系數(shù)據(jù)庫理論為指導(dǎo),通過循序漸進(jìn)的講解、演示和實(shí)驗(yàn),讓學(xué)生理解數(shù)據(jù)庫的基本概念、理論和技術(shù),掌握一個簡單的數(shù)據(jù)庫應(yīng)用系統(tǒng)從分析、設(shè)計(jì)到實(shí)現(xiàn)的完整開發(fā)過程,從而實(shí)現(xiàn)理論與實(shí)踐的結(jié)合。 以上是作者在VFP課程實(shí)際教學(xué)中實(shí)施改革的具體做法,收到了一定的成效,總體上學(xué)生的學(xué)習(xí)質(zhì)量有了明顯的提高,部分學(xué)生已能夠獨(dú)立完成小型應(yīng)用系統(tǒng)的開發(fā)。在今后的教學(xué)中,作者還會繼續(xù)努力,針對不同層次的學(xué)生,還需要做更進(jìn)一步的探索。 參考文獻(xiàn): 《SQL Server2005案例教程》教學(xué)大綱 一、教學(xué)目的: 1.通過本門課程的學(xué)習(xí),使學(xué)員掌握數(shù)據(jù)庫的概念,安裝以及數(shù)據(jù)庫在程序設(shè)計(jì)中的重要地位和作用 2.理解關(guān)系型數(shù)據(jù)庫和表,約束,索引的創(chuàng)建 3.了解SQL語言基礎(chǔ)與使用SQL語言實(shí)現(xiàn)數(shù)據(jù)的查詢與更新 4.熟悉sqlserver的應(yīng)用環(huán)境及掌握常用的管理方法 5.掌握視圖,存儲過程,觸發(fā)器等數(shù)據(jù)庫對象的創(chuàng)建與使用 6.掌握數(shù)據(jù)庫的安全管理 7.掌握數(shù)據(jù)的備份與恢復(fù) 8.掌握數(shù)據(jù)的導(dǎo)入導(dǎo)出步驟 9.理解SqlServer下事務(wù)的概念,并能在實(shí)際應(yīng)用中合理的使用事務(wù)控制命令 二、教學(xué)重點(diǎn): 1.數(shù)據(jù)庫基本概念 2.數(shù)據(jù)庫表,約束,索引的創(chuàng)建 3.使用SQL語言實(shí)現(xiàn)數(shù)據(jù)的查詢與更新 4.Select,update,delete,insert 5.index 6.constraint 7.view視圖 三、教學(xué)難點(diǎn): 1.SqlServer體系結(jié)構(gòu) 2.SqlServer下事務(wù)的概念,并能在實(shí)際應(yīng)用中合理的使用事務(wù)控制 3.存儲過程 4.觸發(fā)器 四、教學(xué)內(nèi)容及學(xué)時分配 第1章、數(shù)據(jù)庫概述 6課時 第2章、SQL Server安裝及管理 4課時 第3章、數(shù)據(jù)庫及表的設(shè)計(jì) 4課時 第4章、T-ransact SQL語言基礎(chǔ) 6課時 第5章、T-ransact SQL數(shù)據(jù)查詢與更新 14課時 第6章、視圖 6課時 第7章、存儲過程 復(fù)習(xí) 5課時 4課時 第8章、觸發(fā)器 6課時 第9章、SQL安全 3第10章、數(shù)據(jù)備份與恢復(fù) 第11章、數(shù)據(jù)轉(zhuǎn)換 復(fù)習(xí)4 課時 4課時 2課時 課時 68課時第二篇:SQLServer數(shù)據(jù)庫入門學(xué)習(xí)總結(jié)
第三篇:數(shù)據(jù)庫原理-理論教學(xué)-SQLServer數(shù)據(jù)完整性
第四篇:Visual Foxpro數(shù)據(jù)庫教學(xué)方法探討
第五篇:SqlServer教學(xué)大綱