|
|
重点提示:如果查询不到相应复习答案,请联系客服 配合客服的要求处理!
获取更多参考答案,请关注【雅宝知识库】 公众号发送题目获取
免费试题原文:www.ybaotk.com
免费试题答案:www.ybaotk.com
原题带图或者小论文、画图,请查阅:ybaotk.com。
广东开放大学Mysql数据库原理与应用(本)期末考试试卷与参考答案
以下是一份针对广东开放大学《MySQL数据库原理与应用(本)》期末考试的复习笔记,涵盖核心知识点、典型题型及参考答案要点,供参考学习:
广东开放大学《MySQL数据库原理与应用(本)》复习笔记
一、数据库系统基础
1. 数据库系统(DBS)组成
- 数据库(Database)、数据库管理系统(DBMS)、应用程序、用户、数据库管理员(DBA)。
- 核心功能:数据定义、数据操作、数据控制、数据管理。
2. 关系模型与规范化
- 关系模型:二维表结构,包含行(元组)和列(属性)。
- 范式:
- 1NF(原子性):每个属性值都是不可分割的原子值。
- 2NF(无部分依赖):在1NF基础上,非主键字段不依赖于主键的一部分。
- 3NF(无传递依赖):非主键字段不依赖于其他非主键字段。
- BCNF(Boyce-Codd范式):消除所有非主属性对主键的传递依赖。
- 规范化目的:减少数据冗余,提高数据一致性。
二、SQL语言基础
1. SQL基本语法
- 数据查询(DQL):`SELECT`语句,包含`WHERE`、`GROUP BY`、`HAVING`、`ORDER BY`、`LIMIT`等子句。
- 数据定义(DDL):`CREATE TABLE`、`ALTER TABLE`、`DROP TABLE`。
- 数据操作(DML):`INSERT`、`UPDATE`、`DELETE`。
- 事务控制(DCL):`COMMIT`、`ROLLBACK`、`SAVEPOINT`。
2. 复杂查询与函数
- 聚合函数:`COUNT()`、`SUM()`、`AVG()`、`MAX()`、`MIN()`。
- 分组查询:使用`GROUP BY`结合`HAVING`过滤分组结果。
- 连接查询:`INNER JOIN`、`LEFT JOIN`、`RIGHT JOIN`、`CROSS JOIN`。
- 子查询:嵌套查询,常用于`SELECT`、`INSERT`、`UPDATE`、`DELETE`中。
3. 典型例题
- 例题1:写出查询`students`表中年龄大于20岁的学生姓名和成绩的SQL语句。
答案:
```sql
SELECT name, score FROM students WHERE age > 20;
```
三、MySQL数据库设计
1. 数据库设计步骤
- 需求分析 概念设计(ER图) 逻辑设计(关系模式) 物理设计(索引、存储引擎) 实现与维护。
2. 表设计与约束
- 主键(PRIMARY KEY):唯一标识表中每一行的列。
- 外键(FOREIGN KEY):确保表间数据的引用完整性。
- 索引(INDEX):提高查询效率,但会降低写入速度。
- 存储引擎:InnoDB(支持事务)、MyISAM(高性能读取)、Memory(临时数据)。
3. 范式应用
- 反范式化:为提高查询性能而牺牲部分规范化,需权衡利弊。
四、事务与并发控制
1. 事务(Transaction)特性(ACID)
- 原子性(Atomicity):事务要么全部执行,要么全部回滚。
- 一致性(Consistency):事务结束后,数据库处于合法状态。
- 隔离性(Isolation):事务之间互不干扰(通过隔离级别实现)。
- 持久性(Durability):事务提交后,修改永久保存。
2. 事务隔离级别
- 读未提交(Read Uncommitted):最低隔离级别,可能引发脏读、不可重复读、幻读。
- 读已提交(Read Committed):避免脏读,但可能不可重复读或幻读。
- 可重复读(Repeatable Read):MySQL默认级别,避免脏读和不可重复读,但可能有幻读。
- 串行化(Serializable):最高隔离级别,完全串行化执行,避免所有并发问题。
3. 并发问题与解决
- 锁机制:行级锁(InnoDB)、表级锁(MyISAM)。
- 死锁:通过设置锁等待超时或调整事务顺序避免。
五、MySQL性能优化
1. 索引优化
- B+Tree索引:适用于范围查询和排序。
- 哈希索引:适用于等值查询,但不支持范围查询。
- 覆盖索引:查询列全部包含在索引中,避免回表查询。
- 索引选择原则:高频查询字段、唯一性高的字段优先建索引。
2. 查询优化
- 避免SELECT *:只查询需要的字段。
- 使用EXPLAIN分析查询计划:查看索引使用情况。
- 避免在WHERE子句中使用函数:可能导致索引失效。
3. 硬件与配置优化
- 缓存配置:调整`innodb_buffer_pool_size`、`query_cache_size`。
- 分库分表:解决单表数据量过大问题。
六、MySQL高级特性
1. 存储过程与触发器
- 存储过程:预编译的SQL语句集合,提高执行效率。
```sql
DELIMITER $$
CREATE PROCEDURE GetStudentScore(IN student_id INT)
BEGIN
SELECT name, score FROM students WHERE id = student_id;
END $$
DELIMITER ;
```
- 触发器:在特定事件(如INSERT、UPDATE)发生时自动执行的代码块。
2. 数据库复制(Replication)
- 主从复制:主库写入,从库同步读取,提高读取性能和容灾能力。
- 复制类型:基于语句(Statement-Based)、基于行(Row-Based)、混合模式(Mixed)。
3. 事务管理
- 显式事务:使用`START TRANSACTION`、`COMMIT`、`ROLLBACK`控制事务边界。
- 自动提交模式:默认开启,可通过`SET autocommit = 0`关闭。
七、常见考点与题型
1. 选择题
- 考点:事务隔离级别、索引类型、SQL语法、范式判断。
- 例题:MySQL默认的事务隔离级别是?
答案:可重复读(Repeatable Read)。
2. 简答题
- 例题:简述索引的作用和优缺点。
答案:
- 作用:加速数据检索,支持排序和分组。
- 优点:提升查询速度。
- 缺点:占用存储空间,降低写入速度。
3. 设计题
- 例题:设计一个学生选课系统的数据库表结构,包含学生表、课程表、选课表。
答案要点:
- 学生表:`student_id`(主键)、`name`、`age`、`email`。
- 课程表:`course_id`(主键)、`course_name`、`teacher_id`(外键)。
- 选课表:`id`(主键)、`student_id`(外键)、`course_id`(外键)、`score`。
4. 分析题
- 例题:分析以下SQL语句的性能问题并优化:
```sql
SELECT * FROM orders WHERE order_date > '2023-01-01';
```
答案:
- 如果`order_date`未建立索引,会导致全表扫描。
- 优化:在`order_date`字段上创建索引:
```sql
CREATE INDEX idx_order_date ON orders(order_date);
```
八、实验与操作
1. MySQL命令行操作
- 启动服务:`service mysql start`。
- 连接数据库:`mysql -u root -p`。
- 查看数据库:`SHOW DATABASES;`。
2. 备份与恢复
- 备份:`mysqldump -u root -p dbname > backup.sql`。 |
上一篇:广东开放大学Mysql数据库及应用专作业答案 2作业答案下一篇:广东开放大学Mysql数据库原理与应用本学习行为评价作业答案
|