数据库系统设计

数据库系统设计主要包括:需求分析,概念结果设计,逻辑结构设计,数据库物理设计几个阶段。

一、需求分析

需求分析阶段有一个概念。数据字典:是系统中各类数据描述的集合,是对数据收集和数据分析的详细描述。

包括: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); 

最后:

 

  • 3
    点赞
  • 34
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值