MySQL数据库管理与应用教学大纲、授课计划 及 教案.docx
《MySQL数据库管理与应用教学大纲、授课计划 及 教案.docx》由会员分享,可在线阅读,更多相关《MySQL数据库管理与应用教学大纲、授课计划 及 教案.docx(121页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、MySQL数据库管理与应用课程教学大纲英文名称:课程代码:学分/总学时:3/72 (其中课堂:36学时;课内实验:36学时)先修课程:计算机科学概论、数据库原理及应用适用对象:计算机科学与技术、软件工程、大数据、信息管理与信息系统等相关专业一课程性质与目的本课程主要讲述如何使用MySQL数据库对数据进行有效的组织、存储、管理、检索与 维护,为后续系统开发与运维、商务智能等课程的学习奠定信息管理方面的理论和实践基础。 通过本课程的学习,学生应能有意识地搜集并利用数据提升工作效率与效能、优化社会资源 配置,从而为我国的信息化、数字化、智能化建设贡献自己的力量。数据库是计算机软件学科的一个重要分支,
2、数据库管理系统是除操作系统之外最复杂、 也最重要的系统软件。它研究如何有效地存储、管理和使用数据,有较强的理论性和实用性。 随着计算机应用的发展,基于数据库技术的计算机应用已成为计算机应用的主流,数据库应 用领域也从数据处理、信息管理、事务处理扩大到计算机辅助设计和制造、人工智能、卫星 遥感、地理信息系统等众多新的应用领域。学习本课程的目的是使学生掌握数据库的基本概念、基础理论和设计方法,以及MySQL 数据库的管理、操作和编程方法,并能合理地设计并使用MySQL数据库对具体领域中的大 量信息进行有效的管理和应用。二、教学内容及要求第1讲 数据库概述(4学时)【基本内容】.数据库、数据库管理系
3、统和数据库系统的基本概念1 .数据管理技术的发展历程.概念模型的概念、作用和E-R图的基本画法2 .数据模型的概念、内容和常见的数据模型.数据库系统的三级模式结构及其两级映像功能【基本要求】.掌握数据库、数据库管理系统和数据库系统的基本概念1 ,了解数据管理技术的发展历程.掌握概念模型和数据模型的基本概念和重要作用2 .了解数据库系统的三级模式结构及其两级映像功能和数据独立性之间的关系 【重点及难点】.MySQL数据库管理与应用(微课版),张巧荣 王娟 邵超,人民邮电出版社,2022(二)参考教材.MySQL8.x从入门到精通,李小威,清华大学出版社,2022年1 .MySQL数据库教程,郑阿
4、奇,人民邮电出版社,2017年.MySQL8数据库原理与应用,徐丽霞,电子工业出版社,2020年2 .数据库系统概论(第五版),王珊,萨师熠编著,高等教育出版社,2014年3 .数据库系统概念(原书第7版),(美)Abraham Silberschatz等著,杨冬青等译, 机械工业出版社,2021年(三)学术刊物1 .国外ACM Transactions on Database Systems (TODS)(1) VLDB JournalIEEE Transactions on Knowledge and Data Engineering(2) ACM Transactions on Know
5、ledge Discovery from Data.国内(1)计算机学报(2)软件学报(3)计算机研究与发展(四)推荐网站1.2. http:/nosql-database.org/六、实验项目设置与内容序号实验项目名称内容提要学时性质要求1MySQL基础及常 用工具熟悉MySQL服务器的安装与 配置过程、掌握MySQL常用 工具的使用。2验证性选做2MySQL数据库和 表管理掌握MySQL数据库的创建、 修改和删除的方法、掌握表的 创建、修改和删除的方法。2综合性必做每个事务的处理必须满足ACID原则,即原子性(A)、一致性(C)、隔离性(I) 和持久性(D),我们称之为事务的特性或特征。
6、原子性(Atomicity):每个事务中的所有操作都被视为一个原子单元, 对事务所进行的数据修改等操作只能是完全提交或者完全回滚。 一致性(C):所有的数据从一种一致性状态变更为另外一种一致性状态。 隔离性(I):每个事务中的操作语句所做的修改必须和其他事务所做的 修改相隔离,而且事务的结果只有在它完全被执行时才能看到。 持久性(D):即使系统重启或者出现故障系统崩溃,一个提交的事务依 然存在。13. 1. 3 MySQL的事务的处理语句MySQL默认使用自动提交模式,即当一个会话开始时,自动提交功能是打 开的,用户每执行一条SQL语句后,该语句对数据库的修改就被立即提交,永 久保存在数据库里
7、。默认情况下,会话变量autocommit的值为ON,每个SQL语句都被当作一 个事务执行提交操作。【例13. 1查看会话变量autocommitoSHOW VARIABLES LIKE autocommit,;SELECT autocommit;在MySQL中,有两种方式可以关闭自动提交功能。1 .显式关闭自动提交功能在当前会话中,使用SET语句修改会话变量autocommit的值来关闭当前会 话的自动提交功能。SET autocommit = 0;2 .隐式关闭自动提交功能我们可以使用START TRANSACTION语句或者BEGIN work语句来显式地开 启一个事务,这就意味着在该事
8、务中关闭了自动提交功能。START TRANSACTION 是标准的SQL语法格式,是MySQL官方推荐的开启事务的方法。当事务中的SQL语句执行完毕,我们必须通过COMMIT语句来提交整个事务, 或者通过ROLLBACK语句来回滚到事务开始之前的状态。我们还可以在事务中使用SAVEPOINT point语句来设置一个保存点,也叫 回退点,然后用ROLLBACK TO SAVEPOINT point语句回滚到保存点位置,从而 达到部分语句回滚的目的。【例13.2】演示事务中的部分回滚操作。在MySQL命令行客户端输入命令:START TRANSACTION;INSERT INTO course
9、_available VALUES (101,高等数学,30, 70);SAVEPOINT savei;DELETE FROM course_available WHERE cname=宪法学;ROLLBACK TO SAVEPOINT savei;13. 1. 4 MySQL的事务的隔离级别每一个事务都有所谓的隔离级别,它定义了用户彼此之间隔离和交互的程 度。使用SET TRANSACITON语句可以设置事务的特征,包括设置事务隔离级别 或者事务访问模式。语法格式:SET GLOBAL|SESSION TRANSACTION ISOLATION LEVEL level | access_mo
10、deMySQL提供了 4种事务的隔离级别:序列化、可重复读、提交读和未提交 读。 序列化(SERIALIZABLE):又叫可串行化,是事务的最高隔离级别,它 会强制对事务排序,使事务之间不会发生冲突。 可重复读(REPEATABLE READ):是MySQL默认的事务隔离级别,它能确 保同一事务的多个实例在并发读取数据时总会看到同样的数据行。 提交读(READ COMMITTED):也叫读提交,该级别下的事务只能读取其 他事务已经提交的内容。 未提交读(READ UNCOMMITTED):也叫读未提交,是事务中最低的隔离 级别,该级别下的事务可以读取到其他事务中未提交的数据,也被称 为脏读,这
11、是非常危险的,实际中很少使用。可以通过系统变量transaction_isolation来查看事务的隔离级别。【例13.2查看事务的隔离级别。在MySQL命令行客户端输入命令:SELECT transaction_isolation;或者 SHOW VARIABLES LIKE f transaction_isolation?;13.2并发控制13. 2. 1并发概述在单处理机系统中,事务的并行执行实际上是这些并行事务轮流交叉进行, 这种并行执行方式称为交叉并发方式。在多处理机系统中,每个处理机可以运行一个事务,多个处理机可以同时 运行多个事务,实现事务真正的并发运行,这种并发执行方式称为同时
12、并发方 式。当多个用户同时访问同一数据库对象时,在一个事务更改数据的过程中,可能有其他事务发起更改请求,为保证数据的一致性,需要对并发操作进行控 制。 丢失更新问题:当两个或多个事务选择同一行,然后基于最初选定的值 更新该行时,由于每个事务都不知道其他事务的存在,就会发生丢失 更新问题,导致最后的更新覆盖了由其他事务所做的更新。 脏读问题:一个事务对某条记录做了修改但还未提交,这条记录的数据 就处于不一致状态,这时另一个事务也来读取同一条记录,并据此做 进一步的操作处理,这种现象被称为脏读。即一个事务读取另一个事 务未提交的脏数据。 不可重复读问题:就是在事务内重复读取了别的事务已经提交的数据
13、, 但多次读取的结果可能不一致,原因是查询过程中其他事务做了更新 的操作。 幻读问题:又叫虚读,是指在一个事务内两次查询中读取到的数据行的 范围不一致,原因是查询的过程中其他的事务做了添加或删除操作。13. 2.2锁的概述在同一时刻,可能会有多个客户端对表中同一行记录进行操作,为了保证 数据的一致性,数据库需要对这种并发操作进行控制,因此有了锁的概念。锁是一种用来防止多个客户端同时访问数据而产生问题的机制。锁粒度指锁的作用范围,是为了对数据库中高并发响应和系统性能两方面 进行平衡而提出的概念。锁粒度越小,并发的性能就越高,越适合做并发更新操作;锁粒度越大, 并发的性能就越低,越适合做并发查询操
14、作。MySQL主要使用3种级别的锁机制:表级锁、行级锁和页级锁。 表级(table-level)锁:表级锁会一次性锁定整张表,这样可以很好 地避免死锁问题。表级锁实现逻辑简单,开销小,获取锁和释放锁的 速度很快,但会出现锁定资源争用的概率较高,导致并发度较低。 行级(row-level)锁:行级锁最大的特点是锁定对象的粒度很小,因 此发生锁定资源争抢的概率也很小,最大限度地支持了并发处理。但 行级锁由于锁粒度小,每次获取锁和释放锁需要做的事情也更多,开 销更大,可能会出现死锁。 页面(page-level)锁:页面锁的粒度介于表级锁和行级锁之间,其所 需的资源开销和提供的并发能力也介于二者之间
15、。页面锁和行级锁一 样,有可能会产生死锁。13. 2.3 MylSAM的表级锁MylSAM存储引擎不支持事务,为了避免多用户在同一时间对指定表进行操作,我们可以设置表级锁代替事务完成相应功能,从而避免用户在操作数据表 过程中受到干扰。设置表级锁语句的语法格式:LOCK TABLES table_name lock_type,.当用户完成对该加锁表的操作后,应及时对表进行解锁,可以使用UNLOCK TABLES语句释放该表的锁定状态。一般不需要直接用该语句给My ISAM表加锁,因为My ISAM在执行SELECT 语句时,会自动给涉及到的所有表加读锁,在执行INSERT. UPDATE. DE
16、LETE 语句时,会自动给所涉及的表加写锁,这些加锁的操作并不需要用户干预。13. 2.4 InnoDB的行级锁InnoDB存储引擎既支持表级锁也支持行级锁,所以为InnoDB表设置锁要 更为复杂一些。为InnoDB表设置表级锁也是用LOCK TABLES语句,其使用方法和My ISAM 表基本相同,InnoDB实现了以下两种类型的行级锁:共享锁和排他锁。要使用这两种锁, 必须关闭自动提交,或者明确开启一个事务,即需要将系统变量autocommit 的值设置为OFF或者0,或者明确使用START TRANSACTION、BEGIN来开启一个 事务。共享锁(S):又称读锁。允许一个事务读取一行数
17、据时,阻止其他的事务 取得该行数据的排他锁的操作。也就是说,一个事务对某行数据加上共享锁后, 则该事务只能读不能修改该数据,而其他的事务只能对该数据加共享锁,而不 能加排他锁,直到该数据上的共享锁被释放。语法格式:SELECT * FROM table_naine WHERE . LOCK IN SHARE MODE排他锁(X):又称写锁。允许获得排他锁的事务更新数据,阻止其他事务 取得相同数据的共享锁和排他锁。也就是说,一个事务对某行数据加上排他锁 后,则该事务能读也能修改该数据,而其他的事务不能再对该行数据加任何锁, 直到该数据上的排他锁被释放。语法格式:SELECT * FROM tab
18、le_name WHERE . FOR UPDATE13. 2.5死锁死锁就是当多个用户打算同时更新同一数据时,因互相等待对方释放资源 而导致双方一直处于等待状态,这种无限期的等待我们就称之为死锁。通常来说,死锁都是应用设计的问题,通过调整业务流程、数据库对象设 计、事务大小,以及访问数据库的SQL语句,绝大部分死锁都可以避免。在事务中,如果要更新记录,应该直接申请足够级别的锁,即排他锁,而 不应先申请共享锁,更新时再申请排他锁。课后作业 及预习课后总结*课程教案编制日期:教学主题(章节、单元、知识点)第9讲MySQL数据库安全管理授课时间第17周课时安排4学时授课方式(J)J理论课 J实践课
19、 口讨论课 口习题课 其他:学习目的和要求1 .掌握用户管理操作2 .掌握权限的授予与回收3 .掌握角色的创建及分配教学重点及难点重点:用户、权限的概念及管理,角色的创建及分配 难点:数据库安全设置教学内容教学方法 及手段第14章MySQL数据库安全管理14.1 数据库安全管理概述数据库的安全性是指有效保护数据库,防止不合法地使用造成数据泄露、 更改或者毁坏,其本质是要保护数据的安全性、完整性和一致性。MySQL是一个多用户的数据库管理系统,它提供了功能强大的访问控制系 统,以此来确保MySQL服务器的安全访问,即它可以为不同用户指定不同的访 问权限,从而进一步减少数据泄露或被损坏的风险。数据
20、库安全管理最重要的是要确保有资格的用户访问数据库的权限,同时 令所有未授权的用户无法获取数据。14.2 用户管理14.3 2. 1查看用户信息1.使用user表查看用户信息MySQL的用户管理包括管理用户的账号、权限和角色等。MySQL用户可以分 为两种:root用户和普通用户。root用户是超级管理员,拥有所有权限,普通 用户只拥有被授予的各种权限。MySQL的用户账号及相关信息都存储在mysql数据库的user表中,我们可 以用SELECT语句去user表中查看所有的用户信息。【例14. 1查看MySQL中所有用户。在MySQL命令行客户端输入命令:举例、多媒 体、讲解+讨 论SELECT
21、 user,host FROM mysql. user;.使用函数查看当前用户第11章我们介绍过部分系统函数,可以使用这些函数来查看当前登录用户 的名称。【例14.2查看当前用户。在MySQL命令行客户端输入命令:SELECT USER ();SELECT CURRENT_USER();2 .使用图形化工具查看用户2.2登录和退出MySQL服务器启动MySQL服务后,可以在DOS窗口通过mysql命令登录到MySQL服务器, 基本语法格式如下:mysql -h hostname|hostIP -P port -u username -p-D DatabaseName -e SQL 语句”其余参
22、数可以通过mysql -help或者mysql -?语句来查询退出登录直接输入QUIT或者EXIT命令即可【例4.3登录MySQL服务器中的jwgl数据库。在MySQL命令行客户端输入命令:mysql -u root -p jwgl回车后在下一行出现uEnter password: ”时输入密码即可。14. 2. 3创建用户.使用命令创建用户可以使用CREATE USER语句来创建用户,语法格式:CREATE USER IF NOT EXISTS userIDENTIFIED BY password,user IDENTIFIED BY f password1 DEFAULT ROLE rol
23、e ,role.WITH resource_option resource_option.password_option|lock_optionCOMMENT 1comment_string【例14.4】创建新用户ul,主机名为localhost,密码为“123456”。在MySQL命令行客户端输入命令:CREATE USER ullocalhost IDENTIFIED BY 123456;.使用图形化工具创建用户14. 2.4修改用户1 .使用RENAME USER语句RENAME USER语句可以修改一个或多个已经存在的用户账号名称,语法格 式:RENAME USER old_user
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- MySQL数据库管理与应用 教学大纲、授课计划 教案 MySQL 数据库 管理 应用 教学大纲 授课 计划
限制150内