(互评中碰到雷同的实验报告请给以下各项均 0 分) (评...
(互评中碰到雷同的实验报告请给以下各项均 0 分) (评分时遵循“总分公平合理”,比如打分过程中出现觉得应该给 0.5 分,那么可以第一个 0.5 进位,第二个 0.5 舍去,依次类推;或第一个 0.5 舍去第二个 0.5 进位等等) 实验(上)(下)的版式评分(9 分) (1) 作业是否整体排版清晰:若是,得 2 分;否则,得 0 或 1 分 (2) 作业是否整体截图完整且附有说明:若是,得 2 分;否则,得 0 或 1 分 (3) 作业是否不出现个人信息且提交格式是否正确:若是,得 5 分;否则,得 0 分 实验 第十二周(上) 完整性约束 加密(28分) 1. 实验目的(1分) (1) 了解约束的含义及典型的完整性约束。 (2) 理解属性check约束和元组check约束的区别。 (3) 熟练掌握各约束的声明语句及外键约束的违约处理策略。 (4) 了解加密的概念及常见的加密算法。 (5) 掌握PG中基础的加密语句。 (5 条及以上的得满分1分;否则按不完整比例扣分) 2. 实验原理(2分) (自己总结与本次实验内容对应的视频、教材上的知识点,2条及以上得满2分分;否则按不完整比例扣分) 3. 实验内容(1分) (1) 主键,外键,非空,唯一值及CHECK约束声明。 (2) 显式声明外键约束的违约处理策略。 (3) 常见加密算法的使用。 (3 条及以上的得满分1分;否则按不完整比例扣分) 4. 实验作业(3+7+2+1+5+1=19分) 附件sql.txt给出了院系表(department),考官表(examiner),试卷表(exampaper),考官制卷表(erexam),的CREATE语句和INSERT语句,请根据以下实验要求修改语句。在每一个创建语句完成后,为了后续实验的顺利进行,需插入相应的数据。 (1) 创建部门表 department,将ename属性声明为主键,要求部门电话 dtele 列取值唯一。(3分) (主键声明正确得1分,唯一值约束正确得1分,数据插入正确得1分,满足以上三者得该小题满分3分) (2) 创建考官表examiner。(2+3+2=7分) 要求: a. 采用属性级定义主键方法,将erid 属性声明为主键,并将主键约束命名为 examiner_pk。(2分) (采用属性级定义主键方法得1分,主键声明及命名正确得1分,满足以上两者得2分) b. 定义外键,并显式说明外键约束的违约处理策略,使得当对 department表的删除操作违背外键约束时,拒绝删除;当对 department表的更新操作违背外键约束时,将examiner中相应的元组行的外键值设为null。请验证。(3分) (外键声明正确得1分;当删除department表中dname=‘信息学院’的对应记录时,若出现违反外键约束错误,得1分;当更新department表中dname=‘信息学院’为其它院系名时,若examiner表中对应记录的erdepa为null,得1分;满足以上三者得3分) c. 声明check约束,使得对examiner表,考官 ersex只能是‘男’或‘女’。请验证。(2分) (check约束声明正确,使得当插入ersex不符合要求时,将出现报错。满足以上要求得2分) (3) 创建试卷表exampaper,说明ename,etype 属性不允许取空值。(2分) (ename非空约束声明正确得1分,etype非空约束声明正确得1分,满足以上两者得该小题满分2分) (4) 在 exampaper表中补充声明eid为主键。(1分) (主键声明正确得1该小题满分1分) (5) 创建考官制卷表erexam。(1+4=5分) 要求: a. 将erid, eid 属性组定义为主键,并将主键约束命名为erexam_pkey。(1分) (主键声明正确得1分) b. 定义外键,并显式说明外键约束的违约处理策略,使得当examiner表的删除操作违背外键约束时,级联删除 erexam表中相应的元组行;当对 exampaper表的更新操作违背外键约束时,级联更新 eeexam 表中相应的元组行。(4分) (外键声明正确得2分;当删除examiner表中erid=‘2009040’的对应记录时,若erexam表中的对应记录也被删除,得1分;当更新exampaper表中eid=‘0110001001’的对应记录时,若erexam表中对应记录的也被更新,得1分;满足以上三者得4分) (6) 对字符串“I love database”使用MD5加密算法,返回加密结果。(1分) (sql语句及加密结果正确得该小题满分1分) 5. 实验思考(4分) (1) 从约束的声明位置和约束的检验时刻两方面,分析属性CHECK约束和元 组CHECK约束的主要区别。(2分) (正确总结两者在约束的声明位置的区别,得1分;正确总结两者在约束的检验时刻的区别,得1分;否则,酌情扣分) (2) 在PG中尝试使用DES加密算法,写出对应的sql语句并展示其加密结 果。 (2分) (sql语句正确得1分,有对应的加密结果得1分;否则,酌情扣分) 6. 实验体会(1分) (自己总结一点及以上者,得 1 分;否则,酌情扣分) 实验 第十二周(下) 触发器(19分) 1. 实验目的(1分) (1) 了解触发器的概念。 (2) 掌握BEFORE和AFTER触发器,行级和语句级触发器的区别。 (3) 掌握触发器函数及触发器的创建语句。 (3 条及以上的得满分1分;否则按不完整比例扣分) 2. 实验原理(2分) (自己总结与本次实验内容对应的视频、教材上的知识点,2条及以上得满2分分;否则按不完整比例扣分) 3. 实验内容(1分) (1) 根据要求创建触发器函数。 (2) 根据要求建立INSERT、UPDATE和DELETE触发器,并确定其为BEFORE或AFTER触发器。 (2 条及以上的得满分1分;否则按不完整比例扣分) 4. 实验作业(4+3+3+2=12分) (1) 建立 INSERT 触发器, 若插入department表的院系电话号码(dtele)长度不为8位或不以‘5880’开头, 则提示“电话号码格式错误!” 请验证。(4分) (触发器函数创建正确,得1分;触发器创建正确,得1分;验证:对department表,输入长度不为8位或不以‘5880’开头的电话号码,应出现“电话号码格式错误”的提示,两种情况均需验证。有验证结果且结果正确得2分;满足以上三者得该小题满分4分) (2) 建立 UPDATE 触发器,对 exampaper表进行 update 操作后,若试卷号被修改,则将 erexam 表中相应试卷号进行修改。请验证。(3分) (触发器函数创建正确,得1分;触发器创建正确,得1分;验证:对exampaper表,更新某试卷号,则erexam表对应元组的试卷号发生更新。有验证结果且结果正确得1分;满足以上三者得该小题满分3分) (3) 建立 DELETE 触发器,当examiner表中考官元组被删除后,删除 erexam表中对应的考官制卷信息。请验证。(3分) (触发器函数创建正确,得1分;触发器创建正确,得1分;验证:对examiner表,删除某考官元组,则erexam表对应考官制卷信息元组也被删除。有验证结果且结果正确得1分;满足以上三者得该小题满分3分) (4) 删除上面创建的三个触发器及触发器函数。(2分) (删除触发器语句正确得1分,删除触发器函数语句正确得1分,满足以上两者得该小题满分2分) 5. 实验思考(2分) (1) 在使用触发器时,对相同的表、相同的事件是否只能创建一个触发器?(2分) (判断正确得1分,有正确解释得1分,满足以上两者得该小题满分2分) 6. 实验体会(1分) (自己总结一点及以上者,得 1 分;否则,酌情扣分)