数据库 1、基础
一、基本概念
数据的四个基本概念:
- 数据(data)
- 数据库(database)
- 数据库管理系统(DBMS)
- 数据库系统(DBS)
1.1 数据库
长期储存、有组织、可共享的大量数据的集合
特征:
-
数据按一定的数据模型组织、描述和储存
-
可为各种用户共享
-
冗余度较小
-
数据独立性搞
-
易拓展
1.2 数据库管理系统
位于用户与操作系统之间的数据管理软件
用于科学地组织和存储数据、高效获取与维护数据
-
数据定义功能
- 提供数据定义语言DDL
- 定义数据库中的数据对象
-
数据组织、存储和管理
- 分类组织、存储和管理各种数据
- 确定组织数据的文件结构和存储方式
- 实现数据之间的联系
- 提供多种存取方法提高存取效率
-
数据操纵功能
- 提供数据操纵语言DML
- 实现对数据可的基本操作,增删改查
-
数据库的事物管理和运行管理
- 数据库有数据库管理系统统一管理
- 保证数据安全性、能够支持多用户对数据的并发使用
- 发生故障后的系统恢复
-
具备数据库的建立与维护功能
- 包括初始化数据、数据转储、恢复、重组之、性能见识、分析等等
-
其他功能
- 数据库管理系统与网络中其他软件系统的通信
- 数据库管理系统之间的数据转换
- 异构数据库之间的互访和互操作
1.3 数据库系统
Database System,由数据库,数据库管理系统、应用程序和数据库管理员组成的一整套存储、管理、处理和维护数据的系统。
二、数据模型
数据模型,就是对现实世界数据特征的抽象。
数据模型是数据库系统的核心和基础。
2.1 两类数据模型
1、概念模型
也叫做信息模型,它是按用户的观点来对数据和信息建模,用于数据库设计
概念模型的一种表示方法:实体-联系方法
2、逻辑模型和物理模型
-
逻辑模型主要包括网状模型、层次模型、关系模型、面向对象数据模型。对象关系数据模型、半结构化数据模型等等
按计算机系统的观点对数据建模,用于DBMS实现
-
屋里面模型是对是数据最底层的抽象,描述数据在学习通内部的表示方式和储存区方法,在磁盘或磁带上的存储方式和存取方法
2.2 概念模型
1、信息世界基本概念
-
1、实体(Entity)
客观存在并可相互区别的事物
可以是具体的人、事、物或抽象的概念
-
2、属性(Attribute)
实体所具有的某一特性
一个实体可以由若干个属性来刻画
-
3、码(Key)
唯一标识实体的属性集称为码
-
4、实体型(Entity Type)
分别实体及其属性的类型
-
5、实体集(Entity Set)
同一类型的实体的集合
-
6、联系(Relationship)
实体之间的联系通常是指不同实体集之间的联系
2、概念模型的一种表示方法:实体-联系方法
该方法使用E-R图来没描述现实世界的概念模型,E-R方法也称为E-R模型。
2.3 数据模型的组成要素
数据模型通常由数据结构、数据操作、数据的完整性约束条件三部分组成
-
数据结构
描述数据库的组成对象,以及对象之间的联系
描述的内容:- 与对象的类型、内容、行政有关
- 与数据之间联系有关
数据结构是对系统静态特性的描述
-
数据操作
对数据库中的各种对象(型)的实例(值)允许执行的操作集合,包括操作和相关的操作规则
类型:增删改查
-
数据的完整性约束条件
-
会给一组完整性规则的集合
完整性规则:给定的数据模型中的制约和依存规则
用来限制数据状态变化
-
2.4 常用的数据模型
-
层次模型
用树形结构表示实体之间的联系
特点:
- 节点的双亲是惟一的
- 智能直接处理一对多的试题练习
- 每个记录类型可以定义一个排序字段、也称为码字段
- 任何记录值只有按其路径查看时,才能显出它的全部意义
- 没有一个子女记录值能够脱离双亲记录值而独立存在
约束条件:
-
无响应的双亲节点值就不能插入子女节点值
-
如果删除双亲节点值,则相应的子女节点值也同时被删除
-
更新操作时,应更新所有响应记录,以保证数据的一致性
优点:
- 层次模型的数据结构比较简单清晰
- 查询效率搞,性能优于关系模型,不低于网状模型
- 层次数据模型提供了良好的完整性支持
缺点:
- 节点之间的多对多联系表示不自然
- 对插入删除操作的限制多,应用程序的辨析比较复杂
- 查询子女节点必须通过双亲节点
- 层次命令趋于程序化
-
网状模型
条件:
- 允许一个以上的节点无双亲
- 一个节点可以由多于一个的双亲
优点:
- 更直接描述现实世界,如一个节点可以由多个双亲
- 有良好的性能,存取效率较高
缺点:
- 结构比较复杂,不利于最终用户掌握
- DDL、DML语言复杂,用户不易使用
- 记录之间联系是通过存取路径实现的,用户必须了解系统结构的细节
-
关系模型
关系模型中数据的逻辑结构是一张二维表
-
域(domain)
是一组具有相同数据类型的值的集合。
-
关系术语 | 一般表格术语 |
---|---|
关系名 | 表名 |
关系模式 | 表头(表格的描述) |
关系 | (一张)二维表 |
元组 | 记录或行 |
属性 | 列 |
属性名 | 列明 |
属性值 | 列值 |
分量 | 一条记录中的一个列值 |
非规范关系 | 表中嵌套的表 |
关系模型要求关系必须是规范化的,关系的每一个分量必须是一个不可分的数据项,也就是表格中不可以有嵌套
三、数据库系统的结构
从数据库最终用户角度看,数据库系统的结构分为:
- 单用户结构
- 主从式结构
- 分布式结构
- 客户-服务器
- 浏览器-应用服务器/数据库多层结构等等
3.1 模式概念
数据模型中有型(Type)和值(Value)的概念。
模式schema
- 数据库逻辑结构和特征的描述
- 是型的描述,不涉及具体值
- 反映的是数据的结构机器联系
- 模式是相对稳定的
实例 (Instance)
- 模式的一个具体值
- 反映数据库某一时刻的状态
- 同一个模式可以由很多实例
- 实例岁数据库中的数据的更新而变动
模式只设计型的描述,不涉及具体的值。模式的一个具体值称为模式的一个实例。同一个模式可以由很多的实例。
模式是相对稳定的,而实例是相对变动的。
3.2 三级模式结构
1、模式(schema)
模式也称为逻辑模式
-
是数据库中全体数据的逻辑结构和特征的描述
是数据库系统模式结构的中间层
-
是所有用户的公共数据视图
-
一个数据库就只有一个模式
-
模式是数据库系统模式结构中的中间层
- 与数据的物理存储细节和硬件环境无关
- 与具体的应用程序、开发工具及程序语言无关
模式的定义:
- 数据的逻辑结构(数据项名字、类型、取值范围……)
- 数据之间的联系
- 数据有关的安全性、完整性要求
数据库管理系统提供模式数据定义语言(模式DDL)来严格地定义模式。
2、外模式(External Schema)
外模式、也称为子模式或用户模式
- 数据库用户(包括应用程序员和最终用户)使用的局部数据的逻辑结构和特征的描述
- 数据库用户的数据视图,是与某一应用有关的数据逻辑表示
外模式的地位:结余模式与应用之间
- 模式与外模式的关系:一对多
- 外模式通常是模式的子集。
- 一个数据库可以有很多个外模式,反映不同的用户的应用需求、看待数据的方式、对数据保密的要求
- 模式中同样的数据,在不同外模式中宝妈咪级别可以是不一样的
- 模式与应用的关系:一对多
- 同一外模式也可以为某一用于的多个应用系统所使用的
- 但一个应用程序只能用一个外模式
- 外模式的用途:
- 是保证数据库安全性的一个有力措施。
- 每个用户只能看见和访问对应外模式中的数据,其余数据不可见。
同模式,可以用DDL定义开发
3、内模式(Internal Schema)
也称为存储模式(Storage Schema)
- 是数据物理结构和存储方式的描述
- 是数据在数据库内部的表示方式
- 记录的存储方式(按照顺序存储、B树结构存储、hash方法存储等等)
- 所以的组织方式
- 数据是否压缩存储
- 数据是否加密
- 数据存储记录结构的规定
- 一个数据库只能有一个内模式
3.3 数据库的二级映像与数据独立性
数据库系统的三级模式是数据的三个抽象级别
二级映像在数据库管理系统内部实现这三个抽象层次的联系和转换
- 外模式/模式映像
- 内模式/内模式映像
1、外模式/模式映像
模式:描述的是数据的全局逻辑结构
外模式:描述的是数据的局部逻辑结构
而同一个模式下可以有很多个外模式
每一个外模式,数据库系统都有一个外模式/模式映像,定义外模式与模式之间的对应关系
映像定义通常包含在各自外模式的描述当中
- 保证了数据的逻辑独立性
- 当模式改变时,由数据库管理员对各个外模式/模式映像做相应的改变,可以使外模式保持不变。
- 应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性
2、内模式/内模式映像
模式/内模式映像定义了数据全局逻辑结构与存储结构之间的对应关系
- eg:说明逻辑记录和字段在内部是如何表示的
数据库中模式/内模式映像是唯一的
该映像定义通常包含在模式描述中
- 保证了数据的物理独立性
- 当数据库的存储结构改变了(如选用另一种存储结构),数据库管理员修改模式/内模式映像,使模式保持不变
- 应用程序不受影响,保证了数据与程序的物理独立性,简称数据的物理独立性
数据库模式:
- 全局逻辑结构是数据库的中心与关键
- 独立于数据库的其他层次
- 设计数据库模式结构时应首先确定数据库的逻辑模式
数据库的内模式:
- 依赖于它的全局逻辑结构
- 独立于数据库的用户试图(外模式)
- 独立于具体的存储设备
- 将全局逻辑结构中所定义的数据结构机器联系按照一定的物理存储策略进行组织,以达到较好的时间与空间效率
数据库的外模式:
- 面向具体的应用程序
- 定义在逻辑模式之上
- 独立于存储模式和存储双设备
- 当应用需求变化较大,对应的外模式不能满足需求的时候,这个外模式需要改变
- 设计外模式需要考虑到应用的扩展性
特定的应用程序
- 在外模式描述的数据结构上编制的
- 依赖于特定的外模式
- 与数据库的模式和存储结构独立
- 不同的应用程序有事可以共用一个外模式
数据库的二级映像
- 保证了数据库外模式的稳定性
- 从底层保证了应用程序的稳定性,除非应用需求本身有变化,否则应用程序一般不需要修改
数据与程序之间的独立性,使得数据的定义和描述可以冲应用程序中分离出去
数据的存取由数据库管理系统管理
- 简化了应用程序的编制
- 减少应用程序的维护和修改