目录
基本概念
数据库(DataBase,DB)
数据库的定义
数据库的分类
数据库管理系统(DataBase Management System,DBMS)
SQL(Structured Query Language)
Mysql
Mysql数据模型
下载安装Mysql
基本概念
数据库(DataBase,DB)
数据库的定义
按照数据结构来组织、存储和管理数据的仓库。
严格意义上来说,数据库是一个实体,它是能够合理保管数据的“仓库”,用户在该“仓库”中存放要管理的事务数据,“数据”和“库”两个概念结合成为数据库。它的存储空间很大,可以存放百万条、千万条、上亿条数据。但是数据库并不是随意地将数据进行存放,是有一定的规则的,否则查询的效率会很低。
而我们日常常说的数据库一般代表我们所使用的数据库软件,如mysql、sql server等;这其实是不正确的,它混淆了数据库和数据库管理系统的概念。正确的理解应该是:我们日常所使用的数据库软件应该称为数据库管理系统,我们通过数据库管理系统,来操作和管理数据库。
数据库的分类
通常来说,数据库可以按照其存储数据的关联关系分为关系型数据库和非关系型数据库两种:
- 关系型数据库(SQL):存储的格式可以直观地反映实体间的关系。关系型数据库和常见的表格比较相似,关系型数据库中表与表之间是有很多复杂的关联关系的。 常见的关系型数据库管理系统有Oracle,Mysql,SqlServer等。在轻量或者小型的应用中,使用不同的关系型数据库对系统的性能影响不大,但是在构建大型应用时,则需要根据应用的业务需求和性能需求,选择合适的关系型数据库。
- 非关系型数据库(NoSQL):出于简化数据库结构、避免冗余、影响性能的表连接、摒弃复杂分布式的目的,设计出的分布式的、非关系型的、不保证遵循ACID原则的数据存储系统。 常见的非关系型数据库管理系统有Redis,MysqlMembaseMysql,SqlServerMongoDB等。传统的关系型数据库采用表格的储存方式, 数据以行和列的方式进行存储,要读取和查询都十分方便。而非关系型数据不适合这样的表格存储方式,通常以数据集的方式,大量的数据集中存储在一起,类似于键值对、图结构或者文档。
区别:
NoSQL数据库适合追求速度和可扩展性、业务多变的应用场景。对于非结构化数据的处理更合适,如文章、评论,这些数据如全文搜索、机器学习通常只用于模糊处理,并不需要像结构化数据一样,进行精确查询,而且这类数据的数据规模往往是海量的,数据规模的增长往往也是不可能预期的,而NoSQL数据库的扩展能力几乎也是无限的,所以NoSQL数据库可以很好的满足这一类数据的存储。NoSQL数据库利用key-value可以大量的获取大量的非结构化数据,并且数据的获取效率很高,但用它查询结构化数据效果就比较差。
关系型数据库对于结构化数据的处理更合适,如学生成绩、地址等,这样的数据一般情况下需要使用结构化的查询,例如join,这样的情况下,关系型数据库就会比NoSQL数据库性能更优,而且精确度更高。由于结构化数据的规模不算太大,数据规模的增长通常也是可预期的,所以针对结构化数据使用关系型数据库更好。关系型数据库十分注意数据操作的事务性、一致性,如果对这方面的要求关系型数据库无疑可以很好的满足。
数据库管理系统(DataBase Management System,DBMS)
所谓的数据库管理系统,其实就是用来操作和管理数据库的大型软件,上一小节其实已经提到了一些常用的数据库管理系统,下图是几种常用的关系型数据库操作系统:
SQL(Structured Query Language)
尽管关系型数据库管理系统的种类繁多,但是操作关系型数据库都有一个统一的标准,那就是SQL语言,它是专门为了操作关系型数据库而设计的一种数据库编程语言,定义了一套操作关系型数据库的统一标准。上面介绍的所有的关系型数据库管理系统,都可以通过SQL语言来进行数据库的操作和管理。因此学习关系型数据库的关键,就是学会SQL语言。
SQL语句主要分为以下几种:
- 数据查询语言(DQL)。包括SELECT语句,用于从数据库中查询数据。
- 数据操作语言(DML)。包括INSERT、DELETE、UPDATE语句,用于对表中的数据进行增删改操作。
- 数据定义语言(DDL)。包括CREATE、DROP、ALTER语句,用于创建、修改或删除数据库对象,如表、索引、视图等。
- 事务控制语言(TCL)。包括COMMIT、ROLLBACK语句,用于控制事务的提交和回滚。
- 数据控制语言(DCL)。包括GRANT、REVOKE语句,用于控制用户对数据库对象的访问权限。
这些语言这里只做了简单概述,后续会专门写文章进行介绍。
Mysql
在前文我们已经提到了,是一个关系型数据库管理系统,由瑞典 MySQL AB 公司开发,属于 Oracle 旗下产品。MySQL是最流行的关系型数据库管理系统之一,在 WEB 应用方面,MySQL是最好的RDBMS (Relational Database Management System,关系数据库管理系统)应用软件之一。
MySQL所使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型和大型网站的开发都选择 MySQL作为网站数据库。
Mysql数据模型
Mysql的数据模型如上图所示(其实大部分关系型数据库的数据模型都长这样)。客户端通过数据库管理系统管理数据库,一个数据库管理系统可以管理多个数据库,一个数据库由一个或者多个表组成,一个表又包含一个或多个行和列。
- 数据库(DataBase):保存有组织的数据的容器(通常是一个文件或者一组文件)
- 表(table):某种特定类型的结构化清单,如果把数据库比作我们的一个excel文件,那么表就是xlsx文件中的一个sheet。
- 列(column):表中的一个字段,所有的表都是由一个或者多个字段组成。就类似于sheet中的列。在关系型数据库中,定义列的时候需要指定列的数据类型,用来限制该列中存储的数据。
- 行(row):表中的一条记录,也就是真正存储的数据。在mysql必知必会中有这样一句话:“您可能听到用户在提到行(row)时称其为数据库记录(record)。在很大程度上,这两个术语是可以相互替代的,但是从技术上讲,行才是正确的术语。”
下载安装Mysql
由于Orecle需要收费,所以学习时我们选择了Mysql社区版作为我们的数据库管理系统,Mysql的下载地址如下:下载地址。
安装教程看这里:
MySQL安装和启停https://blog.csdn.net/x1027105273/article/details/138461442
(注意:如果要安装最新版的,记得把以前版本的Mysql卸载掉)
卸载教程看这里:
MySQL卸载https://blog.csdn.net/x1027105273/article/details/138419779