数据库模式
三级模式、两级映射
定义:
三级模式:外模式、概念模式和内模式;两级映射:外模式-概念模式映射、概念模式-内模式映射
-
外模式是用户看到的数据库的部分
-
概念模式是数据库的全局逻辑结构
-
内模式是数据库的物理存储结构
-
概念模式到外模式的映射又称为模式映射
-
概念模式到内模式的映射又称为物理映射
应用场景:
数据库的三级模式和两级映射可以帮助数据库管理员和应用程序开发者分离数据库的物理存储结构和逻辑结构,使得不同的用户可以按照自己的需要来访问数据库。例如,一个企业的销售人员只需要访问数据库中的销售数据,而不需要了解数据库的物理存储结构;而数据库管理员则需要了解数据库的物理存储结构,以便对数据库进行管理和优化。通过三级模式和两级映射的设计,可以使得不同的用户可以按照自己的需要来访问数据库,提高了数据库的可维护性和可扩展性。
数据库的设计过程
数据库的设计过程通常包括以下步骤:
-
需求分析:了解用户的需求和业务流程,确定数据库的功能和性能要求。
- 输入:用户需求文档、业务流程图、系统架构图等。
- 输出:需求规格说明书、数据库需求文档、数据流图和数据字典等。
-
概念结构设计:根据需求规格说明书,设计数据库的逻辑模型,包括实体、属性、关系等。
-
输入:需求规格说明书、业务流程图、数据流图和数据字典等。
-
输出:概念模型图、实体关系图【ER模型】等。
-
-
逻辑结构设计:在概念设计的基础上,将逻辑模型转化为关系模型,设计数据库的表结构和约束条件。
- 输入:概念模型图、实体关系图、数据字典等。
- 输出:关系模型图【关系模式】、表结构定义、约束条件等。
-
物理设计:根据逻辑设计,选择合适的数据库管理系统和存储设备,确定物理存储结构和索引策略。
- 输入:关系模型图、表结构定义、约束条件【硬件、OS特性】等。
- 输出:物理存储结构、索引策略、数据库配置文件等。
-
实施和维护:根据物理设计,创建数据库和表,进行数据导入和备份,进行性能优化和故障排除等。
- 输入:物理存储结构、索引策略、数据库配置文件等。
- 输出:数据库实例、表数据、备份文件、性能优化报告等。
E-R模型
ER模型是一种数据模型,用于描述实体之间的关系。其重点内容包括:
-
实体(Entity):表示现实世界中的一个对象,可以是人、物、概念等。
-
属性(Attribute):表示实体的特征或属性,例如人的姓名、年龄、性别等。
-
关系(Relationship):表示实体之间的联系,可以是一对一、一对多或多对多的关系。
-
域(Domain):表示属性取值的范围或类型,例如整数、字符串等。
-
实体集(Entity set):表示同一类实体的集合,例如所有人的集合、所有商品的集合等。
-
关系集(Relationship set):表示同一类关系的集合,例如所有人和商品之间的购买关系的集合。
-
实体间的联系(Cardinality):表示实体之间的关系的数量,例如一对一、一对多或多对多的关系。
-
实体的标识符(Identifier):表示唯一标识一个实体的属性或属性组合,例如人的身份证号、商品的条形码等。
以上是ER模型的重点内容,通过这些内容可以描述现实世界中的复杂关系,为数据库设计提供了基础。
关系代数与元组演算
关系代数是基于集合论的形式化语言,它的操作符包括选择、投影、并、差、笛卡尔积等;
元组演算是基于谓词逻辑的形式化语言,它的操作符包括选择、投影、连接、除等。
举例来说,假设有一个关系数据库中的表格“学生”,其中包含学生的姓名、年龄、性别等属性。下面是一个用关系代数和元组演算分别表示的查询:
关系代数:π姓名(σ年龄>20(学生))
元组演算:{s.姓名 | s∈学生 ∧ s.年龄>20}
两者都是表示查询年龄大于20岁的学生的姓名,但关系代数使用了符号和运算符来描述,而元组演算则使用自然语言。
- 选择(Selection):从关系中选出满足指定条件的元组。
- 投影(Projection):从关系中选出指定属性的元组。
- 连接(Join):将两个关系中符合条件的元组进行组合。
- 笛卡尔积(Cartesian product):将两个关系中的元组按照所有可能的组合方式来进行配对,生成一个新的关系。
- 并(Union):将两个关系中的元组合并成一个关系。
- 差(Difference):从一个关系中删除另一个关系中的元组。
- 交(Intersection):选出两个关系中都存在的元组。
- 自然连接(Natural Join):在连接时自动匹配两个关系中属性名相同的属性。
- 除(Division):选出一个关系中所有元组在另一个关系中都存在的元组。