A. 什麼是資料庫的完整性約束條件
資料庫完整性(Database
Integrity)是指資料庫中數據的正確性和相容性,其目的是防止垃圾數據的進出。資料庫完整性由各種各樣的完整性約束來保證,因此可以說資料庫完整性設計就是資料庫完整性約束的設計。加在資料庫之上的語義約束條件就是資料庫完整性約束條件。
完整性約束條件作用對象可以使關系、元組、列三種。
●列約束主要是列的數據類型、取值范圍、精度、排序等約束條件。
●元組的約束是元組中各個欄位間的聯系的約束。
●關系的約束是若干元組間、關系集合上以及關系之間的聯系的約束。
完整性約束條件涉及這三類對象,其狀態可以是靜態的,也可以是動態的。所謂靜態約束是指資料庫每一確定狀態時的數據對象所應滿足的約束條件。它是反映資料庫狀態合理性的約束,這是最重要的一類完整性約束。
動態約束是指資料庫從一種狀態轉變為另一種狀態時,新、舊值之間所應滿足的約束條件。
完整性約束條件可分為以下六類:
●靜態列級約束
●靜態元組約束
●靜態關系約束
●動態列級約束
●動態元組約束
●動態關系約束
1.
靜態列級約束是對一個列的取值域的說明,包括以下幾個方面:
(1)對數據類型的約束,包括數據的類型、長度、單位、精度等;
(2)對數據格式的約束。例如規定日期的格式為YYYY-MM-DD;
(3)對取值范圍或取值集合的約束。例如規定學生的成績取值范圍為0~100;
(4)對空值的約束,規定哪些列可以為空值,哪些列不能為空值;
2.
靜態元組約束就是規定元組的各個列之間的約束關系。例如,訂貨關系中包含發貨量、訂貨量等列,規定發貨量不得超過訂貨量。
3.
靜態關系約束是指在一個關系的各個元組之間或者若干關系之間存在的約束。常見的靜態約束有:
(1)實體完整性約束;
(2)引用完整性約束;
(3)函數依賴約束;大部分函數依賴約束都在關系模式中定義。
(4)統計約束;即欄位值與關系中多個元組的統計值之間的約束關系。例如,規定部門經理的工資不得高於本部門職工平均工資的5倍,不得低於本部門職工平均工資的2倍。
4.
動態列級約束是修改列定義或列值時應滿足的約束條件,包括下面兩方面:
(1)修改列定義時的約束。例如,將允許空值的列改為不允許空值時,如果該列目前已存在空值,則拒絕這種修改。
(2)修改列值時的約束。修改列值時有時需要參照其舊值,並且新舊值之間需要滿足某種約束條件。例如,職工調整後的工資不得低於其調整前的原來工資;職工婚姻狀態的變化只能是由未婚到已婚、已婚到離異、離異到再婚等幾種情況。
5.
動態元組約束是指修改元組的值時元組中各個欄位間需要滿足某種約束條件。例如,職工工資調整時新工資不得低於原工資+工齡*1.5等。
6.
動態關系約束是加在關系變化前後狀態上的限制條件。例如,在集成電路晶元設計資料庫中,一個設計中用到的所有單元的工藝必相同,因此,在更新某個設計單元時,設計單元的新老工藝必須保持一致。
B. 資料庫的完整性包含哪些完整性約束
數據完整性約束指的是為了防止不符合規范的數據進入資料庫,在用戶對數據進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數據進行監測,使不符合規范的數據不能進入資料庫,以確保資料庫中存儲的數據正確、有效、相容。
資料庫的完整性約束包含以下類型:
1) 與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。
2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。
3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。
(2)資料庫表中常見的約束有哪些擴展閱讀:
數據的完整性
分為以下四類:
1) 實體完整性:規定表的每一行在表中是惟一的實體。
2) 域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。
4) 用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。
C. 資料庫中constraint和column是什麼意思
constraint表示約束,我特意幫你截取了一個我們自己資料庫的圖片,你認真看一共有三個常見的約束1、primary key(主鍵約束)。
2Unique(唯一性約束)。
3foreign key(外鍵約束)。
primary key和Unique key的區別是primary key不能為NULL且需唯一,Unique key可以為NULL但必須唯一,可以這么認為primary key+NULL=Unique key。column表示「列」也就是我們常說的欄位。
(3)資料庫表中常見的約束有哪些擴展閱讀:
定義
資料庫是存放數據的倉庫。它的存儲空間很大,可以存放百萬條、千萬條、上億判鉛稿條數據。但是資料庫並不是隨意地將數據進行存放,是有一定的規則的,否則查詢的效率會很低。當今世界是一個充滿著激核數據的互聯網世界,充斥著大量的數據。
即這個互聯網世界就是數據世界。數據的來源有很多,比如出行記錄、消費記錄、瀏覽的網頁、發送的消息等等掘孝。除了文本類型的數據,圖像、音樂、聲音都是數據。
D. 什麼是資料庫約束
資料庫約束是對表中的數據進行進一步的限制,保證數據的正確性、有效性和完整性。
約束通常與一個表相關聯,並使用CREATE CONSTRAINT或CREATE ASSERTIONsql語句創建。
所有的關系資料庫都支持對數據表使用約束,通過約束可以更好地保證數據表裡數據的完整性。
是表上強制執行的校驗規則,除此之外,當表中數據存在相互依賴性時,可以保護相關數據不被刪除。約束通常無法修改。
(4)資料庫表中常見的約束有哪些擴展閱讀
資料庫中的五大約束:
1、主關鍵字約束
主關鍵字約束指定表的一列或幾列的組合的值在表中具有惟一性,即能惟一地指定一行記錄。每個表中只能有一列被指定為主關鍵字,且IMAGE 和TEXT 類型的列不能被指定為主關鍵字,也不允許指定主關鍵字列有NULL 屬性。
2、外關鍵字約束
外關鍵字約束定義了表之間的關系。當一個表中的一個列或多個列的組合和其它表中的主關鍵字定義相同時,就可以將這些列或列的組合定義為外關鍵字,並設定它適合哪個表中哪些列相關聯。
3、唯一性約束
惟一性約束指定一個或多個列的組合的值具有唯一性,以防止在列中輸入重復的值。唯一性約束指定的列可以有NULL 屬性。由於主關鍵字值是具有唯一性的,因此主關鍵字列不能再設定唯一性約束。唯一性約束最多由16 個列組成。
4、檢查約束
檢查約束對輸入列或整個表中的值設置檢查條件,以限制輸入值,保證資料庫的數據完整性。可以對每個列設置復合檢查。
5、預設約束
預設約束通過定義列的預設值或使用資料庫的預設值對象綁定表的列,來指定列的預設值。SQL Server 推薦使用預設約束,而不使用定義預設值的方式來指定列的預設值。
E. sql中表達完整性約束的機制主要有哪幾種
在SQL中,表達完整性約束的規則有主鍵約束、外鍵約束、屬性值約束和全局約束等多種形式。
(1)主鍵約束:可用主鍵子句或主鍵短語來定義。
如 PRIMARY KEY (S#) (主鍵子句)
S# CHAR (4) PRIMARY KEY (其中,PRIMARY KEY 為主鍵短語)
(2)外鍵約束:可用外鍵子句來定義
如 FOREIGN KEY (S#) REFERNCE S(S#)
(3)屬性值約束:包括非空值約束(NOT NULL);基於屬性的檢查子句(CHECK) ;
域約束子句(在「CREAT DOMAIN」語句中出現CHECK子句)
如CREAT DOMAIN AGE SMALLINT CHECK (VALUE>10)
(4)全局約束:包括基於元組的檢查子句(CHECK)和斷言
斷言的句法為:CREATE ASSERTION 斷言名 CHECK 條件
F. 請列舉mysql中常見的約束類型
一、Mysql支持以下約束:
※ 主鍵約束 :primary key
※ 唯一性約束:unique key
※ 外鍵約束:foreign key
※ 非空約束:not null
※ 默認值約束:default
二、主鍵約束:
一個表只能有一個主鍵,當建橡消表時忘記設置主鍵約束時.設置為主鍵的列查詢速度會非常快,所以一般會用聚集索引,這個我們後面會講到。
添加主鍵約束:設置myself表的age為主鍵
語法:alter table 表名 add primary key;(列名)※ 可以有多個列名。
三、外鍵約束:
何為外鍵,當建表時需要用到另外一個表的主鍵缺握作為本表的的主鍵時,需要設置外鍵。設置外間後,若想在刪除本表數據時會級聯刪除或者默認刪除其他方式。
添加外鍵約束:設置本表的cno為外鍵
語法:alter table 表名稱 add foreign key (列名稱) references 關聯表名稱(列名稱);
四、非空約束:
當插入新數據時對應的列為不能空。非空約束是相對於默認值約束而說的。
添加非空約束:
語法:alter table 表名 modify 列名 列類型 not null;
五、默認值約束:default:
當插入時沒有插入值時,會自動插入默認值。默認值約束相對於非空約束而說。
添加默認值約束:
語法:alter table 表名 add 列名 列類型 not null default '默認值';
六、唯一性約束:
本列的內容只能唯一不能重復。
添加唯一約束:
語法:alter table 列名 add unique(列名稱) 梁扮知 ※可以有多個列名稱,用逗號隔開。
G. 什麼是關系完整性規則關系資料庫中,常見的完整性規則有哪些,試舉例說明
關系完整性規則即指關系的正確性、相容性和有效性。它是給定的關系模型中數據及其聯系的所有制約和依存規則,用以限定資料庫狀態及狀態變化,從而保證數據的正確、相容和有效。
關系模型的完整性舉例:
1、實體完整性
如職工表將編號作為主關鍵字,那麼,該列不得有空值,否則無法對應某個具體的職工,這樣的表格不完整,對應關系不符合實體完整性規則的約束條件。
2、參照完整性
如在學生管理資料庫中,如果將選課表作為參照關系,學生表作為被參照關系,以「學號」作為兩個關系進行關聯的屬性,則「學號「是學生關系的主關鍵字,是選課關系的外部關鍵字。選課關系通過外部關鍵字「學號」參照學生關系。
3、用戶定義的完整性
例如要求「考查」課的分數以60分或40分計,在用戶輸入「考查」課的成績時,要進行檢查,以確保滿足特定的約束要求。再如年齡屬性,如果屬於某一個學生主體,則可能要求年齡在17歲到25歲之間,而如果年輕屬性屬於某一個公司員工主體,則可能要求年齡在18歲到40歲之間等。
(7)資料庫表中常見的約束有哪些擴展閱讀
數據的完整性約束是用來確保數據的准確性和一致性。數據的完整性就是對數據的准確性和一致性的一種保證。
數據完整性(Data Integrity)是指數據的精確(Accuracy)和可靠性(Reliability)。
分為以下四類:
1、實體完整性:規定表的每一行在表中是惟一的實體。
2、域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3、參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。
4、用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。
H. 資料庫sql2008r2整資料庫類型有哪幾種,還有幾種常見約束是什麼
主鍵約束簡悔:要求主鍵列數據唯一,並且不允許為空。唯一燃含約束:要求該列唯一,允許為空,但只能出現一個空值。檢查約束攔段正:某列取值范圍限制、格式限制等。默認約束:某列的默認值。外鍵約束:用於在兩表之間建立關系,需要指定引用主表的哪一列。
I. 常見的幾種約束有哪些分別代表什麼意思如何使用
主要四種
1實侍猛體完整性約束(每一行反應不同的實體)
通過索引,唯一約束。主鍵約束或標識屬性來體現
2域完整性者答約束(指給老嫌橋定列的輸入有效性)
通過限制數據類型,檢查約束,輸入格式,外鍵約束,默認值,非空等體現
3引用完整性約束(表之間的聯系)
通過主外建
4自定義完整性約束(根據用戶的需求)
J. 什麼是關系完整性規則關系資料庫中,常見的完整性規則有哪些,試舉例說明
關系的完整性主要包括域完整性、實體完整性和參照完整性三種。隱者拿
1.域完整性
域完整性是對數據表中欄位屬性的約束,它包括欄位的值域、欄位的類型及欄位的有效規則等約束,它嫌帆是由確定關系結構時所定義的欄位的屬性決定的。
2.實體完整性
實體完整性是對關系中的記錄唯一性,也就是主鍵的約束。准確地說,實體完整性是指關系中的主屬性值不能為Null且不能有相同值。
3.參照完整性
參照完整性是對關灶搭系資料庫中建立關聯關系的數據表間數據參照引用的約束,也就是對外鍵的約束。准確地說,參照完整性是指關系中的外鍵必須是另一個關系的主鍵有效值,或者是NULL。