1.1 数据库系统概述

思维导图:

前言:

**数据库前言笔记:**

1. **数据库的价值**
**- 数据管理的高效工具

  • 计算机科学的关键分支**

2. **信息资源的重要性**
**- 现代企业或组织的生存和发展关键

  • 建立有效的信息系统至关重要**

3. **数据库的应用范围**
**- 从小型系统到大型系统:OLTP, OLAP

  • 多种领域:CAD/CAM, CIMS, e-Government, e-Commerce, GIS等
  • 随互联网普及,日常生活中不可或缺**

4. **数据库教育的地位**
**- 计算机与信息管理专业的核心课程

  • 非计算机专业的重要选修课程**

5. **本章重点**
**- 介绍数据库的基本概念

  • 数据管理技术的发展
  • 为什么使用数据库技术及其重要性
  • 为后续章节打基础**

1.1.1 数据库的四个基本概念

笔记:

**1. **数据 (Data)**

  • 定义:描述事物的符号记录。
  • 形式:不仅仅是数字。包括文本、图形、图像、音频、视频等。
  • 现代计算机中的数据:广义的,不只是数值型。
  • 语义:数据和其意义是不可分的。
  • 结构:例如,学生记录描述学生的数据,这是结构化的。**

2. **数据库 (DataBase, DB)**
**- 定义:长期储存在计算机内、有组织的、可共享的大量数据的集合。

  • 特点:数据有永久存储、有组织和可共享。
  • 历史背景:以前存放在文件柜,现在在计算机存储设备上。**

3. **数据库管理系统 (DataBase Management System, DBMS)**
**- 位置:位于用户与操作系统之间的数据管理软件。

  • 主要功能:
  1. 数据定义:通过数据定义语言定义数据对象的组成与结构。
  2. 数据组织:存储和管理:提高存储空间利用率和存取效率。
  3. 数据操纵:通过数据操纵语言实现对数据库的基本操作。
  4. 事务管理和运行管理:保证数据的安全性、完整性等。
  5. 建立和维护:包括数据库的输入、转换、转储、恢复功能等。
  6. 其他:如与其他软件系统的通信功能、数据转换功能等。**

4. **数据库系统 (DataBase System, DBS)**
- 定义:由数据库、DBMS、应用程序和数据库管理员组成的系统。
**- 组件:

  • 数据库:提供数据的存储功能。**
    **- DBMS:提供数据的基础功能。
  • 应用程序:根据需求使用数据库。
  • 数据库管理员 (DBA):负责全面管理数据库系统。**

1.1.2 数据库管理技术的产生和发展

**背景**: 数据管理技术是基于对数据进行分类、组织、编码、存储、检索和维护的需求而产生的。这是数据处理活动的核心,涵盖了数据收集、存储、加工和传播的全过程。

**发展阶段**:

1. **人工管理阶段**
* 时间:20世纪50年代中期以前
* 硬件:仅有纸带、卡片、磁带,缺乏直接存储设备。
* 软件:没有操作系统和数据管理软件
* 特点:
* 数据不保存。数据主要用于临时计算并在使用后被移除。
* 应用程序管理数据,需要程序员自行定义、设计和管理数据。
* 数据不共享,面向单一应用程序,存在大量冗余数据。
* 数据不具有独立性,任何结构变化都需要对应的应用程序调整。

2. **文件系统阶段**
* 时间:20世纪50年代后期至60年代中期
* 硬件:出现磁盘、磁鼓等直接存取设备
* 软件:操作系统内嵌文件系统
* 特点:
* 数据可长期保存。
* 有文件系统进行数据管理,组织为独立的数据文件。
* 数据共享性差,仍存在大量冗余数据。
* 数据独立性差,文件系统仍然针对特定应用,不具备全局视野。

3. **数据库系统阶段**
* 时间:20世纪60年代后期至今
* 硬件:大容量磁盘、价格下降
* 软件:价格上升,引入数据库管理系统(DBMS)
* 特点:
* 高度共享性,减少冗余。
* 数据具有高度物理独立性和一定的逻辑独立性。
* 整体结构化,使用数据模型进行描述。
* 数据安全性、完整性、并发控制和恢复能力均由DBMS提供。

**结论**: 数据管理技术的发展经历了从手工管理到文件系统,再到数据库系统的进化过程,每个阶段都代表了技术和应用需求的转变。从文件系统到数据库系统的转变特别标志了数据管理技术的重大飞跃。

1.1.3 数据库系统的特点

笔记:

通过比较文件系统与数据库系统在学生学籍管理例子中的应用,我们可以明确看到数据库系统的优势。下面概括了数据库系统的主要特点:

1. **数据结构化**
数据库系统采用结构化的方法来存储数据,如表格形式,这种形式既直观又容易操作。在给出的例子中,我们可以看到如何使用简单的CREATE语句在数据库中创建结构化的表。

2. **数据独立性**
数据库与应用程序是分离的,这意味着可以在不更改应用程序的情况下更改数据库结构。在文件系统中,记录的结构和文件之间的联系是固定的,而在数据库系统中,这种联系是灵活的。

3. **高效的数据操作**
使用SQL语言,可以简单、直观地完成复杂的数据操作。在给定的例子中,查询学生信息只需要一条SQL查询语句,而在文件系统中,则需要多行编程代码。

4. **数据完整性和准确性**
数据库管理系统通常提供数据验证和约束功能,确保数据的完整性和准确性。

5. **数据安全性**
数据库系统有内置的安全机制,如密码保护、访问控制等,以防止未经授权的访问。

6. **并发访问和事务管理**
在多用户环境中,数据库系统可以处理多个用户同时访问数据,同时确保数据的一致性和完整性。

7. **数据冗余度低**
数据库系统可以避免不必要的数据重复,从而节省存储空间。

8. **开发效率提高**
如本例所示,与文件系统相比,使用数据库系统可以大大提高程序员的开发效率。数据库系统提供的高级工具和语言减少了编程的复杂性和时间。

总之,与文件系统和人工管理相比,数据库系统提供了一个高效、结构化、安全的环境,可以满足大型、复杂应用的需求。

主要内容部分:

### 数据库系统的主要特点

**1. **数据结构化**:

  • **区别于文件系统**: 数据库是整体结构化的,而文件系统中记录的结构和联系是固化在程序中的。**
    **- **整体结构化的意义**: 数据库中的数据是面向整个组织或企业的,不仅数据内部是结构化的,还要考虑整个组织的数据结构。
  • **例子**: 学校信息系统中,不只考虑教务处,还要考虑学生处、研究生院、人事处等的管理需求。
  • **数据库的灵活性**: 与文件系统相比,数据库系统中数据的存取更为灵活。**

2. **数据的共享性高、冗余度低且易扩充**:
**- **数据共享**: 数据库的数据是面向整个系统的,所以它可以被多个用户和应用共享。

  • **减少数据冗余**: 数据共享可以减少数据冗余和节约存储空间。
  • **数据的不一致性**: 数据库中的数据共享减少了由于数据冗余造成的不一致现象。
  • **系统的扩充性**: 数据库结构化的方式使其容易增加新应用,满足不断变化的需求。**

3. **数据独立性高**:
**- **物理独立性**: 数据的物理存储与用户的应用程序是相互独立的。

  • **逻辑独立性**: 数据的逻辑结构与用户的应用程序也是相互独立的。
  • **意义**: 数据与程序的独立性简化了应用程序的编制和维护。**

**4. **数据由数据库管理系统统一管理和控制**:

  • **数据安全性**: 保护数据,防止不合法使用。
  • **数据完整性**: 控制数据在有效的范围内并保证数据之间的关系。
  • **并发控制**: 在多用户同时使用数据库时,确保不会相互干扰。
  • **数据库恢复**: 在发生故障后,恢复数据库到一个已知的正确状态。**

### 总结

数据库是有组织、大量、长期存储在计算机内的数据集合,它为各种用户提供共享功能,具有最小冗余度和较高的数据独立性。数据库管理系统保证了数据的完整性、安全性,可以进行并发控制和在故障后进行恢复。数据库系统的出现转变了信息系统的中心,使其从加工数据的程序转向围绕共享的数据库,这大大提高了数据的利用率、相容性和决策的可靠性。

总结:

相关推荐
靖顺1 小时前
【OceanBase 诊断调优】—— packet fly cost too much time 的根因分析
数据库·oceanbase
liuxin334455661 小时前
学籍管理系统:实现教育管理现代化
java·开发语言·前端·数据库·安全
yuanbenshidiaos4 小时前
C++--------------树
java·数据库·c++
dengjiayue5 小时前
MySQL 查询大偏移量(LIMIT)问题分析
数据库·mysql
言之。5 小时前
【MySQL】在MySQL中如何定位慢查询?
数据库·mysql
DashVector5 小时前
如何通过HTTP API插入Doc
数据库·人工智能·http·阿里云·向量检索
DashVector5 小时前
如何通过HTTP API分组检索Doc
服务器·数据库·http·数据库开发·数据库架构
Suwg2095 小时前
【MySQL】踩坑笔记——保存带有换行符等特殊字符的数据,需要进行转义保存
数据库·笔记·mysql
2401_857610036 小时前
中文学习系统:成本效益分析与系统优化
java·数据库·学习·架构
nbsaas-boot6 小时前
如何更高效地使用乐观锁提升系统性能
java·服务器·数据库