什么是数据库
概述
数据库(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可以允许运行在多个系统上,并且支持多种语言。这些编程语言包括C、C++、Python、Java、Perl、PHP和Ruby等