掌握数据库模型、数据库系统结构和关系数据库结构的基础知识,熟练掌握SQL语言的使用 关系代数的运算。
关系模型遵循数据库的3级体系结构:
(1)关系模式。数据库的概念模式定义为关系模式的集合。每个关系模式就是记录类型。关系模式的定义包括模式名、属性名、值域名和模式的关键。关系模式仅仅是对数据本身特性的描述。
(2)关系子模式是用户所用到的那部分数据的描述。除了指出用户用到的数据外,还应指出数据与模式中相应数据的联系,即指出子模式与模式之间的对应性。
(3)关系存储是作为文件看待的,每个元组就是一个记录。由于关系模式有键,因此存储一个关系可用散列方法或索引方法实现。
用二维表格结构表示实体集,关键码表示实体间联系的数据模型称为关系模型。在关系中,能唯一标识元组的属性集称为关系候选键,被选用的候选键称为关系的主键。关系中每一个属性对应一个取值范围,称为属性的值域。关系可以定义为元数(属性个数)相同的元组的组合。关系是一个集合,集合中的成分是元组,这些元组的属性个数应相同。
关系数据库的数据更新操作必须遵循实体完整性规则、引用完整性规则和用户定义的完整性规则。
关系查询语言根据其理论基础的不同分成两大类:一类是关系代数语言,其特征是查询操作是以集合操作为基础的运算;另一类是关系演算语言,其特征是查询操作是以谓词演算为基础的运算。
关系代数是以集合代数为基础发展起来的、以关系为运算对象的一组高级运算的集合。把关系看成集合,集合代数中的运算可以引入到关系运算中来,还有一些运算是针对关系数据库环境专门设计的。
关系代数的5种基本操作:并、差、笛卡儿积、投影和选择。
关系代数的4种组合操作:交、联接、自然联接和除法。
扩充的关系代数操作:外联接(左外联接和右外联接)、外部并(Out union)和半联接。
结构化查询语言SQL是集DDL、DML和数据控制功能于一体的数据库语言。SQL的DML是介于关系代数和关系演算之间的一种语言。
SQL语言的组成:
·一个SQL数据库是表的汇集,它用一个或多个SQL模式定义。
·一个SQL表由行集构成,一行是列的序列,每列对应一个数据项。
·一个表或者是一个基本表,或者是一个视图。基本表是实际存储在数据库中的表,而视图是由若干基本表或其他视图构成的表的定义。
·一个基本表可以跨一个或多个存储文件,一个存储文件也可存放一个或多个基本表。
·用户可以用SQL语句对视图和基本表进行查询等操作。
·SQL用户可以是应用程序,也可以是终端用户。SQL语句可嵌入在宿主语言的程序中使用,宿主语言可以是常用的高级语言。SQL用户也能作为独立的用户接口,使交互环境下的终端用户使用。
SQL包括了所有对数据库的操作,主要有数据定义(SQL DDL)、数据操纵(SQL DML)、访问控制和嵌入式SQL。
关系数据库规范化理论主要包括3方面的内容:
(1)函数依赖。指数据之间存在的各种联系和约束,例如建就是一种依赖。函数依赖是最基本的一种依赖。
(2)范式。模式分解的标准形式。关系模式分解的两个特性实际上涉及到两个数据库模式的等价性问题,包括数据等价和依赖等价两个方面。数据等价是指两个数据库实例应表示同样的信息内容,用"无损联接"衡量。依赖等价是指两个数据库模式应有相互逻辑关系的函数依赖集,此时数据的语义是不会出差错的。
(3)模式设计方法。设计规范的数据库模式的方法。
衡量关系模式的优劣的标准就是模式的范式(NF)。范式有许多种,与数据依赖有着直接的联系。
①第一范式(INF)
如果关系模式R的每个关系r的属性值都是不可分的原子值,那么称R是第一范式(INF)的模式
,r是规范化的关系。LNF的模式的关系数据库最基本的要求。
②第二范式(2NF)
我们把关系模式R的属性分为两类:一类是键的属性,称为主属性;另一类是不属于任何键的属性,称为非主属性。若关系模式R是INF,且每个非主属性完全函数依赖于候选键,那么称R是2NF模式。
③第三范式(3NF)
若关系模式R是INF,且每个非主属性都不传递依赖于R的候选集,那么称R是3NF模式。在3NF模式中排除了非主属性的对键的传递依赖。3NF的模式必定是2NF的模式。局部依赖和传递依赖是产生冗余和异常的两个重要原因。由于3NF模式中不存在非主属性对候选键的局部依赖和传递依赖,因此具有较好的性能。而对于非3NF的INF和2NF,甚至非INF的关系模式,于它们性能上的弱点,一般不宜作为数据库模式,通常需要将它们变换成3NF或更高级的范式
,这种变换过程,称为"关系的规范化处理"。
④BC范式(简称BCNF)
若关系模式R是INF,且每个属性都不传递依赖于R的候选键,那么称R是BCNF模式。此时排除了任何属性对键的传递依赖。
上述4种范式之间关系:BCNF