分享

快乐工作,快乐学习,快乐生活我学数据库(2)--数据库系统的那点小九九

 昵称10504424 2013-02-25
其实呢小九九是小盘算小心思的意思,这里呢就另当别用了哈,我是用来指代数据库的特点的。在上一次的随笔当中也提到了数据管理技术发展到了数据库系统阶段是必然,是因为人工管理和文件系统管理已经不能适应时代发展提出的新要求。至于它的特点在随笔(1)中也略有提及,此次随笔的就详细的了解一下,与人工管理和文件系统相比数据库系统突出的几个特点。

  第一个呢就是它实现整体数据的结构化,这是数据库的主要特点之一,也是数据库系统与文件系统的本质区别。哎呀,又是一个难以理解的概念,还是先来了解一下什么是结构化吧。结构化在网上我没有找到专门解释什么是结构化。咱也不是学习了曲线解决问题的方法嘛,咱也试一试,不再专门找结构化的解释,但可以找其他的啊,比如结构化信息、结构化面试、结构化方法等等,那就试一试从这些概念当中找到结构化的解释。

  结构化信息是指信息经过分析后可分解成多个互相关联的组成部分,各组成部分间有明确的层次结构,其使用和维护通过数据库进行管理,并有一定的操作规范。

  结构化方法是一种传统的软件开发方法,它是由结构化分析、结构化设计和结构化程序设计三部分有机组合而成的。它的基本思想:把一个复杂问题的求解过程分阶段进行,而且这种分解是自顶向下,逐层分解,使得每个阶段处理的问题都控制在人们容易理解和处理的范围内。

  标准化面试又称结构化面试,它通过设计面试所涉及的内容、试题评分标准、评分 方法、分数等对面试者进行系统的结构化的面试。(注明:这里面还有结构化这个词呢,唉,头疼)

  从以上概念可以看出结构化就是关系清晰化,组成层次化,内容全面化的意思,我也来几个“化”,我是这样理解的,不强求任何人也这样理解,求同存异嘛。言归正传,查了查资料知道,文件系统中一个(组)文件基本上是对应一个应用程序,文件是面向应用的。不同的程序用到相同的数据时也必须建立各自的文件,也就是文件不是面向全局的。另外,文件系统中每个文件内部是结构的,是由记录构成,每个记录有属性组成,即记录也是结构的。但文件之间记录之间没有联系,是独立的。好了,到了给出整体数据结构化的概念的时候了。所谓整体数据结构化是指数据库中的数据不再仅仅针对某一个应用,而是面向全局;不仅数据内部是结构化的,而且整体也是结构化的,数据之间有联系。这时候是不是很清晰很容易理解了呢?不管你理解没理解,反正我理解了。

  之前说过由于人工管理和文件系统管理文件的缺陷,才出现了数据库系统。自然而然,数据库系统所弥补两者的缺陷的地方也就成了它的特点,就是数据共享性高,冗余度低,容易扩充。因为数据库系统的整体结构化的特点,数据可以被多个用户和应用程序使用,实现了共享,而共享又大大减少了数据冗余,节约了资源,而且还避免了数据之间的不兼容性和不一致性,试想,本是同根生,怎能不兼容?不一致性,就是同一数据却有着不同的值。采用人工管理和文件系统管理时,由于数据被重复存储,因为不同的应用而被修改,而一个程序只能修改自己的文件,那这样不就乱套了?在文件甲中叫张三,到了文件丙中就又叫了李四了,但却是同一个人!由于数据面向整个全局,数据都是结构化的,在多个应用共享使用的同时,可以增加新的应用,弹性岂不是很大?因为数据结构化,只需要重新选取不同子集的数据就可以满足新的需求,岂不是灵活性很大?

  数据独立性高也是一个特点,包括数据的物理独立性和逻辑独立性。这是由DBMS的二级映像功能保证的,这里先不讨论哈。物理独立性是指用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的,就是这个意思,用户程序不用管数据怎样存储,只需要处理数据的逻辑结构就行了,从存储上来说,如果物理存储改变时,用户程序也不用改变。逻辑独立性是指用户应用程序与数据库的逻辑结构是相互独立的。就是说数据的逻辑结构变了,用户程序也不用改变。逻辑结构就是数据之间的关系。

  数据由DBMS统一管理和控制,上边说了数据共享,共享会带来一个问题,我用的数据是否是正确的?我修改数据之后会不会丢失修改?这当然需要解决,但不用担心,DBMS全权处理。DBMS提供安全保护、完整性检查、并发控制以及数据库恢复。安全保护是保护数据,以防止不合法的使用造成数据泄漏和破坏。完整性检查是指数据的正确性、有效性和相容性。完整性检查将数据控制在有效的范围内,或保证数据之间满足一定的关系。当多个用户的并发进程同时存取、修改数据库时,可能会发生相互干扰而得到错误的结果或使得数据库的完整性遭到破坏,因此必须对多用户的并发操作加以控制和协调。恢复机制就不用说了,计算机系统总有出故障的时候,软件啊操作员啊或者其它的故意破坏都会影响数据的正确性,甚至会造成数据库部分或全部数据的丢失。所以呢恢复是必不可少的。

  在学习的过程中看到一个名词,叫粒度。对这个词不是很熟悉,所以从网上找了好多资料来理解这个词,但只是了解了一下计算机领域的解释。计算机领域中粒度指系统内存扩展增量的最小值。粒度问题是设计数据仓库的一个最重要方面。粒度是指数据仓库的数据单位中保存数据的细化或综合程度的级别。细化程度越高,粒度级就越小;相反,细化程度越低,粒度级就越大。数据的粒度一直是一个设计问题。在早期建立的操作型系统中,粒度是用于访问授权的。当详细的数据被更新时,几乎总是把它存放在最低粒度级上。但在数据仓库环境中,对粒度不作假设。在数据仓库环境中粒度之所以是主要的设计问题,是因为它深深地影响存放在数据仓库中的数据量的大小,同时影响数据仓库所能回答的查询类型。在数据仓库中的数据量大小与查询的详细程度之间要作出权衡。粒度在关系数据库中提到的不多,大都在数据仓库啊数据挖掘领域中出现。

  了解了数据库系统的特点,也该去纠结一下它的核心了,就是数据模型哦,下一次的随笔再写吧。这次就写到这了。

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章 更多