【数据库原理】数据库设计概述

数据库设计.

  • 数据库设计是指根据用户需求研制数据库结构和行为的过程。
  • 对于一个给定的应用环境,构造最优的数据库模式,建立数据库及其应用系统;有效地存储数据,满足用户的信息要求和处理要求。
  • 数据库设计分为结构设计行为设计,前者包括概念设计、逻辑设计和物理设计,后者是指用户对数据库的操作
  • 数据库设计的特点:
    ①结构源于行为——强调结构设计与行为设计相结合;
    ②行为总是变化——“反复探寻,逐步求精”

1.数据库设计方法.

  • 直观设计法
  • 规范设计法
  • 计算机辅助设计法
  • 现代数据库设计方法

1.1 直观设计法.

  • 直观设计法也称为手工试凑法,它是最早使用的数据库设计方法
  • 这种方法依赖于设计者的经验和技巧,缺乏科学理论和工程原则的支持,设计的质量很难保证。常常是数据库运行一段时间后又发现各种问题,这样再重新进行修改,增加了系统维护的代价。

1.2 规范设计法.

  • 【基于E-R模型的数据库设计方法】用E-R图构造一个反映现实世界实体之间联系的概念模式,其中E代表实体Entity,R代表关系Relationship.
  • 【基于3NF的数据库设计方法】确定数据库中的全部属性和属性间的依赖关系,分析不符合3NF的约束条件,将其进行投影分解,规范成若干个3NF关系模式的集合。
  • 【基于视图的数据库设计方法】先从分析各个应用的数据着手,并为每个应用建立自己的视图,然后再把这些视图汇总起来合并成整个数据库的概念模式。

1.3 计算机辅助设计法.

  • 计算机辅助设计法是指在数据库设计的某些过程中模拟某一规范化设计的方法,并以人的知识或经验为主导,通过人机交互方式实现设计中的某些部分。

1.4 现代数据库设计方法.

  • 围绕软件工程的思想,通常以E-R图设计为主体,辅以3NF设计和视图设计实现模式的评价和优化,吸收各种设计方法的优势。
  • 为提高设计的协同效率和规范化程度,现代数据库设计过程还会通过计算机辅助设计工具获得规范的数据库设计结果。

2. 数据库设计步骤.

  • 【系统需求分析】收集信息内容和处理要求,进行分析;
  • 【概念结构设计】表达用户需求的概念模型;
  • 【逻辑结构设计】 由概念模型得出的数据模型;
  • 【物理结构设计】存储结构和存取方法;
  • 【数据库实施 】数据入库,编写数据库存取程序;
  • 【数据库运行与维护】收集和记录实际系统运行的数据。
  • 关于概念结构逻辑结构物理结构,在数据库系统概述(三)中提到过。
  • 概念模型不依赖于具体的计算机系统,也不涉及信息在计算机内如何表示、如何处理等问题,仅仅是用于描述某个特定应用情景下关心的信息;
  • 逻辑模型是按照计算机的观点对数据和信息建模,它是属于计算机世界中的模型,有着严格的形式化定义,便于在计算机中实现。任何一个DBMS都是根据某种逻辑模型有针对性地设计出来的,即数据库是按照DBMS规定的数据模型组合和建立起来的,因此我们说逻辑模型主要用于DBMS的实现。
  • 物理模型是对数据最底层的抽象,它描述数据在磁盘上的存储方式和存储方法,是面向计算机系统的。物理模型的具体实现是DBMS的任务,并且从逻辑模型到物理模型的转换也是由DBMS完成的。

2.1 系统需求分析.

  • 系统需求分析是数据库设计的起点,为以后的具体设计做准备。需求分析的结果是否准确地反映了用户的实际要求,将直接影响到后面各个阶段的设计,并影响到设计结果是否合理和实用。
  • 系统需求分析的不正确或误解,直到系统测试阶段才发现许多错误,纠正起来要付出很大代价。
  • 系统需求分析的任务:①调查分析用户活动,明确用户的需求目标;②收集和分析需求数据,确定系统边界;③编写需求分析报告,组织专家评审。
  • 系统需求分析的方法:①自顶向下的需求分析;②自底向上的需求分析。

在这里插入图片描述

  • 自顶向下的分析方法(也叫结构化分析法,Structured Analysis,AS)是最简单实用的分析方法。它从最上层入手,以逐层分解的方式分析系统,用数据流图(Data Flow Diagram,DFD)和数据字典(Data Dictionary,DD)描述系统。
  • 【数据流图DFD】用命名的箭头表示数据流、用圆圈表示处理、用不封闭的矩形或其他形状表示存储、用封闭的矩形表示来源和输出。
    在这里插入图片描述
  • 【数据字典DD】数据字典是对系统中数据的详细描述,是各类数据结构和属性的清单 。在需求分析阶段,它通常包含以下五部分内容:数据项数据结构数据流数据存储处理过程,最终形成的数据流图和数据字典为系统分析报告的主要内容,这是下一步进行概念结构设计的基础。

【例】本科教学环节中的核心业务——任课和选课:任课业务仅关心教师教授课程情况;选课业务主要记录哪些学生选择了哪些课程,以及这门课程的得分。

  • 【数据流图—任课业务】
    在这里插入图片描述
    教学管理人员在任课安排的过程中,需要依据大纲中的课程信息和任课教师的教师信息,讲大纲中的课程安排给相关教师,并将安排后的信息保存为任课信息。
  • 【数据流图—选课业务】List item
    学生在选择课程时,需要依据本学期的课程安排情况和学生的自然情况(年级、时间安排等)进行课程的选取,选择课程信息将保存到学生选课情况中。学期课程结束后,授课教师会根据选课情况为学生评分,最终的分数保存到课程分数中。
  • 【数据字典】
    学生自然情况信息:学生的学号、姓名、年龄和院系等。
    课程信息:课程的编号、名字和授课教师等。
    教师信息:教师的编号、名字、教师的性别、职称和教授课程等。
    任课信息:课程名和授课教师名等。
    学生选课信息:学生名、课程名和教师名等。
    课程分数信息:学生名、课程名和分数等。
  • 【隐含数据结构】除上述信息外,还需进一步分析该系统中是否还有隐含的数据结构。实际调研结果表明高校的管理通常以系别为单位,如果不划分系别,则各院系学生和教师的信息将混杂在一起,不便于开展各项业务。因此,还需要对系的数据项进行定义。
    系别:系的编号、名称、系的老师和系的学生。

2.2 概念结构设计.

  • 概念结构设计就是将需求分析得到的用户需求抽象为信息结构,即概念模型。
  • 从逻辑设计中分离出概念设计以后,各阶段的任务相对单一化,设计复杂程度大大降低,便于组织管理。
  • 概念模型不受特定的DBMS的限制,也独立于存储安排和效率方面的考虑,因而比逻辑模型更为稳定。
  • 概念模型不含具体的DBMS所附加的技术细节,更容易为用户所理解,因而更有可能准确反映用户的信息需求。
  • 概念模型的特点:语义表达能力丰富、易于交流和理解、易于修改和扩充、易于向数据模型转换。
  • E-R模型是最著名、最实用的一种是概念模型,于1976年被P.P.Chen提出。
  • 【实体型】以矩形框表示,框内标注实体名称。
  • 【属性】以椭圆形框表示,框内标注属性名称,并用无向边将其与相应的实体相连。
  • 【联系】以菱形框表示,框内标注联系名称,并用无向边与有关实体相连,同时在无向边旁标记上联系的类型,即1:1、1:n或m:n.
    在这里插入图片描述
    在这里插入图片描述
    【例】学生与课程联系的完整的E-R图:
    在这里插入图片描述

2.2.1 概念结构设计方法.

  • 自顶向下,逐步求细
  • 自底向上,由精细到整体
  • 逐步扩张,由核心逐渐向外扩充
  • 混合策略,自顶向下结合自底向上

2.2.1.1 自底向上的设计方法.

  • 进行数据抽象,设计局部E-R图,即设计用户视图;
  • 集成各个局部E-R模型,形成全局E-R模型,即视图集成。
    在这里插入图片描述
  • 【局部E-R模型设计】① 属性必须是不可分的数据项,不能再由另一些属性组成;② 属性不能与其他实体具有联系,联系只能发生在实体之间。
  • 系别作为一个属性或实体:
    在这里插入图片描述
  • 合并局部E-R图,消除局部E-R图之间的冲突,生成初步E-R图。
  • 消除不必要的冗余,生成基本E-R图。冗余指冗余的数据和实体之间冗余的联系。冗余的数据是指可由基本的数据导出的数据。冗余的联系是由其他的联系导出的联系。

【例】
①一个学生可选修多门课程,一门课程可为多个学生选修,因此,学生和课程是多对多的联系。
②一个教师可讲授多门课程,一门课程可为多个教师讲授,因此,教师和课程也是多对多的联系。
③一个系可有多个教师,一个教师只能属于一个系,因此,系和教师是一对多的联系,同样系和学生也是一对多的联系。
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

2.3 逻辑结构设计.

  • 为了建立用户要求的数据库,需要将上一步得到的概念模型转换为某个具体的DBMS所支持的数据模型。从E-R图表示的概念模型可以转换到任何一种具体的DBMS所支持的数据模型,例如网状模型、层次模型和关系模型,我们下面讨论关系模型。
  • 【转换原则】①实体:一个实体转换为一个关系模式,实体的属性就是关系的属性,实体的码为关系的主码。②联系:一个联系转换为一个关系模式,与该联系相关的实体们的主码以及该联系的属性是该关系的属性,该关系的主码需要根据联系的类型确定。
  • 如果联系为1:1,则每个实体的主码都是关系的候选码;
  • 如果联系为1:n,则n端实体的主码是关系的主码;
  • 如果联系为n :m,则每个实体的主码的组合是关系的主码。
  • 【特殊情况】三个或三个以上实体间的一个多元联系,与该多元联系相连的各实体的主码及联系本身的属性均转换成为关系的属性,转换后主码为各实体码的组合。
    在这里插入图片描述
    转换为关系模式【供应】(供应商号项目号零件号,数量)

【例】按照上一步骤中得到的E-R进行转换。

实体:

  • 学生(学号,姓名,性别,年龄)
  • 系(系编号,系名,电话)
  • 课程(课程号,课程名)
  • 教师(教师号,姓名,性别,职称)

联系:

  • 属于(教师号,系编号)
  • 讲授(教师号课程号)
  • 选修(学号课程号,成绩)
  • 拥有(学号,系编号)

2.3.1 模式评价与改进.

  • 【 功能评价】出现问题,回溯分析,对照需求分析的结果,检查规范化后的关系模式集合是否支持用户所有的应用要求。
  • 【性能评价】 执行效果,对实际性能进行估计,包括逻辑记录的存取数、传送量以及物理结构设计算法的模型等 。
  • 如果因为系统需求分析、概念结构设计的疏漏导致某些应用不能得到支持,则应该增加新的关系模式或属性。
  • 如果因为性能考虑而要求改进,则可采用合并或分解的方法。
  • ★对关系模式进行合并处理,合并具有相同主码的关系模式。

【例】针对上面得到的关系模式,进行合并改进。
在这里插入图片描述
最终得到:

  • 学生(学号,姓名,性别,年龄,系编号)
  • 课程(课程号,课程名)
  • 教师**(教师号**,姓名,性别,职称,系编号)
  • 讲授(教师号课程号)
  • 选修(学号课程号,成绩)
  • 系(系编号,系名,电话)

2.4 物理结构设计.

  • 对于给定逻辑模型,选取一个最适合应用环境的物理结构的过程。有效地实现逻辑模式,确定所采取的存取策略。
  • 【确定物理结构】在关系数据库中主要指存取方法和存储结构。
  • 【评价物理结构】评价的重点是时间和空间效率。
  • 数据库系统是多用户共享的系统,对同一个关系要建立多条存取路径才能满足多用户的多种应用要求。物理结构设计的任务之一是根据数据库管理系统支持的存取方法确定选择哪些存取方法。
  • 【聚集】针对重复的存储和高频的查询。为了提高查询速度,把在一组(包含单属性的情况)属性上具有相同值的元组集中存放在一个物理块中,这组属性称为聚集码
  • 对经常在一起进行连接操作的关系可以建立聚集。
  • 如果一个关系的一组属性经常出现在相等比较条件中,则该单个关系可建立聚集。
  • 如果一个关系的一组属性上的值重复率很高,则此单个关系可建立聚集。即对应每个聚集码值的平均元组数不能太少,太少则聚集的效果不明显。
  • 【索引】保证数据的完整性,提高查询效率,但注意维护成本。
  • 如果一组属性经常在查询条件中出现,则考虑在这组属性上建立索引(或组合索引)。
  • 如果一个属性经常作为最大值和最小值等聚集函数的参数,则考虑在这个属性上建立索引。
  • 如果一组属性经常在连接操作的连接条件中出现,则考虑在这组属性上建立索引。
  • 【数据存放位置】为了提高系统性能,应该根据应用情况将数据的易变部分、稳定部分、经常存取部分和存取频率较低部分分开存放。在多磁盘下,将表和索引、日志和数据库对象分开存储。

猜你喜欢

转载自blog.csdn.net/weixin_44246009/article/details/108164124