1、第一章 数据库技术基础知识1.1 1.1 数据库技术概述数据库技术概述 1.2 1.2 数据模型数据模型 1.3 1.3 数据库设计数据库设计 1.4 1.4 概念模型概念模型2022-11-10第一章 数据库技术基础知识1.1 1.1 数据库技术概述数据库技术概述1.1.1 1.1.1 数据库基本概念数据库基本概念 v 数据数据(Data)(Data)数据是描述现实世界事物的符号记录,是用物理符号记录的可以鉴别的信息。v 数据库数据库(DataBase(DataBase,简记为,简记为DB)DB)数据库是长期存储在计算机内、有组织的、可共享的数据集合。这种集合具有如下特点:最小的冗余度 应用
2、程序对数据资源共享 数据独立性高 统一管理和控制v 数据库管理系统数据库管理系统(DataBase Management System,(DataBase Management System,简记为简记为DBMS)DBMS)2022-11-10第一章 数据库技术基础知识 数据库管理系统是位于用户与操作系统之间的一个数据管理软件,它的基本功能包括以下几个方面:数据定义功能 用户通过数据定义语言(DDL,Data Definition Language)它可以方便地对数据库中的数据对象进行定义。数据操纵功能 用户可以使用数据操纵语言(DML,Data Manipulation Language)操
3、纵数据,实现对数据的基本操作。如查询、插入、删除和修改。数据库的运行管理功能 数据库在建立、运行和维护时由数据库管理系统统一管理和控制,以保证数据的安全性、完整性,对并发操作的控制以及发生故障后的系统恢复等。数据库的建立和维护功能 它包括数据库初始数据的输入、转换功能,数据库的转储、恢复功能,数据库的重组织功能和性能监视、分析功能等。2022-11-10第一章 数据库技术基础知识v 数据库系统数据库系统(DataBase System(DataBase System,简记为,简记为DBS)DBS)数据库系统一般由数据库、操作系统、数据库管理系统(及其开发工具)、应用系统、数据库管理员(DBA)
4、和用户构成。2022-11-10第一章 数据库技术基础知识1.1.2 1.1.2 数据库技术的产生与发展数据库技术的产生与发展 数据管理技术经历了如下三个阶段:人工管理阶段、文件系统阶段和数据库系统阶段。v 人工管理阶段人工管理阶段 这一阶段是指20世纪50年代中期以前,计算机主要用于科学计算,当时的计算机硬件状况是:外存只有磁带、卡片、纸带,没有磁盘等直接存取的存储设备;软件状况是:没有操作系统,没有管理数据的软件,数据处理方式是批处理。人工管理阶段的特点是:数据不保存、数据无专门软件进行管理、数据不共享、数据不具有独立性、数据无结构。v 文件系统阶段文件系统阶段 这一阶段从20世纪50年代
5、后期到60年代中期,计算机硬件和软件都有了一定的发展。计算机不仅用于科学计算,还大量用于管理。这时硬件方面已经有了磁盘、磁鼓等直接存取的存储设备。在软件方面,操作系统中已经有了数据管理软件,一般称为文件系统。处理方式上不仅有了文件批处理,而且能够联机实时处理2022-11-10第一章 数据库技术基础知识 文件阶段的数据管理特点是:数据可以长期保存、由文件系统管理数据、程序与数据有一定的独立性、数据共享性差、数据独立性差、记录内部有结构。v 数据库系统阶段数据库系统阶段 从20世纪60年代后期以来,计算机硬件和软件技术得到了飞速发展,为了解决多用户、多应用共享数据,使数据为尽可能多的应用服务,文
6、件系统已不能满足应用需求,一种新的数据管理技术-数据库技术应运而生。数据库系统阶段具有以下的特点:数据结构化 在描述数据时不仅描述数据本身,还描述数据之间的联系。数据共享性高、冗余度小、易扩充 数据可以被多个应用共享。这不仅大大减小了数据的冗余度、节约存储空间、减少存取时间,而且可以避免数据之间的不相容性和不一致性。2022-11-10第一章 数据库技术基础知识 数据独立性高 数据独立性包括物理独立性和逻辑独立性。数据的物理独立性是指当数据的物理存储改变时,应用程序不用改变。数据的逻辑独立性是指当数据的逻辑结构改变时,用户应用程序不用改变。统一的数据管理和控制 数据库对系统中的用户是共享资源。
7、计算机的共享一般是并发的,即多个用户可以同时存取数据库中的数据,甚至可以同时存取数据库中同一个数据。因此,数据库管理系统必须提供以下几个方面的数据控制保护功能。数据的安全性(security)保护 数据的完整性(integrity)控制 数据库恢复(recovery)并发(concurrency)控制 2022-11-10第一章 数据库技术基础知识1.1.3 1.1.3 数据库系统的体系结构数据库系统的体系结构v 集中式系统集中式系统 DBMS和应用程序以及与用户终端进行通信的软件等都运行在一台宿主计算机上,所有的数据处理都是在宿主计算机中进行。宿主计算机一般是大型机、中型机或小型机。应用程序
8、和DBMS之间通过操作系统管理的共享内存或应用任务区来进行通信,DBMS利用操作系统提供的服务来访问数据库。终端通常是非智能的,本身没有处理能力。集中系统的主要优点是:具有集中的安全控制,以及处理大量数据和支持大量并发用户的能力。集中系统的主要缺点是:购买和维持这样的系统一次性投资太大,并且不适合分布处理。v 个人计算机系统个人计算机系统 与大型系统不同,通常个人计算机(微机)上的DBMS功能和数据库应用功能是结合在一个应用程序中的,这类DBMS(如FoxPro、Acssce)的功能灵活,系统结构简洁,运行速度快,但这类DBMS的数据共享性、安全性、完整性等控制功能比较薄弱。2022-11-1
9、0第一章 数据库技术基础知识v 客户客户/服务器系统服务器系统 在客户/服务器(Client/Server,简记为C/S)结构的数据库系统中,数据处理任务被划分为两部分:一部分运行在客户端,另一部分运行在服务器端。客户端负责应用处理,数据库服务器完成DBMS的核心功能。这种模型中,客户机上都必须安装应用程序和工具,使客户端过于庞大、负担太重,而且系统安装、维护、升级和发布困难,从而影响效率。v 分布式系统分布式系统 一个分布式数据系统由一个逻辑数据库组成,整个逻辑数据库的数据,存储在分布于网络中的多个结点上的物理数据库中。在当今的客户/服务器结构的数据库系统中,服务器的数目可以是一个或多个。当
10、系统中存在多个数据库服务器时就形成了分布系统。v 浏览器浏览器/服务器系统服务器系统 随着Internet的迅速普及,出现了三层客户机/服务器模型:客户机应用服务器数据库服务器。这种系统称为浏览器/服务器(Browser/Server,简记为B/S)系统。2022-11-10第一章 数据库技术基础知识1.1.4 1.1.4 数据库系统三级模式结构数据库系统三级模式结构 从DBMS方面考虑,数据库系统通常采用三级模式结构,这是DBMS内部的系统结构。v 模式(模式(schemaschema)模式也称为逻辑模式,是数据中全体数据的逻辑结构和特征描述,是所有用户的公共数据视图。一个数据库只有一个模式
11、。DBMS提供描述语言(模式DDL)来严格定义模式。v 外模式(外模式(external schemaexternal schema)外模式也称为子模式或用户模式,它是数据库用户能够看到和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。外模式通常是模式的子集。一个数据库可以有多个外模式。外模式是保证数据库安全性的一个有力措施。每个用户只能看见和访问所对应的外模式中的数据,数据库中其余数据是不可见的。DBMS提供子模式描述语言(子模式DDL)来严格定义子模式。2022-11-10第一章 数据库技术基础知识v 内模式(内模式(internal shc
12、emainternal shcema)内模式也称为存储模式(storage shcema),一个数据库只有一个内模式。它是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。DBMS提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格定义内模式。v 三级模式之间的映射三级模式之间的映射 三级模式间有两种映射:模式/外模式映射、模式/内模式映射 模式/外模式映射定义某个外模式和模式的对应关系,当模式发生改变时,只要改变其映射,而无需改动外模式,从而保证了数据的逻辑独立性。模式/内模式映射定义内模式和模式的对应关系,当内模式发生改变时,只要改变其映射,而无需改动模式,从而保证了数据
13、的物理独立性。2022-11-10第一章 数据库技术基础知识1.2 1.2 数据模型数据模型 1.2.1 1.2.1 数据模型及其组成要素数据模型及其组成要素 数据库系统的核心是数据库,数据库是根据数据模型建立的,因而数据模型是数据库系的基础。数据模型通常都是由数据结构、数据操作和完整性约束3个要素组成。v 数据结构数据结构 数据结构研究数据元素之间的组织形式、存储形式以及数据操作等。数据结构用于描述系统的静态特性。在数据库系统中,通常按照其数据结构的类型来命名数据模型。例如层次结构、网状结构、关系结构的数据模型分别命名为层次模型、网状模型和关系模型。2022-11-10第一章 数据库技术基础
14、知识v 数据操作数据操作 数据操作用于描述系统的动态特性。数据操作是指对数据库中的各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。数据库主要有查询和更新两大类操作。v 数据完整性约束数据完整性约束 数据完整性约束是一组完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容。数据模型是数据库技术的关键,它的3个要素完整地描述了一个数据模型。著名涂料品牌2022-11-10第一章 数据库技术基础知识1.2.2 1.2.2 数据模型的种类数据模型的种类 目前,数据库领域中,最常用的数据模
15、型有:层次模型、网状模型和关系模型。v 层次模型层次模型 层次模型是数据库中最早出现的数据模型,层次数据库系统采用层次模型作为数据的组织方式。用树型结构表示实体类型以及实体间的联系是层次模型的主要特征。层次模型的一个最基本的特点是,任何一个给定的记录值(也称为实体)只有按照其路径查看时,才能显出它的全部意义。没有一个子记录值能够脱离双亲记录值而独立存在。2022-11-10第一章 数据库技术基础知识R1R2R3R4R5R6图1-1 层次模型示意图2022-11-10第一章 数据库技术基础知识v 网状模型网状模型 在现实世界中事物之间的联系更多的是非层次关系的,用层次模型表示非树形结构是很不直接
16、的,网状模型则可以克服这一弊端。用网状结构表示实体类型及实体之间联系的数据模型称为网状模型。在网状模型中,一个子结点可以有多个父结点,在两个结点之间可以有一种或多种联系。R1R2R3R4R5 图1-2 网状模型示意图 2022-11-10第一章 数据库技术基础知识v 关系模型关系模型(relational model)tuliao.jiancai163(relational model)tuliao.jiancai163 关系模型是目前最常用的一种数据模型。关系数据库系统采用关系模型作为数据的组织方式。在关系模型中,数据在用户观点下的逻辑结构就是一张二维表。每一张二维表称为一个关系(relat
17、ion)。关系模型示意图 2022-11-10第一章 数据库技术基础知识1.3 1.3 数据库设计数据库设计 1.3.1 1.3.1 数据库设计概述数据库设计概述 数据库设计的主要内容有数据库的结构特性设计和数据库的行为特性设计。数据库的结构特性设计起着关键作用。数据库的结构特性是静态的,一般情况下不会轻易变动。数据库的行为结构设计是指确定数据库用户的行为和动作。数据库用户的行为和动作是指数据查询和统计、事物处理及表报处理等。1.3.2 1.3.2 数据库设计的基本步骤数据库设计的基本步骤 考虑数据库及其应用系统开发的全过程,可以将数据库设计过程可分为以下6个阶段。2022-11-10第一章
18、数据库技术基础知识v 需求分析阶段需求分析阶段 进行数据库应用软件的开发,首先必须准确了解与分析用户需求(包括数据处理)。需求分析是整个开发过程的基础,是最困难、最耗费时间的一步。作为地基的需求分析是否做的充分与准确,决定了在其上建造数据库大厦的速度与质量。需求分析做的不好,会导致整个数据库应用系统开发返工重做的严重后果。v 概念结构设计阶段概念结构设计阶段 概念结构设计是整个数据库设计的关键,它通过对用户需求进行综合、归纳与抽象,形成一个独立于具体DBMS的概念模型,一般用E-R图表示概念模型。v 逻辑结构设计阶段逻辑结构设计阶段 逻辑结构设计是将概念结构转化为选定的DBMS所支持的数据模型
19、,并使其在功能、性能、完整性约束、一致性和可扩充性等方面均满足用户的需求。2022-11-10第一章 数据库技术基础知识v 数据库物理设计阶段数据库物理设计阶段 数据库的物理设计是为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。即利用选定的DBMS提供的方法和技术,以合理的存储结构设计一个高效的、可行的数据库的物理结构。v 数据库实施阶段数据库实施阶段 数据库实施阶段的任务是根据逻辑设计和物理设计的结果,在计算机上建立数据库,编制与调试应用程序,组织数据入库,并进行系统测试和试运行。v 数据库运行和维护阶段数据库运行和维护阶段 数据库应用系统经过试运行后即可投入正式运
20、行。在数据库系统运行过程中必须不断地对其进行评价、调整与修改。2022-11-10第一章 数据库技术基础知识1.4 1.4 概念模型概念模型2022-11-10第一章 数据库技术基础知识1.4.1 1.4.1 信息世界中的基本概念信息世界中的基本概念 v 实体实体(entity)(entity)客观存在并可相互区别的事物称为实体。实体可以是具体的人、事、物,也可以是抽象的概念或联系。v 属性属性(attribute)(attribute)实体所具有的某一特性称为属性。一个实体可以由若干个属性来刻画。v 主码(主码(primary keyprimary key)惟一标识实体的属性集称为主码。例如
21、,学生号是学生实体的主码,职工号是职工实体的主码。v 域(域(domaindomain)属性的取值范围称为该属性的域。例如,职工性别的域为(男,女),姓名的域为字母字符串集合,年龄的域为小于150的整数,职工号的域为5位数字组成的字符串等。2022-11-10第一章 数据库技术基础知识v 实体型(实体型(entity typeentity type)具有相同属性的实体必然具有共同的特征和性质。用实体名及其属性名集合来抽象和刻画同类实体,称为实体型。例如,学生(学号,姓名,性别,出生年份,系,入学时间)就是一个实体型。v 实体集(实体集(entity setentity set)同型实体的集合称
22、为实体集。例如,全体学生就是一个实体集。图书馆的图书也是一个实体集。v 联系(联系(relationshiprelationship)在现实世界中,事物内部以及事物之间是有联系的,这些联系在信息世界中反映为实体内部的联系和实体之间的联系。实体内部的联系通常是组成实体的各属性之间的联系。2022-11-10第一章 数据库技术基础知识 两个实体型之间的联系可以分为3类 一对一联系(1:1)如果对于实体集A中的每一个实体,实体集B至多有一个实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。例如,一个宾馆,每个客房都对应着一个房间号,一个房间号也惟一的对应这一间客房。所以,客房
23、和房间号之间具有一对一联系。又如,确定部门实体和经理实体之间存在一对一联系,意味着一个部门只能有一个经理管理,而一个经理只管理一个部门。一对多联系(1:n)如果对于实体集A中的每一个实体,实体集B中有n个实体与之联系(n0),反之,对于实体集B中的每一个实体,实体集A中至多有一个实体与之联系,则称实体集A与实体集B具有一对多联系,记为1:n。例如,一个部门中有若干名职工,而每个职工只能在一个部门工作,则部门与职工之间具有一对多联系。2022-11-10第一章 数据库技术基础知识 多对多联系(m:n)如果对于实体集A中的每一个实体,实体集B中有n个实体与之联系(n0),反之,对于实体集B中的每一
24、个实体,实体集A中也有m个实体与之联系(m0),则称实体集A与实体集B具有多对多联系,记为m:n。注意:一对一联系是一对多联系的特例,而一对多联系又是多对多联系的特例。实体型之间的这种一对一、一对多、多对多联系不仅存在于两个实体型之间,也存在于两个以上的实体型之间。同一个实体集内的各实体之间也可以存在一对一、一对多、多对多的联系。2022-11-10第一章 数据库技术基础知识1.4.2 1.4.2 概念模型的表示方法概念模型的表示方法 概念模型是对信息世界建模,所以概念模型应该能够方便、准确地表示信息世界中的常用概念。概念模型的表示方法很多,其中最为常用的是P.P.S.Chen于1976年提出
25、的实体联系方法(Entity-Relationship Approach,简记为E-R表示法)。该方法用ER图来描述现实世界的概念模型,称为实体联系模型,简称E-R模型。E-R图中各图形的含义及图示见表1-1。需要注意的是,联系本身也可以有属性。如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。2022-11-10第一章 数据库技术基础知识实体属性联系学生学号选课表1-1 E-R图中各图形的含义 2022-11-10第一章 数据库技术基础知识 【例1-1】在选课系统中,一门课程同时有若干个学生选修,而一个学生可以同时选修多门课程,则课程与学生之间具有多对多联系。学号所在系年龄姓名性
26、别学生课程号课程名学分课程成绩选课mn2022-11-10第一章 数据库技术基础知识 【例1-2】在授课系统中,对于课程、教师与参考书3个实体型,如果一门课程可以有若干个教师讲授,使用若干本参考书,而每一个教师只讲授一门课程,每一本参考书只供一门课程使用,则课程与教师、课程与参考书之间的联系是一对多的。课程教师参考书讲授11n2022-11-10第一章 数据库技术基础知识 【例1-3】职工实体集内部有领导与被领导的联系。即某职工为部门领导,“领导”若干职工,而一名职工仅被另外一个职工(领导)直接领导,因此这是一对多联系。职工领导1n2022-11-10第一章 数据库技术基础知识 【例1-4】图书借阅系统概念模型设计。该系统中有读者、图书两个实体集,实体集之间通过借阅建立联系。假定一位读者可以借阅多本图书,一本图书可以经多位读者借阅。一本图书一位读者可以借阅多次(不同时间)。读者编号姓名读者类型已借数量图书出版日期出版社编号书名定价借期还期借阅mn2022-11-10