数据库知识【第1期】-- 数据库基础

本篇是数据库系列的第1篇,数据库分为关系型数据库和非关系型数据库,今天我们先开始梳理数据库的基础部分。

1.数据管理发展阶段

数据库简单理解就是数据管理的仓库。而数据管理指的就是对各种数据进行分类、组织、编码、查询和维护,主要经历了 3 个阶段,即人工管理阶段、文件系统阶段和数据库系统阶段。每一个阶段都是以减小数据冗余、增强数据独立性和方便操作数据为目的进行发展。

数据冗余是指数据之间的重复,也可以说是同一数据存储在不同数据文件中的现象。

  1. 人工管理阶段

    在计算机出现之前,人们主要利用纸张和计算工具(如算盘和计算尺)来进行数据的记录和计算,依靠大脑来管理和利用数据。也就是说,在人工管理阶段,数据主要存储在纸带、磁带等介质上,或者直接通过手工来记录。

    人工管理阶段的特点如下:

    • 数据不能长期保存

    • 不便于查询数据

    • 数据不能共享,冗余度大

    • 数据不具有独立性

  2. 文件系统阶段

    在 20 世纪 50 年代后期到 20 世纪 60 年代中期,计算机中的磁盘和磁鼓等直接存取设备开始普及。这时,可以将数据存储在计算机的磁盘上。这些数据都以文件的形式存储,然后通过文件系统来管理这些文件。

    相对于人工管理阶段而言,文件系统使数据管理变得简单,不用再为了一个文件而翻箱倒柜的查找。但是,这些文件中的数据没有进行结构化管理,查询起来还是不方便。

    文件系统阶段的特点如下:

    • 数据可以长期保存

    • 数据由文件系统来管理

    • 数据冗余大,共享性差

    • 数据独立性差

    • 无法应对突发事故(文件误删,磁盘故障等)

  3. 数据库系统阶段

    在 20 世纪 60 年代后期,随着网络技术的发展,计算机软/硬件的进步,出现了数据库技术,该阶段就是所谓的数据库系统阶段。

    数据库系统阶段使用专门的数据库来管理数据,用户可以在数据库系统中建立数据库,然后在数据库中建立表,最后将数据存储在这些表中。用户可以直接通过数据库管理系统来查询表中的数据。

    相对于文件系统来说,数据库系统实现了数据结构化。在文件系统中,独立文件内部的数据一般是有结构的,但文件之间不存在联系,因此整体来说是没有结构的。数据库系统虽然也常常分成许多单独的数据文件,但是它更注意同一数据库中各数据文件之间的相互联系。

    数据库系统阶段的特点如下:

    数据粒度是数据库中数据的细化程度。细化程度越高,粒度越小;细化程度越低,粒度越大。

    • 数据由数据库管理系统统一管理和控制

    • 数据共享性高,冗余度低

    • 数据独立性强

    • 数据粒度小

数据管理经历的各个阶段都有自己的背景及特点,数据管理技术也在发展中不断地完善,其 3 个阶段的比较如下表所示。

数据管理的3个阶段 人工管理(20 世纪 50 年代中期) 文件系统(50 年代末至 60 年代中期) 数据库系统(60 年代后期)
应用背景 科学计算 科学计算、管理 大规模数据、分布数据的管理
硬件背景 无直接存取存储设备 磁带、磁盘、磁鼓 大容量磁盘、可擦写光盘、按需增容磁带机等
软件背景 无专门管理的软件 利用操作系统的文件系统 由 DBMS 支撑
数据处理方式 批处理 联机实时处理、批处理 联机实时处理、批处理、分布处理
数据的管理者 用户/程序管理 文件系统代理 DBMS 管理
数据应用及其扩充 面向某一应用程序难以扩充 面向某一应用系统、不易扩充 面向多种应用系统、容易扩充
数据的共享性 无共享、冗余度极大 共享性差、冗余度大 共享性好、冗余度小
数据的独立性 数据的独立性差 物理独立性好、逻辑独立性差 具有高度的物理独立性、具有较好的逻辑独立性
数据的结构化 数据无结构 记录内有结构、整体无结构 统一数据模型、整体结构化
数据的安全性 应用程序保护 文件系统保护 由 DBMS 提供完善的安全保护

2.数据库概述

在学习数据库之前,应该先理解什么是数据。描述事物的符号称为数据。数据有多种表现形式,可以是数字,也可以是文字、图形、图像、声音、语言等。在数据库中数据表示记录,例如,在学生管理数据库中,记录学生的信息包括学号、姓名、性别、年龄、籍贯和联系电话等,这些信息就是数据。

数据库(Database)指长期存储在计算机内的、有组织的、可共享的数据集合。通俗的讲,数据库就是存储数据的地方,就像冰箱是存储食物的地方一样。数据库实际上就是一个文件集合,是一个存储数据的仓库,本质就是一个文件系统,数据库是按照特定的格式把数据存储起来,用户可以对存储的数据进行增删改查操作。

数据库管理系统(DBMS)是数据库系统的核心软件之一,是位于用户与操作系统之间的数据管理软件,用于建立,使用和维护数据库。它的主要功能包括数据定义、数据操作、数据库的运行管理、数据库的建立和维护等几个方面。

数据库有两种类型,分别是关系型数据库和非关系型数据库。

关系型数据库

关系型数据库是建立在关系模型基础上的数据库,借助于集合代数等数学概念和方法来处理数据库中的数据。简单说,关系型数据库是由多张能互相连接的表组成的数据库。

优点

  1. 都是使用表结构,格式一致,易于维护。

  2. 使用通用的 SQL 语言操作,使用方便,可用于复杂查询。

  3. 数据存储在磁盘中,安全。

缺点

  1. 读写性能比较差,不能满足海量数据的高效率读写。

  2. 不节省空间。因为建立在关系模型上,就要遵循某些规则,比如数据中某字段值即使为空仍要分配空间。

  3. 固定的表结构,灵活度较低。

常见的关系型数据库有 Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access 和 MySQL 等。

非关系型数据库

非关系型数据库又被称为 NoSQL(Not Only SQL ),意为不仅仅是 SQL。通常指数据以对象的形式存储在数据库中,而对象之间的关系通过每个对象自身的属性来决定。

优点

  1. 非关系型数据库存储数据的格式可以是 key-value 形式、文档形式、图片形式等。使用灵活,应用场景广泛,而关系型数据库则只支持基础类型。

  2. 速度快,效率高。NoSQL 可以使用硬盘或者随机存储器作为载体,而关系型数据库只能使用硬盘。

  3. 海量数据的维护和处理非常轻松。

  4. 非关系型数据库具有扩展简单、高并发、高稳定性、成本低廉的优势。

  5. 可以实现数据的分布式处理。

缺点

  1. 非关系型数据库暂时不提供 SQL 支持,学习和使用成本较高。

  2. 非关系数据库没有事务处理,没有保证数据的完整性和安全性。适合处理海量数据,但是不一定安全。

  3. 功能没有关系型数据库完善。

3.MySQL概述

MySQL 是最流行的数据库之一,是一个免费开源的关系型数据库管理系统,但也不意味着该数据库是完全免费的。MySQL 由瑞典 MySQL AB 公司开发,目前属于 Oracle 公司。MySQL 适合中小型软件,被个人用户以及中小企业青睐。

针对不同的用户,MySQL 分为两个版本:

  1. MySQL Community Server(社区版):该版本是自由下载且完全免费的,但是官方不提供技术支持。

  2. MySQL Enterprise Server(企业版):该版本是收费的,而且不能下载,但是该版本拥有完善的技术支持(官方提供电话技术支持)。

MySQL 的命名机制由 3 个数字和 1 个后缀组成,例如 mysql-5.7.20:

  • 第 1 个数字“5”是主版本号,用于描述文件的格式,所有版本 5 的发行版都有相同的文件夹格式。

  • 第 2 个数字“7”是发行级别,主版本号和发行级别组合在一起便构成了发行序列号。

  • 第 3 个数字“20”是在此发行系列的版本号,随每次新发行的版本递增。通常选择已经发行的最新版本。

MySQL的特点、优势

MySQL 数据库管理系统具有很多的优势,下面总结了其中几种。

  1. MySQL 是开放源代码的数据库

    MySQL 是开放源代码的数据库,任何人都可以获取该数据库的源代码。这就使得任何人都可以修正 MySQL 的缺陷,并且任何人都能以任何目的来使用该数据库。MySQL 是一款可以自由使用的数据库。

  2. MySQL 的跨平台性

    MySQL 不仅可以在 Windows 系列的操作系统上运行,还可以在 UNIX、Linux 和 Mac OS 等操作系统上运行。因为很多网站都选择 UNIX、Linux 作为网站的服务器,所以 MySQL 的跨平台性保证了其在 Web 应用方面的优势。虽然微软公司的 SQL Server 数据库是一款很优秀的商业数据库,但是其只能在 Windows 系列的操作系统上运行。因此,MySQL 数据库的跨平台性是一个很大的优势。

  3. 价格优势

    MySQL 数据库是一个自由软件,任何人都可以从 MySQL 的官方网站上下载该软件,这些社区版本的 MySQL 都是免费试用的,即使是需要付费的附加功能,其价格也是很便宜的。相对于 Oracle、DB2 和 SQL Server 这些价格昂贵的商业软件,MySQL 具有绝对的价格优势。

  4. 功能强大且使用方便

    MySQL 是一个真正的多用户、 多线程 SQL 数据库服务器。它能够快速、有效和安全的处理大量的数据。相对于 Oracle 等数据库来说,MySQL 的使用是非常简单的。MySQL 主要目标是快速、健壮和易用。

MySQL 与常用的主流数据库 Oracle、SQL Server 相比,主要特点就是免费,并且在任何平台上都能使用,占用的空间相对较小。但是,MySQL 也有一些不足,比如对于大型项目来说,MySQL 的容量和安全性就略逊于 Oracle 数据库。

4.SQL概述

SQL 是一种操作数据库的语言,包括创建数据库、删除数据库、查询记录、修改记录、添加字段等。SQL 虽然是一种被 ANSI 标准化的语言,但是它有很多不同的实现版本。

ANSI 是 American National Standards Institute 的缩写,中文译为“美国国家标准协会”。

SQL 是 Structured Query Language 的缩写,中文译为“结构化查询语言”。SQL 是一种计算机语言,用来存储、检索和修改关系型数据库中存储的数据。

SQL 是关系型数据库的标准语言,所有的关系型数据库管理系统(RDBMS),比如 MySQL、Oracle、SQL Server、MS Access、Sybase、Informix、Postgres 等,都将 SQL 作为其标准处理语言。

此外,SQL 也有一些变种,就像中文有很多方言,比如:

  • 微软的 SQL Server 使用 T-SQL;

  • Oracle 使用 PL/SQL;

  • 微软 Access 版本的 SQL 被称为 JET SQL(本地格式)。

SQL 的用途

SQL 之所以广受欢迎,是因为它具有以下用途:

  • 允许用户访问关系型数据库系统中的数据;

  • 允许用户描述数据;

  • 允许用户定义数据库中的数据,并处理该数据;

  • 允许将 SQL 模块、库或者预处理器嵌入到其它编程语言中;

  • 允许用户创建和删除数据库、表、数据项(记录);

  • 允许用户在数据库中创建视图、存储过程、函数;

  • 允许用户设置对表、存储过程和视图的权限。

5.RDBMS关系型数据库管理系统

RDBMS 是 Relational Database Management System 的缩写,中文译为“关系数据库管理系统”,它是 SQL 语言以及所有现代数据库系统(例如 SQL Server、DB2、Oracle、MySQL 和 Microsoft Access)的基础。

RDBMS 即关系数据库管理系统(Relational Database Management System)的特点:

  • 1.数据以表格的形式出现

  • 2.每行为各种记录名称

  • 3.每列为记录名称所对应的数据域

  • 4.许多的行和列组成一张表单

  • 5.若干的表单组成database

RDBMS 术语

RDBMS的常见术语:

  • 数据库: 数据库是一些关联表的集合。

  • 数据表: 表是数据的矩阵。在一个数据库中的表看起来像一个简单的电子表格。

  • 列: 一列(数据元素) 包含了相同类型的数据, 例如邮政编码的数据。

  • 行:一行(=元组,或记录)是一组相关的数据,例如一条用户订阅的数据。

  • 冗余:存储两倍数据,冗余降低了性能,但提高了数据的安全性。

  • 主键:主键是唯一的。一个数据表中只能包含一个主键。你可以使用主键来查询数据。

  • 外键:外键用于关联两个表。

  • 复合键:复合键(组合键)将多个列作为一个索引键,一般用于复合索引。

  • 索引:使用索引可快速访问数据库表中的特定信息。索引是对数据库表中一列或多列的值进行排序的一种结构。类似于书籍的目录。

  • 参照完整性: 参照的完整性要求关系中不允许引用不存在的实体。与实体完整性是关系模型必须满足的完整性约束条件,目的是保证数据的一致性。

6.常用数据库

常用数据库:

排名 数据库 类型
1 Oracle 关系型数据库
2 MySQL 关系型数据库
3 Microsoft SQL Server 关系型数据库
4 PostgreSQL 关系型数据库
5 MongoDB 文档数据库
6 IBM Db2 关系型数据库
7 Redis 键值对(Key-value)数据库
8 Elasticsearch 搜索和数据分析引擎
9 SQLite 关系型数据库
10 Microsoft Access 关系型数据库

数据库知识【第1期】-- 数据库基础相关推荐

  1. 大学计算机数据库ppt,大学课程计算机网络-数据库系统基础知识.ppt

    文档介绍: 数据库系统信电自动化系:张彤晓电话:**********数据库技术部分第一章数据库系统基础知识第二章VFP编程基础第三章表与数据库操作第四章查询与视图第五章数据库应用系统设计第一章数据库系 ...

  2. 兄弟连mysql数据库_兄弟连学python-------MySQL数据库基础知识

    1.数据库系统(database system) 数据库系统是计算机系统中一种专门管理数组资源的系统,数据库存储的是一组或多组经过处理后的数据,管理这个数据库的软件成为数据库管理系统. 组成: 数据库 ...

  3. 学习C++项目——mysql 数据库知识学习(关于 mysql 8.0 版以后基础部分学习)

    学习数据库知识 一.思路和学习方法   本文学习于:B站平台UP主 IT 小当家,学习 MySQL 数据库,里面仅仅用于自己学习,进行复现,并加以自己的一些学习过程和理解,如果有侵权会删除.因为 Or ...

  4. 数据库开发基本操作-SQL Server数据库基础知识

    数据库是一个信息系统应用程序的重要组成部分,在Web开发中,应用更加广泛,要学习好Web开发和ADO.NET,就必须对数据库有一定的了解. 数据库的概念很广,可以从很多方面进行解释.但是在计算机中,它 ...

  5. MySQL数据库是非关系_MySQL(数据库)基础知识、关系型数据库yu非关系型数据库、连接认证...

    什么是数据库? 数据库(Database):存储数据的仓库 高效地存储和处理数据的介质(介质主要是两种:磁盘和内存) 数据库系统:DBS(Database System):是一种虚拟系统,将多种内容关 ...

  6. 【数据库基础知识二】数据库DataBase(简称DB),数据库基本概念、DDL:数据定义语言,用来操作数据库对象、DML:数据操作语言,用来操作表中的数据

    14天阅读挑战赛 目录 数据库基本概念 数据库DataBase(简称DB) 数据库管理系统Database management system(简称DBMS) 如何操作DBMS? 连接数据库的方式: ...

  7. 数据库管理系统(DBMS)的基础知识概要

    什么是数据库管理系统? 数据库管理系统(Database Management System)是一种操纵和管理数据库的大型软件,用于建立.使用和维护数据库,简称DBMS. 数据库管理系统的特点是什么? ...

  8. 第六章 (数据库)第2节 数据库基础

    文章目录 一.认识数据库 1.什么是数据库 2.数据库的特点及作用 3.常见的数据库 4.工具基本结构介绍 5.认识一些基本常见命令 二.win10系统安装mysql和图形工具 三.Mac系统中安装M ...

  9. 最好的浏览器排行榜_PG是最好的数据库;TiDB 4.0前瞻;SequoiaDB高可用原理;20c DG新特性... 数据库周刊第18期...

    热门资讯 1. 2020年4月数据库流行度排行:MySQL 成事实王者,国产openGauss引期待 [摘要]2020年4月 DB-Engines 数据库流行度排行出炉.在本月的排行榜上,Oracle ...

最新文章

  1. java中图片和字节数组相互转化
  2. 论文解析:人脸检测中级联卷积神经网络的联合训练
  3. android studio device功能,Android Studio 3.0找不到Android Device Monitor
  4. TCP/IP总结(1)分层
  5. css画个框,用CSS绘制带有边框的尖端
  6. linux下共享文件夹(windows可访问,linux也可访问)
  7. JMS 在 SpringBoot 中的使用
  8. 龙卷风路径_龙卷风突袭洛阳镇天井村 50多亩桃园遭了殃
  9. websocket动态添加广播路径_数据可视化WebSocket实现聊聊我的实现思路
  10. java 字面值_Java基础之字面值
  11. VBS代码--很恶心的整人效果
  12. DHCP DHCPv6
  13. 一、阿里矢量图标(字体图标)
  14. html座机正则表达式,java座机号码正则表达式
  15. MAC install MySQL and DBeaver
  16. 【python 淘宝爬虫】python 淘宝店铺名称,旺旺,销售量 抓取
  17. response Headers与request Headers字段详解
  18. DBM、GDBM与C语言跨平台代码研究
  19. Prometheus
  20. 《深入理解Java虚拟机第3版》垃圾收集器与内存分配策略、虚拟机性能监控故障处理工具

热门文章

  1. 将数字类型字符转为中文类型字符
  2. 哪些是可移动的计算机设备,什么是移动设备 移动设备有哪些优点
  3. 理解功率MOSFET的RDS(ON)温度系数特性
  4. 魅族魅蓝Flyme系统在AndroidStudio不显示Logcat
  5. 网站插件-网站插件汇总所有网站插件通用
  6. 2021年煤矿瓦斯抽采找解析及煤矿瓦斯抽采复审考试
  7. Bubble Cup 8 finals D. Tablecity (575D)
  8. 使用finereport自定义滚动条
  9. (九)深入理解蓝牙BLE之“安全管理Part2(SMP legacy pairing)”
  10. 程序员必备的在线教程、电子书和视频学习网站