MySQL基础教程-绝对推荐

上传人:我*** 文档编号:134429725 上传时间:2020-06-05 格式:PPT 页数:716 大小:6.98MB
返回 下载 相关 举报
MySQL基础教程-绝对推荐_第1页
第1页 / 共716页
MySQL基础教程-绝对推荐_第2页
第2页 / 共716页
MySQL基础教程-绝对推荐_第3页
第3页 / 共716页
MySQL基础教程-绝对推荐_第4页
第4页 / 共716页
MySQL基础教程-绝对推荐_第5页
第5页 / 共716页
点击查看更多>>
资源描述

《MySQL基础教程-绝对推荐》由会员分享,可在线阅读,更多相关《MySQL基础教程-绝对推荐(716页珍藏版)》请在金锄头文库上搜索。

1、 MySQL基础教程适合新手 适合老手 孔祥盛 MySQL数据库基础与实例教程之数据库设计概述 1 2 3 本章抛开MySQL讲解关系数据库设计的相关知识 以 选课系统 为例 讲解 选课系统 数据库的设计流程 4 内容一览 数据库设计的相关知识 数据库概述 E R图 关系数据库设计 1 2 3 简单地说 数据库 Database或DB 是存储 管理数据的容器 严格地说 数据库是 按照某种数据结构对数据进行组织 存储和管理的容器 总结 数据永远是数据库的核心 关系数据库 关系数据库管理系统 结构化查询语言SQL 1 1数据库概述 1 1 1关系数据库管理系统 通过 数据库管理系统 数据库用户可以

2、轻松地实现数据库容器中各种数据库对象的访问 增 删 改 查等操作 并可以轻松地完成数据库的维护工作 备份 恢复 修复等操作 数据库用户无法直接通过操作系统获取数据库文件中的具体内容 数据库管理系统通过调用操作系统的进程管理 内存管理 设备管理以及文件管理等服务 为数据库用户提供管理 控制数据库容器中各种数据库对象 数据库文件的接口 1 1 1关系数据库管理系统 添加标题 添加标题 层次模型 面向对象模型 网状模型 关系模型 数据库管理系统常用的数学模型 添加标题 基于 关系模型 的数据库管理系统称为关系数据库管理系统 简称为RDBMS 随着关系数据库管理系统的日臻完善 目前关系数据库管理系统已

3、占据主导地位 1 1 1关系数据库管理系统 2014年2月数据库流行度排行榜 截至目前 MySQL已经成功逆袭 1 1 1关系数据库管理系统 2014年3月数据库流行度排行榜 1 1 1关系数据库管理系统 2014年4月数据库流行度排行榜 1 1 1关系数据库管理系统 开源 MySQL源代码免费下载 简单 MySQL体积小 便于安装 MySQL性能足够与商业数据库媲美 功能强大 MySQL提供的功能足够与商业数据库媲美 逆袭原因 性能优越 1 1 1关系数据库管理系统 关系数据库中所谓的 关系 实质上是一张二维表 请看下面的课程表 字段名 列名 第1个字段 列 第1条记录 第2条记录 第3条记

4、录 第4条记录 第5条记录 第3个字段 列 第2个字段 列 第4个字段 列 1 1 2关系数据库 作为数据库中最为重要的数据库对象 数据库表的设计过程并非一蹴而就 上述课程表根本无法满足 选课系统 的功能需求 事实上 数据库表的设计过程并非如此简单 本章的重点就是讨论如何设计结构良好的数据库表 1 1 2关系数据库 结构化查询语言 StructuredQueryLanguage或简称为SQL 是一种应用最为广泛的关系数据库语言 该语言定义了操作关系数据库的标准语法 几乎所有的关系数据库管理系统都支持SQL 1 1 3结构化查询语言SQL 学习重点 1 2 3 数据库设计是一个 系统工程 要求数

5、据库开发人员 熟悉 商业领域 的商业知识 利用 管理学 的知识与其他开发人员进行有效沟通 掌握一些数据库设计辅助工具 数据库设计辅助工具 商业知识和沟通技能 选课系统 概述 4 5 定义问题域 编码规范 1 2数据库设计的相关知识 数据库技术解决的是 商业领域 的 商业问题 数据库开发人员有必要成为该 商业领域 的专家 与其他开发人员 包括最终用户 一起工作 继而使用数据库技术解决该 商业领域 的 商业问题 1 2 1商业知识和沟通技能 1 2 2数据库设计辅助工具 面向对象分析和设计技术结构化分析和设计技术软件测试技术关系数据库设计技术 ErwinPowerDesignerRationalR

6、oseVisio VC 6 0VisualstudioEclipseNetBeans 单元测试工具功能测试工具性能测试工具 程序流程图DFD时序图状态图 CASE工具IDE工具测试工具 数据模型 类图 E R图 限于篇幅 在不影响 选课系统 核心功能的基础上 适当地对该系统进行 定制 扩展 以及 瘦身 1 2 3 选课系统 概述 定义问题域是数据库设计过程中重要的活动 它的目标是准确定义要解决的商业问题 选课系统 亟需解决的 商业 问题有哪些 1 2 4定义问题域 在编程的时候会考虑代码的可读性吗 你觉得代码可读性是需要考虑的问题吗 1 代码不仅要自己能读懂 还要别人也能看懂 2 尽量做到可读

7、 但时间紧任务重的时候就顾不上了 3 代码只要自己能读懂就可以了 4 代码写完就完了 不用管以后是否能读懂 5 不知道 没有想过这个问题 1 2 5编码规范 请记住 尽最大努力把方便留给别人和将来的自己 建议大家遵循本书罗列的常用编程规范 1 2 3 关系 实体和属性 E R图的设计原则 E R图设计的质量直接决定了关系数据库设计的质量 1 3E R图 实体不是某一个具体事物 而是某一种类别所有事物的统称 属性通常用于表示实体的某种特征 也可以使用属性表示实体间关系的特征 实体 属性 属性 1 3 1实体和属性 E R图中的关系用于表示实体间存在的联系 在E R图中 实体间的关系通常使用一条线

8、段表示 E R图中实体间的关系是双向的 关系 关系 1 3 2关系 基数表示一个实体到另一个实体之间关联的数目 基数是针对关系之间的某个方向提出的概念 基数可以是一个取值范围 也可以是某个具体数值 基数 可选 基数 强制 1 3 2关系 元表示关系所关联的实体个数 二元关系 二元关系 一元关系 1 3 2关系 使用关联 Association 表示实体间关系的属性 关联 关联 1 3 2关系 1 2 3 实体是一个单独的个体 不能存在于另一个实体中 成为另一个实体的属性 属性应该存在于 且只存在于某一个地方 实体或者关联 同一个实体在同一个E R图内 仅出现一次 数据库开发人员通常采用 一事一

9、地 的原则从系统的功能描述中抽象出来E R图 1 3 3E R图的设计原则 1 为E R图中的每个实体建立一张表 2 为每张表定义一个主键 如果需要 可以向表添加一个没有实际意义的字段作为该表的主键 3 增加外键表示一对多关系 4 建立新表表示多对多关系 5 为字段选择合适的数据类型 6 定义约束条件 如果需要 7 评价关系的质量 并进行必要的改进 1 4关系数据库设计 student student no student name student contact course course name up limit description status teacher teacher no

10、 teacher name teacher contact classes class name department name 1 4 1为每个实体建立一张数据库表 关键字 key 用以唯一标识表中的每行记录 主键 PrimaryKey 在所有的关键字中选择一个关键字 作为该表的主关键字 简称主键 1 4 2为每张表定义一个主键 主键有以下两个特征 1 表的主键可以是一个字段 也可以是多个字段的组合 这种情况称为复合主键 2 表中主键的值具有唯一性且不能取空值 NULL 当表中的主键由多个字段构成时 每个字段的值都不能取NULL 主键设计技巧 请参看本书内容 1 4 2为每张表定义一个主键

11、student student no student name student contact course course no course name up limit description status teacher teacher no teacher name teacher contact classes class no class name department name 1 4 2为每张表定义一个主键 外键 ForeignKey 如果表A中的一个字段a对应于表B的主键b 则字段a称为表A的外键 此时存储在表A中字段a的值 要么是NULL 要么是来自于表B主键b的值 1 4

12、3增加外键表示一对多关系 情形一 如果实体间的关系为一对多关系 则需要将 一 端实体的主键放到 多 端实体中 然后作为 多 端实体的外键 通过该外键即可表示实体间的一对多关系 1 4 3增加外键表示一对多关系 让学生记住所在班级 远比班级 记住 所有学生容易的多 1 4 3增加外键表示一对多关系 情形二 实体间的一对一关系 可以看成一种特殊的一对多关系 将 一 端实体的主键放到另 一 端的实体中 并作为另 一 端的实体的外键 然后将外键定义为唯一性约束 UniqueConstraint 1 4 3增加外键表示一对多关系 PK 1 4 3增加外键表示一对多关系 PK后的方案 student st

13、udent no student name student contact class no course course no course name up limit description status teacher no teacher teacher no teacher name teacher contact classes class no class name department name 1 4 3增加外键表示一对多关系 情形三 如果两个实体间的关系为多对多关系 则需要添加新表表示该多对多关系 然后将该关系涉及到的实体的 主键 分别放入到新表中 作为新表的外键 并将关系自

14、身的属性放入到新表中作为新表的字段 1 4 4建立新表表示多对多关系 teacher teacher no teacher name teacher contact classes class no class name department name course course no course name up limit description status teacher no student student no student name student contact class no choose choose no student no course no score choo

15、se time 1 4 4建立新表表示多对多关系 1 4 4建立新表表示多对多关系 1 4 5为字段选择合适的数据类型 常用的约束条件有6种 主键 PrimaryKey 约束外键 ForeignKey 约束唯一性 Unique 约束默认值 Default 约束非空 NotNULL 约束检查 Check 约束 1 4 6定义约束 Constraint 条件 设计数据库时 有两个不争的事实 数据库中冗余的数据需要额外的维护 因此质量好的一套表应该尽量 减少冗余数据 数据库中经常发生变化的数据需要额外的维护 因此质量好的一套表应该尽量 避免数据经常发生变化 1 4 7评价数据库表设计的质量 冗余的数

16、据需要额外的维护 并且容易导致 数据不一致 插入异常 以及 删除异常 等问题的发生 1 4 8使用规范化减少数据冗余 场景一 插入异常 场景二 修改复杂 场景三 删除异常 1 4 8使用规范化减少数据冗余 规范化是通过最小化数据冗余来提升数据库设计质量的过程 规范化是基于函数依赖以及一系列范式定义的 最为常用的是第一范式 1NF 第二范式 2NF 和第三范式 3NF 1 4 8使用规范化减少数据冗余 函数依赖 一张表内两个字段值之间的一一对应关系称为函数依赖 第一范式 如果一张表内同类字段不重复出现 该表就满足第一范式的要求 1 4 8使用规范化减少数据冗余 第一范式 1 4 8使用规范化减少数据冗余 第二范式 一张表在满足第一范式的基础上 如果每个 非关键字 字段 仅仅 函数依赖于主键 那么该表满足第二范式的要求 1 4 8使用规范化减少数据冗余 第二范式 1 4 8使用规范化减少数据冗余 第三范式 如果一张表满足第二范式的要求 并且不存在 非关键字 字段函数依赖于任何其他 非关键字 字段 那么该表满足第三范式的要求 1 4 8使用规范化减少数据冗余 第三范式 1 4 8使用规范化减

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > PPT模板库 > PPT素材/模板

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号