分享
  1. 首页
  2. 文章

希赛-数据库系统工程师 | 完结

sssaaa · · 6 次点击 · · 开始浏览

获课地址:xingkeit.top/8014/ 数据库设计是数据库系统工程师考试的核心科目,也是构建高质量数据库应用系统的基石。一个优秀的数据库设计能够确保数据的完整性、一致性、最小化冗余,并提高系统的性能与可扩展性。在考试大纲中,数据库设计通常遵循软件工程的生命周期,划分为六个主要阶段:需求分析、概念结构设计、逻辑结构设计、物理设计、实施与运行维护。 本文将重点剖析前四个关键阶段,帮助考生系统梳理从"用户需求"到"存储方案"的设计思路与应用技巧。 一、需求分析:设计的基石 需求分析是整个数据库设计的第一步,也是最重要、最困难的阶段。其任务是准确了解与分析用户的需求(包括数据与处理),确定系统必须完成的功能。 1. 主要内容 需求分析不仅仅是问用户要存什么数据,更要搞清楚数据之间是如何流转的。它主要包括两个方面的分析: 数据需求:用户需要存储哪些数据?数据之间有什么联系?数据的属性有哪些? 处理需求:用户需要对数据进行哪些操作(查询、插入、删除、修改)?操作的频率如何?响应时间有何要求? 2. 常用方法与工具 在考试中,需求分析阶段最常见的输出是数据流图(DFD)和数据字典(DD)。 数据流图(DFD):用于描述系统的数据流向和处理过程。它从数据传递和加工的角度,以图形方式刻画系统中的信息流动。考生需要掌握DFD的四个基本元素:外部实体、数据流、数据存储和处理过程。 数据字典(DD):是对数据流图中所有元素的定义集合。它是元数据的集合,详细描述了数据项、数据结构、数据流、数据存储和处理过程的具体逻辑。注意:DFD和DD是必须结合使用的,缺一不可。 3. 阶段成果 需求分析阶段的最终成果是需求规格说明书,其中包括系统的数据流图、数据字典和详细的处理逻辑说明。这一步是后续概念结构设计的依据,如果需求分析做得不到位,后续的设计就像空中楼阁。 二、概念结构设计:从现实到模型 概念结构设计是将需求分析得到的用户需求抽象为信息结构(即概念模型)的过程。这一阶段独立于具体的数据库管理系统(DBMS)和硬件系统,主要目标是描述现实世界的概念模型。 1. 核心工具:E-R图 实体-联系方法是概念结构设计中最著名、最实用的方法。E-R图(实体-联系图) 是考试下午案例分析题中的绝对主角。 实体:客观存在并可相互区别的事物,如"学生"、"课程"。 属性:实体所具有的某一特性,如"姓名"、"学号"。 联系:实体之间的关联。 1:1(一对一):如班级与班长。 1:N(一对多):如班级与学生(这是最常见的联系)。 M:N(多对多):如学生与课程(选课关系)。在考试中,多对多联系通常需要转换为中间表。 2. 设计策略 概念结构设计通常采用"自顶向下"、"自底向上"或"混合策略"。在考试场景中,通常是给出一段描述性文字,要求考生提炼出实体、联系和属性,画出局部E-R图,然后合并为全局E-R图。 3. 阶段成果 本阶段的成果是概念模型(E-R图)。它不仅直观地反映了现实世界的实体及其联系,而且是向逻辑结构过渡的桥梁。 三、逻辑结构设计:从模型到模式 逻辑结构设计的主要任务是将概念结构设计阶段得到的E-R图,转换为特定的DBMS(如关系型数据库)所支持的逻辑数据模型(即关系模式)。这是数据库设计中最具"技术含量"的环节。 1. E-R图向关系模式的转换 这是考试必考的转换规则,必须牢记以下几点: 实体转换:每个实体型转换为一个关系模式,实体的属性就是关系的属性,实体的码就是关系的码。 1:1联系转换:可以将联系加入到任意一端的关系模式中,通常将码和联系属性加入到另一端。 1:N联系转换:将"1"方的主码和联系本身的属性加入到"N"方的关系模式中作为外码。 M:N联系转换:必须为联系创建一个新的独立关系模式。其属性包括两端实体的主码(作为外码)以及联系本身的属性,这两个外码的组合构成新关系的主码。 2. 数据规范化 转换得到的关系模式可能存在冗余、插入异常、删除异常和更新异常等问题。为了解决这些问题,必须应用规范化理论对模式进行优化。考试中常涉及三大范式: 第一范式(1NF):强调属性不可再分(原子性)。 第二范式(2NF):基于1NF,消除非主属性对码的部分函数依赖。这通常发生在主码是组合属性的情况下。 第三范式(3NF):基于2NF,消除非主属性对码的传递函数依赖。 3. 用户外模式设计 根据用户的需求和应用场景,设计视图。视图可以屏蔽数据的复杂性,提供数据安全性,并简化用户查询。 4. 阶段成果 本阶段的成果是数据库的逻辑模式(即一组满足3NF的关系模式),以及相关的视图定义。 四、物理设计:从模式到存储 物理结构设计是根据逻辑结构设计的结果,并结合具体的计算机软硬件环境(DBMS、操作系统、硬件性能),为逻辑数据模型选取一个最适合应用环境的物理结构(包括存储结构和存取方法)。 1. 存取方法的选择 如何高效地存取数据是物理设计的核心。 索引方法:B+树索引是关系数据库中最常用的索引结构,适合等值查询和范围查询。哈希索引适合等值查询。考生需要知道在哪些属性上建立索引(如频繁作为查询条件的属性、连接操作的属性)。 聚簇:将一个或多个属性值相同的记录聚簇在一起存放,适合按该属性进行大量查询或范围查询的情况,能提高I/O速度。 2. 存储结构的选择 确定数据的存放位置、存储块大小、溢出区处理方式等。 数据分区:将数据分布在不同的磁盘或存储区域,可以提高并发访问能力。 数据压缩:对于大文本或历史数据,可考虑压缩存储以节省空间,但会增加CPU开销。 3. 性能评价 物理设计往往需要进行反复的评估和调整。评价的指标主要包括查询响应时间、存储空间利用率、事务吞吐量等。在考试中,通常以"给出一个场景,选择优化方案"的形式出现,例如:"为了提高经常按‘学号’查询的速度,应该做什么操作?"答案通常是在学号上建立索引。 五、总结:从原理到考试的升华 在数据库系统工程师考试中,设计题往往不是孤立考察某一个阶段,而是要求考生对整个流程有连贯的理解。 备考核心思路: 读懂故事:需求分析阶段,要能从冗长的文字描述中提炼出DFD和数据字典。 画准图形:概念设计阶段,要能准确画出E-R图,特别是区分1:N和M:N关系。 转换规则:逻辑设计阶段,E-R图转关系模式的规则必须烂熟于心,尤其是多对多关系的处理。 模式优化:掌握函数依赖和范式的判断,能识别并解决异常。 理解索引:物理设计阶段,理解索引的作用和代价,能根据查询需求做出合理选择。 数据库设计是一门艺术,也是一门科学。从抽象的需求到具体的存储,每一个环节都环环相扣。掌握了这套设计流程,不仅能顺利通过考试,更能在实际工作中构建出稳健、高效的数据库系统。

有疑问加站长微信联系(非本文作者))

入群交流(和以上内容无关):加入Go大咖交流群,或添加微信:liuxiaoyan-s 备注:入群;或加QQ群:692541889

关注微信
6 次点击
添加一条新回复 (您需要 后才能回复 没有账号 ?)
  • 请尽量让自己的回复能够对别人有帮助
  • 支持 Markdown 格式, **粗体**、~~删除线~~、`单行代码`
  • 支持 @ 本站用户;支持表情(输入 : 提示),见 Emoji cheat sheet
  • 图片支持拖拽、截图粘贴等方式上传

用户登录

没有账号?注册
(追記) (追記ここまで)

今日阅读排行

    加载中
(追記) (追記ここまで)

一周阅读排行

    加载中

关注我

  • 扫码关注领全套学习资料 关注微信公众号
  • 加入 QQ 群:
    • 192706294(已满)
    • 731990104(已满)
    • 798786647(已满)
    • 729884609(已满)
    • 977810755(已满)
    • 815126783(已满)
    • 812540095(已满)
    • 1006366459(已满)
    • 692541889

  • 关注微信公众号
  • 加入微信群:liuxiaoyan-s,备注入群
  • 也欢迎加入知识星球 Go粉丝们(免费)

给该专栏投稿 写篇新文章

每篇文章有总共有 5 次投稿机会

收入到我管理的专栏 新建专栏