预备知识SQL
Structured Query Language (SQL)
- 关系型资料库管理系统(RDBMS)
- MySQL
- Oracle
- PostgreSQL
- SQL Server
- 非关系型资料库管理系统(NRDBMS)
- MogoDB
- Redis
- DynamoDB
- Elaticsearch
- SQL是一种语言,用于和关系型资料库管理系统沟通,非关系型资料库管理系统由其各自语言沟通。
- 重点与难点
- 一组概念的区分:数据库、数据库系统和数据库管理系统?
- 熟悉“表”的相关要素及术语
- 熟悉数据库系统的构成(工作环境)
- 了解数据库管理系统的功能:从用户角度和从系统角度
- 本章导读
- 本章主要介绍数据库系统最基本、最重要的概念,例如什么是数据、数据管理、数据库、数据模型、数据独立性、数据库的模式、数据库管理系统和数据库系统。
- 数据模型是数据库的组织基础,根据数据抽象的不同级别,可以将数据模型划分为3层:概念模型、逻辑模型和物理模型。
- 数据库是最基本的概念,在理解数据抽象的基础上掌握什么是数据库的三级模式和两层映像。
- 数据库管理系统是数据库系统的核心,数据库管理系统有哪些组成与主要功能;数据库系统是数据库技术的应用系统,要求掌握数据库系统中各个部分有什么作用,特别是DBA的职责。
- 本章主要介绍数据库系统最基本、最重要的概念,例如什么是数据、数据管理、数据库、数据模型、数据独立性、数据库的模式、数据库管理系统和数据库系统。
1.1 数据库系统的作用
1.1.1 数据与数据管理
数据
- 数据:描述事物的符号记录,如数值数据、文本数据和多媒体数据(如图形、图像、音频和视频)等。
- 数据是数据库中存储的基本对象,也是数据库管理系统处理的对象。
- 数据与其语义是不可分的。 数据的表现形式不能完全表达其内容,其含义即语义需要经过解释才能被正确理解。例如,“1976年9月”可能是指某人的出生年月,也可能指毕业年月,还可能指参加工作年月等。对于以表格形式描述的对象,表头栏目名就是对表中数据的语义解释。
- 记录(行/元组)(recode):计算机中表示和存储数据的一种格式或方法,是数据库表中的行。这样的数据是有结构的,是结构化数据。
- 结构化数据
- 结构化数据:即行数据,存储在数据库中,可以用二维表结构来逻辑表达实现的数据。表格描述的数据称为结构化数据。
- 非结构化数据:相对于结构化数据而言,不方便用数据库二维逻辑表来表现的数据,包括所有格式的办公文档、文本、图片、标准通用标记语言下的子集XML、HTML、各类报表、图像和音频/视频信息等等。
- 半结构化数据:就是介于完全结构化数据(如关系型数据库、面向对象数据库中的数据)和完全无结构的数据(如自然语言文本、音频、视频、图像文件等)之间的数据,XML文档就属于典型的半结构化数据,它一般是自描述的,数据的结构(即语义)和内容混在一起。
数据管理
- 数据处理:从大量的、可能是杂乱无章的、难以理解的数据中抽取并推导出对于某些特定的人们来说有价值、有意义的数据。
数据管理:对数据进行有效的分类、组织、编码、存储、检索、维护和应用——数据处理的中心问题。
数据管理技术的发展及其应用的广度和深度,极大地影响着人类社会发展的进程。
1.1.2 数据库技术的产生与发展
1. 人工管理阶段
- 20世纪50年代中期以前的这段时间。
- 计算机还很简陋,尚没有完整的操作系统,主要应用于科学计算。
- 数据是面向应用程序的,一个数据集只能对应于一个程序
- 数据由应用程序定义和管理。
- 无法共享利用,存在大量冗余数据
2. 文件系统阶段
- 20世纪50年代后期到60年代中期的这段时间。
- 计算机开始应用于数据管理
- 文件系统阶段程序与数据之间的关系如图1-2所示。
- 对于一个特定的应用,数据被集中组织存放在多个数据文件(以后简称为文件)或文件组中,并针对该文件组来开发特定的应用程序。
- 利用“按文件名访问,按记录进行存取”的管理技术,对文件进行记录的修改、插入和删除等操作。
- 文件系统的主要特点
- 文件系统实现了文件内的结构性,即一个文件内的数据是按记录进行组织的,这样的数据是有结构的(语义的),数据的语义是明确的。
- 整体上还是无结构的,即多个文件之间是相互独立的,无法建立全局的结构化在这里插入图片描述
数据管理模式。 - 程序和数据之间由文件系统提供的存取方法进行转换,不必过多地考虑数据的物理存储细节。应用程序与数据之间有了一定的物理独立性
- 文件系统实现了文件内的结构性,即一个文件内的数据是按记录进行组织的,这样的数据是有结构的(语义的),数据的语义是明确的。
- 文件系统的弊端
- 数据共享性差,数据冗余和不一致
数据冗余是指相同的数据在不同的地方(文件)重复存储
文件基本上对应于一个应用程序,不同应用程序之间很难共享相同数据 - 数据独立性差
文件系统中的文件组是为某一特定应用服务的,不易扩充,数据与应用程序之间缺乏逻辑独立性 - 数据孤立,数据获取困难
对于数据与数据之间的联系,文件系统仍缺乏有效的管理手段 - 完整性问题
数据的完整性是指数据的正确性、有效性和相容性,也称为一致性约束
例如,一个学生需要选修某门课程,必须在时间上与其它已经选修的课程不冲突时才能选修 - 安全性问题
一个系统可能有很多用户,不同用户可能只允许其访问一部分数据,即该用户只有一部分数据的访问权限 - 原子性问题
例如,学生选课时,增加选课记录与选课人数加1两个操作要么都发生,要么都不发生,这就是学生选课操作的原子性要求 - 并发访问异常
系统应该允许多个用户同时访问数据,在这样的环境中由于并发更新操作相互影响,可能会导致数据的不一致
- 数据共享性差,数据冗余和不一致
3. 数据库管理系统阶段
- 20世纪60年代后期以来
- 数据库管理系统(DBMS):是由一个相互关联的数据的集合(数据库,DB)和一组用以访问、管理和控制这些数据的程序组成
- 数据库
- 数据库(Database,简称DB):是长期储存在计算机内、有组织的、可共享的大量数据的集合。
- 数据库的基本特征
- 数据按一定的数据模型组织、描述和储存
- 可为各种用户共享、冗余度较小、易扩展
- 数据独立性较高
- 数据库管理系统(DBMS)
- DBMS是位于用户与操作系统之间的一层数据管理软件,它提供一个高效存取、管理和控制数据库信息的环境
- DBMS和操作系统一样,都是计算机的基础软件(系统软件),是一个大型复杂的软件系统
- 设计数据库管理系统的目的是为了有效地管理大量的数据,既涉及到数据存储结构的定义,又涉及到数据操作机制的提供
- 解决