A. 資料庫實體的完整性要求
資料庫的幾個概念
(1) 實體(Entity):指客觀存在並可相互區別的事物,一個實體在資料庫中表現為表中的一條記錄
(2) 屬性(Attribute):指實體所具有的某一特性,實體的屬性在資料庫中表現為表的欄位。
實體完整性理論
定義2 實體完整性:若屬性A是基本關系R的主屬性,則屬性A不能取空值。
例1:學生 (學號, 姓名, 年齡)中,學號不能取空值;
例2:選修 (學號, 課程號, 成績)中,學號和課程號都不能取空值。
關於實體完整性的說明:
現實世界中的實體是可區分的,即它們具有某種唯一性標識;相應的,關系模型中以主碼作為唯一性標識。如果主屬性取空值,則說明存在某個不可標識的實體,即存在不可區分的實體,這與b相矛盾,因此這個規則稱為實體完整性。
B. SQL 建立資料庫 表(完整性約束)
資料庫可以在SQL2000/2005/2008企業管理器中直接建立;
建表
USEDB
GO
CREATETABLET1---建立T1表
(M_1INTPRIMARYKEYNOTNULL,
M_2CHAR(20),
M_3CHAR(20),
N_1INT
)
GO
CREATETABLET2---建立T2表
(N_1INTPRIMARYKEYNOTNULL,
N_2CHAR(20),
N_3CHAR(20)
)
GO
ALTERTABLET1
---為T1表建立外鍵(當有數據插入T1時,會檢查T1中的N_1在T2中是否存在)
ADDCONSTRAINTFK_T1_N_1FOREIGNKEY(N_1)REFERENCEST2(N_1)
GO
---------------
刪除table2中數據的時候table1中有N_1的信息也要刪除
建個觸發器
USEDB
GO
CREATETRIGGERinfor_delONT2FORDELETE
AS
BEGIN
DELETEFROMT1WHEREN_1IN(SELETEN_1FROMDELETED)
GO
--------------------------
SQL2008下已通過執行
C. 資料庫中 什麼是數據完整性
資料庫中的數據是從外界輸入的,而數據的輸入由於種種原因,會發生輸入無效或錯誤信息。保證輸入的數據符合規定,成為了資料庫系統,尤其是多用戶的關系資料庫系統首要關注的問題。數據完整性因此而提出。本章將講述數據完整性的概念及其在SQL Server 中的實現方法。
數據完整性(Data Integrity)是指數據的精確性(Accuracy) 和可靠性(Reliability)。它是應防止資料庫中存在不符合語義規定的數據和防止因錯誤信息的輸入輸出造成無效操作或錯誤信息而提出的。
資料庫採用多種方法來保證數據完整性,包括外鍵、約束、規則和觸發器。系統很好地處理了這四者的關系,並針對不同的具體情況用不同的方法進行,相互交叉使用,相補缺點。
數據完整性分為以下3類:
1、域完整性:
是指一個列的輸入有效性,是否允許為空值。強制域完整性的方法有:限制類型(通過設定列的數據類型)、格式(通過CHECK約束和規則)或可能值的范圍(通過FOREIGN KEY約束、CHECK約束、DEFAULT定義、NOT NULL定義和規則)。
2、實體完整性:
是指保證表中所有的行唯一。實體完整性要求表中的所有行都有一個唯一標識符。這個唯一標識符可能是一列,也可能是幾列的組合,稱為主鍵。
3、參照完整性:
是指保證主關鍵字(被引用表)和外部關鍵字(引用表)之間的參照關系。它涉及兩個或兩個以上表數據的一致性維護。外鍵值將引用表中包含此外鍵的記錄和被引用表中主鍵與外鍵相匹配的記錄關聯起來。
D. sql server 2008 支持的數據完整性約束分別用什麼sql命令來完成設置
①資料庫的完整性是指數據的正確性和相容性
②資料庫完整性是防止不合語義或不正確的數據進入資料庫
③完整性體現了是否真實地反映現實世界
例:
學生的年齡必須是整數,取值范圍為14-29;
學生的性別只能是男或女;
學生的學號一定是唯一的;
學生所在的系必須是學校開設的系;
E. 如何驗證資料庫的完整性
SELECT Cnt = COUNT (*)
FROM [<Table>]
WHERE [<primary key column>] = <new value>
IF Cnt = 0
BEGIN
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES ( <New value> )
END
ELSE
BEGIN
<indicate plication error>
END
而一個非3GL 編碼器是這樣做的:
INSERT INTO [<Table>]
( [< primary key column>] )
VALUES
( <New value> )
IF @@ERROR = 2627 -- Literal error code for Primary Key Constraint
BEGIN
<indicate plication error>
F. 資料庫的完整性包含哪些完整性約束
數據完整性約束指的是為了防止不符合規范的數據進入資料庫,在用戶對數據進行插入、修改、刪除等操作時,DBMS自動按照一定的約束條件對數據進行監測,使不符合規范的數據不能進入資料庫,以確保資料庫中存儲的數據正確、有效、相容。
資料庫的完整性約束包含以下類型:
1) 與表有關的約束:是表中定義的一種約束。可在列定義時定義該約束,此時稱為列約束,也可以在表定義時定義約束,此時稱為表約束。
2) 域(Domain)約束:在域定義中被定義的一種約束,它與在特定域中定義的任何列都有關系。
3) 斷言(Assertion):在斷言定義時定義的一種約束,它可以與一個或多個表進行關聯。
(6)資料庫表的完整性要求命令擴展閱讀:
數據的完整性
分為以下四類:
1) 實體完整性:規定表的每一行在表中是惟一的實體。
2) 域完整性:是指表中的列必須滿足某種特定的數據類型約束,其中約束又包括取值范圍、精度等規定。
3) 參照完整性:是指兩個表的主關鍵字和外關鍵字的數據應一致,保證了表之間的數據的一致性,防止了數據丟失或無意義的數據在資料庫中擴散。
4) 用戶定義的完整性:不同的關系資料庫系統根據其應用環境的不同,往往還需要一些特殊的約束條件。用戶定義的完整性即是針對某個特定關系資料庫的約束條件,它反映某一具體應用必須滿足的語義要求。
G. 資料庫用SQL語言建表,什麼是完整性約束請問如何寫出各種完整性約束
一、數據的完整性
實體完整性
實體完整性簡單的說,就是將表中的每一行看作一個實體。實體完整性要求表的標示符列或主鍵的完整性。可以通過建立唯一索引、PRIMARY KEY約束、UNIQUE約束,以及列的IDENTITY屬性來實施實體完整性。
域完整性
域完整性是指給定列的輸入有效性。要求表中指定列的數據具有正確的數據類型、格式和有效的數據范圍。強制域有效性的方法有:限制類型(通過數據類型)、格式(通過 CHECK 約束和規則)或可能值的范圍。域完整性通過 FOREIGN KEY 約束、CHECK 約束、DEFAULT 定義、NOT NULL 定義和規則來實現。
引用完整性
引用完整性又稱參照完整性。引用完整性維持被參照表和參照表之間的數據一致性,他通過主鍵(PRIMARY KEY)約束和外鍵(FOREIGN KEY)約束來實現。
用戶定義完整性
二、約束操作
與表相關的約束
在SQL 2008中,常用有6種約束,分別是NOT NULL,UNIQUE,PRIMARY KEY,FOREIGN KEY,DEFAULT和CHECK.
--添加主鍵約束(即primary key約束)
alter table goods add constraint pk_gid primary key(gid)
--1.刪除主鍵約束
alter table goods drop pk_gid
--添加唯一約束(即unique約束)
alter table goods add constraint uq_gname unique(gname)
--刪除唯一約束:仿1.
--添加預設約束(即default約束)
alter table goods add constraint def_gtel default 0000-00000000 for gtel
--刪除預設約束:仿1.
--添加檢查約束(即check約束)
alter table goods add constraint ck_gprice check(gprice>500)
--刪除check約束:仿1.
--創建表2
create table g_p
(
wno int identity(1,1) primary key,
gno int
)
--添加外鍵約束(即foreign key約束)
alter table g_p
add constraint fk_gno
foreign key(gno) references goods(gid)
--刪除外鍵約束:仿1.
--使用newid()
select newid()--生成全球唯一的ID號
create table customer
(
custID uniqueidentifier not null default newid(),
customer char(30) not null
)
insert customer values(newid(),\''\''accp\''\'')--向customer中插入信息
-----------------------------------慢慢研究----
H. 資料庫表操作的命令有哪些
常用的DDL語句有:
CREATE TABLE -- 創建(定義)一個表
ALTER TABLE -- 修改一個表的定義
DROP TABLE -- 從資料庫中刪除一個表
常用的DML語句有:
SELECT -- 查詢表中的數據
UPDATE -- 更改表中的數據
INSERT -- 向表中插入數據
DELETE -- 從表中刪除數據
每個語句的具體語法,請參考聯機叢書或者相關資料。
I. 什麼是資料庫表的完整性
資料庫表的完整性分為三類:
實體完整性:主要指表中哪些欄位的取值不能為空,比如用來做主鍵的欄位的取值不能為空;
參照完整性:主要是指設置為外鍵的這類欄位,這類欄位的取值必須參照其它表中主鍵欄位的取值而存在,就是說如果被參照的欄位不存在的值被插入到這類欄位中,這個操作是不被允許的;
用戶自定義完整性:主要指用戶為欄位定義的取值范圍,比如年齡的欄位取值必須是大於0的整數