资源描述:
《数据库原理B实验报告完整版.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验四完整性日期2011-4-6一实验目的1.熟悉通过SQL对数据进行完整性控制。2.深入理解数据库系统的完整性概念。二、实验原理为维护数据库的完整性,DBMS必须:1.提供定义完整性约束条件的机制2.提供完整性检查的方法3.违约处理Createtable语法中包含了对完整性的定义。CREATETABLE[database_name.[owner].
2、owner.]table_name({
3、column_nameAScomputed_column_expression
4、::=[CONSTRAINTconstraint_
5、name]}
6、[{PRIMARYKEY
7、UNIQUE}[,...n])[ON{filegroup
8、DEFAULT}][TEXTIMAGE_ON{filegroup
9、DEFAULT}]::={column_namedata_type}[COLLATE][[DEFAULTconstant_expression]
10、[IDENTITY[(seed,increment)[NOTFORREPLICATION]]]][ROWGUIDCOL][][...n]::=
11、[CONSTRAINTconstraint_name]{[NULL
12、NOTNULL]
13、[{PRIMARYKEY
14、UNIQUE}[CLUSTERED
15、NONCLUSTERED][WITHFILLFACTOR=fillfactor][ON{filegroup
16、DEFAULT}]]]
17、[[FOREIGNKEY]REFERENCESref_table[(ref_column)][ONDELETE{CASCADE
18、NOACTION}][ONUPDATE{CASCADE
19、NOACTION}][NOTFORREPLICATION]]
20、CHECK[NOTFORREPLICATION](logical_exp
21、ression)}::=[CONSTRAINTconstraint_name]{[{PRIMARYKEY
22、UNIQUE}[CLUSTERED
23、NONCLUSTERED]{(column[ASC
24、DESC][,...n])}[WITHFILLFACTOR=fillfactor][ON{filegroup
25、DEFAULT}]]
26、FOREIGNKEY[(column[,...n])]REFERENCESref_table[(ref_column[,...n])][ONDELETE{CASCADE
27、NOACTION}][ONUPDATE{CASCADE
28、NOACT
29、ION}][NOTFORREPLICATION]
30、CHECK[NOTFORREPLICATION](search_conditions)}三、实验仪器和设备1.计算机2.SQLServer2000四、预习要求复习完整性相关的SQL语句的基本语法。五、实验内容及步骤1.实体完整性定义表的主码关系模型的实体完整性在CREATETABLE中用PRIMARYKEY定义。定义主码的方法分为定义为列级约束条件和定义为表级约束条件两种。[例4-1]定义表Student,并将其中的Sno属性定义为主码。CREATETABLESTUDENT(SNOCHAR(7)PRIMARYKEY,SNAMECHAR(8)N
31、OTNULL,SSEXCHAR(2),SAGESMALLINT,SDEPTCHAR(20));[例4-2]定义表SC,将其中的属性Sno,Cno定义为主码。对于多个属性构成的码,只能够将其定义为表级约束条件,而无法用列级约束条件来实现。CREATETABLESC(SNOCHAR(7)NOTNULL,CNOCHAR(4)NOTNULL,GRADESMALLINT,PRIMARYKEY(SNO,CNO));2.参照完整性定义表的外码关系模型的参照完整性是在CREATETABLE中用FOREIGNKEY语句来定义的,并用REFERENCES来指明外码参照的是哪些表的主码。定义表SC,其中Sno参照
32、表Student的主码Sno,Cno参照表Course的主码Cno。CREATETABLESC(SNOCHAR(7)NOTNULL,CNOCHAR(4)NOTNULL,GRADESMALLINT,PRIMARYKEY(SNO,CNO),FOREIGNKEY(SNO)REFERENCESSTUDENT(SNO),FOREIGNKEY(CNO)REFERENCESCOURSE(CNO));3.用户定义完整性用户定