← 返回首页
💾

数据库原理与应用

掌握数据库系统的核心原理与实践技能,为数据分析与应用开发提供数据管理能力

📅
开设学期
大一第二学期
⏱️
课时
56 课时
🎯
课程类型
专业基础课
🔧
核心工具
MySQL / SQLyog

📚 课程大纲

共 8 章 · 原理 + SQL + 项目

1 数据库概述

了解数据库的基本概念、发展历史和分类。认识数据库系统的组成(硬件、软件、数据、用户)。理解数据库管理系统的作用与主流数据库产品(MySQL、PostgreSQL、Oracle、SQL Server)。

  • 数据管理技术发展:人工管理 → 文件系统 → 数据库系统
  • 数据库模型分类:层次模型、网状模型、关系模型、NoSQL
  • 关系型数据库vs非关系型数据库的特点与选择
  • MySQL数据库的安装与初始化配置
  • SQLyog / Navicat 可视化工具的基本使用
2 关系模型与数据完整性

深入理解关系模型的基本概念:表(Relation)、元组(Tuple)、属性(Attribute)、键(Key)。掌握主键、外键、候选键、超级键的作用,以及实体完整性和参照完整性约束。

  • 关系的性质:元组唯一性、元组无序性、属性原子性
  • 键的定义:主键(PRIMARY KEY)、外键(FOREIGN KEY)、候选键、超级键
  • 实体完整性:主键值不能为空
  • 参照完整性:外键引用必须存在
  • 实战:使用MySQL创建员工管理系统数据库(DDL语句)
3 SQL查询语言(基础)

掌握SQL的DML核心语句:SELECT(查询)、INSERT(插入)、UPDATE(更新)、DELETE(删除)。熟练使用WHERE条件过滤、ORDER BY排序、DISTINCT去重、LIMIT限制行数。

  • SELECT语句:列选择(* vs 列名)、别名(AS)
  • WHERE子句:=、<>、>、<、BETWEEN、IN、LIKE、NULL判断
  • ORDER BY:升序ASC / 降序DESC,多列排序
  • 聚合函数:COUNT()、SUM()、AVG()、MAX()、MIN()
  • 实战:使用SQL完成学生成绩管理系统数据查询
4 SQL查询语言(进阶)

深入学习SQL的GROUP BY分组、HAVING条件过滤、JOIN连接查询、子查询。掌握多表查询的思路与技巧,能够从复杂数据关系中提取所需信息。

  • GROUP BY + HAVING:分组聚合与分组后条件过滤
  • JOIN连接:INNER JOIN / LEFT JOIN / RIGHT JOIN / FULL OUTER JOIN
  • 自连接:员工表查上级、课程表查先修课程
  • 子查询:标量子查询、表子查询、EXISTS子查询
  • UNION合并查询结果
  • 实战:使用多表查询完成电商订单分析(订单表+用户表+商品表)
5 数据库设计与规范化

学习数据库设计的基本步骤:需求分析 → 概念设计(E-R图)→ 逻辑设计 → 物理设计。理解函数依赖与规范化理论(1NF/2NF/3NF/BCNF),掌握如何设计出合理的数据库结构。

  • E-R图:实体、属性、联系,1:1 / 1:N / M:N关系
  • E-R图转关系模型:实体转表、联系转外键
  • 函数依赖:完全函数依赖、部分函数依赖、传递依赖
  • 规范化:1NF(原子性)→ 2NF(消除部分依赖)→ 3NF(消除传递依赖)
  • 实战:设计连锁门店管理系统数据库(E-R图 + 建表SQL)
6 索引与数据库性能优化

理解数据库索引的工作原理及其对查询性能的提升。掌握MySQL中索引的创建与使用,学会分析查询语句的执行计划(EXPLAIN),识别性能瓶颈。

  • 索引原理:B-Tree索引 vs Hash索引
  • 索引类型:主键索引、唯一索引、普通索引、联合索引
  • 索引创建:CREATE INDEX / ALTER TABLE ADD INDEX
  • 执行计划分析:EXPLAIN 关键字
  • 索引失效场景:LIKE前置通配符、函数运算、OR条件
  • 实战:对订单表建立复合索引,分析查询性能提升效果
7 视图、存储过程与事务控制

学习数据库的高级对象:视图(简化复杂查询)、存储过程(封装业务逻辑)、触发器(自动化动作)。掌握事务控制语句(BEGIN/COMMIT/ROLLBACK),理解事务的ACID特性。

  • 视图:创建、修改、删除,视图的优缺点
  • 存储过程:DELIMITER定义、IN/OUT参数、流程控制语句
  • 触发器:BEFORE / AFTER INSERT/UPDATE/DELETE
  • 事务:ACID特性(原子性、一致性、隔离性、持久性)
  • 并发问题:脏读、不可重复读、幻读与隔离级别
  • 实战:编写订单处理的存储过程(含事务回滚)
8 综合实战:数据分析型数据库项目

综合运用数据库设计、SQL查询、数据建模知识,完成一个面向数据分析的数据库项目。从需求分析 → 数据建模 → 建表入库 → SQL分析查询 → 报告输出。

  • 案例:电商经营分析数据库(用户、商品、订单、物流、评价)
  • 数据入库:使用Python pandas批量导入CSV数据到MySQL
  • 业务分析SQL:日销售额、客户复购率、商品排行榜、库存预警
  • 数据备份与恢复:mysqldump / source 命令
  • 实战项目:搭建完整的电商数据分析数据库并完成核心报表SQL