當前位置:首頁 » 操作系統 » 關系資料庫的規則

關系資料庫的規則

發布時間: 2022-05-07 02:30:15

㈠ 關系型資料庫的十二准則

全關系系統應該完全支持關系模型的所有特徵。關系模型的奠基人埃德加·科德具體地給出了全關系系統應遵循的基本准則。
准則0
一個關系形的關系資料庫管理系統必須能完全通過它的關系能力來管理資料庫。
准則1
信息准則 關系資料庫管理系統的所有信息都應該在邏輯一級上用表中的值這一種方法顯式的表示。
准則2
保證訪問准則 依靠表名、主碼和列名的組合,保證能以邏輯方式訪問關系資料庫中的每個數據項。
准則3
空值的系統化處理 全關系的關系資料庫管理系統支持空值的概念,並用系統化的方法處理空值。
准則4
基於關系模型的動態的聯機數據字典 資料庫的描述在邏輯級上和普通數據採用同樣的表述方式。
准則5
統一的數據子語言 一個關系資料庫管理系統可以具有幾種語言和多種終端訪問方式,但必須有一種語言,它的語句可以表示為嚴格語法規定的字元串,並能全面的支持各種規則。
准則6
視圖更新准則 所有理論上可更新的視圖也應該允許由系統更新。
准則7
高級的插入、修改和刪除操作 系統應該對各種操作進行查詢優化。
准則8
數據的物理獨立性 無論資料庫的數據在存儲表示或訪問方法上作任何變化,應用程序和終端活動都保持邏輯上的不變性。
准則9 數據邏輯獨立性 當對基本關系進行理論上信息不受損害的任何改變時,應用程序和終端活動都保持邏輯上的不變性。
准則10
數據完整的獨立性 關系資料庫的完整性約束條件必須是用資料庫語言定義並存儲在數據字典中的。
准則11
分布獨立性 關系資料庫管理系統在引入分布數據或數據重新分布時保持邏輯不變。
無破壞准則 如果一個關系資料庫管理系統具有一個低級語言,那麼這個低級語言不能違背或繞過完整性准則。

㈡ 關系型資料庫必須遵循的三個完整性規則

實體完整性規則:主鍵約束
域完整性規則:欄位類型等范圍,bit欄位只能為1或0,int欄位只能為整數等,
引用完整性規則:外鍵約束等關聯約束

具體的資料庫設計,等你熟悉了上面的內容後,你就可以自己設計了,不但你自己可以設計,還可以進行靈活的修改,授人魚不如授人漁,^_^

㈢ 什麼是關系完整性規則關系資料庫中,常見的完整性規則有哪些,試舉例說明

關系完整性規則即指關系的正確性、相容性和有效性。它是給定的關系模型中數據及其聯系的所有制約和依存規則,用以限定資料庫狀態及狀態變化,從而保證數據的正確、相容和有效。

關系模型的完整性舉例:

1、實體完整性

如職工表將編號作為主關鍵字,那麼,該列不得有空值,否則無法對應某個具體的職工,這樣的表格不完整,對應關系不符合實體完整性規則的約束條件。

2、參照完整性

如在學生管理資料庫中,如果將選課表作為參照關系,學生表作為被參照關系,以「學號」作為兩個關系進行關聯的屬性,則「學號「是學生關系的主關鍵字,是選課關系的外部關鍵字。選課關系通過外部關鍵字「學號」參照學生關系。

3、用戶定義的完整性

例如要求「考查」課的分數以60分或40分計,在用戶輸入「考查」課的成績時,要進行檢查,以確保滿足特定的約束要求。再如年齡屬性,如果屬於某一個學生主體,則可能要求年齡在17歲到25歲之間,而如果年輕屬性屬於某一個公司員工主體,則可能要求年齡在18歲到40歲之間等。

(3)關系資料庫的規則擴展閱讀

數據的完整性約束是用來確保數據的准確性和一致性。數據的完整性就是對數據的准確性和一致性的一種保證。

數據完整性(Data Integrity)是指數據的精確(Accuracy)和可靠性(Reliability)。

分為以下四類:

1、實體完整性:規定表的每一行在表中是惟一的實體。

2、域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。

3、參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。

4、用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。

㈣ 什麼叫關系型資料庫

關系型資料庫,是指採用了關系模型來組織數據的資料庫,其以行和列的形式存儲數據,以便於用戶理解,關系型資料庫這一系列的行和列被稱為表,一組表組成了資料庫。

用戶通過查詢來檢索資料庫中的數據,而查詢是一個用於限定資料庫中某些區域的執行代碼。

關系模型可以簡單理解為二維表格模型,而一個關系型資料庫就是由二維表及其之間的關系組成的一個數據組織。

(4)關系資料庫的規則擴展閱讀:

關系型資料庫特點:

1、存儲方式:傳統的關系型資料庫採用表格的儲存方式,數據以行和列的方式進行存儲,要讀取和查詢都十分方便。

2、存儲結構:關系型資料庫按照結構化的方法存儲數據,每個數據表都必須對各個欄位定義好,再根據表的結構存入數據,這樣做的好處就是由於數據的形式和內容在存入數據之前就已經定義好了,所以整個數據表的可靠性和穩定性都比較高。

3、存儲規范:關系型資料庫為了避免重復、規范化數據以及充分利用好存儲空間,把數據按照最小關系表的形式進行存儲,這樣數據管理的就可以變得很清晰、一目瞭然,當然這主要是一張數據表的情況。

4、擴展方式:由於關系型資料庫將數據存儲在數據表中,數據操作的瓶頸出現在多張數據表的操作中,而且數據表越多這個問題越嚴重,如果要緩解這個問題,只能提高處理能力,也就是選擇速度更快性能更高的計算機。

5、查詢方式:關系型資料庫採用結構化查詢語言來對資料庫進行查詢,sql早已獲得了各個資料庫廠商的支持,成為資料庫行業的標准,它能夠支持資料庫的CRUD操作,具有非常強大的功能,SQL可以採用類似索引的方法來加快查詢操作。

6、規范化:在資料庫的設計開發過程中開發人員通常會面對同時需要對一個或者多個數據實體進行操作,這樣在關系型資料庫中,一個數據實體一般首先要分割成多個部分,然後再對分割的部分進行規范化,規范化以後再分別存入到多張關系型數據表中,這是一個復雜的過程。

7、事務性:關系型資料庫強調ACID規則(原子性(Atomicity)、一致性(Consistency)、隔離性(Isolation)、持久性(Durability)),可以滿足對事務性要求較高或者需要進行復雜數據查詢的數據操作,而且可以充分滿足資料庫操作的高性能和操作穩定性的要求。

8、讀寫性能:關系型資料庫十分強調數據的一致性,並為此降低讀寫性能付出了巨大的代價,雖然關系型資料庫存儲數據和處理數據的可靠性很不錯,但一旦面對海量數據的處理的時候效率就會變得很差,特別是遇到高並發讀寫的時候性能就會下降的非常厲害。

9、授權方式:關系型資料庫常見的有 Oracle,SQLServer,DB2,Mysql,除了Mysql大多數的關系型資料庫如果要使用都需要支付一筆價格高昂的費用,即使是免費的Mysql性能也受到了諸多的限制。

㈤ 關系資料庫有哪幾種完整性

3.1
SQL
中的完整性約束
SQL把各種完整性約束作為資料庫模式定義的一部分。既有效防止了對資料庫的意外破壞,提高了完整性檢測的效率,又可以減輕編程人員的負擔。
SQL對三種不同完整性約束的設置及檢測,採取了不同的方式加以實現。下面分別介紹。
3.1.1
實體完整性和主碼
實體完整性規定,主碼的任何屬性都不能為空,因為,概念模型中實體和聯系都是可區分的,而且它們以碼為唯一性標識。如果,主碼的屬性值可以為空,則意味著在概念模型中存在著不以碼為唯一性標識的實體。這顯然是前後矛盾的。
那麼怎樣保證實體完整性呢?SQL中實體完整性是通過主碼來實現的。一旦某個屬性或屬性組被定義為主碼,該主碼的每個屬性就不能為空值,並且在關系中不能出現主碼值完全相同的兩個元組。
主碼的定義是在Create
Table
語句中使用
Primary
Key關鍵字來實現的。方法有兩種:
a)
在屬性定義後加上關鍵字
Primary
Key;
b)
在屬性表定義後加上額外的定義主碼的子句:Primary
Key(<主碼屬性名表>)
說明:
²
如果主碼僅由一個屬性組成,上述兩種方法都可定義,若由兩個或以上的屬性組成,則只能用上述第二種方法定義了。
²
對於候選碼的說明方法,可以用Unique說明該屬性的值不能重復出現。Unique的使用與Primary
Key相似。
²
一個表中只能有一個主碼定義,但可以有多個Unique說明。
²
SQL中,並沒有強制為每個關系指定主碼,但為每個關系指定主碼通常會更好一些。(因為主碼的指定可以確保關系的實體完整性)
3.1.2
參照完整性約束與外部碼
參照完整性是對關系間引用數據的一種限制。即:若屬性組A是基本關系R1的外碼,它與基本關系R2的主碼K相對應,則R1中每個元組在A上的值必須:要麼取空值,要麼等於R2中某元組的主碼值。
一、外部碼約束的說明:
SQL中就是利用外部碼的說明來實現參照完整性約束,限製表中某些屬性的取值的。外部碼的說明也有兩種方法:
1、在該屬性的說明後直接加上關鍵字」REFERENCES
<表名>(<屬性名>)」,其中表名稱為參照關系名,屬性名稱為參照關系的主碼。
2、在Create
Table
語句的屬性清單後,加上外部碼說明子句,格式為:
FOREIGN
KEY
<屬性名表1>
REFERENCES
<表名>(<屬性名表2>)
上式中的屬性名表1和屬性名表2中屬性可以多於一個,但必須前後對應。
二、參照完整性約束的實現策略
前面講了,外部碼的取值只有兩種情況:要麼取空,要麼取參照關系中的主碼值。可是當用戶操作違反了這個規則時,如何保持此約束呢?
SQL提供了三種可選方案:
1、RESTRICT(限制策略):
當用戶對表進行違反了上述完整性約束、條件的插入、刪除或修改操作時,將會被系統拒絕。
2、CASCADE(級聯策略):
當對參照關系進行刪除和修改時,SQL所提供的一種方案。在這種策略下,當刪除或修改參照關系中某元組的主碼值時,被參照關系中,那些外部碼具有該值的元組也將被刪除或修改,以保證參照完整性。
3、SET
NULL(置空策略):
置空策略也是針對參照關系的刪除或修改操作的。在這種策略下,當刪除參照關系中的某一元組或修改某一元組的主碼值時,被參照關系中外碼值等於該主碼值的元組在該外碼上的值將被置空
說明:
當用戶不指定參照完整性的實現策略時,一般被默認為RESTRICT(限制策略)。實現策略的說明通常被加在外部碼的說明後面,格式為:ON
DELETE
SET
NULL
ON
UPDATE
CASCADE。
3.1.3
用戶自定義完整性約束
對於用戶自定義完整性約束,SQL提供了非空約束、對屬性的CHECK約束、對元組的CHECK約束、觸發器等來實現用戶的各種完整性要求。
1、非空約束:
在CRETE
TABLE
中的屬性定義後面加上NOT
NULL關鍵字即定義了該屬性不能取空值。
2、基於屬性的CHECK約束
使用CHECK(檢查)子句可保證屬性值滿足某些前提條件。其一般格式為:
CHECK(<條件>)
它既可跟在屬性定義的後面,也可在定義語句中另增一子句加以說明。
如:CHECK(age>=18
AND
age<=65);
CHECK(sex
IN
(「男」,」女」));
CHECK(dno
IN(select
dno
from
department));
從上例中可以看出,CHECK子句的條件中還可以帶子查詢。
3、基於元組的CHECK約束
基於元組的CHECK約束往往要涉及到表中的多個域。所以它是元組約束。在對整個元組完成插入或對某一元組的修改完成之後,系統將自動檢查是否符合CHECK條件表達式。若不符合條件,系統將拒絕該插入或修改操作。
基於元組CHECK約束的說明方法是在CREATE
TABLE語句中的屬性表、主碼、外部碼的說明之後加上CHECK子句。
3.1.4
約束的更新
約束與資料庫中的表和視圖一樣,可以進行增、刪、改的更新操作。為了改和刪約束,需要在定義約束時對其進行命名,在各種約束的說明前加上關鍵字CONSTRAINT
和該約束的名稱即可。
例如:在employee表的create
table語句中:
eno
char(4)
CONSTRAINT
PK_employee
PRIMARY
KEY,
dno
char(4)CONSTRAINT
FK_employee
FOREIGN
KEY
REFERENCES
department(dno);
當對各種約束進行命名後,就可以用ALTER
TABLE語句來更新與屬性或表有關的各種約束。如:
ALTER
TABLE
employee
DROP
CONSTRAINT
FK_employee;
ALER
TABLE
Salary
ADD
CONSTRAINT
RightSalary
CHECK(Insure+Fund<Rest);
上述的增加約束,實際上也是通過ALTER
TABLE語句定義約束的一種形式。
SQL不能直接修改約束,修改某一個約束實際上是用ALTER
TABLE
語句先刪除該約束,然後再增加一個與該約束同名的新約束。

㈥ 在關系資料庫中存在的完整性規則有什麼

3.1 SQL 中的完整性約束

SQL把各種完整性約束作為資料庫模式定義的一部分。既有效防止了對資料庫的意外破壞,提高了完整性檢測的效率,又可以減輕編程人員的負擔。

SQL對三種不同完整性約束的設置及檢測,採取了不同的方式加以實現。下面分別介紹。

3.1.1 實體完整性和主碼

實體完整性規定,主碼的任何屬性都不能為空,因為,概念模型中實體和聯系都是可區分的,而且它們以碼為唯一性標識。如果,主碼的屬性值可以為空,則意味著在概念模型中存在著不以碼為唯一性標識的實體。這顯然是前後矛盾的。

那麼怎樣保證實體完整性呢?SQL中實體完整性是通過主碼來實現的。一旦某個屬性或屬性組被定義為主碼,該主碼的每個屬性就不能為空值,並且在關系中不能出現主碼值完全相同的兩個元組。

主碼的定義是在Create Table 語句中使用 Primary Key關鍵字來實現的。方法有兩種:

a) 在屬性定義後加上關鍵字 Primary Key;

b) 在屬性表定義後加上額外的定義主碼的子句:Primary Key(<主碼屬性名表>)

㈦ 關系資料庫的基本概念

1)關系資料庫
在一個給定的應用領域中,所有實體及實體之間聯系的集合構成一個關系資料庫。
2)關系資料庫的型與值
關系資料庫的型稱為關系資料庫模式,是對關系資料庫的描述,若干域的定義,在這些域上定義的若干關系模式。
關系資料庫的值是這些關系模式在某一時刻對應的關系的集合,通常簡稱為關系資料庫。

㈧ 關系資料庫中,關系的完整性約束包括哪幾種,它們分別有什麼作用

關系的完整性約束通常包括域完整性,實體完整性、參照完整性和用戶定義完整性。

1、域完整性是保證資料庫欄位取值的合理性,是最簡單、最基本的約束。在當今的關系DBMS中,一般都有域完整性約束檢查功能。

2、實體完整性,作用是指在傳輸、存儲信息或數據的過程中,確保信息或數據不被未授權的篡改或在篡改後能夠被迅速發現。按實體完整性規則要求,主屬性不得取空值,如主關鍵字是多個屬性的組合,則所有主屬性均不得取空值。

3、參照完整性,作用是定義建立關系之間聯系的主關鍵字與外部關鍵字引用的約束條件。關系資料庫中通常都包含多個存在相互聯系的關系,關系與關系之間的聯系是通過公共屬性來實現的。根據實體完整性要求,主關鍵字不得取空值。

4、用戶定義完整性作用是根據應用環境的要求和實際的需要,對某一具體應用所涉及的數據提出約束性條件。這一約束機制一般不應由應用程序提供,而應有由關系模型提供定義並檢驗,用戶定義完整性主要包括欄位有效性約束和記錄有效性。

(8)關系資料庫的規則擴展閱讀:

關系完整性模型

關系完整性模型中常用的關系操作包括:選擇、投影、連接、並、交、差等查詢操作和增加、刪除、修改操作兩大部分。查詢的表達能力是其中最重要的部分。

關系操作的的特點是集合操作方式,即操作對象和結構都是集合。這種操作方式也為一次一集合的方式。相應地,非關系數據模型的數據操作方式則為一次一記錄的方式。

早期的關系操作能力通常用代數方式或邏輯方式來表示,分別稱為關系代數和關系演算。關系代數用對關系的運算來表達查詢要求的方式。關系代數、元組關系演算和域關系演算三種語言在表達能力是完全等價的。

關系語言是一種高度非過程化的語言,用戶不必請求DBA為其建立特殊的存取路徑,存取路徑的選擇由DBMS的優化機制來完成,此外,用戶不必求助於循環結構就可以完成數據操作。

㈨ 關系資料庫的什麼規則要求一個關系的外碼取值或為空值,或等於所對應關系中的主鍵

資料庫的完整性的全名叫做:關系資料庫的參照完整性(Referential Integrity),一般是用在表示多個表之間關系時用的,而且經常使用。比如說,現在有兩個表:
Student(StudentNumber, StudentName) 和 Teacher(TeacherNumber, TeacherName, StudentNumber)
其中Teacher表中的studentNumber是外鍵,並且Student表中的StudentNumber是主鍵,因此肯定會有如下的參照完整性:Teacher表中的studentNumber的值必須在Student表中的StudentNumber已經存在。
這就是所謂的參照完整性,它是一個很普遍的概念。

㈩ 什麼是資料庫的關系完整性

關系的究整性
關系模型的完整性規則是對關系的某種約束條件。關系模型中可以有三類完整性約束:實體完整性、參照完整性和用戶定義的完整性。其中實體完整性和參照完整性是關系模型必須滿足的完整性約束條件,被稱作是關系的兩個不變性,應該由關系系統自動支持。

一、實體完整性(Entity Integrity)
規則2.1 實體完整性規則 若屬性A是基本關系R的主屬性,則屬性A不能取空值。
例如在關系「SAP(SUPERVISOR,SPECIALITY,POSTGRADUATE)」中,「研究生姓名POSTGRADUATE」屬性為主碼(假設研究生不會重名),則「研究生姓名」不能取空值。
實體完整性規則規定基本關系的所有主屬性都不能取空值,而不僅是主碼整體不能取空值。例如學生選課關系「選修(學號,課程號,成績)」中,「學號、課程號」為主碼,則「學號」和「課程號」兩個屬性都不能取空值。
對於實體完整性規則說明如下:
(1)實體完整性規則是針對基本關系而言的。一個基本表通常對應現實世界的一個實體集。例如學生關系對應於學生的集合。
(2)現實世界中的實體是可區分的,即它們具有某種唯一性標識。
(3)相應地,關系模型中以主碼作為唯一性標識。
(4)主碼中的屬性即主屬性不能取空值。所謂空值就是「不知道」或「無意義」的值。如果主屬性取空值,就說明存在某個不可標識的實體,即存在不可區分的實體,這與第(2)點相矛盾,因此這個規則稱為實體完整性。

二、參照完整性(Referential Integrity)
現實世界中的實體之間往往存在某種聯系,在關系模型中實體及實體間的聯系都是用關系來描述的。這樣就自然存在著關系與關系間的引用。先來看三個例子。
例1 學生實體和專業實體可以用下面的關系表示,其中主碼用下劃線標識:
學生(學號,姓名,性別,專業號,年齡)
專業(專業號,專業名)
這兩個關系之間存在著屬性的引用,即學生關系引用了專業關系的主碼「專業號」。顯然,學生關系中的「專業號」值必須是確實存在的專業的專業號,即專業關系中有該專業的記錄。這也就是說,學生關系中的某個屬性的取值需要參照專業關系的屬性取值。
規則2.2 參照完整性規則 若屬性(或屬性組)F是基本關系R的外碼,它與基本關系S的主碼Ks相對應(基本關系R和S不一定是不同的關系),則對於R中每個元組在F上的值必須為:
·或者取空值(F的每個屬性值均為空值);
·或者等於S中某個元組的主碼值。
三、用戶定義的完整性(User-defined Integrity)
任何關系資料庫系統都應該支持實體完整性和參照完整性。除此之外,不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件,用戶定義的完整性就是針對某一具體關系資料庫的約束條件。它反映某一具體應用所涉及的數據必須滿足的語義要求。例如某個屬性必須取唯一值、某些屬性值之間應滿足一定的函數關系、某個屬性的取值范圍在 0~100之間等。關系模型應提供定義和檢驗這類完整性的機制,以便用統一的系統的方法處理它們,而不要由應用程序承擔這一功能。

熱點內容
創建實例在linux 發布:2024-10-07 18:03:16 瀏覽:485
黑客學c語言 發布:2024-10-07 17:37:39 瀏覽:942
ftp比較文件 發布:2024-10-07 17:04:56 瀏覽:39
如何配置幼兒園園內的玩具 發布:2024-10-07 17:04:23 瀏覽:863
干支日演算法 發布:2024-10-07 16:47:17 瀏覽:502
sqlin語句用法 發布:2024-10-07 16:45:05 瀏覽:640
直出伺服器怎麼樣 發布:2024-10-07 15:41:36 瀏覽:479
比亞迪唐dmi哪個配置性價比 發布:2024-10-07 15:19:28 瀏覽:903
編譯器按變數 發布:2024-10-07 15:07:03 瀏覽:775
怎麼忘記電腦wifi密碼怎麼辦 發布:2024-10-07 15:02:18 瀏覽:426