[Database] 数据库完整性
生活随笔
收集整理的這篇文章主要介紹了
[Database] 数据库完整性
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
一、實體完整性 –關系的主碼中的屬性值不能為空值 –空值:不知道或無意義 –意義:關系對應到現實世界中的實體集,元組對應到實體,實體是相互可區分的,通過主碼來唯一標識,若主碼為空,則出現不可標識的實體,這是不容許的 二、參照完整性(Referential Integrity)
(
a int not null primary key,
b int unique
)
create table bb
(
c int not null primary key,
d int,
constraint aa_bb_fk foreign key(d) references aa(a)
) insert into bb values(1,null) OK!
在關系模型中實體及實體間的聯系都是用關系來描述的,因此可能存在著關系與關系間的引用
如果關系R2的外部碼Fk與關系R1的主碼Pk相對應,則R2中的每一個元組的Fk值或者等于R1 中某個元組的Pk 值,或者為空值 意義:如果關系R2的某個元組t2參照了關系R1的某個元組t1,則t1必須存在 例如關系S在D#上的取值有兩種可能 –空值,表示該學生尚未分到任何系中 –若非空值,則必須是DEPT關系中某個元組的D#值,表示該學生不可能分到一個不存在的系中 也就是說外碼與主碼的一個不同是可以為null 測試一下: create table aa(
a int not null primary key,
b int unique
)
create table bb
(
c int not null primary key,
d int,
constraint aa_bb_fk foreign key(d) references aa(a)
) insert into bb values(1,null) OK!
轉載于:https://www.cnblogs.com/deepblueme/p/4938949.html
總結
以上是生活随笔為你收集整理的[Database] 数据库完整性的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 抓包工具收集
- 下一篇: BZOJ 1088: [SCOI2005