文章目录
数据库管理技术的发展
- 人工管理阶段(20世纪50年代中期以前)
- 文件系统阶段(20世纪50年代后期—60年代中期)
- 数据库系统阶段(20世纪60年代后期之后)
人工管理阶段
文件系统阶段
- 文件系统是操作系统用于管理辅存(磁盘/磁带)数据的子系统,提供数据的物理存储和存取方法
- 在文件系统中,一个命名的数据集合称为文件
- 文件是操作系统管理数据的基本单位
- 当数据文件修改时,应用程序必须作相应修改
文件系统的数据结构
- 数据结构由应用程序定义和解释
- 数据项一般是定长的
- 文件是孤立的,数据整体无结构
- 数据的最小存取单位是记录
数据库系统阶段
数据库系统VS文件系统
-
文件系统的弱点
- 记录之间无联系
- 难于维护数据的完整性
- 难以查询
-
数据库系统的优点
- 整体数据结构化
- 强大的数据查询及安全性、完整性维护能力
数据库系统各阶段的比较
数据库系统
数据库的定义
数据库(Database,简称DB)是==长期储存在计算机内、有组织的、可共享的大量==数据的集合。
数据库的特点:
- 描述了现实世界的某些方面
- 数据间有密切联系
- 具有最小的冗余度和较高的独立性
- 可服务于多个应用
- 可被多用户共享使用
数据库系统的定义
数据库系统(Database System/DBS)是实现有组织、动态地存储大量相关的结构化数据、方便各类用户访问的计算机软/硬件资源的集合。
数据库系统的组成
DBS是由数据库(DB)、数据库管理系统(DBMS)以及应用程序等组合构成的完整系统。
- 硬件平台
- 软件平台
- 数据库(DB)
- 数据库管理系统(DBMS)
- 开发工具
- 应用程序
- 用户
构成数据库系统的主要软件成分:
数据库管理系统(DBMS):为建立、使用和维护数据库而配置的通用软件系统,是整个数据库系统的核心。
数据库系统的用户
数据库管理员
全面负责数据库系统的管理、维护和正常使用的人员。
应用程序员
负责设计和编写应用系统的程序模块,并进行调试、安装和维护。
终端用户(End User)
又称为最终用户,通过应用系统的用户接口使用数据库。常用的接口方式有浏览器、菜单驱动、表格操作、图形显示、报表书写等,给用户提供简明直观的数据表示。
数据库系统的特征
- 面向全组织的数据结构
- 信息完整且功能通用
- 数据冗余度小、易扩充
- 面向实际应用的数据抽象(又称数据模型化)
- 支持数据的不同视图
- 较高的数据的独立性
- 支持多种用户界面
- 完善的数据管理控制功能
数据模型
数据模式的定义
数据库中的数据是有组织的,即不只有数据,还包括描述数据的部分,通常称为数据模式
数据模型是数据库系统中用于提供信息表示和操作手段的形式构架
数据模型是规定现实世界数据特征的抽象,是用来描述数据的语法、语义和操作的一组概念的集合
数据模型是对现实世界某方面的抽象和模拟
数据抽象
对数据模型的要求
-
能比较真实地模拟现实世界
-
容易为人所理解
-
便于在计算机上实现
注意:前2条与第3条之间往往是矛盾的!
三种数据模型
概念模型
也称信息模型,它是按用户的观点对数据和信息建模,用于数据库概念设计和建模。
概念模型用于信息世界的建模。
- 是现实世界到机器世界的一个中间层次
- 是数据库设计的工具。
- 是数据库设计人员和用户之间交流的语言工具。
实体-联系(ER)模型
最常用的概念模型的表示方法是实体-联系方法(Entity-Relationship Approach)。
信息世界中的基本概念
-
实体(Entity)
客观存在并可相互区别的事物称为实体,可以是具体的人、事、物或抽象的概念。
实体集(entity set):具有共同属性的所有实体的集合;
实体的表示:
E={A1,…,An}(外延法)
E(A1,…,An) (内涵法) -
属性(Attribute)
实体(或联系)所具有的某方面特征称为属性
一个实体可以由若干个属性来刻画
值集:属性的取值范围,也称为域(Domain)
属性的表示:
一般属性: A:E→ρ(V1)×ρ(V2)……×ρ(Vn)
简单属性: A:E→ρ(V) -
码/键/关键字(Key)
可唯一标识实体实例的属性或属性集
-
联系(Relationship)
现实世界中事物内部以及事物之间的联系在信息世界中反映为实体内部的联系和实体之间的联系
将发生在实体之间具有特定含义的对应关系称为联系
两个实体型之间的联系
一对一联系(1:1)
定义:如果对于实体集A中的每一个实体,实体集B中至多有一个(也可以没有)实体与之联系,反之亦然,则称实体集A与实体集B具有一对一联系,记为1:1
实例:
一个班级只有一个班长
一个班长只在一个班中任职
一对多联系(1:n)
定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中至多只有一个实体与之联系,则称实体集A与实体集B有一对多联系,记为1:n
实例:
一个班级中有若干名学生,
每个学生只在一个班级中学习
多对多联系(m:n)
定义:如果对于实体集A中的每一个实体,实体集B中有n个实体(n≥0)与之联系,反之,对于实体集B中的每一个实体,实体集A中也有m个实体(m≥0)与之联系,则称实体集A与实体B具有多对多联系,记为m:n
实例:
一门课程同时有若干个学生选修
一个学生可以同时选修多门课程
E-R图
实体型
用矩形表示,矩形框内写明实体名
属性
用椭圆形表示,并用无向边将其与相应的实体连接起来
联系
用菱形表示,菱形框内写明联系名,并用无向边分别与有关实体连接起来,同时在无向边旁标上联系的类型(1:1、1:n或m:n)
逻辑模型
也称数据模型(狭义) ,它是按计算机系统的观点对数据建模,主要包括网状模型、层次模型、关系模型、面向对象模型等,用于数据库系统实现。
经典逻辑数据模型有三类:
- 层次模型(Hierarchical Model) (树)
- 网状模型(Network Model) (图)
- 关系模型(Relational Model) (表)
层次模型
定义
层次模型是数据库系统中最早出现的数据模型。
层次模型用树形结构来表示各类实体以及实体间的联系。
数据结构
- 记录(record) :描述事物或事物间关系的命名的数据单位,也是数据的存储单位
- 字段(field) :记录的构成部分
基本要求
-
有且只有一个结点没有双亲结点,这个结点称为根结点
-
根以外的其它结点有且只有一个双亲结点
存储结构
邻接法
按照层次树前序遍历的顺序把所有记录值依次邻接存放,即通过物理空间的位置相邻来实现层次顺序。
链接法
-
子女-兄弟链接法:每个记录设两类指针,分别指向最左边的子女(每个记录型对应一个)和最近的兄弟
-
层次序列链接法:按树的前序穿越顺序链接各记录值
网状模型
数据结构
- 记录(Record):数据的存储单位,可包含若干数据项; 注意记录有记录型/记录值的区别。
- 数据项(Data Item):相当于字段,但与层次模型不同,数据项可以是简单数据类型,也可以是多值或复合的数据。
- 简单多值数据项称为向量(vector),复合多值数据项称为重复组(repeating group)。
- 数据库码(database key,DBK):记录的逻辑地址。
基本要求
-
允许一个以上的结点无双亲;
-
一个结点可以有多于一个的双亲;
-
允许两个结点之间有多种关系(称为复合关系)
特点:取消了层次数据模型数据结构的限制,是对层次数据模型的扩展,更具有普遍性适用。
完整性约束
码(Key):唯一标识记录的数据项的集合
-
成员约束:一个记录(值)不能出现在同一系型的多个系值中;
-
插入约束:插入新记录的插入系籍(set membership)类别:
AUTOMATIC(自动连接)
MANUAL(人工连接) -
成员存在方式约束:已插入到某个系值中的属记录的留置系籍类别:
OPTIONAL(任意的)
MANDATORY(强制的)
FIXED(固定的) -
成员记录序约束
关系模型
定义
采用关系模型作为数据组织方式的系统称为关系数据库系统(RDBS)
数据结构
-
关系(Relation):一个关系对应通常说的一张表(Table)
-
元组(Tuple):表中的一行(Row)即为一个元组
-
属性(Attribute):表中的一列即为一个属性,给每一个属性起一个名称即属性名
-
主码(Key):表中的某个属性组,它可以唯一确定一个元组
-
域(Domain):属性的取值范围
-
分量:元组中的一个属性值
-
关系模式:对关系的描述,相当于“表头”部分
表示形式:关系名(属性1,属性2,…,属性n)
数据操纵
集合操作
-
用户对数据的检索操作就是从原来的表中得到一张新的表。
-
即操作对象和操作结果都是若干元组的集合,而不象非关系模型中那样单记录的操作方式。
-
存取路径对用户隐藏,提高了数据的独立性。
完整性约束
域完整性
实体完整性
参照完整性
用户定义的完整性
物理模型
也称存储模型,它是对数据最底层的抽象,描述数据在系统内部的表示方式和存取方法,在磁盘或磁带上的存储方式和存取方法。
数据模型的三要素
数据结构
定义:描述数据库的组成对象,以及对象之间的联系
描述内容
- 与数据类型、内容、性质有关的对象
- 与数据之间联系有关的对象
数据结构是对系统静态特性的描述
数据操作
对数据库中各种对象(型)的实例(值)允许执行的操作及有关的操作规则
数据操作的类型
-
查询
-
更新(包括插入、删除、修改)
数据模型对操作的定义
- 操作的确切含义
- 操作符号
- 操作规则(如优先级)
- 实现操作的语言
数据操作是对系统动态特性的描述
完整性约束条件
定义:一组完整性规则的集合。
完整性规则:给定的数据模型中数据及其联系所具有的制约和储存规则。
用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效、相容。
数据库模式
模式与实例
-
模式(Schema)是数据库中全体数据的结构和特征的描述,它仅仅涉及类型的描述,不涉及具体的值。
-
模式的一个具体值称为模式的一个实例(Instance)。
型和值
- 型(Type)是指对某一类数据的结构和属性的说明。
- 值(Value)是型的一个具体赋值。
- 例:
类型—学生(学号,姓名,年龄)
值——(PB00001001,张三,20)
数据库系统的抽象结构
数据库系统的分层抽象
DBMS管理数据的三个层次
External Level = User Level
某一用户能够看到与处理的数据, 全局数据中的某一部分
Conceptual Level = Logic level
从全局角度理解/管理的数据, 含相应的关联约束
Internal Level = Physical level
存储在介质上的数据,含存储路径、存储方式 、索引方式等
数据(视图)与模式
模式(Schema)
对数据库中数据所进行的一种结构性的描述
所观察到数据的结构信息
视图(View)/数据(Data)
某一种表现形式下表现出来的数据库中的数据
三级模式两层映像
三级模式(三级视图)
External Schema ---- (External) View
某一用户能够看到与处理的数据的结构描述
(Conceptual) Schema ---- Conceptual View
从全局角度理解/管理的数据的结构描述, 含相应的关联约束
体现在数据之间的内在本质联系
Internal Schema ---- Internal View
存储在介质上的数据的结构描述,含存储路径、存储方式 、索引方式等
两层映像
**E-C Mapping **:External Schema-Conceptual Schema Mapping
----将外模式映射为概念模式,从而支持实现数据概念视图向外部视图的转换
----便于用户观察和使用
C-I Mapping :Conceptual Schema-Internal Schema Mapping
----将概念模式映射为内模式,从而支持实现数据概念视图向内部视图的转换
----便于计算机进行存储和处理
两级独立性
逻辑数据独立性
当概念模式变化时,可以不改变外部模式(只需改变E-C Mapping),从而无需改变应用程序。
物理数据独立性
当内部模式变化时,可以不改变概念模式(只需改变C-I Mapping) ,从而不改变外部模式。
数据库管理系统
从用户角度看数据库管理系统DBMS的功能
数据库定义
定义:定义数据库中Table的名称、标题(内含的属性名称及对该属性的值的要求)等
- DBMS提供一套数据定义语言(DDL:Data Definition Language)给用户
- 用户使用DDL描述其所要建立表的格式
- DBMS依照用户的定义,创建数据库及其中的Table
数据库操纵
定义:向数据库的Table中增加/删除/更新数据及对数据进行查询、检索、统计等
-
DBMS提供一套数据操纵语言(DML:Data Manipulation Language)给用户。
-
用户使用DML描述其所要进行的增、删、改、查等操作。
-
DBMS依照用户的操作描述,实际执行这些操作。
数据库控制
定义:控制数据库中数据的使用—哪些用户可以使用,哪些不可以
-
DBMS提供一套数据控制语言(DCL:Data Control Language)给用户
-
用户使用DCL描述其对数据库所要实施的控制
-
DBMS依照用户的描述,实际进行控制
数据库维护
定义:转储/恢复/重组/性能监测/分析…
-
DBMS提供一系列程序(实用程序/例行程序) 给用户
-
在这些程序中提供了对数据库维护的各种功能
-
用户使用这些程序进行各种数据库维护操作
数据库语言
- 数据定义语言(DDL:Data Definition Language)
----DBMS提供给用户,以便用户定义数据格式 - 数据操纵语言(DML:Data Manipulation Language)
----DBMS提供给用户,以便用户对数据进行操作 - 数据控制语言(DCL:Data Control Language)
----DBMS提供给用户,以便用户对数据进行控制 - 数据库各种操作的执行
----DBMS按用户要求进行定义、操纵、控制和维护
从系统实现角度看DBMS的功能
DBMS为完成DB管理,在后台运行着一系列程序…
- 语言编译器:将用数据库语言书写的内容,翻译成DBMS可执行的命令。例如: DDL编译器, DML编译器, DCL编译器等;
- 查询优化(执行引擎)与查询实现(基本命令的不同执行算法):提高数据库检索速度的手段;例如贯穿于数据存取各个阶段的优化程序;
- 数据存取与索引:提供数据在磁盘、磁带等上的高效存取手段。例如:存储管理器,缓冲区管理器,索引/文件和记录管理器等;
- 通信控制:提供网络环境下数据库操作与数据传输的手段。
- 事务管理:提供提高可靠性并避免并发操作错误的手段;
- 故障恢复:使数据库自动恢复到故障发生前正确状态的手段,例如提供了备份、运行日志操控等实用程序;
- 安全性控制:提供合法性检验,避免非授权非法用户访问数据库的手段
- 完整性控制:提供数据及数据操作正确性检查的手段;
- 数据字典管理:管理用户已经定义的信息;
- 应用程序接口(API):提供应用程序使用DBMS特定功能的手段;
- 数据库数据装载、重组等实用程序;
- 数据库性能分析:统计在运行过程中数据库的各种性能数据,便于优化运行;