0%

IntroductionToDatabaseSystems-Introduction

课上学习的关于数据库系统的一些基本知识

第一章-绪论

数据库系统概述

数据库的基本概念

  1. 数据(Data)

    • 数据 (Data)是数据库中存储的基本对象

    • 数据的定义
      是描述事物的符号记录,是可识别的、抽象的符号

    • 数据的种类

      三大类:结构化、半结构化和非结构化

      • 结构化数据
        是指可以使用关系型数据库表示和存储,表现为规范的二维表格形式的数据。
      • 半结构化数据
        是结构化数据的一种形式,并不符合关系数据模型结构,但包含相关标记用来分隔语义元素,并对记录和字段进行分层。
      • 非结构化数据
        是没有固定结构的数据。各种文档、图片、视频/音频等都属于非结构化数据。
    • 信息:

      • 是具有时效性的,有一定含义的,有逻辑的、经过加工处理的对决策有价值的数据流
      • 信息 = 数据 + 处理
      • 信息与数据的联系
        • 数据是信息的符号表示,或称载体
        • 信息是数据的内涵,是数据的语义解释
        • 数据是符号化的信息
        • 信息是语义化的数据
  2. 数据库(Database)

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

    • 概念
      • 位于用户与操作系统之间的一层数据管理软件
      • 帮助用户定义、创建、维护和控制数据库访问的软件系统
      • 是基础软件,是一个大型复杂的软件系统
    • 用途
      • 科学地组织和存储数据(自动管理)
      • 高效地获取和维护数据(提供工具和接口)
    • 主要功能
      • 数据定义功能
        • 提供数据定义语言(DDL)
        • 定义数据库中的数据对象
      • 数据组织、存储和管理
        • 分类组织、存储和管理各种数据
        • 确定组织数据的文件结构和存取方式
        • 实现数据之间的联系
        • 提供多种存取方法提高存取效率
      • 数据操纵功能
        • 提供数据操纵语言(DML)
        • 实现对数据库的基本操作:增、删、改、查
      • 数据库的事务管理和运行管理
        • 数据库在建立、运行和维护时,由DBMS统一管理和控制
        • 保证数据的安全性、完整性;支持多用户对数据的并发使用
        • 发生故障后的系统数据恢复(自动、手动)
      • 数据库的建立和维护功能
        • 数据库初始化:初始数据的装载和转换
        • 数据库备份、转储、恢复功能
        • 数据库的重组织
        • 性能监视、分析等
      • 其它功能
        • 数据库管理系统与网络中其它软件系统的通信
        • 数据库管理系统之间的数据转换
        • 异构数据库之间的互访和互操作
  4. 数据库系统(DBS)

    • 构成

      • 数据库(Database)
        • 底层的数据文件、文件结构和存取方式
        • 数据字典:数据库结构/模式描述
      • 数据库管理系统(DBMS及其应用开发工具)
      • 应用程序(Application)
      • 数据库管理员(DBA)

      如图:

      componentofDBS

    • 特点

      • 数据结构化
        • 数据的整体结构化是数据库的主要特征之一
        • 数据用数据模型描述,无需应用程序定义
      • 数据的共享性高,冗余度低且易扩充
        • 数据面向整个系统,可以被多个用户、多个应用共享使用
        • 数据共享的好处
          • 减少数据几余,节约存储空间
          • 避免数据之间的不相容性与不一致性
          • 系统容易扩充,方便应用之间互联互通
      • 数据独立性高
        • 物理独立性
          • 应用程序与数据库中数据的物理存储是相互独立的,应用程序不需要关心具体的物理数据结构和存储
          • 当数据的物理存储改变了,应用程序不用改变
        • 逻辑独立性
          • 应用程序与数据库的逻辑结构是相互独立的
          • 当数据的逻辑结构改变了,应用程序不用改变(在某些条件下成立,很多时候应用程序需要改变)
        • 数据独立性由DBMS的二级映像功能保证
      • 数据由DBMS统一管理和控制
        • 数据的安全性 (Security) 保护
          • 保护数据以防止不合法的使用造成的数据泄密和破坏
        • 数据的完整性 (Integrity) 检查
          • 保证数据的正确性、有效性和相容性
        • 并发(Concurrency) 控制
          • 对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果
        • 数据库恢复 (Recovery)
          • 将数据库从错误状态恢复到某一已知的正确状态
          • 大部分情况下是DBMS自动恢复,个别情况需要手工恢复

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

  1. 概念
    • 对数据进行分类、组织、编码、存储、检索和维护
    • 数据处理的中心问题
  2. 数据管理技术的发展过程
    • 人工管理阶段(20世纪50年代中之前)
    • 文件系统阶段(20世纪50年代末–60年代中)
    • 数据库系统阶段(20世纪60年代末–现在)

数据模型

  • 数据模型是对现实世界数据特征的抽象
  • 数据模型应满足三方面要求
    • 能比较真实地模拟现实世界
    • 容易为人所理解
    • 便于在计算机上实现
  • 数据模型是数据库系统的核心和基础

两类数据模型

  • 数据模型分为两类(两个不同的层次)

    • 概念模型

      • 也称信息模型,它是按用户的观点来对数据和信息建模,用于数据库的初始概念设计,反映对用户业务需求的基本理解
    • 逻辑模型和物理模型

      • 逻辑模型按计算机系统的观点对数据建模,建立的是具体应用的数据库结构,用于DBMS实现,但可不依赖具体的数据库软件厂商和版本。主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等
      • 物理模型是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法
  • 客观对象的抽象过程——两步抽象

    • 现实世界中的客观对象抽象为概念模型
    • 将概念模型转换为某一数据库管理系统支持的数据模型
  • 数据建模与抽象

    • 数据建模是业务需求理解和概念抽象的过程
      • 三个阶段:需求分析-逻辑建模-物理建模
    • 抽象过程:理解-区分-命名-表达

概念模型

概念模型简介

  • 概念模型的用途
    • 概念模型用于信息世界的建模
    • 是现实世界到信息世界的一个中间层次
    • 是数据库设计的有力工具
    • 是数据库设计人员和用户之间进行交流的语言
  • 对概念模型的基本要求
    • 较强的语义表达能力
    • 反映业务逻辑,用客户的述语描述
    • 简单、清晰、易于用户理解
  • 概念模型的一种表示方法-ERD

信息世界中的基本概念

  • 实体(Entity)

    • 客观存在并可相互区别的事物称为实体
  • 属性(Attribute)

    • 实体所具有的某一特性称为属性
    • 一个实体可以由若干个属性来刻画。
  • 码/键(Key)

    • 唯一标识实体的属性集称为码
  • 实体型(Entity Type)

    • 用实体名及其属性名集合来抽象和刻画同类实体称为实体型 (结构,类,class)
  • 实体集(Entity Set)

    • 同一类型实体的集合称为实体集 (实例instances)
  • 联系(Relationship)

    • 现实世界中事物内部以及事物之间的联系,在信息世界中反映为实体 (型)内部的联系和实体(型)之间的联系
    • 实体内部的联系通常是指组成实体的各属性之间的联系
    • 实体之间的联系通常是指不同实体集之间的联系
    • 实体之间的联系有一对一、一对多和多对多等多种类型

数据模型的组成要素

数据结构

  • 数据模型的数据结构
    • 描述数据库的组成对象,以及对象之间的联系。
  • 描述的内容
    • 与对象的类型、内容、性质有关
    • 与数据之间联系有关
  • 数据结构是对系统静态特性的描述

数据操作

  • 概念
    • 对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关操作规则
  • 数据操作的类型(CRUD)
    • 查询(Select)
    • 更新
      • 插入 (Insert)
      • 删除(Delete)
      • 修改(Update)

数据的完整性约束条件

  • 一组完整性规则的集合
  • 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
  • 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
  • 数据模型对完整性约束条件的定义
    • 规定必须遵守的、基本的、通用的完整性约束条件
    • 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件

最常用的数据模型

  • 层次模型(Hierarchical Model)
  • 网状模型(Network Model)
  • 关系模型(Relational Model))
  • 面向对象数据模型(Object Oriented Data Model)
  • 对象关系数据模型(Object Relational Data Model)
  • 半结构化数据模型(Semi-structured Data Model)
  • 图数据模型 (Graph Data Model)

层次模型

  • 树形结构来表示各类实体即实体间的联系

  • 特点

    • 结点的双亲是唯一的
    • 只能直接处理一对多的实体联系
    • 每个记录类型可以定义一个排序字段,也称为码字段
    • 任何记录值只有按其路径查看时,才能显出它的全部意义
    • 没有一个子女记录值能够脱离双亲记录值而独立存在
  • 优点

    • 层次模型的数据结构比较简单清晰
    • 查询效率高,性能优于关系模型,不低于网状模型
    • 层次数据模型提供了良好的完整性支持
  • 缺点

    • 结点之间的多对多联系表示不自然
    • 对插入和删除操作的限制多,应用程序的编写比较复杂
    • 查询子女结点必须通过双亲结点
    • 层次命令趋于程序化

网状模型

  • 概念
    • 满足下面两个条件的基本层次联系的集合
      • 允许一个以上的结点无双亲
      • 一个结点可以有多于一个的双亲

关系模型

  • 内涵
    • 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成
  • 概念
    • 关系(Relation)
      • 一个关系对应通常说的一张表(包括表中的数据)
    • 元组(Tuple)
      • 表中的一行即为一个元组
    • 属性(Attribute)
      • 表中的一列,即为一个属性
      • 给每一个属性起一个名称,即属性名
    • 主码/主键(Key)
      • 也称码或键,表中的某个属性组,可以唯一确定一个元组
    • 域(Domain)
      • 是一组具有相同数据类型的值的集合
      • 属性的取值范围来自某个域。
    • 分量(Component)
      • 元组中的一个属性值
    • 关系模式(Relation Schema
      • 对关系的结构描述
      • 关系名(属性1,属性2属性n)
  • 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项,不允许表中还有表
  • 数据操作是集合操作,操作对象和操作结果都是关系
    • 查询
      • SELECT customer id, name FROM customers;
    • 插入
      • INSERT INTO Student VALUES (‘201215126’,’张成民,’男’,18,’CS’);
    • 删除
      • DELETE FROM Student WHERE Sno= 201215128;
    • 更新
    • UPDATE Student SET Sage= Sage+l;
  • 存取路径对用户隐蔽
  • 关系的完整性约束条件
    • 实体完整性
    • 参照完整性
    • 用户定义的完整性
  • 优点
    • 建立在严格的数学概念的基础上
    • 概念单一
      • 实体和各类联系都用关系来表示
      • 对数据的检索结果也是关系
    • 关系模型的存取路径对用户透明
      • 具有更高的数据独立性,更好的安全保密性
      • 简化了程序员的工作和数据库开发建立的工作
  • 缺点
    • 存取路径对用户透明,查询效率往往不如格式化数据模型(指层次模型和网状模型)
    • 为提高性能,必须对用户的查询请求进行优化,增加了开发数据库管理系统的难度

数据库系统的结构

  • 从数据库应用开发人员角度看,数据库系统通常采用三级模式结构,是数据库系统内部的系统结构
  • 从数据库最终用户角度看,数据库系统的结构分为:
    • 单用户结构
    • 分布式结构
    • 客户-服务器
    • 浏览器-应用服务器/数据库服务器多层结构等

概念

  • 型(Type)

    • 对某一类数据的结构和属性的说明
  • 值(Value)

    • 是型的一个具体赋值
  • 模式(Schema)

    • 数据库逻辑结构和特征的描述
    • 是型的描述,不涉及具体值
    • 反映的是数据的结构及其联系
    • 模式是相对稳定的
  • 实例(Instance)

    • 模式的一个具体值
    • 反映数据库某一时刻的状态
    • 同一个模式可以有很多实例
    • 实例随数据库中的数据的更新而变动

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

  • 内模式(也称存储模式)
    • 是数据物理结构和存储方式的描述
    • 是数据在数据库内部的表示方式
      • 记录的存储方式(例如,顺序存储,按照B树结构存储,按hash方法存储等)
      • 索引的组织方式
      • 数据是否压缩存储
      • 数据是否加密
      • 数据存储记录结构的规定
    • 一个数据库只有一个内模式
    • 内模式对用户是“半透明”的
      • 数据库的物理结构是依赖于DBMS的具体实现,如数据文件和索引结构等
      • 存储方式部分可由用户指定,如索引的类型、是否加密等
      • 物理模型的具体定义(Create Table/Index等)确定了数据库的物理结构
      • 用户不能直观看到和了解具体的物理结构
  • 模式(也称逻辑模式)
    • 数据库中全体数据的逻辑结构和特征的描述
    • 所有用户的公共数据视图
    • 一个数据库只有一个模式
    • 模式的地位:是数据库系统模式结构的中间层
      • 与数据的物理存储细节和硬件环境无关
      • 与具体的应用程序、开发工具及高级程序设计语言无关
    • 模式的定义
      • (数据项的名字、类型、取值范围等)数据的逻辑结构
      • 数据之间的联系
      • 数据有关的安全性、完整性要求
      • 可以使用ERD表达和描述
  • 外模式(也称子模式或用户模式)
    • 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
    • 数据库用户的数据视图,是与某一应用有关的数据的逻辑表示
    • 技术上使用视图View定义和描述
    • 外模式的地位:介于模式与应用之间
      • 模式与外模式的关系:一对多
        • 外模式通常是模式的子集
        • 一个数据库可以有多个外模式。反映了不同的用户的应用需求、看待数据的方式、对数据保密的要求
        • 对模式中同一数据,在外模式中的结构、类型、长度、保密级别等都可以不
      • 外模式与应用的关系一对多
        • 同一外模式也可以为某一用户的多个应用系统所使用
        • 一个应用程序只能使用一个外模式
      • 外模式的用途
        • 保证数据库安全性的一个有力措施
        • 每个用户只能看见和访问所对应的外模式中的数据

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

  • 三级模式是对数据的三个抽象级别
  • 二级映象在数据库管理系统内部实现这三个抽象层次的联系和转换
    • 外模式/模式映像
      • 模式:描述的是数据的全局逻辑结构
      • 外模式:描述的是数据的局部逻辑结构
      • 同一个模式可以有任意多个外模式
      • 每一个外模式,数据库系统都有一个外模式/模式映象,定义外模式与模式之间的对应关系
      • 映象定义通常包含在各自外模式的描述中
      • 保证数据的逻辑独立性
        • 当模式改变时,数据库管理员对外模式/模式映象作相应改变,使外模式保持不变
        • 应用程序是依据数据的外模式编写的,应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
    • 模式/内模式映像
      • 模式/内模式映象定义了数据全局逻辑结构与存储结构之间的对应关系
      • 数据库中模式/内模式映象是唯一的
      • 该映象定义通常包含在模式描述中
      • 保证数据的物理独立性
        • 当数据库的存储结构改变了(例如选用了另一种存储结构),数据库管理员修改模式/内模式映象,使模式保持不变
        • 应用程序不受影响。保证了数据与程序的物理独立性,简称数据的物理独立性
    • 二级映像作用
      • 保证了数据库外模式的稳定性
      • 从底层保证了应用程序的稳定性,除非应用需求本身发生变化,否则应用程序一般不需要修改
      • 数据与程序之间的独立性,使得数据的定义和描述可以从应用程序中分离出去
      • 数据的存取由数据库管理系统管理

数据库系统的组成

-------------终了-------------

欢迎关注我的其它发布渠道