资源描述:
《数据库原理与应用实验3-1.doc》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、实验3.1数据完整性管理一、实验目的l掌握域完整性的实现方法。l掌握实体完整性的实现方法。l掌握参照完整性的方法。二、实验内容数据库的完整性设置。三、实验步骤可视化:1)实体完整性Ø2)域完整性Ø3)参照完整性命令方式:1)实体完整性1.将“student”表的“sno”字段设为主键:altertablestudentaddconstraintpk_snoprimarykey(sno)2.添加一身份证号字段,设置其惟一性.(注:操作前应删除表中的所有记录)Altertablestudentaddidchar(18)unique(id)3.将“sc”表的“sno”和“cno
2、”设置为主键:altertablescaddconstraintPK_SnoCnoprimarykey(sno,cno)2)域完整性4.将“ssex”字段设置为只能取“男”,“女”两值:altertablestudentaddconstraintCK_Sexcheck(ssexin('男','女'))5.设置学号字段只能输入数字:altertablestudentaddconstraintCK_Sno_Formatcheck(snolike'[0-9][0-9][0-9][0-9][0-9]')6.设置身份证号的输入格式:altertablestudentaddconst
3、raintCK_ID_Formatcheck((idlike'[0-9][0-9][0-9][0-9][0-9][0-9][1-2][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]_')OR(idlike'[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-1][0-9][0-3][0-9][0-9][0-9][0-9]'))7.设置18位身份证号的第7位到第10位为合法的年份(1900-2050)altertablestudentaddconstraintCK_ID_Format2ch
4、eck(len(id)=18and((convert(smallint,substring(id,7,4))>=1900)and(convert(smallint,substring(id,7,4))<=2050)))8.设置男生的年龄必须大于22,女生的年龄必须大于20.AltertablestudentaddconstraintCK_agecheck(ssex='男'andsage>=22orssex='女'andsage>=20)3)参照完整性9.将“student”表和“sc”表中的“sno”字段设为参照:altertablescaddconstraintFP_s
5、noforeignkey(sno)referencesstudent(sno)完整性验证1.实体完整性:在“student”表数据浏览可视化界面中输入学号相同的两条记录将会出现错误或者在命令窗口输入下面两条命令也会出现错误提示:insertintostudentvalues('95003','张三','男',24,'CS','42222919901012903X')insertintostudentvalues('95001','李四','女',21,'CS','422229199510129031')下面的语句用来验证“sc”表中的实体完整性:insertintoscv
6、alues('95002','10',65)insertintoscvalues('95002','10',90)2.域完整性:使用下面的语句验证“ssex”字段的域完整性:insertintostudentvalues('95009','张匀','大',20,'CS',‘42222919901012904X’)3.参照完整性:使用下面的语句“验证”sc表中的“sno”字段的域完整性(假设student表中没有学号为“95998”的学生记录):insertintoscvalues('98998','10',98)四、实验任务:1、建立课程的实体完整性,和课程号cno的参照
7、完整性;2、对HRM数据库,练习建立三个表的主外键约束、唯一约束、取空值约束、用户自定义的约束(参考HRM数据库表定义图中说明);主键约束: Departments:alter table departments add constraint FK_DEPARTMENTID primary key (departmentid) Employee:alter table employee add constraint FK_EMPLOYEEID primary key (employeeid)外键约束: Salary: alte