基本概念
数据库(DataBase, DB)
定义
- 数据库是相互关联的数据项的集合
- 简单来说,就是 存储数据的地方
特点
- 结构化:数据通常以表格、行和列的形式组织
- 持久性:数据长期保存,防止丢失
- 数据关联:数据项之间可以定义关系
-
即不同的表格之间通过相同的信息联系起来,这个相同的信息就叫做 外键
-
假设有两个表格:“员工”表和“部门”表
员工表记录了员工的信息,包括员工ID和 部门ID
部门表记录了部门的信息,包括 部门ID 和部门名称
两张表通过 部门ID 就能将员工和所属部门联系起来
-
数据库管理系统(DataBase Management System, DBMS)
定义
- 数据库管理系统提供了一种存储和检索相互关联的数据的方法
- 简单来说,就是 创建、管理和操作数据库的软件系统
特点
- 数据操作:提供数据创建、读取、更新和删除的操作
- 安全性:控制数据访问权限,保护数据免受未授权访问
- 备份与恢复:支持数据的定期备份和灾难恢复
数据库系统(DataBase System, DBS)
定义
- 数据库系统是DB、DBMS、支持 DBMS 运行的硬件设施以及与之相关的人员(包括维护人员、用户等等)的综合性系统
特点
- 集成性:将数据库、DBMS、硬件和人员整合为一个完整系统
- 兼容性和支持:数据库系统能够适配不同的硬件(例如: 接口设计)和提供必要的帮助和资源给维护和操作人员(例如: 文档、工具)
- 应用性:提供一个运行环境,用于支持各种应用程序的数据处理需求
数据管理(Data Management, DM)
定义
数据管理是对数据的收集、存储、保护、备份和使用的过程,以确保数据的准确性、安全性和有效性
特点
- 组织性:结构化处理和存储数据
- 安全性:保护数据不被未授权访问
- 质量控制:确保数据的准确性和一致性
- 备份恢复:定期备份以防数据丢失
- 高效存取:快速访问和使用数据
四者区别
- 数据库 (DB): 存储数据的实际容器或存储介质
- 数据库管理系统 (DBMS): 操作和管理数据库的软件工具
- 数据库系统 (DBS): 是一个综合体系,包括数据库、DBMS、硬件和相关人员,整体用于高效地存储和处理数据
- 数据管理 (DM):全面管理数据的过程,涵盖数据库、数据库管理系统和整个数据处理流程
其他概念
-
ER(实体-关系模型,Entity-Relationship Model)
一种图形化的数据建模方法,用于展示数据实体及它们之间的关系。例如,ER图中有实体(如员工)和关系(如员工属于部门)
-
RDBMS(关系数据库管理系统,Relational Database Management System)
一种DBMS,它使用表格来组织数据,并且表格之间可以通过关系链接。例如,MySQL和PostgreSQL
-
Schema(模式)
数据库的结构定义,包括表、字段、数据类型以及它们之间的关系。就像是数据库的蓝图
-
Instance(实例)
数据库在特定时间点的数据状态。即数据库中存储的实际数据的快照
-
Physical level(物理层)
数据在存储介质(如硬盘)上的实际存储方式。涉及如何高效地保存和检索数据
-
Logical level(逻辑层)
数据的逻辑结构,即数据如何在数据库中组织,而不涉及具体的存储细节。关注数据的组织方式,如表和关系
-
View level(视图层)
用户看到的数据视图,即数据的表现形式。让用户可以以适合自己需求的方式查看数据,但不需要关心数据是如何在数据库中实际存储的
-
SQL(结构化查询语言,Structured Query Language)
一种用于操作和管理关系数据库的标准编程语言。例如,用于查询、插入、更新和删除数据
-
DML(数据操作语言,Data Manipulation Language)
SQL的一部分,用于查询和修改数据。例如,SELECT、INSERT、UPDATE和DELETE语句
-
DDL(数据定义语言,Data Definition Language)
SQL的一部分,用于定义和修改数据库结构。例如,CREATE、ALTER和DROP语句
问题
截取自数据库课程的PPT,以下将解释这些问题
1. 大数据时代数据库的功能需求?
功能需求有很多,这里只列出几个很重要的需求:
- 高效性:能快速处理和分析大规模数据
- 安全性:保护数据不被未经授权访问或篡改
- 高并发:支持高并发的用户和操作,保证系统在负载下的性能稳定,即用户之间的操作不冲突
- 多样访问:支持多种数据操作方式,让用户更方便地获取和处理数据
- 可靠性:系统稳定,能应对故障并确保数据不丢失
我们可以从不同的用户视角取考虑功能需求,比如开发人员就需要 编程方便 这样的需求
2. 为什么文件系统不能替代数据库?
在大数据时代,文件系统不适合复杂的数据管理,主要因为:
- 数据重复和不一致:文件系统可能有重复的数据,不同文件间的数据不一致
- 查询困难:文件系统不支持复杂查询,处理起来麻烦
- 数据分散:数据存储在多个文件中,管理起来不方便
- 数据完整性:保证数据的正确性和一致性依赖于应用程序自己实现检查规则。如果需要添加或修改数据规则,会很麻烦,因为这需要修改应用程序代码
- 数据独立性差:文件结构变化时需要重写程序
- 原子性:故障可能会使数据处于不一致的状态,并执行部分更新
- 并发控制:文件系统处理多个用户访问的能力有限
- 安全性:控制用户对特定数据的访问权限比较困难。也就是说,很难实现对某些数据开放访问,而对其他数据保密的要求。文件系统通常缺乏细粒度的访问控制,用户可能能够看到文件中的所有内容,而无法精确限制他们只能访问部分数据
数据库系统提供了更高效、可靠的数据管理方式,解决了这些问题
3. 数据访问/共享存在哪些需要解决的问题?怎么解决?
-
数据安全性和隐私保护:
- 问题: 确保数据在访问和共享过程中不会泄露或被未经授权的用户访问
- 解决方案: 使用访问控制机制(如权限管理和身份验证),加密数据传输和存储
-
数据一致性:
- 问题: 当多个用户同时访问和修改数据时,可能会导致数据不一致
- 解决方案: 使用事务处理机制,实施并发控制和锁机制,确保对数据的操作是原子性和一致性的
- 事务处理机制: 确保一组数据库操作要么全部成功,要么全部失败,保持数据的完整性
- 并发控制: 通过协调多个用户或进程同时访问数据,避免冲突和不一致
- 锁机制: 防止多个操作同时修改同一数据项,从而保证数据的一致性和完整性
-
数据完整性:
- 问题: 数据在存储和共享过程中可能会出现错误或不一致。
- 解决方案: 设置完整性约束(如数据库中的唯一性约束和外键约束),定期进行数据验证和清理
-
数据访问控制:
- 问题: 需要控制哪些用户或应用程序可以访问或修改数据
- 解决方案: 实施细粒度的权限管理,定义用户角色和权限,使用认证和授权机制
-
数据共享的标准化:
- 问题: 不同系统或应用程序可能使用不同的数据格式和标准,导致数据共享困难
- 解决方案: 采用标准化的数据格式和协议(如JSON、XML),使用中间件或API来转换和整合数据
-
数据冗余和同步:
- 问题: 数据在不同系统或位置可能会出现重复或同步问题
- 解决方案: 实现数据去重和同步机制,定期同步数据,避免重复存储