数据库系统概念第六版 第五章练习题 2 4

5.2

写一个使用JDBC元数据特性的JAVA函数,该函数用ResultSet作为输入参数,并把结果输出为用合适的名字作为列名的表格形式。

(对JAVA不太熟悉,仿照着书上的代码写的)

 ResultSetTable(ResultSet result)  {ResultSetMetaData metadata = result.getMetaData();int num_cols = metadata.getColumnCount();for(int i = 1; i <= num_cols; i++){  //打印表头和Type信息System.out.print(metadata.getColumnName(i));System.out.print(metadata.getColumnTypeName(i))}System.out.println();while(result.next()!=NULL) {for(int i = 1; i <= num_cols; i++) { //打印每行信息System.out.print(result.getString(metadata.getColumnName(i)‘));}System.out.println();}}
5.4

说明如何用触发器来保证约束"一位教师不可能在一个学期的同一时间段在不同的教室教课"。(要知道,对关系teaches的或section的改变都可能使该约束被破坏)

这个题做起来非常困难。每次完成时总会发现某一个环节出了问题需要推倒重来,花费了非常长的时间。

create trigger teaches_trigger after insert或update on teaches --插入和更新都可能引起改变
referencing new row as nrow
for each row
begin--筛选出该课程的教室和时间段select building as bd1,time_slot_id as tid,room_number as rn1 from section     where (section.course_id=nrow.course_id and section.sec_id=nrow.sec_id and  section.semester=nrow.semester and section.year=nrow.year);--筛选出该老师在这一学年的同一时间段的课程信息select teaches.sec_id as sid, section.building as bd2, section.room_number as rn2, from teaches natural join section where (teaches.ID=nrow.ID and  section.time_slot_id=tid and section.semester=nrow.semester and section.year=nrow.year );
--如果此老师在同一年的同一学期的相同时间段已排了一门课,新插入的课如果想同时间段必须保证教室相同且sec_id不同。
if (bd1!=bd2 or rn1!=rn2)
rollback;
else if sid=nrow.sec_id
rollback;
endcreate trigger section_trigger after insert或update on section --插入和更新都可能引起改变
referencing new row as nrow
for each row
begin--筛选出该课程的教室和时间段select building as bd1,time_slot_id as tid,room_number as rn1 from nrow ;--用with筛选出该课程对应的teaches信息--再筛选出该老师在这一学年的同一时间段的课程信息select teaches.sec_id as sid, section.building as bd2, section.room_number as rn2, from teaches natural join section where (section.time_slot_id=tid and section.semester=nrow.semester and section.year=nrow.year and teaches.ID=(select ID from nrow natural join teaches));
--如果此老师在同一年的同一学期的相同时间段已排了一门课,新插入的课如果想同时间段必须保证教室相同且sec_id不同。
if (bd1!=bd2 or rn1!=rn2)
rollback;
else if sid=nrow.sec_id
rollback;
end

数据库系统概念第六版 第五章练习题 2 4相关推荐

  1. 数据库系统概念第六版 第四章练习题 12 14 18

    数据库系统概念第六版 第四章练习题 12 14 18 4.12 对于图中的数据库,写出一个查询来找到那些没有经理的雇员.注意一个雇员可能只是没有列出其经理或者可能有null经理.使用外连接书写查询,然 ...

  2. 数据库系统概念第六版 第七章练习题 15 22

    数据库第七章理论习题 7.15 为医院构造一个包含一组病人和一组医生的E-R图.为每个病人关联一组不同的检查和化验记录. 说明:医生和病人间存在联系,同时病人有特有的检查和化验记录,病人有病床,医生属 ...

  3. 材料力学Ⅰ(第六版)第五章课后习题答案

    第一章 绪论 第二章 拉伸.压缩与剪切 第三章 扭转 第四章 弯曲内力 第五章 弯曲应力 第六章 弯曲变形 第七章 应力和应变分析强度理论 第八章 组合变形 第九章 压杆稳定

  4. mysql图书管理数据库的三个关系模式_数据库 考虑如下关于图书馆的关系模式,用关系代数写出查询(数据库系统概念第六版6.14)...

    贝尔梅尔娜美 2019.03.15 采纳率:60%    等级:39 已帮助:91565人 数据库系统的基本概念 数据:实际上就是描述事物的符号记录. 数据的特点:有一定的结构,有型与值之分,如整型. ...

  5. 软件工程导论第六版 第五章 总体设计知识点总结

    目录 总体设计概述 目的 任务 设计过程 设计原理 什么是模块?什么是模块化? 模块化的优点 模块化和软件成本 逐步求精 什么是逐步求精? Miller法则 抽象 信息隐藏和局部化 什么是信息隐藏 信 ...

  6. 数据库系统概念-第六版 - charter 1 - 笔记

    <1>数据库系统(Database System,DBS) 由一个相互关联的数据的集合和一组用以访问这些数据的程序组成:这个数据集合通常被称作数据库(Database): DBS的主要目标 ...

  7. 数据库系统概念第六版笔记

    Abraham Siberschatz Henry E Korth S.Sudarshan 杨冬青 李红艳 唐世渭等译. 华章一套书的标志性语言是: 文艺复兴以降,源远流长的科学精神和逐步形成的学术规 ...

  8. 数据库系统概念 第六版 大学数据库代码

    官网 create table classroom(building varchar(15),room_number varchar(7),capacity numeric(4,0),primary ...

  9. C Primer Plus第六版第五章运算符,表达式,语句源码

    源码 //5.1#include<stdio.h> #define ADJUST 7.31 int main(void) {const double SCALE = 0.333;doubl ...

最新文章

  1. 如何确认mongodb数据插入是否成功_go连接mongodb
  2. DataList 外部事件获取DataList内部值
  3. 【渝粤教育】国家开放大学2018年春季 0177-22T电机学(二) 参考试题
  4. 【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
  5. 取消hibernate的外键生成
  6. flutter NestedScrollView 下拉刷新的解决方案一
  7. YAML_12 批量创建用户,分别设置用户组
  8. Visual Studio Code(VS Code)与Git Source Control集成
  9. python怎么设置回文数_Python中的回文数
  10. 什么是java 前端_java前端后端分别是指什么?
  11. 程序设计导引及在线实践之大整数乘法
  12. VGGNet网络结构学习
  13. 遗传算法求解TSP问题-python实现
  14. OOzie 入门 【转】
  15. rk3288[android 6.0] 调试串口修改为普通串口
  16. 被骂了十年的国产软件,却成了世界之最...
  17. 腾讯QQ是用什么语言开发的
  18. 201673020127 郁文曦 《英文文本统计分析》结对项目报告
  19. vue---uedito---135
  20. 从AI幻术到电商防线:我们听京东安全专家聊了聊“黑箱”中的秘密

热门文章

  1. 2019第九届中国测绘地理信息技术装备博览会
  2. PHP开发的CRM客户关系管理系统
  3. ASP.NET 在 Windows Azure 环境中使用基于 SQLServer 的 Session
  4. 网络编程和数据库(一)
  5. 用R语言画切线和法线
  6. 面试题——对称加密和非对称加密
  7. C++-STL-组件(一)-容器05:stack(栈)
  8. apache common base64编码
  9. OA办公系统,推动企业管理革新
  10. 前端与u3d的联调 -前端初学者使用vue与u3d联调的摸索和踩的坑,学习记录