第一章

第一章 数据库系统概述

第一节 数据库基本概念

  • 数据数据库数据库管理系统数据库系统是数据库中最常见的四个基本概念

数据

  • 数据Data)是描述事物的符号记录,是指用物理符号记录下来的,可以鉴别的信息。
  • 数据有多种表现形式,可以是包括数字,字母,文字,特殊字符组成的文本数据,也可以是图形,图像,动画,影像,声音,语言等多媒体数据。
  • 数据的解释是对数据含义的说明,也称为数据的语义,即数据所蕴含的信息。数据与其语义密不可分,没有语义的数据是没有意义和不完整的。
  • 数据是信息存在的一种形式,只有通过解释或处理的数据才能成为有用的信息。

数据库

  • 数据库DataBaseDB)通俗地被称为存储数据的仓库,只是这个仓库是存储在计算机存储设备上的,并且其所存储的数据是按照一定的格式进行存储的。
  • 数据库是指长期存储在计算机中的有组织的,可共享的数据集合,且数据库中的数据按照一定的数据模型组织,描述和存储,具有较小的冗余度,较高的数据独立性,系统易于扩展,并可以被多个用户共享。
  • 数据库中存储的数据具有永久存储有组织可共享三个基本特点。

数据库管理系统

  • 数据库管理系统Database Management SystemDBMS)是专门用于建立和管理数据库的一套软件,介于应用程序和操作系统之间。它负责科学有效地组织和存储数据,并帮助数据库的使用者能够从大量的数据中快速地获取所需数据,以及提供必要地安全性和完整性等统一控制机制,实现对数据有效地管理与维护。
  • 其主要功能包括
    • 数据定义功能
      • 用户可通过数据库管理系统提供的数据定义语言Data Definition LanguageDDL),定义数据库中的数据对象,包括表,视图,存储过程,触发器等。
    • 数据操纵功能
      • 用户可通过数据库管理系统提供的数据操纵语言Data Manipulation LanguageDML)操纵数据库中的数据,实现对数据库的基本操作,包括数据的查询,插入,删除和修改等。
    • 数据库的运行管理功能
      • 数据库中的数据是可供多个用户同时使用的共享数据,为保证数据的安全性,可靠性,数据库管理系统提供了统一的控制和管理机制,实现数据在不会被相互干扰的情况下能够并发使用,并且在发生故障时能够对数据库进行正确的恢复。
    • 数据库的建立和维护功能
      • 数据库的建立和维护功能主要包括创建数据库及对数据库空间的维护,数据库的备份与恢复功能,数据库的重组织功能和性能监视,分析等。
    • 数据组织,存储和管理功能
      • 为提高数据的存储效率,数据库管理系统需要对数据进行分类存储和管理。一般的数据库管理系统都会根据具体组织和存储方式提供多种数据存储方式,如索引查找,顺序查找等。
    • 其他功能
      • 主要包括与其他软件的网络通信功能,不同的数据库管理系统之间的数据传输以及相互访问功能等。如数据库管理员可通过相应的软件工具对数据库进行管理,编程人员可通过程序开发工具与数据库接口编写数据库应用程序等。

数据库系统

  • 数据库系统Database SystemDBS)是指在计算机中引入数据库技术之后的系统。一个完整的数据库系统包括数据库数据库管理系统相关使用工具应用程序数据库管理员用户
    • 数据库管理员Database AdministratorDBA)是专门负责对数据库进行维护,并保证数据库正常,高效运行的人员。
    • 用户则是数据库系统的服务对象,其通常包括程序员和数据库终端用户两类用户。
    • 一般在不引起混淆的情况下,常常将数据库系统简称为数据库。

第二节 数据管理技术的发展

  • 数据管理可以从两个方面来理解
    • 一是针对组织业务的管理,负责制定并执行整个组织中关于数据的定义,组织,保护与有效使用的策略,过程和计划。
    • 二是依靠技术,负责实现数据作为一种资源的集中控制管理。

数据组织

  • 以某种方式收集数据,并将记录在纸介文件上的数据转换成计算机可处理的形式;然后将收集的数据进行适当的构造,这称为数据组织。其中数据的组织分为逻辑组织和物理组织两种。
逻辑组织
  • 数据的逻辑组织是用户或应用程序所使用的数据结构形式。
物理组织
  • 物理组织是数据在物理存储设备上的结构形式,这两者之间可以相对独立。

检索

  • 存储的信息要能够方便地被选择提取,这称为检索。

数据管理的职责

  • 数据管理的任务就是进行数据的收集,组织,控制,存储,选取,维护,实现在适当的时刻,以适当的形式,给适当的人,提供适当的数据,它是数据处理的中心问题。
  • 数据处理则是指对各种数据进行收集,存储,加工和传播的一系列活动的总和。

数据管理的发展阶段

1.人工管理阶段
  • 20时机50年代中期以前,在硬件方面是没有磁盘等直接存储数据的存储设备,数据只能存放在纸带或者卡片上;软件方面只有汇编语言,没有操作系统,更没有专门管理数据的软件,数据处理是通过批处理的方式来实现的。此阶段数据管理的特点如下。
    • 数据不保存
      • 当时的计算机主要应用于科学计算,表现为:存储容量有限且价格昂贵,通常一组数据对应一个程序,数据随程序一起输入计算机,处理完毕后即将结果输出,数据空间随着程序空间一起被释放。
    • 应用程序管理数据
      • 当时没有专门的数据管理软件,应用程序的数据由程序自行负责。
    • 数据面向应用
      • 数据是面向应用程序的,一组数据只能对应一个程序。当多个应用程序涉及某些相同的数据时必须各自定义,不能共享,因此程序与程序之间存在着大量的冗余数据,数据的独立性差。
2.文件系统阶段
  • 20世纪50年代后期到60年代中期,计算机软,硬件技术发展到了一定阶段,硬件方面配置了磁盘,磁鼓等直接存取存储设备;软件方面,特别是在操作系统中配备了专门的数据管理软件,即文件系统。
  • 文件系统是将数据的逻辑结构和物理结构分离,由“存放方法”实现逻辑结构与物理结构之间的映射。应用程序只涉及数据的逻辑结构,系统决定数据的物理结构,两者之间可以有差别。这样,当物理结构发生改变时,不会导致应用程序的修改,这称为数据的物理独立性。数据的物理独立性使应用程序脱离数据的物理结构,使其适用性得以提高。
文件系统优点
  • 具有数据可长期保存和专门管理的特点,它提供了物理数据独立性,使应用程序与数据的具体物理存储结构分离,并通过数据的抽取,排序,合并等可以为应用提供新的文件,从而使数据共享称为可能。
文件系统缺点
  • 在文件系统中,不能实现数据的普通共享,只能实现文件级的共享,文件的逻辑结构是根据它的应用而设计的,数据的逻辑结构与应用程序之间相互依赖。当不同应用程序使用的数据大部分相同时,还必须构造各自的文件,这样依然还存在大量的数据冗余。

3. 数据库系统阶段

  • 要求数据作为企业组织的公共资源而集中管理控制,能为企业的各类用户所共享,因此应大量地消去数据冗余,节省公共资源。
  • 当数据变更时,能节省对多个数据副本地多次变更操作,从而大大缩小计算机运行时间开销,且更为重要的是不会遗漏某些副本的变更而使系统出现不一致的数据。
  • 还要求数据具有更高的独立性,不但具有物理独立性,而且具有逻辑独立性,即当数据逻辑结构改变时,不影响那些不要求这种改变的用户应用程序,从而节省应用程序开发和维护的代价。

数据库系统阶段特点

  1. 数据集成
    1. 数据的集成是数据库管理系统的主要目的。在数据库中,通过相关数据间定义的逻辑联系,数据被组织成统一的逻辑结构,与数据的物理组织与定位分离,而应用的修改与增加只与数据的逻辑结构发生关系。由此,通过数据集成来统一计划和协调遍及各个相关应用领域的信息资源,这样可使数据得到最大程度的共享,且冗余最小。
  2. 数据共享性高
    1. 数据共享是指在数据库中,一个数据可以为多个不同的用户共同使用。
    2. 共享不只是指同一数据可以被多个不同用户存取,还包含了并发共享,也就是多个不同用户同时存取同一数据的可能性。
  3. 数据冗余小
    1. 在非数据库系统中,每个应用各自会拥有自己的数据文件,这常常带来大量的数据冗余。
    2. 而对于数据库方法,这些独立而有冗余的数据文件被集成为单一的逻辑结构,并且每一个数据项的值可以理想地只存储一次,从而节约存储空间,避免数据的重复存储。
    3. 并非所有的冗余都可以或者应该被消除。有时,由于应用业务或技术上的原因,如数据合法性检验,数据存取效率等方面的需要,同一数据可能在数据库中保持多个副本。因此,在数据库系统中,冗余是受控的,系统知道冗余,保留必要的冗余也是系统预定的。
  4. 数据一致性
    1. 通过消除或控制数据冗余,可以在一定范围内避免数据的不一致性。
    2. 冗余在数据库中是难免的,但他是受控的,所以当发生更新时,数据库系统本身可以通过更新所有其他副本来自动保持数据的一致性。
  5. 数据独立性高
    1. 数据定义与使用数据的应用程序分离称为数据独立。也就是说,数据或应用程序的修改不会彼此引起另一方的修改。数据库系统提供了两层数据独立。
      1. 不同的应用程序(用户)对同样的数据可以使用不同的视图,这意味着应用程序在一定范围内修改时,可以只修改它的数据库视图,而不修改数据本身的定义;反之,数据定义的修改,在一定范围内不会引起应用程序的修改。这种独立称为数据的逻辑独立。
      2. 可改变数据的存储结构或存储方法以响应变化的需求而无须修改现有的应用程序,这称为数据的物理独立。
  6. 实施统一管理与控制
    1. 主要包括数据的安全性完整性并发控制故障恢复等,即数据库保护。
      1. 数据的安全性。数据的安全性Security)是指保护数据,以防止不合法的使用而造成数据泄密和破坏,保证只有赋予权限的用户才能访问数据库中的数据,防止对数据的非法使用。
      2. 数据的完整性。数据的完整性Integrity)是对数据的正确性,有效性和相容性要求,即控制数据在一定范围内有效或要求数据之间满足一定的关系,保证输入到数据库中的数据满足相应的约束条件,以确保数据有效,正确。
      3. 并发控制。并发控制(Concurrency)是指当多个用户的并发进程同时存取,修改数据库时,可能会发生相互干扰而得到错误结果,并使得数据库的完整性遭到破坏,因而对多用户的并发操作加以控制和协调。
      4. 故障恢复。计算机产生的硬件故障,操作员的失误以及人为的破坏都会影响数据库中数据的正确性,甚至造成数据库部分或全部数据的丢失,DBMS必须具有将数据库从错误状态恢复到某一已知的正确状态的功能,这就是数据库大的故障恢复Recovery)。
  7. 减少应用程序开发与维护的工作量
    1. 由于数据库中的数据具有共享性,独立性,使得应用程序的编程人员不再需要承担基本数据文件的设计,建造与维护等繁重负担,因此新的应用程序开发所需的代价和为用户提供服务所需要的时间期限等,都可大大减少。
    2. 由于数据的独立性,在一定范围内,数据或相关应用程序任何一方的改变都可以彼此不必引起另一方的改变,因此应用程序的维护工作量可以大大减少。

第三节 数据库系统的结构

数据库系统的三级模式结构
  • 从数据库管理员的角度来审视数据库系统,其内部基本上遵循美国ANSI/SPARC数据库管理系统研究组提出的三级体系结构,即用户级概念级物理级。它们在体系结构上通常具有相同的特征,即采用三级模式结构,并提供两层映像功能。
  • 数据库系统的三级模式结构是指数据库系统是由模式Schema),外模式External Schema)和内模式Internal Schema)三级构成的。

在这里插入图片描述

1.模式
  • 模式也称为概念模式或逻辑模式,它是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图。
  • 模式实际上是数据库数据在逻辑上的视图,即概念视图,其形式要比数据的物理存储方式抽象。
  • 数据库管理员必须考虑整个数据库的这种全局概念视图,它不包含任何数据库的实现细节,而是定义数据的逻辑结构,数据之间的联系,以及与数据相关的安全性,完整性等要求。
  • 数据库按外模式的描述向用户提供数据,按内模式的描述存储数据,而模式是这两者的中间层,它既不涉及数据的物理存储细节和硬件环境,也与具体的应用程序,所使用的应用开发工具及程序设计语言无关。
  • DBMS提供模式描述语言(Schema,DDL)来严格定义模式,不仅要定义数据的逻辑结构,还要定义数据之间的联系,定义与数据相关的安全性,完整性等要求。
2.外模式
  • 外模式也称为子模式Subschema)或用户模式,它是数据库用户能够看见和使用的局部数据的逻辑结构和特性的描述,是与某一应用有关的数据的逻辑表示。
  • 外模式是用于满足不同数据库用户需求的数据视图,即用户视图,其通常是模式的子集,是对数据库整体数据结构的局部重构。如果不同的用户在应用需求,看待数据的方式,对数据保密的要求等方面存在差异,则其外模式描述就不相同,并且模式中同样的数据,在外模式中的结构,类型,长度,保密级别等都可以不同。
  • 一个数据库可以有多个不同的外模式,允许它们有一定的重叠,且一个外模式可以只为一个应用程序使用,也可以为多个应用程序所共享。
  • 外模式是保证数据库安全的重要措施,每个用户只能看见和访问所对应的外模式中的数据,而数据库中其余数据是不可见的。同时,外模式简化了数据库系统的用户接口,便于用户使用,并有效支持了数据的独立性和共享性。
  • DBMS提供了子模式描述语言(Subschema DDL)来严格地定义子模式。
3.内模式
  • 内模式也称为存储模式Storage Schema),它是数据库中数据物理存储和存储方式地描述,是数据在数据库内部的表现形式。
  • 内模式实际上是整个数据库的最底层表示,它不同于物理层,是数据库管理员(DBA)所见到的,特定的DBMS所处理的数据库的内部结构,即内部视图或存储视图。
  • 一个数据库只有一个内模式,它不是存储设备上的物理记录或物理块,也不涉及任何具体设备限制,内模式还不是最底层的物理层,因为比内模式更接近于物理存储和访问的那些软件机制是操作系统的一部分。
  • DBMS提供内模式描述语言(内模式DDL,或者存储模式DDL)来严格地定义内模式,即定义所有内部记录类型,索引和文件的组织方式,以及所有数据控制方面的细节。
4.三级模式结构的两层映像与数据独立性
  • 数据库系统三级模式结构的三分模式分别是对数据的三级抽象,它们彼此间具有如下一些特点。
    • 一个数据库的整体逻辑结构和特征的描述(概念模式)是独立于数据库其他层次结构(内/外模式)的描述,其是数据库的核心,也是数据库设计的关键。
    • 一个数据库的内部存储模式依赖于概念模式,但存储模式独立于外部模式,也独立于具体的存储设备。
    • 用户逻辑结构(外模式)是在全局逻辑结构描述的基础上定义的,它面向具体的应用程序,独立于内部模式和存储设备。
    • 特定的应用程序是在外模式的逻辑结构上编写的,它依赖于特定的外模式,与数据库的模式和存储结构独立。
外模式/模式映像
  • 外模式/模式映像定义了各个外模式与概念模式之间的映像关系,这些映像定义通常在各自的外模式中加以描述。由于同一个模式可以有任意多个外模式,因此对于每一个外模式,数据库系统都会有一个外模式/模式映像。
  • 数据库系统的模式如若发生改变,如增加新的关系,新的属性,改变属性的数据类型等,数据库管理员(DBA)通常会对各个外模式/模式的映像做出相应的改变,以使那些对用户可见的外模式保持不变,如此实现了外模式不受概念模式变化的影响,并保证了数据与程序的逻辑独立性。
模式/内模式映像
  • 模式/内模式映像定义了数据库全局逻辑结构与物理存储之间的对应关系,这种映像定义通常是在模式中加以描述的。由于数据库中只有一个模式,且也只有一个内模式,所以模式/内模式映像是唯一的。
  • 数据库系统的物理存储如若发生改变,如选用另外一种存储结构或更换另外一个存储位置,数据库管理员(DBA)通常也会对模式/内模式映像做出相应的调整。以使数据库系统的模式保持不变,也不必修改应用程序,实现了概念模式不受内模式变换的影响,并保证了数据与程序的物理独立性。
数据库系统的运行与应用程序
  • 目前数据库系统常见的运行与应用结构有:客户/服务器结构,浏览器/服务器结构。
1.客户/服务器结构(C/S)
  • 在客户/服务器模式中,客户端和服务器可以同时工作在同一台计算机上,这种工作方式称为“单机方式”;也可以“网络方式”进行运行,即服务器被安装和部署在网络中某一台机器上,而客户端被安装和部署在网络中不同的一台或多台主机上。
2.浏览器/服务器结构(B/S)
  • 浏览器/服务器结构是一种基于Web应用的客户/服务器结构,也称为三层客户/服务器结构。

第四节 数据模型

一. 数据特征与数据模型组成要素

  • 数据具有静态和动态两种特征。
    • 静态特征包括数据的基本结构,数据间的联系以及对数据取值范围的约束。
    • 数据的动态特征是指对数据可以进行符合一定规则的操作。
  • 数据模型通常由数据结构,数据操作和数据约束三个要素组成。
    • 数据结构
      • 数据结构描述的是系统的静态特征,即数据对象的数据类型,内容,属性以及数据对象之间的联系。
    • 数据操作
      • 数据操作描述的是系统的动态特征,是对各种对象的实例允许执行的操作的集合,包括操作及有关的操作规则。
      • 数据操作主要分为更新和检索两大类。
    • 数据约束
      • 数据约束描述数据结构中数据间的语法和语义关联,包括相互制约与依存关系以及数据动态变化规则,以保证数据的正确性,有效性与相容性。
      • 数据约束包括数据完整性约束,数据安全性约束以及并发控制约束,数据约束既刻画了数据静态特征,也表示了数据动态行为规则。

二. 数据模型的分类

  • 数据模型应满足三方面的要求
    • 能比较真实地模拟现实世界
    • 容易为人们所理解
    • 便于在计算机上实现。
  • 数据模型是模型化数据和信息地工具,也是数据库系统的核心和基础。
  • 数据库模型主要分为两大类:概念层数据模型,逻辑层数据模型和物理层数据模型。
1. 概念层数据模型
  • 概念层是数据抽象级别的最高层,其目的是按用户的观点来对世界建模。概念层数据模型,也称为数据的概念模型(Conceptual Model)或信息模型,它用来描述现实世界的事物,与具体的计算机系统无关,且独立于任何DBMS,但容易向DBMS所支持的逻辑数据模型转换。这类模型主要用于数据库的设计阶段,即在设计数据库时,通常用概念模型来抽象,表示现实世界的各种事物及其联系。
1. 信息世界中的基本概念
  1. 实体Entity
    • 客观存在并可相互区别的事物称为实体。实体可以是实际的事物,也可以是抽象的概念或联系。如商品,学生,部门等都可以作为实体。
  2. 属性Attribute
    • 实体所具有的某种特性称为实体的属性。一个实体可以由多个属性来描述。如学生具有学号,姓名,性别,出生日期等特性,也就是说学生实体具有学号,姓名,性别,出生日期等属性。
  3. 码或键Key
    • 可唯一标识实体的属性集称为码或键。如学号是学生实体的码或键。
  4. Domain
    • 属性的取值范围称为该属性的域。如性别的域为(男,女)。
  5. 实体型Entity Type
    • 具有相同属性的实体必然具有共同的特征和性质。用实体名与属性名集合来抽象和刻画同类实体,称为实体型。如学生(学号,姓名,性别,出生日期)就是一个实体型。
  6. 实体集Entity Set
    • 同性实体的集合称为实体集。如每个学生就是一个实体,所有学生构成一个实体集。
  7. 联系Relationship
    • 在数据模型中有“”(type)和“”(value)两个不同的概念。“型”指的是对某一类数据的结构和属性的说明,而“值”是型的一个具体赋值。如,在客户档案中,客户信息定义为(姓名,性别,年龄,籍贯,所在城市,联系电话)这样的记录型,而(张三,男,26,北京,上海,13912345678)则是该记录型的一个记录值。
2. 概念模型的表示方法
  • 概念模型是对信息世界建模,概念模型的表示方法很多,最为常见的是P.P.S.Chen于1976年提出的实体-联系方法(Entity-Relationship approach)。该方法用E-R图来描述现实世界的概念模型。E-R图提供了表示信息世界中实体,属性和联系的方法。

    • 实体型,用矩形表示,矩形框内写明实体的名称。
    • 属性,用椭圆形表示,并用无向边将其与相应的实体连接起来。
    • 联系,用菱形表示,菱形框内写明联系的名称,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1,1:N或M:N),如果一个联系具有属性,则这些属性也要用无向边与该联系连接起来。

    在这里插入图片描述

2. 逻辑层数据模型
  • 逻辑层是数据抽象的中间层,描述数据整体的逻辑结构。这层的数据抽象称为逻辑层数据模型,也称为数据的逻辑模型(Logical Mode)。它是用户通过数据库管理系统看到的现实世界,是基于计算机系统的观点来对数据进行建模和表示。
  • 任何DBMS都是基于某种逻辑数据模型。其中,主要的逻辑数据模型有层次模型Hierarchical Model),网状模型Network Model),关系模型Relational Model),面向对象模型Object Oriented Model)等。
  1. 层次模型
    1. 层次模型是数据库系统最早使用的一种数据模型,它的数据结构是一颗“有向树”,树的每个结点对应一个记录集,也就是现实世界的实体集。层次模型的特点是:有且仅有一个结点没有父结点,它称作根结点;其他结点有且仅有一个父结点。
  2. 网状模型
    1. 网状模型以网状结构表示实体与实体之间的联系。网状模型是层次模型的拓展,允许结点有多于一个父结点,并可以有一个以上的结点没有父结点。现实世界中实体集之间的关系很复杂,网状模型可以方便地表示实体间各种类型地联系。
  3. 关系模型
    1. 关系模型是用二维结构来表示实体及实体间联系地模型,并以二维表格的形式组织数据库中的数据。有如下优点。
      1. 关系模型是建立在严格的数学概念的基础上的。
      2. 关系模型的概念单一,统一用关系来表示实体以及实体之间的联系,对数据的检索和更新结果同样也是用关系来表示。因而,关系模型的数据结构简单,清晰,用户易懂,易用。
      3. 关系模型的存取路径对用户透明,从而具有更高的数据独立性,更好的安全保密性,
    2. 支持关系模型的数据库管理系统称为关系型数据库管理系统。
  4. 面向对象模型
    1. 面向对象方法与数据库相结合所构成的数据模型称为面向对象模型
    2. 面向对象模型既是概念模型又是逻辑模型。
    3. 面向对象数据模型用面向对象观点来描述现实世界实体的逻辑组织,对象间的联系,其表达能力丰富,具有对象可复用,维护方便等优点,是正在发展的数据模型,也是数据库的发展方向之一。
3. 物理层数据模型
  • 物理层数据模型,也称为数据的物理模型Physical Model),其描述数据在存储介质上的组织结构,是逻辑模型的物理实现,即每种逻辑模型在实现时都有与其相对应的物理模型。
  • 物理模型是数据库最底层的抽象,它确定数据的物理存储结构,数据存取路径以及调整,优化数据库的性能。
  • 物理模型的设计目标是提高数据库性能和有效利用存储空间。
  • 物理数据结构一般都向用户屏蔽,用户不必了解其细节。
  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值