1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介 第1讲 数据库基础知识 1.1 数据库基本概念 1.2 数据模型 1.3 关系数据库 1.4 Access2010简介
1.1 数据库基本概念 数据 数据库 数据库管理系统 数据库管理员 数据库系统
1.1.1 数据 数据(Data)是对客观事物的符号表示,是用于表示客观事物的未经加工的原始素材,如图形、符号、数字、字母等。 一切能被计算机识别、存储和处理的符号信息统称为计算机数据,如文字、图形、图像、声音、视频等。
1.1.2 数据库 数据库(DataBase,DB)是按照数据结构来组织、存储和管理数据的仓库。其数据结构独立于使用它的应用程序,对数据的增、删、改和检索由统一软件进行管理和控制,使得它们可以被不同的应用程序共享,具有尽可能小的冗余度。
在日常工作中,常常需要把某些相关的数据放在一起,并根据管理的需要进行相应的处理。例如,学校教务管理部门常常要对教师、学生、课程、成绩等信息进行处理,就需要将教师(教师编号、姓名、性别、工作时间、职称等)、学生(学号、姓名、专业等)、课程(课程编号、课程名称、学分等)、成绩(学号、课程编号、成绩等)等相关的数据存放在一起,这些数据的集合就是一个数据库。 在这个数据库里,我们可以根据需要实现各种数据管理操作,如查询某门课程不及格的学生的姓名、添加某个学生某门课程的成绩、修改某个教师的职称、删除某个学生等。
1.1.3 数据库管理系统 数据库管理系统(DataBase Management System,DBMS)是专门用于管理数据库的计算机系统软件,也是数据库系统的核心软件。它在操作系统的支持下工作,为数据库提供数据的定义、建立、维护、查询、统计等操作功能。它可让多个应用程序和用户用不同的方法在同时或不同时刻去建立、修改和查询数据库。
1.1.4 数据库管理员 数据库管理员(DataBase Administrator,DBA)是专门负责数据库的规划、设计、维护的工作人员。 1.1.5 数据库系统 数据库系统是指带有数据库并利用数据库技术进行数据管理的计算机系统,是存储介质、处理对象和管理系统的集合体。 一个数据库系统应由计算机硬件、数据库、数据库管 理系统、应用程序和数据库管理员5个部分构成
1.2 数据模型 数据模型概念 实体的概念 实体及其联系 三种主要的数据模型
1.2.1 数据模型概念 数据模型是用来抽象的表示和处理现实世界中的数据和信息的工具。把现实世界中的事物抽象成数据存储于计算机数据库中,是一个逐步转化的过程,它经历了二个阶段:对现实世界中事物特性的认识、概念化; 进而转化为计算机数据库支持的数据。 实现了从现实世界到概念世界再到数据世界的转化。 数据模型描述了现实世界数据之间的联系
1.2.2 实体的概念 实体:现实世界中的事物可以抽象为实体,实体是概念世界中的基本单位,它们是客观存在又能相互区别的事物,如一位教师、一位学生、一门课程。 实体属性:将事物的特性称为实体属性,属性刻画出了实体的特征,一个实体一般都具有多个属性,如学生有学号、姓名、性别、专业等多个属性。 实体属性值:实体属性的具体化表示。属性值的集合就表示一个具体的实体,如一个学生实体(学号:2010130101 姓名:张三 性别:男 专业:计算机)。
1.2.2 实体的概念 实体类型:实体属性的集合,用实体名及实体所有属性来表示,一个实体类型表示一类实体。如教师实体类型(教师编号、姓名、性别、工作时间、职称)。 实体集:具有相同属性的实体的集合,如:教师李四、教师王五等就构成了一个教师实体集。
1.2.3 实体及其联系 不同的实体集之间存在着联系,如:教师、学生、课程3个实体之间的联系有:学生可以选择多门课程,各门课程又由不同的教师授课。 一对一(1:1):一个实体与另一个实体之间是一一对应的关系,即一个实体集里的一条记录只与另一个实体集里的一条记录相关联。如:班长与班级是一一对应联系、学校与校长也是一一对应联系。
1.2.3 实体及其联系 一对多(1:n):实体集里的一个实体可以对应另一个实体集里的多个实体,即一个实体集里的一条记录与另一个实体集里的多条记录相关联。如:院系与专业之间是一对多的联系、寝室与学生之间也是一对多的联系。 多对多(m:n):实体集里的多个实体可以对应另一实体集里的多个实体,即一个实体集里的多条记录与另一个实体集里的多条记录相关联。如:教师与学生之间是多对多的联系、学生与课程之间也是多对多的联系。
1.2.4 三种主要的数据模型 数据库不仅要管理数据本身,还要使用数据模型表示出数据之间的联系,任何一个数据库管理系统都需要用数据模型进行描述。 用于描述数据库管理系统的数据模型有:层次模型、网状模型、关系模型3种。
层次模型 用树型(层次)结构表示实体类型及实体间联系的数据模型称为层次模型,层次模型是数据库系统中最早出现的数据模型。 层次模型的表示方法:树中的结点表示实体集,结点之间的连线表示相连两实体集之间的联系,层次模型只能表示一对多(1∶n)联系,通常把表示1的实体集放在上方,称为父结点,表示n的实体集放在下方,称为子结点,如图1.4所示。
层次模型 层次模型的结构特点如下。 有且仅有一个根结点。 根结点以外的其他结点有且仅有一个父结点
网状模型 用网络结构表示实体类型及其实体之间联系的数据模型称为网状模型,网状模型的出现略晚于层次模型。在网状模型中,一个实体和另外的几个实体都有联系,这样构成一张网状图。如图1.5所示。 网状模型是一种可以灵活地描述事物及其之间复杂的联系的 网状模型的结构特点如下。 有一个以上的结点无父结点。 一个结点可以有多于一个的父 结点。
关系模型 用二维表的形式表示实体和实体间联系的数据模型称为关系模型。一个关系模型的数据结构就是一张二维表,表中的一行描述一个实体,表中的一列描述实体的一个属性,通过表中具有相同意义的属性来建立实体型之间的联系,如表1.1所示。 关系模型是建立在关系代数的基础之上的,在关系模型中操作的对象和结果都是二维表。目前绝大多数数据库系统的数据模型都采用关系模型。
关系模型 表1.1 学生信息表 学号 姓名 性别 出生日期 专业 团员否 2010130101 陈辉 男 1992/7/8 市场营销 表1.1 学生信息表 学号 姓名 性别 出生日期 专业 团员否 2010130101 陈辉 男 1992/7/8 市场营销 TRUE 2010130102 何帆 1992/10/18 FALSE 2010130103 柯希刚 1992/3/15 2010130104 鲁洁 女 1991/9/3 2010130105 肖刚 1992/4/7
1.3 关系数据库 关系术语 关系运算 关系完整性约束
1.3.1 关系术语 关系就是一张二维表,每个关系有一个关系名,即表名。 一张二维表(一个关系)中的一行称为元组,一个元组对应一个实体,也称为一条记录。 一张二维表(一个关系)中的一列称为属性,即实体的属性。每一列有一个名字即属性名,也称字段名。 一个属性的取值范围称为域。
1.3.1 关系术语 对关系的描述称为关系模式,一个关系模式对应一个关系的结构,其格式为关系名(属性名1,属性名2,…,属性名n),如:课程信息(课程编号,课程名称,课程类别,先修课程,学分)。 在一个关系中,能够唯一标识一个元组的属性或属性的组合,称为候选关键字,简称关键字。一个关系中的候选关键字可能有多个,用户选用其中的一个作为主关键字,简称主键。如:学生关系(学号、姓名、性别、身份证号)中,学号、身份证号均为关键字,用户可选择其中的一个作为主键;成绩关系(学号、课程号、成绩)中,由学号、课程号组合在一起作为关键字。
1.3.1 关系术语 一个关系中的某个属性不是本关系的关键字,但却是另一个关系的关键字,则称该属性为外部关键字,简称外键。如:成绩关系(学号、课程号、成绩)中,学号属性不是关键字,但却是学生关系(学号、姓名、性别、专业)的关键字,则称学号为成绩关系的外键。 对以外键相关联的两张表,通常称以外键为主键的表为主表,称外键所在的表为从表。如:上例中学生表为主表,成绩表为从表。
关系模型的特点 关系中不允许出现相同的元组,即不允许出现相同的行。 关系中不允许出现相同的属性,即属性名必须是唯一的。 关系中不考虑元组之间的顺序,即行的顺序可以任意交换。 元组中的属性也是无序的,即列的顺序也可以任意交换。 关系中的每一个属性值都是不可分解的数据项。
1.3.2 关系运算 对关系数据库进行查询操作时,要找到满足用户需要的数据,就必须对关系进行相应的关系运算。 关系运算有两类:一类是传统的集合运算,另一类是专门的关系运算。
传统的集合运算 传统的集合运算主要有:并、差、交、笛卡尔积4种。其中并、差、交要求运算对象必须是两个关系模式完全相同的关系,即两张具有相同结构的表,两张表的属性都完全相同。如:关系R(见表1.2)、关系S(见表1.3)。
并运算 对上述具有相同关系模式的两个关系R、S进行并运算的结果:先将R、S两个关系合并成一个关系,再去掉关系中相同的元组,记为R∪S。结果如表1.4所示
交运算 对上述具有相同关系模式的两个关系R、S进行交运算的结果:将既属于关系R又属于关系S的元组存放到一个关系中,记为R∩S。结果如表1.5所示。
差运算 对上述具有相同关系模式的两个关系R、S进行差运算的结果:将属于关系R但不属于关系S的元组存放到一个关系中,记为R-S。结果如表1.6所示。
笛卡尔积运算 对两个关系进行笛卡尔积运算时,不要求它们具有相同的关系模式。对于关系M(有a个属性m个元组)、N(有b个属性n个元组),进行笛卡尔积运算的结果:由(m×n)个元组构成,每个元组有(a+b)个属性,每个元组的前a个属性值来自关系M的一个元组,后b个属性值来自关系N的一个元组,记为M×N,如表1.7~表1.9所示。
笛卡尔积运算
专门的关系运算 专门的关系运算主要有:选择、投影、连接、除4种。其中选择、投影只有一个运算对象,连接、除则需两个运算对象,并且其运算对象是两个关系模式不完全相同的关系
选择运算 选择运算是按照某个逻辑条件(F)对关系(R)中的元组进行选择,选出满足条件的元组作为运算结果,记为σF(R)。如:在关系R中查询性别为"男"的学生,结果如表1.10所示。
投影运算 投影运算是从关系(R)中挑选若干属性(Ai,Aj,…,Ak)组成一个新的关系,如果新关系中包含重复元组,则要删除重复元组,记为πAi,Aj,…,Ak(R)。如:在关系R中查询学生的学号、姓名,结果如表1.11所示。
连接运算 连接运算是从两个关系的笛卡尔积中选取属性值满足连接条件的元组,记为σiθj(G×K)。其中i为关系G的一个属性,j为关系K的一个属性,θ为比较符,可以是:>、<、≥、≤、=、≠。iθj为连接条件,即:在G和K的笛卡尔积中,选择G的i属性值与K的j属性值满足θ条件的元组。 对关系G(见表1.12)、K(见表1.13)进行连接条件为G.B>K.C的连接运算的结果为表1.15,即在G、K的笛卡尔积(见表1.14)中选择满足条件G.B>K.C的元组。
(3)连接
等值连接运算 当θ为"="时的连接操作就称为等值连接,等值连接运算是从G×K中选取G的i属性与K的j属性值相等的元组。对关系G、K进行连接条件为A=D的等值连接运算的结果如表1.16所示,即在G、K的笛卡尔积中选择满足条件A=D的元组。
(3)连接
自然连接运算 自然连接是一种特殊的等值连接,要求从G×K中选取G与K都具有的属性做等值连接,最后通过投影运算去掉重复的属性。对关系G、K进行自然连接运算的结果如表1.17所示,即在G、K的笛卡尔积中选择关系G的B、C属性与关系K的B、C均对应相等的元组,即G.B=K.B并且G.C=K.C,再去掉重复的属性,两个关系的B、C字段重复,需去掉一组。
(3)连接
除运算 除运算是笛卡尔积的逆运算。设被除关系T为m元关系,除关系E为n元关系,那么它们的商为m-n元关系,记为T÷E。商的构成原则是:将被除关系T中的m-n列,按其值分成若干组,检查每一组的m-n列值的集合是否包含除关系E,若包含则取m-n列的值作为商的一个元组,否则不取。对关系T(如表1.18)、E(如表1.19)进行除运算的结果为表1.22,对关系T、W(如表1.20)进行除运算的结果为表1.23,对关系T、V(如表1.21)进行除运算的结果为表1.24。
除运算 对关系T、E(如表1.19)进行除运算的结果为表1.22。
除运算 对关系T、W(如表1.20)进行除运算的结果为表1.23。
除运算 对关系T、V(如表1.21)进行除运算的结果为表1.24。
1.3.3 关系完整性约束 完整性是为了保证数据库中数据的正确性和相容性,对关系模型提出的某种约束条件或规则。 完整性通常包括域完整性、实体完整性、参照完整性和用户定义完整性,其中域完整性、实体完整性和参照完整性,是关系模型必须满足的完整性约束条件。
实体完整性 实体完整性是指关系的主关键字不能重复,也不能为空值。在关系模型中,以主关键字作为实体的唯一性标识,如果主关键字中的属性为空值,则表明关系中存在着不可标识的实体;如果主关键字中的属性有重复,则主关键字就无法唯一标识实体了。
参照完整性 参照完整性是定义建立关系之间联系的主关键字与外部关键字引用的约束条件。如果属性集K是关系R1的主键,K也是关系R2的外键,那么在关系R2中,K的取值只允许有两种可能:或为空值,或等于R1关系中某个主键值,即在关系中不能引用不存在的实体。 外键值是否允许为空,应视具体问题而定,如果K既是的R2的外键又是其主键,根据实体完整性要求,K不得取空值,因此,只能取R1中已经存在的主键值。如:学号是学生关系(学号、姓名、性别、专业)的主关键字,是成绩关系(学号、课程号、成绩)的外部关键字,所以成绩关系中的学号必须是学生关系中已经存在的学号。
参照完整性 编 码 名称 类别 101 102 201 202 301 数学 电子学 法学 新闻学 英语 理科 文科 编码 名称 01 02 关系模型:民族 关系模型:专业 编 码 名称 类别 101 102 201 202 301 数学 电子学 法学 新闻学 英语 理科 文科 编码 名称 01 02 10 11 汉族 满族 朝族 蒙古族 关系模型:学生 学号 姓名 性别 民族编码 出生日期 专业编码 0310101 0310102 0311101 0301201 李大明 张晓光 韩雪 王宇鹏 男 女 02 01 10 1985/05/04 1986/06/01 1985/01/12 1985/10/01 101 301 202
用户定义完整性 用户定义完整性则是根据应用环境的要求和实际的需要,对某一具体应用所涉及的数据提出约束性条件。这一约束机制一般不应由应用程序提供,而应由关系模型提供定义并检验。用户定义完整性主要包括字段有效性约束和记录有效性约束 ,如某个属性的取值范围在0~100之间等。
1.4 Access2010简介 Access发展简介 Access 2010基本对象 Access 2010界面组成
1.4.1 Access发展简介 Access是美国Microsoft公司推出的一款运行于Windows平台上的关系型数据库管理系统(Relational Date Base Management System,RDBMS),它是Microsoft Office办公套件中的一个重要组件,方便与其他的Office 组件实现数据共享和协同工作,常用于小型数据库的开发和维护。 1992年Microsoft公司首次发布了用于Windows操作系统的第一个桌面关系型数据库管理系统Access1.0。 1995年末,Access 95发布,并成为Microsoft Office 95办公套件的组件之一,之后随着Microsoft Office 办公套件版本的升级,相继发布了Access 97、Access 2000、Access 2002、Access 2003、Access 2007、Access 2010。 本教材选用Access 2010作为数据库系统开发平台,介绍数据库系统的开发与设计。
1.4.2 Access 2010基本对象 Access 2010有6种对象:表、查询、窗体、报表、宏和模块。数据库是存放这些对象的容器,将这些对象有机地聚合在一起,就构成了一个完整的数据库应用程序。数据库应用系统就是利用这六大数据库对象来进行工作的。 所有Access 2010数据库对象都保存在一个扩展名为.accdb的数据库文件中。
1.4.3 Access 2010界面组成 Access 2010相对于旧版本的Access 2003,界面发生了很大的变化,但与Access 2007却非常相似。Access 2010采用了一种全新的用户界面,可以帮助用户提高工作效率。 运行Microsoft Access 2010后,看到的第一个界面称为“Backstage视图”,这是Access 2010 中的新增功能。Backstage视图包含应用于整个数据库的命令,例如新建、打开或保存数据库,如图1.17所示。
Backstage视图
工作界面 Access 2010工作界面如图1.18所示,它由功能区、导航窗格、对象工作区、状态栏组成。
P25-29 习题1