文档库 最新最全的文档下载
当前位置:文档库 › 十四对象间关系模型的实现

十四对象间关系模型的实现

十四对象间关系模型的实现
十四对象间关系模型的实现

十四.对象间关系模型的实现

C++语言支持对象模型中的的包容与继承(派生)关系,但对关联关系没有专用的语法支持。

⒈包容关系

①不透明包容

例:

#include

class A

{

int i;

public:

A(){i=0;}

A(int x):i(x){}

int operator!(){return i;}

};

class B

{

int j;

A *p;

public:

B(int x):j(x){p=new A[x];}

int operator!(){return j;}

void operator~(){for(int i=0;i

};

void main()

{

B b(10);

cout<

~b;

}

②透明包容

例:向对象单向链表中插入已有的对象

#include

class A

{

int i;

A *next;

public:

A(int x,A* s=NULL):i(x),next(s){}

A* GetNext(){return next;}

void SetNext(A* s){next=s;}

int operator!(){return i;}

};

class B

{

int j;

A *p;

public:

B(int x,A* s=NULL):j(x),p(s){}

void Insert(A* s)

{

if(!p)p=s;

else

{

A* temp=p;

while(temp->GetNext())temp=temp->GetNext();

temp->SetNext(s);

}

}

int operator!(){return j;}

void operator~()

{

A* temp=p;

while(temp)

{

cout<

temp=temp->GetNext();

}

}

};

void main()

{

A a1(0),a2(1),a3(2);

B b(10,&a1);

b.Insert(&a2);

b.Insert(&a3);

!a1;

~b;

cin.get();

}

③类模板

当被包容的类的类型不确定时,可以用类模板来声明包容关系。其声明格式为:

template

class 体声明;

类模板参数表内可以声明多个模板参数,但若其内部存在的模板参是另外一个亦被声明为类模板的类,则务使之自左向右排放。

例1:

template

class A

{

T i;

public:

A(T x):i(x){}

};

例2:

#include

template

class Array

T *ar;

public:

Array(int c){ar=new T[c];}

void init(int n,T x){ar[n]=x;}

T& operator[](int n){return ar[n];}

};

void main()

{

Array array(5);

cout<<"Please input every element's value:"<

for(int i=0;i<5;i++)

{

cout<<"No."<

cin>>array[i];

}

}

⒉继承(派生)关系

在C++语言中有专门的语句支持继承(派生)关系。其声明的语法格式为:

public 类名i

class 类名1:{成员声明};

private 类名k

例:

class A

{

protected:

int i;

public:

A(int x):i(x){}

};

class B:public A

int j;

public:

B(int x,int y):j(x),A(y){}

};

void main()

{

B b(1,2);

}

使用继承时的一些规则:

①基类成员被继承的可能性

·public区的成员可以被部分或全部的继承;

·protected区的成员在本类对象中的功效与同类private区的成员相同且可以被部分或全部的继承;

·private区的成员不可能被继承;

②两种继承方式的作用

由于存在上述两种继承方式便可能导致派生类中彻底失去对其内部基类成员的存取权利:

基类A

↓以private方式继承

派生类B

↓以任何方式继承

派生类C (失去对其基类A的成员的存取权利)

③派生类不继承基类的友元

④派生类对象中基类成员的初始化

派生类对象在自身初始化时必须通过成员初始化表对其继承的基类对象进行初始化,且此种初始化要先于派生类对象本身的初始化。

例:

class A

{

protected:

int i;

public:

A(int x):i(x){}

};

class B:public A

{

int j;

public:

B(int x,int y):j(x),A(y){}

};

void main()

{

B b(1,2);

}

⑤成员覆盖( Member overridden)

若在派生类内声明了与基类同名的成员且又同时继承了基类的同名成员的情景称为成员覆盖。在非多态的条件下对被覆盖的成员的引用是通过对象作用域来确定的。

例:

class A

{

protected:

int i;

public:

A(int x=0):i(x){}

int operator!(){return i;}

};

class B:public A

{

protected:

int i;

public:

B(int x=0,int y=0):i(x),A(y){}

int operator!(){return i;}

int operator~(){return !*(A*)this;}

};

void main()

{

B b(1,2);

cout<

cout<<~b<

cin.get();

}

⑥多重派生的实现

C++语法支持多重派生技术。其声明格式为:

public 类名i,public 类名j,…

class 类名1:{成员声明};

private 类名k,private类名m,…

同单一派生一样,多重派生也要遵守上述规则或约定。

例:

class A

{

int i;

public:

A(int x):i(x){}

void operator!(){cout<

};

class B

{

protected:

int i;

public:

B(int x):i(x){}

};

class C:public A,public B

{

int i;

public:

C(int x,int y,int z):i(x),B(y),A(z){}

void operator!(){cout<

void main()

{

C c(1,2,3);

!c;

}

⑦派生类对象与基类的对象成员之间的互相提取

仅在以public方式继承的情况下才能进行这种对象成员间相互提取。可能存在的两种情况:

·已知一个基类对象而要提取其全部成员赋予另一个派生类对象;·已知一个派生类对象而要提取其内含的基类对象的全部成员赋予另

一个基类对象;

例1:

#include

class A

{

int i;

public:

A(int x):i(x){}

void Increase_One(){i++;}

void operator!(){cout<<"i="<

};

class B:public A

{

int l;

public:

B():A(0){l=0;Increase_One();}

void operator!(){!*(A*)this;cout<<"L="<

void main()

{ //最后的显示结果为:

A a(1); //L=1,L=6618680

B *b0=(B*)&a,&b1=(B&)a; //I=1,L=6618680

!*b0;!b1; //其中的L值是不确定的

cin.get();

}

这样提取得到的派生类对象内的本类作用域实际上根本不存在。因而要谨慎应用。

例2:

#include

class A

{

int i;

public:

A(int x):i(x){}

void operator!(){cout<<"I="<

void Increase_One(){i++;}

};

class B:public A

{

int l;

public:

B(int n=0):A(0),l(n){Increase_One();}

void operator!(){!*(A*)this;cout<<"L="<

void main()

{

B b1(5); //最后的显示结果为:

A a1=b1; // I=1

A* a2=new B(4); // I=1

A &a3=b1,*a4=&b1; // I=1

!a1;!*a2;!a3;!*a4; // I=1

}

⒊多态(Polymorphism)与抽象类(Abstract Classes)

①虚拟函数(virtual function)

鉴于基类是反映一个类家族全貌的Supclass,在其派生出的各个派生类对象中必然存在基类的成员(函数)。若能使用基类的指针(或引用)指向其派生类对象,便可以利用对象当前作用域的限制实现“以不变应万变”或者“以变应变”的设想了。C++语言将实现此种设想的技术方法叫做虚拟函数。推论:虚拟函数应当是基类成员声明的一种特殊形式。虚拟函数的声明格式为:

virtual 类型函数声明体;

使用虚拟函数的具体语法要领如下:

·虚拟成员函数必须在基类中予以声明;

·虚拟成员函数可以在派生类中被覆盖(重写);

·引用派生类中重写的虚拟成员函数只能通过基类的指针或引用实现;

·若派生类中没有再定义基类中已声明的虚拟成员函数,则指向该类的对象的指针或引用名调用该虚拟成员函数时总是调用距离其最近的一个基类中的虚拟成员函数。

·构造函数不得声明为虚拟;

例:

#include

class A

{

protected:

int i;

public:

A(int x):i(x){}

virtual void operator!(){cout<<"I="<

};

class B:public A

{

int l;

public:

B(int n=0):A(0),l(n){i++;}

void operator!(){cout<<"I="<

从E-R模型到关系数据模型

从E-R模型到关系数据模型 教学内容分析 本节课是高中信息技术(选修4)《数据管理技术》第二章2.2“建立关系数据模型”的内容。具体内容是介绍了从E-R模型到关系数据模型的转换,即建立数据模型。在数据库技术中有多种数据模型,本节重点学习关系数据模型,并初步介绍了层次和网状模型。 教学对象分析 在前面的学习中,学生已经研究过在实行数据管理的时候需要管理哪些数据,这些数据在用户活动中或数据管理过程存在哪些联系,学习了如何把信息世界的数据通过概念建模常用方式E-R实体联系图进行抽象。学生应该非常迫切想知道怎样把信息世界的东西转化为机器世界的东西,这其中的基本思想和方法是怎样的。 教学模式 本节通过“中小学信息技术大赛”的具体实例,详细讲述了把E-R模型转换为关系数据模型的方法。接着再通过一个练习例子作为从E-R模型到关系数据模型转换的任务,加深学生对主要内容的把握。最后还通过一些简单的例子初步介绍了数据库技术发展过程中经常提到的其他两种数据模型:层次模型、网状模型。 教学目标 (1) 知识与技能 掌握讲实体—联系图转换为关系数据模型的方法。 理解层次和网状数据模型的基本概念。 (2) 过程与方法 通过学生自己思考实现一个E-R图转化为关系数据模型的小组活动,让学生感悟有关的思想与方法,并在教师的引导下把规则总结出来,培养学生的学习兴趣和树立学习信心。 (3) 情感态度与价值观 培养学生的组织合作性,以及互相协助、交流的意识。 培养学生的学习兴趣和树立学习信心。 教学重点、难点、疑点 (1)教学重点:掌握从E-R实体联系模型到关系数据模型的转换方法。其中,在学习将实体集之间的联系转换为一个二维表时需要强调经过转换后实体间的联系在二维表中如何体现出来,是否能满足进行数据管理(如数据查询)的需要。理解层次和网状数据模型的基本概念及其基本特点。 (2)教学难点:如何恰当地将一个E-R模型转换成关系数据模型。理解层次和网状数据模型的基本概念和基本特点。让学生明白这些数据模型的建立思想主要是考虑如何把信息世界的概念模型存储在计算机中,模型的表示方式实际上是机器实现方式的一种逻辑结构的体现。 (3)教学疑点:对于教材里的关于层次模型的联系只能是“一对多”的说法是否要补充完整(例如要说明层次模型的节点联系的表示方式、层次模型怎样将多对多联系分解成一对多联系来表示等等相关内容)。

数据库系统2-1:关系模型及其描述

数据库系统2-1:关系模型及其描述 关系数据库以其坚实的数学理论基础、严密的逻辑结构和简单明了的表示方式深得广大用户的青睐,目前已经占据数据库系统的市场,成为应用最为广泛的数据处理工具。 数据模型主要描述两类信息:一是实体;二是实体之间的联系。在层次、网状模型中,实体之间的联系是通过指针来实现的,而在关系模型中,实体之间的联系是通过二维表中公共属性值建立起来的联系来实现的。 关系数据库系统是支持关系数据模型的数据库系统,即以关系模型为基础而构建起来的数据库系统。关系数据模型由关系数据结构、关系操作集合和关系完整性约束三部分组成。 1.关系数据结构 在关系模型中,现实世界中的实体和实体之间的联系都用单一的关系来描述,这些关系的逻辑结构非常简单,就象人们日常所熟悉的二维表。 2.关系操作 关系模型是集合操作方式,操作对象和结果都是集合,称为“一次一集合”。 关系操作有三种不同的描述方式:关系代数、关系演算和结构化查询语言SQL。 关系代数是一种抽象的查询语言,它是用集合论中的关系运算来表达查询要求的方式。关系演算是以数理逻辑中的谓词演算来表达查询要求的方式,它又可分为元组关系演算和域关系演算。若在关系演算中,谓词变元的基本对象是元组变量,则称之为元组关系演算;若谓词变元的基本对象是域变量,则称之为域关系演算。 SQL是介于关系代数和关系演算之间的查询语言。这种语言除具有数据查询功能之外,还具有数据定义DDL和数据控制DCL等功能,是集数据查询、数据定义、数据操纵、数据控制于一体的关系数据语言。是关系数据库的标准语言。 3.关系的完整性约束 数据的完整性约束是指在给定的数据模型中,数据及其联系所遵守的一组通用的完整性规则,以确保数据库中数据的一致性和正确性。在关系模型中允许定义三类完整性约束:实体完整性、参照完整性和用户自定义完整性。 【

对象关系在模型中的实现案例

对象关系在模型中的实现案例 —基础软件部吴春云一、案例介绍: 在一个项目中,存在多个业务对象,各个业务对象间存在各种关系。从结构上来看,对象关系可以分为依赖、继承、关联、聚合、组合,从数量上来看,对象关系可以分为一对一、一对多、多对多。本案例主要介绍如何在开发中通过代码来表示对象间的各种关系,并基于这种关系进行前后端数据交互及持久化。 二、关系的概念及实现: 1.结构关系 1.1继承 继承指的是一个类(称为子类、子接口)继承另外的一个类(称为父类、父接口)的功能,并可以增加它自己的新功能的能力。所以继承关系,确切的说是类与类之间的关系,但是对象又是类的实例,所以就这个角度理解为对象之间的关系,例如父与子的关系,动物与狗的关系,汽车与大众的关系等。 工作流结构部分的实体类:SysNode(环节)、SysTransactNode (办理环节)、SysActivityNode(活动环节)、SysDecisionNode(决策环节)应用了这种继承关系,使得子类拥有了父类环节中的属性,但子类本身代码大大简化,结构清晰。 public class SysTransactNode extends SysNode{}

public class SysActivityNode extends SysTransactNode{} public class SysDecisionNode extends SysTransactNode{} 1.2依赖 依赖就是一个对象A使用到了另一个对象B,而这种使用关系是具有偶然性的、临时性的、非常弱的,但是对象B的变化会影响到对象A。比如某人要过河,需要借用一条船,此时某人与一条船之间的关系就是依赖。表现在代码层面,一般指由局部变量、返回值建立的对于其他对象的调用关系,如对象B作为参数被对象A在某个方法中使用。 1.3关联 关联体现的是两个类之间语义级别的一种强依赖关系,这种关系比依赖更强、不存在依赖关系的偶然性、关系也不是临时性的,一般是长期性的,而且双方的关系一般是平等的。关联可以是单向、双向的。表现在代码层面,为被关联类B以类的属性形式出现在关联类A中,也可能是关联类A引用了一个类型为被关联类B的全局变量。 1.4聚合 聚合是关联关系的一种特例,它体现的是整体与部分的关系,即has-a的关系。此时整体与部分之间是可分离的,它们可以具有各自的生命周期,部分可以属于多个整体对象,为多个整体对象共享,比如计算机与CPU、公司与员工的关系等。表现在代码层面,和关联关系是一致的,只能从语义级别来区分。 1.5组合 组合也是关联关系的一种特例,它体现的是一种contains-a的

数据与模型的关系

计量经济学模型对数据依赖性的探索 一、引言 在计量经济学模型的应用研究中,经常有人提出类似于“鸡生蛋还是蛋生鸡”的问题,即究竟是根据数据设定模型.还是根据模型选择数据?不同的是.鸡与蛋的关系问题是没有答案的,而模型与数据的关系问题是有答案的。表示计量经济学应用模型的类型依赖于表征研究对象状态的数 据类型,不同类型的数据。必须选择不同类型的模型。在模型类型确定之后,依据对研究对象的系统动力学关系的分析,设定总体模型。在这个过程中,必须对在经济理论指导下所分析的系统动力学关系进行统计必要性检验。当总体模型被正确设定后,接下来的任务是进行模型参数的估计,毫无疑问,模型估计必须得到样本数据的支持,模型估计结果依赖于样本数据的质量。模型经过估计和检验后进人应用,根据应用目的的不同,需要不同的数据支持,例如用于预测,必须首先给出预测期的外生变量的数据,这就是所表示的步骤。 计量经济学模型对数据的依赖性的一个人所共知的例 子是关于我国广义技术进步对经济增长的贡献的测算。国内外许多学者进行了经验研究。结果差异极大,技术进步对增

长的贡献率.最低的估计为,最高估计达到%。甚至所建立的模型都是—型总量生产函数模型.选择的投入要素都是资本和劳动.甚至选择的样本区间也是相同的.数据都来自于中国统计年鉴,仍然会得到不同的结论。为什么?关键是不同的研究者对资本投入的数据或者未进行任何处理,或者进行了不同方式的处理,以消除价格因素的影响最近几年.我们对农户借贷需求进行了较为广泛的调查,采集了青海、新疆、甘肃、河北、黑龙江、吉林、山西、湖南、湖北、河南、安徽、江西、陕西、山东、辽宁、内蒙古等省区的个县、多个村庄的家农户的数据。其中,在一年中发生借贷行为的农户占.%(包括向亲友借贷),为户,其余户没有发生借贷。对于这一宝贵的数据资源.当然要充分利用。于是。为了对农户借贷行为进行因素分析.不同的研究者建立了不同的计量经济学模型。 上述例子从不同的角度反映了计量经济学模型与数据 之间的关系。前者反映了计量经济学模型估计结果对数据质量的依赖性:后者反映了计量经济学模型类型对数据类型的依赖性。正如李子奈()指出的.在我国计量经济学应用研究广泛开展的今天,问题和错误也普遍存在。重要的原因之一是对计量经济学模型方法论基础缺乏正确的理解,其中包括计量经济学模型的数据基础问题下面将着重就当前计量经

王珊《数据库系统概论》课后习题(对象关系数据库系统)【圣才出品】

第15章对象关系数据库系统 1.定义并解释OO模型中以下核心概念:对象与对象标识、封装、类、类层次。 答:(1)对象 是由一组数据结构和在这组数据结构上的操作的程序代码封装起来的基本单位。对象通常与实际领域的实体对应。一个对象包括属性集合和方法集合。 (2)对象标识OID 面向对象数据库中的每个对象都有一个唯一的不变的标识称为对象标识(OID)。对象标识具有永久持久性,即一个对象一经产生系统就会赋于一个在全系统中唯一的对象标识符,直到它被删除。 (3)封装 每一个对象是其状态与行为的封装,其中状态是该对象一系列属性值的集合,而行为是在对象状态上操作的集合,操作也称为方法。 (4)类 共享同样属性和方法集的所有对象构成了一个对象类简称类。 (5)类层次 在一个面向对象数据库模式中,可以定义一个类(如C1)的子类(如C2),类C1称为类C2的超类(或父类)。子类(如C2)还可以再定义子类(如C3)。这样,面向对象数据库模式的一组类形成了一个有限的层次结构,称为类层次。 2.OO模型中对象标识与关系模型中的“码”有什么区别?

答:对象标识具有永久持久性。一个对象一经产生,系统就给它赋予一个在全系统中惟一的对象标识符,直到它被删除。对象标识是由系统统一分配的,用户不能对对象标识符进行修改。对象标识是稳定的,独立于值的,它不会因为对象中某个值的修改而改变。 关系模型中的“码”是值标识,不具有永久持久性,只具有程序内持久性。码是由用户建立的,用来区分关系的不同元组。 3.什么是单继承?什么是多重继承?继承性有什么优点? 答:(1)单继承是指一个子类只能继承一个超类的特性(包括属性、方法和消息);多重继承是指一个子类能继承多个超类的特性。 (2)继承性的优点有以下两点: ①它是建模的有力工具,提供了对现实世界简明而精确的描述; ②它提供了信息重用机制。子类可以继承超类的特性,可以避免许多重复定义。

数据库系统原理与设计(第2版) 万常选版 第2章 关系模型与关系代数 课后答案(完整资料).doc

【最新整理,下载后即可编辑】 3.简述如下概念,并说明它们之间的联系与区别:。 (1)域,笛卡尔积,关系,元组,属性 答:域:域是一组具有相同数据类型的值的集合。 笛卡尔积:给定一组域D1,D2,…,Dn,这些域中可以有相同的。这组域的笛卡尔积为:D1×D2×…×Dn={(d1,d2,…,dn)|di?Di,i=1,2,…,n }其中每一个元素(d1,d2,…,dn)叫作一个n元组(n-tuple)或简称元组(Tuple)。元素中的每一个值di叫作一个分量(Component)。 关系:在域D1,D2,…,Dn上笛卡尔积D1×D2×…×Dn的子集称为关系,表示为 R(D1,D2,…,Dn) 元组:关系中的每个元素是关系中的元组。 属性:关系也是一个二维表,表的每行对应一个元组,表的每列对应一个域。由于域可 以相同,为了加以区分,必须对每列起一个名字,称为属性(Attribute)。 (2)超码,主码,候选码,外码 答:超码:对于关系r的一个或多个属性的集合A,如果属性集A可以唯一地标识关系r中的一个元组,则称属性集A为关系r的一个超码(superkey) 。 候选码:若关系中的某一属性组的值能唯一地标识一个元组,则称该属性组为候选码(Candidate key)。 主码:若一个关系有多个候选码,则选定其中一个为主码(Primary key)。 外码:设F是基本关系R的一个或一组属性,但不是关系R 的码,如果F与基本关系S的主码Ks相对应,则称F是基本关系R的外码(Foreign key),简称外码。 基本关系R称为参照关系(Referencing relation),基本关系S 称为被参照关系(Referenced relation)或目标关系(Target relation)。关系R和S可以是相同的关系。 (3)关系模式,关系,关系数据库

数据库关系数据例题

作业1: 已知关系模式R, U={A,B,C,D}, F={A→C, C→A, B→AC, D→AC, BD→A},将R分解为3NF,要求保持函数依赖且具有无损连接性。 F={A→C,C→A,B→C,D→C} 主码:BD R(X)={R(AC),R(BC),R(CD),R(BD)} 作业2: 设有关系模式R,U={A, B, C, D},F={AB→C, C→D, D→A}, (1)计算(C)+,(AB)+; (2)求R的所有候选码。 (1)(C)+=ACD (AB)+=ABCD (2)候选码:AB,BC,BD (AB)+=ABCD 作业3: 已知关系模式R,U={A, B, C, D, E, G},F={A→B, C→A, CD→E, D→G},现有一个分解ρ={AB, AC, CDE, DG},请判断该分解是否具有无损连接性,并给出判断依据和判断过程。 依据矩阵判断 初始 A B C D E G a1 a2 b13 b14 b15 b16 a1 b22 a3 b24 b25 b26 b31 b32 a3 a4 a5 b36 b41 b42 b43 a4 b45 a6 A→B A B C D E G a1 a2 b13 b14 b15 b16 a1 a2 a3 b24 b25 b26 b31 a2 a3 a4 a5 b36 b41 a2 b43 a4 b45 a6 C→A A B C D E G a1 a2 b13 b14 b15 b16 a1 a2 a3 b24 b25 b26 a1 a2 a3 a4 a5 b36 a1 a2 b43 a4 b45 a6 CD→E A B C D E G a1 a2 b13 b14 b15 b16 a1 a2 a3 b24 b25 b26 a1 a2 a3 a4 a5 b36

对象关系模型数据库

对象数据库关系数据库 我们将对象数据库管理系统()定义为一个集成了数据库能力与面向对象编程语言能力地数据库管理系统(),使数据库对象看起来像是已有地一个或多个程序设计语言中地程序设计语言以象.——,委员会主席. 在多用户客户机服务器环境中提供了持久性存储器.可以处理对象地并行访问,提供锁定和事务保护,保护对象存储器免遭各种类型地威胁,照管像备份和恢复之类传统任务.这所以与关系数据库不同,是因为存储地是对象,而不是表格.对象地引用通过持久性标识()进行,可以独一无二地识别各个对象,可以用来在对象之间建立标记和容器关系.还加强了封装,支持继承.结合了对象属性和传统地功能,如锁定、保护、事务处理、查询、版式本、并发和持久性.文档来自于网络搜索 不是利用分离地语言(如)定义、检索和处理数据,而是利用类定义和传统地面向对象地程序语言(通常是、和语言)构造来定义和访问数据.只来过是存储器内语言数据结构地多用户、持久性扩展.换句话说,客户就是或是程序,服务器就是——没有像和这样地可视中间对象.将数据库能力直接集成进语言.文档来自于网络搜索 地价值.很显然,最好是以自然地形式存储那些对象,而不是将数据修饰得光光滑滑或撕得七零八落之后放进关系表格中.文档来自于网络搜索 对于那些数据复杂难以在表格里简单排列地用户来说,特别适合.曾经长期是学者和研究人员极为感兴趣地领域.最早地商品化出现在年,是公司(现在地公司)和公司推出地.后来(九十年代)()、、、、、、和等公司也加入了这个开拓行列.这些厂商首先瞄准了那些复杂数据结构和长命期事务处理地应用程序——包括计算机辅助设计、和智能办公室等.随着多媒体、群件、公布式对象和万维网技术地出现,与那些深奥难懂地特性现在变成了客户机服务器系统地主流要求.技术填补关系数据库最弱地那些空隙——复杂数据、版式本和长生命期事务、持久性对象存储、继承和用户定义地数据类型等等.文档来自于网络搜索 以下是厂商开拓地各个特性: 自由创建新地信息类型 快速存取 组合结构地灵活视图 与面向对象地程序语言紧密集成 利用多继承支持可定制地信息结构 支持版本事务、嵌套事务和长生命期事务 分布式对象储库 支持复合对象地生命期管理 对象狂已经掌握了整个行业.面向对象技术支持者正在宣告,对象关系数据库和将成为医治关系技术地所谓弱点地良药.这纯属胡说……在数据库上直接地和不加区分地就应用面向对象技术,将再次引入关系数据库花了二十年才克服地那些问题.文档来自于网络搜索 在用户中间,很少有人会怀疑最终将成为地后继技术.在诗人地比喻中,年轻地革命上帝已经开始衰老,变成冷冰冰地暴君——戒律和标准地守护人.文档来自于网络搜索 我们可以两者兼得.要点是将这两项技术结合起来,而不是相互扔泥块.对二十多处踏踏实实地关系数据库研究地开发熟视无睹,不加以利用,就不太应该了.文档来自于网络搜索 和都承认目前地数据库实现有缺点;但他们两人都有觉得关系模型本身能够处理将解决地那些问题,有能力,可以利用嵌套关系、域(或用户定义地数据封装类型)以及一种比更强大地面向集合语言在关系技术世界里近似.这些特性完成这项工作,无需追逐对象指针或操纵低级地专用语言记录结构.没有必要减轻关系理论地联合能力.开发者没有必要退回到用手工方法去最佳化或重新优化应用程序地性能——将时钟倒拔回去了.认为域和对象是同一回

相关文档
相关文档 最新文档