數(shù)據(jù)庫實驗指導(dǎo)書_第1頁
數(shù)據(jù)庫實驗指導(dǎo)書_第2頁
數(shù)據(jù)庫實驗指導(dǎo)書_第3頁
數(shù)據(jù)庫實驗指導(dǎo)書_第4頁
數(shù)據(jù)庫實驗指導(dǎo)書_第5頁
已閱讀5頁,還剩15頁未讀, 繼續(xù)免費閱讀

下載本文檔

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

文檔簡介

目錄實驗一關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL.....................................................................1實驗二數(shù)據(jù)庫完整性技術(shù).................................................................................4實驗三數(shù)據(jù)庫安全性技術(shù).................................................................................8實驗四數(shù)據(jù)庫設(shè)計...........................................................................................15實驗五數(shù)據(jù)庫恢復(fù)技術(shù)...................................................................................20實驗六數(shù)據(jù)庫編程...........................................................................................25《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書實驗一關(guān)系數(shù)據(jù)庫標(biāo)準(zhǔn)語言SQL【實驗?zāi)康摹吭诮o定的關(guān)系數(shù)據(jù)庫管理系統(tǒng)MSSQLServer環(huán)境下,通過實驗學(xué)生能夠:1、MSSQLSERVER認識及其環(huán)境熟悉,了解T-SQL對標(biāo)準(zhǔn)SQL的擴充。2、掌握T-SQL環(huán)境下數(shù)據(jù)定義包括數(shù)據(jù)庫、基本表、視圖、索引定義。3、掌握T-SQL環(huán)境下數(shù)據(jù)操縱包括數(shù)據(jù)插入、刪除、修改。4、掌握T-SQL環(huán)境下數(shù)據(jù)查詢及其各種變化?!緦嶒炐再|(zhì)】驗證性實驗【實驗導(dǎo)讀】在MSSQLServer的Transact-SQL(簡稱T-SQL)環(huán)境下,一般包括數(shù)據(jù)定義語言(DDL)、數(shù)據(jù)操縱語言(DML)、數(shù)據(jù)控制語言(DCL)等。DDL包括定義數(shù)據(jù)庫(Database)、定義基本表(Table)、定義視圖(View)、定義索引(Index)等。DML包括插入(Insert)、刪除(Delete)、修改(Update)、查詢(Select),由于查詢使用的頻率及其重要性,將其單列出來。DCL可分為授權(quán)(Grant)與回收(Revoke)。下面給出基本語法,每個語句的詳細語法參見“聯(lián)機從書”的“Transact-SQL參考”。1、數(shù)據(jù)定義語言(DDL)(1)定義數(shù)據(jù)庫(Database)CREATEDATABASE<數(shù)據(jù)庫名><數(shù)據(jù)庫名>命名規(guī)則遵從一般標(biāo)識符規(guī)則。在定義表及其它元素之前,必須將查詢分析器的當(dāng)前數(shù)據(jù)庫置為<數(shù)據(jù)庫名>。采用USE<數(shù)據(jù)庫名>。(2)定義基本表(Table)CREATETABLE<表名>()()給出每一列的說明包括列名、數(shù)據(jù)類型及長度,還給出相關(guān)列約束或表約束子句。<表名>、<列名>命名規(guī)則遵從一般標(biāo)識符規(guī)則。(3)定義視圖(View)CREATEVIEW<視圖名>AS<SELECT語句塊>視圖作為關(guān)系數(shù)據(jù)庫系統(tǒng)結(jié)構(gòu)外模式的基本單元,用于定義最終用戶(End-User)數(shù)據(jù)源。在視圖定義中可以采用復(fù)雜的SELECT語句。(4)定義索引(Index)CREATEINDEX<索引名>2、數(shù)據(jù)操縱語言(DML)插入(Insert)、刪除(Delete)、修改(Update)數(shù)據(jù)只針對單個關(guān)系。DML語句可能會造成數(shù)據(jù)不一致。在每條語句執(zhí)行之前,MSSQLServer會驗證每條語句是否符合完整性要求包括實體完整性、參考完整性、用戶定義的完整性。(1)插入數(shù)據(jù)INSERT[INTO]<關(guān)系名>[(column_list)](data_values)數(shù)據(jù)values值與列列表要匹配個數(shù)與類型。以下類型的數(shù)據(jù)values值不用使用引號:整型數(shù)據(jù)類型(bit,int,smallint,tinyint)、貨幣數(shù)據(jù)類型(money,smallmoney)、數(shù)字數(shù)據(jù)類型(decimal,numeric)、浮點類型數(shù)據(jù)(real,float)。對于以下數(shù)據(jù)類型就要對values值加單引號:字符數(shù)據(jù)類型(char,varchar,text)、復(fù)雜的日期/時間類型數(shù)據(jù)(datetime,smalldatetime)。<關(guān)系名>可以是表名或視圖名。(2)刪除數(shù)據(jù)DELETE[FROM]table_name[WHEREsearch_condition]刪除符合條件的元組。(3)更新數(shù)據(jù)1《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書UPDATEtable_nameSETcolumn_name={expression|DEFAULT|NULL}[,...n][FROMtable_name[,...n]][WHEREsearch_condition]刪除滿足條件的元組。3、數(shù)據(jù)查詢語言(SELECT)SELECT是SQL中使用最頻繁的語句,其變化形式繁多。其基本形式:SELECTquery_expression|column_list|*FROMtable_name_list|view_name_list[WHEREcondition_expression][GROUPBYcolumn_name_list[HAVINGcondition_expression]][ORDERBYorder_expression[ASC|DESC]]常用的統(tǒng)計函數(shù):SUM()----返回一個數(shù)字或計算列的總和AVG()----對一個數(shù)字列或計算求列平均值MIN()----返回一個數(shù)字或一個數(shù)字表達式的最小值MAX()----返回一個數(shù)字或一個數(shù)字表達式的最大值COUNT()----返回滿足SELECT語句中指定條件的元組數(shù)量COUNT(*)----返回找到的行數(shù)4、數(shù)據(jù)控制語言(DCL)MSSQLServer的安全性建立在認證和訪問許可兩種機制上即用戶要經(jīng)過兩個安全性階段:身份驗證和授權(quán)(權(quán)限驗證)。MSSQLServer的安全模式中包括登陸(login)、數(shù)據(jù)庫用戶(user)、權(quán)限、角色(role)等。用戶(user)與登陸(login)是兩個不同的概念,其中所有的數(shù)據(jù)庫用戶(user)必須與某一登陸(login)相匹配。MSSQLServer的權(quán)限分為:對象權(quán)限:針對表、視圖、存儲過程等數(shù)據(jù)庫對象(元素)而言,決定了能對這些對象執(zhí)行哪些操作。不同類型的對象支持不同的操作。語句權(quán)限:指數(shù)據(jù)庫用戶執(zhí)行某些語句的操作權(quán)如創(chuàng)建數(shù)據(jù)庫、表、視圖等。這些語句雖然包含操作對象,但這些對象在操作前并不存在于數(shù)據(jù)庫中。(教材中說明成對數(shù)據(jù)庫而言)。(1)授權(quán)GRANT<權(quán)限>ON<對象名>TO<用戶名>(2)收回權(quán)限REVOKE<權(quán)限>ON<對象名>FROM<用戶名>【實驗內(nèi)容】1、MSSQLSERVER入門及“聯(lián)機從書”介紹。2、熟悉MSSQLSERVER環(huán)境尤其“查詢分析器”使用。3、數(shù)據(jù)定義、數(shù)據(jù)操縱、數(shù)據(jù)查詢語句,以下數(shù)字為教材P148作業(yè)題號。(1)創(chuàng)建數(shù)據(jù)庫,置為當(dāng)前數(shù)據(jù)庫;(2)創(chuàng)建表(3);(3)創(chuàng)建索引;(4)插入數(shù)據(jù);(5)完成數(shù)據(jù)查詢(4/5);(6)定義視圖并完成查詢(11);4、根據(jù)實驗數(shù)據(jù)情況,直觀判斷語句的正確性。【實驗作業(yè)】1、閱讀MSSQLSERVER“聯(lián)機叢書”相關(guān)內(nèi)容。2、同一查詢問題有多種寫法,它們之間有何差別?3、如何驗證SQL語句的正確性?4、請實例說明教材P41第一章習(xí)題11,證明存在“連接陷阱”。2《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書5、在教材P80第二章習(xí)題5基礎(chǔ)上,用SQL:(1)查詢每項工程使用量最大的零件號,名稱和使用量。(2)查詢使用了兩種以上不同零件的工程名稱。(3)查詢使用零件總量最大的工程號。(4)查詢使用零件種類最多的工程號。6、閱讀MSSQLSERVER“聯(lián)機叢書”“CREATEDATABASE”語句,創(chuàng)建一個名為Student的數(shù)據(jù)庫,數(shù)據(jù)庫主數(shù)據(jù)文件為Student.mdf,初始大小為1MB,以10%的速度增長,不設(shè)上限;日志文件Student.ldf,初始大小為3MB,以1MB速度增長,最大不超過15MB。7、閱讀MSSQLSERVER“聯(lián)機叢書”“FROM子句”,討論T-SQL的連接形式及其含義。3《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書實驗二數(shù)據(jù)庫完整性技術(shù)【實驗?zāi)康摹?、掌握完整性的概念;2、熟悉SQLSERVER的完整性技術(shù)。3、了解SQLSERVER的違反完整性處理措施?!緦嶒炐再|(zhì)】綜合性實驗【實驗導(dǎo)讀】1、完整性概述數(shù)據(jù)庫完整性指數(shù)據(jù)的(邏輯而非物理)正確性和相容性。為了防止數(shù)據(jù)庫中存在不合語義的數(shù)據(jù),防止錯誤數(shù)據(jù)的輸入和輸出。數(shù)據(jù)庫完整性技術(shù)包括完整性約束條件與完整性檢查兩部分。完整性約束條件指為維護數(shù)據(jù)庫的完整性,DBMS提供加在數(shù)據(jù)庫數(shù)據(jù)之上的語義約束條件,作為數(shù)據(jù)庫模式的一部分存入數(shù)據(jù)庫。完整性檢查意味檢查數(shù)據(jù)庫是否滿足完整性約束條件的機制。完整性約束條件作用的對象可以是關(guān)系、元組、列三種。其中列約束主要是列的類型、取值范圍、精度、排序等的約束條件。元組的約束是元組中各個字段間的聯(lián)系的約束。關(guān)系的約束是若干元組間、關(guān)系集合上以及關(guān)系之間的聯(lián)系的約束。完整性約束條件涉及這三類對象,其狀態(tài)可以是靜態(tài)的,也可以是動態(tài)的。完整性約束條件一般分為實體完整性、參考完整性自定義完整性。定義實體完整性約束條件要考慮修改關(guān)系中主碼的問題;定義參考完整性約束條件要考慮外碼能否接受空值問題、在被參照關(guān)系中刪除元組的問題(級聯(lián)刪除或受限刪除)、在參照關(guān)系中插入元組時的問題。RDBMS一般提供定義完整性約束條件:作為表定義的一部分在創(chuàng)建表時創(chuàng)建(采用CREATETABLE);或者添加到尚沒有完整性約束條件的表中(ALTERTABLE)。2、MSSQLServer完整性控制技術(shù)詳細內(nèi)容參閱“聯(lián)機叢書”中“創(chuàng)建和管理數(shù)據(jù)庫”->“表”->“設(shè)計表”->“使用約束、默認值和空值”、“創(chuàng)建和管理數(shù)據(jù)庫”->“表”->“創(chuàng)建和修改表”相關(guān)主題以及“聯(lián)機從書”的“Transact-SQL參考”相關(guān)語句。在MSSQLServer中將完整性分為:(1)實體完整性。實體完整性將行定義為特定表的唯一實體。實體完整性強制表的標(biāo)識符列或主碼的完整性(通過索引、UNIQUE約束、PRIMARYKEY約束或IDENTITY屬性)。(2)域完整性。域完整性是指給定列的輸入有效性。強制域有效性的方法有:限制類型(通過數(shù)據(jù)類型)、格式(通過CHECK約束和規(guī)則)或可能值的范圍(通過FOREIGNKEY約束、CHECK約束、DEFAULT定義、NOTNULL定義和規(guī)則)。(3)引用完整性。在輸入或刪除記錄時,引用完整性保持表之間已定義的關(guān)系。在MSSQLServer中,引用完整性基于外碼與主碼之間或外碼與唯一碼之間的關(guān)系(通過FOREIGNKEY和CHECK約束)。引用完整性確保鍵值在所有表中一致。這樣的一致性要求不能引用不存在的值,如果鍵值更改了,那么在整個數(shù)據(jù)庫中,對該鍵值的所有引用要進行一致的更改。強制引用完整性時,MSSQLServer禁止用戶進行下列操作:當(dāng)主表中沒有關(guān)聯(lián)的記錄時,將記錄添加到相關(guān)表中。更改主表中的值并導(dǎo)致相關(guān)表中的記錄孤立。從主表中刪除記錄,但仍存在與該記錄匹配的相關(guān)記錄。4《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書(4)用戶定義完整性。用戶定義完整性使您得以定義不屬于其它任何完整性分類的特定業(yè)務(wù)規(guī)則。所有的完整性類型都支持用戶定義完整性(CREATETABLE中的所有列級和表級約束、存儲過程和觸發(fā)器)。設(shè)計表時需要識別列的有效值并決定如何強制實現(xiàn)列中數(shù)據(jù)的完整性。MSSQLServer提供多種強制列中數(shù)據(jù)完整性的機制:PRIMARYKEY約束FOREIGNKEY約束UNIQUE約束CHECK約束DEFAULT定義為空性3、PRIMARYKEY約束表中經(jīng)常有一個列或列的組合,其值能唯一地標(biāo)識表中的每一行。這樣的一列或多列稱為表的主碼,通過它可強制表的實體完整性。當(dāng)創(chuàng)建或更改表時可通過定義PRIMARYKEY約束來創(chuàng)建主碼。一個表只能有一個PRIMARYKEY約束,而且PRIMARYKEY約束中的列不能接受空值。由于PRIMARYKEY約束確保唯一數(shù)據(jù),所以經(jīng)常用來定義標(biāo)識列。當(dāng)為表指定PRIMARYKEY約束時,MSSQLServer通過為主碼列創(chuàng)建唯一索引強制數(shù)據(jù)的唯一性。當(dāng)在查詢中使用主碼時,該索引還可用來對數(shù)據(jù)進行快速訪問。如果PRIMARYKEY約束定義在不止一列上,則一列中的值可以重復(fù),但PRIMARYKEY約束定義中的所有列的組合的值必須唯一。4、FOREIGNKEY約束外碼是用于建立和加強兩個表數(shù)據(jù)之間的鏈接的一列或多列。通過將保存表中主碼值的一列或多列添加到另一個表中,可創(chuàng)建兩個表之間的鏈接。這個列就成為第二個表的外碼。當(dāng)創(chuàng)建或更改表時可通過定義FOREIGNKEY約束來創(chuàng)建外碼。FOREIGNKEY約束并不僅僅只可以與另一表的PRIMARYKEY約束相鏈接,它還可以定義為引用另一表的UNIQUE約束。盡管FOREIGNKEY約束的主要目的是控制存儲在外碼表中的數(shù)據(jù),但它還可以控制對主碼表中數(shù)據(jù)的修改。當(dāng)用戶試圖刪除或更新外碼所指向的碼時,級聯(lián)引用完整性約束可以定義MSSQLServer所采取的操作。5、UNIQUE約束可使用UNIQUE約束確保在非主碼列中不輸入重復(fù)值。盡管UNIQUE約束和PRIMARYKEY約束都強制唯一性,但在強制下面的唯一性時應(yīng)使用UNIQUE約束而不是PRIMARYKEY約束:非主碼的一列或列組合。一個表可以定義多個UNIQUE約束,而只能定義一個PRIMARYKEY約束。允許空值的列。允許空值的列上可以定義UNIQUE約束,而不能定義PRIMARYKEY約束。6、CHECK約束CHECK約束通過限制輸入到列中的值來強制域的完整性。這與FOREIGNKEY約束控制列中數(shù)值相似。區(qū)別在于它們?nèi)绾闻袛嗄男┲涤行В篎OREIGNKEY約束從另一個表中獲得有效數(shù)值列表,CHECK約束從邏輯表達式判斷而非基于其它列的數(shù)據(jù)。對單獨一列可使用多個CHECK約束。按約束創(chuàng)建的順序?qū)ζ淙≈?。通過在表一級上創(chuàng)建CHECK約束,可以將該約束應(yīng)用到多列上。7、DEFAULT約束元組中的每一列均必須有值,即使它是NULL??赡軙羞@種情況,當(dāng)向表中裝載新行時可能不知道某一列的值,或該值尚不存在。如果該列允許空值,就可以將該行賦予空值。由于有時不希5《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書望有可為空的列,因此如果合適,更好的解決辦法可能是為該列定義DEFAULT定義。當(dāng)將某行裝載到為行定義了DEFAULT的表中時,若沒有指定列值,則是隱性要求MSSQLServer將默認值裝載到該列中8、允許空值列為空性決定該列在表中是否允許空值。空值或NULL并不等于零(0)、空白或零長度的字符串(如“”),NULL意味著沒有輸入。NULL的存在通常表明值未知或未定義。例如,pubs數(shù)據(jù)庫titles表中price列的空值并不表示該書沒有價格,而是指其價格未知或尚未設(shè)定。總之,由于空值在查詢和更新時會使事情變得更復(fù)雜,而且有其它列選項,如PRIMARYKEY約束等不能使用允許空值的列,所以應(yīng)避免允許空值。如果插入某行但沒有為允許空值的列包括值,則MSSQLServer提供NULL值(除非存在DEFAULT定義或DEFAULT對象)。指定一列不允許空值而確保行中一列永遠包含數(shù)據(jù)可以保持數(shù)據(jù)的完整性。如果不允許空值,用戶在向表中寫數(shù)據(jù)時必須在列中輸入一個值,否則該行不被接收入數(shù)據(jù)庫?!緦嶒瀮?nèi)容】寫出完整、詳盡的SQL語句,根據(jù)實驗記錄結(jié)果并總結(jié)。(以教材P74作業(yè)5為例,也可采用課后練習(xí)題)一、定義完整性/*創(chuàng)建表s、p、j、spj*/定義s表;sno主碼,sname非空、city缺省值定義p表;pno主碼,pname非空、color只能取紅、藍、綠定義j表;jno主碼,jname非空定義spj表;(sno,pno,jno)主碼,參照sno、pno、jno外碼,qty介于0--1000二、插入數(shù)據(jù)插入合乎約束的數(shù)據(jù)三、設(shè)計相關(guān)實驗用例數(shù)據(jù)1、針對下列情況,如果出錯的話,給出錯誤碼,并說明原因;不出錯的話,觀察數(shù)據(jù)并說明理由。(1)插入違反約束的元組,主碼為null值(2)插入違反約束的元組,主碼取重復(fù)值(3)插入違反約束的元組,用戶定義完整性(pname非空)(4)插入違反約束的元組,用戶定義完整性(color只能取紅、藍、綠)(5)插入違反約束的元組,外碼取null值(6)插入違反約束的元組,外碼取對應(yīng)主碼沒有的值(7)修改外碼值,取對應(yīng)主碼已有的值(8)修改外碼值,取對應(yīng)主碼沒有的值(9)刪除被參照表未引用的主碼值(10)刪除被參照表引用的主碼值(11)修改被參照表未引用的主碼值(12)修改被參照表引用的主碼值2、將外碼改成級聯(lián)刪除、級聯(lián)修改。6《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書3、在2的基礎(chǔ)上,插入數(shù)據(jù)。針對下列情況,如果出錯的話,給出錯誤碼,并說明原因;不出錯的話,觀察數(shù)據(jù)并說明理由。(1)修改外碼值,取對應(yīng)主碼已有的值(2)修改外碼值,取對應(yīng)主碼沒有的值(3)刪除被參照表未引用的主碼值(4)刪除被參照表引用的主碼值(5)修改被參照表未引用的主碼值(6)修改被參照表引用的主碼值【實驗作業(yè)】1、總結(jié)數(shù)據(jù)庫完整性與安全性異同點。2、如何定義候選碼?3、如何采用觸發(fā)器實現(xiàn)參考完整性?4、如何采用觸發(fā)器實現(xiàn)實體完整性?5、如果違反完整性約束,MSSQLSERVER如何處理?應(yīng)用程序如何處理?6、學(xué)習(xí)SQLSERVER的其它完整性約束。7《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書實驗三數(shù)據(jù)庫安全性技術(shù)【實驗?zāi)康摹?、理解安全性的概念。2、在理解用戶及相關(guān)概念的基礎(chǔ)上掌握自主存取控制機制(DAC)。3、熟悉MSSQLSERVER的安全性技術(shù)。【實驗性質(zhì)】綜合性實驗【實驗導(dǎo)讀】1、安全性概述數(shù)據(jù)庫的安全性是指保護數(shù)據(jù)庫,防止不合法的使用所造成的數(shù)據(jù)泄露和破壞。數(shù)據(jù)庫系統(tǒng)中保證數(shù)據(jù)安全性的主要措施是進行存取控制,即規(guī)定不同用戶對于不同數(shù)據(jù)對象所允許執(zhí)行的操作,并控制各用戶只能存取他有權(quán)(操作權(quán)力)存取的數(shù)據(jù)。存取控制機制分為自主存取控制(DAC)與強制存取控制(MAC),主要包括兩部分:一是定義用戶權(quán)限,并將用戶權(quán)限登記到數(shù)據(jù)字典中;二是合法權(quán)限檢查。常見數(shù)據(jù)庫的安全性控制技術(shù)有:(1)用戶標(biāo)識與鑒別。(2)自主存取控制(DAC):用戶對于不同的數(shù)據(jù)對象有不同的存取權(quán)限,不同的用戶對同一對象也有不同的權(quán)限,而且用戶還可將其擁有的存取權(quán)限轉(zhuǎn)授給其他用戶。因此自主存取控制非常靈活。(3)強制存取控制(MAC):每一個數(shù)據(jù)對象被標(biāo)以一定的密級,每一個用戶也被授予某一個級別的許可證。對于任意一個對象,只有具有合法許可證的用戶才可以存取。強制存取控制因此相對比較嚴格。(4)視圖:進行存取權(quán)限控制時我們可以為不同的用戶定義不同的視圖,把數(shù)據(jù)對象限制在一定的范圍內(nèi)即通過視圖機制把要保密的數(shù)據(jù)對無權(quán)存取的用戶隱藏起來,從而自動地對數(shù)據(jù)提供一定程度的安全保護。視圖機制間接地實現(xiàn)了支持存取謂詞的用戶權(quán)限定義。(5)審計。(6)加密:對于高度敏感性數(shù)據(jù),例如財務(wù)數(shù)據(jù)、軍事數(shù)據(jù)、國家機密,除以上安全性措施外,還可以采用數(shù)據(jù)加密技術(shù)。2、MSSQLServer安全性控制技術(shù)詳細內(nèi)容參閱“聯(lián)機叢書”中“管理SQLServer”->“安全管理”MSSQLServer的安全性建立在認證和訪問許可兩種機制上即用戶要經(jīng)過兩個安全性階段:身份驗證和授權(quán)(權(quán)限驗證)。身份驗證階段使用登錄帳戶(login)標(biāo)識用戶并只驗證用戶連接MSSQLServer實例的能力。如果身份驗證成功,用戶即可連接到MSSQLServer實例。然后用戶需要訪問服務(wù)器上數(shù)據(jù)庫的權(quán)限,為此需授予每個數(shù)據(jù)庫中映射到用戶登錄的帳戶訪問權(quán)限。權(quán)限驗證階段控制用戶在MSSQLServer數(shù)據(jù)庫中所允許進行的活動。MSSQLServer的安全模式中包括登陸(login)、數(shù)據(jù)庫用戶(user)、權(quán)限、角色(role)等。用戶(user)與登陸(login)是兩個不同的概念,其中所有的數(shù)據(jù)庫用戶(user)必須與某一登陸(login)相匹配。MSSQLServer身份驗證在兩種安全驗證模式之一下工作:(1)Windows身份驗證模式(Windows身份驗證):Windows身份驗證模式使用戶得以通過MicrosoftWindowsNT4.0或Windows2000用戶帳戶進行連接。(2)混合模式(Windows身份驗證和SQLServer身份驗證):混合模式使用戶得以使用8《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書Windows身份驗證或SQLServer身份驗證與SQLServer實例連接。為了靈活起見,一般采用混合模式。設(shè)置MSSQLServer認證模式可以用“企業(yè)管理器”選擇服務(wù)器,用右鍵單擊服務(wù)器的彈出菜單選擇“屬性”項,如圖4.1,點擊“安全性”頁。圖3.13、定義登陸與用戶方法一:圖形界面:通過“企業(yè)管理器”。在選擇服務(wù)器的“安全性”->“登陸”右鍵“添加新登陸”,如圖4.2。9《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書圖3.2單擊“數(shù)據(jù)庫訪問”頁面,注意允許訪問數(shù)據(jù)庫“test”,如圖4.3圖3.3這樣登陸logtest與同名用戶logtest(訪問數(shù)據(jù)庫test)就建立起來了。如果單獨創(chuàng)建某個數(shù)據(jù)庫(如test),可在“企業(yè)管理器”->服務(wù)器->“數(shù)據(jù)庫”->“用戶”右鍵單擊用戶的彈出菜單選擇“新建數(shù)據(jù)庫用戶”,如圖3.4所示。10《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書圖3.4方法二:通過系統(tǒng)存儲過程(1)添加登陸,如圖4.5。圖3.5(2)添加用戶,如圖4.6。圖3.64、完成授權(quán)/撤銷權(quán)限。觀察授權(quán)前后的變化(以表“部門”與用戶“l(fā)ogtest”為例)。(1)授權(quán)方法一:圖形界面,通過“企業(yè)管理器”->服務(wù)器->“數(shù)據(jù)庫”->“用戶”->“l(fā)ogtest”->右鍵“所有任務(wù)”->“管理權(quán)限”,如圖3.7。11《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書圖3.7方法二:GRANT命令。(2)分別以登陸“sa”(連接1)、“l(fā)ogtest”(連接2)連接數(shù)據(jù)庫“test”,如圖4.8。圖3.8(3)在連接2執(zhí)行查詢,如圖4.9。圖4.9(4)在連接1執(zhí)行授權(quán),如圖3.10。12《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書圖3.10(5)在連接2執(zhí)行查詢,如圖4.9。結(jié)果顯然不同,見圖4.11。圖3.11(5)在連接1執(zhí)行撤銷授予的權(quán)限,再執(zhí)行查詢,其結(jié)果如圖4.9。5、設(shè)計安全機制使得用戶“test”只能查詢年齡在40歲以上(包括)職工。(1)如果用戶“test”不存在的話,按照前述方法定義用戶“test”。(2)創(chuàng)建基于表“職工”且只包含“技術(shù)科”職工視圖。(3)將“技術(shù)科”職工視圖查詢權(quán)限授予用戶“l(fā)iming”。6、設(shè)計角色“學(xué)生”,可以查看“職工”的職工號與姓名。角色(ROLE):一組權(quán)限的集合。數(shù)據(jù)庫管理員將數(shù)據(jù)庫的權(quán)限賦予角色,然后將角色再賦予給數(shù)據(jù)庫用戶或登錄帳戶,從而使數(shù)據(jù)庫用戶或登錄帳戶擁有相應(yīng)的權(quán)限。MSSQLServer提供了固定服務(wù)器角色和數(shù)據(jù)庫角色,用戶可以修改固定數(shù)據(jù)庫角色的權(quán)限,也可以自己創(chuàng)建新的數(shù)據(jù)庫角色,再分配權(quán)限給新的角色。除了系統(tǒng)預(yù)定義的角色外也可以定義(CREATEROLE)。public角色是一個特殊的數(shù)據(jù)庫角色,每個數(shù)據(jù)庫用戶都屬于它。(1)定義角色“學(xué)生”。(2)創(chuàng)建基于表“職工”且只包含“職工”的職工號與姓名的職工視圖。(3)將只包含“職工”的職工號與姓名的職工視圖查詢權(quán)限授予角色“學(xué)生”。(4)將用戶“test”作為成員加入角色“學(xué)生”,這樣用戶“test”只能查看“職工”的職工號與姓名。13《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書【實驗內(nèi)容】以教材P300題8、9為例(首先定義數(shù)據(jù)庫與表)。1、定義用戶。2、完成授權(quán)/撤銷權(quán)限。3、設(shè)計安全機制使得用戶“l(fā)iming”只能查詢年齡在40歲以上(包括)職工。4、設(shè)計安全機制使得用戶“l(fā)iming”只能訪問“職工”的職工號、姓名。5、設(shè)計角色“student”,可以查看“職工”的職工號、姓名、年齡?!緦嶒炞鳂I(yè)】1、總結(jié)自主存取控制(DAC)的優(yōu)缺點;闡述強制存取控制(MAC)的必要性。2、比較自主存取控制(DAC)與強制存取控制(MAC)的不同。3、如果違反安全性約束,應(yīng)用程序如何處理?4、如何采用觸發(fā)器實現(xiàn)安全性?例如只能在周一至周五的8:00-17:00修改職工的年齡。5、學(xué)習(xí)MSSQLSERVER的審計技術(shù)。6、學(xué)習(xí)并嘗試MSSQLServer的其它安全性約束。7、討論登錄帳號、數(shù)據(jù)庫用戶及數(shù)據(jù)庫角色之間的關(guān)系。8、探討數(shù)據(jù)庫用戶、數(shù)據(jù)庫角色與數(shù)據(jù)庫對象之間的關(guān)系,并說明直接對用戶授權(quán)與間接對用戶授權(quán)(系統(tǒng)權(quán)限與對象權(quán)限)的方法。14《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書實驗四數(shù)據(jù)庫設(shè)計【實驗?zāi)康摹勘緦嶒炌ㄟ^學(xué)生一個應(yīng)用實例設(shè)計數(shù)據(jù)庫,達到:1、掌握規(guī)范化數(shù)據(jù)庫設(shè)計包括步驟及其任務(wù)、方法、結(jié)果等。2、掌握數(shù)據(jù)庫設(shè)計過程中關(guān)鍵文檔的寫法。3、了解數(shù)據(jù)庫輔助設(shè)計工具?!緦嶒炐再|(zhì)】驗證性實驗【實驗導(dǎo)讀】1、概述數(shù)據(jù)庫設(shè)計是指對于一個給定的應(yīng)用環(huán)境,構(gòu)造最優(yōu)的數(shù)據(jù)庫模式,建立數(shù)據(jù)庫及其應(yīng)用系統(tǒng)(簡稱數(shù)據(jù)庫應(yīng)用系統(tǒng)),使之能夠有效地存儲數(shù)據(jù),滿足各種用戶的應(yīng)用需求(包括信息要求和處理要求)。數(shù)據(jù)庫設(shè)計的一個最基本的問題(輸出)是如何建立一個好的數(shù)據(jù)庫模式(邏輯結(jié)構(gòu)與物理結(jié)構(gòu)),如果可能的話包括基于數(shù)據(jù)庫應(yīng)用系統(tǒng)的設(shè)計原則。即給出一定的硬件與軟件環(huán)境下(主要包括OS與DBMS),對于一定的信息需求和處理要求(輸入),如何構(gòu)造一個適合于它們的數(shù)據(jù)模式,使數(shù)據(jù)庫系統(tǒng)無論是在數(shù)據(jù)存儲方面,還是在數(shù)據(jù)操縱方面都有較好的性能。按照規(guī)范化設(shè)計的方法,數(shù)據(jù)庫設(shè)計分為以下六個階段:需求分析、概念結(jié)構(gòu)設(shè)計、邏輯結(jié)構(gòu)設(shè)計、物理結(jié)構(gòu)設(shè)計、數(shù)據(jù)庫實施、數(shù)據(jù)庫運行和維護。有些教材還包括規(guī)劃階段。為了敘述方便我們將后兩個階段合并。2、需求分析需求分析指各種需求的收集和分析、表達,結(jié)果得到數(shù)據(jù)字典(DD)描述的數(shù)據(jù)需求和數(shù)據(jù)流圖(DFD)描述的處理需求。在結(jié)構(gòu)化設(shè)計方法中,需求分析采用自頂向下、逐層分解的方法。3、概念結(jié)構(gòu)設(shè)計通過對用戶需求進行綜合、歸納與抽象,形成一個獨立于具體DBMS的概念模型,用E-R圖表示。E-R模型方法討論了實體與實體之間的數(shù)據(jù)聯(lián)系,目標(biāo)是要設(shè)計一個“好”的數(shù)據(jù)庫模型。設(shè)計E-R圖步驟:1、確定局部應(yīng)用,一般選擇合適的中間層次。在DFD中選擇適當(dāng)層次的DFD,作為設(shè)計局部E-R圖的出發(fā)點。中層允許有一定的重疊。2、設(shè)計局部E-R圖。(1)確定實體,第一步也是關(guān)鍵一步。DFD中數(shù)據(jù)結(jié)構(gòu)、數(shù)據(jù)流、數(shù)據(jù)源、數(shù)據(jù)目的、數(shù)據(jù)存儲等根據(jù)具體情況決定,經(jīng)常作為實體。(2)確定聯(lián)系包括聯(lián)系名及其類型,即標(biāo)明:1:1,1:n,n:m。原則上:與處理框相關(guān)的輸入流(數(shù)據(jù)流),輸出流(數(shù)據(jù)目的地),輸入或輸出的工作之間的可能存在的聯(lián)系。(3)屬性屬性名盡量和數(shù)據(jù)流中數(shù)據(jù)項名相同。為簡化E-R圖,屬性可僅在DFD中描述。(4)主關(guān)鍵字屬性中標(biāo)明作為PK(primarykey)的屬性集合。(5)其它建立E-R圖,要完善DD中某些情況:描述產(chǎn)生頻率(每年/月/季),是否長期保存,變化快慢,保密級別,存在的約束。3、局部E-R圖15《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書在設(shè)計局部E-R圖的基礎(chǔ)上,將局部E-R圖兩兩合并集成為全局E-R圖。集成時要解決的問題:消除沖突、消除冗余。合并局部E-R圖中相同部分,盡可能的保留特殊部分,刪除冗余部分,用兩兩累加的方式一次集成兩個局部E-R圖。4、優(yōu)化全局E-R圖。必要時應(yīng)對全局E-R圖進行修改,重構(gòu)和優(yōu)化得到最佳的全局E-R圖方案。4、邏輯結(jié)構(gòu)設(shè)計將概念結(jié)構(gòu)轉(zhuǎn)換為某個DBMS所支持的數(shù)據(jù)模型一般為關(guān)系模型,并對其進行優(yōu)化。轉(zhuǎn)換時必須遵從轉(zhuǎn)換規(guī)則,每個規(guī)則強調(diào)轉(zhuǎn)換時必須確定每個關(guān)系的關(guān)系名、構(gòu)成的屬性、碼的確定。轉(zhuǎn)換規(guī)則可以分為三類即實體型的轉(zhuǎn)換、聯(lián)系轉(zhuǎn)換(聯(lián)系可分為二元聯(lián)系與多元聯(lián)系兩類,二元聯(lián)系劃分成1:1、1:n、n:m三種,一元聯(lián)系同二元聯(lián)系一樣處理)、關(guān)系合并規(guī)則。5、物理結(jié)構(gòu)設(shè)計為邏輯數(shù)據(jù)模型選取一個最適合應(yīng)用環(huán)境的物理結(jié)構(gòu)(存儲結(jié)構(gòu)和存取方法)。6、實施與運行、維護數(shù)據(jù)庫實施指運用DBMS提供的數(shù)據(jù)語言SQL及其宿主語言(例如C),根據(jù)邏輯設(shè)計和物理設(shè)計的結(jié)果建立數(shù)據(jù)庫,編制與調(diào)試應(yīng)用程序,組織數(shù)據(jù)入庫,并進行試運行。在編寫SQL語句之前,一般會要求提供詳細說明每個表的表實例圖(TableInstanceChart,TIC)。TIC詳細描述每個表的屬性、數(shù)據(jù)類型及其長度、各種約束(如主碼、外碼、唯一性、值域等),有些資料稱之為數(shù)據(jù)字典(注意與需求分析的結(jié)果數(shù)據(jù)字典區(qū)分開來)。數(shù)據(jù)庫應(yīng)用系統(tǒng)經(jīng)過試運行后即可投入正式運行。在數(shù)據(jù)庫系統(tǒng)運行過程中必須不斷地對其進行評價、調(diào)整與修改。7、設(shè)計舉例下面設(shè)計一個高校教學(xué)管理系統(tǒng)作為示例,簡要說明數(shù)據(jù)庫設(shè)計過程。(1)數(shù)據(jù)分析各部門對教學(xué)管理系統(tǒng)的數(shù)據(jù)要求:學(xué)生處:管理各系班級學(xué)生的基本情況。對學(xué)生而言主要有學(xué)生的學(xué)號,姓名,性別,生日,家長,郵編,家庭住址,班編號等信息。對班級而言有班級的編號,班名稱,班簡稱,班長,層次,人數(shù),入學(xué)年度,系編號等。教務(wù)處:掌握課程的基本信息以及學(xué)生各門課程的成績情況。就課程需要掌握課程的編號,課程名,學(xué)期,學(xué)分,實習(xí)周數(shù)(對實踐類課程)。各系:登錄本系學(xué)生各門課程的成績按照前述方法,根據(jù)上述數(shù)據(jù)要求,設(shè)計了其E-R模型,如圖2.1。圖4.1教學(xué)管理E-R模型16《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書(2)E-R模型轉(zhuǎn)換為關(guān)系模型根據(jù)轉(zhuǎn)換規(guī)則將上述E-R模型經(jīng)過轉(zhuǎn)換得到5個關(guān)系模式,下劃線為主碼,紅色字體為外碼:系(系編號,系名稱,系簡稱,電話,系主任,班級數(shù))。對應(yīng)實體型“系”。班級(班編號,班名稱,班簡稱,班長,層次,人數(shù),入學(xué)年度,系編號)。對應(yīng)實體型“班級”,包含了聯(lián)系“擁有”。學(xué)生(學(xué)號,姓名,性別,生日,家長,郵編,家庭住址,班編號)。對應(yīng)實體型“學(xué)生”,包含了聯(lián)系“組成”。課程(課程號,課程名,學(xué)期,學(xué)分,實習(xí)周數(shù))。對應(yīng)實體型“課程”。選修成績(學(xué)號,課程號,成績)。對應(yīng)聯(lián)系“選修”。(3)數(shù)據(jù)字典為了更好實施數(shù)據(jù)庫,給出每個關(guān)系的詳細說明。表名內(nèi)容Department系Class班級Student學(xué)生Course課程Grade選修成績1、Department字段名數(shù)據(jù)類型及長度字段中文名約束Dept_IDDecimal(5)系編號PrimaryKeyDepartmentvarchar(50)系名稱NotNullDept_Abbrvarchar(10)系簡稱Phonevarchar(50)電話Directorvarchar(50)系主任No_ClassDecimal(5)班級數(shù)NotNull,Default02、Class字段名數(shù)據(jù)類型及長度字段中文名約束Class_IDChar(7)班編號PrimaryKeyDept_IDDecimal(5)系編號ForeignKeyClassNamevarchar(30)班名稱NotNullClass_Abbrvarchar(20)班簡稱Monitorvarchar(24)班長Levelvarchar(4)層次NotNull,大專、本科、碩士、博士Enroll_Datechar(4)入學(xué)年度NotNullNo_StudentDecimal(5)人數(shù)NotNull,Default017《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書3、Student字段名數(shù)據(jù)類型及長度字段中文名約束Student_IDvarchar(9)學(xué)號PrimaryKeyClass_IDvarchar(7)班編號ForeignKeyNamevarchar(24)姓名NotNullGendervarchar(2)性別NotNull,取值:男,女BirthdayDatetime生日NotNullAddressvarchar(50)家庭地址Zip_CodeDecimal(6)郵編HouseholderVarchar(50家長4、Course字段名數(shù)據(jù)類型及長度字段中文名約束Course_IDvarchar(8)課程編號PrimaryKeyCoursevarchar(50)課程名NotNullCreditDecimal(5)學(xué)分PeriodDecimal(5)學(xué)期Practice_periodDecimal(5)實習(xí)周數(shù)5、Grade字段名數(shù)據(jù)類型及長度字段中文名約束Student_IDvarchar(9)學(xué)號ForeignKeyCourse_IDvarchar(8)課程編號ForeignKeyPrimaryKeyGradeDecimal(5)成績NotNull(4)創(chuàng)建表SQL語句(略)【實驗內(nèi)容】1、對自己熟悉的應(yīng)用領(lǐng)域完成數(shù)據(jù)庫設(shè)計,可以參照作業(yè)E24。2、編寫關(guān)鍵文檔(數(shù)據(jù)流圖與數(shù)據(jù)字典、E-R圖、關(guān)系模型、索引、SQL語句)。3、調(diào)試相應(yīng)的SQL語句。E-R圖中至少3個以上實體,每個實體5個以上屬性,至少2種以上聯(lián)系。本實驗強調(diào)文檔的規(guī)范性?!緦嶒炞鳂I(yè)】1、數(shù)據(jù)庫設(shè)計的輸入是什么?2、數(shù)據(jù)庫設(shè)計的輸出是什么?3、在規(guī)范化數(shù)據(jù)庫設(shè)計方法中哪些步驟對你比較困難?為什么?你是如何解決的?4、在解答教材“關(guān)系數(shù)據(jù)理論”習(xí)題9或習(xí)題10基礎(chǔ)上,分析歸納兩種設(shè)計方法的不同特點,18《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書并總結(jié)各自的優(yōu)點。5、總結(jié)規(guī)范化數(shù)據(jù)庫設(shè)計方法的優(yōu)缺點。6、如有可能,選擇有關(guān)輔助設(shè)計工具進行數(shù)據(jù)庫設(shè)計??偨Y(jié)此種工具的特點。19《數(shù)據(jù)庫系統(tǒng)原理》實驗指導(dǎo)書實驗五數(shù)據(jù)庫恢復(fù)技術(shù)【實驗?zāi)康摹?、在掌握事務(wù)的概念基礎(chǔ)上,理解事務(wù)特性。2、掌握數(shù)據(jù)庫恢復(fù)原理。3、熟悉SQLSERVER的基本恢復(fù)技術(shù)?!緦嶒炐再|(zhì)】驗證性實驗【實驗導(dǎo)讀】1、事務(wù)概述事務(wù)是指一個操作序列,這些操作序列要么全做,要么全都不做,它是一個不可分割的工作單位。事務(wù)中任何一個語句執(zhí)行時出錯,系統(tǒng)都會返回到事務(wù)開始前的狀態(tài)。事務(wù)是并發(fā)控制的基本單元,是數(shù)據(jù)庫維護數(shù)據(jù)一致性的單位。在每個事務(wù)結(jié)束時,都能保持數(shù)據(jù)一致性。事務(wù)中不能包含CREATEDATABASE語句。在MSSQLServer中,對事務(wù)的管理包含3個方面:事務(wù)控制語句:控制事務(wù)執(zhí)行的語句。包括將一系列操作定義為一個工作單元來處理。封鎖機制:封鎖正被一個事務(wù)修改的數(shù)據(jù),防止其他用戶訪問到“不一致”的數(shù)據(jù)。事務(wù)日志:使事務(wù)具有可恢復(fù)性。事務(wù)的控制語句包括以下幾條:BEGINTRAN:標(biāo)識一個用戶定義事務(wù)的開始。tran_name為事務(wù)的名字。COMMITTRAN:表示提交事務(wù)中的一切操作,結(jié)束一個用戶定義的事務(wù)。ROLLBACKTRAN:回滾一個事務(wù)到事務(wù)的開頭或一個保存點。表示要撤消該事務(wù)已做的操作,回滾到事務(wù)開始前或保存點前的狀態(tài)。SAVETRANsave_name:在事務(wù)中設(shè)置一個保存點。它可以使一個事務(wù)內(nèi)的部分操作回滾。不同的數(shù)據(jù)庫管理系統(tǒng)提供的封鎖類型、封鎖協(xié)議、達到的系統(tǒng)一致性級別不盡相同。但是其依據(jù)的基本原理和技術(shù)是共同的。2、數(shù)據(jù)庫恢復(fù)技術(shù)概述數(shù)據(jù)庫恢復(fù)技術(shù)確保數(shù)據(jù)庫處于一致性狀態(tài),保證事務(wù)ACID特性的基礎(chǔ)。數(shù)據(jù)庫的備份與恢復(fù)是兩個相對應(yīng)的概念,備份是恢復(fù)的基礎(chǔ),恢復(fù)是備份的目的。數(shù)據(jù)庫備份是指系統(tǒng)管理員定期或不定期地將數(shù)據(jù)庫部分或全部內(nèi)容復(fù)制到磁帶或另一個磁盤上(或其它存儲設(shè)備)保存起來的過程。備份可分為靜態(tài)備份和動態(tài)備份。數(shù)據(jù)庫恢復(fù)是指在數(shù)據(jù)庫遭到破壞時使數(shù)據(jù)庫從有效的備份中恢復(fù)正常。備份期間不允許對數(shù)據(jù)庫進行任何存取、修改活動的備份方式稱為靜態(tài)備份。備份期間允許對數(shù)據(jù)庫進行存取或修改,即各份和用戶事務(wù)可以并發(fā)執(zhí)行的備份方式稱為動態(tài)備份。在SQLServer中可創(chuàng)建維護數(shù)據(jù)庫的備份設(shè)備,使用EnterpriseManager或系統(tǒng)存儲過程來規(guī)劃和執(zhí)行備份操作和恢復(fù)操作。確定備份計劃主要考慮以下幾個方面:(1)確定備份的頻率。確定備份頻率要考慮兩個因素:一是系統(tǒng)恢復(fù)時的工作量,二是系統(tǒng)活動的事務(wù)量。對于完整數(shù)據(jù)庫備份,可以是每個月、每一周甚至是每一天進行,而事務(wù)日志備份可以是每一周、每一天甚至是每一小時進行。(2)確定備份的內(nèi)容。確定數(shù)據(jù)庫中的哪些數(shù)據(jù)需要備份。(3)確定備份的介質(zhì)。確定是使用磁盤、還是磁帶作為備份的介質(zhì)。(4)確定備份的方式。確定備份采用動態(tài)備份還是靜態(tài)備份。(5)估計備份需要的存儲空間量。在執(zhí)行備份前,應(yīng)該估計備份需要使用的存儲空間量。(6)確

溫馨提示

  • 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)用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論