MySQL 从零开始:01 数据库简介

1、什么是数据库

从字面意思理解,首先数据库是一个存放东西的,里面存的东西是数据。以下解释来自百度百科:

数据库(Database)是按照数据结构来组织、存储和管理数据的建立在计算机存储设备上的仓库

想象一下这个场景:某高中二年级有三个班,期末考试成绩下来了,每个班的学生的成绩都打印在了一张A4纸上,而每个班的成绩单都放在一个档案袋里,最后所有的档案袋都放在李主任那里保管。如下图所示:

外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传

每个班的成绩表上记录着该班所有学生的成绩,其内容大概是下面这个样子:

排名姓名语文数学英语总分
1李元芳999999297
2后裔999898295
3孙尚香959595285

该表中所有成员的数据结构都相同,也就是按照数据结构来组织、存储和管理数据

档案袋可类比于数据库,成绩表可类比于数据库中的表,而李主任则类比于数据库服务器。开学来了老师们都要联系李主任去拿档案袋,我们在使用数据库时也要首先连接数据库。

2、数据库的分类

数据库通常分为层次式数据库网络式数据库关系式数据库三种。而不同的数据库是按不同的数据结构来联系和组织的。

在当今的互联网中,最常见的数据库模型主要是两种,即关系型数据库非关系型数据库<NOSQL>

2.1 关系型数据库

关系模型就是指二维表格模型,因而一个关系型数据库就是由二维表及其之间的联系组成的一个数据组织。当前主流的关系型数据库有Oracle、DB2、PostgreSQL、Microsoft SQL Server、Microsoft Access、MySQL、浪潮K-DB等。

2.2 非关系型数据库

非关系型数据库,又被称为NoSQL(Not Only SQL ),意为不仅仅是SQL,对NOSQL 最普遍的定义是“非关联型的”,强调Key-Value 存储和文档数据库的优点 。主要代表有MongoDB,Redis、CouchDB等。

分类Examples举例典型应用场景数据模型优点缺点
键值(key-value)Tokyo Cabinet/Tyrant, Redis, Voldemort, Oracle BDB内容缓存,主要用于处理大量数据的高访问负载,也用于一些日志系统等等。Key 指向 Value 的键值对,通常用hash table来实现查找速度快数据无结构化,通常只被当作字符串或者二进制数据
列存储数据库Cassandra, HBase, Riak分布式的文件系统以列簇式存储,将同一列数据存在一起查找速度快,可扩展性强,更容易进行分布式扩展功能相对局限
文档型数据库CouchDB, MongoDbWeb应用(与Key-Value类似,Value是结构化的,不同的是数据库能够了解Value的内容)Key-Value对应的键值对,Value为结构化数据数据结构要求不严格,表结构可变,不需要像关系型数据库一样需要预先定义表结构查询性能不高,而且缺乏统一的查询语法。
图形(Graph)数据库Neo4J, InfoGrid, Infinite Graph社交网络,推荐系统等。专注于构建关系图谱图结构利用图结构相关算法。比如最短路径寻址,N度关系查找等很多时候需要对整个图做计算才能得出需要的信息,而且这种结构不太好做分布式的集群方案。

3、数据库的组成

数据库是相关数据的集合,一个数据库通常包含如下组成部分:

  • 数据表(Table):简称,由一组数据记录组成,数据库中的数据是以表为单位进行组织的。表实际上是一个二维表格,如上面所讲成绩表。
  • 记录(Record):表中的每一行称为一个记录,它由若干个字段组成。如上面所讲李元芳、后裔、孙尚香的成绩都为一条记录。
  • 字段(Field):也称。表中的每一列称为一个字段,每个字段都有相应的描述信息,如数据类型、数据宽度等。成绩表中 排名姓名语文数学英语总分 都是字段。
  • 索引(Index):为了提高访问数据库的肖略,可以对数据库使用索引。索引实际上是一种特殊类型的表,其中含有关键字段的值(由用户定义)和指向实际记录位置的指针,这些值和指针按照特定的顺序(也由用户定义)存储,从而可以以较快的速度查找到所需要的数据记录。
  • 查询(Query):一条 SQL 指令用来从一个或多个表中获取一组指定的记录,或者对某个表执行指定的操作。每条语句都可以看做是一个查询,根据这个查询,可以得到需要的查询结果
  • 过滤器(Filter):它把索引和拍讯结合起来,用来设置条件,然后根据给定的条件输出所需要的数据。
  • 视图(view):数据的视图指的是查找到(或处理)的记录数和显示(或进行处理)这些记录的顺序。一般情况下,视图由过滤器和索引控制。

4、MySQL简介

作为本系列文章的主角,下面要介绍一下 MySQL

MySQL 是一种开放源代码的关系型数据库管理系统(RDBMS),使用的 SQL 语言是用于访问数据库的最常用标准化语言。MySQL 软件采用了双授权政策,分为社区版和商业版,由于其体积小、速度快、总体拥有成本低,尤其是开放源码这一特点,一般中小型网站的开发都选择 MySQL 作为网站数据库。

随着 MySQL 被 Oracle 收购,MySQL 的用户和开发者开始质疑开源数据库的命运,有一部分人开始寻找 MySQL 的替代品,其中比较主流的有: Percona ServerMariaDBDrizzle。值得一提的是 MariaDB 的创始人正是 MySQL 的创始人。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

C与Python实战

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值