计算、数据与数据管理

corresponding slide-ch01

计算

  • 什么是计算?
  • 计算 = 算法 + 数据

数据管理

人工管理

  • 不同程序的数据集是割裂分离的
  • 算法存储于应用程序中,数据存储于数据集中
  • 特点

文件系统

  • 特点

共享数据

  • 基于二进制在多个应用之间共享数据
  • 基于文本在多个应用之间共享数据(K/V,JSON,XML)
  • 面对的问题:
  • 上述问题可归结为:由谁负责定义和管理这些数据?

    为解决这些问题,采用数据库管理系统

数据库系统

几个基本概念

corresponding slide-ch02

  • 数据(Data):数据库中存储的基本对象
    • 数据的定义
      • 描述事务的符号记录
    • 数据的种类
      • 数字、文字、图形等
    • 数据的含义
      • 数据的语义
      • 数据与其语义不可分
  • 数据库(Database,简称DB)
    • 数据库的定义
      • 长期存储在计算机内、有组织的、可共享大量数据的集合
    • 数据库的基本特征
      • 数据按一定的数据模型组织、描述和存储
      • 可为各种用户共享
      • 冗余度较小
      • 数据独立性较高
        • 一般程序中算法与数据相互依赖,独立性较弱
        • 使用数据库的程序需要迁就数据库中的数据格式
      • 易扩展
  • 数据库管理系统(Database Management System,简称DBMS)
    • 定义
      • 位于用户与操作系统之间的一层数据管理软件
      • 是基础软件,是一个大型复杂的软件系统
    • 用途
      • 科学地组织和存储数据、高效地获取和维护数据
      • 举例
    • 主要功能
      • 数据定义功能
        • 提供数据定义语言(DDL
        • 定义数据库中的数据对象
      • 数据组织、存储和管理
        • 分类组织、存储和管理各种数据
        • 确定组织数据的文件结构和存取方式
        • 实现数据之间的联系
        • 提供多种存取方法提高存取效率
      • 数据操纵功能
        • 提供数据操纵语言(DML
      • 数据库的事务管理和运行管理
        • 数据库在建立、运行和维护时由DBMS统一管理和控制
        • 保证数据的安全性、完整性、多用户对数据的并发使用
        • 发生故障后的系统恢复
      • 数据库的建立和维护功能
        • 数据库初始数据的装载和转换
        • 数据库转储、恢复功能
        • 数据库的重组织
        • 性能监视、分析等
      • 其他功能
        • 数据库管理系统与网络中其它软件系统的通信
        • 数据库管理系统系统之间的数据转换
        • 异构数据库之间的互访和互操作
  • 数据库系统(Database System,简称DBS)
    • 定义
      • 在计算机系统中引入数据库后的系统构成
      • 现在提起较少
    • 构成
      • 数据库
      • DBMS(及其应用开发工具)
      • 应用程序
      • 数据库管理员(DBA)
    • 特点
      • 整体结构化
        • 不再仅仅针对某一个应用,而是面向全组织
        • 不仅数据内部结构化,整体是结构化的,数据之间具有联系
        • 数据记录可以变长
        • 数据的最小存取单位是数据项
      • 数据的用数据模型描述,无需应用程序定义
      • 数据的共享性高,冗余度低且易扩充
        • 数据面向整个系统,可以被多个用户、多个应用共享使用
        • 数据共享的好处
          • 减少数据冗余,节约存储空间
          • 避免数据之间的不相容性与不一致性
          • 使系统易于扩充
      • 数据独立性高
        • 物理独立性
          • 指用户的应用程序与数据库中数据的物理存储是相互独立的。当数据的物理存储改变了,应用程序不用改变
        • 逻辑独立性
          • 指用户的应用程序与数据库的逻辑结构是相互独立的。数据的逻辑结构改变了,应用程序不用改变
        • 数据独立性由数据库管理系统的二级映像功能来保证
      • 数据由数据管理系统统一管理和控制
        • 数据库管理系统提供的数据控制功能
          • 数据的安全性(Security)保护
            • 保护数据以防止不合法的使用造成的数据的泄密和破坏
          • 数据的完整性(Integrity)检查
            • 保证数据的正确性、有效性和相容性
          • 并发(Concurrency)控制
            • 对多用户的并发操作加以控制和协调,防止相互干扰而得到错误的结果
          • 数据库恢复(Recovery)
            • 将数据库从错误状态恢复到某一已知的正确状态

数据模型

corresponding slide-ch03

数据模型

  • 数据模型是对现实世界数据特征的抽象,用以抽象、表示和处理现实世界中的数据和信息
  • 数据模型应满足三方面要求
    1. 能比较真实地模拟现实世界
    2. 容易为人所理解
    3. 便于在计算机上实现
    • 一般来说,2)和3)难以同时实现
  • 数据模型是数据库系统的核心基础

概念/逻辑/物理模型

  1. 概念模型
    • 也称信息模型
    • 按用户的观点来对数据和信息建模,用于数据库设计
  2. 逻辑模型
    • 按计算机系统的观点对数据建模,用于DBMS实现
    • 主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
  3. 物理模型
    • 是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法

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

  1. 现实世界中的客观对象抽象为概念模型
    • 将现实世界抽象为信息世界
  2. 把概念模型转换为特定DBMS支持的数据模型
    • 将信息世界转换为机器世界

数据模型的组成要素

数据结构

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

数据操作

  1. 数据操作
    • 对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
  2. 数据操作的类型
    • 查询
    • 更新(包括插入、删除、修改)
  3. 数据模型对操作的定义
    • 操作的确切含义、操作符号、操作规则(如优先级)
    • 实现操作的语言
  4. 数据操作是对系统动态特性的描述

数据的完整性约束条件

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

概念模型

corresponding slide-ch04

概念模型

  1. 概念模型的用途
    • 概念模型用于信息世界的建模
    • 是现实世界到机器世界的一个中间层次
    • 是数据库设计的有力工具
    • 数据库设计人员和用户之间进行交流的语言
  2. 对概念模型的基本要求
    • 较强的语义表达能力
    • 简单、清晰、易于用户理解

信息世界中的基本概念

  1. 实体(Entity)
    • 客观存在并可相互区别的事物称为实体
    • 可以是具体的人、事、物或抽象的概念
  2. 属性(Attribute)
    • 实体所具有的某一特性称为属性
    • 一个实体可以由若干个属性来刻画
  3. 码(Key)
    • 唯一标识实体的属性集称为码
  4. 实体型(Entity Type)
    • 用实体名及其属性名集合来抽象和刻画同类实体称为实体型
  5. 实体集(Entity Set)
    • 同一类型实体的集合称为实体集
  6. 联系(Relationship)
    • 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系

实体之间的联系

  1. 实体之间的联系通常是指不同实体集之间的联系
  2. 实体之间的联系有一对一、一对多和多对多等多种类型

实体内部的联系

  • 实体内部的联系通常是指组成实体的各属性之间的联系

实体-联系方法

  • 实体-联系方法(Entity-Relationship Approach)
    • 用E-R图来描述现实世界的概念模型
    • E-R方法也称为E-R模型
  • 一些例子
      • 重复选修同一门课,可以有多个成绩,故成绩联系的属性,而非实体的属性

逻辑模型

corresponding slide-ch05

逻辑模型

  • 如何“多快好省”地将信息世界转换为机器世界?
    • 基本问题,如何在机器世界中表达“低层”数据结构和“高层”数据结构?
  1. 方案1:尽量独立于应用层,采用“中立”的方式表达概念模型
  2. 方案2:在应用层中,使用特定数据结构,并在逻辑模型中高效支持这一数据结构
  3. 方案*:通用数据结构采用方案1,关键性数据结构采用方案2

常用数据模型

  1. 格式化模型
    • 层次模型(Hierarchical Model)
    • 网状模型(Network Model)
  2. 关系模型(Relational Model)
  3. 对象模型(中立的数据模型)
    • 面向对象数据模型(Object Oriented Data Model)
    • 对象关系数据模型(Object Relational Data Model)

关系模型的数据结构

  1. 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成
    • 关系(Relation):一个关系对应通常说的一张表
    • 元组(Tuple):表中的一行即为一个元组
    • 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
    • 主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
    • 域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
    • 分量:元组中的一个属性值。
    • 关系模式
      • 对关系的描述
      • 关系名(属性1,属性2,…,属性n)
      • 学生(学号,姓名,年龄,性别,系名,年级)
  2. 关系必须是规范化的,满足一定的规范条件
    • 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表

关系模型的操作与完整性约束

  1. 数据操作(查询、插入、删除、更新)是集合操作,操作对象和操作结果都是关系
  2. 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
  3. 关系的完整性约束条件
    • 实体完整性
    • 参照完整性
    • 用户定义的完整性

关系模型的优缺点

  • 优点
    • 建立在严格的数学概念的基础上
    • 概念单一
      • 实体和各类联系都用关系来表示
      • 对数据的检索结果也是关系
    • 关系模型的存取路径对用户透明
      • 具有更高的数据独立性,更好的安全保密性
      • 简化了程序员的工作和数据库开发建立的工作
  • 缺点
    • 存取路径对用户透明,查询效率往往不如格式化数据模型
    • 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度

NoSQL

  • 基于Key-Value存储模型
  • 基于文档模型
  • 列族模型
  • 基于图模型
    • 记为G (V, E),V为结点(node) 集合,每个结点具有若干属性,E为边(edge) 集合,也可以具有若干属性。