数据库系统概论 第一章 绪论

1.1 数据库系统概论

1.1.1 数据库的 4 个基本概念

  • 数据(Data)

    • 数据库中存储的基本对象
    • 定义:描述事物的符号记录
    • 特点:与语义不可分
  • 数据库(Database)

    • 长期储存在计算机内、有组织的、可共享的大量数据的集合
    • 基本特征
      • 数据按一定的数据模型组织、描述和储存
      • 可为各种用户共享
      • 冗余度较小
      • 数据独立性较高
      • 易扩展
  • 数据库管理系统(DBMS)

    • 位于用户与操作系统之间的一层数据管理软件
    • 用途:科学地组织和存储数据、高效地获取和维护数据
    • 主要功能
      • 数据定义功能
      • 数据组织、存储和管理
      • 数据操作功能
      • 数据库的事务管理和运行管理
      • 数据库的建立和维护功能
      • 其他功能
  • 数据库系统(DBS)

    • 在计算机系统引入数据库后的系统构成

    • 数据库系统的构成

      • 数据库
      • 数据库管理系统(及其开发工具)
      • 应用系统
      • 数据库管理员

1.1.2 数据管理技术的产生和发展

  • 数据管理

    • 对数据进行分类、组织、编码、存储、检索和维护
    • 数据管理是数据处理的中心问题
  • 数据管理技术的发展过程

    • 人工管理阶段(20世纪40年代中—50年代中)
    • 文件系统阶段(20世纪50年代末—60年代中)
    • 数据库系统阶段(20世纪60年代末—现在)

1.1.3 数据库系统的特点

数据结构化
  • 整体数据的结构化是数据库的主要特征之一
  • 整体结构化
    • 不再仅仅针对某一个应用,而是面向全组织
    • 不仅数据内部结构化,整体是结构化的,数据之间具有联系
  • 数据库中实现的是数据的真正结构化
    • 数据的结构用数据模型描述,无需程序定义和解释
    • 数据可以变长
    • 数据的最小存取单位是数据项
数据的共享性高,冗余度低,易扩充
  • 数据库系统从整体角度看待和描述数据,数据面向整个系统,可以被多个用户、多个应用共享使用。
  • 数据共享的好处
    • 减少数据冗余,节约存储空间
    • 避免数据之间的不相容性与不一致性
    • 使系统易于扩充
数据独立性高
  • 物理独立性
    • 指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。当数据的物理存储改变了,应用程序不用改变。
  • 逻辑独立性
    • 指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,用户程序也可以不变。
  • 数据独立性是由DBMS的二级映像功能来保证的
数据由DBMS统一管理和控制
  • 数据的安全性(Security)保护
  • 数据的完整性(Integrity)检查
  • 并发(Concurrency)控制
  • 数据库恢复(Recovery)

1.2 数据模型

1.2.1 两类数据模型

三方面要求:能比较真实地模拟现实世界,容易为人所理解,便在计算机上实现。

  • 概念模型

    信息模型,按用户的观点来对数据和信息建模,用于数据库设计。

  • 逻辑模型和物理模型

    • 逻辑模型

      主要包括网状模型、层次模型、关系模型、面向对象模型等,按计算机系统的观点对数据建模,用于DBMS实现。

    • 物理模型

      对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。

客观对象的抽象过程——两步抽象

  • 现实世界中的客观对象抽象为概念模型;
  • 把概念模型转换为某一DBMS支持的数据模型。

1.2.2 数据模型的组成要素

  • 数据结构
    • 描述数据库的组成对象,以及对象之间的联系
    • 是对系统静态特性的描述
  • 数据操作
    • 对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则
    • 增删查改
    • 是对系统动态特性的描述
  • 完整性约束条件
    • 一组完整性规则的集合。
    • 完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则
    • 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
    • 数据模型反映和规定本数据模型必须遵守的基本的通用的完整性约束条件。
    • 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。

1.2.3 概念模型

  • 信息世界中的基本概念

    • 实体(Entity):客观存在并可相互区别的事物称为实体。
    • 属性(Attribute):实体所具有的某一特性称为属性。
    • 码(Key):唯一标识实体的属性集称为码。
    • 域(Domain):属性的取值范围称为该属性的域。
    • 实体型(Entity Type):用实体名及其属性名集合来抽象和刻画同类实体称为实体型。
    • 实体集(Entity Set):同一类型实体的集合称为实体集
    • 联系(relationship): 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系。
  • 两个实体型之间的联系

    • 一对一联系:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1。
    • 一对多联系:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n。
    • 多对多联系:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n。

  • 两个以上实体型之间的联系

    • 若实体型E1,E2,...,En存在联系,对于实体型Ej(j=1,2,...,i-1,i+1,...,n)中的给定实体,最多只和Ei中的一个实体相联系,则我们说Ei与E1,E2,...,Ei-1,Ei+1,...,En之间的联系是一对多的。
    • 同理,一对一的,多对多的。

  • 单个实体型内的联系

    • 单个实体集内的各实体亦存在这样的联系。职工实体型内部具有领导与被领导的联系某一职工(干部)“领导”若干名职工,一个职工仅被另外一个职工直接领导,这是一对多的联系。
  • 概念模型的一种表示方法——实体——联系方法(E-R方法)

    实体型:矩形表示

    属性:椭圆形表示,无向边与对应的实体连接

    联系:菱形表示,无向边连接有关实体,无向边上标上联系的类型

    联系的属性:联系本身也是实体型,用无向边与该联系连接起来

    例子:

1.2.4 常用的数据模型

  • 层次模型(非关系模型)
  • 网状模型(非关系模型)
  • 关系模型
  • 面向对象模型
  • 对象关系模型

1.2.5 层次模型

定义:有且只有一个结点没有双亲结点,这个节点称为根节点,根以外的其他节点有且只有一个双亲结点。

优点:

  • 层次模型的数据结构比较简单清晰
  • 层次数据库的查询效率高

缺点:

  • 现实世界很多联系是非层次性的
  • 一个结点具有多个双亲,层次模型表示这类联系的方法很笨拙
  • 查询子女结点必须通过双亲结点
  • 层次命令趋于程序化

1.2.6 网状模型

定义:允许一个以上的结点无双亲;一个结点可以有多于一个的双亲。

优点:

  • 更为直接地描述现实世界
  • 性能良好,存取效率较高

缺点:

  • 结构比较复杂,不利于用户掌握
  • 网状摩西那个的 DDL、DML复杂,不容易使用

1.2.7 关系模型

数据模型的数据结构

  • 关系(Relation):一个关系通常对应一张表
  • 元组(Tuple):一行即一个元组
  • 属性(Attribute):一列即一个属性
  • 码(Key):表中某个属性组,可以唯一确定一个元组
  • 域(Domain):属性的取值范围
  • 分量:元组中的一个属性值
  • 关系模式:对关系的描述,一般表示为 关系名(属性1,属性2,…,属性n)
    • 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表

优点:

  • 建立在严格的数学概念的基础上
  • 概念单一,实体和各类联系,对数据的检索结果都是关系
  • 存取路径对用户透明,具有更高的数据独立性,更好的安全保密性,简化了程序员的工作和数据库开发建立的工作

缺点:

  • 存取路径对用户透明导致查询效率往往不如非关系数据模型
  • 为提高性能,必须对用户的查询请求进行优化增加了开发 DBMS 的难度

1.3 数据库系统的结构

1.3.1 数据库系统模式的概念

  • 型(Type):对某一类数据的结构和属性的说明
  • 值(Value):是型的一个具体赋值
  • 模式(Schema):数据库逻辑结构和特征的描述,相对稳定的
  • 实例(Instance):模式的一个具体值,同一模式有多个实例

1.3.2 数据库系统的三级模式结构

模式(Schema)

  • 逻辑模式,数据库中全体数据的逻辑结构和特征的描述,所有用户的公共数据视图
  • 一个数据库只有一个模式
  • 地位:数据库系统模式结构的中间层
  • 定义一个模式:数据的逻辑结构、数据之间的联系、数据有关的完整性安全性要求

外模式(External Schema)

  • 子模式,用户模式
  • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
  • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
  • 模式与外模式的关系:一对多

    • 外模式通常是模式的子集
  • 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
    • 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不同
  • 外模式与应用的关系:一对多
  • 同一外模式也可以为某一用户的多个应用系统所使用
    • 但一个应用程序只能使用一个外模式
  • 用途:保证数据库安全性,每个用户只能看见和访问所对应的外模式中的数据

内模式(Internal Schema)

  • 存储模式
  • 是数据物理结构和存储方式的描述,是数据在数据库内部的表示方式
  • 一个数据库只有一个内模式

1.3.3 数据库的二级映像功能与数据独立性

三级模式是对数据的三个抽象级别,二级映像在 DBMS 内部实现这三个抽象层次的联系和转换

  • 外模式 / 模式映像
    • 模式:数据的全局逻辑结构
    • 外模式:数据
  • 模式 / 内模式映像

1.4 数据库系统的组成

  • 数据库
  • 数据库管理系统 (及其开发工具)
  • 应用系统
  • 数据库管理员

Comments

Your browser is out-of-date!

Update your browser to view this website correctly. Update my browser now

×