目录

  • 1 课程导入
    • 1.1 课程导入
  • 2 绪论
    • 2.1 数据模型
    • 2.2 数据模型的组成要素和常用数据模型
    • 2.3 三级模式两层映像两种独立性
    • 2.4 本章习题
  • 3 关系数据库
    • 3.1 关系数据结构和完整性约束
    • 3.2 关系代数
      • 3.2.1 关系代数概念
      • 3.2.2 集合关系代数
      • 3.2.3 选择、投影、连接和除法操作
      • 3.2.4 关系代数复习与习题
    • 3.3 关系数据库标准语言SQL
      • 3.3.1 数据定义与删除
      • 3.3.2 数据查询
        • 3.3.2.1 单表查询
        • 3.3.2.2 多表查询--连接
        • 3.3.2.3 多表查询--嵌套
        • 3.3.2.4 多表查询--集合
      • 3.3.3 数据更新
      • 3.3.4 例题集粹
      • 3.3.5 SQL语言学习小结
    • 3.4 视图
    • 3.5 本章习题
  • 4 数据库安全性
    • 4.1 数据库安全性概述
    • 4.2 数据库安全控制--用户身份鉴别
    • 4.3 数据库安全控制--自主存取控制方法
    • 4.4 视图机制、审计、加密
    • 4.5 本章习题
  • 5 数据库完整性
    • 5.1 数据库完整性约束的概念
    • 5.2 实体完整性
    • 5.3 参照完整性
    • 5.4 用户定义完整性
    • 5.5 完整性约束命名子句
    • 5.6 域中的完整性限制
    • 5.7 断言
    • 5.8 触发器
    • 5.9 本章习题
  • 6 关系数据理论
    • 6.1 问题的提出
    • 6.2 规范化
    • 6.3 数据依赖的公理系统
    • 6.4 模式分解
    • 6.5 本章习题
  • 7 数据库设计
    • 7.1 数据库设计概述
      • 7.1.1 数据库设计的特点
      • 7.1.2 数据库设计的方法
      • 7.1.3 数据库设计的基本步骤
      • 7.1.4 数据库设计过程中的各级模式
    • 7.2 需求分析
    • 7.3 概念结构设计
    • 7.4 逻辑结构设计
      • 7.4.1 E-R图向关系模型的转换
      • 7.4.2 数据模型的优化
    • 7.5 设计用户子模式
    • 7.6 物理设计
      • 7.6.1 数据库物理设计的内容和方法
      • 7.6.2 关系模式存取方法选择
      • 7.6.3 确定数据库的存储结构
      • 7.6.4 评价物理结构
      • 7.6.5 数据库的实施和维护
    • 7.7 本章习题
  • 8 数据库编程
    • 8.1 嵌入式SQL
      • 8.1.1 嵌入式SQL的处理过程
      • 8.1.2 嵌入式SQL语句与主语言之间的通信
      • 8.1.3 不用游标的SQL语句
      • 8.1.4 使用游标的SQL语句
      • 8.1.5 动态SQL
    • 8.2 过程化SQL
      • 8.2.1 过程化SQL的块结构
      • 8.2.2 变量和常量的定义
      • 8.2.3 流程控制
    • 8.3 存储过程和函数
      • 8.3.1 存储过程
      • 8.3.2 函数
    • 8.4 ODBC编程
      • 8.4.1 ODBC概述
      • 8.4.2 ODBC工作原理概述
      • 8.4.3 ODBC API 基础
      • 8.4.4 ODBC的工作流程
    • 8.5 本章习题
  • 9 关系查询处理和查询优化
    • 9.1 关系数据库系统的查询处理
      • 9.1.1 实现查询操作的算法示例
    • 9.2 关系数据库系统的查询优化
      • 9.2.1 一个实例
    • 9.3 代数优化
    • 9.4 物理优化
      • 9.4.1 基于启发式规则的存取路径选择优化
      • 9.4.2 基于代价的优化
    • 9.5 本章习题
  • 10 数据库恢复技术
    • 10.1 事务的基本概念
    • 10.2 数据库恢复概述
    • 10.3 故障的种类
    • 10.4 恢复的实现技术
    • 10.5 恢复策略
    • 10.6 具有检查点的恢复技术
    • 10.7 数据库镜像
    • 10.8 本章习题
  • 11 并发控制
    • 11.1 并发控制概述
    • 11.2 封锁
    • 11.3 封锁协议
    • 11.4 活锁和死锁
    • 11.5 并发调度的可串行性
    • 11.6 两段锁协议
    • 11.7 封锁的粒度
    • 11.8 小结
    • 11.9 本章习题
本章习题

1.试述SQL的特点。

2.说明在DROP TABLE时,RESTRICTCASCADE的区别。

3.有两个关系S(A,B,C,D)T(C,D,E,F),写出与下列查询等价的SQL表达式:




 4.SQL语句完成查询

1)求供应工程J1零件的供应商号码SNO

2)求供应工程J1零件P1的供应商号码SNO

3)求供应工程J1零件为红色的供应商号码SNO

4)求没有使用天津供应商生产的红色零件的工程号JNO

5)求至少用了供应商S1所供应的全部零件的工程号JNO

其中涉及表格如下:

S(SNO,SNAME,STATUS,CITY);   

P(PNO,PNAME.COLOR,WEIGHT);

J(JNO,JNAME,CITY);

SPJ(SNO,PNO,JNO,QTY)

供应S由供应商代码(SNO)、供应商姓名(SNAME)、供应商状态(STATUS)、供应商所

在城市(CITY)组成

零件表P由零件代码(PNO)零件名(PNAME)、颜色(COLOR)、重量(WEIGHT)组成  

工程项目表J由工程项目代码(JNO)、工程项目名(INAME)、工程项目所在城市(CITY)组成  

供应情况表SPJ由供应商代码(SNO)、零件代码(PNO)、工程项目代码(JNO)、供应数量(QTY)  组成,表示某供应商供应某种零件给某工程项目的数量为QTY

今有若干数据如下:

PNO

PNAME

COLOR

WEIGHT

P1

螺母

12

P2

螺栓

绿

17

P3

螺丝刀

14

P4

螺丝刀

14

P5

凸轮

40

P6

齿轮

30

SNO

SNAME

STATUS

CITY

S1

精益

20

天津

S2

盛锡

10

北京

S3

东方红

30

北京

S4

丰泰盛

20

天津

S5

为民

30

上海

JNO

JNAME

CITY

J1

三建

北京

J2

一汽

长春

J3

弹簧厂

天津

J4

造船厂

天津

J5

机车厂

唐山

J6

无线电厂

常州

J7

半导体厂

南京

SNO

PNO

JNO

QTY

S1

P1

J1

200

S1

P1

J3

100

S1

P1

J4

700

S1

P2

J2

100

S2

P3

J1

400

S2

P3

J2

200

S2

P3

J4

500

S2

P3

J5

400

S2

P5

J1

400

S2

P5

J2

100

S3

P1

J1

200

S3

P3

J1

200

S4

P5

J1

100

S4

P6

J3

300

S4

P6

J4

200

S5

P2

J4

100

S5

P3

J1

200

S5

P6

J2

200

S5

P6

J4

500



5.针对习题4中的4个表试用SQL完成以下各项操作:

(1)找出所有供应商的姓名和所在城市;

(2)找出所有零件的名称、颜色、重量;

(3)找出使用供应商S1所供应零件的工程号码;

(4)找出工程项J2使用的各种零件的名称及其数量;

(5)找出上海厂商供应的所有零件号码;

(6)找出使用上海产的零件的工程名称;

(7)找出没有使用天津产的零件的工程号码;

(8)把全部红色零件的颜色改成蓝色;

(9)S5供给J4的零件P6改为由S3供应,请作必要的修改;

(10)从供应商关系中删除S2的记录,并从供应情况关系中删除相应的记录;

(11)请将(S2,J6,P4,200)插入供应情况关系

6.什么是基本表?什么是视图?两者的区别和联系是什么?

7.试述视图的优点。

8.哪类视图是可以更新的?哪类视图是不可更新的?各举一例说明。

9.请为三建工程项目建立一个供应情况的视图,包括供应商代码(SNO),零件代码(PNO)、供应数量(QTY)。针对该视图完成下列查询

(1)找出三建工程项目使用的各种零件代码及其数量:

(2)找出供应商S1的供应情况。