数据库实验04案例.docx
文本预览下载声明
本科实验报告课程名称:数据库系统概论实验项目:数据完整性实验地点:软件楼208专业班级:软件1401 学号:2014005490学生姓名:崔正宇指导教师:安建成2016年6月20日实验4数据完整性一、实验目的和要求(1)了解 SQL Serer 数据库系统中数据完整性控制的基本方法(2)熟练掌握常用 CREATE 或 ALTER 在创建或修改表时设置约束(3)了解触发器的机制和使用(4)验证数据库系统数据完整性控制二.实验平台使用SQLServer数据库管理系统提供的SSMS和查询编辑器。三、实验内容和原理结合 ST 数据库中的各个表,设置相关的约束,要求包括主键约束、外键约束、唯一约束、检查约束、非空约束等,掌握各约束的定义方法。设置一个触发器,实现学生选课总学分的完整性控制,了解触发器的工作机制。设计一些示例数据,验证完整性检查机制。要求包括如下方面的内容:3.1 使用 SQL 语句设置约束使用 CREATE 或 ALTER 语句完成如下的操作,包括:1.设置各表的主键约束2.设置相关表的外键3. 设置相关属性的非空约束、默认值约束、唯一约束4. 设置相关属性的 CHECK 约束3.2 使用触发器创建一个触发器,实现如下的完整性约束:当向 SC 表中插入一行数据时,自动将学分累加到总学分中。? 记录修改学分的操作。3.4 检查约束和触发器分别向相关表插入若干条记录,检查你设置的完整性约束是否有效:1.插入若干条包含正确数据的记录,检查插入情况2.分别针对设置的各个约束,插入违反约束的数据,检查操作能否进行3.向 SC 表插入若干行数据,检查触发器能否实现其数据一致性功能。实验内容 实验结果与分析创建学生选课数据库 TEST,包括三个基本表,其中 Student 表保存学生基本信息,Course表保存课程信息,SC 表保存学生选课信息,其结构如下表:1.创建基本表及约束(1)创建Student表CREATETABLEStudent(SnoCHAR(8)PRIMARYKEY,SnameCHAR(8)NOTNULL,SsexCHAR(2)CHECK(Ssexin(男,女)),SageSMALLINT,SdeptCHAR(20),SclassCHAR(4)NOTNULL,StotalsmallintDEFAULT 0 );(2)创建Course表CREATETABLECourse(CnoCHAR(4)CONSTRAINTFK_CoursePRIMARYKEY,CnameCHAR(40),CpnoCHAR(4),CcreditSMALLINT);(3)创建SC 表CREATETABLESC(SnoCHAR(8)FOREIGNKEY (Sno)REFERENCESStudent(Sno),CnoCHAR(4),GradeSMALLINTCONSTRAINTSC_CHECKCHECK(Grade0 ANDGrade100),PRIMARYKEY (Sno,Cno),CONSTRAINTFK_SCFOREIGNKEY (Cno)REFERENCESCourse(Cno));插入数据(1)插入学生信息到Student表INSERTINTOstudentVALUES李勇,男,20,CS,1001,0)INSERTINTOStudentVALUES刘晨,女,19,CS,1001,0)INSERTINTOStudentVALUES王敏,女,18,MA,1002,0)INSERTINTOStudentVALUES张立,男,19,IS,1003,0)INSERTINTOStudentVALUES刘洋,女,NULL,NULL,1001,0)INSERTINTOStudentVALUES赵斌,男,19,IS,1005,0)INSERTINTOStudentVALUES张明明,男,19,CS,1002,0)(2)插入到课程信息到Course表INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(1,数据库系统原理,5,4)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(2,高等数学,null,2)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(3,管理信息系统,1,4)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES(4,操作系统原理,6,3)INSERTINTOCourse(Cno,Cname,Cpno,Ccredit)VALUES
显示全部