- 1、本文档共14页,可阅读全部内容。
- 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
- 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 5、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 6、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 7、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 8、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
三、数据库高级操作 数据库设计范式 数据库设计思维 数据库设计优化 MySQL查询优化 MySQL常用命令 MySQL建模工具 数据库设计范式(1) 第一范式:列不可再分 内容相似的数据列必须消除(“消除”的办法是再创建一个数据表来存放它们) 必须为每一组相关数据分别创建一个数据表。 每条数据记录必须用一个主键来标识。 titleid title publname year authname1 authname3 ==都是作者 第二范式:行不可再分 只要数据列里的内容出现重复,就意味着应该把数据表拆分为多个子表 拆分形成的数据表必须用外键关联起来 titleid title publname year authid titleid year authname ==作者重复了 数据库设计范式(2) 第三范式:表不可再分 与主键没有直接关系的数据列必须消除(“消除”的办法是再创建一个数据表来存放它们) titleid title publid year publid publname 数据库设计范式实例(1) 1NF:列不可再分 在一个人力资源的数据库中,存储了主管及其下级之间的对应关系。为了说明第一范式的规则,我们设定了这样的商业规则,即每个主管可以有一个或多个下属,而每个下属只能有一个主管。 2NF:行不可再分 网上商店客户资料表 数据库设计范式实例(2) 3NF:表不可再分 假设我们有一个商品订单表,包含了以下属性:订单号、客户编号、单价、数量、总价。如下表: 数据库设计范式课堂练习 身份证上记录有:姓名、性别、民族、生日、住址和身份证号码,试设计符合第一范式的数据结构。 如需要记录某高校学生的考试成绩以备档,要求信息详细到每次考试的每门科目。 请理清符合第二范式的数据结构。 注意每门科目除成绩外还有学分数据需要记录 如需要为公司内部建立内部通讯录,记录每个员工的姓名、所在部门、职位、办公地址、电话号码和电子信箱地址。 请理清符合第三范式的数据结构。 数据库设计思维与方法 减少数据存放空间 提高查询速度 思考?互联网的项目中,关注存放空间还是关注查询速度。 如何降低数据冗余度,减少数据存放空间,提高硬盘读写速度。 研究数据库设计的范式原理,进行分析应用 如何提高数据库查询响应,降低查询语句的复杂度,较快地设计、开发,提高扩展性 分布设计,查询优化 数据库设计优化 - 字段 99.9%的情况下,全部为NOT NULL类型 预计不会存储非负数的字段,例如各项id、发帖数等,必须设置为UNSIGNED类型 存储开关、选项数据的字段,通常使用tinyint(1)非UNSIGNED类型,少数情况也可能使用enum()结果集的方式 任何类型的数据表,字段空间应当本着足够用,不浪费的原则 数据库设计优化 - 定长表(1) 变长表:包含任何varchar、text等变长字段的数据表,即为变长表,大部分数据表均为此类型 定长表:不包含任何变长字段的数据表,为定长表 对于变长表,由于记录大小不同,在其上进行许多删除和更改将会使表中的碎片更多。需要定期运行OPTIMIZE TABLE以保持性能。而定长表就没有这个问题 如果表中有可变长的字段,将它们转换为定长字段能够改进性能,因为定长记录易于处理 数据库设计优化 - 定长表(2) 使用定长列涉及某种折衷。它们更快,但占用的空间更多。char(n) 类型列的每个值总要占用n 个字节(即使空串也是如此),因为在表中存储时,值的长度不够将在右边补空格; 而varchar(n)类型的列所占空间较少,因为只给它们分配存储每个值所需要的空间,每个值再加一个字节用于记录其长度。因此,如果在char和varchar类型之间进行选择,需要对时间与空间作出折衷; 在设计表结构时如果能够使用定长数据类型尽量用定长的,因为定长表的查询、检索、更新速度都很快。必要时可以把部分关键的、承担频繁访问的表拆分,例如定长数据一个表,非定长数据一个表。例如Discuz!的cdb_members和cdb_memberfields表、cdb_forums和cdb_forumfields表等。因此规划数据结构时需要进行全局考虑 数据库设计优化 - 运算与检索 数值运算一般比字符串运算更快 如果串列的值数目有限,应该利用普通整型或emum类型来获得数值运算的优越性 更小的字段类型永远比更大的字段类型处理要快得多 对于字符串,其处理时间与串长度直接相关。一般情况下,较小的表处理更快 对于定长表,应该选择最小的类型,只要能存储所需范围的值即可。例如,如果mediumint够用,就不要选择bigint。对于可变长类型,也仍然能够节省空间。一个TEX
您可能关注的文档
- 谷歌地图.ppt
- 股票知识--技术分析核心——趋势(下).ppt
- 关于IPAD软件的下载与设置.ppt
- 关于大学手机市场调查项目建议书.ppt
- 管理信息系统MIS_ch07_管理_完.ppt
- 管路设计.ppt
- 光纤通信系统简介-3.ppt
- 广东电大开放教育学习指南测评系统操作步骤(2010秋、2011春、2011秋).ppt
- 广告人到底在贩卖什么.ppt
- 国产手机市场分析.ppt
- 2025年一级建造师考试《水利水电工程管理与实务》冲刺必刷卷.docx
- 2025年一级建造师考试《水利水电工程管理与实务》逆袭破题卷1.docx
- 2025年一级建造师考试《市政工程管理与实务》冲刺必刷卷 .docx
- 2025年一级造价工程师考试《建设工程计价》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价管理》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(安装专业)》预习卷.docx
- 2025年一级造价工程师考试《建设工程造价案例分析(土建专业)》预习卷.docx
- 2025年中级会计考试《会计实务》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》冲刺提分卷.docx
- 2025年中级会计考试《财务管理》全真模拟卷.docx
文档评论(0)