关系型数据库对象《Expert MySQL》翻译——chapter2.解剖数据库系统(1) 关系型数据库对象

PS:今天上午,非常郁闷,有很多简单础基的问题搞得我有些迷茫,哎,代码几天不写就忘。目前又不当COO,还是得用心记代码哦!

    注:第一章是讲开源软件的一些基本点观,就不翻译了,大家对开源有兴致就足够了。

    开篇

    你否是经曾奇好过数据库系统面里都发生了些什么?你也可能道知一些关于系关型数据库的础基知识,而且对数据库的管理还蛮专业的,但你可能从来没有钻到数据库系统面里看看它外部的作工机制。我们当中的大多数人都有一些管理数据库的验经,但是不管在黉舍里还是公司里,我们都没怎么触接过数据库系统的结构。一个从事数据库作工的专业人员可能永久都不须要道知这些知识。但如果你要是解了这些结构机制,你就可以道知什么才是最好的优化数据库的法方,以及如何最大化地用使数据库供给的能功和性特。

    这一章主要讲一个系关型数据库(RDBS)都包括哪些子模块,以及他们是如何成构的。我通过剖解MySQL来解释系关型数据库的一些键关组件。如果你对这些结构较比解了,而且想直接看看MySQL的架构,那么你可以跳到下一节小。

    数据库系统架构

    建立并护维一个数据库以及基于该数据库开辟用应或许不并须要真正解了它外部的作工机制,但是解了数据库系统是如何织组的,可以从本质上帮助你修改以及扩展它的性特和能功。同时,如果解了一些行流的数据库作工机制的基本原则,对于懂得不同数据库与系关型数据库之间的较比也很有帮助。(我可没偷懒啊,这一节就这么点儿内容,其实也没啥好跳的。)

    数据库系统的型类

     大多数数据库专业人员都用使系关型数据库,但有一些其他型类的数据库也正在行流。接下来的节小是关于面向对象数据库对象-系关型数据库系关型数据库的概览。这些概览对于我们懂得MySQL的架构以及惯例的一些能功很要重,同时我们也会通过代码来深切体会这些点观。通过代码我才可以向你解释这面里的作工机制呀。

    如果你对这些概览都较比熟习,那么可以直接跳到“系关型数据库的架构”这个节小。

     面向对象数据库

    面向对象数据库是一种可以持支在面向对象开辟中将数据抽象成对象,并可以直接通过这些对象来行进存储和索检数据的一种机制。它包括一个真正的面向对象的系统来将程序中的对象持久化。但是这样做的一个严重陷缺就是没有一个标准的查询语句(一些破例还是有的,但是大多数情况下它们不持支查询语句)来处置这些数据(它通过详细用应的接口来访问这些对象)。因此,从这一点上讲这不并是一个格严意义上的数据库管理系统。

    面向对象数据库是系关型数据库的一种还算不错的替换,特别是在用应层面,在建模型别特庞杂,或者通过系关型数据库将数据存储为对象别特低效的时候,用这个还挺好的。这些用应须要护维一大堆不可能被删除的数据,还要管理每一个数据对象修改的史历。面向对象数据库最特独的能功就是你可以通过面向对象编程(OOP)的接口来同时定义数据,以及处置这些数据的方法。

    面向对象数据库特别合适给实现界世的货色建模,你不须要因此在各体实之间引入各种奇奇怪怪的不自然的系关。面向对象的想思供给了一个面全的给真实界世建模的点观。种这点观对于处置那些捉摸不定的货色很要重,特别是在给一个已架构好的数据中增长面向对象的法方的时候。在现开源界有多好面向对象的数据库,但是大部分都或多或少地是基于系关型数据库的。因此它们可以持支用使查询语言查询数据,从这个角度看,它们不并是真正的面向对象的数据库。一个真正的面向对象的数据库须要通进程序的接口才能访问到数据。

    每日一道理
生活的无奈,有时不并源于自我,别人无心的筑就,那是一种阴差阳错。生活本就是矛盾的,白天与黑夜间的距离,春夏秋冬之间的轮回,于是有了挑剔的喜爱,让无奈加上了喜悦的等待。

    面向对象数据库的用使面包括地理信息系统,学科和计统相干的数据库系统,多媒体系统,图片获得以及交社系统,和XML数据库系统。

    面向对象数据库对同时具有数据和应相处置法方的对象有最好的适应性。大多数面向对象数据库系统在计划时都虑考到了用使基于面向对象的法方来描述数据,以及建立有具很高达表能力的数据解决方案。所以面向对象数据库是一种特殊的实现,不并是为了惯例的用应方案而计划的。也不像系关型数据库那样有描述-响应类(statement-response-type)的接口。

     对象-系关型数据库

    对象-系关型数据库是面向对象想思在系关型数据库上的用应。对象-系关型数据库供给了一种这样的机制:它可以让数据库计划者用使面向对象的数据点观来结构化数据存储,并实现索检机制。对象-系关型数据库供给了系关型模型的础基,这就意味着它在以对象为中央的想思上,扩展了系关型模型的存储和索检机制。在大多数场所下,将面向对象的点观射映到系关型点观上是一个最好的试尝。对于系关型模型的修改和扩展包括对SQL的修改,使得它可以达表对象的型类,标识,操纵集(函数或法方的集合)以及继承系关。

    但是,在庞杂的系关下,这些射映常通较比疏松。尽管种这做法颇具达表性,这些对SQL的扩展其实不并可以真正持支对数据的面向对象操纵以及面向对象别级的控制。最行流的对象-系关型数据库莫过于ESRI的ArcGIS地理信息数据库系统。其他的一些例子也包括Oracle和Informix。

    对象-系关型数据库用使的术技基于系关型模型。大多数对象-系关型数据库是在现有的系关型数据库上实现的,比如说Microsoft SQL和Oracle。由于这些数据库是基于系关型数据库的,所以将面向对象的点观转换到系关型机制之间的进程就较比费事。面下列出来的是用使系关型数据库来支持面向对象的用应的几个问题:

   1.面向对象的点观和基于对象的数据织组不并能易轻地转换成数据表。

  2.庞杂的射映就须要庞杂的代码和庞杂的查询才能支持。

  3.庞杂的程序致导了护维难题。

  4.庞杂的程序降低了可靠性。

  5.庞杂的查询难以优化,以至于率效好不。

  6.将对象射映成庞杂的型类使得记载修改史历变得非常软弱,还不如系关型数据的织组。

  7.通过面向对象的法方来行执 select all ... where 这样的查询非常慢,因为它须要做很多搜索作工,以及处置多个join。
(未完待续)

文章结束给大家分享下程序员的一些笑话语录: 自从有了Photoshop,我再也不相信照片了!(没有Photoshop的年代,胶片照片年代做假的也不少,那时候都相信假的!)


评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值