2.55k likes | 2.69k Views
数据库原理与应用. 计算机与信息学院. 第一章 绪论. 数据库是 数据管理 的工具。 数据管理 经历了从手工管理阶段、文件管理阶段到数据库管理阶段的变迁。. 1.1 数据库系统概述. 1.1.1 数据、数据库、数据库管理系统、数据库系统 一、数据库 (Data Base) —— 存放数据的仓库(顾名思义 / 不准确的含义) —— 信息的载体 / 表示 尽管数据库技术已发展成熟,但还没有一个普遍接受的、严格的定义。. 1.1.1 数据、数据库、数据库管理系统、数据库系统. 数据库应具备的特征 / 定义:
E N D
数据库原理与应用 计算机与信息学院
第一章绪论 数据库是数据管理的工具。数据管理经历了从手工管理阶段、文件管理阶段到数据库管理阶段的变迁。 1.1 数据库系统概述 1.1.1 数据、数据库、数据库管理系统、数据库系统 一、数据库(Data Base) ——存放数据的仓库(顾名思义/不准确的含义) ——信息的载体/表示 尽管数据库技术已发展成熟,但还没有一个普遍接受的、严格的定义。
1.1.1 数据、数据库、数据库管理系统、数据库系统 数据库应具备的特征/定义: (1)数据库是相互关联的数据的集合 数据库中的数据不是孤立的,数据与数据之间是相互关联的,在数据库中不仅要能够表示数据本身,还要能够表示数据与数据之间的联系。 如:学籍管理——学生、课程两类数据。 (2)用综合的方法组织数据 顺序、索引、聚簇Cluster
职工基本情况 有关人事管理的数据 职工基本情况 有关教育培训的数据 1.1.1 数据、数据库、数据库管理系统、数据库系统 (3)具有较小的数据冗余,可供多个用户共享 低冗余与数据共享:在数据库技术之前,数据文件都是独立的,任何数据文件都必须含有满足某一应用的全部数据。 例:人事部门有一个职工文件: 教育部门也有一个职工文件: 其中,“职工基本情况”重复存储,浪费空间。可共享存 储类似这样的共同数据,以降低数据的冗余度。
1.1.1 数据、数据库、数据库管理系统、数据库系统 (4)具有较高的数据独立性 数据独立性:(包括物理独立性、数据独立性。具体见萨师煊等主编《数据库系统概论》Page11) 指数据的组织和存储方法与应用程序互不依赖,彼此独立的特性。可降低应用程序的开发代价和维护代价。 在数据库技术之前,数据文件的组织方式和应用程序是密切相关的。数据结构改变,相应的应用程序也必须随之修改==〉开发/维护代价
1.1.1 数据、数据库、数据库管理系统、数据库系统 (5)具有安全控制机制,能够保证数据的安全、可靠 数据库要有一套安全机制,以便有效地防止数据库中的数据被非法使用/修改; 数据库还要有一套备份/恢复机制,以保证当数据遭到破坏时将数据立刻完全恢复==〉继续、可靠地运行。
1.1.1 数据、数据库、数据库管理系统、数据库系统 (6)允许并发地使用数据库,能有效、及时地处理数据,并能保证数据的一致性和完整性 一致性:数据库中的数据是共享的,并且允许多个用户同时使用相同的数据。这就要求数据库能够协议一致,保证各个用户之间对数据的操作不发生矛盾和冲突。 正确性、完整性: 保证数据正确的特性——数据完整性 可通过建立一些约束条件保证数据库中的数据是正确的。 如:学生年龄20 (2或100则错误)
1.1.1 数据、数据库、数据库管理系统、数据库系统 二、数据库管理系统(DataBase Management System ,DBMS) 上节提到的数据库的功能/特性不是数据库中的数据固有的,是靠管理或支持数据库的系统软件——DBMS——提供的。 DBMS任务: ·对数据资源进行管理,使之能为多个用户共享。 ·保证数据的安全性/可靠性/完整性/一致性/独立性
1.1.1 数据、数据库、数据库管理系统、数据库系统 DBMS功能: 1.数据库定义功能 定义数据库结构和存储结构; 定义数据库中数据之间的联系; 定义数据完整性约束条件和保证完整性的触发机制等. 2.数据库操纵功能 完成对数据库中数据的操作:插入、删除、修改; 重新组织数据库的存储结构; 完成对数据库的备份/恢复等.
1.1.1 数据、数据库、数据库管理系统、数据库系统 3.数据库查询功能 以各种方式提供灵活的查询功能,以便方便使用数据. 4.数据库控制功能 完成对数据库的安全性控制/完整性控制/并发控制 5.数据库通信功能 在分布式数据库或提供网络操作功能的数据库中还必须提供通信功能。
1.1.1 数据、数据库、数据库管理系统、数据库系统 三、数据库系统和数据库管理员 1.数据库系统(DataBase System,DBS) ——基于数据库的计算机应用系统,包括: ·以数据为主体的数据库 ·管理数据库的系统软件DBMS ·支持数据库系统的计算机硬件环境和操作系统环境 ·管理和使用数据库系统的人,特别是DBA ·方便使用和管理系统的技术说明书和使用说明书
1.1.1 数据、数据库、数据库管理系统、数据库系统 2.数据库管理和数据库管理员(DataBase Administrator,DBA) ——从事数据库管理工作的人员,负责数据库的全面管理工作(维护、设计) 数据库的使用会改变企事业单位的管理方式,但因为要把众多部门或用户的数据放在同一数据库中,会带来一些问题,如:数据冲突;越权使用数据;重要数据丢失…… 因此需要管理部门:负责和数据管理有关的工作。
1.1.1 数据、数据库、数据库管理系统、数据库系统 注: DBA工作繁重、重要、关键: 除了要掌握一定的数据处理、数据库技术之外,还应有处理好人际关系的素质、能力。在一个企事业中,特别是一个规模较大的数据库,不能指望一两个人来完成管理工作,所以DBA常指数据库管理部门。 开发DBS时,一开始就应设置DBA的职位或相应的机构,以明确DBA职责、权限。
1.1.2 数据管理技术的产生和发展 数据处理是计算机应用领域中最大的一类应用 用计算机实现数据管理经历了三个发展阶段: 1.人工管理阶段 数据库管理的初级阶段。 在50年代中期以前,计算机采用的是批处理方式,主要用于科学计算。(具体见萨师煊等主编《数据库系统概论》Page6)
1.1.2 数据管理技术的产生和发展 2.文件系统阶段(50年代后期——60年代中期) 特点: ·计算机技术有了很大的发展,开始广泛应用于信息处理 ·存储设备有了磁盘、磁鼓等可直接存取的设备 ·计算机有了操作系统,包括文件管理系统,用户可将数 据组织成文件体交给系统进行自动管理。 ·数据可长期保存在磁盘等存储设备上 ·程序和数据有了一定的独立性,且文件有多种形式的组 织结构:顺序、链接、索引、直接
1.1.2 数据管理技术的产生和发展 缺点: (1)数据冗余较大 ∵每个文件都是为特定的用途设计的, ∴同样数据在多个文件中重复存储 进能提供以文件为单位的数据共享。 (2)程序和数据之间的独立性较差 应用程序依赖于文件的存储结构,修改文件存储结构就要修改程序
1.1.2 数据管理技术的产生和发展 (3)对数据的表示和处理能力较差 文件的结构和操作比较单一,不够丰富。 (4)数据不一致 由(1)造成,更新时会造成同一数据在不同文件 中的不一致。 (5)数据联系弱 文件与文件之间是独立的,文件之间的联系必须通 过程序来构造。 尽管如此,文件系统在数据管理技术的发展中仍起 着很重要的作用。
1.1.2 数据管理技术的产生和发展 3.数据库系统阶段 从60年代后期开始,计算机用于信息处理的规模越来越大,对数据管理的技术提出了更高的要求,此时开始提出计算机网络系统和分布式系统,出现了大容量的磁盘,文件系统已不再能胜任多用户环境下的数据共享和处理。一个新的数据库管理技术——DBMS由此而形成,它对所有用户数据实行统一的、集中的管理、操作和维护。 特点:(具体见萨师煊等主编《数据库系统概论》Page9-13)
1.1.2 数据管理技术的产生和发展 按照数据模型的进展情况,数据库系统的发展可划分为三代: 第一代:层次数据库系统和网状数据库系统 主要支持层次和网状数据模型 第二代:关系数据库系统 支持关系数据模型,该模型有严格的理论基础, 概念简单、清晰,易于用户理解和使用。因此一 经提出便迅速发展,成为实力性最强的产品。
1.1.2 数据管理技术的产生和发展 第三代:新一代数据库系统——面向对象数据库系统 基于扩展的关系数据模型或面向对象数据模型的尚未 完全成熟的一代数据库系统 。 特点:支持包括数据、对象和知识的管理 在保持和继承第二代技术的基础上引进新技术(如OO) 对其他系统开放,具有良好的可移植性、可连结性、 可扩充性、互操作性。
1.2 数据模型 模型——对客观事物、现象、过程或系统的简化描述 所有的数据库系统都为它所要描述的世界建立了模型: • 数据建模:描述了组织数据的框架结构。 如:楼房住户-数据;房间规格-数据模型 ———数据建模最后发展成为数据的存储方式(数据字典 中的定义) • 业务功能建模:用户的最终需求。 ——业务功能建模最后发展成为应用程序 产生高效的应用程序的前提是良好的数据模型。(正如10 平米的房间无法成为会议厅一样,一个糟糕的数据模型也无法产生高质量的应用。
1.2 数据模型 为什么要建立数据模型(Data Model): •象盖大楼的设计图一样,DM可使所有的 项目参与者都有一个共同的数据标准 •避免出现问题再解决(边干便改的方式) •可及早发现问题 •加快应用开发速度
1.2.1 数据模型的三要素 1.数据结构 ——描述数据的静态特征,包括对数据结构和数据 建联系的描述。 通常按照数据结构的类型来命名数据模型: 层次结构——层次模型 网状结构——网状模型 关系结构——关系模型 2.数据操作 ——描述数据的动态特征:一组定义在数据上的操作( 包括操作的含义、操作符、运算规则及其语言等) 主要操作:检索与更新(插入、删除、修改)
1.2.1 数据模型的三要素 3.3.数据的约束条件 ——完整性规则的集合,数据库中的数据必须满足 这组规则。 约束条件的主要目的是使数据库与它所描述的现实系 统相符合。 • 设计时:时数据模型正确、真实、有效地反映现实 •运行时:保证数据库中的数据值真实地体现现实世 界的状态
1.2.2常见数据模型 根据数据模型应用目的不同,数据模型有以下几种: ● 概念(数据)模型(Conceptual Data Model) ———面向现实世界建模 ———主要用来描述现实世界的概念化结构,与具 体的DBMS无关; - 现实世界的事物经过人脑的抽象加工,提取出对用 户有用的信息,经过组织整理加工形成结余现实世 界和计算机世界之间的中间模型; - CDM只关心现实世界中的事物、事务特征、联系, 完全没有与具体及其相关的任何概念;
1.2.2常见数据模型 • CDM是系统分析员、程序设计员、维护人员、用户 • 之间相互理解的共同语言; • - CDM能时数据库的设计人员在设计的初始阶段摆脱 • 计算机系统及DBMS的具体技术问题,集中精力分析 • 数据、数据之间的联系; • - 概念模型必须转换成逻辑模型,才能在DBMS中实 • 现; • - 最常用的概念模型是E-R模型
1.2.2常见数据模型 ● 逻辑(数据)模型(Logical Data Model) ——面向用户建模 —— 用户从数据库所看到的数据模型; - 是具体的DBMS所支持的数据模型(网状/层次 /关系/面向对象); - 既要面向用户,也要面向系统; - LDM表示数据建联系的方法 - 一般的DBMS支持一种LDM(特殊的DBMS支 持多种LDM)
1.2.2常见数据模型 ● 物理(数据)模型(Physical Data Model) ——面向具体的DBMS,面向机器 ——描述数据在存储介质上的组织结构 - PDM不仅与具体的DBMS有关,还与操作系统 和硬件有关 - 每一种逻辑模型在实现时都有其对应的物理模型 - PDM加入了概念模型中为考虑的因素:触发器、 存储过程、主键、外键、索引等 - DBMS为保证其独立性和可以执行,大部分PDM 的实现工作由系统自动完成,而设计者只设计索 引、聚簇等特殊结构
1.2.3概念模型 实体-联系(Entity-Relationship)概念模型 首先介绍E-R模型中常用的几个重要概念,利用它们可 构造出现实世界的数据的抽象描述。 1.实体、实体型、实体集 ● 实体(Entity) ——客观存在并能相互区分的事物 如:人;数据库课程;正是用的计算机;一 场足球赛不能严格地定义实体,正如几何中“ 点”,“线”一样。 关键之处:一个实体能和别的实体区分开。
1.2.3概念模型 ● 实体型(Entity Type) ——用实体名及属性名集合来抽象刻画同类实体 ● 实体集(Entity Set) ——同型的实体组成的集合。 2.属性(Attribute) ——指实体所具有的某一方面的特性,一个实体可 由若干个属性来刻划。 - 属性取值在一定的范围,称为该属性的值域/域(Domain) - 唯一标识实体的属性集称为码(Key)
1.2.3概念模型 3.联系(Relationship) ——实体集合间存在的相互关系 为了建立现实世界的完整模型,常常需要对联系 分 类,根据一个实体集合的实体可以和多少个另一类 实体集合的实体相联系,可将联系分为如下几种: (1)一对一联系(1:1) 系——系主任 (2)一对多联系(1:n) 班级——学生 (3)一对一联系(m:n) 课程——学生
1.2.3概念模型 举例1:(具体见萨师煊等主编《数据库系统概论》 Page17-18) 两个实体型之间的联系(图1.10) 三个实体型之间的联系(图1.11) 一个实体型之间的联系(图1.12) 举例2:(具体见萨师煊等主编《数据库系统概论》 Page19-20)图1.14、图1.15
1.2.3概念模型 4. 实体-联系图 (1)确定所有实体集合 用矩形方框表示实体集合,方框内标明实体集合名 称; (2)选择实体集应包含的属性 用椭圆框表示属性,通过无向边连接到实体集。只 有一个属性的实体集可用属性代替,附加到它参加 的联系上; (3) 确定实体集之间的联系 用菱形框表示,框内标明联系的名称,通过无向边 (或有向边)连接到参加联系的每个实体集合;
1.2.3概念模型 ( 4)确定实体集的关键字 用下划线在属性上标明关键字的属性集合; (5)确定联系的类型 在用无向边连接联系到实体集时,在边上注明1或 n(多)来知名联系的类型。(在用有向边连接 联系到实体集时,让边的箭头指向1的实体集的 一方,多对多因为都是多方,故无箭头)
1.2.4 三种主要的逻辑数据模型 上节讨论的概念数据模型是“概念上”的,是抽象的,它与具体的数据库管理系统无关。这节要讨论的数据模型将与具体的DBMS有关,与DBMS支持的数据和联系的表示或存储有关。 前面提到过,数据库中不仅要存放数据本身,还要存放数据间的联系,可用不同的方法表示数据与数据之间的联系。 把表示数据与数据之间联系的方法称为逻辑(数据)模型。
1.2.4 三种主要的逻辑数据模型 • 一、层次模型(Hierarchical Model) • 用树型结构来表示实体之间联系的模型。 • 支持层次模型的典型系统诞生于1970年前后,是IBM • 公司的IMS(Information Management System)系统。 • 1. 层次模型的数据结构 • 层次模型示例(萨师煊等主编《数据库系统概论》 • Page22 图1.17) • 举例: Page23
1.2.4 三种主要的逻辑数据模型 • 2.层次模型的数据操纵与完整性约束 • 3.层次模型的存储结构 • 4.层次模型的优缺点 • 优点:结构简单 • 缺点:插入、删除限制多
1.2.4 三种主要的逻辑数据模型 二、网状模型(Network Model) 典型代表:DBTG(Data Base Task Group)数据 库任务组 1.网状模型的数据结构 2.网状模型的数据操纵与完整性约束 3.网状模型的存储结构 4.网状模型的优缺点 优点:更能直接描述世界 缺点:结构复杂
1.2.4 三种主要的逻辑数据模型 三、关系模型(Relational Model) 1970,IBM,E.F.Codd 关系模型源于数学,它把数据看成是二维表(关系) 中的元素。(其严格定义下一章给出) 用关系表示(不需用指针)实体和实体之间联系的模 型称为关系模型。 基本术语:萨师煊等主编《数据库系统概论》Page31 举例见教材 对于用户,关系方法应该是很简单的,但RDBMS很 复杂,因为将大量工作都转嫁给了RDBMS。
1.2.4 三种主要的逻辑数据模型 RDBMS的设想在层次、网状数据库诞生的同时产生的,但研制开发RDBMS却花费了比人们想象的要长得多的时间。所以成为商品并投入使用比层次、网状数据库晚了十几年。但一投入使用就显示了旺盛的活力,并逐步取代层次、网状数据库。
1.3 数据库系统的结构 1.3.1 数据库系统模式的概念 当设计数据库时,对数据库的结构感兴趣; 即模式(Schema):数据库中数据的逻辑结 构和特征的描述 当应用数据库时,关心的是数据库中存在的数据—— 实例(Instance)。 数据库中的数据经常变化,而数据库的结构在一定时 间范围内不会改变。 数据库中结构的定义可以在多个抽象级别进行,形成 多个级别的数据库模式。
1.3.2 数据库系统的三级模式结构 数据库系统的三级模式不仅可以使数据具有独立性,而且还可以使数据达到共享,使同一数据满足更多用户的不同要求。 一、内模式(Internal Schema) ——存储模式 ● 是数据在数据库系统的内部表示,即对数据的物 理结构/存储方式的描述,是低级描述,一般由 DBMS提供的语言或工具完成;
1.3.2 数据库系统的三级模式结构 ● 要修改存储数据库的结构(例如,用倒排文件代替多 链表),那么仅仅需要把这些修改反映在存储模式中; ● 通常我们不关心内模式的具体技术实现,而是从一般组 织的观点(即概念模式)或用户的观点(外模式)来讨 论数据库的描述。但我们必须意识到基本的内模式和存 储数据库的存在。
1.3.2 数据库系统的三级模式结构 二、模式(Schema) ——逻辑模式 ● 是数据库中全体数据的逻辑结构和特性的描述, 是所有用户的公共数据视图; ● DBMS提供数据定义语言DDL来描述逻辑模式,严 格定义数据的名称、特征、相互关系、约束等。
1.3.2 数据库系统的三级模式结构 三、外模式(External Schema) ——用户模式(视图) ● 是模式的子集或变形,是与某一应用有关的数据 的逻辑表示; ● 不同用户需求不同,看待数据的方式也可以不同 ,对数据保密的要求也可以不同,使用的程序设 计语言也可以不同,因此不同用户的外模式的描 述可以使不同的。
1.3.2 数据库系统的三级模式结构 举例: 民航售票系统包括处理航班程序和处理旅客程序。 - 程序的使用人员不必知道关于人事档案、丢失的行 李、飞行员的航行分配等信息; - 调度员可能需要知道关于航班、飞机和人事档案等 信息(如那些飞行员有资格驾驶747),但不必知道雇员的工资、旅客等信息。 所以可以为订票部门建立一个数据库视图,为调度部门建立另一个完全不同的部门。
1.3.2 数据库系统的三级模式结构 Note:视图处理的数据并不实际存储在数据库中,而仅可以从逻辑数据库中构造出来。视图比(逻辑)模式的抽象级别更高。 举例:“年龄”在人事部门数据库中,但(逻辑)模式重金包含出生年月。当用户希望通过访问视图得到年龄时,DBMS翻译这个要求,在从物理数据库上取出的数据完成计算。 注:一个数据库只有一个模式,一个内模式,但可以有多个外模式。
1.3.3 数据库的二级映象 在三级模式中提供了两级映象,保证了数据库系统的数据独立 性,既物理独立性与逻辑独立性。 一、外模式/模式映象 数据库系统投入使用后,可能有必要修改模式(如增加新关系、属性、改变类型),这时: 重新定义外模式/模式映象==〉现存外模式不变==〉应用程序不变 DBA职责
1.3.3 数据库的二级映象 二、模式/内模式映象 当内模式发生变化时: 重新定义模式/内模式映象==〉模式保持不变==〉外模式保持不变==〉建立在外模式上的应用程序保持不变
1.5 数据库技术的研究领域 1. 数据库管理系统软件的开发 2.数据库设计 3.数据库理论 具体见萨师煊等主编《数据库系统概论》page39-40