- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
11-数据库设计解读
MySQL数据库设计 一、数据库设计要求 1.一个好的数据库设计方案应该满足以下几项要求: 数据表里没有重复冗余的数据; 数据表里没有 order1, order2, order3等重复的数据列; 数据表的空间占用总量越小越好; 使用频率高的查询都能以简单高效的方式执行。 2.命名要求 MySQL对数据列的名字、内容不区分大小写,但对数据库和数据表的名字区分大小写; 数据库、数据表和数据列名字的长度最多不能超过64个字符; 在名字里要避免使用特殊字符; _可以用 数据表和数据列的名字应该有意义; MySQL数据库设计 二、规范化(范式理论) 数据库理论专家对数据库设计问题总结出了一个通用的解决方案。 1.第一范式 内容相似的数据列必须消除(“清除”的办法是再创建一个数据表来存放); 必须为每一组相关数据分别创建一个数据表; 每条数据记录必须用一个主键来标识; 数据库表中的字段都是单一属性的,不可再分。 2.第二范式 只要数据列里的内容出现重复,就意味着应该把数据表拆分为多个子表; 拆分出来的数据表必须用外键关联起来; MySQL数据库设计 3.第三范式 与主键没有直接关系的数据列必须消除(“消除”的办法是再创建一个数据表来存放) 范式的优缺点: 范式只是一种帮助人们更好地设计数据库,但不能代替人们思考。在某些场合,机械的按照范式把所有的冗余都消除干净并不能获得最佳效果。 MySQL数据库设计 三、数据库设计技巧 1. 从一批数量相对较少的测试性数据入手去尝试着把它们纳入一个或多个数据表。(如果测试的数据太少,有些问题就可能发现不了; 如果太多,又难免会在设计阶段就浪费太多时间)。 2.如果发现给数据列起的名字里有序号,比如name1、name2或object1、object2时。这种现象几乎总是意味着还有更好的解决方案(再多创建一个数据表)。 3.往数据库里输入一些测试数据,而且要尽可能地包括一些特殊情况。如果数据出现冗余,即同一个数据列里多次出现了同样的内容,往往应该把数据表拆分成两个(或多个)表。 4.注意发现和运用各个数据表之间的关联/引用关系。 5.掌握好SQL语言。缺少SQL编程经验是很难拿出一个优秀的数据库设计方案的。 6.找个示例数据库作为借鉴。 MySQL数据库设计 四、关系 在将数据库转换为范式的过程中,需要把一系列的数据表关联起来。这种关联用数据库术语来说就是“关系”。两个数据表之间的关联/引用关系可以分为以下3种: 1:1 关系 第一个数据表里的一条数据记录对应着第二个数据表里的一条数据记录,同时第二个数据表里的每一条数据记录也分别对应着第一个数据表里的一条数据记录。 1:n 关系 第一个数据表里的一条数据记录对应着第二个数据表的多条记录。 n:m 关系 第一个数据表里的一条记录对应着第二个数据表里的多条记录,同时第二个数据表里的一条记录也可以对应着第一个数据表的多条记录。 MySQL数据库设计 五、主键与外键 数据表之间抽象的关联/引用关系是依靠具体的主键和外键建立起来的。 1.主键 主键的作用是帮助MySQL以最快的速度把一条特定的数据记录在数据表里的位置确定下来。 主键必须是唯一的,任意两条数据记录里的主键字段绝不允许是同样的内容; 主键都必须有索引(即“主索引”); 2.外键 外键的作用是引用另一个数据表的某条记录; MySQL数据库设计 六、索引 为了在一个数据表里检索某个特定的记录,或者提取一系列数据记录,MySQL必须把这个数据表里的所有数据记录都搜索一遍。如果数据表的体积比较庞大,在遇到这样一些查询的时候性能就会显著的下降。为解决性能下降的问题可以为查询所涉及的数据列创建并使用一个索引。 注意:索引可以加快数据的检索操作,但会使数据修改操作变慢。每修改一条数据记录,索引就必须刷新一次。 索引另一个明显缺陷是它们会在硬盘上占用相当大的空间。因此,应该只为最经常查询和最经常排序的数据列建立索引。 MySQL数据库设计 1.普通索引 普通索引的唯一任务就是加快对数据的访问速度。因此应该只为那些最经常出现在查询条件(WHERE column=…)或排序条件(ORDER BY column)中的数据列创建索引。 2.唯一索引 如果能确定某个数据列将只包含彼此各不相同的值,在为这个数据列创建索引的时候就应该把它定义为唯一索引。事实上,在许多时候,人们创建唯一索引的目的往往不是为了提高访问速度,而只是为了避免数据出现重复。也就是说唯一索引可以保证数据的唯一性。 3.主索引 主索引是一种特殊的唯一索引,不允许有空值。一般是在建表的时候同时
您可能关注的文档
最近下载
- 2019北京高三二模七选五汇编.docx VIP
- Unit 3 Food 知识清单(六大知识题型)总梳理(解析版).docx VIP
- 统编版道德与法治三年级上册第8课《同学相伴》教学设计.docx VIP
- 2025至2030年中国管道直饮水市场发展前景分析及行业投资规划建议报告.docx
- 单髁置换手术步骤.pptx VIP
- Unit 3 Food 知识清单(六大知识题型)总梳理(原卷版).docx VIP
- 教师评课用语缺点建议.doc VIP
- 2025年全国红十字应急救护竞赛活动考试题库300题(含答案).docx
- 互联网交往的利与弊-教学素材【课件】.ppt VIP
- 急性肾损伤的护理.pptx VIP
原创力文档


文档评论(0)