什么是数据库
概述
数据库(Database)是长期存储在计算机内有组织、大量、共享的数据集合。它可以供各种用户共享,具有最小冗余度和较高的数据独立性。数据库管理系统DBMS(Database Management System)在数据库建立、使用和维护时对数据库进行统一控制,以保证数据的完整性和安全性,并在多用户同时使用数据库时进行并发控制,在发生故障后对数据库进行恢复。
分类
数据库分为关系型数据库和非关系型数据库。
- 关系型数据库(RDBMS:Relational Database Management System):这种类型的数据库是最古老的数据库类型,关系型数据库模型是把复杂的数据结构归结为简单的二元关系(即二维表格形式)。它以行(row)和列(column)的形式存储数据,以便于用户理解,存储的格式可以直观地反映实体间的关系。而SQL就是关系型数据库的查询语言。常见的关系型数据库有MySQL、SQL Server、DB2、Oracle)等。
- 非关系型数据库(非RDBMS/NoSQL:Not Only SQL):指的是分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。它基于键值对存储数据,不需要经过SQL层的解析,性能非常高。NoSQL数据库如MongoDB、Redis、Memcache、HBase出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的被设计。
SQL
结构化查询语言(Structured Query Language)简称SQL,是一种数据库查询和程序设计语言,用于存取数据以及查询、更新和管理关系数据库系统。
SQL语言主要分为:
- DQL(Data Query Language):数据查询语言,用于从表中取得数据。例如:select
- DML(Data Manipulation Language):数据操作语言,用于对数据进行增加、修改、删除。例如:insert、udpate、delete
- DDL(Data Definition Language):数据定义语言,用于在数据库中创建新表或修改、删除表,为表加入索引等。例如create、alter、drop
- TPL:事务处理语言,对事务进行处理。例如:begin transaction、commit、savepoint、rollback
- DCL:数据控制语言,实现权限控制。例如:grant、revoke
- CCL:指针控制语言,用于对一个或多个表单独行的操作。例如:declare cursor(申明游标)、fetch info(进入)、update where current(更新当前位置)
什么是MySQL
MySQL是一个关系型数据库管理系统,由瑞典MySQL AB公司开发,目前属于Oracle旗下产品。MySQL软件采用了双授权政策,它分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般网站软件的开发都选择 MySQL 作为网站数据库。
MySQL基本架构
MySQL的逻辑架构图如下:
MySQL的优势
-
使用C和C++编写,并使用了多种编译器进行测试,保证了源代码的可移植性。
-
MySQL支持大型数据库,支持5000万条记录的数据仓库,32位系统表文件最大可支持4GB,64位系统支持最大的表文件为8TB。
-
MySQL是可以定制的,采用了GPL(GNU General Public License)协议,你可以修改源码来开发自己的MySQL系统。
-
MySQL是一种关联数据库管理系统,它将数据保存在不同的表中,而不是将所有数据放在一个大仓库内,这样就增加了速度并调高了灵活性。
-
MySQL使用标准的SQL数据语言形式。
-
MySQL可以允许运行在多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP和Ruby等