2-数据库高级操作

2-数据库高级操作

ID:37568245

大小:341.00 KB

页数:14页

时间:2019-05-12

2-数据库高级操作_第1页
2-数据库高级操作_第2页
2-数据库高级操作_第3页
2-数据库高级操作_第4页
2-数据库高级操作_第5页
资源描述:

《2-数据库高级操作》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、三、数据库高级操作数据库设计范式数据库设计思维数据库设计优化MySQL查询优化MySQL常用命令MySQL建模工具数据库设计范式(1)第一范式:列不可再分内容相似的数据列必须消除(“消除”的办法是再创建一个数据表来存放它们)必须为每一组相关数据分别创建一个数据表。每条数据记录必须用一个主键来标识。titleidtitlepublnameyearauthname1authname3==>都是作者第二范式:行不可再分只要数据列里的内容出现重复,就意味着应该把数据表拆分为多个子表拆分形成的数据表必须用外键关联起来titleidtitlepublnameyearauthidtitle

2、idyearauthname==>作者重复了数据库设计范式(2)第三范式:表不可再分与主键没有直接关系的数据列必须消除(“消除”的办法是再创建一个数据表来存放它们)titleidtitlepublidyearpublidpublname数据库设计范式实例(1)1NF:列不可再分在一个人力资源的数据库中,存储了主管及其下级之间的对应关系。为了说明第一范式的规则,我们设定了这样的商业规则,即每个主管可以有一个或多个下属,而每个下属只能有一个主管。2NF:行不可再分网上商店客户资料表数据库设计范式实例(2)3NF:表不可再分假设我们有一个商品订单表,包含了以下属性:订单号、客户编号

3、、单价、数量、总价。如下表:数据库设计范式课堂练习身份证上记录有:姓名、性别、民族、生日、住址和身份证号码,试设计符合第一范式的数据结构。如需要记录某高校学生的考试成绩以备档,要求信息详细到每次考试的每门科目。请理清符合第二范式的数据结构。注意每门科目除成绩外还有学分数据需要记录如需要为公司内部建立内部通讯录,记录每个员工的姓名、所在部门、职位、办公地址、电话号码和电子信箱地址。请理清符合第三范式的数据结构。数据库设计思维与方法减少数据存放空间提高查询速度思考?互联网的项目中,关注存放空间还是关注查询速度。如何降低数据冗余度,减少数据存放空间,提高硬盘读写速度。研究数据库设计

4、的范式原理,进行分析应用如何提高数据库查询响应,降低查询语句的复杂度,较快地设计、开发,提高扩展性分布设计,查询优化数据库设计优化-字段99.9%的情况下,全部为NOTNULL类型预计不会存储非负数的字段,例如各项id、发帖数等,必须设置为UNSIGNED类型存储开关、选项数据的字段,通常使用tinyint(1)非UNSIGNED类型,少数情况也可能使用enum()结果集的方式任何类型的数据表,字段空间应当本着足够用,不浪费的原则字段类型存储空间(b)UNSIGNED取值范围tinyint1否-128~127是0~255smallint2否-32768~32767是0~655

5、35mediumint3否-8388608~8388607是0~16777215int4否-2147483648~2147483647是0~4294967295bigint8否-9223372036854775808~9223372036854775807是0~18446744073709551615数据库设计优化-定长表(1)变长表:包含任何varchar、text等变长字段的数据表,即为变长表,大部分数据表均为此类型定长表:不包含任何变长字段的数据表,为定长表对于变长表,由于记录大小不同,在其上进行许多删除和更改将会使表中的碎片更多。需要定期运行OPTIMIZETABLE

6、以保持性能。而定长表就没有这个问题如果表中有可变长的字段,将它们转换为定长字段能够改进性能,因为定长记录易于处理数据库设计优化-定长表(2)使用定长列涉及某种折衷。它们更快,但占用的空间更多。char(n)类型列的每个值总要占用n个字节(即使空串也是如此),因为在表中存储时,值的长度不够将在右边补空格;而varchar(n)类型的列所占空间较少,因为只给它们分配存储每个值所需要的空间,每个值再加一个字节用于记录其长度。因此,如果在char和varchar类型之间进行选择,需要对时间与空间作出折衷;在设计表结构时如果能够使用定长数据类型尽量用定长的,因为定长表的查询、检索、更新

7、速度都很快。必要时可以把部分关键的、承担频繁访问的表拆分,例如定长数据一个表,非定长数据一个表。例如Discuz!的cdb_members和cdb_memberfields表、cdb_forums和cdb_forumfields表等。因此规划数据结构时需要进行全局考虑数据库设计优化-运算与检索数值运算一般比字符串运算更快如果串列的值数目有限,应该利用普通整型或emum类型来获得数值运算的优越性更小的字段类型永远比更大的字段类型处理要快得多对于字符串,其处理时间与串长度直接相关。一般情况下,较小的表处理更

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。