数据库技术第一章数据库系统概述1、数据库技术的三个发展阶段*(蓝)随着计算机硬件和软件的发展,计算机在数据处理方面应用越来越广泛,数据库技术也不断地发展。
2、从数据管理的角度数据库技术经历了三个阶段*(红)。
1. 人工管理阶段2. 文件系统阶段3. 数据库系统阶段3、数据库系统阶段*(红)20世纪60年代后期以来,计算机应用越来越广泛,数据量急剧增加,数据的共享要求越来越高。
硬件方面,有了大容量的磁盘;软件方面,出现了能够统一管理和共享数据的数据库管理系统(DBMS) 。
所以,此阶段将数据集中存储在一台计算机上(数据库中),进行统一组织和管理。
4、数据库管理系统(DataBase Management System,DBMS)*(红)数据库管理系统是数据库系统的核心,是为数据库的建立、使用和维护而配置的软件。
它建立在操作系统的基础上,位于用户与操作系统之间的一层数据管理软件,它为用户或应用程序提供访问数据库的方法,包括数据库的创建、查询、更新及各种数据控制等。
5、数据库管理员(Database Administrator, DBA)*(蓝)数据库管理员是高级用户,其职能是管理、监督、维护数据库系统的正常运行,负责全面管理和控制数据库系统。
职责:设计数据库的结构和内容,定义数据库的安全性和完整性,监督数据库的运行等等。
6、数据库管理系统的功能*(蓝)数据库管理系统是数据库系统的核心软件,一般说来,其功能主要包括以下5个方面。
(1)数据定义和操纵功能DBMS提供数据定义语言DDL对数据库中的对象进行定义和数据操纵语言DML检索、插入、修改、删除数据库中的数据。
(2)数据库运行控制功能对数据库进行并发控制、安全性检查、完整性约束条件的检查和执行、数据库的内部维护等。
7、数据库的三级模式结构*(红)为了保障数据与程序之间的独立性,使用户能以简单的逻辑结构操作数据而无需考虑数据的物理结构,简化应用程序的编制和程序员的负担,增强系统的可靠性。
DBMS将数据库的体系结构分为三级模式:外模式、模式和内模式。
8、模式/内模式映像此映像的功能是:保证了数据与程序的物理独立性,简称物理数据独立性*(红)第二章数据模型1、几个重要概念*(红)(1)实体(Entity):客观存在并可以相互区分的事物。
如一个学生、一个班级等。
(2)属性(Attribute):实体所具有的某些特性。
通过属性对实体进行描述,实体是由属性组成的。
(3)码(Key):一个实体往往有多个属性,它们构成该实体的属性集合。
如果其中有一个属性或属性集能够唯一标识整个属性集合,则称该属性或属性集为该实体的码。
(4)实体型(Entity Type):具有相同属性的实体必然具有共同的特征和性质。
用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。
例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。
(5)实体集(Entity Set):同型实体的集合称为实体集。
例如,全体学生就是一个实体集。
(6)联系(Relationship):现实世界的事物之间是有联系的,即各实体型之间是有联系的。
2、实体-联系模型*(红)概念模型的表示方法很多,其中最为著名和使用最为广泛的是P.P.Chen于1976年提出的E-R(Entity-Relationship)模型。
E-R模型又叫实体-联系模型,是对现实世界的一种抽象,它的主要成分是实体、联系和属性。
E-R模型的图形表示称为E-R图。
3、关系数据模型*(红)用二维表格结构表示实体以及实体之间的联系的数据模型称为关系模型。
关系模型是数据模型中最重要的模型。
它以关系数学为理论基础,在关系模型中,操作的对象和操作结果都是二维表。
4、重要概念*(红):(1)关系一个关系就是一张二维表,每个关系都有一个关系名,在计算机里,一个关系可以存储为一个文件。
(2)元组二维表中的行称为元组,每一行是一个元组。
元组对应存储文件中的一个记录。
(3)属性二维表的列称为属性,每一列有一个属性名,属性值是属性的具体值。
属性对应存储文件中的一个字段,属性的具体取值就形成表中的一个个元组。
(4).域域是属性的取值范围。
5、关系模式*(红)对关系的信息结构及语义限制的描述称为关系模式,用关系名和包含的属性名的集合表示。
例如,职工信息表的关系模式是:职工(职工号,姓名,性别,年龄,工资)。
第三章关系数据库1、关系模式*(红)关系数据库中,关系模式是型,关系是值;关系模式是对关系的描述。
因此关系模式必须指出这个元组集合的结构,即它由哪些属性构成,这些属性来自哪些域,以及属性与域之间的映象关系。
2、关系模式通常可以简记为*(红):R (U) 或R (A1,A2,…,An)其中:R 是关系名,A1,A2,…,An 为属性名。
3、关系模型允许定义三类完整性约束*(红):实体完整性、参照完整性和用户自定义的完整性约束。
4、实体完整性规则*(红)实体完整性规则要求关系中元组在组成主码的属性上不能有空值。
例如学生表中的学号属性不能为空。
选修关系的主码为学号和课程号都不允许为空。
5、参照完整性规则*(红)设F是基本关系R的一个或一组属性,但不是关系R的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key),并称基本关系R为参照关系,基本关系S为被参照关系或目标关系。
如,班级关系(班级,班主任)中班级为主码。
学生关系(学号,姓名,性别,班级)中班级为外码。
参照完整性是用来定义外码与主码之间引用规则的。
6、参照完整性规则**(双红):若属性(或属性组)F是基本关系R的外码,它与基本关系S的主码Ks相对应(基本关系R和S可能是相同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主码值。
【例】学生实体和专业实体可以用下面的关系表示,其中主码用下划线标识。
学生(学号,姓名,性别,年龄,系别号)系别(系别号,系名)“系别号”属性是学生关系的外码,是系别关系的主码。
系别关系是被参照关系,学生关系为参照关系。
所以,学生关系中的每个元组的“系别号”属性只能取下面两类值:空值或系别关系中已经存在的值。
7、专门的关系运算*(红)专门的关系运算包括选择、投影、连接、除等。
(具体内容看课本)第四章关系规范化基础1、几种特定的函数依赖*(红)(1)非平凡函数依赖和平凡函数依赖设关系模式R(U),X、Y⊆U;如果X→Y,且Y ⊆X,则称X→Y为平凡的函数依赖。
如果X→Y,且Y不是X的子集,则称X→Y为非平凡的函数依赖。
例:在学生课程关系(学生号,课程号,成绩)中,若存在函数依赖:(1)(学生号,课程号)→成绩;(2)(学生号,课程号)→课程号;(1)为非平凡函数依赖(2)为平凡函数依赖(2)完全函数依赖和部分函数依赖定义:设关系模式R(U),X,Y⊆U;如果X→Y,并且对于X的任何一个真子集Z,Z→Y都不成立,则称Y完全函数依赖于X。
若X→Y,但对于X的某一个真子集Z,有Z→Y成立,则称Y部分函数依赖于X。
例:在关系SC(Sno, Cno, Grade)中,(Sno, Cno)是主码,由于:Sno →Grade不成立,Cno →Grade也不成立,因此:Grade 完全函数依赖于(Sno, Cno)。
又例:在关系SC(Sno, Cno, Sname,Grade)中,(Sno, Cno)是主码,由于:Sno →Sname成立,因此:Sname 部分函数依赖于(Sno, Cno)。
(3)传递函数依赖设关系模式R(U),X ⊆U,Y ⊆U,Z ⊆U。
如果X→Y,Y→Z成立,则称X→Z为传递函数依赖。
例如:关系模式R={A, B, C, D},其上的函数依赖集F={A→B, B→C, A→C, AB→D},则A→C为传递函数依赖。
2、关系模式学生信息表中存在如下问题*(红):①数据冗余(浪费大量的存储空间)。
例:每一个系主任的姓名重复出现很多次②更新异常(数据冗余,更新数据时,维护数据完整性代价大)例:某系更换系主任后,系统必须修改与该系学生有关的每一个元组③插入异常(该插的数据插不进去)例:如果一个系刚成立,尚无学生,我们就无法把这个系及其系主任的信息存入数据库。
④删除异常(不该删除的数据不得不删)例:如果某个系的学生全部毕业了,我们在删除该系学生信息的同时,把这个系及其系主任的信息也删掉了。
以上问题产生的原因:由存在于模式中的某些不合适的数据依赖引起的。
解决方法:*(红)通过分解关系模式来消除其中不合适的数据依赖。
3、一个低一级范式的关系模式,通过模式分解可以转换为若干个高一级范式的关系模式的集合,这个过程称为规范化。
*(红)4、常用的三种范式**(双红)(1)第一范式(1NF)定义:设R是一个关系模式。
如果R的每个属性的值域都是不可分的简单数据项(原子)的集合,则称这个关系模式属于第一范式, 简记作R∈1NF。
简单表述:如果关系模式R的每一个属性都是不可分解的,则R ∈1NF 。
1NF是规范化最低的范式,在任何一个关系数据库系统中,关系至少应该是第一范式。
不满足第一范式的数据库模式不能称为关系数据库。
(2)第二范式**(双红)定义:如果关系模式R是第一范式,且每个非主属性都完全函数依赖于码,则称R为满足第二范式的模式,记为:R∈2NF。
在一个关系中,包含在任何候选码中的各个属性都称为主属性;不包含在任何候选码中的属性称为非主属性。
(1)主关键字只有一个属性的关系一定是第二范式。
例如:关系R(学号,姓名,出生日期,成绩)主属性为学号;非主属性为姓名、出生日期、成绩。
存在下列函数依赖关系:学号→姓名,学号→性别,学号→出生日期,学号→成绩由于每个非主属性都完全函数依赖于码,所以该关系R∈2NF。
(2)主关键字是属性的组合,这样的关系模式可能不是第二范式。
例如:关系S(学号,姓名,性别,课程,学分)其中学号和课程为主属性;姓名、性别、学分为非主属性,存在下列函数依赖关系:学号→姓名,学号→性别,(课程、学号)→学分(3)第三范式**(双红)定义:如果关系模式R是第二范式,且没有一个非主属性是传递函数依赖于码,则称R为满足第三范式的模式,记为:R∈3NF。
例:有关系模式,学生(学号,姓名,系名,系主任)存在的函数依赖是学号→系名,学号→姓名,系名→系主任。
所以系主任传递函数依赖于学号。
分解:(1)学生(学号,姓名,系名)(2)系(系名,系主任)5、关系模式规范化的基本步骤总结:*(红)(1) 对1NF 关系进行投影,消除原关系中非主属性对码的部分函数依赖,将1NF 关系转换成为若干个2NF 关系。
(2) 对2NF 关系进行投影,消除原关系中非主属性对码的传递函数依赖,从而产生一组3NF 。