1、一个关系模式可能存在的问题:数据冗余、更新异常、插入异常、删除异常。
R(U)是属性集U上的关系模式,X,Y是U的子集。
2、非平凡函数依赖:X --> Y,但Y不属于X,则称X --> Y是非平凡函数依赖。
3、平凡函数依赖:X --> Y,但Y属于X,则称X --> Y是平凡函数依赖。
4、完全函数依赖:在R(U)中,如果X -->Y,并且对于X的任何一个真子集X`,都有X`推不出Y,则称Y对于X完全函数依赖。
5、部分函数依赖:如果X -->Y,但Y不完全函数依赖于X,则称Y对于X部分函数依赖。
6、传递函数依赖:在R(U)中,如果X -->Y(Y不属于X),Y推不出X,Y --> Z,Z不属于Y,则称Z对X传递函数依赖。(X-->Z)
7、主属性:任何一个候选码中的属性。
8、非主属性:不包含在任何候选码中的属性称为非主属性。
9、候选码:设K为R中的属性或属性组合,若U对K完全依赖,则K为R的候选码。
10、主码:若候选码多于一个,则选定其中一个为主码。
11、超码:若U函数依赖于K,则K ---> U,则K称为超码。
12、外码(外部码/外部键):关系模式R中属性或属性组X并非R的码,但X是另一个关系模式的码,则称X是R的外码。(X为另一个关系模式的主码)
13、第一范式(1NF):每一个分量必须是不可分的数据项。
14、第二范式(2NF):消除了非主属性对候选码的部分函数依赖。
15、第三范式(3NF):消除了非主属性对候选码的传递函数依赖。
16、BCNF:消除主属性对码的部分和传递函数依赖。
17、当一个关系模式R(A,B)已属于3NF,则仍存在一定的插入和删除异常。
18、模式分解:无损连接性、保持函数依赖。
1、数据库设计步骤(六个阶段):需求分析阶段 ---> 概念结构设计阶段 ---> 逻辑结构设计阶段 ---> 物理结构设计阶段 ---> 数据库实施阶段 ---> 数据库运行和维护阶段。
2、需求分析阶段:了解与分析用户的数据需求,处理需求,安全性及完整性要求。
3、概念结构设计阶段:通过数据抽象,设计系统概念模型,一般为E-R模型。
4、逻辑结构设计阶段:设计系统的模式和外模式,对于关系模型主要是基本表和视图。
由E-R模型转变为关系模式,这个阶段为逻辑结构设计阶段。
5、物理结构设计阶段:设计数据的存储结构和存取方法,如索引的设计。
6、数据库的实施:组织数据入库、编制应用程序、试运行。
7、数据库的运行和维护阶段:系统投入运行,长期的维护工作。
8、信息需求表达了对数据库内容及结构的要求,是静态需求;处理需求表达了基于数据库的数据处理需求,是动态需求。
9、E-R模型三要素:实体、属性、(实体之间的)联系。
10、关系模式的数量:转化为关系模式时,有a个实体就有a个关系模式;如果还有m个多对多的关系,则还要再加m,即关系模式数量为a+m。
11、E-R图之间的三种冲突:属性冲突(属性域冲突、属性取值单位冲突)、命名冲突(同名异义、异名同义)、结构冲突。
12、数据抽象:主要有分类和聚集两种。
13、如果关系模式R中的所有属性都是主属性,则R的规范化程度至少达到3NF。
14、关系模式R的码都是单属性,则R一定是第2范式。
15、若关系R属于1NF,且对于每一个非平凡的函数依赖X-->Y,都有X包含码,则R最高一定可达到BCNF。
16、在关系模型中,用外码来展现实体之间的联系。
17、从“实体-联系”模型到数据模型实际上经历了三个领域的演变过程:现实世界 ---> 信息世界 ---> 机器事件。
18、常用分解方式:水平分解,垂直分解。