笔者:风起怨江南 出处:https://blog.csdn.net/JackMengJin 本文针对数据库小白或最近准备面试的小伙伴,供大家交流学习,文章欢迎转载,如果喜欢请点赞+关注,感谢支持!
一、初识数据库
如今,要存储和管理数据,就离不开数据库。在数据存储到数据库后,就会通过数据库管理系统对这些数据进行组织和管理。
数据管理:是指对各种数据进行分类、组织、编码、存储、检索和维护。
1.1 数据管理的发展史
1.1.1 人工管理阶段
时间:20实际50年代中期之前
背景:计算机硬件没有磁盘、软件没有专门的管理数据的软件
应用:仅限于科学技术方面
局限:数据只能由计算和处理它的程序自行携带
人工管理阶段的特点:
- 数据不能长期保存
- 程序本身管理数据
- 数据不能共享
- 数据不具有独立性
1.1.2 文件系统阶段
时间:20世纪50年代后期到20世纪60年代中期
背景:计算机硬件出现了磁盘,软件出现了高级语言和操作系统,因此程序和数据有了一定独立性
应用:不仅应用于科学技术,而且开始用于管理
革新:程序和数据有独立性,出现了程序文件和数据文件之分,也就是所谓的文件系统阶段
文件系统阶段的特点:
- 数据可以长期保存
- 数据由文件系统来管理
- 数据冗余大,共享性差
- 数据独立性差
1.1.3 数据库系统阶段
时间:20实际60年代后期至今
背景:网络技术发展迅速,计算机软硬件功能进步巨大
局限:计算机需要管理规模巨大的数据,文件系统来管理数据已经远远无法满足当时各种应用需求
革新:出现数据库技术,特别是关系型数据库技术
数据库系统阶段的特点:
- 数据实现结构化
- 数据实现了共享性
- 数据独立性强
- 数据粒度变小
1.2 数据库系统阶段的概念
完全掌握数据库系统阶段的数据处理技术需要掌握以下这些概念。
1.2.1 数据库(DataBase,DB)
数据库是指长期保存在计算机的存储设备上,按照一定规定组织起来,可以被各种用户或应用共享的数据集合。
1.2.2 数据库管理(DataBase Management System,DBMS)
数据库管理是指一种操作和管理数据库的大型软件。
用于建立、使用和维护数据库,对数据库进行同意管理和控制,以保证数据库的安全性和完整性。
用户通过数据库管理系统来访问数据库中的数据。
当前比较流行和常用的数据库管理系统有以下几个:
Oracle、MySQL、SQL Server和DB2的等等。
1.2.3 数据库系统
数据库系统(DataBase System,DBS)是指在计算机系统中引入数据库后的系统,通常由计算机硬件、软件、数据库管理系统和数据管理员组成。
在通常情况下,经常会用数据库来表示它们使用的数据库软件。
这里是有个很容易混淆的概念:
数据库软件应该为数据库管理系统,数据库是通过数据库管理系统创建和操作的容器。
1.3 数据库技术经历阶段
数据库系统管理数据阶段,随着时间的推移,又经历了3个技术阶段:
1.3.1 层次数据库和网状数据库技术阶段
层次数据库代表为IMS,1968年IBM为阿波罗11号飞船顺利登月提供了重要保障。
网状数据库代表为IDS,其为1961年美国通用电气公司使用的数据库。该阶段的数据库技术,支持三集模式结构,用指针来表示数据之间的联系:数据定义语言和数据操纵语言相对独立。
1.3.2 关系数据库技术阶段
关系数据库技术的出现,可以说是数据库系统管理数据的一个里程碑。
该技术特点:具有严格的数学理论,概念简单清晰,便于使用。
关系数据库技术的代表数据库管理系统为Oracle、DB2、SQL Server、MySQL、和SyBase和Infomix等。
1.3.3 后关系数据库技术阶段
由于关系数据库在数据模型、性能、扩展伸缩性上存在问题,所以出现了一些后关系数据库的技术:
面向对象数据库技术(ORDBMS)和结构化数据库技术(NOSQL)。
ORDBMS技术:目前尚未完全成树,但能很好的=地支持对数据和对象的管理,能够很好地和面向对象设计技术向融合。
NOSQL技术:打破了关系型数据库与ACID理论相互统一的局面,利用NOSQL技术存储数据时,不需要固定的表结构,因此在大型数据存取上具备了关系型数据库无法比拟的性能优势。
1.4 数据库管理系统提供的功能
数据库管理系统提供许多功能,可以通过SQL(结构化查询语言)来定义和操作数据,维护数据的完整性和安全性,以及进行各种数据库的管理。
1.数据定义语言(Data Definition Language,DDL)
数据库管理系统提供了数据定义语言定义数据库涉及各种对象,定义数据的完整性约束、保密限制等约束。
2.数据操作语言(Data Manipulation Language,DML)
数据库管理系统提供了数据操作语言实现对数据的操作。基本的数据操作有两类:检索(查询)和更新(插入、删除和更新)。
3.数据控制语言(Data Control Language,DCL)
数据库管理系统提供了数据控制语言实现对数据库的控制,包含数据完整性控制、数据安全性控制和数据库的恢复等。
1.5 什么SQL
SQL,发音为字母S-Q-L或sequel,是Structure Query Laguage(结构化查询语句)的缩写,是目前广泛使用的关系数据库标准语言。
时间:由IBM在20世纪70年代开发出来,被作为IBM关系数据库System R的原型关系语言,实现关系数据库中信息的检索。
特点:简单易学、功能丰富、使用灵活。
地位:SQL被美国国家标准局(ANSI)确定为关系型数据库语言的美国标准,后来又被国际标准化组织(ISO)采纳为关系数据库语言的国际标准。
影响:SQL标准出台,使得所有数据库生产厂家都退出了各自支持的SQL的数据库管理系统。
功能:SQL具有数据库管理系统的所有功能,主要功能如下:数据定义语言、数据操作语言和数据控制语言。
SQL具有如下优点:
- SQL不是某个数据库供应商的专有语言,所有数据库管理系统都支持SQL,学习了SQL就能与所有数据库进行交互。
- SQL简单易学,由描述性很强的英语单词组成,数量不多。
- SQL高度非过程化,即SQL进行数据库操作,只需指出做什么,不需要指明怎么做,存取路径的选择和操作的执行由数据库管理数据系统自动完成。
二、MySQL数据库管理系统
注:后文中MySQL来代替MySQL数据库管理系统。
2.1 开源中的杰出代表——MySQL
开源,就是开放资源(Open Source)的意思。开源即是自由的化身,提倡一种公开、自由的精神。
最早起源于1997年在加州召开的一个研讨会,会议上有各样的黑客大佬和程序员,通过了一个新的术语:开源。
开源的转折点:1998年,网景公司正式宣布其发布的Navigator浏览器的源代码,此事也成为了开源软件发展历史的转折点。
由于开源所提倡的公开、自由的精神,为软件行业及非软件行业带来了巨大的参考价值。虽然获取到开放软件的源码是免费的,但是对源码的使用、修改却需要遵循该开源软件所作的许可声明。常用的许可方式包括BSD、Apache Licence、GPL等。其中GNU的GPL为最常用的许可证之一。
在开源文化强力带动下,产生出强大的开源操作系统Linux,还有Apache服务器,Perl程序语言、MySQL数据库等等。
2.2 MySQL发展历史
最早追溯到1979年,由Monty Widenius用BASIC设计了一个报表工具,后又将该工具使用C语言重写,移植到UNIX平台,当时还只是一个底层的面向报表的存储引擎。工具名叫Unireg。
1985年三个瑞典人David Axmark、Allan Larsson和Michael Widenius成立了一家公司,这就是MySQL AB的前身。并设计一个利用索引顺序存取数据的方法,也就是ISAM存储引擎核心算法的前身。
MySQL是一款免费开源、小型、关系型数据库管理系统。2008年被SUN公司收购,并于2009年又被Oracle收购。
MySQL虽然免费,但与商业数据库一样,具有数据库系统的通用性,提供了数据的存取、增加、修改、删除或更加复杂的数据操作。
同时MySQL是关系型的数据库系统,支持标准的结构化查询语言,同时MySQL为客户提供了不同的程序接口和链路库,如C、C++、Java、PHP等。
由于MySQL体积小、速度快、总体拥有成本低,尤其是开源的特点,许多中小型网站为了降低网站总体拥有的成本,而选择了MySQL作为网站数据库。
截至当前时间,已经可以下载mySQL.8.0.19版本。
2.3 常见数据库管理系统
常见的数据库管理系统产品主要是Oracle、IBM、Microsoft和Sybase等公司的产品。
2.3.1 Oracle数据库管理系统
Oracle数据库管理系统被认为是业界目前比较成功的关系型数据库管理系统。
- 公司:Oracle公司1983年推出
- 特点:运行稳定、功能齐全、性能超群,技术方面遥遥领先
2.3.2 DB2数据库管理系统
DB2数据库管理系统是一款支持多媒体、Web关系型数据库管理系统。
- 特点:满足大中型公司的需要,可以灵活服务于中小型电子商务解决方案
2.3.3 SQL Sever数据库管理系统
SQL Server数据库管理系统是一款功能比较全面,效率比较高,可以作为大中型企业或单位的数据库管理系统。
- 公司:Microsoft公司
- 特点:继承了Microsoft软件产品的界面友好、易学易用的特点,与其他大型数据库管理系统产品相比,操作性和交互性方面独树一帜
2.3.4 PostgreSQL数据库管理系统
PostgreSQL数据库管理系统是一款最富特色的自由数据库管理系统,也是最强大的自由库管理系统。
- 特点:支持世界上最丰富的数据类型,是自由软件数据库管理系统中唯一支持事务,子查询、多版本并行控制系统、数据完整性检查等特性的自由软件
下一篇内容讲mySQL数据库下载和安装。
本文部分内容参考《MySQL数据库应用从入门到精通》等相关资料编写,供大家学习交流。
获得免费的学习资料请添加微信公众号——风起怨江南,谢谢大家的关注和支持!