1.关系
(1) relation schema, 就好比编程语言中对变量的声明, 书面可以写作 person(id, name, age)
(2) relation, 就好比编程语言中对变量的定义, 它的外在体现就是一个table
2.超键/候选键/主键
(1)键 key, 键是一个数据的集合, 数据来自于一个或多个字段
(2)超键superkey, 某个键的各个元组可以唯一标识一条记录, 这个键可能包含一个或多个字段
(3)候选键candidatekey, 某个键的各个元组可以唯一标识一条记录, 但是一旦除掉构成键的某个字段, 其余字段就无法唯一标识一条记录了,并且, 单独用它的某一个字段都无法唯一标识记录, 也就是说它是超键的最小子集(指字段)
(4)主键primarykey, 一个table可以通过不同的字段组合构造多种候选键, 选择其中一种作为主键, 那么它就是主键, 也就是说, 主键也是候选键的一种, 它被人为指定为主键
3.完整性约束
比如主键、外键、not null等
4.视图
查询结果无法保存, 如果想以后查看查询结果, 可以把“查询”保存起来, 这个“查询”被称为视图
5.设计表时,将实体中的冗余属性做成关系表独立出来
6. E-R: entity-relationship
Entity: 客观存在的实体
Relationship: 实体间存在的某种关系
7. 字段的值通常都是single的,即不可分割的,但有时是composite的,比如,地址,有街名、门牌号…;有时候composite 字段的组件本身还是composite的,比如街名可能由市名、区名、路名组合。Composite类型的字段称为multivalued. 在E-R图中采用大括号表示,比如{address}
8. 有一种字段的值可以来自于其它字段,那么这个字段被称为derived。比如,有个字段birth表示出生日期, 还有个字段age表示年龄,那么age完全可以通过birth计算出来。在E-R图中采用()表示,比如age()
9. E-R图中,矩形Rectangle表示Entity,菱形◇表示Relationship,矩形中列出字段,带下划线的表示PrimaryKey;Relationship因为可以拥有除了位于与其相关的实体内的字段外的自定义的字段,这种字段采用小短线Dashed line――――表示;Relationship菱形与实体矩形间的线段可以带有箭头,表示实体间的是几对几关系,另外一种方法是在线段上写l..h格式的内容,表示对应个数最小为l,最大为h,如0..*表示0或多个,1..1表示最小为1个,最多也是1个,也就是1对1
10.week entity,弱实体,本身没有唯一键的实体集,它必须借助于其它实体或关系来唯一标识记录,比如,course是课程,section是章节
它们间的Relationship采用如图双边的菱形表示。(sec_id,semester,year)带有下划dashed line表示这是一个partial key,即再借助于course_id它就可以称为primary key了
11. specialization 某实体除拥有另一个实体的全部属性外,还拥有自己特殊的属性,它们间的关系用空心箭头表示,比如
12.第一范式 1NF (First Normal Form), 一种设计数据库时所遵循的原则,指所有字段值都是Atomic的, 即原子的,不再被分割为多个子信息
第二范式2NF,是与主键密切相关的一个概念,在这里,主键含有多个字段,并且,只有同时使用这多个字段才能唯一确定一行,如果发现主键中的某个字段或部分字段就已经可以确定一行,那么就是说,非主键字段部分依赖于了主键字段,这样会存在数据冗余。
第三范式3NF,是只非主键属性之间不能存在依赖,举例说,用户表中如果既有部门ID,也有部门名称,这就不符合3NF,因为有部门ID就足够了。
以上可以看出3NF和2NF都是指同一个表中的各个字段之间不要存在一对一关系(主键除外),如果存在,就应该只保留一个字段,其它的字段存到另一个表里。
13.函数依赖functional dependency,像数学中的函数一样,给定一个参数,可以得到唯一的结果,这个参数和这个结果之间就建立了一种functional dependency关系。具体到数据库中,比如一个primary key可以唯一确定一条记录。
假定存在字段A、B、C。
完全依赖:给定A,可以精确得到C,则A->C,C完全依赖于A;或者给定AB,可以精确得到C,则AB->C,C完全依赖于A
部分依赖:如果同时满足A->C, AB->C,则称C部分依赖于AB,就是说AB的一部分就可以精确得到C
14.无损分解lossless decomposistion 有损分解lossy decomposistion,见数据库系统概念第6版8.1