数据库原理与应用 (Visual FoxPro 9.0版)
第1章 数据库系统概述 1.1 数据库的特点 1.2 数据库的发展 1.3 数据库系统的组成 1.4 数据库管理系统 1.5 数据库应用系统 第1章 数据库系统概述 1.1 数据库的特点 1.2 数据库的发展 1.3 数据库系统的组成 1.4 数据库管理系统 1.5 数据库应用系统 1.6 数据模型概述
1.1 数据库技术的发展历史 数据库,通常可以把它形象地说成是存储数据的“仓库”,用户在该“仓库”中存放要管理的事务数据。以图书馆为例,图书馆是存储图书和负责向外借阅图书的部门,书库是各类图书的集合,可以把图书比作数据,书库比作数据库。
1.2 数据库的发展 1.2.1 人工管理阶段 1.2.2 文件系统阶段 1.2.3 数据库系统阶段
1.2.1 人工管理阶段 人工管理阶段发生在20世纪50年代以前。 1. 人工管理阶段计算机应用的背景 2. 人工管理时期的特点 1.2.1 人工管理阶段 人工管理阶段发生在20世纪50年代以前。 1. 人工管理阶段计算机应用的背景 2. 人工管理时期的特点 (1)数据不保存。 (2)没有对数据进行管理的软件系统。 (3)没有文件的概念。 (4)数据不共享。
图1-1
1.2.2 文件系统阶段 文件系统阶段是在20世纪50年代后期到60年代中期。 1. 文件系统阶段计算机应用的背景 2. 文件系统时期的特点 1.2.2 文件系统阶段 文件系统阶段是在20世纪50年代后期到60年代中期。 1. 文件系统阶段计算机应用的背景 2. 文件系统时期的特点 文件系统时期的特点如下: (1)数据可以长期保存。 (2)由文件系统管理数据。
(3)数据可以共享。 文件系统显露出三个缺点: ① 数据冗余度(Redundancy)大。 ② 数据不一致性。 ③ 数据和程序缺乏独立性。
这个时期程序与数据的关系如图1-2所示。
1.2.3 数据库系统阶段 特点如下: 1. 数据库系统阶段计算机的应用背景 2. 数据库系统时期的特点 (1)采用复杂的数据模型(结构)。 1.2.3 数据库系统阶段 特点如下: 1. 数据库系统阶段计算机的应用背景 2. 数据库系统时期的特点 (1)采用复杂的数据模型(结构)。 (2)有较高的数据独立性。 (3)提供方便的用户接口。 (4)提供数据控制功能。
数据库管理系统提供以下四方面的数据控制功能。 ① 数据完整性(Integrity)。 ② 数据安全性(Security)。 ③ 数据库的并发(Concurrency)控制。 ④ 数据库的恢复(Recovery)。
程序和数据的关系如图1-3所示。
1.3 数据库系统 1.2.1 数据库 1.2.2 软件系统 1.2.3 硬件系统 1.2.4 数据库管理员
1.3 数据库系统 数据库系统(Database system)是采用数据库技术构建的复杂计算机系统。 1.3 数据库系统 数据库系统(Database system)是采用数据库技术构建的复杂计算机系统。 数据库,软件系统,硬件系统,数据库管理人员被称为数据库系统的四要素。
1.3.1 数据库 数据库是按一定结构组织的,各种应用相关的所有数据的集合。它包含了数据库管理系统处理的全部数据。其内容主要分为两个部分:一是物理数据库,记载了所有数据;二是数据字典,描述了不同数据之间的关系和数据组织的结构。
(1)物理数据库: (2)数据字典: 其中存放按一定的数据模型组织并实际存储的所有应用需要的工作数据。 其中存放关于数据库中各级模式的描述信息,包括所有数据的结构名、意义、描述定义、存储格式、完整性约束、使用权限等信息。因数据字典包含数据库系统中的大量描述信息而不是用户数据,故也称为“描述信息库”。
1.3.2 软件系统 软件系统包括了数据库管理系统(DBMS)、操作系统(Operating System)、应用程序开发工具及各种应用程序。 图1-4详细描述了应用程序通过DBMS和操作系统访问(读取)数据库的过程。 图1-4
1.3.3 硬件系统 硬件系统是指支持数据库系统运行的全部硬件,一般由中央处理器、主存、外存等硬件设备组成。不同的数据库对硬件系统的要求有所不同,普通的桌面数据库一般可以运行在个人计算机上,而一些大型数据库如Oracle,Sybase等,则对硬件系统有较高的要求。另外,如果是联网的数据库系统则还需要购买配套的网络设备。
1.3.4 数据库管理员 数据库管理员(Database Administrator,简称DBA),是专门负责数据库系统设计、运行和维护的专职人员。DBA在数据库系统的规划、设计、运行阶段都担任着重要的任务,具体任务如下: (1)决定数据库的内容和结构。
(2)决定数据库的存储结构和存取策略。 (3)定义数据的安全性要求和完整性约束条件。 (4)监控数据库的使用和运行。 (5)改进与重组重构数据库系统。
1.4 数据库基本理论 1.4.1 数据库管理系统的功能 1.4.2 数据库管理系统的组成
1.4 数据库基本理论 数据库管理系统(DBMS)是一个管理数据库的软件系统。
1.4.1 数据库管理系统的功能 数据库管理系统包括下几个方面内容: 1. 数据定义功能 2. 数据操作功能 3. 数据库运行管理 1.4.1 数据库管理系统的功能 数据库管理系统包括下几个方面内容: 1. 数据定义功能 2. 数据操作功能 3. 数据库运行管理 4. 数据库的建立和维护功能
1.4.2 数据库管理系统的功能 数据库具有三级结构,或称三级模式, 1. 数据库的三级模式 1)概念模式 2)外模式 3)内模式
概念模式描述数据的全局逻辑结构,外模式涉及的是数据的局部逻辑结构,即用户可以直接接触到的数据的逻辑结构,而内模式更多的是由数据库系统内部实现的。 三者之间的关系如图1-5所示
2. 数据库的二级映像 1)外模式/概念模式映像 2)概念模式/内模式映像 3. 两级数据的独立性 1)逻辑独立性 2)物理独立性
1.5 数据库应用系统 数据库应用系统(DBAS)是指在计算机系统中,通过数据库管理系统,按用户的应用需求为某一特定的用户设计的结构合理,使用方便,高效的数据库和配套的应用程序系统。数据库应用系统包含了大量的具体数据和应用程序。
1.6 数据模型概述 1.6.1 数据处理的抽象描述 1.6.2 数据模型
1.6 数据模型概述 数据模型应满足以下三个方面的要求: (1)能比较真实地模拟现实世界。 (2)容易被人理解。 (3)便于在计算机上实现。
1.6.1 数据处理的抽象描述 1. 现实世界 2. 信息世界 1)实体:客观存在且可以互相区别的事物称为实体(Entity)。 1.6.1 数据处理的抽象描述 1. 现实世界 2. 信息世界 1)实体:客观存在且可以互相区别的事物称为实体(Entity)。 2)属性:实体的某一特征称为属性, 3)键:能在一个实体集中惟一标识一个实体的属性称为键(Key)。 4)联系:实体之间互相作用、互相制约的关系称为实体集的联系(Relation)。
有四种:一对一联系、一对多联系、多对一联系、多对多联系,图1-6分别表示了这四种关系。 学生和学号的一对一联系 系别和学生的一对多联系 学生和宿舍的多对一联系 学生和课程的多对多联系
3. 机器世界 机器世界又称数据世界。信息世界中的信息经过抽象和组织,以数据形式存贮在计算机中,就称为机器世界。 (1)字段(Field)。 (2)记录(Record)。 (3)文件(File)。
4. 三个世界的转换 由以上对三个世界的描述可以看到,从现实世界到信息世界再到机器世界,事务被一层层抽象,加工,符号化,逻辑化,而这个过程都是有一定联系的。表1-1表示了转换过程中的逻辑联系。 现实世界 信息世界 机器世界 事务 实体集 文件 实体 记录 特性 属性 数据项 惟一特征 键 关键字
1.6.2 数据模型 (2)逻辑数据模型 数据模型分为两种: (1)概念数据模型 1.6.2 数据模型 数据模型分为两种: (1)概念数据模型 它反映了信息从现实世界到信息世界的转化,不涉及计算机软硬件的具体细节,而注重于符号表达和用户的理解能力,典型的信息模型有著名的“实体-联系模型”; (2)逻辑数据模型 它反映了信息从信息世界到机器世界的转换,描述了计算机中数据的逻辑结构,还涉及到信息在存储器上的具体组织。 一个完整的数据模型必须包括数据结构、数据操作及完整性约束3个部分。
一个完整的数据模型必须包括数据结构、数据操作及完整性约束3个部分。 (1)数据结构: (2)数据操作: (3)数据的完整性约束条件:
1. 概念数据模型 E-R模型用图形描述了实体、属性和联系三要素。具体作图方法如下。 (1)实体:用矩形框表示实体,在框内写上实体的名字。 1. 概念数据模型 E-R模型用图形描述了实体、属性和联系三要素。具体作图方法如下。 (1)实体:用矩形框表示实体,在框内写上实体的名字。 (2)属性:用椭圆框表示实体的属性,并在框内写上属性的名称。 (3)联系:用菱形框表示实体间的联系,用线段连接菱形框与矩形框,并在线段上注明联系的类型(一对一、一对多、多对一、多对多)。
(1)科目情况:课程号、名称、授课老师、上课时间。 用 E-R图表示学生选课的概念模型 (1)科目情况:课程号、名称、授课老师、上课时间。 (2)学生选课表:学号、姓名、课程号、课程名称。 (3)学生:学号、姓名、班级、性别。 每个实体的属性如图1-7所示。
每个实体的属性如图1-7所示。
选课的E-R图如图1-8所示 。
2. 逻辑数据模型 逻辑数据模型有: 层次模型、网状模型以及关系模型 表1-3 三个模型的比较 层次模型 网状模型 关系模型 创始 2. 逻辑数据模型 逻辑数据模型有: 层次模型、网状模型以及关系模型 表1-3 三个模型的比较 层次模型 网状模型 关系模型 创始 1968年IBM公司的IMS系统 1969年CODASYL的DBTG报告(71年通过) 1970年F.Codd提出关系模型 数据结构 树型结构 有向图结构 二维表结构 数据联系 通过指针 通过表间结构 查询语言 过程性语言 非过程性语言 典型产品 IMS IDS/Ⅱ、IMAGE/3000、IDMS、TOTAL Oracle、Sybase、DB2 SQL Server、Informix 流行时期 20世纪70年代 70年代至80年代中期 80年代至现在
1)层次模型(Hierarchical Model) (1)有且只有一个结点没有双亲结点,这个结点称为根结点。 (2)根结点以外的其他结点有且只有一个双亲结点。
图1-9所示的是我国行政区域结构图和它所对应的树。 行政区域结构图 树
层次模型的优点有: (1)层次数据模型简单 (2)对于实体之间联系比较固定的应用系统 (3)层次数据模型提供了良好的完整性支持
层次模型的缺点有: (1)不能自然地表示多对多联系。(2)对插入和删除操作的限制比较多。(3)查询子女结点必须通过双亲结点。 (4)层次命令趋于程序化。
2)网状模型(Network Model) 在数据库中,定义满足下面两个条件的基本层次联系的集合为网状模型(Network Model)。 (1)允许一个以上的结点无双亲。 (2)一个结点可以有多于一个的双亲。
如图1-10所示为出售关系的网络。
(2)具有良好的性能,存取效率较高。网状模型的缺点有: (1)结构比较复杂 (2)其DDL、DML语言复杂,用户不容易使用。 网状模型的优点有: (1)能够更为直接地描述现实世界,如一个结点可以有多个双亲。 (2)具有良好的性能,存取效率较高。网状模型的缺点有: (1)结构比较复杂 (2)其DDL、DML语言复杂,用户不容易使用。
关系模型是应用最为广泛的一种结构数据模型。与以往的模型不同,它是建立在严格的数学概念的基础上的。在关系模型中,把数据组织成一个个二维表。 3)关系模型 关系模型是应用最为广泛的一种结构数据模型。与以往的模型不同,它是建立在严格的数学概念的基础上的。在关系模型中,把数据组织成一个个二维表。
关系模型的一些术语。 (1)关系:一个关系对应一张二维表。 (2)元组:表中的一行称为一个元组。 (3)属性:表中的一列称为一个属性,每一个属性起一个名称为属性名。 (4)域:属性的取值范围。 (5)主码:也叫关键字,是指表中能够惟一表示一个元组的属性或最小属性组。 (6)分量:元组中的一个属性值。 (7)关系模式:对关系的描述,其一般表示方式为: 关系名(属性1,属性2,…,属性n)
图1-11所示是一个关于学生、课程、成绩的关系模型。
表1-4 学生情况模式 学号 姓名 性别 年龄 98030801 蒋君 男 21 98452369 黎明 99215036 汪霏 女 20 表1-4 学生情况模式 学号 姓名 性别 年龄 98030801 蒋君 男 21 98452369 黎明 99215036 汪霏 女 20 99321569 李宁
表1-5 选课模式 课程编号 课程名称 任课教师 10001 数据库原理 庞林 20003 商贸英语 邱明 50012 财务会计 江峰 表1-5 选课模式 课程编号 课程名称 任课教师 10001 数据库原理 庞林 20003 商贸英语 邱明 50012 财务会计 江峰 10018 经济学原理 林灵
表1-6 成绩表模式 学号 课程编号 成绩 98030801 10001 95 99215036 20003 98 98452369 50012 70 99321569 10018 75
关系模型的优点有: (1)建立在严格的数学概念的基础上。 (2)概念单一。实体和各类联系都用关系来表示。 (3)存取路径对用户透明,具有更高的数据独立性,更好的安全保密性
关系模型的缺点有: (1)存取路径对用户透明导致查询效率往往不如非关系数据模型。 (2)为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度。
小结 本章介绍了数据库技术产生和发展的背景,概述了数据库的基本概念。具体内容如下: (1)介绍了数据库技术发展的三个阶段:人工管理阶段、文件系统阶段、数据库系统阶段。 (2)介绍了数据库的四个基本概念:数据、数据库、数据库管理系统和数据库系统。并介绍了数据库系统的组成,使读者对数据库有一定的了解。 (3)数据模型是数据库系统的核心和基础。本章介绍了数据模型的概念模型和三种主要的数据模型:层次模型、网状模型、关系模型。并介绍了概念模型的典型代表:E-R模型的作图方法。 (4)数据库系统的三级模式和二级映像的系统结构保证了数据库中能够有较高的数据逻辑独立性和物理独立性。本章介绍了数据库系统的三级模式:概念模式、外模式、内模式,以及数据的二级映像:外模式/概念模式映像、概念模式/内模式映像。