《 MySQL 数据库应用实战教程》黄能耿 项目 2 认识数据库——联系人数据库给授课教师的说明(阅毕删除):•本书提供的教案详细说明了教学内容的安排,请下载阅读(扫码教材封底二维码,或访问下载页面 http://ngweb.org/MySQLa/?p=2/links )•上课时尽量少讲理论,多做演示,可直接在“ Jitor 校验器”的辅助下进行演示,与讲授交叉进行,包括在教室上课。•要求学生多动手操作,充分利用“ Jitor 校验器”。目录任务 1 需求分析和数据结构设计任务 1 需求分析和数据结构设计2.1.1 需求分析2.1.2 数据结构设计2.1.3 命名规范任务 2 理解 MySQL 的数据类型任务 3 创建数据库和数据表任务 4 操纵数据和查询数据任务 5 理解主键和外键2.1.1 需求分析• 需求分析• 项目开发的第一步是对项目进行分析,看看这个项目有哪些需求,开发一个项目的最终目标就是满足这些需求• 开发的过程就是根据需求,设计规范的数据结构,并加以实施,以满足这些需求写一篇作文之前要审题,做一道数学题之前也要审题同样,在开发一个项目之前也要审题,这个审题的过程就是需求分析。项目概述• 名称:联系人项目• 数据库名称: contact• 需求概述:管理个人用的联系人信息,要求使用方便、容易查找、不易出错• 收集到的数据:见下表2.1.2 数据结构设计• 方案一:简单但有缺陷的设计• 缺陷一:联系人信息中姓名是重复的,如果为一个已有的联系人增加一个联系方式时,是否可以避免重复输入姓名?• 缺陷二:联系人类型有更多的重复,并且联系人类型一般不会超过 10 种(如同学、同事和亲属等),是否可以把联系人类型固定下来,输入时只需要选择即可,这样还可以避免出现含义相同的类型(如亲属和亲戚是同义词)。2.1.2 数据结构设计(续)• 方案二:复杂但完美的设计• 设计原则:消除重复数据• 解决办法:拆分表• 步骤一 (a) :将电话数据拆分出来,消除了姓名的重复,但联系人类型还有重复• 人员表:保存姓名和联系人类型• 电话表:保存联系方式和说明• 每张表都有一个主键(类似于序号)2.1.2 数据结构设计(续)• 步骤一 (b) :再将联系人类型数据拆分出来,消除联系人类型的重复• 人员表:新的人员表,保存姓名• 类型表:保存联系人类型• 这时再也没有重复数据,拆分完毕2.1.2 数据结构设计(续)• 步骤一的结果• 拆分成为 3 张表• 拆分后,不再出现重复的数据。例如“姓名”...