一、三级模式
不同的数据库产品支持不同的数据模型,使用不同的数据库语言,建立在不同的操作系统上。数据的存储结构也各不相同,但架构基本上都具有相同的特征:采用 三级模式和两级映射。
外模式映像——模式,模式——内模式 映像
数据的独立性:指数据与程序独立,将数据的定义从程序中分离出去,由DBMS负责数据的存储,从而简化应用程序。
数据的独立性包括:数据的物理独立性和数据的逻辑独立性。
1.数据的物理独立性:指当数据库的内模式发生改变时,数据的逻辑结构不变。由于应用程序处理的只是数据的逻辑结构,这样物理独立性可以保证,当数据的物理结构改变,应用程序不用改变,仅仅需要修改概念模式——内模式的映像。
2.数据的逻辑独立性:指用户的应用程序与数据库的逻辑结构是相互独立。数据的逻辑结构发生变化后,用户程序也可以不用修改,仅仅修改外模式——概念模式的映像。
二、关系的性质
数据库的关系有三种类型:基本关系(基本表或者基表)、查询表和视图表。
基本表是实际存在的表,它是实际存储数据的逻辑表示。
查询表是查询结果对应的表。
视图表是由基本表或者其他视图表导出的表,是虚表,不对应实际存储的数据。
基表具有以下性质:
1.列是同质的,即每一列中的分量是同一类型的数据,来自同一个域;
2.不同的列可出自同一个域,称其中的每一列为一个属性,不同的属性要给予不同的属性名;
3.列的顺序无所谓,即列的次序可以任意交换;
4.任意两个元组不能完全相同。但在大多数实际关系数据库产品中,例如Oracle等,如果用户没有定义好有关的约束条件,他们都允许关系表中存在两个完全相同的元组。
5.行的顺序无所谓,即行的次序可以任意交换。
6.分量必须取原子值,即每一个分量都必须是不可分的数据项。
三、E-R模型向关系模型的转换规则
1.一个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码(关键字)就是关系的码;
2.一个1:1的联系可以转换为一个独立的关系模式,也可以与任意一端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相联的各实体的码以及联系本身的属性均转换为关系的属性,每个实体的码均是该关系的候选键;如果与某一端实体对应的关系模式合并,则需要在该关系模式的属性中加入另一个关系模式的码和联系本身的属性。
3.一个1:n联系可以转换为一个独立的关系模式,也可以与任意N端对应的关系模式合并。如果转换为一个独立的模式,则与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为N端实体的码;如果与N端实体对应的关系模式合并,则需要在该关系模式的属性中加入1端关系模式的码和联系本身的属性。
4.一个m:n联系转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
5.三个以上实体间的多元联系可以转换为一个独立的关系模式,与该联系相连的各实体的码以及联系本身的属性均转换为关系的属性,而关系的码为各实体码的组合。
四、数据仓库
数据仓库是一个面向主题的、集成的、相对稳定的且随时间变化的数据集合,用于支持管理决策(即它不是用于业务日常运转的)。
从结构的角度看,有三种数据仓库模型:企业仓库、数据集市和虚拟仓库。
企业仓库收集跨越整个企业的各个主题的所有信息,它提供全企业范围的数据集成,数据通常来自多个操作型数据库和外部信息提供者,并且是跨多个功能范围的。它通常包含详细数据和汇总数据。
数据集市包含对特定用户有用的、企业范围数据的一个子集,它的范围限定选定的主题。
虚拟仓库是操作型数据库上视图的集合。
五、分布式数据库
分布式数据库中,分布透明性指用户不必关系数据的逻辑分片,不必关系数据物理位置分配的细节,也不必关心各个场地上数据库数据模型。
即分片透明性、位置透明性和局部数据模型透明性。
六、反规范化技术
规范化可能性能变化,这就是一个权衡点:反规范化——性能好;规范化——性能不好;
反规范化的好处:降低连接操作的需求、降低外码和索引的数目,可能减少表的数目,能够提高查询效率。
反规范化的坏处:数据的重复存储,浪费了磁盘空间,可能出现数据的完整性问题。为了保障数据的一致性,增加了数据维护的复杂性,会降低修改速度。
反规范化的技术:
增加冗余列:通过增加数据冗余,减少查询的连接操作;
增加派生列:在表中增加可以由本表或者其他表中数据计算生成的列,减少查询时的连接操作并避免计算或使用集合函数;
重新组表:如果许多用户都需要查看两个表的连接结果数据,可以把他们组成新表;
水平分割:一个大表分成几个小表;
垂直分割:主键分别与其他列结合成新表,查询时减少I/O次数;