一.数据库系统的模式

1.数据库的三级模式结构是指:数据库系统是由外模式、模式和内模式

模式(逻辑模式)就是数据库数据在逻辑上的视图,且一个数据库只有一个模式

外模式也称为:子模式/用户模式,外模式通常是模式的子集。一个数据库可以有多个外模式

内模式也称为:存储模式,一个数据库只有一个内模式。它是数据库物理结构和存储方式的描述

2.二级影像

  • 外模式/模式映像
  • 模式/内模式映像

这两层映像保证了数据库中的数据能够具有较高的逻辑独立性和物理独立性。

3.错题

概念模式又称为全局模式

外模式称局部模式

数据模型是对模式的抽象,模式的结构性描述称为数据模型

关系模型中,实现不同关系之间的联系是通过外键

4.在关系代数运算中,五种基本运算为并、差、选择、投影、乘积

5.安全的元组演算公式和安全的域演算公式可以等价变换

基于关系域演算的QBE语言,QBE操作框架由关系名、属性名、操作命令、查询条件

6.Create Table有三种功能

定义关系模式、定义完整性约束、定义物理存储特性

7.SQL语句在执行过程中,必须有提交或撤消语句才能确认其对数据库的永久操作结果;

嵌入式SQL语言 中Whenever的作用范围是其后的所有Exec SQL语句直到程序中出现另一条相同条件的Whenever语句为止

8.事务

事务的隔离性是指一个事务内部的操作及使用的数据对并发的其他事务而言是独立的、互不相干的

事务的持久性已提交的事务,其数据将被完全写到永久存储设施上;而对未提交的事务,其对永久存储设施上的操作将会被恢复,即对永久存储设施上的数据没有任何影响;

事务的原子性事务中包括的所有操作要么都做,要么都不做;

持续性,一致性

9.通过游标操纵数据库

使用FOR UPDATE子句没有加OF表示通过游标可以修改表中的任何一列;

FOR UPDATE OF age 表示通过游标只能对age属性进行修改;

使用FOR UPDATE子句表示能通过游标修改表数据,也可以删除表数据;

在定义游标的查询语句时,必须加上FOR UPDATE子句;

10.distinct去掉重复

order 排序//asc,desc

二.设计三范式

(1)一范式就是属性不可分割。

不可分割的意思就按字面理解就是最小单位,不能再分成更小单位了。
这个字段只能是一个值,不能被拆分成多个字段,否则的话,它就是可分割的,就不符合一范式。
不过能不能分割并没有绝对的答案,看需求,也就是看你的设计目标而定。

(2)二范式就是要有主键,要求其他字段都依赖于主键。完全依赖而不是部分依赖。

为什么要有主键?没有主键就没有唯一性,没有唯一性在集合中就定位不到这行记录,所以要主键。
第二范式消除了非主属性对候选键的部分依赖。
其他字段为什么要依赖于主键?因为不依赖于主键,就找不到他们。更重要的是,其他字段组成的这行记录和主键表示的是同一个东西,而主键是唯一的,它们只需要依赖于主键,也就成了唯一的。
如果有同学不理解依赖这个词,可以勉强用“相关”这个词代替,也就是说其他字段必须和它们的主键相关。因为不相关的东西不应该放在一行记录里。

(3)三范式就是要消除传递依赖,方便理解,可以看做是“消除冗余”。

消除冗余应该比较好理解一些,就是各种信息只在一个地方存储,不出现在多张表中。
BCNF范式比3NF又进了一步,通常认为是修正的第三范式;关系设计满足Boyce-Codd范式,则其一定满足第3范式;反之则不然。 BCNF关系模式每个决定因素都包含关键字(而不是被关键字所包含),即所有函数依赖左边必须包括关键字。
3NF——只消除非主属性对主属性的传递依赖;
BCNF——消除所有属性对主属性的传递依赖。

ER模型

组成:
①实体集(矩形):某种抽象对象,相似实体的集合形成的实体集。
弱实体集(双矩形):一个实体集键是另一个实体集的部分或者全部的属性构成,可以有自己的属性,但是必须有键但是其他实体的属性组合而成。
②属性(椭圆):实体集有相关的属性,属性是这个实体集中实体所具有的性质。
③联系(菱形):两个或多个实体集的连接。
单菱形,双菱形(多对一)
④联系的属性:把属性和联系相连。
⑤isa层次(三角形):A是B表达了实体集A到实体集B的isa关系
键:一个实体集键的属性用下划线标出。
ER图到关系设计:
①实体集转化为具有相同属性集的关系
②联系也可以用关系替换,替换的关系属性就是联系所连接的实体集的键集合(如果联系上有属性也加上)
③弱实体集转换关系,w是一个弱实体集,关系包括w的所有属性,与w相连的支持联系的所有属性,与w有关的实体的所有关键字。
④子类转化关系,包含根的键属性和本身的属性。

uml模型

组成:
①类 :类框有三部分(顶部是类的名字,中部是它的属性,底部是方法(一般不要写))
②关联:类之间的二元联系称为关联。(一条线,一个名字,数量约束)
注:自关联:一个关联的两端可以连接同一个类,为了区别需要分别给这两个关联的两端一个名字。
③关联类:关联类放在关联中间,关联类具有自己的名字,没有主关键字,但是它的属性可以是被认为它依附的关联的属性。
④子类:任何UML类在它下面都可以有一个子类的层次。主键来自根层次,就像ER模型的层次。
⑤聚集:一条线,线末端是一个空的菱形(含义是0..1,引用可以为空),不必命名。
⑥组合:一条线,线末端是一个黑色菱形(含义是1..1,引用不能为空),不必命名。
键:在每一个键属性的后面用字母PK标明,表示主键。
UML图到关系的转化:
①类到关系,关系名就是这个类是名字,关系的属性就是这个类的属性。
②关联到关系,对于每一个关联,创建一个名字为关联名的关系,关系的属性就是两个连接类的键属性,加是关联类的属性。