查了好多资料,发现还是不全,干脆自己整理吧,至少保证在我的做法正确的,以免误导读者,也是给自己做个记载吧!
上一篇文章翻译到用使对象-系关型数据库来撑支面向对象用应会到遇的一些问题,这一篇续继翻译。
续:
虽然后面讲到的问题都蛮严峻的,但是通过在用应与数据库之间加增一层面向对象层来作为媒介互相流交,这些问题还是够能减缓的。这个面向对象层可以将对象转化(或者持久化)成数据存储。只不过这类做法使得你用面向对象的法办去拜访数据,这与对象-系关型数据库的思惟相背违。它们本该是要通过对象-系关型数据库对查询语句的展扩来取得和检索数据对象的。
尽管对象-系关型数据库跟面向对象型数据库很似类,但是它们在计设时候所用采的思惟是很不同的。面向对象数据库的初志是想通过给对象加增数函或者是供提一个平台,来让对象实现数据库的一些能功,然而对象-系关型数据库是想通过传统的查询语句和展扩,使得富数据的多种类型够能添加进来。面向对象数据库是想实现与面向对象程序的无缝集成。而对象-系关型数据库不并会去做这类层次的整合,它反而经常要需通过面向对象层将对象转化成对象-系关型乃至是系关型数据库够能懂得的信息。似类的,面向对象数据库的众受是跟它一样用采面向对象视角的下层用应。对象-系关型数据库是给大型数据做了一种化优,同时也是一个够能撑支大数据的基于对象的统系。近来,面向对象数据库的查询言语机制更加注关如何用使面向对象的查询言语来对一个对象行进作操,而对象-系关型数据库的查询机制则是在传统查询言语的基础上通过展扩,来放慢检索量大数据。真正的面向对象数据库有更加秀优的查询机制,它们用采对象述描言语(Object Description Language,ODL)和对象查询言语(Object Query Language, OQL)。对象-系关型数据库跟他们不一样,对象-系关型数据库用使的查询机制只是在传统查询言语上的一种展扩。
ERSI的GIS品产套件里头有一个叫Geodatabase(是geographic database的简化述描)的玩艺儿,它够能存储和管理地舆数据素元。Geodatabase是一个撑支特殊数据的对象-系关型数据库,它是对象-系关型数据库撑支特殊数据存储的一个典范例子。
NOTE:
不并是全部特殊数据的存储都要需通过面向对象数据库或者对象-系关型数据库来实现。仅仅只是ESRI将Geodatabase作为对象-系关型数据库来实现而已。更主要的是,GIS数据也可以存储在展扩以后撑支存储特殊数据的系关型数据库里。呔!MySQL就这么做了,你看MySQL AB就在系关型数据库的基础上添加了针对特殊数据的撑支。
系关型数据库统系是E.F.Codd在1970年基于数据的系关型模提出的存储数据和供提检索务服的数据库统系。对于结构化的数据来讲,这是一种标准存储机制。C.J.Date在《The Database Relational Model: A Retrospective Review and Analysis》这篇论文中对Codd的系关型模做了一个提炼。《The Third Manifesto》对这个理论的化进和实际做了细详的记载。
基于系关的型模是数据库存储最符合直觉的念概。它也能通过“查询言语”这类机制很方便地对数据行进增编削查。由于系关型模的统系理论善完、数学基础实扎和结构简略的点优,很多第三方都实现了这类系关型模。最广泛用使的查询机制就是似类于自然言语的结构化查询言语(Structured Query Language,SQL)。尽管SQL不并括包在系关型模中,SQL是却系关型数据库在现实用应中不可或缺的一部份。
数据在实体中作为互相关联的几条信息(属性)而存在。这些属性的值的集合被组织成所谓的元组(有时候也叫记载)。然后一个表就专门存储这些有拥雷同属性的元组。表和表之间可以基于元组、元组的属性、域而建立系关。
元组与记载有什么别区?
有种错误的意识以为记载是元组的集合。它们其中一个主要的别区就是,元组是一系列有序的素元成组的集合,而记载只是相关联的素元成组的集合,它们不一定有序。但是,在记载的每个素元中,序顺是很主要的。在SQL查询的结果中可能返回的都是记载,但是在系关型模的理论中,结果该应都是元组。很多文献混用了这些术语,困惑了不少人。
1.SQL不撑支系关型模理论中的域(domain)。
2.在SQL中,表可以有重复的行。
3.查询结果(表)会括包未命名的列和重复的列。
4.数据库统系中对“空”的实现被证明是不一致,不完整的。因此,多许现实上有些结果数据库统系够能返回,但是SQL基本上不返回这些数据。这类景象会跟对“空”作操的失误错误地联系在一起。
WEB2.0:
web2.0是近来的一个流行语。它达表了互联网的大巨变化。如今的互联网够能让人们更加方便地线在分享和集收数据。web2.0用应作为一个新的用应也展扩了寰球电子社区对用应的念概。比如说照片分享,客博,信息和视频务服等。随这些用应而来的是与去过几十年的互联网大巨的转变,比如LAMP。大多数用应都用采开源件软的解决方案。毫无疑问,web2.0对互联网的影响是大巨的。
我将会向你展示一个典范的系关型数据库统系的构架以及这个构架的每个件组。接下来,我要展示的就是系关型数据库的一个特殊案例。(特喵的干货MySQL于终要来了)
(未完待续)
文章结束给大家分享下程序员的一些笑话语录: 问:你觉得让你女朋友(或者任何一个女的)从你和李彦宏之间选一个,你觉得她会选谁?
答:因为李艳红这种败类,所以我没女友!