在我们学习一个新的东西的时候,在怎么学之前我们会了解为什么要学。
为什么要用关系数据库?
关系数据库解决了什么样的问题?
什么时候它能够帮助你?
如果你已经知道了这些答案,那就是一个好的开始。
解决的问题
我会试着用不那么学院派的方式讲,学院派的概念你们已经在很多地方看过了,像百度百科,书籍之类的地方。
最简单的来说,数据库就是一个存储数据的地方。这些数据可以是药店的价位表,一个公司的雇员信息,或者是网上商城的库存表。
想必你们可能都遇到过需要存储数据的时候。在过去,你们可能将数据存储在Excel表中,存储在Word当中,或者一个TXT文档中。这样的存储可以满足你的需求。所以关系数据库可以帮你们解决什么问题呢?
数据冗余
关系数据库可以解决的一个问题就是数据冗余。
也许你们之前将数据存储在Excel中,像下面的订单表一样。比如说经销商代码和经销商名称是一起出现,代码出现多少次,名称就重复多少次。如果你要改一个经销商名称,经销商名称重复多少次就要改多少次。数据量小的时候改起来还好,但是数据量很大的时候就比较麻烦。
前后不一致
第二个解决的问题就是可以防止前后不一致问题。
上面提到的表,像千光高商贸公司,也许有人会输错成干光高商贸公司或者十光高商贸公司。还有一个就是有可能订单创建日期会输成文本格式,或者订单自编号输成负值,因为数据库定义了字段的属性,避免不合规的存在。
存储处理量
第三个解决的问题是数据存储处理量的问题。Excel在处理数据的时候,几十万条记录很容易就崩溃,超过200兆就很卡。数据库可以存储大量的数据,像Access这样的轻型桌面数据库,都可以存储处理2G以内的数据。
表与表之间关联
还有其他的问题是关系型数据库可以解决的。数据库包含了表,表包含了行列,这跟Excel表是非常相似的。但是在数据库里面,通常我们会将不同的表关联起来。举个例子简单讲。上面举例的订单表,我们分成分成两个去看。
在经销商表中,每个经销商都有单独的行,如要修改经销商名称,只要改一次就好。
可以用经销商代码将经销商表和订单表关联起来,这个时候我们可以说经销代码是经销表的主键。而订单表的经销商代码是经销商表的外键。
主键可以标识一条记录的唯一性,经销商表里面,可能会有两个名称相同的经销商,但代码是唯一的。经销商代码连接了两个表,作为公共键,在一张表里面是主键,相对应的,在另外一张表里面被称为外键。
主键可以是一个字段,也可以是多个字段组成,例如订单表,订单编号加订单子编号才能确定一条记录的唯一性。
进一步规范一致性
你会发现通过标准化,关系数据库可以在更多方面解决一致性问题。
列被指定了字段类型,这就意味着你不能把字符型值输入到字段类型是数值型的列当中。
如上面举例的,经销商表和订单表通过经销商代码被关联起来了,你不能随意删除经销商表里面的记录,如果这个记录在订单表里面有被引用的话。
希望这个简单的例子能够帮助你们理解关系数据库,有个大体的概念,理解其中标准化的意思。
/Excel案例分享/
有问题联系探信小二:tanxinshuju
领取专属 10元无门槛券
私享最新 技术干货