数据库系统概念第六版 第五章练习题 2 4
数据库系统概念第六版 第五章练习题 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相关推荐
- 数据库系统概念第六版 第四章练习题 12 14 18
数据库系统概念第六版 第四章练习题 12 14 18 4.12 对于图中的数据库,写出一个查询来找到那些没有经理的雇员.注意一个雇员可能只是没有列出其经理或者可能有null经理.使用外连接书写查询,然 ...
- 数据库系统概念第六版 第七章练习题 15 22
数据库第七章理论习题 7.15 为医院构造一个包含一组病人和一组医生的E-R图.为每个病人关联一组不同的检查和化验记录. 说明:医生和病人间存在联系,同时病人有特有的检查和化验记录,病人有病床,医生属 ...
- 材料力学Ⅰ(第六版)第五章课后习题答案
第一章 绪论 第二章 拉伸.压缩与剪切 第三章 扭转 第四章 弯曲内力 第五章 弯曲应力 第六章 弯曲变形 第七章 应力和应变分析强度理论 第八章 组合变形 第九章 压杆稳定
- mysql图书管理数据库的三个关系模式_数据库 考虑如下关于图书馆的关系模式,用关系代数写出查询(数据库系统概念第六版6.14)...
贝尔梅尔娜美 2019.03.15 采纳率:60% 等级:39 已帮助:91565人 数据库系统的基本概念 数据:实际上就是描述事物的符号记录. 数据的特点:有一定的结构,有型与值之分,如整型. ...
- 软件工程导论第六版 第五章 总体设计知识点总结
目录 总体设计概述 目的 任务 设计过程 设计原理 什么是模块?什么是模块化? 模块化的优点 模块化和软件成本 逐步求精 什么是逐步求精? Miller法则 抽象 信息隐藏和局部化 什么是信息隐藏 信 ...
- 数据库系统概念-第六版 - charter 1 - 笔记
<1>数据库系统(Database System,DBS) 由一个相互关联的数据的集合和一组用以访问这些数据的程序组成:这个数据集合通常被称作数据库(Database): DBS的主要目标 ...
- 数据库系统概念第六版笔记
Abraham Siberschatz Henry E Korth S.Sudarshan 杨冬青 李红艳 唐世渭等译. 华章一套书的标志性语言是: 文艺复兴以降,源远流长的科学精神和逐步形成的学术规 ...
- 数据库系统概念 第六版 大学数据库代码
官网 create table classroom(building varchar(15),room_number varchar(7),capacity numeric(4,0),primary ...
- C Primer Plus第六版第五章运算符,表达式,语句源码
源码 //5.1#include<stdio.h> #define ADJUST 7.31 int main(void) {const double SCALE = 0.333;doubl ...
最新文章
- 如何确认mongodb数据插入是否成功_go连接mongodb
- DataList 外部事件获取DataList内部值
- 【渝粤教育】国家开放大学2018年春季 0177-22T电机学(二) 参考试题
- 【VC++技术杂谈005】如何与程控仪器通过GPIB接口进行通信
- 取消hibernate的外键生成
- flutter NestedScrollView 下拉刷新的解决方案一
- YAML_12 批量创建用户,分别设置用户组
- Visual Studio Code(VS Code)与Git Source Control集成
- python怎么设置回文数_Python中的回文数
- 什么是java 前端_java前端后端分别是指什么?
- 程序设计导引及在线实践之大整数乘法
- VGGNet网络结构学习
- 遗传算法求解TSP问题-python实现
- OOzie 入门 【转】
- rk3288[android 6.0] 调试串口修改为普通串口
- 被骂了十年的国产软件,却成了世界之最...
- 腾讯QQ是用什么语言开发的
- 201673020127 郁文曦 《英文文本统计分析》结对项目报告
- vue---uedito---135
- 从AI幻术到电商防线:我们听京东安全专家聊了聊“黑箱”中的秘密