前言
本栏目会从数据库概念开始到数据库的SQL优化持续更新(站在Java开发的角度,不站在数据库管理员(DBA)角度),本篇是第一篇《数据库常用概念》以开启我的数据库之旅,主要是讲述MySQL 8.0数据库,也是我常用的数据库之一,希望与大家一起坚持学习,数据库下载与安装详见:http://t.csdn.cn/H1vjv
一、数据库概述
1.数据库使用的原因
持久化(persistence):
把数据保存到可掉电式存储设备中以供之后使用。在企业级应用中,数据持久化意味着将内存中的数据保存到硬盘上加以“固化”,而持久化的实现过程大多通过各种关系数据库来完成
持久化的主要作用:将内存中的数据存储在关系型数据库中,也可以存储在磁盘文件、XML数据文件中
2.选择数据库的原因
- 开放源代码,使用成本低
- 性能卓越,服务稳定
- 软件体积小,使用简单,并且易于维护
- 历史悠久,社区用户非常活跃,遇到问题可以寻求帮助
- 经过了时间的验证
二、数据库与数据库管理系统
1.数据库的相关概念
1.1、DB:数据库(Database)
存储数据的“仓库”,其本质是一个文件系统,保存了一系列有组织的数据
1.2、DBMS:数据库管理系统(Database Management System)
一种操纵和管理数据库的大型软件,用于建立、使用和维护数据库,对数据进行统一管理和控制。用户通过数据库管理系统访问数据库中表内的数据
1.3、SQL:结构化查询语言(Structured Query Language)
专门用来与数据库通信的语言
2.数据库与数据库管理系统的关系
数据库管理系统(DBMS)可以管理多个数据库,一般开发人员会针对每一个应用创建一个数据库。为保存应用中实体的数据,一般会在数据库创建多个表,以保存程序中实体用户的数据
数据库管理系统、数据库与表的关系如图所示
3、常见数据库
1.常见数据库管理系统排名
目前常见的数据库管理软件有Oracle、MySQL、MS SQL Server、DB2、PostgreSQL、Access、Sybase、Informix。以下是DB-Engines Ranking对各数据库受欢迎程度进行调查后的统计结果,查看最新的数据库排名:https://db-engines.com/en/ranking
对应的折线图:https://db-engines.com/en/ranking_trend
2.常见的数据库介绍
2.1、Oracle
- 1979年,Oracle2诞生,它是第一个商用的RDBMS(关系型数据库管理系统)。随着Oracle软件的名气越来越大,公司也改名叫Oracle公司
- 2007年,总计85亿美金受够BEA Systems
- 2009年,总计74亿美金收购SUM。此前的2008年,SUN以10亿美金收购MySQL。意味着Oracle同时拥有了MySQL的管理权,至此Oracle在数据库领域中成为绝对的领导者
- 2013年,甲骨文公司超越IBM,成为继Microsoft后全球第二大软件公司
- 如今Oracle的年收入达到了400亿美金,足以证明商用(收费)数据库软件的价值
2.2、SQL Server
SQL Server是微软开发的大型商业数据库,诞生于1989年。C#、.net等语言常使用,与WinNT完全继承,也可以很好的与Microsoft BackOffice产品集成
2.3、DB2
IBM公司的收费的数据库产品,常在银行系统中使用
2.4、PostgreSQL
PostgreSQL的稳定性极强,最符合SQL标准,开放源码,具备商业级DBMS质量,PG对数据量大的文本以及SQL处理较快
2.5、SyBase
已经淡出历史舞台,提供了一个非常专业的数据建模工具PowerDesigner
2.6、SQLite
嵌入式的小型数据库,应用在手机端。零配置,SQLite3不用安装,不用配置,不用启动,关闭或者配置数据库实例。当系统崩溃后不用做任何恢复操作,在下次使用数据库的时候自动恢复
2.7、informix
IBM公司出品,取自Infomation和Unix的结合,它是第一个被移植到Linux上的商业数据库产品。仅运行于unix/linux平台,命令行操作。性能极高,支持集群,适应于安全性要求极高的系统,尤其是银行、证券系统的应用
3.MySQL介绍
- MySQL是一个开放源代码的关系型数据库管理系统,由瑞典MySQL AB(创始人Micheal Windenius)公司1995年开发,迅速成为开源数据库的No.1
- 2008年被SUN收购(10亿美金),2009年SUN被Oracle收购,MariaDB应运而生(MySQL的创造者担心MySQL有闭源的风险,因此创建了MySQL的分支项目MariaDB)
- MySQL 6.x版本之后分为社区版和商业版
- MySQL是一种关联数据库管理系统,将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并提高了灵活性
- MySQL是可以定制的,采用了GPL(GNU General Public License)协议,可以修改源码来开发自己的MySQL系统
- MySQL支持大型的数据库,可以处理拥有上千万条记录的大型数据库
- MySQL支持大型的数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB
- MySQL使用标准的SQL数据语言形式
- MySQL可以允许运行于多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP和Ruby等
4.Oralce VS MySQL
Oracle:更适合大型跨国企业的使用,因为他们对费用不敏感,但是对性能以及安全性有更高的要求
MySQL:由于体积小、速度快、总体拥有成本低,可处理上千万条记录的大型数据库,尤其是开放源码这一特点,使得很多互联网公司、中小型网站选择了MySQL作为网站数据库