database-theory-1

database-theory-1

Charles Lv7

概论

前言

  • 数据数据是描述现实世界中的各种事物的可以识别的符号

    • 数据只有被加工成信息,才具有使用价值。
  • 信息

    • 信息是一种已经被加工为特定形式的数据,这些数据对现在与将来的决策有明显价值;

    • 信息是各种数据所包括的意义;数据是信息的载体,是信息的具体表现形式。

  • 数据处理:从大量原始数据中抽取和推导出有价值信息的加工过程称为数据处理,包括过程:数据收集、组织、存储、加工、分类、检索、输出、传输等操作

  • 数据管理:数据处理一般性的基本操作,如数据收集、组织、存储、分类、检索、传输等称为数据管理,并研究专门的技术——数据管理技术

  • 数据库技术是按照某种数据结构对数据进行组织,将数据存储在计算机的二级存储中,并可以提供数据共享操作的数据管理技术。

  • 数据库系统:建立在数据库管理系统(DBMS)之上,以满足实际应用需求的数据管理(组织、存储、使用)为主要功能的计算机软件系统。

数据管理技术的发展

人工管理阶段

  • 时间:20世纪50年代中期以前

  • 背景:

    • 外存只有磁带、卡片、纸带等,没有磁盘等直接存取设备。

    • 没有操作系统,没有数据管理软件(用户用机器指令编码)。

    • 计算机主要用于科学计算。

  • 特点:

    • 数据不在计算机上保存;

    • 没有软件系统对数据进行管理。程序规定数据的逻辑结构与物理结构。数据与程序不具有独立性;

    • 基本没有文件概念,数据组织方式必须由程序员自行设计;

    • 一组数据对应一个程序,数据是面向应用的,程序间不能共享数据。

文件系统阶段

  • 时间:20世纪50年代后期到60年代中期

  • 背景:

    • 外存有了磁盘、磁鼓等直接存取设备;

    • 有了专门管理数据的软件,一般称为文件系统,包括在操作系统中;

    • 计算机不但用于科学计算,还用于管理。

  • 特点:

    • 数据以文件形式保留在外存上;

    • 文件多样化;

    • 数据的存取基本上以记录为单位;

    • 程序和数据有一定的独立性;

    • 缺点:

      • 数据冗余度大:浪费空间并易造成数据的不一致性。

      • 数据和程序缺乏独立性(逻辑独立性)

文件系统是不具弹性的无结构的数据集合,数据之间是孤立的,不能反映现实世界事物之间的内在联系。

数据库系统阶段

  • 时间:20世纪60年代后期开始

  • 背景:

    • 外存有了大容量磁盘,光盘;

    • 计算机管理的数据量大,关系复杂,共享性要求强(多种应用、不同语言共享数据)

    • 软件价格上升,硬件价格下降,编制和维护软件及应用程序成本相对增加,其中维护的成本更高。

  • 特点:

    • 面向全组织的复杂的数据结构

      • 在描述数据时,不仅描述数据本身,还要描述数据之间的联系,使整个组织的数据结构化
    • 数据冗余度小,易扩充

      • 数据库从整体观点描述数据。数据不再面向某个应用,而是面向整个系统,从而大大减小数据的冗余度;

      • 数据库数据的应用可以有很灵活的方式,可以取整体数据的各种合理子集用于不同的应用系统,并可以根据应用需求的变化,重新选取不同子集。

    • 具有较高的数据和程序的独立性

      • 数据独立性

        • 数据的物理独立性:数据的存储结构(物理结构)改变时,数据的逻辑结构可以不变,从而应用程序也不必改变;

        • 数据的逻辑独立性:数据的逻辑结构改变时,应用程序可以不变;

    • 统一的数据控制功能

      • 数据的安全性控制

        • 保护数据以防止不合法的使用所造成数据的泄密和破坏。
      • 数据的完整性控制

        • 指数据的正确性与相容性。
      • 并发控制

        • 对多用户的并发操作进行控制、协调,保护数据的完整性。
      • 数据库恢复

        • 将数据库从错误状态恢复到某一已知的正确状态
    • 数据的最小存取单位是数据项

      • 既可以存取一个或一组记录,也可以数据库中某个或一组数据项。

数据库系统的组成

  • 数据库——数据库系统中集中存储的一批数据的集合。数据库中存储的数据是“集成的”和“共享的”

    • “集成的”是指把特定应用环境中各种应用相关的数据及数据之间的联系全部地、集中地并按照一定结构形式进行存储。

    • “共享的”是指数据库中的数据可为多个不同的用户所共享。

  • 用户——指存储、维护和检索数据的各类请求。主要有三类用户:终端用户、应用程序员和数据库管理员。

    • 终端用户:使用终端命令语言,通过交互式对话方式存取数据;或通过应用系统的界面使用数据库

    • 应用程序员:通过设计、编写使用及维护数据库的应用程序存取数据;

    • 数据库管理员:全面负责数据库系统的管理、维护和正常使用的人员。

  • 软件——指负责数据库存取、维护和管理的软件系统。包括数据库管理系统DBMS,各种应用系统。DBMS是数据库系统的核心软件,在操作系统支持下工作;

  • 硬件——指存储数据库和运行DBMS的硬件资源,包括计算机的内存和外存等。

数据模型

  • 数据模型用来抽象和表示现实世界中的数据和信息。

  • 在数据库中,根据模型应用的不同目的,将模型分为两类或两个层次:

    • 概念模型(也称信息模型):概念模型用于信息世界建模,是现实世界到信息世界的抽象,是用户和数据库设计人员进行交流的语言。

    • 数据模型(如层次、网状、关系模型):数据模型用于机器世界,按计算机系统的观点对数据建模。

概念模型

概念模型基于信息世界的主要概念,表达应用中的各种语义(信息)。具有较强的语义表达能力,能够方便、直接表达应用中的各种语义。 概念模型应该简单、清晰、易于理解。

  • 概念模型最常用的表示方法:实体—联系方法(E-R)法。

  • 概念模型中的基本概念:

    • 实体(Entity):客观存在并可相互区分的事物;

    • 属性(Attribute):实体所具有的某一特性;

    • 码(Key):唯一标识实体的属性集;

    • 域(Domain):某个(些)属性的取值范围;

    • 实体型(Entity Type):表示一类实体,用实体名及其属性名集合来抽象、刻画;

    • 联系(Relation):实体型之间的联系,是实体之间的相互关联。

数据模型

数据模型是严格定义的概念集合。这些概念精确地描述系统中数据的静态特性、动态特性和完整性约束。

  • 数据模型的三要素:

    • 数据结构

    • 数据操作

    • 完整性约束

数据结构
  • 数据结构由描述数据对象以及对象之间联系的一组概念组成。包括:

    • 描述对象的类型、内容、性质的概念,如关系模型中的域、属性等;

    • 描述对象之间联系的概念,如关系模型中的关系。

  • 数据结构是数据模型静态特性的描述。

  • 数据结构是刻画数据模型最重要的方面。通常按照数据结构的类型来命名数据模型。

数据操作
  • 是对数据库中各种数据对象(型)的实例(值)允许执行的操作集合,包括操作及操作规则。

  • 定义操作的确切含义、操作符号、操作规则及操作语言。

  • 是数据模型的动态特性的描述。

  • 数据库主要有检索和更新(插、删、改)两大类操作。

数据的约束条件
  • 是完整性规则的集合。完整性规则是给定的数据模型中数据及其联系所有的制约和依存规则,用以保证数据的正确、相容。

  • 完整约束条件包括:

    • 符合这种数据模型所必须遵守的基本的通用的完整性约束条件;

    • 针对具体数据的特定语义约束条件。

数据模型的分类

  • 当前公认的基本数据模型有三类:层次模型、网状模型、关系模型。

  • 各种数据模型之间的根本区别在于数据之间联系的表示方式不同:

    • 层次模型:用“树结构”表示数据之间的联系;

    • 网状模型:用“图结构”表示数据之间的联系

    • 关系模型:用“二维表”表示数据之间的联系

层次模型

  • 是数据库系统中最早出现的数据模型。

  • 数据结构是有向树。节点代表实体型,连线表示两实体型间的一对多联系。

  • 特征:

    • 有且仅有一个结点没有双亲;

    • 其它结点有且仅有一个双亲。

  • 优点:

    • 结构简单,易于实现。
  • 缺点:

    • 支持的联系种类太少,只能直接表示二元一对多联系。

    • 数据操纵不方便,子结点的存取只能通过父结点来进行。

  • 代表产品:

    • IBM的IMS数据库,1968年研制成功。

网状模型

  • 数据结构是有向图。节点代表实体型,连线表示两实体型间的一对多联系。

  • 特征:

    • 可有一个以上的结点没有双亲;

    • 至少有一个结点有多于一个的双亲。

  • 特点:

    • 表达的联系种类丰富。

    • 结构复杂。

关系模型

  • 用二维表格结构(关系)表示实体及实体之间的联系。

  • 特点

    • 用关系描述实体及实体间的联系。这种描述一致性使数据结构大大简化,概念简单。

    • 可直接表示多对多联系。

    • 关系必须是规范化关系。即每个分量是不可分的数据项,或不许表中套表。

    • 关系模型是建立在数学概念基础上,有较强的理论基础。

数据库系统的结构

  • 数据库系统体系结构上具有三级模式、两级映像的结构特征。

    • 模式

    • 外模式

    • 内模式

    • 两级映象

  • DBMS和DBA

模式

  • 也称为逻辑模式、概念模式,是数据库中全体数据的逻辑结构和特性的描述。是所有用户的公共数据视图。

  • 是三级模式的核心。不涉及数据物理存储细节,与具体的应用程序与编程语言无关。

  • 具体定义数据的逻辑结构(数据记录结构、数据之间的联系)、数据安全性、完整性要求。

  • 数据库系统提供模式描述语言(模式DDL,Data Description Language )进行模式定义。用模式DDL写出的一个数据库逻辑定义的全部语句,称为某个数据库的模式。

外模式

  • 也称为子模式或用户模式。是个别用户的数据视图,即与某一应用有关的数据的逻辑表示。

  • 通常是模式的子集。不同应用的外模式可以相互覆盖,一个应用只能启用一个外模式。

  • 数据库系统提供外模式描述语言(外模式DDL)定义外模式。外模式DDL和用户选用的程序设计语言具有相容的语法。

内模式

  • 也称为存储模式,是数据在数据库系统内部的表示,即对数据的物理结构和存储方式的描述。

  • 内模式通常用内模式数据描述语言(内模式DDL)来描述和定义。

两级映象

  • 外模式/模式映象定义某个外模式与模式之间的对应关系。当模式改变时,外模式/模式映象做相应改变,可以保证外模式不变。——数据的逻辑独立性

  • 模式/内模式映象定义数据逻辑结构与存储结构之间的对应关系。当内模式改变时,模式/内模式映象做相应修改,使得模式保持不变。——数据的物理独立性

数据库系统三级模式结构优点

  • 保证数据的独立性

    • 模式与内模式分开——数据物理独立性

    • 外模式与模式分开——数据逻辑独立性

  • 简化用户接口,方便用户使用

    • 用户只按照外模式操作,无需了解数据库的总体逻辑结构与物理存储结构。
  • 有利于数据共享

    • 从模式产生不同的外模式,外模式间可相互覆盖。
  • 有利于数据的安全保密

    • 应用程序只能操作其对应的外模式

DBMS

主要功能
  • 数据库定义功能

    • 提供DDL语言描述外模式、模式、内模式(源模式)。

    • 模式翻译程序把源模式翻译成目标模式,存入数据字典中。

  • 数据存取功能

    • 提供DML语言(Data manipulationlanguage)对数据库进行检索、插入、修改、删除。
  • 数据库运行管理

    • 并发控制、存取控制、完整性约束条件检查和执行,日志组织和管理,事务管理和自动恢复。
  • 数据组织、存储和管理

    • 用户数据、索引、数据字典的组织、存储和管理,包括文件结构、存取方式、数据之间联系的实现等。
  • 数据库的建立和维护功能

    • 数据的装入、转换,数据库的转储、恢复、性能监视和分析等。组成
  • 语言编译处理程序

  • 系统运行控制程序

    • 包括系统总控、存取控制、并发控制、完整性控制、保密性控制、数据存取和更新、通信控制等程序。
  • 系统建立和维护程序

    • 数据装入、数据库系统恢复、性能监督、工作日志等程序。
  • 数据字典

    • 也称为数据目录或系统目录,由一系列表组成,存储着数据库中有关信息的当前描述,包括数据库的三级模式、用户名表、用户权限等信息。

DBA

  • 建库方面:

    • 确定模式、外模式、存储结构、存取策略、负责数据的整理和装入。
  • 用库方面:

    • 定义完整性约束条件,规定数据的保密级别、用户权限,监督和控制数据库的运行情况,制定后援和恢复策略,负责故障恢复。
  • 改进方面:

    • 监督分析系统的性能(空间利用率,处理效率);

    • 数据库重组织,物理上重组织,以提高性能;

    • 数据库重构造,设计上较大改动,模式和内模式修改。

数据库技术的发展

  • 第一代数据库系统

    • 60年代末的层次和网状数据库系统。

    • 代表:1968年IBM研制的IMS。

    • 60年代末,70年代初CODASYL给出的DBTG报告。

  • 第二代数据库系统

    • 1970年IBM San Jose实验室研究E.F.Codd提出关系模型

    • 代表:IBM开发的System R和加州大学Berkley分校开发的INGRES。

  • 第三代数据库系统

    • 面向对象数据库

    • 数据库技术与其他学科的内容相互结合

    • 面向应用领域的数据库技术研究

  • Title: database-theory-1
  • Author: Charles
  • Created at : 2023-07-19 08:00:45
  • Updated at : 2023-09-21 11:05:07
  • Link: https://charles2530.github.io/2023/07/19/database-theory-1/
  • License: This work is licensed under CC BY-NC-SA 4.0.
Comments