12月阅读周·MySQL数据库入门:数据库入门之数据库的基础知识篇
背景
去年下半年,我在微信书架里加入了许多技术书籍,各种类别的都有,断断续续的读了一部分。
没有计划的阅读,收效甚微。
新年伊始,我准备尝试一下其他方式,比如阅读周。每月抽出1~2个非连续周,完整阅读一本书籍。
这个“玩法”虽然常见且板正,但是有效,已经坚持阅读十一个月。
已读完书籍:《架构简洁之道》、《深入浅出的Node.js》、《你不知道的JavaScript(上卷)》、《你不知道的JavaScript(中卷)》、《你不知道的JavaScript(下卷)》、《数据结构与算法JavaScript描述》、《WebKit技术内幕》、《前端架构:从入门到微前端》、《秒懂算法:用常识解读数据结构与算法》、《JavaScript权威指南》、《JavaScript异步编程设计快速响应的网络应用》、《编写可测试的JavaScript代码》。
当前阅读周书籍:《MySQL数据库入门》。
数据库的基础知识
数据库概述
数据结构化
数据库系统实现了整体数据的结构化,这是数据库的最主要的特征之一。这里所说的“整体”结构化,是指在数据库中的数据不只是针对某个应用,而是面向全组织,面向整体的。
实现数据共享
因为数据是面向整体的,所以数据可以被多个用户、多个应用程序共享使用,可以大幅度地减少数据冗余,节约存储空间,避免数据之间的不相容性与不一致性。
数据独立性高
数据的独立性包含逻辑独立性和物理独立性,其中,逻辑独立性是指数据库中数据的逻辑结构和应用程序相互独立,物理独立性是指数据物理结构的变化不影响数据的逻辑结构。
数据统一管理与控制
数据的统一控制包含安全控制、完整控制和并发控制。简单来说就是防止数据丢失、确保数据的正确有效,并且在同一时间内,允许用户对数据进行多路存取,防止用户之间的异常交互。
图1-1 数据库系统
大多数初学者认为数据库就是数据库系统(DataBase System,DBS)。其实,数据库系统的范围比数据库大很多。数据库系统是由硬件和软件组成的,其中硬件主要用于存储数据库中的数据,包括计算机、存储设备等。软件主要包括操作系统以及应用程序等。为了让读者更好地理解数据库系统,下面通过上面的图来描述数据库系统。
图1-1描述了数据库系统的几个重要部分,如数据库、数据库管理系统、数据库应用程序等,具体解释如下。
1.数据库
数据库提供了一个存储空间用来存储各种数据,可以将数据库视为一个存储数据的容器。
2.数据库管理系统
专门用于创建和管理数据库的一套软件,介于应用程序和操作系统之间,如MySQL、Oracle、SQL Server、DB2等。数据库管理系统不仅具有最基本的数据管理功能,还能保证数据的完整性、安全性和可靠性。
3.数据库应用程序
虽然已经有了数据库管理系统,但在很多情况下,数据库管理系统无法满足用户对数据库的管理。此时,就需要使用数据库应用程序与数据库管理系统进行通信、访问和管理DBMS中存储的数据。
数据库存储结构
通过前面的讲解可知,数据库是存储和管理数据的仓库,但数据库并不能直接存储数据,数据是存储在表中的,在存储数据的过程中一定会用到数据库服务器,所谓的数据库服务器就是指在计算机上安装一个数据库管理程序,如MySQL。数据库、表、数据库服务器之间的关系,如图1-2所示。
图1-2 数据库服务器、数据库、表关系图
从图1-2可以看出,一个数据库服务器可以管理多个数据库,通常情况下开发人员会针对每个应用创建一个数据库,为保存应用中实体的数据,会在数据库中创建多个表(用于存储和描述数据的逻辑结构),每个表都记录着实体的相关信息。
对于初学者来说,一定很难理解应用中的实体数据是如何存储在表中的,接下来通过一个图例来描述,如图1-3所示。
图1-3 表中的数据
图1-3描述了User表的结构以及数据的存储方式,表的横向被称为行,纵向被称为列,每一行的内容被称为一条记录,每一列的列名被称为字段,如id、name等。通过观察该表可以发现,User表中的每一条记录,如1 lisi 23,实际上就是一个User对象。
SQL语言
SQL(Structured Query Language,结构化查询语言)是一种数据库查询语言和程序设计语言,主要用于管理数据库中的数据,如存取数据、查询数据、更新数据等。SQL是IBM公司于1975—1979年之间开发出来的,在20世纪80年代,SQL被美国国家标准学会(American National Standards Institute,ANSI)和国际标准化组织(International Organization for Standardization,ISO)定义为关系型数据库语言的标准,它由4部分组成,具体如下。
(1)数据定义语言(Data Definition Language,DDL)。
数据库定义语言主要用于定义数据库、表等,其中包括CREATE语句、ALTER语句和DROP语句。CREATE语句用于创建数据库、数据表等,ALTER语句用于修改表的定义等,DROP语句用于删除数据库、删除表等。
(2)数据操作语言(Data Manipulation Language,DML)。
数据操作语言主要用于对数据库进行添加、修改和删除操作,其中包括INSERT语句、UPDATE语句和DELETE语句。INSERT语句用于插入数据,UPDATE语句用于修改数据,DELETE语句用于删除数据。
(3)数据查询语言(Data Query Language,DQL)。
数据查询语言主要用于查询数据,也就是指SELECT语句,使用SELECT语句可以查询数据库中的一条数据或多条数据。
(4)数据控制语言(Data Control Language,DCL)。
数据控制语言主要用于控制用户的访问权限,其中包括GRANT语句、REVOKE语句、COMMIT语句和ROLLBACK语句。GRANT语句用于给用户增加权限,REVOKE语句用于收回用户的权限,COMMIT语句用于提交事务,ROLLBACK语句用于回滚事务。
数据库中的操作都是通过SQL语句来完成的,而且在应用程序中也经常使用SQL语句,例如在Java语言中嵌入SQL语句,通过执行Java语言来调用SQL语句,就可以完成数据的插入、修改、删除、查询等操作。不仅如此,SQL语句还可以嵌套在其他语言中,如C#语言、PHP语言等。
常见的数据库产品
随着数据库技术的发展,数据库产品越来越多,如Oracle、DB2、MongoDB、SQL Server、MySQL等。
Oracle数据库
Oracle数据库管理系统是由甲骨文(Oracle)公司开发的,在数据库领域一直处于领先地位。目前,Oracle数据库覆盖了大、中、小型计算机等几十种计算机型,成为世界上使用最广泛的关系型数据管理系统(由二维表及其之间的关系组成的一个数据库)之一。
Oracle数据库管理系统采用标准的SQL,并经过美国国家标准技术所(NIST)测试。与IBM SQL/DS、DB2、INGRES、IDMS/R等兼容,而且它可以在VMS、DOS、UNIX、Windows等操作系统下工作。不仅如此,Oracle数据库管理系统还具有良好的兼容性、可移植性和可连接性。
SQL Server数据库
SQL Server是由微软公司开发的一种关系型据库管理系统,它已广泛用于电子商务、银行、保险、电力等行业。
SQL Server提供了对XML和Internet标准的支持,具有强大的、灵活的、基于Web的应用程序管理功能。而且界面友好、易于操作,深受广大用户的喜爱,但它只能在Windows平台上运行,并对操作系统的稳定性要求较高,因此很难处理日益增长的用户数量。
DB2数据库
DB2数据库是由IBM公司研制的一种关系型数据库管理系统,主要应用于OS/2、Windows等平台下,具有较好的可伸缩性,可支持从大型计算机到单用户环境。
DB2支持标准的SQL,并且提供了高层次的数据利用性、完整性、安全性和可恢复性,以及从小规模到大规模应用程序的执行能力,适合于海量数据的存储,但相对于其他数据库管理系统而言,DB2的操作比较复杂。
MongoDB数据库
MongoDB是由10gen公司开发的一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中功能最丰富,最像关系数据库的。它支持的数据结构非常松散,是类似JSON的bjson格式,因此可以存储比较复杂的数据类型。
Mongo数据库管理系统最大的特点是它支持的查询语言非常强大,其语法有点类似于面向对象的查询语言,可以实现类似关系数据库单表查询的绝大部分功能,而且还支持对数据建立索引。不仅如此,它还是一个开源数据库,并且具有高性能、易部署、易使用、存储数据非常方便等特点。对于大数据量、高并发、弱事务的互联网应用,MongoDB完全可以满足Web 2.0和移动互联网的数据存储需求。
MySQL数据库
MySQL数据库管理系统是由瑞典的MySQL AB公司开发的,但是几经辗转,现在是Oracle产品。它是以“客户/服务器”模式实现的,是一个多用户、多线程的小型数据库服务器。而且MySQL是开源数据的,任何人都可以获得该数据库的源代码并修正MySQL的缺陷。
MySQL具有跨平台的特性,它不仅可以在Windows平台上使用,还可以在UNIX、Linux和Mac OS等平台上使用。相对其他数据库而言,MySQL的使用更加方便、快捷,而且MySQL是免费的,运营成本低,因此,越来越多的公司开始使用MySQL。
总结
数据库(Database,DB)是按照数据结构来组织、存储和管理数据的仓库,其本身可看作电子化的文件柜,用户可以对文件中的数据进行增加、删除、修改、查找等操作。需要注意的是,这里所说的数据(Data)不仅包括普通意义上的数字,还包括文字、图像、声音等,也就是说,凡是在计算机中用来描述事物的记录都可称作数据。
作者介绍
非职业「传道授业解惑」的开发者叶一一。
《趣学前端》、《CSS畅想》等系列作者。华夏美食、国漫、古风重度爱好者,刑侦、无限流小说初级玩家。
如果看完文章有所收获,欢迎点赞👍 | 收藏⭐️ | 留言📝。
- 点赞
- 收藏
- 关注作者
评论(0)