用户访问的过程中会产生各种各样的数据,为了让网站能够正常的运行,并且高效的让用户精准的看到相应的数据,我们就会在不同业务功能场景中采用各种各样的数据类型来进行承载。
数据分类
用户访问的过程中会产生各种各样的数据,为了让网站能够正常的运行,并且高效的让用户精准的看到相应的数据,我们就会在不同业务功能场景中采用各种各样的数据类型来进行承载。
按照我们的项目场景落地的实现方式分为三种类型:
- 结构化数据
- 半结构化数据
- 非结构化数据
结构化数据
所谓的结构化数据,指的是数据的表现样式有一定的(横竖)结构,一般情况下,这种数据是以二维表的方式来实现数据的存储和逻辑关系的表达。
-- 数据以行为单位,一行数据表示一个实体的信息,每一行数据的属性是相同的。
这些数据在存储的时候,为了实现数据的统一存储,往往对数据存储的格式和长度规范都进行了一定程度的限制,这些数据的具体存储主要是以关系型数据库软件来实现。
结构化数据,是指由二维表结构来逻辑表达和实现的数据,严格地遵循数据格式与长度规范,主要通过关系型数据库进行存储和管理。
结构化数据的存储和排列是很有规律的,所以这些 数据在查询或修改等操作的时候非常方便,但是由于数据在存储的时候,有一定的关联关系,所以在数据扩充属性或者收缩属性的时候不太方便 -- 扩展性不好。
数据在存储的过程中本身是有强关联的,在储存数据本身有相应的数据结构来进行限制,两个不同业务场景之中的数据,一旦他们之间有相应关联的话,我们会基于数据存储软件本身的特性将这些数据关联在一起。对于数据完整的整体来说他们之间是强关联的有相应的结构。
结构化数据表现样式如下:
ID | 姓名 | 性别 | 电话 | 籍贯 |
---|---|---|---|---|
1 | 张三 | 男 | 13382261344 | 山西 |
2 | 李四 | 女 | 18612388412 | 山东 |
对于某一条数据来说,它的内部有相应数据存储格式,对于数据整体来说由大量数据整合一起。
对于行来说是由多个具体的数据组合在一起的具有特殊的含义,对于每一列来说对数据的属性、长度
是否可以为空等等都有相应的限制。可以通过查看表结构查看相应的属性。如 mysql 中 desc user;
半结构化数据
所谓的半结构化数据,应用数据使用的时候有一定的关联、层次, 但是这些数据在存储的时候没有像关系型数据有数据属性、长度、是 否为空、数据唯一性的限制。但在存储的时候有一定业务关联。
半结构化数据的存储一般是以文件的方式来实现的,比较常见的文件样式有:json、XML等。
在json存储过程中,会构造字典然后按照固定格式进行存储里面的数据自由获取。
Json数据
{
"status": 200,
"message": {
"person": [
{
"id": 1,
"name": "张三",
"gender": "男",
"address": {
"Country": "中国",
"Province": "北京市",
"city": "北京市",
"district": "丰台区",
"town": "五里店"
},
},
],
}
}
数据关系
[]中括号代表的是一个数组或列表
{}大括号代表的是一个数据对象
双引号“”表示的是属性值
冒号:代表的是前后之间的关系,冒号前面是属性的名称,后面是属性的值
XML 数据
<?xml version="1.0" encoding="gb2312"?>
<namelist>
<name1>
<ID>01</ID>
<name>张三</name>
<sex>男</sex>
<address>北京市市丰台区五里店</address>
</name1>
<namelist>
数据关系
存储格式是以节点为主,一个节点衍生出另外的子节点
每个节点遵循html的风格,但是里面的标签属性是我们自定义的。
XML 主要用于测试,如测试网页功能
将成功的数据和不成功的数据全部罗列出来,以XML的样式单独实现,在测试的时候基于对应的测试软件框架加载定制好的测试数据以自动化的方式,把所有的功能全部测试出来。
测试的数据仅仅是为了功能测试时使用的,没有必要存储下来,所以我们就用简单的Html场景当中的数据单独存储xml格式来进行存储。
数据本身存储没有强关联,但是应用的时候有一定的关联结构。这种数据被称之为半结构化数据。