1、1 数据库及其应用2第一章第一章 数据库基础知识数据库基础知识31.1 数据库的基本概念4人工管理人工管理文件系统文件系统数据库系统数据库系统一、人工管理阶段(一、人工管理阶段(50年代)年代)1.数据不能保存;数据不能保存;2.没有专门的软件对数据进行管理;没有专门的软件对数据进行管理;3.只有程序的概念只有程序的概念,没有文件的概念;没有文件的概念;4.数据面向程序。数据面向程序。1.1.11.1.1数据管理技术的发展数据管理技术的发展5二、二、文件系统阶段文件系统阶段(60年代)年代)1.数据以文件的形式可以长期保存;数据以文件的形式可以长期保存;2.数据的逻辑结构和物理结构有了区别数据
2、的逻辑结构和物理结构有了区别,但比较简单;但比较简单;3.文件组织已多样化文件组织已多样化,但缺乏联系;但缺乏联系;4.数据可以共享;数据可以共享;5.数据操作以记录为单位。数据操作以记录为单位。文件是操作系统管理数据的基本单位文件是操作系统管理数据的基本单位其问题:文件面向特定应用、数据冗余、数据不一其问题:文件面向特定应用、数据冗余、数据不一致、文件之间缺乏联系。致、文件之间缺乏联系。1.1.11.1.1数据管理技术的发展数据管理技术的发展6三、数据库系统阶段(三、数据库系统阶段(60年代后期)年代后期)数据库系统的主要特点:数据库系统的主要特点:1.1.数据结构化;数据结构化;2.2.数
3、据共享;数据共享;3.3.数据冗余小;数据冗余小;4.4.较高的数据独立性;较高的数据独立性;5.5.使用方便的用户接口;使用方便的用户接口;6.6.增加了系统的灵活性。增加了系统的灵活性。1.1.11.1.1数据管理技术的发展数据管理技术的发展71.1.2 数据库的基本术语数据库的基本术语1.数据库(数据库(Database,简记为,简记为DB)数据是存储在某种媒体上能够识别物理符号数据库是长期存储在计算机内的、有组织的、统一管理的相关数据的集合。实现数据间的联系是数据库的重要特点。81.1.2 数据库的基本术语数据库的基本术语2.数据库管理系统数据库管理系统(Database Manage
4、ment System,简记为DBMS)是数据库系统中专门用来管理数据的软件,位于用户与操作系统之间的数据管理软件,是用户使用数据库的接口,DBMS为用户提供了访问DB的方法,包括DB的建立、查询、更新和各种数据控制。91.1.2 数据库的基本术语数据库的基本术语3.数据库系统数据库系统(Database System,简记为DBS)是指在计算机系统中采用了数据库技术后的系统,包含DB、DBMS、应用程序、DBA和用户。101.2 1.2 数据描述数据描述包括:包括:概念设计:数据库所表达的概念的数据描述。概念设计:数据库所表达的概念的数据描述。逻辑设计:数据库逻辑数据的描述。逻辑设计:数据库
5、逻辑数据的描述。物理设计:物理存储物理设计:物理存储 介质的数据描述。介质的数据描述。11概念设计是指根据用户的需求设计数据库概念设计是指根据用户的需求设计数据库所表达的概念所表达的概念1.实体(实体(Entity)实体是客观存在并可相互区别的任何事件实体是客观存在并可相互区别的任何事件2.2.实体集(实体集(Entity SetEntity Set)性质相同的性质相同的同类型实体的集合同类型实体的集合3.3.属性(属性(Attribute)实体所具有的特性实体所具有的特性4.实体标识符实体标识符(Identifer)能唯一标识实体的一个能唯一标识实体的一个属性或多个属性的组合属性或多个属性的
6、组合 1.2.1 1.2.1 概念设计中的数据描述概念设计中的数据描述12逻辑设计是指从概念设计得到的数据库概念出逻辑设计是指从概念设计得到的数据库概念出发来设计数据库的逻辑结构,即实现数据存取的表发来设计数据库的逻辑结构,即实现数据存取的表达方式和方法。达方式和方法。逻辑数据描述用来向程序员或用户提供操作数逻辑数据描述用来向程序员或用户提供操作数据时使用的逻辑数据形式,是一种用户下的数据描据时使用的逻辑数据形式,是一种用户下的数据描述。述。1.2.2 1.2.2 逻辑设计中的数据描述逻辑设计中的数据描述131.1.字段:标识实体属性的命名单位,或叫数据项字段:标识实体属性的命名单位,或叫数据
7、项2.2.记录:字段的有序集合记录:字段的有序集合用一个记录描述一个实体用一个记录描述一个实体3.3.文件:同类记录的集合文件:同类记录的集合文件用来描述实体集的文件用来描述实体集的4.4.关键码:能唯一标识文件中每个记录的一个字段关键码:能唯一标识文件中每个记录的一个字段或多个字段的组合,简称键。或多个字段的组合,简称键。1.2.2 1.2.2 逻辑设计中的数据描述逻辑设计中的数据描述14联系是指实体之间的联系。联系是指实体之间的联系。与一个与一个联系有关的实体集的个数,称为联系的元数。联系有关的实体集的个数,称为联系的元数。联系有联系有一一元联系、二元联系和三元联系元联系、二元联系和三元联
8、系我们只要求二元联系我们只要求二元联系,二元联系有三种类型:二元联系有三种类型:一对一联系(简记为一对一联系(简记为1:1)设设A,B为两个实体集,若为两个实体集,若A中的每个实体至多和中的每个实体至多和B中的一个中的一个实体有联系,反过来,实体有联系,反过来,B中的每个实体至多和中的每个实体至多和A中的一个实体有中的一个实体有联系,称联系,称A对对B或或B对对A是是1:1联系,例如学校和校长之间就是联系,例如学校和校长之间就是1:1联系。联系。1.2.3 1.2.3 数据联系的描述数据联系的描述15一对多联系(一对多联系(简记为简记为1:n)如果如果A中的每个实体可以和中的每个实体可以和B中
9、的几个实体有联系,中的几个实体有联系,反过来,反过来,B中的每个实体至多和中的每个实体至多和A中的一个实体有联中的一个实体有联系,那么系,那么A对对B是是1:n联系,例如学校和教师之间就联系,例如学校和教师之间就是是1:n联系。联系。多对多联系(多对多联系(简记为简记为m:n)若若A中的每个实体可以和中的每个实体可以和B中的多个实体有联系,中的多个实体有联系,反过来,反过来,B中的每个实体也可以和中的每个实体也可以和A中的多个实体有中的多个实体有联系,称联系,称A对对B或或B对对A是是M:n联系,例如学生和课联系,例如学生和课程之间就是程之间就是m:n联系联系。1.2.3 1.2.3 数据联系
10、的描述数据联系的描述16数据模型是客观事物及其联系的数据描述。数据模型是客观事物及其联系的数据描述。1.3 1.3 数据模型数据模型171.1.数据库系统的数据库系统的三级组织结构三级组织结构概念模式概念模式用来表达用户需求观点的数据库全局逻辑结构的模式模式。逻辑模式逻辑模式用来表达计算机实现观点的数据库全局逻辑结构的模模式。式。外模式外模式用来表达使用观点的数据库局部逻辑结构的模式内部模式内部模式用来表达数据库物理结构的模式这4中模式之间的关系可参考模式之间的关系可参考P8P8图图1-101-10181.数据库系统的三级组织结构数据库系统的三级组织结构各个各个模式之间的关系是:模式之间的关系
11、是:逻辑模式是内模式的逻辑表示逻辑模式是内模式的逻辑表示内模式是逻辑模式的物理实现内模式是逻辑模式的物理实现外模式是逻辑模式的部分提取外模式是逻辑模式的部分提取191.3.2 数据抽象的过程数据抽象的过程就是数据库设计的过程,分为以下步骤:1.概念设计概念设计根据用户的需求,设计数据库的概念模型2.逻辑设计逻辑设计u把概念模型转换为数据库的逻辑模型u根据用户的业务特点,设计不同的外部模型给程序员使用3.物理设计物理设计根据逻辑模型设计其内部模型内部模型与外部模型之间的对应关系称为“映射”。201.3.3概念模型的特点及设计1.概念模型的特点概念模型的特点概念模型表达的是数据库的整体逻辑结构。概
12、念模型表达的是数据库的整体逻辑结构。概念模型是从用户需求的观点出发对数据建概念模型是从用户需求的观点出发对数据建模。模。概念模型与硬件和软件无关。概念模型与硬件和软件无关。概念模型是数据库设计人员与用户之间进行概念模型是数据库设计人员与用户之间进行交流的工具。交流的工具。211.3.3概念模型的特点及设计2.概念模型的设计概念模型的设计普遍采用实体联系模型(E-R模型)来表达概念模型E-R模型:用图形的方法,描述实体及实体间的联系实体:用矩形表示属性:用与实体相连的椭圆表示联系(Relationship):用与相应的实体相连的菱形表示在联系的两端标出联系的类型,标出联系的属性22课程课程学生学
13、生选修选修学时学时课程号课程号课程名课程名学号学号姓姓 名名专业专业成绩成绩年龄年龄MN性别性别231.3.4 逻辑模型的特点及设计1.逻辑模型的特点逻辑模型的特点逻辑模型表达的是数据库的整体逻辑结构。逻辑模型是从数据库实现的观点出发建模的。逻辑模型独立于硬件,但依赖于软件,特别是DBMS。逻辑模型是数据库设计人员与应用程序员之间进行交流的工具。242.逻辑模型的设计逻辑模型的设计在选定DBMS后,把概念模型转换为数据库的逻辑模型常见的数据模型:层次、网状、关系和对象模型关系模型是当今主要的数据模型关系模型是一种由若干个关系模式组成的集合,关系模式的实例称为关系,关系实际上是一张二维表格。1.
14、3.4 逻辑模型的特点及设计逻辑模型的特点及设计25例如:把下面的例如:把下面的E-R概念模型转换为关系模型概念模型转换为关系模型1.3.4 逻辑模型的特点及设计学生(学生(学号学号,姓名,姓名,性别,性别,年龄,专业)年龄,专业)课程(课程(课程号课程号,课程名,学时),课程名,学时)选修(选修(学号,课程号学号,课程号,成绩),成绩)课程课程学生学生选修选修学时学时课程号课程号课程名课程名学号学号姓姓 名名专业专业成绩成绩年龄年龄MN性别性别261.3.5 外部模型外部模型是一种用户观点下的DB局部逻辑结构模型,用于满足特定的用户数据要求。外部模型中模式称为视图。外部模型的特点:反映了用户
15、使用数据库的观点,是针对用户需求的数反映了用户使用数据库的观点,是针对用户需求的数据而设计的据而设计的是逻辑模型的一个子集是逻辑模型的一个子集硬件独立,软件依赖硬件独立,软件依赖271.3.6 内部模型内部模型有称物理模型,是数据库最低层的抽象,它描述数据在磁盘上的存储形式、存取设备和存取方法。内部模型与硬件紧密相连,因此从事这个级别设计的人员必须具备全面的软、硬件知识。28 1.4 1.4 数据库系统数据库系统数据库系统是指采用数据库技术后的整数据库系统是指采用数据库技术后的整个计算机系统。个计算机系统。291.4.1 数据库系统的组成1.数据库2.硬件包括:CPU、内存、外存和I/O设备3
16、.软件包括:DBMS、OS、应用程序主语言和应用开发的支撑软件4.数据库管理员DBA301.4.1 数据库系统的组成数据库管理员DBA的主要职责:1.定义模式、内部模式和与用户交流,定义外模式2.提供技术培训3.定义安全性规则,对用户访问数据库授权4.定义完整性规则,监督数据库运行5.数据库的转储与恢复工作31 1.4.2 DBMS 1.4.2 DBMS的工作模式的工作模式 DBMSDBMS是数据库系统的核心。是数据库系统的核心。在在DBSDBS中,任何数据操作,都是在中,任何数据操作,都是在DBMSDBMS管理下进行的。管理下进行的。DBMSDBMS是用户与数据库的接口,应用程序只有通过是用
17、户与数据库的接口,应用程序只有通过DBMSDBMS才能和数据库打交道。才能和数据库打交道。DBMSDBMS的工作模式可以参考的工作模式可以参考P13P13图图1-131-13321.1.数据定义功能数据定义功能(DDL)用来定义数据库的三级结构和两级映射用来定义数据库的三级结构和两级映射映射功能:实现映射功能:实现外模式外模式/模式、模式模式、模式/内模式内模式两级映两级映射射ACCESS是一种通过交互式对话方式定义数据库是一种通过交互式对话方式定义数据库2.数据库操纵功能数据库操纵功能(DML)查询、插入、删除和修改数据等操作是数据查询、插入、删除和修改数据等操作是数据库的主要应用库的主要应
18、用3.数据库管理功能数据库管理功能1.4.3 DBMS1.4.3 DBMS的主要功能的主要功能334.数据库控制功能数据库控制功能数据库安全性控制、数据库完整性控制、故障数据库安全性控制、数据库完整性控制、故障恢复、并发控制。恢复、并发控制。5.数据库维护功能数据库维护功能数据装入、转换、转储、数据库重组及性能监数据装入、转换、转储、数据库重组及性能监控等控等1.4.3 DBMS1.4.3 DBMS的主要功能的主要功能341.5 关系模型的基本概念关系模型的基本概念351.5.1关系模型及其术语关系模型及其术语1.关系模型元组:关系中的行(除标题栏所在行)属性:关系的标题栏中各列的名字 域:属
19、性的取值范围 关系模式的表示形式:关系名(属性名1,属性名2,属性名n)关系中属性的个数称为元数,元组的个数称为基数361.5.1关系模型及其术语关系模型及其术语2.关系码候选键:关系中凡能唯一标识一个元组的属性或属性集主键:用户从候选键中选择一个用来标识元组的属性或属性集外键:如果关系模式R中的一个属性K是另一个关系模式的主键,属性K在R中称为外键。371.5.2 理解关系模型理解关系模型为了表示关系之间的联系在关系模式中约定:有下划线的为主键属性,外键属性有波浪线学生(学号,姓名,性别,年龄,专业)课程(课程号,课程名,学时)选修(学号,课程号,成绩)在ACCESS中用图形表示关系之间的联
20、系,键属性用粗体表示,1:n联系的1端用“1”表示,n端用“”表示381.5.3 关系的性质关系的性质1.关系中的每个属性值都是不可分割关系中的每个属性值都是不可分割2.同关系中不允许出现相同的属性名同关系中不允许出现相同的属性名3.关系中的任意两行(任意两个元组)不关系中的任意两行(任意两个元组)不能完全相同能完全相同4.行的顺序任意行的顺序任意5.列的顺序任意列的顺序任意391.实体完整性规则实体完整性规则关系中的元组在组成主关系中的元组在组成主键的属性上不允许取空键的属性上不允许取空值。值。1.5.4 关系模式的三类完整性规则关系模式的三类完整性规则40参照完整性规则参照完整性规则是指是
21、指“不允许参照引用与当前关系相联系的另一关系中不不允许参照引用与当前关系相联系的另一关系中不存在的元组,存在的元组,即在关系模型即在关系模型A中,外部键或者取空值或者等于中,外部键或者取空值或者等于B中某个元组的的主码值。中某个元组的的主码值。例如例如:有两个关系有两个关系(表表):学生学生(学号学号,姓名姓名,系号系号)系系(系号系号,系名系名,系主任系主任)学生表的主键为学号,系表的主键为系号。在学生表中,学生表的主键为学号,系表的主键为系号。在学生表中,系号是它的外部键,则该属性在学生表中的取值有两种可能:系号是它的外部键,则该属性在学生表中的取值有两种可能:取空值,表明该学生尚未分配到
22、任何系;取空值,表明该学生尚未分配到任何系;若取非空值,则它必须是系表中某个元组中的系号值,若取非空值,则它必须是系表中某个元组中的系号值,因为该学生不能属于一个不存在的系。因为该学生不能属于一个不存在的系。1.5.4 关系模式的三类完整性规则关系模式的三类完整性规则41 3.用户定义完整性用户定义完整性规则规则在建立关系模式时在建立关系模式时,允许用户定义属性的类型、大允许用户定义属性的类型、大小和取值范围,采用统一的方法进行检验实施,不再小和取值范围,采用统一的方法进行检验实施,不再由程序员承担这部分工作。由程序员承担这部分工作。如性别只能是如性别只能是“男男”或或“女女”两种可能,年龄的
23、取两种可能,年龄的取值只能限制在值只能限制在0200之间才合乎情理等。之间才合乎情理等。1.5.41.5.4 关系模式的三类完整性规则关系模式的三类完整性规则421.1.关系模型的形式定义关系模型的形式定义关系模型由数据结构、数据操纵和数据完整性规则关系模型由数据结构、数据操纵和数据完整性规则三部分组成。三部分组成。数据结构:数据结构:关系关系数据操纵:数据操纵:关系代数、关系演算、关系逻辑关系代数、关系演算、关系逻辑数据完整性规则:数据完整性规则:实体完整性、参照完整性、用户实体完整性、参照完整性、用户定义的完整性定义的完整性1.5.51.5.5 关系模式的形式定义和优点关系模式的形式定义和
24、优点432.2.关系模型的优点关系模型的优点关系模型用关系表示实体及联系,具有较高的关系模型用关系表示实体及联系,具有较高的简明性和精确性简明性和精确性关系模型的逻辑结构和相应的操作完全独立于关系模型的逻辑结构和相应的操作完全独立于数据存储方式,具有高度的数据独立性数据存储方式,具有高度的数据独立性关系模型建立在比较坚实的数学基础上。关系模型建立在比较坚实的数学基础上。关系运算的完备性和设计规范化理论为数据库技术关系运算的完备性和设计规范化理论为数据库技术奠定了基础。奠定了基础。1.5.51.5.5 关系模式的形式定义和优点关系模式的形式定义和优点441.6 E-R模型的设计1.6.1设计局部
25、E-R模型1.根据局部需求分析的结果产生局部实体集根据局部需求分析的结果产生局部实体集 注意哪些抽象为实体,哪些抽象为属性,哪些注意哪些抽象为实体,哪些抽象为属性,哪些抽象为实体间的联系,注意哪些属性是单值属性,抽象为实体间的联系,注意哪些属性是单值属性,哪些是多值属性,哪些是复合属性,哪些是多值属性,哪些是复合属性,2.确定局部实体集间的联系及其约束,形成局部确定局部实体集间的联系及其约束,形成局部E/R图图451.6 E-R模型的设计1.6.2设计全局E-R模型1.确认对应关系和冲突确认对应关系和冲突 命名冲突:同名异义和异名同义命名冲突:同名异义和异名同义 概念冲突概念冲突 属性冲突属性
26、冲突 约束冲突约束冲突2.进行修改,解决冲突进行修改,解决冲突3.把把局部局部E-R图进行合并图进行合并461.6 E-R模型的设计1.6.3对全局E-R模型进行优化1.合并相关实体类型,减少实体个数,一个只合并相关实体类型,减少实体个数,一个只实体出现一次实体出现一次 2.消除冗余的属性消除冗余的属性 3.消除冗余的联系消除冗余的联系47开开课课拥拥有有学学 生生单位单位选选修修课程课程单位号学号姓名性别年龄编号课程名教师号图(图(a)学生选课局部)学生选课局部E-R图图 48教师号图(图(b)教师任课局部)教师任课局部E-R图图属于属于讲授讲授教教 师师姓名性别职称课程编号单位单位号电话4
27、9单单 位位教教 师师学学 生生课课 程程属属于于拥有拥有选选修修开开课课讲讲授授图(图(c)合并后的全局的)合并后的全局的E-R图图501.7 E-R模型转换为关系模式模型转换为关系模式实体的转换的方法:实体的转换的方法:一个实体转换一个关系,实体的属性为关系的属性,实体的主键为关系的主键。51E/RE/R模型联系的转换方法模型联系的转换方法:1.两个实体间两个实体间1 1:1 1联系联系可以省略,即不转换为关系可以省略,即不转换为关系2.两个实体间两个实体间1:N联系联系将将N方转换为一个关系,把方转换为一个关系,把1方实体的主键纳入方实体的主键纳入N方方实体对应的关系中作为外部键。实体对
28、应的关系中作为外部键。3.两个实体间两个实体间M:N联系联系此联系必须用一个关系来表示此联系必须用一个关系来表示。该关系的属性中至。该关系的属性中至少要包含被他所联系的双方实体的主键及联系的属少要包含被他所联系的双方实体的主键及联系的属性。性。521.8 关系代数1.传统的集合运算并、差、交、笛卡儿积、除法2.专门的关系运算选择、投影、连接、自然连接53v从关系R中选择若干属性组成新的关系vA1,A2,An(R),表示从R中选择属性集A A1 1,A,A2 2,A,An n组成新的关系v列的运算v投影运算的结果中,也要去除可能的重复元组投影投影Projection()54v从关系R中选择符合条
29、件的元组构成新的关系vC(R),表示从R中选择满足条件(使逻辑表达式C为真)的元组v行的运算选择选择Selection()55v关系R、S的笛卡儿积是两个关系的元组对的集合所组成的新关系vRS:属性是R和S的组合(有重复)元组是R和S所有元组的可能组合是R、S的无条件连接,使任意两个关系的信息能组合在一起笛卡儿积()56ABCa1a1a2b1b2b2c1c2c1ABCa1a1a2b2b3b2c2c2c1例如例如:R S 笛卡儿积笛卡儿积()57R S=ABCABCa1a1a1a1a1a1a2a2a2b1 b1 b1b2b2b2b2b2b2c1c1c1c2c2c2c1c1c1a1a1a2a1a1
30、a2a1a1a2b2b3b2b2b3b2b2B3b2c2c2c1c2c2c1c2c2c1笛卡儿积()58 用R C S表示 先作R和S的笛卡儿积,再从RS的结果集中,选取满足条件C的元组,组成新的关系 C是一个关于属性集的逻辑表达式连接()59例如:R S R BD SABC147258369ABCDE114225336366122DE3612连接()60从RS的结果集中,选取在某些公共属性上具有相同值的元组,组成新的关系R、S的公共属性属性集的交集(名称及类型相同)公共属性在结果中只出现一次等值连接自然连接()61例1:R S R SABCa1a1a2a2b1b2b3b456812BEb1b
31、2b3b3b5371022ABCEa1a1a2a2b1b2b3b3568837102自然连接()62连接连接()与自然连接与自然连接()例2:T Q T QABC147258369BD5872ABCD47586972AT.BCQ.BD1425363577T CD Q631.9 关系规范化关系规范化641.数据冗余同一个数据多次重复出现2.修改异常修改复杂,产生不一致现象3.插入异常由于完整性约束,有些数据不能插入4.删除异常删除数据时,会引起删除了不该删除的数据1.9.1 1.9.1 关系模式的冗余和异常问题关系模式的冗余和异常问题651.函数依赖(FD)关系中属性之间取值的依赖情况属性之间的
32、联系假设给定 X 属性的值,就知道 Y的值,那么 X 函数决定 Y 简记为:XY1.9.2 1.9.2 函数依赖函数依赖66 完全函数依赖完全函数依赖 如果如果XY,并且对于,并且对于X的任何真子集的任何真子集Z,ZY都不成立,都不成立,则称则称XY是一个完全函数依赖。是一个完全函数依赖。部分函数依赖部分函数依赖 如果如果XY,但不是完全函数依赖,则称,但不是完全函数依赖,则称XY是一个部是一个部分函数依赖。分函数依赖。传递函数依赖传递函数依赖 设设R(U)是一个关系模式,)是一个关系模式,X,Y,ZU,如果,如果XY,YZ且且YX,则称,则称Z传递函数依赖于传递函数依赖于X。1.9.2 1.
33、9.2 函数依赖函数依赖67范式(Normal Forms):衡量关系模式好与坏的标准规范化:把一个给定关系模式转化为某种范式的过程。一个关系满足某个范式所规定的一系列条件时,它就属于该范式可以用规范化要求来设计数据库也可以用来验证设计结果的合理性,用其指导优化过程1NF2NF3NF1.9.3 1.9.3 范式与规范化范式与规范化68第一范式(1NF)如果一个关系模式R的所有属性都是不可分的基本数据项,则该关系属于第一范式。第一范式要求属性是原子的1.9.3 1.9.3 范式与规范化范式与规范化69考察下面的学生选修课程的表格SC1:学号课程 3721 程序设计,人工智能,数据结构 3843
34、编译原理,操作系统 由于在上述模式中,课程属性的值是可分解的,故由于在上述模式中,课程属性的值是可分解的,故SC1不属于不属于第一范式第一范式(1NF)t1t21.9.3 1.9.3 范式与规范化范式与规范化70 存在的问题 这种非1NF关系模式的缺点是更新操作的困难,如过3721同学想把选修的课程改为(编译原理,操作系统),则系统在处理上将面临一种二义性:是修改元组t1中的课程属性呢,还是把t2元组中的学号属性值扩充为3721,3843?另一方面,如果我们想在关系SC1中加入属性成绩,那么随之而来的约束条件(学号,课程)成绩在这种非1NF中也难以表示。1.9.3 1.9.3 范式与规范化范式
35、与规范化71 解决的办法:将课程属性的属性值拆开,形成如下的关系SC2:学号课程 3721 程序设计3721人工智能3721数据结构 3843 编译原理3843操作系统 显然,显然,SC2属于属于1NF。1.9.3 1.9.3 范式与规范化范式与规范化72 第二范式(2NF)若关系模式若关系模式R1NF,且每一个非主属性都完全,且每一个非主属性都完全函数依赖于函数依赖于R的键码,则的键码,则R2NF。即非主属性不能部分依赖于键码即非主属性不能部分依赖于键码sc(sno,sname,cno,score)sno,cno scoresnosnamesnocnoscoresname完全依赖完全依赖非完
36、全依赖非完全依赖1.9.3 1.9.3 范式与规范化范式与规范化73考察下面的学生选修课关系模式:考察下面的学生选修课关系模式:SDC(学号,姓名,系,系负责人,课程,成绩)在该模式中存在以下函数依赖:(学号,课程)成绩学号姓名,(学号,课程)姓名学号系,(学号,课程)系学号系负责人(学号,课程)系负责人系系负责人通过分析可知SDC的码为(学号,课程),因此,姓名、系、系负责人和成绩均是非主属性,而这些非主属性中只有成绩属性是完全函数依赖于码,其它属性只依赖于学号属性,故全是部分函数依赖,由于定义可知SDC不符合2NF定义,因此SDC不属于2NF。1.9.3 1.9.3 范式与规范化范式与规范
37、化74 存在的问题插入异常:假如我们要插入一个还未选课的学生,由于该学生无课号属性,其相应的码值一部分为空,故该学生的固有信息无法插入。删除异常:假定某个学生只选一门课,如S4选了一门课C3,现在C3这门课他也不选了,那么C3这个数据项就要删除,C3是主属性,删除了C3,则整个元组就不能存在了,它也必须随之删除。也就是删除了S4的其他信息,从而造成删除异常,即不应删除的信息也删除了。修改复杂:某个学生从数学系转到计算机系,这本来只是一件事,只需修改此学生元组中的系分量,但因为关系模式SDC中还有系负责人属性,学生转系同时改变系负责人,因而还必须修改元组中的系负责人分量。另外,如果这个学生选修了
38、K门课,系和系负责人重复存储了K次,不仅存储冗余度大,而且必须无遗漏地修改K个元组中全部系和系负责人信息,从而造成修改的复杂化。1.9.3 1.9.3 范式与规范化范式与规范化75 解决的办法:用投影分解。分析上面的例子,问题在于非主属性有两种,一种象成绩,它对码是完全函数依赖;另一种如姓名、系和系负责人,它们对码部分依赖。对于第二种情况加以分解,消除非主属性对码的部分函数依赖。下面我们将SDC分解为两个关系模式:SC(学号,课号,成绩)SD(学号,姓名,系,系负责人)SC的码为(学号,课号),SD的码为学号,故SC属于2NF,SD属于2NF,它们的非主属性对码都是完全函数依赖。1.9.3 1
39、.9.3 范式与规范化范式与规范化76 第三范式(3NF)若关系模式若关系模式R2NF,且它的每个非主属性都不传递依赖于键码,且它的每个非主属性都不传递依赖于键码,则则R3NF。主属性可以传递依赖于键码主属性可以传递依赖于键码student(sno,sname,sdept,dept_manager)snosname,sdept sdeptdept_manager传递依赖:传递依赖:snodept_managersnosdeptsnamedept_manager1.9.3 1.9.3 范式与规范化范式与规范化77考察上面的考察上面的SD和和SC两个表:两个表:SD(学号,姓名,系,系负责人)SC
40、(学号,课号,成绩)在SC中虽然没有传递依赖,但SD中存在非主属性系负责人对码学号的传递依赖。在SD中,由学号系,系学号,系负责人,可得学号传递依赖系负责人,因此SD不属于3NF,而SC属于3NF。1.9.3 1.9.3 范式与规范化范式与规范化78 存在的问题一个关系模式R若不是3NF,就会产生以下问题:插入异常:当新成立一个系,该系还没有招收任何学生时,此系的有关信息就无法插入SD表中。删除异常:若某个系的全部学生都已经毕业,则在删除相应学生信息时,系和系负责人的信息也就删除了。修改复杂:若一个系有400名学生,则系和系负责人的信息就要重复存储400遍,造成数据冗余度,因而引起修改困难。比
41、如该系更换了系负责人,则必须无遗漏地修改400个元组中的系负责人信息,从而造成修改的复杂化。1.9.3 1.9.3 范式与规范化范式与规范化79解决的办法 将SD分解为:SND(学号,姓名,系)DM(系,系负责人)分解后的关系模式SND和DM中不再存在传递依赖,属于3NF。1.9.3 1.9.3 范式与规范化范式与规范化80 分解的原则分解分解 A1,A2,An=B1,B2,BnC1,C2,Cn分解的要求分解的要求 无损连接:如果对分解后的新关系进行自然连接得到的无损连接:如果对分解后的新关系进行自然连接得到的元组的集合与原关系完全一致,则称为无损连接元组的集合与原关系完全一致,则称为无损连接
42、(lossless join)保持依赖:分解后总的函数依赖集与原函数依赖集保持保持依赖:分解后总的函数依赖集与原函数依赖集保持一致,则称为保持依赖(一致,则称为保持依赖(preserve dependency)C CF FB BF FA AF F1.9.4 1.9.4 分解关系的基本原则分解关系的基本原则81 无损连接反映了模式分解的数据等价原则 保持依赖反映了模式分解的依赖等价原则 数据等价和依赖等价是模式分解的两个最基本的原则 此外还要考虑效率 无损连接的充分必要条件:R1R2(R1-R2)或或R1R2(R2-R1)1.9.4 1.9.4 分解关系的基本原则分解关系的基本原则82例1:R=
43、A,B,C,F=A B,B C分解成R1=A,C,R2=B,CR1 R2=C R1-R2=A C A 不成立,R2-R1=B C B 也不成立,此分解不具有无损连接性R1的函数依赖集为A C,R2的函数依赖集为B C,分解后总的函数依赖集为A C,B C不能推导出 A B,此分解不具有依赖保持性1.9.4 1.9.4 分解关系的基本原则分解关系的基本原则83例例2:R=A,B,C,F=A B,B C分解成R1=A,B,R2=A,CR1 R2=A R1-R2=B A B,即R1 R2 R1-R2 成立,此分解具有无损连接性R1的函数依赖集为A B,R2的函数依赖集为A C,分解后总的函数依赖集为
44、A B,A C不能推导出 B C,此分解不具有依赖保持性1.9.4 1.9.4 分解关系的基本原则分解关系的基本原则84例例3:R=A,B,C,F=A B,B C分解成分解成:R1=A,B,R2=B,CR1 R2=B R1-R2=A,B A 不成立,不成立,R2-R1=C,B C 成立,此分解具有无损连接性成立,此分解具有无损连接性R1的函数依赖集为的函数依赖集为A B,R2的函数依赖集为的函数依赖集为B C,分解后总的函数依赖集为,分解后总的函数依赖集为A B,B C能推导出能推导出 A C,此分解具有依赖保持性此分解具有依赖保持性1.9.4 1.9.4 分解关系的基本原则分解关系的基本原则
45、85第第2章章 Access 2000综述综述862.1 Access 2000的特点1.可视化的操作工具和向导2.共享数据资源与Word、Excel进行数据交换3.通过“宏”实现工作自动化4.数量众多的函数5.编程语言VBA6.与SQL Server数据库的连接7.通过“数据访问页”与Web进行集成871.表表2.查询查询3.窗体窗体4.报表报表5.数据访问页数据访问页6.宏宏7.模块模块2.2 Access 2000数据库的组成数据库的组成882.3.1 Access 20002.3.1 Access 2000的的启动退出启动退出1.启动启动AccessAccess开始开始程序程序Micr
46、osoft AccessMicrosoft Access开始开始程序程序运行运行输入输入AccessAccess运行文件运行文件Msaccess.exeMsaccess.exe 确定确定单击桌面上的单击桌面上的AccessAccess快捷图标快捷图标直接双击直接双击AccessAccess数据库文件数据库文件2.3 Access 2000的用户界面的用户界面892.3.1 Access 20002.3.1 Access 2000的的启动退出启动退出2.退出退出AccessAccess 选择选择“文件文件”菜单的退出命令。菜单的退出命令。单击窗口右上角的关闭按钮单击窗口右上角的关闭按钮。双双击窗
47、口左上角的控制菜单击窗口左上角的控制菜单 按按Alt+F4Alt+F4快捷键快捷键2.3.2 Access 20002.3.2 Access 2000的用户界面的用户界面2.3 Access 2000的用户界面的用户界面902.3.3 Access 2.3.3 Access 窗口窗口Access Access 窗口由窗口由标题栏、标题栏、菜单菜单栏、工具栏、和状态栏、工具栏、和状态栏组成栏组成标题栏:标题栏:显示数据库的名称显示数据库的名称菜单栏:菜单栏:文件、编辑、视图、插入、文件、编辑、视图、插入、工具、窗口和工具、窗口和帮助帮助工具栏:工具栏:状态栏:状态栏:用于显示与当前操作有关的信息
48、用于显示与当前操作有关的信息2.3 Access 2000的用户界面的用户界面912.3.4 “2.3.4 “数据库数据库”窗口窗口1.“标题标题”栏:栏:用于显示当前打开的数据库文件用于显示当前打开的数据库文件名名2.“工具工具”栏:栏:用于管理数据库对象,包括打开、用于管理数据库对象,包括打开、设计和新建数据库对象设计和新建数据库对象3.“对象对象”栏:栏:在窗口左边,列出了在窗口左边,列出了AccessAccess数据数据库的库的7 7个对象个对象2.3 Access 2000的用户界面的用户界面922.3.4 “2.3.4 “数据库数据库”窗口窗口4.“对象列表框对象列表框”:用于显示
49、当前打开的数据库用于显示当前打开的数据库中已创建对象的所有列表和新建对象的快捷方式。中已创建对象的所有列表和新建对象的快捷方式。5.“组组”栏:可以将不同类型的数据库对象组栏:可以将不同类型的数据库对象组织到一个组中。由属于数据库对象的织到一个组中。由属于数据库对象的快捷方式快捷方式组组成。成。2.3 Access 2000的用户界面的用户界面932.4 自定义工具栏和设置工作环境自定义工具栏和设置工作环境2.4.1 2.4.1 自定义工具栏自定义工具栏1.视图视图工具栏工具栏自定义自定义2.工具栏选项卡工具栏选项卡新建输入工具栏的名称新建输入工具栏的名称确定确定3.向向工具栏添加图标工具栏添
50、加图标命令选项卡命令选项卡选择命令选择命令将命令拖到工具栏中将命令拖到工具栏中4.为为工具按钮添加提示文字工具按钮添加提示文字右击自定义工具栏的工具按钮右击自定义工具栏的工具按钮选择属性选择属性在样式在样式中选择中选择“图象和文本图象和文本”注意:自定义工具栏之前必须先打开数据库。注意:自定义工具栏之前必须先打开数据库。942.4.2 2.4.2 设置工作环境设置工作环境通过工具菜单的选项进行通过工具菜单的选项进行1.1.视图视图设置显示界面的元素设置显示界面的元素在显示区要显示选项的复选框在显示区要显示选项的复选框2.2.常规常规设置打印边距、默认数据库文件夹、最近使用的设置打印边距、默认数