第一章 数据库系统的基本原理

1.1 数据库系统概述

1.1.2 数据库系统的概念

数据库的总目标就是使用户能有效且方便的管理和使用数据库数据。

1. 数据(Data)

数据是数据库存储的基本对象;描述现实世界中各种具体事务或抽象概念的、可存储并具有明确意义的符号记录。

2. 数据库(Database. DB)

数据库是长期存储在计算机内、有组织的、可共享的(1)大量数据的集合。数据库中的数据按一定的数据模型组织,描述和存储,具有(2)较小的冗余、(3)较高的数据独立性和(4)易扩展性

3. 数据库管理系统(Database Management System, DBMS)

数据库管理系统是数据库系统的核心;

它位于用户和操作系统之间的一层数据库管理软件;

它为用户或应用程序提供访问数据库的方法,包括数据库的(1)定义、(2)建立、(3)查询、(4)更新及各种数据控制等。

  • 数据定义语言

    DBMS提供了数据定义语言(Data Definition Language, DDL);

    通过它可以定义:(1)数据对象(包括表,视图,索引,存储过程等)(2)数据的完整约束 等

    ​ 数据的完整性约束主要有实体完整性参照完整性用户定义的完整性

  • 数据操纵语言

    DBMS提供了数据操纵语言(Data Manipulation Language,DML),用户可以通过它对数据库数据进行增加,删除,修改和查询操作,简称为“增删改查”;

  • 数据控制语言

    DBMS提供了数据控制语言(Data Control Language, DCL)

    (1)用户可以通过它完成对用户访问权限的授予和撤销,即安全性控制;

    (2)解决多用户对数据库的并发使用所产生的事务处理问题,即并发控制;

    (3)数据库的转储,恢复功能;

    (4)数据库的性能监视、分析功能;

  • 数据的组织、存储和管理

    DBMS要分类组织、存储和管理各种数据;确定以何种存储方式存储数据,以何种方法来提取存取效率;这些都要由DBMS来自动实现;

4. 数据库系统(DataBase System,DBS)

​ 数据库系统是指在计算机系统中引入数据库后的系统,一般由数据库(DB)、数据库管理系统、应用系统和数据库管理员构成;

5. 数据库应用系统(DataBase Application System,DBAS)

数据库应用系统主要是指实现业务逻辑的应用程序;

1.1.3 数据管理技术的发展阶段

数据管理技术的发展经历了人工管理、文件管理系统、数据库系统和高级数据库系统4个阶段。

1. 人工发展阶段

这阶段计算机主要用于科学计算。外存储器只有磁带、卡片和纸袋等;软件只有汇编语言;数据处理方式基本上是批处理。具有的特点:

1)数据不保存

2)数据不具有独立性(数据与程序没有解耦合)

3)数据不共享:数据是面向程序的;

4)只有程序的概念,没有文件的概念;

2. 文件管理系统阶段

这一阶段,计算机不仅仅用于科学计算,还用于信息管理。

也已经有了外存储器,可以进行长期保存。

软件方面有了操作系统进行文件管理;

数据处理方式不仅有批处理还有联机实时处理;

这个阶段,数据被存储在不同的文件中,程序开发人员需要编写不同的应用程序将记录从不同的文件中提取出来进行访问,或者将记录加入到相应的文件中。

文件管理系统阶段存储、组织信息的主要弊端如下:

1)数据的冗余和不一致

​ 相同信息可能在多个文件中重复存储,并且可能出些不一致的情况

2)数据独立性差

​ 数据与程序之间存在关联。通常是一个程序管理一份数据文件,而难以再扩充功能。

3)数据孤立

​ 这些数据分散在不同的文件中,文件又可能具有不同的格式,所以编写新应用程序检索多个文件中的数据是很困难的;

3. 数据库系统阶段

数据库系统的特点

  1. 数据结构化

    数据库系统中实现了整体数据的结构化,即不仅要考虑某个应用的数据结构,还要考虑整个组织的数据结构,而且数据之间时具有联系的;比如:学生数据的组织不仅仅只是面向教务处的学生选课系统,而是应该面向各个与学生相关的部门的不同应用;

  2. 数据的共享性高,冗余度低,易扩充

    数据库系统是从整体角度来看待和描述数据的,数据可以被多个用户、多个应用共享使用。

    数据共享可以大大减少数据冗余,节约存储空间,数据共享还可以避免数据之间的不一致性问题;

    并且数据是面向系统的,可以很容易的增加新应用。

  3. 数据独立性高

    数据独立性是指应用程序与数据库的数据结构之间相互独立,其包括物理独立性和逻辑独立性;

    物理独立性 指当数据的物理结构改变时尽量不影响整体逻辑结构应用程序

    逻辑独立性 指当数据的整体逻辑结构改变时尽量不影响应用程序,这样就认为数据库达到了逻辑独立性;

    数据和程序的独立把数据的定义从程序中分离出来,加上存取数据的方法由DBMS负责提供;

  4. 数据由DBMS统一管理和控制

    数据库中数据的共享使得DBMS必须提供以下数据控制功能

    • 数据的完整性检查:数据的完整性指数据的正确性有效性相容性。把数据控制在有效的范围内,保证数据之间满足一定的关系;
    • 并发控制:多个用户同时操作数据时可能会相互干扰而得到错误结果;因此对多用户的并发擦破做加以控制和协调。
    • 数据的安全性保护:数据库安全性是防止不合法的使用造成数据的泄露和破坏,使每个用户只能按规定对某些数据以某些方式进行使用和处理;
    • 数据库的恢复:DBMS提供了数据的备份和恢复功能,可将数据库从错误状态恢复到某一已知的正确状态;

1.1.4 数据库系统的用户

1. 数据库管理员(Database Administrator,DBA)

职责如下:

  1. 参与数据库的设计

  2. 定义数据的安全性要求和完整性约束条件

  3. 日常维护

    • 定期备份数据库
    • 监视数据库运行
    • 确保正常运行所需的空余磁盘空间,并且需要时升级磁盘空间;
  4. 数据库的改进和重组、重构

    • 监视系统与性期间的各个性能指标,对运行情况进行记录、统计分析,不断改进数据库设计
    • 数据库运行过程中,大量数据不断插入、删除和修改,时间一长,会影响系统的性能。因此DBA要定期对数据库进行重组,以提高系统性能;
    • 当用户需求增加或改变时,要对数据库进行较大改造,包括修改部分设计,即进行数据库的重构;

2. 数据库用户

根据工作性质及人员的技能把数据库用户分为四类:

  1. 最终用户
  2. 专业用户
  3. 系统分析员和数据库设计人员
  4. 应用程序员

1.2 数据模型

在数据库技术中,用数据模型的概念来描述数据库的结构和语义,对现实世界的数据进行抽象;

1.2.1 数据抽象过程

根据数据抽象的级别定义了4种模型,即概念模型逻辑模型外部模型内部模型

概念模型 是表达用户需求观点的数据库全局逻辑结构的模型;

逻辑模型 是表达计算机实现观点的数据库全局逻辑结构的模型;

外部模型 是表达用户使用观点的数据库局部逻辑结构的模型;

内部模型 是表达数据库物理结构的模型

数据库系统的基本概念(第一章)-----数据抽象的级别

数据抽象的过程即数据库设计的过程:

step - 1:根据用户需求设计数据库的概念模型,这是”综合“的过程;

step - 2:根据转换规则把概念模型转换成数据库的逻辑模型,这是一个”转换“的过程;

step - 3:根据用户的业务特点设计不同的外部模型,给应用程序使用。

step - 4:实现数据库式,要根据逻辑模型设计其内部模型;

1. 概念模型

抽象的最高级别;

概念模型的特点:

  1. 概念模型表达了数据库的整体逻辑结构,是实体管理人员面对实体的全面描述;
  2. 概念模型是从用户需求的观点出发对数据建模;
  3. 概念模型独立于软件和硬件;
  4. 概念模型是数据库设计人员和用户之间进行交流的工具

概念模型主要采用的是 实体-联系模型,即E-R模型

实体是客观世界可以相互区别的对象,这种对象可以是具体的,也可以是抽象的;

联系是两个或多个实体之间的关联。两个实体之间的联系可以分为三种:一对一(1:1),一对多(1:n),多对多(n:m);

2. 逻辑模型

选定DBMS后,就要将概念模型按照选定的DBMS的特点转换成逻辑模型;

逻辑模型的特点:

  1. 逻辑模型表达了数据库的整体逻辑结构,是设计人员面对实体数据库的全面描述;
  2. 逻辑模型是从数据库实现的观点出发对数据建模;
  3. 逻辑模型硬件独立,但软件依赖;

  4. 逻辑模型是数据库设计人员和应用程序员之进行交流的工具;

逻辑模型有三种:层次模型网状模型关系模型

层次模型的数据结构是树状结构;

网状模型的数据结构是有向图;

关系模型采用二维表格存储数据;

3. 外部模型

根据不同业务特点,可以分别设计不同的外部模型;

外部模型的特点

  1. 外部模型是逻辑模型的一个逻辑子集;
  2. 硬件独立,软件依赖;
  3. 外部模型反映了用户使用数据库的特点;

从整个系统考查,外部模型具有下列特点:

  1. 简化了用户的观点;外部模型是根据应用需要设计的,无关数据不放入,使用户更为简便的使用数据库;
  2. 有助于数据库的安全保护;无关数据不会放入,保证了数据安全;
  3. 外部模型是对概念模型的支持;

4. 内部模型

内部模型又称为物理模型,是数据库最底层的抽象,它描述数据在磁盘上的存储方式、存取设备和存取方式。

内部模型是与硬件和软件紧密相连的。但目前的计算机系统的发展使得人们不必考虑内部级的设计细节,由系统自动实现;

1.2.2 关系模型

1. 数据模型的三要素

数据模型是数据库概念的核心和基础,精确的描述了系统的静态特性、动态特性和完整性约束条件;

数据模型通常由数据结构数据操作数据完整性约束3个部分组成;

  1. 数据结构

    常见的数据模型有层次模型网状模型关系模型,关系模型占统治地位;

    数据结构是所描述的对象类型的集合,是对系统静态特性的描述;

  2. 数据操作

    是对数据库表中记录的值允许执行的操作集合,包括操作及有关的操作规则。

    数据库对数据操作主要有增删改查4种操作;数据模型必须定义这些操作的含义,符号,操作规则及实现语言;

    数据操作是对系统动态特性的描述;

  3. 数据的完整性约束

    完整性规则是给定的数据模型种数据及其联系所具有的制约和依存规则,用于限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容;

    在关系模型中,任何关系都必须满足实体完整性和参照完整性;

2. 关系数据模型的数据结构

关系模型中的一些术语:

  1. 关系(Relation)

    一个关系就是一张规范的二维表;一个规范化的关系必须满足的最基本的一条是关系的每一列不可再分;

  2. 元组(Tuple)

    表中的一行即为一个元组;

  3. 属性(Attribute)

    表中的一列即为一个属性;

  4. 码(Key)

    码也称为关键字或关键码;

    表中的某个属性或者属性的组合能唯一的确定一个元组,那么这个属性或者属性的组合就成为码;

    在一个关系中可以有多个码;

  5. 关系模式

    对关系的描述一般表示为:

    关系名(属性1,属性2,属性3,… ,属性n)

3. 关系数据模型的操作与完整性约束

关系数据模型的操作主要包括查询、插入、删除和更新数据。这些操作必须满足关系的完整性约束条件;

1.3 数据库体系结构

数据库系统的设计目标是允许用户逻辑地处理数据,而不涉及数据在计算机内部的存储,在数据组织和用户应用之间提供某种程度的独立性;

1.3.1 数据库系统的三级结构

数据库技术丛书:SQ

数据库分为3个抽象级,用户级,概念级和物理级;

1. 用户级数据库

用户级对应于外模式,是用户看到和使用的数据库;

2. 概念级数据库

概念级数据库对应于概念模式。介于用户级和物理级之间,是数据库管理员看到和管理的数据库,又称为DBA视图;

概念级模式把用户视图有机地结合成一个整体,综合、平衡考虑所有用户要求,实现数据的一致性,最大限度地降低数据冗余,准确反映数据之间的联系;

3. 物理级数据库

物理级数据库对应用内模式,是数据库的底层表示,是描述数据的实际存储组织,是最接近物理存储的级,又称为内部视图;

物理级数据库由内部记录组成,物理级数据库不是真正的物理存储,而是最接近物理存储的级;

1.3.2 数据库系统的三级模式

数据库系统包括三级模式,即概念模式、外模式和内模式;

1. 概念模式

概念模式又称为模式或逻辑模式,是数据库中全体数据的逻辑结构和特征的描述,是所有用户的公共数据视图;

一个数据库仅有一个概念模式;

定义概念模式时,不仅要定义数据的逻辑结构(数据记录的数据项,数据项名字,类型,取值范围等),而且还要定义数据之间的联系,定义与数据有关的安全性、完整性要求

2. 外模式

外模式又称为子模式或用户模式,是数据库用户能看到和使用局部数据的逻辑结构和特征的描述,是数据库用户的数据视图;

他与某一应用有关的数据的逻辑表示;

一个数据库可以有多个外模式;

外模式主要描述用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件;

3. 内模式

内模式又称为存储模式或物理模式,是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式。

一个数据库只有一个内模式;

内模式定义的是 存储记录的类型、存储域的表示、存储记录的物理顺序、 索引和存储路径等数据的存储组织;

1.3.3 数据库系统的二级映射和数据独立性

1. 数据库系统的二级映射

二级映射是:外模式/概念模式映射概念模式/内模式映射

三个抽象级通过二级映射相互转换。

2. 数据独立性

数据独立性是指应用程序和数据之间的独立性;包括物理独立性和逻辑独立性;

  1. 数据独立性

    物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是独立的。通过概念模式/内模式映射来实现;

    当数据库存储结构改变时,由DBA对模式/内模式映射作相应的改变,可以使概念模式保持不变;

  2. 逻辑独立性

    逻辑独立性是指用户的应用程序与逻辑结构是相互独立的。逻辑独立性是通过外模式/概念模式映射来实现的;

    当概念模式改变时,由DBA对外模式/概念模式映射作相应改变,可使外模式保持不变;