数据库应用系统功能设计
7.1软件体系结构:软件架构={构件,连接件,约束}
7.2 软件设计包括系统的总体结构设计、系统的过程设计、系统的数据设计三方面内容(+人机界面设计),从工程管理的角度,分为概要设计、详细设计
7.3 应用软件分为数据库事务和应用程序。后者一方面可以与数据库事务协调合作,另一方面还可实现与数据库访问无关的功能,如通信、人机交互。
7.4 事务:具有逻辑独立功能的一系列操作的集合,实现了某些特定的业务规则。
7.5 事务概要设计的核心是辨识和设计事务自身的事务处理逻辑,采用面向数据流的程序设计方法设计事务内部的数据处理流程和结构。
7.6 c/S结构特点:数据管理和数据处理被分在客户端和服务器上;服务器可支持多个客户端;客户端也可访问多个服务器;客户端=人机交互+数据处理
B/S结构特点:表示层,wEB浏览器;功能层,wEB应用服务器;数据层,DBmS服务
优点:实现人面交互、应用业务逻辑处理、数据管理三层分离,提高了系统的可维护性;用wEB浏览器可访问多个异构应用平台,解决了跨平台数据管理问题。
www.gaofen123.com
第8章 SQL
8.1 SQL=Structured Query Language,结构化查询语言
8.2 二进制字符串是用十六进制表示的,0x前缀
8.3 创建表:cREATE TABLE Table_card
(cardID varchar(8) NoT NuLL,
StartDate datetime NoT NuLL,
EndDate datetime NoT NuLL,
Score int NoT NuLL cHEcK(Score >=0) DEFAuLT 0,
State char(1) NoT NuLL cHEcK(State in (0,1,2)),
Sex char(1) cHEcK(Sex in(‘男’,’女’)),
Age int cHEcK( Age between[16,85]),
customerID varchar(8),
cHEcK(EndDate > StartDate),
PRImARY KEY (cardID),
FoREIgN KEY (customerID) REFERENcES Table_customer (customerID) )
删除表:DRoP TABLE Table_card
修改表:ALTER TABLE Table_card ADD cardType char(4) NuLL
ALTER TABLE Table_card ALTER coLumN cardType char(8)
ALTER TABLE Table_card DRoP coLumN cardType
8.4 SELEcTame FRom Tablb_customer wHERE
Address IN (‘海淀区’,’朝阳区’) AND
age BETwEEN 40 AND 50 AND
oRDER BY StartDate ASc, EndDate DESc
8.5 除couNT(*)不忽略空值外,其他函数couNT(DISTINcT 列名)、Sum()、AVg()、mAX()、mIN()均忽略空值。均返回单值。
SELEcT Sum (Score),mAX(Age),mIN(Age),AVg(Age),couNT (DISTINcT ..)FRom Table
8.6 分组(gRouP BY)依据列不能是text,ntext,image和bit类型的列。先分组后计算
统计每种类别商品的商品数,只列出商品数大于4个的商品类别编号和商品数:
SELEcT goodclassID as 商品类别编号,couNT(*)as 商品数 FRom Table_goods
gRouP BY goodclassID HAVINg couNT(*)>4
8.7 自连接:查询与王晓在同一个区的顾客的姓名及地址:
SELEcT T2.Name,T2.Address FRom Table_customer as T1 JIoN Table_customer as T2
oN T1.Address = T2.Address wHERE T1.Name = ‘王晓’ AND T2.Name !=’王晓’
子查询:一个SELEcT语句嵌套在一个SELEcT、uPDATE、INSERT或DELETE语句中
SELEcT Name,Address FRom Table_customer wHERE Address IN
(SELEcT Address FRom Table_customer wHERE Name=’王晓’) AND Name!=’王晓’
8.8 外连接:LEFT ouTER JoIN 左外连接(左表全输出)RIgHT ouTER JoIN 右外连接
8.9 子查询: [NoT] IN()集合 不相关子查询,先内后外
wHERE 列 =/</> () 比较 不相关子查询,先内后外
[NoT] EXIST(SELEcT *)存在 相关子查询,先外后内
8.10 修改数据:INSERT [INTo]表名 [列名表] VALuES(值列表)
uPDATE 表名 SET 列名=表达式 [wHERE子句]/ DELETE [FRom] 表名 [wHERE子句]
分情况修改:uPDATE Table_goods
SET SalePrice= cASE goodsclassName
wHEN ‘家用电器’ THEN SalePrice – SalePrice*0.05
wHEN ‘服装’ THEN SalePrice + SalePrice*0.06
ELSE SalePrice
END
FRom Table_goods a JIoN Table_goodsclass b oN a.classID=b.classID
8.11 创建索引:cREATE [uNIQuE][cLuSTERED][NoNcLuSTERED] INDEX 索引名
oN 表名 (列名 [顺序(ASc/DESc)])
8.12 视图:由从数据库基本表中选取出来的数据组成的逻辑窗口,是一个虚表,数据库只存放视图的定义而不存放视图包括的数据。对视图的操作最终都会转换为对基本表的操作。
cREATE VIEw 视图名 [视图列名表]
AS
SELEcT 语句
[wITH cHEcK oPTIoN]
作用:简化数据查询语句;使用户从多角度观察同一数据;提高了数据安全性(屏蔽掉敏感数据);提供一定程度的逻辑独立性
8.13 定点数:numeric(p,q)或decimal(p,q),p为精度(数字位个数),不大于38,q为小数位个数;bit类型:只存储1和0,不多于8个bit列则只用1个字节存储
8.14 char(n)代表的是普通字符编码按定长存储的字符串,“n”的含义是字符的个数,固定占用n个字节的空间。varchar(n) 代表的是普通字符编码按不定长存储的字符串,“n”的含义也是字符的个数,按字符的实际长度占用空间。 www.gaofen123.com
第9章 事务高度与并发控制
9.1 调度:定义在多个事务上的调度是这些事务的所有操作的一个执行序列,代表了这些操作的执行顺序;冲突操作:事务Ti 的操作Ii与事务Tj的操作Ij是冲突的,当且仅当Ii 和 Ij访问数据库中同一个数据项Q,并且Ii 和 Ij中至少有一个是写操作write(Q);冲突可串行:一个并发调度冲突等价于某个串行调度(判断一个并行调度是否正确)
死锁是指数据库系统中部分或全部事务由于无法获得对需要访问的数据项的控制权而处于等待状态,并且将一直等待下去的一种系统状态。
9.2 AcID:Atomicity原子性;consistency一致性;Isolation隔离性;Durability持久性
9.3 1级加锁协议要求事务T在修改数据项Q之前必须先对Q加X锁,直到事务结束才释放该锁。事务结束包括正常结束mit)和非正常结束(rollback)。但事务如果是只读Q而不对其进行修改,是不需要对Q加锁的。
2级加锁协议是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,读完Q后可以立即释放S锁。
3级加锁协议则是在1级加锁协议基础上,要求事务T在读取数据项Q之前必须先对其加S锁,但是需要等到事务结束时才释放该S锁。
9.4 2阶段锁协议将每个事务的执行过程分为加锁阶段和解锁阶段。在加锁阶段,事务可以申请获得数据项上的任何类型的锁,但不允许释放任何锁。在解锁阶段,事务可以释放任何数据项上的任何类型的锁,但不能再申请任何锁。每个事务开始执行后就进入了加锁阶段。当第一次释放锁后,即转入解锁阶段。
9.5解决死锁主要采用死锁预防和死锁检测与恢复两类方法。
+《四级教程数据库工程师重难点整理(1)》相关文章
- 四级教程数据库工程师重难点整理(1)
- › 四级教程数据库工程师重难点整理(1)
- 在百度中搜索相关文章:四级教程数据库工程师重难点整理(1)
- 在谷歌中搜索相关文章:四级教程数据库工程师重难点整理(1)
- 在soso中搜索相关文章:四级教程数据库工程师重难点整理(1)
- 在搜狗中搜索相关文章:四级教程数据库工程师重难点整理(1)