欢迎投稿

今日深度:

一步一步设计你的数据库之数据库设计的重要性(3)

 

在我们一头扎进数据库设计之前,我们先了解一下除了关系型数据库之外的数据存储方式

平面文件Flat File)

包括以.txt和.ini结尾的文件。

eg: 一个.ini文件的内容:

  1. [WebSites]  
  2. MyBlog=http://www.cnblogs.com/DBFocus  
  3.  
  4. [Directorys]  
  5. Image=E:\DBFocus Project\Img  
  6. Text=E:\DBFocus Project\Documents  
  7. Data=E:\DBFocus Project\DB 

优点:

文件的存储形式非常简单,普通的编辑器都能对其进行打开、修改

缺点:

无法支持复杂的查询

没有任何验证功能

对平面文件中间的内容进行插入、删除操作其实是重新生成了一个新文件

适用场景:

存放小量,修改不频繁的数据,如应用配置信息

Windows注册表

错误的修改Windows注册表会引起系统的紊乱,故不建议把很多数据存放在注册表中。

Windows注册表为树形结构,存放着一些系统配置信息和应用配置信息。

通过把不同的配置存放在注册表的不同分支上,使得应用程序公共配置信息与用户个人配置信息分离。

eg:某文档版本管理系统,能通过配置与本主机上安装的文件比较器建立关联进行文档比较。这是一个公共配置信息,文件比较器路径可以存放在注册表的HKEY_LOCAL_MACHINE\SOFTWARE分支下。

同时该文档版本管理系统能记录用户最近打开的10个文档路径。这是用户个人配置信息,对于不同的Windows用户最近打开的10个文档可以不同,这些配置信息可存放在注册表的HKEY_CURRENT_USER\Software分支下。

Excel表单Spreadsheets)

优点:

Excel 非常普及,用户对于Spreadsheet的表现形式非常熟悉

可以进行简单统计,方便出各种图表

缺点:

不适用于许多Spreadsheet之间关系复杂的情况

无法应对复杂查询

数据验证功能弱

适用场景:

数据量不是非常大的办公自动化环境

XML

XML是一种半结构化的数据。相比于超文本标记语言HTML),其标签是可以自行定义的,即可扩展的。

eg:一个XML文件内容

-----------------------------------------------------

  1. <?xml version=”1.0” encoding=”UTF-8” ?> 
  2.  
  3. <ClassSchedule> 
  4.  
  5.      <Class Name=“Psychology” Room=”Field 3”> 
  6.  
  7.           <Instructor>Richard Storm</Instructor> 
  8.  
  9.           <Students> 
  10.  
  11.                <Student> 
  12.  
  13.                      <FirstName>Ben</FirstName> 
  14.  
  15.                      <LastName>Breaker</LastName> 
  16.  
  17.                </Student> 
  18.  
  19.                <Student> 
  20.  
  21.                      <FirstName>Carol</FirstName> 
  22.  
  23.                      <LastName>Enflame</LastName> 
  24.  
  25.                      <NickName>Candy</NichName> 
  26.  
  27.           </Students> 
  28.  
  29.      </Class> 
  30.  
  31. </ClassSchedule> 

-----------------------------------------------------

XML文件有几个特点

首先,XML标签要求严格对应,且不能出现交错的现象。

其次,XML文件必须有一个根节点,该节点包含所有其他元素。

第三,同级别的不同节点内不必包含相同的元素,如上例中第二个学生Carol有一个特别的节点NickName。这个特性使得在某些场景中XML比关系数据库更能应对变化。

优点:

缺点:

适用场景:

适合存放数据量不大,具有层次型结构的数据,如树形配置信息

NoSQL数据库

非关系型数据库我接触的不是很多,除了给出一些产品名称之外不做很多展开。园子里已有一些文章,本文最后也给出了链接供大家学习、研究。

1. Key-Value数据库

Redis, Tokyo Cabinet, Flare

2. 面向文档的数据库

MongoDB, CouchDB

3. 面向分布式计算的数据库

Cassandra, Voldemort

这几年NoSQL非常热。我认为NoSQL并不是“银弹”,在某些SNS应用场景中NoSQL显示了其优越性,但在如金融行业等对数据的一致性、完整性、可用性、事务性高要求的场景下,现在的NoSQL就未必适用。我们应充分分析应用的需求,非常谨慎地选择技术和产品。


www.htsjk.Com true http://www.htsjk.com/shujukujc/18885.html NewsArticle 在我们一头扎进数据库设计之前,我们先了解一下除了关系型数据库之外的 数据存储方式 。 平面文件Flat File) 包括以.txt和.ini结尾的文件。 eg: 一个.in...
评论暂时关闭