前面说到了直接安装mysql数据库,并没有提及数据库相关的少量基础知识,今天来补补基础。
数据库,顾名思义就是存储数据的仓库,可以简单了解为谷仓。不过这个数据仓是按肯定的结构存放程序数据的,目的的避免冗余,当程序需要数据时,会发起查询取回相应的数据。
Web程序中目前最常使用的依然是基于关系模型的数据库,如mysql,Oracle,sqlserver等等,这种数据库也叫做SQL数据库,由于是用结构化查询语言的。不过,近来也出现了文档数据库和键值对数据库,这两种数据库合称NoSQL数据库,如MongoDB。
SQL数据库:
关系数据库是把数据存储在表中的,表(二维表)模拟程序中的不同实体。表的列是固定的,称为字段(表示实体的数据属性),行是可以变的,称为记录。表中有个特殊的列,称为主键,它的值是表中各行的唯一标识符。表中还可以有外键,所谓外键就是引使用同一个表或者不同表中某行的主键。这样行之间的联络,就是关系,这就是关系型数据库的基础。关系数据库存储数据高效,而且避免了重复,但是,把数据分别存放在多个表中还是很复杂的,需要各种关联操作。
NoSQL数据库:
所有不遵循关系模型的数据库都可以统称为NoSQL数据库。NoSQL数据库一般用集合代替表,用文档代替记录。这样的方式是会使得联结变得困难的。它的特点是减少了表的数量,添加了数据的重复量,缺点是升级某数据会变得耗时,由于要跟新大量文档,优点就是可以没有复杂的关联快速查询。
两类数据库孰优孰劣呢?这个根据存在即正当,都是有各自存在优势与应使用场景的,要视具体需求选择具体的数据库。