阅读以下关于数据库分析与建模的叙述,在答题纸上回答问题1至问题3。 【说明】 某电子商务企业随着业务不断发展,销售订单不断增加,每月订单超过了50万笔,急需开发一套新的互联网电子订单系统。同时该电商希望建立相应的数据中心,能够对订单数据进行分析挖掘,以便更好地服务用户。王工负责订单系统的数据库设计与开发,初步设计的核心订单关系模式为:orders(order_no,customer_no,order_date,product_no,price,.....); 考虑订单数据过多,单一表的设计会对系统性能产生较大影响,仅仅采用索引不足以解决性能问题。因此,需要将订单表拆分,按月存储。 王工采用反规范化设计方法来解决,给出了相应的解决方案。李工负责数据中心的设计与开发。李工认为王工的解决方案存在问题,建议采用数据物理分区技术。在解决性能问题的同时,也为后续的数据迁移、数据挖掘和分析等工作提供支持。 【问题1】(8分) 常见的反规范化设计包括增加冗余列、增加派生列、重新组表和表分割。为解决题干所述需求,王工采用的是哪种方法?请用300字以内的文字解释说明该方法,并指出其优缺点。 【问题2】(8分) 物理数据分区技术一般分为水平分区和垂直分区,数据库中常见的是水平分区。水平分区分为范围分区、哈希分区、列表分区等。请阅读下表,在(1)~(8)中填写不同分区方法在数据值、数据管理能力、实施难度与可维护性、数据分布等方面的特点。 【问题3】(9分) 根据需求,李工宜选择物理水平分区中的哪种分区方法?请用300字以内的文字分别解释说明该方法的优缺点。
【问题 1】 (8 分) 答案: 王工采用的是表分割方式中的水平分割(分割参数是:“月”) 表分割包括水平分割与垂直分割两种形式: 水平分割:按记录进行分割,不同的记录可以分开保存,每个子表的列数相同。分割的条件可能是某列或多列数据的值,如时间参数。 垂直分割:按进行分割,即把一条记录分开多个地方保存,每个子表的行数相同。把主键和一些行放到一个表,然后把主键和另外的列放到另一个表中,通过主键进行关联。 优点:水平分割后可以降低在查询时需要读取的数据和索引页数,同时也降低了索引的层数,提高查询速度。 缺点:水平分割会给应用增加复杂度,在查询时需要多个表名,查询所有数据需要union操作。 【问题 2】 (8 分) 答案:(1)连续(2)离散(3)弱(4)强(5)好(6)好(7)不均匀(8)均匀 【问题 3】(9 分) 答案: 李工宜选择范围分区方式。 范围分区优点: 1、分区表可以将表存储到多个表空间内,各个分区维护各自的本地索引,查询语句可以根据索引进行分区范围查找,提高了查询速度; 2、可以对单个分区进行备份、归档或者清除过期的数据,利于维护; 3、实现容易,而且可以方便的对表的分区进行添加、删除、拆分和合并操作。 范围分区缺点:数据分布不均匀所以可以与哈希分区组合应用。