第五章 數(shù)據(jù)庫完整性_第1頁
第五章 數(shù)據(jù)庫完整性_第2頁
第五章 數(shù)據(jù)庫完整性_第3頁
第五章 數(shù)據(jù)庫完整性_第4頁
第五章 數(shù)據(jù)庫完整性_第5頁
已閱讀5頁,還剩49頁未讀, 繼續(xù)免費閱讀

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

完整性約束條件完整性控制FoxPro的完整性小結5數(shù)據(jù)庫完整性數(shù)據(jù)庫的完整性是指數(shù)據(jù)的正確性和相容性。例如,學生的學號必須唯一;性別只能是男或女、本科學生的年齡的取值范圍為14-30的整數(shù);學生所在的系必須是學校已經(jīng)開設的系等。數(shù)據(jù)庫是否具備完整性關系到數(shù)據(jù)庫系統(tǒng)能否真實地反映現(xiàn)實世界,因此維護數(shù)據(jù)庫的完整性是非常重要的。

5數(shù)據(jù)庫完整性數(shù)據(jù)的完整性和安全性是兩個不同的概念。前者是為了防止數(shù)據(jù)庫中存在不符合語義的數(shù)據(jù),防止錯誤信息的輸入和輸出,即所謂垃圾進垃圾出(GarbageInGarbageOut)所造成的無效操作和錯誤結果。而后者是保護數(shù)據(jù)庫防止惡意破壞和非法的存取。也就是說,安全性措施的防范對象是非法用戶和非法操作,完整性措施的防范對象是不合語義的數(shù)據(jù)。5.2數(shù)據(jù)庫完整性

為維護數(shù)據(jù)庫的完整性,DBMS必須提供一種機制來檢查數(shù)據(jù)庫中的數(shù)據(jù),看其是否滿足語義規(guī)定的條件。這些加在數(shù)據(jù)庫數(shù)據(jù)之上的語義約束條件稱為數(shù)據(jù)庫完整性約束條件,它們作為模式的一部分存放入數(shù)據(jù)庫中。而DBMS中檢查數(shù)據(jù)是否滿足完整性條件的機制稱為完整性檢查。5.2數(shù)據(jù)庫完整性5.1

完整性約束條件完整性檢查是圍繞完整性約束條件進行的,因此完整性約束條件是完整性控制機制的核心。完整性約束條件作用的對象可以是關系、元組、列三種。其中列約束條件主要是列的類型、取值范圍、精度、排序等約束條件。元組的約束條件是元組中各個字段間的聯(lián)系的約束。關系的約束是若干元組間、關系集合上以及關系之間的聯(lián)系的約束。

5.1

完整性約束條件完整性約束條件涉及的這三類對象,其狀態(tài)可以是靜態(tài)的,也可以是動態(tài)的。所謂靜態(tài)約束是指數(shù)據(jù)庫每一確定狀態(tài)時的數(shù)據(jù)對象所應滿足的約束條件,它是反映數(shù)據(jù)庫狀態(tài)合理性的約束,這是最重要的一類完整性約束。動態(tài)約束是指數(shù)據(jù)庫從一種狀態(tài)轉變?yōu)榱硪环N狀態(tài)時,新、舊值之間所應滿足的約束條件,它反映數(shù)據(jù)庫狀態(tài)變遷的約束。5.1

完整性約束條件圖5.1完整性約束條件分類對象粒度對象狀態(tài)動態(tài)列級約束動態(tài)元組約束動態(tài)關系約束④⑤⑥靜態(tài)列級約束靜態(tài)元組約束靜態(tài)關系約束①②

靜態(tài)動態(tài)列元組關系5.1

完整性約束條件一、靜態(tài)列級約束靜態(tài)列級約束是對一個列的取值說明,這是最常用也是最容易實現(xiàn)的一類完整性約束。

1.對數(shù)據(jù)類型的約束(包括數(shù)據(jù)的類型、長度、單位、精度等)

2.對數(shù)據(jù)格式的約束例如,規(guī)定學號的前兩位表示入學年份,中間兩位表示系的編號,后三位為順序編號。

5.1

完整性約束條件一、靜態(tài)列級約束

3.對取值范圍或取值集合的約束例如,規(guī)定學生成績的取值范圍為0-100,性別的取值集合為[男,女]。

4.對空值的約束空值表示未定義或未知的值,它與零值和空格不同。有的列允許有空值,有的則不允許。例如學生學號不能取空值,成績可以為空值。

5.其它約束例如關于列的排序,組合列等。5.1

完整性約束條件二、靜態(tài)元組約束一個元組是由若干個列值組成的,靜態(tài)元組約束就是規(guī)定元組的各個列之間的約束關系。例如訂貨關系中包含發(fā)貨量、訂貨量等列,規(guī)定發(fā)貨量不得超過訂貨量;又如教師關系中包含職稱、工資等列,規(guī)定教授的工資不低于1000元。5.1

完整性約束條件三、靜態(tài)關系約束在一個關系的各個元組之間或者若干關系之間常常存在各種聯(lián)系或約束。常見的靜態(tài)關系約束有:實體完整性約束參照完整性約束實體完整性約束和參照完整性約束是關系模型的兩個極其重要的約束,稱為關系的兩個不變性。5.1

完整性約束條件三、靜態(tài)關系約束函數(shù)依賴約束。大部分函數(shù)依賴約束都在關系模式中定義。統(tǒng)計約束。即字段值與關系中多個元組的統(tǒng)計值之間的約束關系。例如規(guī)定部門經(jīng)理的工資不得高于本部門職工平均工資的5倍,不得低于本部門職工平均工資的2倍。5.1

完整性約束條件四、動態(tài)列級約束動態(tài)列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面:修改列定義時的約束例如,將允許空值修改成不允許空值時,如果該列目前已存在空值,則拒絕這種修改。修改列值時的約束修改列值有時需要參照其舊值,并且新舊值之間需要滿足某種約束條件。例如,職工工資調整不得低于其原來的工資,學生年齡只能增長等。5.1

完整性約束條件五、動態(tài)元組約束動態(tài)元組約束是指修改元組的值時元組中各字段間需要滿足某種約束條件。例如職工工資調整時新工資不得低于原工資+工齡*1.5倍。六、動態(tài)關系約束動態(tài)關系約束是加在關系變化前后狀態(tài)上的限制條件,例如事務一致性、原子性等約束。5.1

完整性約束條件表5.1完整性的約束條件粒度

狀態(tài)列級元組級關系級列定義元組值實體完整性約束

靜態(tài)·類型應滿足參照完整性約束

·格式的條件函數(shù)依賴約束

·值域統(tǒng)計約束

·空值動態(tài)改變列定元組新舊值關系新舊狀態(tài)義或列值之間應滿足之間應滿足的的約束件條約束條件5.2完整性控制DBMS的完整性控制機制應具有三個方面的功能:定義功能,提供定義完整性約束條件的機制。檢查功能,檢查用戶發(fā)出的操作請求是否違背了完整性約束條件。如果發(fā)現(xiàn)用戶的操作請求使數(shù)據(jù)違背了完整性約束條件,則采取一定的動作來保證數(shù)據(jù)的完整性。

5.2完整性控制檢查是否違背完整性約束的時機通常是在一條語句執(zhí)行完后立即檢查,稱這類約束為立即執(zhí)行約束(ImmediateConstraints)。

有時完整性檢查需要延遲到整個事務執(zhí)行結束后再進行,檢查正確方可提交,稱這類約束為延遲執(zhí)行約束(DeferredConstraints)。

例如銀行數(shù)據(jù)庫中“借貸總金額應平衡”的約束就應該是延遲執(zhí)行的約束。從帳號A轉一筆錢到帳號B為一個事務,從帳號A轉出前后帳就不平了,必須等轉入B后帳才能重新平衡,這是才能進行完整性檢查。如果發(fā)現(xiàn)用戶操作請求違背了完整性約束條件,系統(tǒng)將拒絕該操作,但對于延遲的約束,系統(tǒng)將拒絕整個事務,把數(shù)據(jù)庫恢復到該事務執(zhí)行前的狀態(tài)。5.2

完整性控制一條完整性規(guī)則可以用一個五元組(D,O,A,C,P)來表示,其中:D(Data)約束作用的數(shù)據(jù)對象;O(Operation)觸發(fā)完整性檢查的數(shù)據(jù)庫操作,即當用戶發(fā)出什么操作請求時需要檢查該完整性規(guī)則,是立即檢查還是延遲檢查;A(Assertion)數(shù)據(jù)對象必須滿足的斷言或語義約束,這是規(guī)則的主體;C(Condition)選擇A作用的數(shù)據(jù)對象值的謂詞;P(Procedure)違反完整性規(guī)則時觸發(fā)的過程。5.2

完整性控制例如,在“學號不能為空”的約束中D約束作用的對象為Sno屬性O插入或修改Student元組時ASno不能為空C無(A可以作用于所有記錄的Sno屬性)P拒絕執(zhí)行該操作又如,在“教授工資不得低于1000元”的約束中D約束作用的對象為工資Sal屬性O插入或修改職工元組時ASal不能少于1000C職稱=“教授”(A僅作用于職稱=“教授”的記錄)P拒絕執(zhí)行該操作5.2

完整性控制

在關系數(shù)據(jù)庫管理系統(tǒng)中,最重要的完整性約束是實體完整性和參照完整性,其它完整性約束條件則可以歸入用戶定義的完整性。目前許多關系數(shù)據(jù)庫管理系統(tǒng)都提供了定義和檢查實體完整性、參照完整性和用戶定義完整性的功能。對于違反實體完整性和用戶定義完整性的操作一般都采用拒絕執(zhí)行的方式進行處理。而對于違反參照完整性的操作,并不都是簡單地拒絕執(zhí)行,有時要根據(jù)應用語義執(zhí)行一些附加操作,以保證數(shù)據(jù)庫的正確性。下面我們來討論一下關系數(shù)據(jù)庫管理系統(tǒng)在實現(xiàn)參照完整性要考慮的幾個問題:

5.2

完整性控制

1.外碼能否接受空值問題例如,職工-部門數(shù)據(jù)庫包含職工表EMP和部門表DEPT,其中DEPT關系的主碼為部門號Deptno,EMP關系的主碼為職工號Empno,外碼為部門號Deptno,稱DEPT為被參照關系或目標關系,EMP為參照關系。

EMP中,某一元組的Deptno列若為空值,表示這個職工尚未分配到任何部門工作。這和應用環(huán)境的語義是相符的,因此EMP的Deptno列可以取空值。5.2

完整性控制

1.外碼能否接受空值問題

但在學生-選課數(shù)據(jù)庫中,Student關系為被參照關系,其主碼為Sno。SC為參照關系,外碼為Sno。若SC的Sno為空值,則表示尚不存在的某個學生,或者某個不知學號的學生,選修了某門課程,其成績記錄在Grade列中。這與學校的應用環(huán)境是不相符的,因此SC的Sno列不能取空值。因此在實現(xiàn)參照完整性時,系統(tǒng)除了應該提供定義外碼的機制,還應該提供定義外碼列是否允許空值的機制。5.2

完整性控制2.在被參照關系中刪除元組的問題例如要刪除Student關系中Sno=95001的元組,而SC關系中又有4個元組的Sno都等于95001,一般地,當刪除被參照關系的某個元組,而參照關系存在的若干元組,其外碼值與被刪除元組的主碼值相同,這時可有三種不同策略:5.2

完整性控制級聯(lián)刪除(CASCADES)

將參照關系中所有外碼值與被參照關系中要刪除元組主碼值相同的元組一起刪除。例如將上面Sc關系中4個Sno=95001的元組一起刪除。如果參照關系同時又是另一個關系的被參照關系,則這種刪除操作會繼續(xù)級聯(lián)下去。5.2.2完整性控制受限刪除(RESTRICTED)

僅當參照關系中沒有任何元組的外碼值與被參照關系中要刪除元組主碼值相同時,系統(tǒng)才執(zhí)行刪除操作,否則拒絕此操作。例如對于上面的情況,系統(tǒng)將拒絕刪除Student關系中Sno=95001的元組。5.2

完整性控制置空值刪除(NULLIFIES)

刪除被參照關系的元組,并將參照關系中相應元組的外碼值置空。例如。例如將上面Sc關系中所有Sno=95001的元組的Sno值置為空值。這三種處理方法,哪一種是正確的呢?這要依應用環(huán)境的語義來定。在學生-選課數(shù)據(jù)庫中,顯然第1種方法是對的。因為當一個學生畢業(yè)或退學后,他的個人記錄從Student表中刪除了,他的選課記錄也應隨之從SC表中刪除。5.2

完整性控制3.在參照關系中插入元組時的問題例如向SC關系插入(99001,1,90)元組,而Student關系中尚沒有Sno=99001的學生,一般地,當參照關系插入某個元組,而被參照關系不存在相應的元組,其主碼值與參照關系插入元組的外碼值相同,這時可以有以下策略:5.2

完整性控制受限插入

僅當被參照關系中存在相應的元組,其主碼值與參照關系插入元組的外碼值相同時,系統(tǒng)才執(zhí)行插入操作,否則拒絕此操作。例如對于上面的情況,系統(tǒng)將拒絕向SC關系插入(99001,1,90)元組。遞歸插入首先向被參照關系中插入相應的元組,其主碼值等于參照關系插入元組的外碼值,然后向參照關系插入元組。例如對于上面的情況,系統(tǒng)將首先向Student關系插入Sno=99001的元組,然后向SC關系插入(99001,1,90)元組。4.修改關系中主碼的問題不允許修改主碼在有些RDBMS中,修改關系主碼操作是不允許的,例如不能用UPDATE語句將學號95001改為95102。如果需要修改主碼值,只能先刪除該元組,然后再把具有新主碼的元組插入到關系中。5.2

完整性控制允許修改主碼在有些RDBMS中,允許修改關系主碼,但必須保證主碼的唯一性和非空,否則拒絕修改。當修改的關系是被參照關系時,還必須檢查參照關系,是否存在這樣的元組,其外碼值等于被參照關系要修改的主碼值。例如要將Student關系中Sno=950001的Sno值改為960123,而SC關系中有4個元組的Sno=950001,這時與在被參照關系中刪除元組的情況類似,可以有:級聯(lián)修改、拒絕修改、置空值修改三種策略加以選擇。5.2

完整性控制

當修改的關系是參照關系時,還必須檢查被參照關系,是否存在這樣的元組,其主碼值等于被參照關系要修改的外碼值。例如要把SC關系中(950001,1,90)的元組修改為Sno值改為(990001,1,90),而Student關系中尚沒有Sno=990001的學生,這時與在參照關系中插入元組的情況類似,可以有:受限插入和遞歸插入兩種策略加以選擇。從上面的討論看到DBMS在實現(xiàn)參照完整性時,除了要提供定義主碼、外碼機制外,還需要提供不同的策略供用戶選擇。選擇哪種策略,都要根據(jù)應用環(huán)境的要求確定。5.2

完整性控制一、FoxPro中的實體完整性

FoxPro在CREATETABLE語句中提供了PRIMARYKEY子句,供用戶在建表時指定關系的主碼列。例如,在學生-選課數(shù)據(jù)庫中,要定義Student表的Sno為主碼,可使用如下語句:

CREATETABLEStudent

(SnoNUMBER(8)PRIMARYKEY,

SnameCHAR(8),

SageNUMBER(2))

其中,PRIMARYKEY表示Sno是Student表的主碼。如果用PK_SNO做此主碼的約束名,則用如下語句:

CREATETABLEStudent

(SnoNUMBER(8),

SnameCHAR(8),

SageNUMBER(2),

PRIMARYKEYSnoTagPK_Sno)

5.3

FoxPro完整性

若要在SC表中定義(Sno,Cno)為主碼,則用下面語句建立SC表:

CREATETABLESC

(SnoNUMBER(8),

CnoNUMBER(2),

GradeNUMBER(2),

PRIMARYKEYSno+CnotagSnocno)

用PRIMARYKEY語句定義了關系的主碼后,每當用戶程序對主碼列進行更新操作時,系統(tǒng)自動進行完整性檢查,凡操作使主碼值為空或使主碼值在表中不唯一,系統(tǒng)拒絕此操作,從而保證了實體完整性。5.3FoxPro完整性二、

FoxPro中的參照完整性

FoxPro的CREATETABLE語句也可以定義參照完整性規(guī)則,即用FOREINGKEY子句定義那些列為外碼列,用REFERENCES子句指明這些外碼相應于那個表的主碼。參照完整性規(guī)則,由用戶在參照完整性編輯中自己定義(分為級聯(lián)、限制和忽略)。

5.3FoxPro完整性例如,使用如下SQL語句建立SC表

CREATETABLESC

(SnoNUMBER(8)REFERENCESstudentTAGSno,

CnoNUMBER(2)REFERENCESCourseTAGCno,

GradeNUMBER(2),

PRIMARYKEYSno+CnotagSnocno)

CREATETABLESC

(SnoNUMBER(8),

CnoNUMBER(2),

GradeNUMBER(2),

PRIMARYKEYSno+CnotagSnocno,

FOREIGNKEYsnotagSnoREFERENCESstudentTAGSno,

FOREIGNKEYCnotagCnoREFERENCESCourseTAGCno)

5.3FoxPro完整性表明Sc是參照表,Student為其被參照表,SC表中Sno為外碼,它相應于Student表中的主碼Sno。

當刪除或修改Student表中某個元組的主碼時要檢查Sc中是否有元組的Sno值等于Student中要刪除的元組的Sno值,然后根據(jù)用戶在參照完整性編輯中自己定義的操作進行,如果選擇級聯(lián),則做級聯(lián)刪除或修改,如果選擇限制,則系統(tǒng)拒絕這一更新或刪除操作,如果用戶選擇忽略,則忽略參照完整性的檢測。

5.3FoxPro完整性三、

FoxPro中用戶定義的完整性除實體完整性和參照完整性外,應用系統(tǒng)中往往還需要定義與應用有關的完整性限制。例如:要求某一列的值不能取空值,要在表中是唯一的,要在某個取值范圍中等。

FoxPro允許用戶在建表時定義下列完整性約束:列值非空(NOTNULL短語)列值唯一(UNIQUE短語)檢查列值是否滿足一個布爾表達式(CHECK短語)5.3FoxPro完整性例1建立學生表Student,要求學生姓名Sname列取值唯一,學號Sno列為主碼。

CREATETABLEStudent

(SnoNUMBER(8)PRIMARYKEY,

SnameCHAR(8)UNIQUE,

SageNUMBER(2))

該約束要求Sname列值唯一。

5.3FoxPro完整性例2建立學生登記表Student,要求學號在90000~99999之間,年齡<29,性別只能是“男”或“女”,姓名非空。CREATETABLEStudent

(SnoNUMBER(5)CHECKSno>90000ANDSno<99999,

SnameCHAR(20)NOTNULL,

SageNUMBER(3)CHECKsage<29ERROR“sage<29”,

SsexCHAR(2)CHECKssex='男'orssex='女')

5.3FoxPro完整性例3建立職工表EMP,要求每個職工的應發(fā)工資不得超過3000元。應發(fā)工資實際上就是實發(fā)工資列Sal與扣除項Deduct之和。

CEARTETABLEEMP

(EnoNUMBER(4),

EnameCHAR(10),

JobCHAR(9),

SalNUMBER(7,2),

DeductNUMBER(7,2),

DeptnoNUMBER(2),

CHECKSal+Deduct<=3000)

5.3

FoxPro完整性四、觸發(fā)器(Trigger)

觸發(fā)器(Trigger)是用戶定義在關系表上的一類靠事件驅動的特殊過程。一旦定義,任何用戶對該數(shù)據(jù)表的增、刪、改操作均由服務器自動激活相應的觸發(fā)器,在DBMS核心層進行集中的完整性控制。

5.3

FoxPro完整性在FoxPro中,除列值非空、列值唯一、檢查列值是否滿足一個布爾表達式外,用戶還可以通過觸發(fā)器(Trigger)來實現(xiàn)其它完整性規(guī)則。

FoxPro定義數(shù)據(jù)庫觸發(fā)器的語句是CREATETRIGGER。

其格式為:

CREATETRIGGERONTableNameFORDELETE|INSERT|UPDATEASlExpression

5.3FoxPro完整性例為學生表定義完整性規(guī)則“學生的年齡不大于30歲”。

CREATETRIGGEROnstudentForUPDATEAssage<30

5.3

FoxPro完整性

綜上所述,

FoxPro提供了CREATETABLE語句和CREATETRIGGER語句定義完整性約束條件,其中用CREATETRIGGER語句可以定義很復雜的完整性約束條件。完整性約束條件一旦定義好,

FoxPro會自動執(zhí)行相應的完整性檢查,對違反完整性約束條件的操作或拒絕執(zhí)行或執(zhí)行事先定義的操作。5.3

FoxPro完整性5.3FoxPro的完整性CREATETABLE|DBFTableName1[FREE] (FieldName1FieldType[(nFieldWidth[,nPrecision])] [NULL|NOTNULL] [CHECKlExpression1[ERRORcMessageText1]] [DEFAULTeExpression1] [PRIMARYKEY|UNIQUE] [REFERENCESTableName2[TAGTagName1]] [NOCPTRANS] [,FieldName2...] [,PRIMARYKEYeExpression2TAGTagName2|,UNIQUEeExpression3TAGTagName3] [,FOREIGNKEYeExpression4TAGTagName4[NODUP] REFERENCESTableName3[TAGTagName5]] [,CHECKlExpression2[ERRORcMessageText2]])5.3FoxPro的完整性NULLAllowsnullvaluesinthefield.Ifoneormorefieldscancontainnullvalues,themaximumnumberoffieldsthetablecancontainisreducedbyone,from255to254.NOTNULLPreventsnullvaluesinthefield.

IfyouomitNULLandNOTNULL,thecurrentsettingofSETNULLdeterminesifnullvaluesareallowedinthefield.However,ifyouomitNULLandNOTNULLandincludethePRIMARYKEYorUNIQUEclause,thecurrentsettingofSETNULLisignoredandthefielddefaultstoNOTNULL.5.3FoxPro的完整性CHECKlExpression1Specifiesavalidationruleforthefield.lExpression1canbeauser-definedfunction.Notethatwhenablankrecordisappended,thevalidationruleischecked.Anerrorisgeneratedifthevalidationruledoesnallowforablankfieldvalueinanappendedrecord.ERRORcMessageText1SpecifiestheerrormessageVisualFoxProdisplayswhenthevalidationrulespecifiedwithCHECKgeneratesanerror.ThemessageisdisplayedonlywhendataischangedwithinaBrowsewindoworEditwindow.

DEFAULTeExpression1Specifiesadefaultvalueforthefield.ThedatatypeofeExpression1mustbethesameasthefielddatatype.

5.3FoxPro的完整性PRIMARYKEYCreatesaprimaryindexforthefield.Theprimaryindextaghasthesamenameasthefield.UNIQUECreatesacandidateindexforthefield.Thecandidateindextaghasthesamenameasthefield.FOREIGNKEYeExpression4TAGTagName4[NODUP]Createsaforeign(non-primary)index,andestablishesarelationshiptoaparenttable.eExpression4specifiestheforeignindexkeyexpressionandTagName4specifiesthenameoftheforeignindexkeytagthatiscreated.Indextagnamescancontainupto10characters.IncludeNODUPtocreateacandidateforeignindex.REFERENCESTableName3[TAGTagName5]Specifiestheparenttabletowhichapersistentrelationshipisestablished.IncludeTAGTagName5toestablisharelationbasedonanindextagfortheparenttable.Indextagnamescancontainupto10characters.IfyouomitTAGTagName5,therelationshipisestablishedusingtheparenttable抯primaryindexkeybydefault.FoxPro修改基本表的命令格式:ALTERTABLETableName1 ADD|ALTER[COLUMN]FieldName1

FieldType[(nFieldWidth[,nPrecision])] [NULL|NOTNULL] [CHECKlExpression1[ERRORcMessageText1]] [DEFAULT

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經(jīng)權益所有人同意不得將文件中的內容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲空間,僅對用戶上傳內容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

評論

0/150

提交評論