- 1、本文档共9页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
(DB2逻辑设计
DB2逻辑设计
赵坚密above@163.com
1表
1.1规范化和反规范化
a不能拆分1NF
表1 不符合1NF
员工 部门 部门经理 姓 名 张 三 人力资源 张三 张 三 财务 李四 李 四 财务 李四 表2 符合1NF
员工 部门 部门经理 张三 人力资源 张三 张三 财务 李四 李四 财务 李四 b不能重复2NF(1—2:消除非主属性对码的部分依赖)
表3 符合2NF
员工编号 员工姓名 部门 部门经理 1 张三 人力资源 张三 2 张三 财务 李四 3 李四 财务 李四 c不能冗余3NF(2—3:消除非主属性对码的传递依赖)
表4 符合3NF
员工编号 员工姓名 部门 1 张三 人力资源 2 张三 财务 3 李四 财务 表5
部门编号 部门 部门经理 1 人力资源 张三 2 财务 李四
d通俗的介绍:
第一范式:属性不可再分
就是字段A,不能再分成A.filed1,A.filed2
第二范式实在第一范式得基础上
第二范式其实就是要求有主键
通过主键可以唯一确定一行记录
也就是员工表,必须有个员工ID
部门表必须有部门ID
第三范式实在第二范式得基础上
消除了字段对非主属性得传递依赖
员工表
员工ID,员工姓名,部门ID,部门名称
这个是不允许得
不能有部门名称
部门会有另一张表
e反规范化
反规范化,即数据冗余。首先需要付出空间代价,其次是管理代价,维护数据的完整性。它的好处是:减少查询所要连接表的个数,减少了I/O和CPU时间,加速了查询。。因此做反规范化时,一定要权衡利弊,仔细分析数据的存取需求和实际的性能特点。
1.2创建表时的可选参数
a COMPRESSION 压缩70%
b APPEND ON 直接插入表尾
c PCTFREE 表中空闲百分比
d PARTITION BY RANGE 快速加载和分离数据
e VOLATILE 访问时使用索引
2索引
2.1执行计划
DB2基于成本的优化,优化器计算SQL语句的多种访问路径下的执行成本(CPU内存硬盘等),最终选择最优路径作为SQL语句的执行计划。
动态SQL每执行一次都需要重新编译和优化,静态SQL不需要。所以静态SQL免去了编译和优化得过程,节约了时间,但是随着时间的改变,数据库的数据以及服务器的资源负载改变之后原先的执行计划可能不是最优。
2.2访问数据的方法
a表扫描
按顺序扫描整个表。
b索引扫描
通过首先访问表上的索引来定位到某一行,然后再访问该行。
c完全索引访问
所有需要的数据都在索引中,那么就没必要访问索引所在的基表
2.3影响索引作用的因素
a区分度(检索比例)
优化器根据统计信息来生成执行计划,如果数据库没有收集索引的统计信息,优化器就无从下手,只能按部就班,通过全表扫描来执行查询。所以,新创建的索引需要重新运行统计,否则索引无效。
举一个例子,有个表TABLE1,其中有一个字段COL1取值是“1”、“2”、“3”三种,运行统计的结果是告诉数据库TABLE1中的数据其中字段COL1的各种取值所占的比重。示意如下:
“1” - 12%;
“2” - 66%;
“3” - 22%。
假设还有个字段COL2取值和数据所占的百分比如下:
“A” - 50%;
“B” - 50%。
则查询语句1:
select * from TABLE1 where COL1 = “1” and COL2 = “A”,
数据库优化器会优先选择字段COL1上的索引来定位表中的数据,因为通过COL1上的索引就可以将结果集迅速定位在一个小范围内12%。而相反的,对于查询语句2:
select * from TABLE1 where COL1 = “2” and COL2 = “A”,
数据库会优先选择COL2上的索引,因为对于语句2的查询条件COL2上的索引具有更好的区分度。
从上面可以看出,数据库的优化器通常会优先选择区分度较高的索引(针对于查询条件,条件不同选择的索引可能不同)。
数据库里的数据是变化的,所以某个时候采集的统计信息,过一段时间后可能会过时,甚至误导数据库优化器,这样同样会造成运行性能的低下。所以除了,最初建立索引时需要运行统计,在表中的数据发生变化时也需要运行统计。经验:当表中数据量变化达到10%时,需要重新运行统计。
b聚集度
补充知识:按块访问表数据。
c函数与索引
函数,like语句。。。
Substring(col_name, 1, 3) vs. Substring(col_name, 3, 3)
like ‘QQQ% vs. like
您可能关注的文档
最近下载
- 沪教版四年级下册数学《期末考试试卷》(含答案).pdf VIP
- 医院污水处理设备安装施工组织设计.doc
- 睡眠呼吸暂停综合征病人护理.ppt
- 关于绑架的小故事-绑架关起来的故事.docx
- 2019年湖北省荆州市中考物理真题及参考答案.pdf VIP
- 人教版七年级下册同步句子衡水体英语字帖.pdf
- 一年级语文考试质量分析报告.ppt
- 医学卫生高级职称考试胸心外科(正、副高)测试题库(含答案).pdf
- 2024年高考港澳台华侨生模拟考试地理试卷试题(含答案详解).pdf VIP
- EN 50382-1-2008-A1-2013铁路设施 — 具有特殊防火性能的铁路车辆高温电力电缆 — 第 1 部分:一般要求(中文版).doc
文档评论(0)