DBMS@NJUSE-Chapter01 绪论
计算、数据与数据管理
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)
- 将数据库从错误状态恢复到某一已知的正确状态
- 数据的安全性(Security)保护
- 数据库管理系统提供的数据控制功能
- 整体结构化
- 定义
数据模型
corresponding slide-ch03
数据模型
- 数据模型是对现实世界数据特征的抽象,用以抽象、表示和处理现实世界中的数据和信息
- 数据模型应满足三方面要求
- 能比较真实地模拟现实世界
- 容易为人所理解
- 便于在计算机上实现
- 一般来说,2)和3)难以同时实现
- 数据模型是数据库系统的核心和基础
概念/逻辑/物理模型
- 概念模型
- 也称信息模型
- 按用户的观点来对数据和信息建模,用于数据库设计
- 逻辑模型
- 按计算机系统的观点对数据建模,用于DBMS实现
- 主要包括网状模型、层次模型、关系模型、面向对象数据模型、对象关系数据模型、半结构化数据模型等。
- 物理模型
- 是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法
客观对象的抽象过程-两步抽象
- 现实世界中的客观对象抽象为概念模型
- 将现实世界抽象为信息世界
- 把概念模型转换为特定DBMS支持的数据模型
- 将信息世界转换为机器世界
- 将信息世界转换为机器世界
数据模型的组成要素
数据结构
- 数据模型的数据结构
- 描述数据库的组成对象,以及对象之间的联系
- 描述的内容
- 与对象的类型、内容、性质有关
- 与数据之间联系有关
- 数据结构是对系统静态特性的描述
数据操作
- 数据操作
- 对数据库中各种对象(型)的实例(值)允许执行的操作的集合,包括操作及有关的操作规则
- 数据操作的类型
- 查询
- 更新(包括插入、删除、修改)
- 数据模型对操作的定义
- 操作的确切含义、操作符号、操作规则(如优先级)
- 实现操作的语言
- 数据操作是对系统动态特性的描述
数据的完整性约束条件
- 数据的完整性约束条件,一组完整性规则的集合
- 完整性规则:给定的数据模型中数据及其联系所具有的制约和依存规则
- 用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容
- 数据模型对完整性约束条件的定义
- 反映和规定必须遵守的基本的通用的完整性约束条件。
- 提供定义完整性约束条件的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束条件。
概念模型
corresponding slide-ch04
概念模型
- 概念模型的用途
- 概念模型用于信息世界的建模
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的有力工具
- 数据库设计人员和用户之间进行交流的语言
- 对概念模型的基本要求
- 较强的语义表达能力
- 简单、清晰、易于用户理解
信息世界中的基本概念
- 实体(Entity)
- 客观存在并可相互区别的事物称为实体
- 可以是具体的人、事、物或抽象的概念
- 属性(Attribute)
- 实体所具有的某一特性称为属性
- 一个实体可以由若干个属性来刻画
- 码(Key)
- 唯一标识实体的属性集称为码
- 实体型(Entity Type)
- 用实体名及其属性名集合来抽象和刻画同类实体称为实体型
- 实体集(Entity Set)
- 同一类型实体的集合称为实体集
- 联系(Relationship)
- 现实世界中事物内部以及事物之间的联系在信息世界中反映为实体(型)内部的联系和实体(型)之间的联系
实体之间的联系
- 实体之间的联系通常是指不同实体集之间的联系
- 实体之间的联系有一对一、一对多和多对多等多种类型
实体内部的联系
- 实体内部的联系通常是指组成实体的各属性之间的联系
实体-联系方法
- 实体-联系方法(Entity-Relationship Approach)
- 用E-R图来描述现实世界的概念模型
- E-R方法也称为E-R模型
- 一些例子
- 重复选修同一门课,可以有多个成绩,故成绩是联系的属性,而非实体的属性
逻辑模型
corresponding slide-ch05
逻辑模型
- 如何“多快好省”地将信息世界转换为机器世界?
- 基本问题,如何在机器世界中表达“低层”数据结构和“高层”数据结构?
- 方案1:尽量独立于应用层,采用“中立”的方式表达概念模型
- 方案2:在应用层中,使用特定数据结构,并在逻辑模型中高效支持这一数据结构
- 方案*:通用数据结构采用方案1,关键性数据结构采用方案2
常用数据模型
- 格式化模型
- 层次模型(Hierarchical Model)
- 网状模型(Network Model)
- 关系模型(Relational Model)
- 对象模型(中立的数据模型)
- 面向对象数据模型(Object Oriented Data Model)
- 对象关系数据模型(Object Relational Data Model)
关系模型的数据结构
- 在用户观点下,关系模型中数据的逻辑结构是一张二维表,它由行和列组成
- 关系(Relation):一个关系对应通常说的一张表
- 元组(Tuple):表中的一行即为一个元组
- 属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
- 主码(Key):也称码键。表中的某个属性组,它可以唯一确定一个元组
- 域(Domain):是一组具有相同数据类型的值的集合。属性的取值范围来自某个域。
- 分量:元组中的一个属性值。
- 关系模式
- 对关系的描述
- 关系名(属性1,属性2,…,属性n)
- 学生(学号,姓名,年龄,性别,系名,年级)
- 关系必须是规范化的,满足一定的规范条件
- 最基本的规范条件:关系的每一个分量必须是一个不可分的数据项, 不允许表中还有表
关系模型的操作与完整性约束
- 数据操作(查询、插入、删除、更新)是集合操作,操作对象和操作结果都是关系
- 存取路径对用户隐蔽,用户只要指出“干什么”,不必详细说明“怎么干”
- 关系的完整性约束条件
- 实体完整性
- 参照完整性
- 用户定义的完整性
关系模型的优缺点
- 优点
- 建立在严格的数学概念的基础上
- 概念单一
- 实体和各类联系都用关系来表示
- 对数据的检索结果也是关系
- 关系模型的存取路径对用户透明
- 具有更高的数据独立性,更好的安全保密性
- 简化了程序员的工作和数据库开发建立的工作
- 缺点
- 存取路径对用户透明,查询效率往往不如格式化数据模型
- 为提高性能,必须对用户的查询请求进行优化,增加了开发DBMS的难度
NoSQL
- 基于Key-Value存储模型
- 基于文档模型
- 列族模型
- 基于图模型
- 记为G (V, E),V为结点(node) 集合,每个结点具有若干属性,E为边(edge) 集合,也可以具有若干属性。
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Rashawn's Blog!