不知各位小伙伴们,是否和我一样在工作中,总能听到开发小哥哥们说在哪个数据表中查询数据,,哪个表与哪个表关联等等,刚进入产品这个岗位时,自己也是一头雾水,不知道开发小哥哥们在说什么,今天借助这篇文章,来说说关于数据库的那些事儿吧。
什么是数据库?
数据库类似一个数据存储的仓库,数据按照一定的规则进行存储,可以对数据库中的数据进行增、删、改、查操作。
举个例子吧,这样大家更容易理解。
一个存放货品的仓库,为了便于管理,货品会按照货品的种类分货架存放,当寻找某个货品时,仓库管理员会根据存放货品的货架编号去找货品。数据库就好比存放货品的仓库,数据库中的表好比仓库里的货架,数据库表里的数据好比存放在货架上的货品,货架一般都有编号,编号好比准确定位货品位置的唯一标识。
想必通过上述的例子,大家已经对数据库有一个基本的了解啦,接下来我们讲讲数据库都有哪些类型吧。
目前数据库的类型主要有两种。一种是关系型数据库,一种是非关系型数据库。
什么是关系型数据库列?
关系型数据库时一种基于关系模型的数据库,是目前应用比较多的一种数据库模型。常用的关系型数据库有MySQL、SQL Server、Oracle等。
我们来举个实例在描述一下,关系型数据库在实际中的应用。
以学生和课程为例,我们可以建一个表,表的名字取名为“student”,在表中可以存在多种属性,如:姓名、年龄、性别、爱好,所学课程等;我们再新建另一个表,取名为“course”,表中的属性可以表示为课程名称。
这里要敲敲小黑板,在数据库中,表名和属性名只能用英文命名,且每个数据库表中都有一个唯一标识,称为“主键”。
创建好的数据表如下图所示
接下来我们来讲讲如何将这两个表进行关联。
在上面我们已经给我们的student表和course表,创建了主键名,分别为“studentId”“courseId”,如下图所示,是数据表中的关联关系
因一个学生对应多个课程,这时我们创建第三张表“student-course”,通过“studentId”“courseId”来表现学生与课程之间的关系。
在student表中,我们能找到“studentId”为“1”,代表的是王小,
在course表中,我们能找到“courseId”为“1”,代表的是数学;“courseId”为“2”,代表的是语文
在“student-course”表中,我们可以看出“studentId”为“1”的对应“courseId”1和2;
就可以得出,王小学习了语文和数学两门课程
不知小伙伴们,通过上述的例子,是不是已经对关系型数据库有了初步的认识呢,接下来我们来讲讲什么是非关系型数据库吧
什么是非关系型数据库?
非关系型数据库是一种相对松散且可以不按照严格的结构规法进行存储的数据库。目前主流的非关系型数据库有MongoDB、CouchDB。
在非关系型数据库中,我们通常采用“key-value”的形式,使用json格式表示和存储数据,例如我们表示“student”这一数据结构可以使用如下方法:
{
“studentId”:”1”
“name”:”王小”
“age”:”16”
“sex”:”男”
}
上述就是一种json格式,冒号左边的是“key”,冒号右边是“value”
非关系型数据库适合应用在对存取要求比较高且并发处理比较高的场合,比如网站访问数据的统计。
关于数据库的内容就总结到这儿啦,有不足的地方,欢迎小伙伴们指出。