课程学习
一、数据库基础概念 & 技术发展:搞懂底层逻辑
很多人学数据库第一步就卡壳,分不清数据、信息、数据库的区别,我们从最基础的概念慢慢拆解。
1. 信息和数据:一字之差,完全不同
这两个概念是数据库的核心基础,记住一句话:数据是原材料,信息是加工后的有用结果。
- 信息:对原始数据整理、加工、赋予含义后,得到的有效内容。
- 信息(教师PPT):信息是通过各种方式传播的能被感受的声音、文字、图像、符号等,是新的、有用的事实和知识。是对现实世界事物的存在方式和运动状态的反映,需要具有可表示性和可传递性。 信息的要点:现实、主观、有价值。 举例:把上面的数据整合:
用户年龄18岁、25岁,性别女,所在地北京,有了明确含义,能看懂、能使用,这就是信息。 - 数据 :就是最原始、未加工的符号,可以是数字、文字、图片、日期,没有任何意义。 举例:
18、25、女、北京,单独看这些字符,你不知道代表什么,这就是纯数据。 - 数据(教师PPT):数据是信息的载体,可以更有效地表示、存储和抽取信息。数据用来实现信息的可表示性和可传递性。
数据库的工作,简单说就是:收集海量原始数据,加工成有效信息,再安全、高效地存储和调用。
2. 数据库(DB):结构化的智能数据仓库
官方定义很枯燥,我们通俗理解:数据库就是长期存储在电脑中、有规则、可共享、统一管理的数据集合。
对比生活场景:
- 以前我们存数据:用Excel表格、记事本,杂乱无章,数据多了就卡顿、重复、不好查找;
- 数据库存数据:相当于把无数张Excel表格规整好,分类存放、自动去重、快速检索,所有人都能规范使用,不会混乱。
日常我们用的美团订单、微信好友、抖音视频记录、银行卡余额,所有线上数据,全部都存在数据库里。
数据库的核心价值:
- 存储数据:以结构化方式高效存储海量信息。
- 管理数据:提供标准接口支持数据的增、删、改、查操作。
- 保障安全:通过用户权限控制、数据加密、备份恢复等机制,防止数据泄露、篡改或丢失。
- 实现共享:允许多个合法用户或不同业务系统同时、并发地访问和使用同一套数据资源。
3. 数据管理:对数据的全流程打理
数据管理就是对数据的收集、存储、整理、查询、更新、删除、备份全流程操作。
依旧用生活案例理解:我们手机里的相册,整理照片、删除废图、分类相册、查找旧照片,这个过程就是最简单的数据管理。
而数据库的数据管理,就是把这个过程智能化、规模化,支撑亿万级数据的高效打理。
例如:收集所有学生详细信息,做成一个表格。将一组统计数据转换为一个统计图。定时备份数据。
4. 数据库管理技术的三大发展阶段
数据库不是一开始就这么智能的,经历了三个迭代阶段,每一次升级都是为了解决上一阶段的痛点:
阶段1:人工管理阶段(最原始)
计算机刚诞生时,没有专门存数据的工具,数据全部靠人工记录、手动录入。
核心特点:
- 数据不保存:用完即丢,仅在程序运行时人工输入,无长期存储介质。
- 数据不共享:一组数据只能对应一个程序,程序之间数据相互独立,大量冗余。
- 数据不独立:数据的逻辑结构或物理结构一旦改变,程序代码必须随之修改,维护成本极高。
痛点:数据不能共享、重复严重、丢失风险高、完全依赖人工,效率极低。
阶段2:文件系统阶段(半自动化)
电脑出现文件功能后,人们用txt、Excel、文件夹存储数据。
核心特点:
- 数据可长期保存:数据以文件为单位长期存储在外存上,可反复使用。
- 共享性差、冗余度大:一个应用程序通常对应一个文件,不同程序的数据无法直接共享。
- 数据独立性差:数据的逻辑结构发生改变,应用程序代码通常也需要随之修改,维护成本高。
优势:数据可以长期保存、不用全程人工记录;
痛点:数据杂乱、关联性差、修改一个数据要改多个文件、无法统一管理,数据冗余严重。
阶段3:数据库系统阶段(现阶段主流)
专门的数据库软件诞生,实现数据统一管理、共享使用、关联存储,也是我们现在学习和使用的阶段。
5. 数据库管理阶段的核心特点
对比前两个阶段,现代数据库的核心优势小白也能一眼看懂:
- 数据结构化:所有数据按规则存放,比如用户表、订单表,分类清晰,不像文件系统杂乱无章;
- 数据共享性高、冗余度低:一份数据多人、多个程序共用,不用重复存储,节省空间;
- 数据独立性高:数据和软件程序分开,改数据不用改代码,改代码不用动数据;
- 统一管控:支持数据查询、修改、备份、权限管理,安全可控。
二、数据库系统组成:软件+人员,两大核心模块
完整的数据库系统,不只是一堆数据,而是软件系统+专业管理人员的组合,缺一不可。
1. 软件系统:数据库的"硬件载体"
软件系统包含操作系统、数据库软件、开发工具等,其中最核心的就是DBMS(数据库管理系统)。
1.1 什么是DBMS?
DBMS是专门用来管理数据库的核心软件,是用户和数据库之间的"桥梁"。
通俗举例:数据库是"仓库",DBMS就是"仓库管理员",我们所有的查数据、改数据、存数据的操作,都是通过DBMS完成的。
常见DBMS:MySQL、Oracle、SQL Server、Redis、MongoDB等。
1.2 DBMS的核心功能
作为数据库的核心,它包揽了所有核心工作,新手记住这6个核心功能即可:
- 数据定义:规定数据的格式、表结构,比如规定用户表必须有姓名、手机号、年龄;
- 数据操纵:支持增删改查(新增、删除、修改、查询数据),就是我们最常用的SQL操作;
- 数据管理:管控数据权限,比如普通用户只能查数据,管理员可以改数据;
- 数据存储:规整、压缩、存储海量数据,节省服务器空间;
- 事务管理:保证数据安全,比如转账时,扣款和到账必须同时成功或同时失败,不会出现单边扣款;
- 故障恢复:服务器崩溃、断电后,能自动恢复数据,避免数据丢失。
2. 人员:数据库的"运维管理者"
软件是工具,最终需要人来操作维护,数据库系统的核心人员就是DBA(数据库管理员),也就是我从事多年的岗位。
2.1 数据库管理员(DBA)核心工作
- 搭建、部署、升级数据库系统;
- 设计数据结构,规整数据存储规则;
- 管控用户权限,防止数据泄露、误删;
- 日常备份数据、排查故障、优化查询速度;
- 处理高并发、海量数据带来的性能问题。
简单说:数据库稳不稳定、快不快、安不安全,全靠DBA运维把控。
三、核心重点:数据模型(零基础必吃透)
数据模型是数据库的灵魂,也是新手最难理解、考试和面试最高频的知识点。大家不用死记硬背,记住三个世界的转换逻辑就能彻底搞懂。
1. 数据模型的核心逻辑:三个世界转换
我们现实生活中的事物,想要存入电脑数据库,必须经过三次转换:现实世界 → 信息世界(概念模型) → 机器世界(逻辑+物理模型)
第一步:现实世界
真实存在的事物和关系,比如:学校有学生、学生有姓名学号、学生要选课、一门课有多个学生选。这是我们肉眼可见的真实场景。
第二步:信息世界(概念模型)
把现实事物抽象化,不考虑电脑怎么存,只梳理清楚事物和关系,是中间过渡层。
核心术语(通俗举例):
- 实体:真实事物,比如学生、课程、订单;
- 属性:实体的特征,比如学生的姓名、学号、年龄;
- 联系:实体之间的关系,比如学生和课程是"多对多"关系(一个学生选多门课,一门课多个学生选)。
常用工具:E-R图(实体-联系图),专门用来画概念模型,梳理数据关系。
第三步:机器世界
把抽象的概念模型,转换成电脑能识别、存储、读取的格式,分为两层:
- 逻辑模型:规定数据的存储结构(我们重点学习的部分);
- 物理模型:数据最终在硬盘、服务器上的存储位置、存储方式(底层硬件层面,新手无需深究)。
2. 核心逻辑模型详解(主流数据库全靠它)
逻辑模型需要体现三个方面的特征:
- 数据结构,描述数据用什么结构组织起来。例如,层次、网状、关系。
- 数据操作,描述可以对数据进行哪些操作。例如,读:查询;写:插入、删除、更新。
- 数据约束,描述数据规则从而保证数据完整。数据的正确性、有效性、相容性。
层次与网状模型的优缺点:
- 优点:能直观、形象地描述实体及其联系,易于理解 。
- 缺点:数据结构较复杂,存储数据需要更多的链接指针;在检索数据时,需要考虑数据的存储路径;在插入或删除数据时,要调整链接指针。
2.1 关系模型(目前绝对主流)
现在90%的数据库都是关系模型,比如MySQL、Oracle、SQL Server。
通俗定义:用二维表格(行+列)存储数据,表格之间可以建立关联关系。
举例:学生表就是一张二维表
- 列:学号、姓名、年龄、班级(固定属性);
- 行:每一个学生的具体信息(一条数据);
- 关联:学生表可以和成绩表关联,通过学号匹配对应成绩。
优点:结构简单、规整、支持复杂查询、数据准确性高,适合金融、电商、校园系统等绝大多数场景。
2.2 面向对象模型
贴合编程的面向对象思想,把每一个事物都当成一个"对象",包含属性和行为。
举例:把"学生"作为一个对象,属性是姓名、年龄,行为是选课、考试。
适用场景:存储复杂数据,比如图片、视频、工程文件等非表格数据,常用于高端工程、设计领域数据库。
3. 三个世界术语对应表(小白速记)
为了方便大家对应记忆,整理核心对应关系:
- 现实事物 → 信息世界实体 → 机器世界数据表;
- 事物特征 → 实体属性 → 数据表字段(列);
- 具体一个事物 → 实体实例 → 数据表一行数据;
- 事物关系 → 实体联系 → 数据表关联关系。
四、数据库系统体系结构:三级模式+二级映像
这部分是数据库架构的核心,也是面试高频考点,依旧用生活化分层逻辑讲解,看完彻底告别死记硬背。
1. 整体架构逻辑
数据库系统采用三级模式、二级映像 的分层架构,这套设计的核心目标就是实现两种独立性:数据逻辑独立性、数据物理独立性,隔离上层业务与底层存储,上层改逻辑、底层改硬件,尽量互不干扰。
内模式修改了,但不改变模式,则保证了数据的物理独立性;模式修改了,但不改变外模式,则保证了数据的逻辑独立性。
2. 三级模式(从用户到底层的三层结构)
2.1 外模式(用户层)
也叫"子模式",就是普通用户看到的专属数据视图。
举例:学校数据库中,学生只能看到自己的成绩、课表;老师能看到全班成绩;管理员能看到全校数据。每个人看到的不同界面,就是不同的外模式。
特点:一个数据库可以有多个外模式,按需展示数据,保护隐私。
2.2 模式(全局层,核心层)
也叫"概念模式",是整个数据库的全局、完整数据结构,是所有数据的总模板。
举例:学校完整数据库,包含学生表、老师表、课程表、成绩表的所有结构和数据,是数据库的完整全貌,普通用户看不到,只有DBA能查看和管理。
特点:一个数据库只有一个模式,统一规范所有数据。
2.3 内模式(底层存储层)
也叫"存储模式",是数据在服务器硬盘上的真实存储方式。
举例:数据库里的学生数据,最终是以文件、区块的形式存在服务器硬盘中,怎么存、存在哪、如何压缩,就是内模式管控的内容。
特点:一个数据库只有一个内模式,完全屏蔽底层硬件细节,用户无需关心。
3. 二级映像:三层架构的联动核心
三级模式不是孤立的,靠二级映像联动,实现数据独立性,这是架构的精髓:
3.1 外模式/模式映像
作用:保证逻辑独立性。
通俗解释:如果全局数据表(模式)新增了字段,不会影响普通用户的视图(外模式),用户看到的界面不变,无需修改程序。
3.2 模式/内模式映像
作用:保证物理独立性。
通俗解释:如果服务器硬盘更换、数据存储位置调整(内模式修改),不会影响全局数据结构(模式),用户和程序完全感知不到变化。
五、数据库新技术:新一代数据库全景简析
传统关系型数据库(MySQL、Oracle)适合常规业务,但面对海量大数据、高并发、复杂场景,就会出现瓶颈,因此诞生了第三代数据库和大数据管理新技术,下面通俗拆解主流类型。
1. 第三代新型数据库
1.1 面向对象数据库系统
贴合编程面向对象思想,支持对象、继承、封装,适合存储图片、模型、音频等复杂对象数据,多用于设计、工程领域。
1.2 对象关系数据库系统
结合了传统关系数据库和面向对象数据库的优点,既支持表格结构化数据,又能存储复杂对象数据,Oracle、PostgreSQL均支持该特性,适配绝大多数企业复杂业务。
1.3 XML数据库系统
专门存储、解析XML格式数据,多用于政务、金融、电商的数据对接、报文存储场景,适配标准化文本数据传输。
1.4 时序数据库系统
专门存储带时间戳的时序数据,比如设备监控数据、服务器性能数据、股市行情,数据按时间有序增长,写入速度极快。
1.5 空间数据库系统
专门存储地理位置、空间坐标数据,高德地图、百度地图、物流轨迹追踪,全部依赖空间数据库。
1.6 工程数据库系统
针对建筑、机械、软件开发等工程场景,存储工程图纸、模型、版本数据,支持复杂工程数据迭代管理。
2. 大数据时代核心技术:NoSQL数据库(重点)
NoSQL全称Not Only SQL ,不是取代传统数据库,而是补充传统数据库的短板,专门应对海量数据、超高并发、灵活数据结构场景,分为四大主流类型,全部附实战案例:
2.1 键值数据库(代表:Redis)
逻辑最简单,以「key(键)-value(值)」的形式存储数据,类似我们手机的字典、备忘录。
场景:缓存存储、登录态、验证码、热点数据。比如我们登录网站后保持在线、验证码5分钟有效,全部靠Redis实现,读写速度极快。
2.2 列存储数据库(代表:HBase)
按"列簇"存储数据,不同于传统表格按行存储,擅长存储超海量、稀疏数据。
场景:大数据日志、用户行为日志、海量报表数据,是大数据分析的核心数据库。
2.3 文档数据库(代表:MongoDB)
以JSON/BSON文档格式存储数据,结构超级灵活,不用提前固定字段。
场景:小程序、APP用户信息、动态内容、商品详情,适合业务快速迭代、数据结构经常变动的场景。
2.4 图数据库(代表:Neo4j)
以"节点+关系"存储数据,专门处理复杂关联关系。
场景:社交人脉推荐、金融风控(排查转账关联账户)、知识图谱、物流链路分析,擅长挖掘数据之间的深层关系。
六、全文总结
- 数据库的本质是规整存储数据的智能仓库,从人工、文件系统迭代到数据库系统阶段,实现了数据高效、安全、共享管理;
- 完整数据库系统由DBMS软件+DBA运维人员组成,DBMS是核心工具;
- 数据模型核心是三个世界转换,关系模型是当下主流,适配绝大多数业务;
- 三级模式二级映像架构,实现了数据逻辑和物理独立性,是数据库稳定运行的核心架构;
- 新型数据库和NoSQL技术,弥补了传统数据库的短板,适配大数据、高并发、复杂场景。
以上就是数据库系统概述的全套零基础知识点,全程无晦涩理论,全部贴合实战场景,新手吃透这篇内容,就掌握了数据库入门的核心根基!
课后习题
第一部分:数据库基本概念和数据库技术发展
一、选择题
- 下列关于数据与信息的说法正确的是( )
A. 数据一定是有意义的内容 B. 信息是原始未加工的符号 C. 数据是原材料,信息是加工后有含义的内容 D. 数据和信息完全等价
- 数据库系统阶段相比于文件系统阶段,最大的优势是( )
A. 数据可以长期保存 B. 数据结构化、共享性高、冗余度低 C. 无需软件即可使用 D. 操作更加简单无脑
- 以下不属于数据库系统阶段核心特点的是( )
A. 数据结构化 B. 数据独立性高 C. 数据完全不可共享 D. 统一管理控制
二、判断题
- "20、上海、男"这类单独的符号属于原始数据,不属于信息。( )
- 文件系统阶段可以彻底解决数据重复、数据关联混乱的问题。( )
- 数据管理指对数据的收集、存储、增删改查、备份等全流程操作。( )
三、简答题
- 简述数据和信息的区别,并结合生活举例说明。
- 简述数据管理技术三个发展阶段的优缺点。
第二部分:数据库系统的组成(软件+人员)
一、选择题
- 数据库系统的核心软件是( )
A. 操作系统 B. DBMS 数据库管理系统 C. 办公软件 D. 浏览器
- 以下不属于 DBMS 主要功能的是( )
A. 数据定义与数据操纵 B. 事务管理与故障恢复 C. 自动编写业务代码 D. 权限与数据安全管理
- DBA 指的是( )
A. 数据库用户 B. 数据库管理员 C. 数据库开发程序员 D. 数据库测试人员
二、判断题
- DBMS 是用户和数据库之间的桥梁,所有数据操作都通过它完成。( )
- 数据库系统只需要软件,不需要专业人员维护。( )
- 故障恢复是 DBMS 的重要功能,可以避免数据丢失。( )
三、简答题
- 什么是 DBMS?日常常见的 DBMS 有哪些?
- 简述 DBA(数据库管理员)的主要工作职责。
第三部分:数据模型(重点必考)
一、选择题
- 数据模型的三个世界转换顺序正确的是( )
A. 信息世界→现实世界→机器世界 B. 现实世界→信息世界→机器世界 C. 机器世界→信息世界→现实世界 D. 现实世界→机器世界→信息世界
- E-R 图对应的模型是( )
A. 物理模型 B. 概念模型(信息世界) C. 逻辑模型 D. 面向对象模型
- 目前工业界最主流、使用最广泛的逻辑模型是( )
A. 面向对象模型 B. 关系模型 C. 网状模型 D. 层次模型
二、判断题
- 概念模型不需要考虑计算机如何存储,只梳理事物与关系。( )
- 关系模型通过二维表格的形式组织数据。( )
- 物理模型是程序员日常开发中最常操作的模型。( )
三、简答题
- 简述数据模型"三个世界"的对应关系,并写出术语对应关系。
- 什么是关系模型?请举一个生活案例说明。
第四部分:数据库系统体系结构(三级模式二级映像)
一、选择题
- 数据库三级模式中,面向普通用户、可以有多份的是( )
A. 外模式 B. 模式 C. 内模式 D. 存储模式
- 保证数据逻辑独立性的是( )
A. 模式/内模式映像 B. 外模式/模式映像 C. 三级模式结构 D. 以上都不是
- 关于数据库三级模式说法正确的是( )
A. 一个数据库可以有多个模式 B. 一个数据库只有一个内模式、一个模式 C. 外模式是底层存储结构 D. 内模式面向用户展示数据
二、判断题
- 模式也叫概念模式,是数据库全局完整数据结构。( )
- 模式/内模式映像可以保证物理独立性,底层存储改动不影响上层业务。( )
- 普通用户可以直接看到数据库的内模式存储细节。( )
三、简答题
- 简述数据库三级模式(外模式、模式、内模式)各自的作用。
- 什么是二级映像?分别解决了什么问题?
第五部分:数据库新技术(第三代数据库+NoSQL)
一、选择题
- 缓存、验证码、登录态场景最常用的 NoSQL 数据库是( )
A. MongoDB B. Redis C. HBase D. Neo4j
- 用于存储文档结构、数据结构灵活的数据库是( )
A. 键值数据库 B. 文档数据库 MongoDB C. 图数据库 D. 时序数据库
- 专门用于处理关系、图谱、风控、社交推荐的数据库是( )
A. Neo4j B. Redis C. HBase D. MySQL
二、判断题
- NoSQL 数据库是为了解决海量数据、高并发场景诞生的。( )
- HBase 属于列存储数据库,适合海量日志大数据存储。( )
- 时序数据库主要用来存储图片、文档文件。( )
三、简答题
- 简述四大类 NoSQL 数据库的特点及代表产品、适用场景。
- 简单列举3种第三代新型数据库及其用途。
参考答案(全章节)
一、数据库基本概念和技术发展
选择题:1.C 2.B 3.C
判断题:1.√ 2.× 3.√
简答题答案
- 数据是原始无意义的符号,信息是数据加工后得到的有意义、可使用的内容。举例:"18"是数据;"用户年龄18岁"是信息。
- ①人工管理:无存储工具、效率低、无法共享;②文件系统:可长期保存,但数据冗余高、关联性差;③数据库系统:数据结构化、共享性高、冗余低、独立性强、统一安全管理。
二、数据库系统的组成
选择题:1.B 2.C 3.B
判断题:1.√ 2.× 3.√
简答题答案
- DBMS 是数据库管理系统,是管理数据库的核心软件,是用户与数据库的桥梁。常见:MySQL、Oracle、SQL Server、Redis、MongoDB。
- DBA 负责数据库部署、结构设计、权限管理、数据备份、故障排查、性能优化、高并发运维、数据安全管控等工作。
三、数据模型
选择题:1.B 2.B 3.B
判断题:1.√ 2.√ 3.×
简答题答案
- 三个世界:现实世界(真实事物)→信息世界(概念模型,梳理实体与关系)→机器世界(逻辑+物理模型,计算机可识别存储)。对应关系:事物=实体=数据表;特征=属性=字段;单个事物=实例=一行数据。
- 关系模型是用二维表格(行、列)存储数据,支持表与表关联。举例:学生信息表,每一列是属性(学号、姓名),每一行是一个学生数据,可关联成绩表查询学生成绩。
四、数据库体系结构
选择题:1.A 2.B 3.B
判断题:1.√ 2.√ 3.×
简答题答案
- 外模式:面向普通用户,按需展示部分数据,保护隐私;模式:全局统一数据结构,整库唯一;内模式:底层硬件存储方式,管理数据在硬盘的存储规则。
- 二级映像包括外模式/模式映像、模式/内模式映像。前者保证逻辑独立性 (全局结构改动不影响用户视图);后者保证物理独立性(底层存储改动不影响上层数据结构和业务)。
五、数据库新技术
选择题:1.B 2.B 3.A
判断题:1.√ 2.√ 3.×
简答题答案
- ①键值数据库(Redis):key-value结构,读写快,用于缓存、验证码;②列存储数据库(HBase):海量稀疏数据,用于大数据日志分析;③文档数据库(MongoDB):JSON文档、结构灵活,用于APP/小程序动态数据;④图数据库(Neo4j):存储节点与关系,用于风控、社交推荐、知识图谱。
- 示例:面向对象数据库存储复杂对象模型;时序数据库存储时间序列监控数据;空间数据库存储地图、轨迹坐标数据;XML数据库用于标准化报文数据存储(任选其三即可)。