1.数据库介绍

内容大纲

  • E-R模型,对数据进行建模
  • 关系数据模型
  • SQL:数据库查询语言
  • 函数依赖
  • 文件存储
  • 索引
  • 查询处理
  • 查询优化
  • 事务处理
  • 并发协议
  • 数据恢复

前言

什么是数据库
  • 一个数据集合,通常描述了一个或多个相关组织信息

  • 数据库应用广泛

    • 银行交易记录
    • 机票预订,航班信息
    • 学生成绩
    • 产品信息
    • 生产、库存、订单、供应链等
    • 人力资源管理等
  • 数据库可以有任意的大小与复杂度,例如

    • 简单的通讯录可以视作一个数据库
    • 图书馆的藏书表
      image
  • A schema模式:定义了数据库中数据表的结构、关系和约束,以及它们之间的连接方式。

  • An instance实例:指某一个特定的数据库实例
    image

  • 例如,在上表中,表头是该数据库的schema,剩余的行构成一个instance

什么是DBMS
  • DBMS-Database Management System 数据库管理系统
  • DBMS是一个计算机程序,用以创建、维护、使用一个数据库
  • DBMS
    • Insert records 插入记录(指一行数据)
    • Delete records 删除
    • Update records 更新
    • Query records 检索
  • 国外数据库产品
    image
  • 国产数据库
    image
    image
  • tpmC指在国内外被广泛用于衡量计算机系统的事务处理能力,为“每分钟内系统处理的新订单个数”的英文缩写
为什么我们需要DBMS
  • 目的:减少应用开发以及维护时间
  • 否则:假设我们有一个占用500GB的源文件集合,没有DBMS的帮助,我们只能与这些原始数据交互
    image
    • 使用文件系统开发维护的成本巨大
  • 文件系统的缺点
    1. 冗余和不一致性
      • 比如在银行系统中“储蓄账户”和“支票账户”都存储了用户地址信息,而且你还要时刻保证这两个文件里的地址是一致的,而良好的DBMS设计可以避免这种情况
    2. 访问数据困难
      image
      • 提取不同的目标数据需要不同的程序
      • 例如,寻找学生地址需要一个程序,寻找教师联系方式需要一个程序
      • 而使用DBMS产品可以使得访问数据变得容易
    3. 数据库完整性
      • 例如,对于一次银行请求
        • 账户余额不能低于1000美元(该银行的特殊要求)
        • 涉及日期中月的天数不能超过31(客观事实)
    4. 原子性
      • 例如,考虑一次银行请求:从账户A转100美金到账户B
        • 第一步:从账户A中扣除100美金
        • 第二步:在账户B中增加100美金
      • 若系统在执行完第一步后崩溃,重启后A+B原地少了100美金
      • 原子性是指事务包含的所有操作要么全部成功,要么全部失败回滚(恢复执行前的状态)
    5. 并发处理
      • (无控制的)数据并发访问容易导致数据错误
      • 例如,考虑一个银行请求
        • 有2个客户A和B共享一个账户,余额为5000
        • 客户A和B同时取款1000
      • image
    6. 安全性
      • 例如,我们不希望系统程序员有读取某些数据的权限
      • 在文件系统,不同的访问权限也需要很多开发成本
  • 使用DBMS,我们有以下优势
    • 数据独立性:应用程序和数据结构之间相互独立,互不影响
    • 高效数据访问
    • 完整性和安全性
    • 数据权限管理
    • 程序崩溃恢复
    • 节省开发成本和数据交换成本
  • 使用DBMS和文件系统的首先区别是,它对数据进行存储前会先对它们进行建模
数据模型
  • 数据模型是描述数据的工具或概念的集合,表示数据、解释数据、数据关联和数据约束
  • 面向对象的逻辑模型
    • 实体关系模型(ER model)
      image
  • 面向记录的模型
    • 关系模型(Relational Model)
      image
    • 涉及概念:Relation-数据表格。列也被成为字段(field)或属性(attribute)
    • 我们将重点关注占主导地位的最广泛使用的关系模型
    • 关系模型中,表头、属性约束等成为模式(schema)
抽象数据的不同层次
  • DBMS抽象/隐藏了数据存储维护等细节。数据的“画像”可分为三个层次:
    • 物理层面:数据如何存储访问
    • 逻辑层面:数据的schema
    • 视图层面:数据的表示方式
      image
    • 逻辑层面
      image
    • 物理层面:存储方法、索引方式等
      image
    • 视图层面:向所有学生发布成绩时的视图
      image
      • 根据需求展示不同层次、方面的视图
数据独立性
  • 物理数据独立性
    • 物理组织方式的改变不影响逻辑层面、应用程序
    • 概念组织层面的改变不影响视图层面、应用层面
DBMS的语言
  • Data Definition Language(DDL)
    • 定义schema的语言
  • Data Manipulation Language(DML)
    • 用来检索、更新、插入、删除等操作的语言
  • 为了检索数据,我们使用查询语言查询数据库,它是DML的一部分
  • 管理员(DBA):对数据库具有集中控制权并负责以下任务的人员
    • 定义schema
    • 物理存储设定
    • 数据访问权限
    • 数据完整性定义
    • 维护/监控数据库
    • 根据需求改动数据库
  • DBMS的其他使用者
    • 程序员
      • 将DML调用嵌入到以主机语言(例如Cobol、C、Java)编写的程序中。(DML代表数据操作语言)
      • 例如,从C#程序里调用DML与数据库交互
      • Python中使用SQLAIchemy框架
      • image
    • 有经验的数据库用户
      • 直接使用SQL查询数据,无host language
      • image
    • 小白用户
      • 调用别人写好的程序进行交互
      • 例如,银行app中的转账按钮--小白可以直接使用该程序进程转账
DBMS的结构
  • 查询优化、查询执行
  • 关系运算符
  • 文件和访问方法
  • 缓存管理
  • 磁盘管理
    image
DBMS的历史
  • 第一个DBMS是由 Bachman 在 20 世纪 60 年代初在GE 通用电气公司设计的
  • 1970 年,IBM 的 Codd 提出了一种新的数据表示框架,称为关系数据模型。
  • 关系数据库的 SQL 查询是 IBM System R 项目的一部分,在 20 世纪 80 年代末实现了标准化。
  • 当前的标准 SQL-92 已被 ANSI(美国国家标准协会)和 ISO(国际标准组织)采用。
  • 在 20 世纪 80 年代末和 90 年代,一些供应商(例如IBM 的 DB2、Oracle 8)已经扩展了他们的系统,使其能够存储新的数据类型,例如图像和文本。
  • 为数据仓库开发的专用系统,整合来自多个数据库的数据。
  • 进入互联网时代,人们提出了一种新的标记语言 XML,用于通过 Web 浏览器访问数据。 随着收集的数据越来越多,公司也有兴趣从数据中挖掘有用的信息。
  • 图数据库、云数据库、知识图谱
posted @ 2024-12-05 22:01  韦飞  阅读(23)  评论(0)    收藏  举报