1、三级模式一两级映像
内模式:管理如何存储物理的
数据
,对数据的存储方式、优化、存放等。
模式:又称为概念模式,
就是我们通常使用的表这个级别
,根据应用、需求将物理数据划分成一张张表。
外模式:
对应数据库中的视图这个级别
,将表进行一定的处理后再提供给用户使用,例如,将用户表中的用户名和密码组成视图提供给登录模块使用,而用户表中的其他列则不对该模块开放,增加了安全性。
外模式的视图级别不是单纯的数据库的view,举例说明1.select a.*,b.* from a,b where a.id=b.id,这种查询展示的结果也是视图级别2.比如a表有3个字段,name,age,sex,select name,age from a这种查询展示的结果也是视图级别
外模式一模式映像:是表和视图之间的映射,存在于概念级和外部级之间,
若表中数据发生了修改,只需要修改此映射,而无需修改应用程序
。
模式一内模式映像:是表和数据的物理存储之间的映射,存在于概念级和内部级之间,
若修改了数据存储方式,只需要修改此映射,而不需要去修改应用程序
。
以上的数据库系统实际上是一个分层次的设计,从底至上称为物理级数据库(实际为一个数据库文件)、概念级数据库、用户级数据库,各层情况如下:

2、数据库的设计
(1)需求分析:即分析数据存储的要求,产出物有
数据流图、数据字典、需求说明书
。获得用
户对系统的三个要求:
信息要求、处理要求、系统要求
。
信息要求主要涉及用户在系统中需要 保存哪些信息,这些信息能够 提供什么样的具体内容,以及 信息间的完整性要求。处理要求关注系统需要 实现哪些功能, 如何处理保存的信息,包括各种操作的频率、响应时间、安全性等。系统要求则包括系统的安全性、可扩展性、用户友好性等方面。
- 安全性要求保护用户数据和系统不被未经授权的访问;
- 可扩展性要求系统能够随着业务增长进行升级和扩展;
- 用户友好性要求系统界面直观易用,适合不同用户的操作习惯。
(2)概念结构设计:就是设计 E-R图,也即实体-联系图,与物理实现无关,就是说明有哪些实
体,实体有哪些属性。
工作步骤包括:选择局部应用、逐一设计分 E-R图、E-R图合并
。
-- 局部应用,分ER图,ER合并。
分E-R 图进行合并时,它们之间存在的冲突主要有以下3 类。
- 属性冲突(重复)。同一属性可能会存在于不同的分E-R 图中,由于设计人员不同或是出发点不同,对属性的类型、取值范围、数据单位等可能会不一致。
- 命名冲突(同义不同名)。相同意义的属性,在不同的分E-R 图上有着不同的命名,或是名称相同的属性在不同的分 E-R 图中代表着不同的意义。
- 结构冲突(结构不同)。同一实体在不同的分 E-R 图中有不同的属性,同一对象在某一分 E-R 图中被抽象为实体而在另一分E-R 图中又被抽象为属性。
(3)逻辑结构设计:将 E-R 图,转换成关系模式,也即转换成实际的表和表中的列属性,这里要考虑很多规范化的东西。
工作步骤包括:确定数据模型、将E-R 图转换成为指定的数据模型、确定
完整性约束和确定用户视图
。
-- 定模型,ER转模型,定约束和视图。
---转换为逻辑结构模型,逻辑结构模型包含很多内容,不只是关系模式、还有层次模式、网状模式等等,关系模式只是逻辑结构模型的经典。
(4)物理设计:根据生成的表等概念,生成物理数据库。
工作步骤包括确定数据分布、存储结
构和访问方式
。
--定下数据分布、存储结构、访问方式
---表里的数据如何存储,如hash存储方式,顺序存储方式,如何访问等等,
具体各个设计阶段的产出物、要求等如下所示:

需求分析:数据流图、数据字典、需求说明书。
概念结构设计:E-R模型(用户的数据模型),与DBMS无关的概念模型。
逻辑结构设计:关系模式、视图、完整性约束、应用处理说明书
第(5)和(6)没有考点不重要
(5)数据库实施阶段。数据库设计人员根据逻辑设计和物理设计阶段的结果建立数据库,编制
与调试应用程序,组织数据入库,并进行试运行。
(6)数据库运行和维护阶段。数据库应用系统经过试运行即可投入运行,但该阶段需要不断地
对系统进行评价、调整与修改。
3、E-R模型
数据模型的三要素:
数据结构、数据操作、数据的约束条件
。
在 E-R模型中,使用椭圆表示属性(一般没有)、长方形表示实体(多线的是强弱实体)、菱形表示联系,联系的两端
要填写联系类型,示例如下图:

联系类型:一对一1:1、一对多1:N、多对多M:N。
属性分类:简单属性和复合属性(属性是否可以分割)、单值属性和多值属性(属性有多个取值)
NULL属性(无意义)、派生属性(可由其他属性生成)。
那么 E-R模型如何转换为关系模型呢(实际就是转换为多少张表)?
- 每个实体都对应一个关系模式;
- 联系分为三种:
- 1:1 联系中,联系可以放到任意的两端实体中,作为一个属性(要保证 1:1的两端关联);
- 1:N 的联系中,联系可以单独作为一个关系模式,也可以在N端中加入1端实体的主键;
- M:N 的联系中,联系必须作为一个单独的关系模式,其主键是M和N端的联合主键。
举例:
1:1 : 一个IP只对应一台电脑,一台电脑只对应一个IP。
1:N :
一个工厂下有多个车间,一个车间只属于一个工厂。
工厂表:编码、名称。车间表:编码、名称、工厂编码。
M:N :
一个员工可以任职多个岗位,一个岗位可以有多个员工。
岗位表:编码、名称、其他
员工表:编码、名称、其他
员工岗位表:员工编码、岗位编码、其他。

4、关系代数运算
关系模式在代数运算时可以理解为数据库中的表,两个概念通用。
并(∪):结果是两张表中所有记录数合并,相同记录只显示一次。
-- 列去重,然后记录要求整体去重。
交(∩):结果是两张表中相同的记录。
差(−
):S1-S2,结果是S1表中有而S2表中没有的那些记录。
-- 删除共有的记录,保留被减数其他的记录。
并:所有记录合并,相同记录只留一个;交:两个共有的记录;差:被减数中减去减数中的记录
列可以写列号也可列名
设有S1和S2关系如下图,其并交差结果如下图:
笛卡尔积(X):S1*S2,产生的结果包括 S1和S2 的所有属性列,并且S1中每条记录依次和 S2 中所有记录组合成一条记录,最终
属性列为S1+S2
属性列,
记录数为S1*S2
记录数。
记录相乘,并且属性列不去重。
投影(π
):实际是按条件选择某关系模式中的某列(垂直方向运算),列也可以用数字表示。
选择(σ
):实际是按条件选择某关系模式中的某行记录(水平方向运算)。
记忆关键字: 投影π 列,选择σ 行
设有S1和S2关系如下图,其笛卡尔积、投影、选择结果如下图:
自然连接(⋈
):结果显示全部的属性列,但是相同属性列只显示一次,显示两个关系模式中属性相同且值相同的记录。自然联接结果如下:
在笛卡尔积基础上属性列去重( 列和记录 ), 条件是 :保留属性且属性值相同的

效率问题:关系代数运算的效率,归根结底是看参与运算的两张表格的属性列数和记录数,属性
列和记录数越少,参与运算的次数自然越少,效率就越高。因此,效率高的运算一般都是在两张表格参与运算之前就将条件判断完。如:

后者效率比前者效率高很多。
结合数据表的操作及相关名词补充:
广义投影:广义投影运算允许在投影列表中使用算术运算,实现了对投影运算的扩充。若有关系R,条件F1,F2, … ,Fn中的每一个都是涉及R中常量和属性的算术表达式,那么广义投影运算的形式定义为

连接:
分为 θ 连接、等值连接与自然连接