一、数据库发展史
1 数据管理技术发展
在数据库阶段之前,数据管理技术经历了三个阶段:
人工管理阶段、文件系统阶段、倒排文件系统阶段。
1.1 人工管理阶段
特点:数据不保存在计算机内。计算机只用于计算。没有文件概念,只有程序概念。数据面向程序。
人工管理阶段数据与程序的关系:
1.2 文件系统阶段
数据以文件形式长期保存在外部存储器上。文件组织多样化。数据面向应用。对数据的操作以记录为单位。
文件系统阶段数据与程序的关系:
文件系统的三个缺点:
- 数据冗余
- 不一致性
- 数据联系弱
2 数据库技术发展
2.1 数据库技术的产生
三件大事标志着数据库技术的产生:
IMS系统,DBTG报告,E.F.CODD文章
2.2 数据库阶段的特点
有较高的数据独立性:物理独立性、逻辑独立性
提供数据控制功能:恢复、并发控制、完整性、安全性
完整性:保证数据库中的数据始终是正确的。
数据库系统阶段数据与程序的关系:
二、数据库系统结构
1 基本概念
三个世界:现实世界,信息世界,机器世界
现实世界通过概念设计进入信息世界,信息世界通过逻辑设计进入机器世界。
概念设计——
实体:一个事物。如一名学生。
实体集:性质相同的同类实体。如一群学生。
属性:实体的属性。如学生的学号,学生的年龄。
实体标识符:即KEY。能唯一标识实体的属性。如学生的学号。
术语的对应关系——
概念设计 | 逻辑设计 |
---|---|
实体 | 记录 |
实体集 | 文件 |
属性 | 字段 |
实体标识符 | 关键码 |
二元联系:分为一对一、一对多、多对多
记法:脑中刻画出两个集合。
左为一对一,中为一对多,右为多对多。
2 数据模型
共分两大类:概念数据模型(ER模型)和结构数据模型(关系模型)
结构数据模型应包括:数据结构,数据操作和数据完整性约束。
2.1 ER模型
ER(Entity Relationship)模型。直接从现实世界抽象出联系和实体类型。
ER图——
在ER图中属于键的属性名下画一条横线。
2.2 层次模型
用树形结构表示实体间的联系。上一层记录和下一层记录之间的联系是1:N联系。
缺点:
只能表示1:N联系;由于层次顺序复杂,编程也复杂。
2.3 网状模型
用图表示实体间联系。箭头表示从箭尾处的记录类型到箭头处的记录类型间的联系是1:N
每个M:N联系用两个1:N联系实现。
缺点:数据结构复杂和编程复杂。
2.4 关系模型
用二维表格表达实体集。每张表格表达的是实体集,是实体集,是实体集!(三个字)
每个关系就是一张二维表格。
将ER图转换成关系模型的时候,要考虑:1,自己的属性;2,主键,外键;3,联系的属性
PROJECT(JNO,JNAME,DATE)
PART(PNO,PNAME,COLOR,WEIGHT)
SUPPLIER(SNO,SNAME,SADDER)
P_P(JNO,PNO,TOTAL)
P_S(PNO,SNO,QUANTITY)
关系模型 和 层次\网状模型的最大差别是数据间的联系通过外键实现,而不是通过指针实现。
3 数据库的体系结构
3.1 三级模式
数据库的体系结构分为三级:外部级,概念级,内部级
即外模式,概念模式(模式),内模式
- 外模式:是单个用户的视图。
- 概念模式:涉及所有的数据定义,是全部的表。
- 内模式:最接近于物理存储设备,涉及物理数据存储结构。
3.2 两级映像
外模式/模式映像 和 模式/内模式映像
3.3 两级数据独立性
逻辑数据独立性和物理数据独立性。
物理独立性的实现:如果数据库的内模式要修改,则只要对模式/内模式映像作相应修改,就可以使概念模式尽可能保持不变。
逻辑独立性的实现:如果数据库的概念模式要修改,则只要对外模式/模式映像作相应修改,就可以使外模式和应用程序保持不变。
记法:影响都是向上影响的。
一个是内模式要修改,我们就只改模式/内模式映像。让它的修改对上面的影响变小。
一个是概念模式要修改,我们就只改外模式/模式映像。让它的修改对上面的影响变小。
习题:
名词概念的解释:
联系的元数:与一个联系有关的实体集的个数。
数据独立性:应用程序和DB的数据结构之间相互独立,不受影响。
物理数据独立性:在DB的物理结构改变时,尽量不影响应用程序。
逻辑数据独立性:在DB的逻辑结构改变时,尽量不影响应用程序。
主语言:编写应用程序的语言。
DD:数据字典。存放三级结构的定义。
非过程性语言:用户编程时,只需指出做什么。不需要指出怎么做。
2.3 设某商业集团数据库有三个实体集。一是“商品”实体集,属性有商品号、商品名、 规格、单价等;二是“商店”实体集,属性有商店号、商店名、地址等;三是“供应商” 实体集,属性有供应商编号、供应商名、地址等。 供应商与商品之间存在“供应”联系,每个供应商可供应多种商品,每种商品可向多 个供应商订购,每个供应商供应每种商品有个月供应量;商店与商品间存在“销售”联 系,每个商店可销售多种商品,每种商品可在多个商店销售,每个商店销售每种商品有个 月计划数。 试画出反映上述问题的 ER 图,并将其转换成关系模型。
ER图
ER图可以转换成5个关系模式:
商品(商品号,规格,单价)
供应商(供应商编号,供应商名,地址)
商店(商店号,商店名,地址)
供应(商品号,供应商编号,月供应量)
销售(商店号,商品号,月计划数)
2.4 试述 ER 模型、层次模型、网状模型、关系模型和面向对象模型的主要特点。
ER模型能直接表示实体类型及实体间联系,与计算机系统无关,让用户易于理解。
层次模型为树结构,记录之间的联系通过指针实现。
网状模型为有向图结构,记录之间联系通过指针实现。
关系模型的数据结构是二维表格。记录之间联系通过外键实现。属于非过程化语言,编程简单。
面向对象模型能完整描述现实世界的数据结构。
2.5 数据之间联系在各种结构数据模型中是怎么实现的?
在层次、网状模型中,数据之间的联系通过指针实现的。
在关系模型中,数据之间联系通过外键和主键间联系实现的;
在面向对象模型中,数据之间嵌套、递归联系通过对象标识符(OID)实现的。
2.6 DB 的三级模式结构描述了什么问题?试详细解释。
DB 的三级模式结构是对数据的三个抽象级别,分别从外部(用户)级、概念级和内部级去观察数据库。
外部级是用户使用的局部数据库的逻辑结构,其描述称为外模式。
概念级是 DB 的整体逻辑结构,其描述称为概念模式。
内部级是 DB 的物理结构,其描述称为内模式。
2.7 试述概念模式在数据库结构中的重要地位
数据按外模式的描述提供给用户,按内模式的描述存储在磁盘中,而概念模式提供了连接这两级的相对稳定的中间观点,并使得两级的任何一级的改变都不受另一级的牵制。
2.8 什么是数据独立性?其目的是什么?
数据独立性是指应用程序与DB的数据结构之间相互独立。其目的是在DB的物理或逻辑数据结构改变时,尽量不影响应用程序。
2.9 数据独立性与数据联系这两个概念有什么区别?
数据独立性指应用程序和DB的数据之间相互独立。
数据联系指的是DB内记录之间的联系。