数据库系统设计.pdf
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
数据库系统设计 数据库系统设计主要包括:需求分析,概念结果设计,逻辑结构设计,数据库物理设计⼏个阶段。 ⼀、需求分析 ⼀、需求分析 需求分析阶段有⼀个概念。数据字典:是系统中各类数据描述的集合,是对数据收集和数据分析的详细描述。 包括:1、数据项 2、数据结构 3、数据流 4、数据存储 5、处理过程 ⼆、概念结构设计 ⼆、概念结构设计 概念结构设计阶段,就是对现实世界特征的数据抽象,与DBMS⽆关。很重要的⼀个概念数据模型,肯定都听说过实体(Entity)-联 系(Relationship)模型,即常说的E-R图。 实体(Entity):即客观存在的的事物,如学⽣实体。(个⼈理解其实就是可以对应为关系数据库中的关系模式,说⽩了就是⼀张表) 属性(Attribute):实体所具有的特征,如学⽣实体有学号,姓名,年龄等属性。(个⼈理解就是对应关系数据库,表中的每⼀列) 联系(Relation):两个实体之间关系的抽象表⽰。如学⽣实体与班级实体之间的关系,通常是⼀个动词如,属于。 E-R图表⽰: 图表⽰: 实体:矩形;属性:椭圆;联系:菱形。 联系可以分为⼀对⼀联系(1:1),⼀对多联系(1:n),多对多联系(m:n)。 注意:有⼀点想不通的就是,联系也是有属性的。 三、逻辑结构设计 三、逻辑结构设计 逻辑结构设计阶段的主要⽬的就是将E-R图转换成DBMS所⽀持的数据模型相符合的逻辑结构。(个⼈理解就是根据E-R图绘制出关系 型数据库中所对应的表)。 有⼀句话可以体会下:概念结构是独⽴于任何⼀种数据模型的信息结构,逻辑结构设计是与具体的DBMS相关的。 E-R图向关系模型的转换: 图向关系模型的转换: 有⼀点还不理解,⼀个联系转换为⼀个关系模式。(呃,⼀个动词,也就是怎么能转换成关系模式呢?)具体转换规则,不列出来了, 有三种联系对应着三种转换,1:1联系的转换,1:n联系的转换,m:n联系的转换。 转换后关系的属性:与该联系相连的各实体的键以及联系本⾝的属性 转换后关系的键:两个实体键的组合是该关系的键 其实看例⼦个⼈理解,还是⼀个实体可以对应⼀张表,暂时这样记下来吧。只不过有可能转换后的关系模式不满⾜第三范式,这就引出 了下⼀个知识点。 数据模型的优化: 数据模型的优化: (1)根据范式理论进⾏优化 其实就是调整转换后的关系模式,使其满⾜第三范式或者更⾼范式。有三个步骤: (1) 确定函数依赖 (2) 对函数依赖进⾏处理 (3) 对数据模式进⾏分解 个⼈理解,由例⼦可以看出,优化的过程其实就是消除依赖的过程。 (2)对关系模式进⾏⽔平和垂直分解。 其实就是关系型数据库中视图的概念。设计出⽤户⼦模式 直接上例⼦: 四、数据库的物理设计 四、数据库的物理设计 ⽬前流⾏的数据库,⼤部分物理结构设计,已经由DBMS⾃动完成,索引设计,聚类设计,分区设计,确定系统配置参数,评价物理结 构设计。(个⼈理解,这部分主要就是⽤于对数据库的性能⽅⾯的优化,如当⾯对⼤量数据的时候,运⽤怎样的物理结构设计,可以使得查 询效率更⾼。) 数据库物理设计的任务之⼀,确定选择哪些存取⽅法,即要建⽴哪些存储路径。 主要的存取⽅法:1.索引⽅法(主要是B+树)2.聚簇⽅法。 (1) 索引存取⽅法: 确定为哪些属性列建⽴索引,哪些属性列建⽴组合索引,哪些索引要设计为唯⼀索引。 例: 在学⽣表Student上建⽴索引 CREATE INDEX S_name ON Student (Ssex, Sage DESC); (2)聚簇存取⽅法的选择: 关系中指定属性值相同的元组集中存放在连续的存储块中,称为聚簇。指定属性为聚簇属性。 许多关系型DBMS都提供了聚簇功能。 建⽴聚簇索引后,基表中数据也需要按指定的聚簇属性值的升序或降序存放。也即聚簇索引的索引项顺序与表中元组 的物理顺序⼀致。 例:在Student表的Sname(姓名)列上建⽴⼀个聚簇索引,⽽且Student表中的记录按照Sname值的升序存放 CREATE CLUSTER INDEX Stusname ON Student(Sname); 最后: 数据库系统设计是一个复杂而关键的过程,它涉及到多个阶段,确保数据的有效存储、管理和访问。我们从需求分析阶段开始,这一阶段的目标是理解和收集业务需求,形成数据字典,其中包括数据项、数据结构、数据流、数据存储和处理过程。数据字典是系统设计的基础,用于描述系统中涉及的所有数据元素。 接下来是概念结构设计,这是对现实世界的抽象,常用的是实体-关系(E-R)模型。实体代表客观存在的事物,如学生、班级等,它们的特征通过属性来描述。实体间的关系则反映了它们之间的关联,例如“学生属于班级”。E-R图用矩形表示实体,椭圆表示属性,菱形表示联系。联系可能有一对一、一对多和多对多三种类型,并且联系本身也可能具有属性。 逻辑结构设计阶段,E-R图被转化为数据库管理系统(DBMS)支持的具体数据模型,通常是关系模型。这个过程涉及将E-R图转换为关系模式,每个实体通常对应一张表,联系则转化为表之间的关联。在这一阶段,还需要考虑数据模型的优化,例如确保满足第三范式,消除冗余和提高数据一致性。这可能需要对关系模式进行水平分解(拆分表)或垂直分解(拆分列)。 数据库物理设计阶段关注如何在硬件层面上实现这些逻辑结构,以达到最佳性能。现代DBMS通常会自动处理一些物理设计,如索引、聚簇等。索引可以加速查询,通过创建在特定列上的索引,如在学生表的性别和年龄列上创建索引,可以加快按这些条件筛选数据的速度。聚簇则是将具有相同属性值的记录存储在一起,例如,根据学生姓名创建聚簇索引,使得按姓名排序时能快速访问数据。 数据库系统设计是一个涉及需求理解、数据抽象、逻辑构建和物理优化的过程,目的是为了提供一个高效、可靠的数据存储和处理解决方案。每个阶段都需要仔细考虑,以确保最终的数据库能够满足用户需求并具备良好的性能。
- 粉丝: 105
- 资源: 9354
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C语言-leetcode题解之70-climbing-stairs.c
- C语言-leetcode题解之68-text-justification.c
- C语言-leetcode题解之66-plus-one.c
- C语言-leetcode题解之64-minimum-path-sum.c
- C语言-leetcode题解之63-unique-paths-ii.c
- C语言-leetcode题解之62-unique-paths.c
- C语言-leetcode题解之61-rotate-list.c
- C语言-leetcode题解之59-spiral-matrix-ii.c
- C语言-leetcode题解之58-length-of-last-word.c
- 计算机编程课程设计基础教程