1、第1章 数据库基础知识主要内容数据库系统概述数据模型关系模型数据库设计1.1 数据库系统概述数据库技术的发展数据库新技术数据库相关基本概念1.1.1 数据库技术的发展数据库技术产生于20世纪60年代后期,其发展经历了3个阶段:第一代的层次、网状数据库系统段以层次和网状模型为基础的层次和网状数据库系统第二代的关系数据库系统支持关系模型的关系数据库系统第三代数据库系统 数据模型具有面向对象模型的基本特征1.1.2 数据库新技术分布式数据库Web数据库数据仓库1.1.3 数据库相关基本概念数据库数据库是指长期存储在计算机内、有组织的、可共享的大量数据的集合数据库管理系统数据库管理系统(Databas
2、e Management System,DBMS)是一个系统软件,是提供建立、管理、维护和控制数据库功能的一组计算机软件1.1.3 数据库相关基本概念数据库管理系统的功能:数据定义功能表、索引、视图等数据组织、存储和管理数据操纵功能增、改、删、查询数据库的建立和维护功能数据库初始数据的输入、转储、恢复等数据库的运行管理保证数据的安全性、完整性,进行并发控制等1.1.3 数据库相关基本概念数据库系统:利用数据库技术进行数据管理的计算机系统;数据库系统的组成:数据库硬件软件数据库管理系统人员1.1.3 数据库相关基本概念数据库系统的特点:数据结构化数据共享性高,冗余度低,易扩充数据独立性高数据由数
3、据库管理系统统一管理和控制1.2 数据模型两类模型:概念模型数据模型概念模型按用户的观点来对数据和信息建模,主要用于数据库设计。概念模型是不依赖于具体计算机系统也不为某一种数据库管理系统支持的模型主要概念:实体:客观存在并可相互区别的事物称为实体。属性:实体所具有的某一特性称为属性。例如,学生的学号、姓名。关键字:唯一标识实体的属性集称为码。例如,学号是学生实体的码。概念模型联系:实体(型)内部的联系和实体(型)之间的联系实体之间的联系:一对一(1:1)一对多(1:n)多对多(m:n)一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,
4、则称实体集A与B具有一对一联系,记为1:1。班级1班级2班级n班长1班长2班长n一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与B有一对多联系,记为1:n。班级1班级2班级n学生1学生2学生3学生4学生m多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体(n0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m0)与之联系,则称实体集A与B具有多对多联系,记为m:n。课程1课程2课程3课程4课程n学生1学生2学生3学生4学生m学
5、生学号姓名籍贯出生年月课程课程号课程名称学分选课成绩mn数据模型 按计算机系统的观点对数据建模,主要用于数据库管理系统的实现。三要素:数据结构 数据操作 完整性约束条件 在数据库的发展史上,主要的数据模型有:层次模型层次数据库 网状模型网状数据库 关系模型关系数据库1.3 关系模型1970年,E.F.Codd关系模型的组成:关系数据结构实体以及实体联系都用关系来表示关系操作传统的集合运算、专门的关系运算关系完整性约束实体完整性、参照完整性、自定义完整性关系模型的基本术语关系:关系模型中一个关系就是一个二维表,每个关系有一个关系名。元组:表中的一行即为一个元组。属性:表中的一列即为一个属性,给每
6、个属性起一个名字即为属性名。关键字:能唯一地标识一个元组的属性或属性的集合。外关键字:若一个关系R中的属性(或属性组)F不是其关键字,却与另一个关系S的主关键字Ks相对应,则F称为是R关系的外关键字。域:属性的取值范围,如性别域是(男,女),百分制成绩域是0-100。基本关系的性质:每一列中的分量是同一类型的数据,来自同一个域。列的顺序无所谓,即列的次序可以任意交换。行的顺序无所谓,即行的次序可以任意交换。任意两个元组不能完全相同。分量必须取原子值,即每一个分量都必须是不可分的数据项。关系操作传统的集合运算并RS交RS差RSab1mm2nnab1mm3kkRSab1mm2nn3kkab2nna
7、b1mm关系操作传统的集合运算笛卡尔乘积RSR.aR.bS.aS.b1mm1mm1mm3kk2nn1mm2nn3kk关系运算专门的关系运算选择从关系中找出满足给定条件的元组的操作查看学号为001的学生的信息学号姓名出生日期001李月1994-1-5002王明1993-12-3003孙杰1994-1-6学号姓名出生日期001李月1994-1-5关系运算专门的关系运算投影从关系中选择出若干属性查看所有学生的姓名学号姓名出生日期001李月1994-1-5002王明1993-12-3003孙杰1994-1-6姓名李月王明孙杰连接按照一定的条件将两个或多个关系中的记录进行拼接例:学生信息表.学号=成绩信
8、息表.学号学号姓名出生日期001李月1994-1-5002王明1993-12-3003孙杰1994-1-6学号课程编号成绩001C00189002C00285学号姓名出生日期学号课程编号成绩001李月1994-1-5001C00189002王明1993-12-3002C00285连接等值连接自然连接:在连接结果中去掉重复属性学号姓名出生日期课程编号成绩001李月1994-1-5C00189002王明1993-12-3C002851.3.3 关系完整性约束条件实体完整性若属性A是基本关系R的主属性,则属性A不能取空值当主属性为由多个属性构成时,要求组成主属性的所有属性都不能为空值。1.3.3 关
9、系完整性约束条件参照完整性若属性(或属性组)F是基本关系R的外关键字,它与基本关系S的主关键字Ks相对应(基本关系R和S不一定是不同的关系),则对于R中每个元组在F上的值必须为:或者取空值(F的每个属性值均为空值);或者等于S中某个元组的主关键字值。1.3.3 关系完整性约束条件用户定义的完整性一些特殊的约束条件,用户定义的完整性就是针对某一具体关系数据库的约束条件。例如,学生的成绩的取值必须在0-100之间1.4 数据库设计数据库设计包括以下6个阶段:需求分析概念结构设计逻辑结构设计物理结构设计数据库实施数据库运行和维护概念结构设计概念结构设计是指将需求分析阶段得到的用户需求抽象为信息结构即
10、概念模型的过程。它是整个数据库设计的关键。学生学号姓名籍贯出生年月课程课程号课程名称选课成绩mn概念模型向关系模型的转换实体型直接转换为表实体之间的联系:1:1联系:可通过在任何一方加入另一方的关键字来实现1:m联系:可通过在m的一方加入另一方的关键字来实现m:n联系:单独使用一个表来表示,该表中的属性包括:联系本身具有的属性、联系各方的关键字属性。(将一个多对多联系拆分为两个一对多联系)1:1联系正班长学号姓名籍贯出生年月属于11班级编号班级名称专业正班长信息表:班级信息表:学号姓名出生年月籍贯班级编号班级名称专业正班长1:m联系学生学号姓名籍贯出生年月属于m1学生信息表:班级信息表:学号姓
11、名出生年月籍贯所在班级班级编号班级名称专业班级编号班级名称专业m:n联系学生学号姓名籍贯出生年月课程课程号课程名称选课成绩mn学号姓名出生年月籍贯课程编号课程名称学生信息表:课程信息表:学生选课表:学号课程编号成绩关系模型的规范化为了确保表结构设计合理,通常要对表进行规范化设计。通过规范化设计,可以消除表中存在的冗余,保证一个表围绕一个主题。第一范式第二范式第三范式第一范式若关系中的每一个属性(字段)都是不可分的数据项,则该关系满足第一规范化形式,简称为第一范式或1NF。第一范式学号姓名性别出生日期班级班级人数课程成绩课程编号课程名称成绩20120101李月女1994-1-520120140C
12、001大学计算机基础8220120101李月女1994-1-520120140C002数据结构8520120102王明男1993-12-320120140C001大学计算机基础7820120301孙杰男1994-1-620120350C001大学计算机基础9220120301孙杰男1994-1-620120350C015古代汉语8620120301李强男1994-6-320120350C001大学计算机基础70第一范式学号姓名性别出生日期班级班级人数课程编号课程名称成绩20120101李月女1994-1-520120140C001大学计算机基础8220120101李月女1994-1-52012
13、0140C002数据结构8520120102王明男1993-12-320120140C001大学计算机基础7820120301孙杰男1994-1-620120350C001大学计算机基础9220120301孙杰男1994-1-620120350C015古代汉语8620120301李强男1994-6-320120350C001大学计算机基础70第二范式如果在一个满足1NF的关系中,所有非关键字属性都完全依赖于关键字,则称这个关系满足第二规范化形式,简称二范式或2NF。第二范式学号姓名性别出生日期班级班级人数课程编号课程名称成绩20120101李月女1994-1-520120140C001大学计算
14、机基础8220120101李月女1994-1-520120140C002数据结构8520120102王明男1993-12-320120140C001大学计算机基础7820120301孙杰男1994-1-620120350C001大学计算机基础9220120301孙杰男1994-1-620120350C015古代汉语8620120301李强男1994-6-320120350C001大学计算机基础70第二范式学号姓名性别出生日期班级班级人数20120101李月女1994-1-52012014020120102王明男1993-12-32012014020120301孙杰男1994-1-6201203
15、5020120301李强男1994-6-320120350课程编号课程名称C001大学计算机基础C002数据结构C015古代汉语第二范式学号课程编号成绩20120101C0018220120101C0028520120102C0017820120301C0019220120301C0158620120301C00170第三范式对于那些满足2NF的关系,且其非关键字属性之间不存函数依赖(即:不存在一个非主关键字,可以确定另外一些非主关键字),则称这个关系满足第三规范化形式,简称三范式或3NF。第三范式学号姓名性别出生日期班级班级人数20120101李月女1994-1-52012014020120102王明男1993-12-32012014020120301孙杰男1994-1-62012035020120301李强男1994-6-320120350第三范式学号姓名性别出生日期班级20120101李月女1994-1-520120120120102王明男1993-12-320120120120301孙杰男1994-1-620120320120301李强男1994-6-3201203班级班级人数2012014020120350小结数据库技术的发展历史、基本概念概念模型、数据模型、数据模型三要素数据库设计的基本步骤概念结构的设计和概念模型向关系模型的转换,以及关系模型的规范化