### MySQL基础与实例教程知识点概览
#### 一、MySQL基础知识
- **数据库设计原则**:
- **实体-关系模型(ER模型)**:ER模型是数据库设计的基础,用于描述现实世界中的实体及其之间的关系。在本课程中,学生需要掌握如何设计一个合理的ER图,包括实体的定义、属性的选择、关系的建立等。
- **规范化理论**:
- **第三范式(3NF)**:为了减少数据冗余和提高数据一致性,设计数据库时应遵循第三范式的原则。这要求每个非主属性完全依赖于主键,并且非主属性之间不存在传递依赖。
#### 二、MySQL高级特性
- **SQL脚本编写**:
- **设置字符集**:例如使用`SET NAMES 'gbk';`来设置MySQL的字符集为GBK,确保中文字符的正确显示和存储。
- **数据库表的创建**:使用`CREATE TABLE`语句根据ER图中的实体和属性创建相应的数据库表。
- **视图的使用**:通过创建视图(`CREATE VIEW`)来提供一种方便的方式来查看或查询数据,有助于实现信息的统计和展示。
- **全文检索**:使用MySQL的全文索引功能(`FULLTEXT INDEX`)来实现中文的全文检索,这有助于用户快速查找相关信息。
- **触发器**:通过创建触发器(`CREATE TRIGGER`)来自动执行某些特定的操作,如外键级联更新或删除等。
- **存储过程**:使用存储过程(`CREATE PROCEDURE`)来封装一系列复杂的SQL操作,可以有效地实现诸如选课、调课等功能。
- **游标和临时表**:利用游标(`CURSOR`)和临时表(`TEMPORARY TABLE`)来处理复杂的数据操作,如密码初始化等。
#### 三、Web应用开发
- **用户认证与权限管理**:
- **用户登录与注销**:实现基于Web的用户认证机制,确保只有经过验证的用户才能访问系统资源。
- **权限管理**:根据不同角色(如学生、教师、管理员)分配不同的访问权限,确保数据的安全性和系统的稳定性。
- **密码重置**:提供一种机制来帮助忘记密码的用户重置密码,通常涉及邮件验证或管理员协助等方式。
- **系统功能开发**:
- **教师申报课程**:允许教师在线申报课程,同时提供浏览已申报课程的功能。
- **管理员功能**:管理员拥有较高的权限,可以添加班级、管理课程信息并进行各种统计操作。
- **游客搜索**:即使未登录,游客也能搜索相关的课程信息。
- **学生选课与调课**:学生可以在线选择课程,还可以根据需要调整已选课程,同时可以查看自己的选课记录。
#### 四、综合考核
- **开卷机试**:学生需要根据给定的题目要求,在限定的时间内完成数据库的设计与实现,并开发出一个基于Web的应用系统。
- **答辩环节**:完成项目后,学生还需要参与答辩环节,向老师解释自己的设计方案和技术实现细节,以此证明自己对所学知识的理解和应用能力。
- **评分标准**:
- 设计ER图(16分):考察学生能否合理地定义实体、属性、关系等。
- SQL脚本编写(49分):评估学生在SQL脚本编写方面的能力,涵盖数据库表的创建、视图使用、全文检索、触发器、存储过程等高级特性。
- 页面程序开发(35分):检验学生在Web应用开发方面的技能,包括用户认证、权限管理、系统功能开发等方面。
#### 五、补考方案
- **补考主题**:“某学院毕业设计双选系统”,同样需要完成数据库的设计与实现,并开发出一个基于Web的应用系统。
- **补考时间**:下学期开学后的前两周内提交作品。
- **补考评分**:评分标准与期末考试相同。
本课程不仅涵盖了MySQL基础知识的学习,还强调了实践技能的培养,要求学生能够将理论知识应用于实际问题解决中,通过开发实际的Web应用系统来展现自己的学习成果。