数据(data)
数据是非常广泛的一个词。书籍、磁盘、储存卡都能成为数据存储的载体,书籍中的文字、存储设备中的文本文件、音频、视频等等都可以称之为数据。
比如百度百科的解释为:
数据(data)是事实或观察的结果,是对客观事物的逻辑归纳,是用于表示客观事物的未经加工的原始素材。
数据可以是连续的值,比如声音、图像,称为模拟数据。也可以是离散的,如符号、文字,称为数字数据。
在计算机系统中,数据以二进制信息单元0,1的形式表示。
在计算机层面。数据可以定义为存储在设备中的文件(二进制、文本等)。同时还可以分为内存中的数据和硬盘中的数据。
数据库(database)
数据库是“按照数据结构来组织、存储和管理数据的仓库”。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。
数据库的核心解释一般都是通过特定结构或格式存储在计算机上,并且可以高效访问和管理的,大量数据的集合。
数据库:保存有组织的数据的容器(通常是一个文件或一组文件)。是数据的集合。
数据库的数据都存放在计算机内,而这些数据集合肯定需要通过某种软件去管理,(否则,对于计算机来说就是存储的二进制内容,没有任何意义)。
用来管理数据库的系统就是数据库管理系统,DBMS。数据库通过DBMS创建和操纵。
因为数据库和数据库管理系统基本是无法分,开且紧密联系在一起的,所以通常都会用"数据库"表示"数据库管理系统"。两者在概念上不一样,但实际中通常混淆使用。
数据库管理系统(DBMS)
维基百科上的解释如下:
数据库管理系统(
Database Management System,简称DBMS)是为管理数据库而设计的电脑软件系统,一般具有存储、截取、安全保障、备份等基础功能。数据库管理系统可以依据它所支持的数据库模型来作分类,例如关系式、XML;或依据所支持的电脑类型来作分类,例如服务器聚类、移动电话;或依据所用查询语言来作分类,例如SQL、XQuery;或依据性能冲量重点来作分类,例如最大规模、最高运行速度;亦或其他的分类方式。
也就是管理数据库的软件叫数据库管理系统。目前使用最多的就是关系型数据库管理系统。如:SQL Server、PostgreSQL、MySQL、Oracle等,也有key-value数据库管理系统,如MongoDB等。
同一个类型的DBMS之间的区别,主要在于内置函数、数据存取策略、应用场景适用性以及数据库对象之间的差异等方面。
结构化查询语言(SQL)
SQL——Structured Query Language,是专门用来在数据库中操作数据的语言。它是关系型数据库语言的标准,可以适用于多种关系型数据库(标准SQL)
各个不用的DBMS还针对自己系统的特点和功能,实现了特殊SQL语句,用以扩展标准SQL的功能,如SQL Server的T-SQL,Oracle的PL/SQL等。
SQL从功能和作用上可以分为6类:
-
数据查询语言(DQL,
Data Query Language):主要由SELECT、FROM、WHERE组成,用于查询数据。 -
数据操纵语言(DML,
Data Manipulation Language):主要包含插入(INSERT)、更新(UPDATE)、删除(DELETE)三种操作。 -
数据定义语言(DDL,
Data Definition Language):主要使用CREATE创建或DROP删除各种数据库对象(TABLE、VIEW、INDEX等),以及ALTER修改操作。 -
数据控制语言(DCL,
Data Control Language):主要用于数据库的权限控制及用户对数据库对象的使用管理 -
事务处理语言(TPL,
Transaction Processing Language):事务处理主要为了保证一系列的操作能够全部成功或统一回滚,主要关键字包括TRANSACTION、COMMIT、ROLLBACK -
指针控制语言(CCL,
Cursor Control language):通过指针可以对数据表以行为单位进行操作,主要包括DECLARE CURSOR(声明游标)、FETCH INTO(进入)和UPDATE WHERE CURRENT(更新当前位置)等语句,用于对一个或多个表单独行的操作。也可以叫游标控制语言。
图形界面工具(GUI Tool)
数据库管理系统安装后以一个系统服务的方式存在,需要通过相应的软件工具才能访问和使用。一般安装数据库管理系统后,都会提供命令行管理工具和图形界面管理工具。
图形界面工具是一个操作DBMS的可视化软件,通过连接到一个数据库管理系统,以图形化的方式进行操作管理。
- 常用的命令行管理工具有:
-
SQL Server:mssql-cli(适用于Windows、MacOS、Linux的跨平台命令行工具,SQL Server 2017开始已经支持在Linux等系统下使用);SQL Server PowerShell也是跨平台的工具;Windows下的sqlcmd等。
-
PostgreSQL:psql
-
MySQL:mysql
-
Oracle:sqlplus
- 常用的图形界面管理工具有:
-
Oracle SQL Developer:Oracle数据库官方图形界面工具(免费)
-
MySQL Workbench:MySQL数据库官方图形界面工具(免费)
-
SQL Server Management Studio(SSMS):SQLServer数据库官方图形界面工具(免费)
还有:
PL/SQL Developer:支持Oracle数据库(收费)。
SQLyog:支持MySQL数据库(旗舰版收费)。
MySQL-Front:支持MySQL数据库,生成数据字典较方便(收费)。
Navicat Premium:支持多种数据库,新版集成了可视化组件(收费)。
DataGrip:支持多种数据库,JetBrains家族优秀的数据库界面工具(收费)
数据库系统(DataBase System, DBS)
数据库系统(DataBase System,DBS)是由数据库(DataBase,DB)、数据库管理系统(DataBase Management System,DBMS)、应用系统、数据库管理员(DataBase Administrator,DBA)组成的存储、管理、处理和维护数据的系统。
DBS是个大的概念,DB是专门存数据的集合,DBMS是由DBA对DB进行查询、更新、删除、修改操作的。DBMS用来操纵和管理DB的软件,用于建立、使用和维护DB,它对DB进行统一的管理和控制,以保证DB的安全性和完整性,用户可以通过DBMS访问DB中的数据,DBA也可以通过DBMS进行DB的维护工作,它可使多个应用程序和用户拥有不同的方法在同时或不同时刻去建立、修改和询问DB(也就是说DBMS可以将控制权发挥到极致(即所说的安全性))
命令行或图形界面管理工具则是连接DBMS,从而DBA借此进行DB管理的工具,当然,软件开发中的驱动程序等,也是连接DBMS管理DB的工具。