10. 数据库技术 笔记

1 数据库技术概述

  • 数据与信息
    • 数据定义: 能够被计算机存储和反映客观信息的维护
    • 数据形式: 数字、文字、图形、表格、声音和动画等
    • 数据与信息的区别
      • 信息: 经过加工、对决策有价值的数据
      • 关系: 数据是信息的载体, 信息是数据的内涵
  • 计算机时代的数据处理
    • 人工管理阶段
      • 时间: 20 世纪 50 年代中期以前
      • 特征:缺乏操作系统和数据库管理,数据无法共享,错误数据多
    • 文件系统阶段
      • 时间:20 世纪 50 年代后期至 60 年代中期
      • 应用范围:科学计算;企业信息管理
      • 特征:引入文件系统, 数据以文件形式存储, 应用程序间可共享数据, 但共享程度低。仍存在冗余和不一致性
    • 数据库管理阶段
      • 时间: 20 世纪 60 年代末
      • 应用范围:多用户、多应用数据共享
      • 特征: 数据共享需求增加, 数据库系统诞生, 提高数据独立性和共享性, 减少冗余和不一致性
  • 数据库定义与模型
    • 定义: 存储在计算机中的相关数据集合, 优化数据结构, 减少冗余
    • 数据模型
      • 第一代数据库: 层次模型、网状模型
        • 特征:从文件系统发展而来, 存在查询复杂性问题
      • 第二代数据库: 关系模型
        • 特征:支持结构化查询语言, 极大简化了数据查询和管理
      • 第三代数据库: 云数据库
        • 特征:随着云计算技术成熟, 数据库服务向云端迁移, 提供更高效、灵活的数据管理
  • 数据库技术的发展趋势
    • 集成制造、辅助系统、图形应用等新领域的需求推动数据库技术的持续演进

2 数据库管理系统

  • 功能
    • DBMS 数据定义
      • 定义数据库的逻辑结构
      • 完整性约束和物理存储结构
    • 数据操纵
      • 通过 DML 实现对数据的查找、修改、插入、删除
    • 数据的组织、存储和管理
      • 数据分类
      • 物理组织和存储方法
    • 数据库的运行管理
      • 实时管理和监控
      • 用户事务的安全性
      • 数据库的安全性
      • 并发控制
      • 数据恢复
      • 完整性维护
    • 数据库的建立与维护
      • 初始数据输入转换
      • 日常维护软件工具
  • 结构
    • 应用层
      • 用户和应用程序的接口处理
    • 语言翻译处理层
      • 数据语言分析
      • 视图转换
      • 授权检查、完整性检查、查询优化等
    • 数据存取层
      • 数据路径存取
      • 路径维护
      • 并发控制
      • 事务管理等工作
    • 数据存储层
      • 处理对象是数据页和系统缓冲区
      • 使用操作系统提供的基本存取方法执行数据的物理文件的读写操作
  • 常见数据库管理系统
    • Oracle
      • 大型企业级数据库
      • 性能高
      • 故障率扩展能力强
    • Microsoft SQL Server
      • 安装在 Windows 操作系统
      • 开发维护简单
      • 性能和故障率要求不高
    • Microsoft Access
      • Windows 环境下流行的桌面数据库系统
      • 界面友好
      • 简单易用
      • 开发简单
    • MySQL
      • 体积小
      • 速度快
      • 总体拥有成本低
      • 开源
      • 广泛用于网站
  • 总结
    • DBMS 是操作和管理数据库的软件
    • 提供网络管理数据库的接口
    • 实现数据定义、操作、存储和管理功能
    • 常见产品各有特点,适用于不同场景

3 数据库系统

  • 数据库系统(DBS)的组成
    • 数据库(DB): 存储在磁带、磁盘、光盘等外存介质上的相关数据集合,是数据库系统的基础
    • 数据库管理系统(DBMS): 完成数据库描述、管理、维护的软件系统。DBMS 是数据库系统的核心
    • 计算机系统: 包括硬件设备、操作系统等支持 DBMS 操作的环境
    • 数据库管理员(DBA): 负责用户授权、协调监督数据库使用,维护系统安全性和完整性
    • 最终用户: 数据库的主要使用者,进行查询和更新操作
  • 数据库系统的体系结构
    • 单用户结构
      • 特点: 数据库位于一台计算机上,为单一用户服务
      • 优点: 简单,易于管理和维护
      • 缺点: 不支持多用户共享
    • 主从式结构
      • 特点: 数据库管理系统和数据通过终端向主机发出处理请求
      • 优点: 支持多用户并发访问,共享数据资源
      • 缺点: 主机性能成为瓶颈,系统可靠性不高
    • 分布式结构
      • 数据逻辑整体,物理分布
        • 适用场景: 规模较小,用途单一的单位
      • 数据逻辑与物理均分布
        • 适用场景: 多用途、差异大的数据库系统
        • 优点: 跨地域公司或组织数据处理管理
        • 缺点: 系统保护状态受限,响应时间可能延迟
    • 客户机/服务器结构(C/S)
      • 特点: DBMS 运行在服务器上,客户端进行应用开发和数据请求
        • 优点: 用户具有较高能力,可移植性强,支持多种开发工具
        • 缺点: 需要稳定的网络连接,服务器负载管理
  • 数据库系统与文件系统的对比
    • 文件系统的不足
      • 共享性差,冗余度大
      • 数据不一致
      • 数据独立性差
      • 数据结构化程度低
      • 缺乏统一管理,安全性、完整性差
    • 数据库的特点
      • 数据结构化
      • 数据可共享
      • 数据冗余度低,维护数据一致性
      • 程序与数据独立,加速开发,节省费用
      • 具有良好的用户接口,提供不同层次的访问控制
      • 统一的数据管理,包括恢复、安全性和完整性、并发控制
  • 总结
    • 数据库系统旨在实现数据的有组织存储、管理和共享
    • 体系结构的选择依据应用场景和需求
    • 数据库系统克服了文件系统的局限,提供更高效、安全的数据管理

4 关系模型的数据结构

  • 关系数据库模型起源与发展
    • 1970 年由关系数据库之父提出
    • 特点:清晰、简单
    • 全球广泛响应,市场统治地位
    • 基础模型:研究与技术成果的基础
  • 数据库基础模型设计者、程序员和终端用户
    • 角色不同,会以不同的视角看待数据
    • 表现形式:文字、数值、声音、图形等
    • 结构描述:层次、网状、关系等
  • 数据模型
    • 模型概念:现实世界事物的抽象模拟
    • 数据模型:设计者、程序员、终端用户之间的桥梁
    • 关系型数据模型:是数据模型的一种,是数据库系统实现的理论基础
    • 数据结构
      • 实体:客观存在的事物(如学生 A、学生 B)
      • 属性:实体的特征(如学号、姓名、性别、班级)
      • 值域:属性取值范围
      • 键:唯一区分实体的信息(如学号)
      • 联系类型:一对一、一对多、多对多的联系
      • 关系表示:二维表格
      • 元组(记录)
      • 属性(列)
      • 分量:属性值
      • 候选键:唯一区分元组的属性或属性集
      • 外键:一个关系中的属性或属性集,对应另一个关系的主键
    • 关系模型规范
      1. 元组有限性:行的个数有限
      2. 元素各异性:每个元组均不能相同
      3. 元组次序任意性:二维表中行的次序可以任意交换
      4. 字段各异性:二维表不能存在相同的属性名
      5. 字段同质性:二维表同一列的数据必须是同一种数据类和来自同一个域
      6. 字段次序任意性:字段的先后顺序不会影响关系的实际意义
  • 实体间联系实现
    • 相同字段:在对应关系中包含相同的字段
      • 多对多联系拆解:两个一对多联系
      • 关系模式:描述实体间联系的事实
      • 实体关系图(ER 图):图形表示实体及联系
  • 关系数据库模式与实例
    • 关系数据库模式:实体及实体间关系模式的集合
    • 关系数据库实例:模式中具体数据的集合
  • 总结
    • 关系模型数据结构:规范化二维表格表示实体及联系
    • 外键实现实体间的联系
    • 关系数据库模式与实例构建数据库基础

5 关系模型的数据操作及完整性约束

  • 数据完整性约束
    • 实体完整性
      • 如果属性 A 为关系 R 的主键中的属性,那么 A 不能取空值
      • 例:学生关系中的学号,成绩关系中的学号和课程号集合
      • 目的:维护实体的唯一性标识,防止实体无法识别
    • 参照完整性
      • 规则:关系 A 中的某个属性集作为关系B的外键,其取值要么为空,要么为关系 B 中某元组的主键值
      • 例:成绩关系中的课程号参照课程关系的主键
      • 目的:约束实体间引用,防止引用不存在的实体
    • 用户自定义完整性
      • 由用户根据具体应用环境定义的规则
      • 例:成绩必须在 0 到 100 之间,性别属性取值为男或女
      • 目的:确保数据正确录入,无需额外代码检测
  • 数据操作
    • 数据查询
    • 数据更新
    • 插入
    • 修改
    • 删除
    • 特点:非过程化程度高,用户只需提出操作要求,具体实现由 DBMS 完成
  • 总结
    • 关系数据模型通过数据操作和数据完整性约束,确保数据库数据与现实世界的一致性,避免错误数据录入。

6 Access 数据库的建立

  • 创建 Access 数据库
    • 使用 Access 2010 版本
    • 方法一: 利用系统模板创建
      • 包含预设计模板: 联系人、事件、任务、学生等
      • 创建联系人模板
    • 方法二: 创建空白数据库
      • 输入数据库文件名: 选课管理数据库
      • 选择存放路径
      • 点击创建
  • 创建表结构
    • 表对应关系模型中的关系
    • 基本步骤
      • 使用设计视图表
      • 定义字段名称、数据类型和字段属性
    • 创建学生表
      • 字段: 学号、姓名、性别、年龄
      • 保存为学生表
    • 创建课程表
      • 字段: 课程号、课程名、学时、学分
      • 设置主键提示
    • 创建成绩表
      • 字段: 学号、课程号、成绩
      • 暂时不创建主键
  • 字段属性设置
    • 字段大小
      • 控制文本和数字字段的使用空间
      • 性别字段大小设置为 1
    • 数字型字段设置
      • 课程表中的学时和学分
      • 成绩表中的成绩字段
    • 小数位数和数值范围设置
      • 成绩字段小数位数设为 1
      • 学时和学分字段同样设置
    • 格式属性
      • 影响数据的显示方式
    • 默认值设置
      • 性别字段默认值为男或女
    • 有效性规则设置
      • 限制数据输入范围
      • 成绩字段限制在 0 到 100 之间
    • 必填字段
      • 保证字段在数据录入时不为空
  • 设置主键
    • 学生表: 学号作为主键
    • 课程表: 课程号作为主键
    • 成绩表: 学号和课程号作为复合主键
  • 建立表间关系
    • 实现数据库表的参照完整性
    • 使用数据库工具选项卡中的关系功能
    • 创建学生表与成绩表、课程表之间的关系
    • 确保表处于非编辑状态
  • 导入数据
    • 向表中输入数据
    • 利用已有表导入数据
    • 支持 Access、Excel、文本文件等格式
    • 示例: 将 Excel 数据导入学生表、课程表和成绩表
  • 总结
    • 创建 Access 数据库的步骤
    • 创建表结构、设置主键、建立表间关系
    • 导入外部数据

7 Access 的数据查询

  • 查询操作概述
    • 数据库功能
      • 数据管理
      • 快速响应用户请求
    • 目标
      • 筛选符合条件的记录
      • 大量数据的插入与修改
  • 创建查询的方法
    • 使用向导创建查询
      • 简单查询向导
        • 示例: 查询学生基本情况
          • 选择字段(学号、姓名、性别)
          • 创建查询名称
          • 查看查询结果
      • 功能限制
        • 核心字段的总计或平均值
        • 保存查询
    • 使用设计器创建查询
      • 自定义查询条件
        • 示例: 查询学生选课情况
          • 添加表(成绩、课程、学生)
          • 设置排序(学号)
          • 显示字段(姓名、课程名)
          • 条件设置(成绩>=60)
        • 运行与保存查询
    • 搜索查询(SQL)
      • 功能强大
        • 数据查询
        • 数据定义
        • 数据控制
      • SQL语句
        • INSERT INTO (添加记录)
        • SELECT (查询记录)
        • UPDATE (修改记录)
        • DELETE (删除记录)
      • 实例
        • 添加课程记录
        • 查询学生基本情况
        • 修改课程名称
        • 删除课程记录