--- title: "02-数据库系统与数据模型" created: 2026-01-07 tags: - 项目筑基 --- # 数据库系统与数据模型 ## **第二章:数据库系统基础** ### **2.1 核心概念关系图** ![[image-3f9b0e95.png]] ![[image-c6dfc38f.png]] ### **2.2 四个核心概念详解** | **概念** | **全称** | **定义** | **举例** | | --- | --- | --- | --- | | **DB** | DataBase(数据库) | 按一定组织方式存储的、相互关联的数据集合 | school数据库、shop数据库 | | **DBMS** | DataBase Management System(数据库管理系统) | 组织、存储、维护和获取数据的软件 | MySQL、Oracle、PostgreSQL、Access 、SQL Sever | | **DBAS** | DataBase Application System(数据库应用系统) | 基于数据库建立的应用程序 | 财务系统、图书管理系统 | | **DBS** | DataBase System(数据库系统) | 实现有组织地、动态地存储大量关联数据、方便用户使用的**计算机软硬件资源组成的系统**。 | 整个数据库运行环境 | #### **2.2.1 概念之间的关系** ![[image-79b50f80.png]] ![[image-e49bb65e.png]] > DBS = DB + DBMS + DBAS + 硬件 + 人员 + 规程 **层次关系**: - DB 是数据存储的物理集合 - DBMS 是管理 DB 的软件 - DBAS 是基于 DBMS 开发的应用 - DBS 是包含以上所有及相关资源的完整系统 ### **2.3 数据库(DB)的特点** | **特点** | **说明** | | --- | --- | | 数据结构化 | 数据按照数据模型组织,不是杂乱无章的 | | 数据共享 | 多个用户、多个应用可以共享同一数据库 | | 冗余度低 | 避免数据的重复存储 | | 独立性高 | 数据与程序相互独立 | | 统一管理 | 由 DBMS 统一管理和控制 | ### **2.4 数据库管理系统(DBMS)** #### **2.4.1 DBMS 的定义与地位** > DBMS 是位于用户与操作系统之间的一层数据管理软件 ![[image-bcec17a0.png]] #### **2.4.2 DBMS 的主要功能** | **功能类别** | **具体功能** | | --- | --- | | **数据定义** | 提供DDL(数据定义语言),定义数据库结构 | | **数据操纵** | 提供DML(数据操纵语言),实现增删改查 | | **数据控制** | 提供DCL(数据控制语言),实现安全性、完整性控制 | | **数据库运行管理** | 并发控制、事务管理、数据恢复 | | **数据库建立和维护** | 数据库初始化、备份恢复、性能监控 | #### **2.4.3 SQL 语言分类** | **分类** | **全称** | **功能** | **主要语句** | | --- | --- | --- | --- | | **DDL** | Data Definition Language | 定义数据库结构 | CREATE、ALTER、DROP、TRUNCATE | | **DML** | Data Manipulation Language | 操作数据 | SELECT、INSERT、UPDATE、DELETE | | **DCL** | Data Control Language | 控制权限 | GRANT、REVOKE | | **TCL** | Transaction Control Language | 事务控制 | COMMIT、ROLLBACK、SAVEPOINT | #### **2.3.2 常见数据库产品对比** | **数据库** | **类型** | **特点** | **适用场景** | | --- | --- | --- | --- | | **MySQL** | 关系型/开源 | 免费、轻量、易用 | Web应用、中小型系统 | | **Oracle** | 关系型/商业 | 功能强大、稳定性高 | 大型企业、金融系统 | | **SQL Server** | 关系型/商业 | 与Windows集成好 | 企业应用、.NET开发 | | **PostgreSQL** | 关系型/开源 | 功能丰富、标准兼容 | 复杂查询、GIS应用 | | **MongoDB** | 文档型/NoSQL | 灵活模式、易扩展 | 内容管理、大数据 | | **Redis** | 键值型/NoSQL | 内存存储、速度极快 | 缓存、会话管理 | ### **2.5 数据库系统(DBS)的组成** #### **2.5.1 五大组成部分** 一个完整的 DBS 包含五部分: 1. **硬件:** 主要是服务器、大容量磁盘(RAID)、高带宽网络。 2. **软件:** DBMS、OS、开发工具、应用系统。 3. **数据:** DB 本身。 4. **人员(核心):** - **DBA (数据库管理员):** 负责建库、授权、备份、调优。**(最高权限)** - **系统分析员/设计员:** 设计数据库结构。 - **应用程序员:** 写代码调用数据库。 - **最终用户:** 使用系统的人。 5. **规程/协议:** 也就是使用的标准和规范。 ![[image-77c38e38.png]] #### **2.5.2 人员角色详解** | **角色** | **职责** | **技能要求** | | --- | --- | --- | | **DBA** | 数据库设计、安装配置、性能调优、安全管理、备份恢复 | 精通DBMS、熟悉操作系统 | | **应用程序员** | 开发数据库应用程序、编写SQL语句、设计程序逻辑 | 编程语言、SQL、数据库设计 | | **最终用户** | 通过应用程序使用数据库 | 无需专业知识 | **DBA 的主要职责**: 1. 决定数据库的信息内容和结构 2. 决定数据库的存储结构和存取策略 3. 定义数据的安全性要求和完整性约束 4. 监控数据库的使用和运行 5. 数据库的改进和重组 ### **2.6 MySQL 系统数据库** > *💡 MySQL 安装后会自动创建 4个系统数据库* #### **2.6.1 MySQL 四大系统数据库详解** ```sql -- 查看所有数据库 SHOW DATABASES; -- 结果: -- +------------------------+ -- | Database | -- +------------------------+ -- | information_schema | -- | mysql | -- | performance_schema | -- | sys | -- +---------------- -------+ ``` ![[image-2962122f.png]] | **系统数据库** | **作用** | | --- | --- | | **mysql** | MySQL的核心数据库,存储用户账号、权限、系统配置等信息。相当于SQL Server的Master库 | | **information\_schema** | 存储所有数据库的元数据(表结构、列信息、索引等),只读虚拟库 | | **performance\_schema** | 存储服务器性能监控数据,用于分析和调优 | | **sys** | 基于 performance\_schema 和 information\_schema 的简化视图,方便DBA使用 | ![[image-245d6312.png]] #### **2.6.2 与 SQL Server 系统数据库对比** | **功能** | **SQL Server** | **MySQL** | | --- | --- | --- | | 核心系统信息 | Master | mysql | | 新建库模板 | Model | (MySQL无此概念) | | 代理任务调度 | Msdb | (MySQL通过Event Scheduler实现) | | 临时数据存储 | Tempdb | (MySQL使用内部临时表机制) | | 元数据信息 | 各系统表 | information\_schema | | 性能监控 | DMV | performance\_schema | ## **第三章:数据模型基础** > *💡 数据模型是数据库理论的核心概念,是对现实世界数据特征的抽象* > > **本章定位**:简要介绍数据模型的基本概念和分类,为后续数据库设计章节奠定基础 ### **3.1 什么是数据模型** **定义**:数据模型是对现实世界数据特征的抽象,是用来描述数据、组织数据和对数据进行操作的。 **作用**: - 是数据库系统的核心和基础 - 决定了 DBMS 的数据组织方式 - 影响数据库设计方法 ### **3.2 数据模型的三要素** | **要素** | **说明** | **举例** | | --- | --- | --- | | **数据结构** | 描述数据的类型、内容、性质以及数据间的联系 | 实体、属性、关系 | | **数据操作** | 对数据的各种操作 | 查询、更新(增删改) | | **数据约束** | 数据及其联系应遵守的规则 | 完整性约束 | ### **3.3 数据模型的分类** ![[image-9f109910.png]] | **模型类型** | **面向对象** | **作用** | **示例** | | --- | --- | --- | --- | | **概念模型** | 用户 | 描述现实世界的概念 | E-R模型 | | **逻辑模型** | DBMS | 描述数据的逻辑结构 | 层次模型、网状模型、关系模型 | | **物理模型** | 存储系统 | 描述数据的物理存储 | 索引、存储结构、文件组织 | ### **3.4 三种传统逻辑模型对比** **![[image-1ddb992f.png]]** #### **(1)层次模型:树状结构** ![[image-40d636e0.png]] #### **(2)网状模型:网状结构** ![[image-9d13369e.png]] #### **(3)关系模型:二维表结构** ![[image-687ac9f7.png]] #### **三种模型对比表** | **特性** | **层次模型** | **网状模型** | **关系模型** | | --- | --- | --- | --- | | 数据结构 | 树 | 图 | 二维表 | | 联系表示 | 1:N | M:N | M:N | | 结构复杂度 | 中 | 高 | 低 | | 理论基础 | 弱 | 弱 | 强(关系代数) | | 代表系统 | IMS | DBTG | **MySQL**、Oracle | > **关系模型**是目前主流的数据模型,其详细内容将在第五章数据库设计中深入讲解 --- ⬅️ [[01-数据库的管理技术及其发展|数据库的管理技术及其发展]] 🏠 [[00-数据库|00-数据库]] ➡️ [[03-三级模式与二级映射|三级模式与二级映射]]