10. 数据库技术 笔记
1 数据库技术概述
- 数据与信息
- 数据定义: 能够被计算机存储和反映客观信息的维护
- 数据形式: 数字、文字、图形、表格、声音和动画等
- 数据与信息的区别
- 信息: 经过加工、对决策有价值的数据
- 关系: 数据是信息的载体, 信息是数据的内涵
- 计算机时代的数据处理
- 人工管理阶段
- 时间: 20 世纪 50 年代中期以前
- 特征:缺乏操作系统和数据库管理,数据无法共享,错误数据多
- 文件系统阶段
- 时间:20 世纪 50 年代后期至 60 年代中期
- 应用范围:科学计算;企业信息管理
- 特征:引入文件系统, 数据以文件形式存储, 应用程序间可共享数据, 但共享程度低。仍存在冗余和不一致性
- 数据库管理阶段
- 时间: 20 世纪 60 年代末
- 应用范围:多用户、多应用数据共享
- 特征: 数据共享需求增加, 数据库系统诞生, 提高数据独立性和共享性, 减少冗余和不一致性
- 人工管理阶段
- 数据库定义与模型
- 定义: 存储在计算机中的相关数据集合, 优化数据结构, 减少冗余
- 数据模型
- 第一代数据库: 层次模型、网状模型
- 特征:从文件系统发展而来, 存在查询复杂性问题
- 第二代数据库: 关系模型
- 特征:支持结构化查询语言, 极大简化了数据查询和管理
- 第三代数据库: 云数据库
- 特征:随着云计算技术成熟, 数据库服务向云端迁移, 提供更高效、灵活的数据管理
- 第一代数据库: 层次模型、网状模型
- 数据库技术的发展趋势
- 集成制造、辅助系统、图形应用等新领域的需求推动数据库技术的持续演进
2 数据库管理系统
- 功能
- DBMS 数据定义
- 定义数据库的逻辑结构
- 完整性约束和物理存储结构
- 数据操纵
- 通过 DML 实现对数据的查找、修改、插入、删除
- 数据的组织、存储和管理
- 数据分类
- 物理组织和存储方法
- 数据库的运行管理
- 实时管理和监控
- 用户事务的安全性
- 数据库的安全性
- 并发控制
- 数据恢复
- 完整性维护
- 数据库的建立与维护
- 初始数据输入转换
- 日常维护软件工具
- DBMS 数据定义
- 结构
- 应用层
- 用户和应用程序的接口处理
- 语言翻译处理层
- 数据语言分析
- 视图转换
- 授权检查、完整性检查、查询优化等
- 数据存取层
- 数据路径存取
- 路径维护
- 并发控制
- 事务管理等工作
- 数据存储层
- 处理对象是数据页和系统缓冲区
- 使用操作系统提供的基本存取方法执行数据的物理文件的读写操作
- 应用层
- 常见数据库管理系统
- Oracle
- 大型企业级数据库
- 性能高
- 故障率扩展能力强
- Microsoft SQL Server
- 安装在 Windows 操作系统
- 开发维护简单
- 性能和故障率要求不高
- Microsoft Access
- Windows 环境下流行的桌面数据库系统
- 界面友好
- 简单易用
- 开发简单
- MySQL
- 体积小
- 速度快
- 总体拥有成本低
- 开源
- 广泛用于网站
- Oracle
- 总结
- DBMS 是操作和管理数据库的软件
- 提供网络管理数据库的接口
- 实现数据定义、操作、存储和管理功能
- 常见产品各有特点,适用于不同场景
3 数据库系统
- 数据库系统(DBS)的组成
- 数据库(DB): 存储在磁带、磁盘、光盘等外存介质上的相关数据集合,是数据库系统的基础
- 数据库管理系统(DBMS): 完成数据库描述、管理、维护的软件系统。DBMS 是数据库系统的核心
- 计算机系统: 包括硬件设备、操作系统等支持 DBMS 操作的环境
- 数据库管理员(DBA): 负责用户授权、协调监督数据库使用,维护系统安全性和完整性
- 最终用户: 数据库的主要使用者,进行查询和更新操作
- 数据库系统的体系结构
- 单用户结构
- 特点: 数据库位于一台计算机上,为单一用户服务
- 优点: 简单,易于管理和维护
- 缺点: 不支持多用户共享
- 主从式结构
- 特点: 数据库管理系统和数据通过终端向主机发出处理请求
- 优点: 支持多用户并发访问,共享数据资源
- 缺点: 主机性能成为瓶颈,系统可靠性不高
- 分布式结构
- 数据逻辑整体,物理分布
- 适用场景: 规模较小,用途单一的单位
- 数据逻辑与物理均分布
- 适用场景: 多用途、差异大的数据库系统
- 优点: 跨地域公司或组织数据处理管理
- 缺点: 系统保护状态受限,响应时间可能延迟
- 数据逻辑整体,物理分布
- 客户机/服务器结构(C/S)
- 特点: DBMS 运行在服务器上,客户端进行应用开发和数据请求
- 优点: 用户具有较高能力,可移植性强,支持多种开发工具
- 缺点: 需要稳定的网络连接,服务器负载管理
- 特点: DBMS 运行在服务器上,客户端进行应用开发和数据请求
- 单用户结构
- 数据库系统与文件系统的对比
- 文件系统的不足
- 共享性差,冗余度大
- 数据不一致
- 数据独立性差
- 数据结构化程度低
- 缺乏统一管理,安全性、完整性差
- 数据库的特点
- 数据结构化
- 数据可共享
- 数据冗余度低,维护数据一致性
- 程序与数据独立,加速开发,节省费用
- 具有良好的用户接口,提供不同层次的访问控制
- 统一的数据管理,包括恢复、安全性和完整性、并发控制
- 文件系统的不足
- 总结
- 数据库系统旨在实现数据的有组织存储、管理和共享
- 体系结构的选择依据应用场景和需求
- 数据库系统克服了文件系统的局限,提供更高效、安全的数据管理
4 关系模型的数据结构
- 关系数据库模型起源与发展
- 1970 年由关系数据库之父提出
- 特点:清晰、简单
- 全球广泛响应,市场统治地位
- 基础模型:研究与技术成果的基础
- 数据库基础模型设计者、程序员和终端用户
- 角色不同,会以不同的视角看待数据
- 表现形式:文字、数值、声音、图形等
- 结构描述:层次、网状、关系等
- 数据模型
- 模型概念:现实世界事物的抽象模拟
- 数据模型:设计者、程序员、终端用户之间的桥梁
- 关系型数据模型:是数据模型的一种,是数据库系统实现的理论基础
- 数据结构
- 实体:客观存在的事物(如学生 A、学生 B)
- 属性:实体的特征(如学号、姓名、性别、班级)
- 值域:属性取值范围
- 键:唯一区分实体的信息(如学号)
- 联系类型:一对一、一对多、多对多的联系
- 关系表示:二维表格
- 元组(记录)
- 属性(列)
- 分量:属性值
- 候选键:唯一区分元组的属性或属性集
- 外键:一个关系中的属性或属性集,对应另一个关系的主键
- 关系模型规范
- 元组有限性:行的个数有限
- 元素各异性:每个元组均不能相同
- 元组次序任意性:二维表中行的次序可以任意交换
- 字段各异性:二维表不能存在相同的属性名
- 字段同质性:二维表同一列的数据必须是同一种数据类和来自同一个域
- 字段次序任意性:字段的先后顺序不会影响关系的实际意义
- 实体间联系实现
- 相同字段:在对应关系中包含相同的字段
- 多对多联系拆解:两个一对多联系
- 关系模式:描述实体间联系的事实
- 实体关系图(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 (删除记录)
- 实例
- 添加课程记录
- 查询学生基本情况
- 修改课程名称
- 删除课程记录
- 功能强大
- 使用向导创建查询