半结构化数据中结构模式附着或相融于数据本身,数据自身就描述了其相应结构模式。具体来说,半结构化数据具有下述特征:数据结构自描述性,结构与数据相交融,在研究和应用中不需要区分“元数据”和“一般数据”(两者合二为一);数据结构描述的复杂性,结构难以纳入现有的各种描述框架,实际应用中不易进行清晰的理解与把握;数据结构描述的动态性。数据变化通常会导致结构模式变化,整体上具有动态的结构模式。
也因此,半结构化数据有以下5种:日志文件;XML 文档;JSON 文档;Email;HTML文档:
日志文件是用于记录系统操作事件的记录文件或文件集合,操作系统有操作系统日志文件,数据库系统有数据库系统日志文件;
XML文档是一种用于标记电子文件使其具有结构性的标记语言;
JSON文档是一种轻量级的数据交换格式的文档,易于人阅读和编写,同时也易于机器解析和生成,JSON采用完全独立于语言的文本格式,但是也使用了类似于 C 语言家族的习惯(包括 C,C++, C#, Java, JavaScript, Perl, Python 等);
电子邮件可以是文字、图像、声音等多种形式,同时,用户可以得到大量免费的新闻、专题邮件,并轻松实现轻松的信息搜索;
HTML文档是自描述的,数据的结构和内容混在一起,没有明显的区分,因此,HTML文档就属于半结构化数据。
半结构化数据的存储方式一般是化解为结构化数据。这种方法通常是对现有的信息进行粗略的统计整理,总结出信息所有的类别同时考虑系统真正关心的信息。对每一类别建立一个子表。比如上面提到个人简历我们可以建立教育情况子表、工作情况子表、党籍情况子表等等,并在主表中加入一个备注字段,将其它系统不关心的信息和一开始没有考虑到的信息保存在备注中。
这种方式的优点是查询统计比较方便。缺点则是不能适应数据的扩展,不能对扩展的信息进行检索,对项目设计阶段没有考虑到的同时又是系统关心的信息的存储不能很好的处理。
此外,半结构化数据的存储方式还有:用XML格式来组织并保存到CLOB字段中;用JSON格式来组织并保存到CLOB字段中。
XML很适合存储半结构化的数据,只需要将不同类别的信息保存在XML的不同的节点中就可以了。其优点是能够灵活的进行扩展,信息进行扩展时只要更改对应的DTD或者XSD;缺点是查询效率比较低,要借助XPATH来完成查询统计。
JSON非常适合存储半结构化的数据,只需要将不同类别的信息保存在JSON的不同的节点中就可以了。其优点是能够灵活的进行扩展,信息进行扩展时只要在应用程序来控制JSON对应的Schema;缺点是查询效率比较低,要通过数据库本身提供的JSON处理方法来完成查询统计。
最后,需要注意的是,半结构化数据是先有数据,再有结构。返回搜狐,查看更多