• 热门标签

当前位置: 主页 > 航空资料 > 计算机 >

时间:2010-08-09 13:05来源:蓝天飞行翻译 作者:admin
曝光台 注意防骗 网曝天猫店富美金盛家居专营店坑蒙拐骗欺诈消费者

S t e p h e n两个人的传记。
(3) 连接
之所以称为关系数据库是因为它们可以处理关系。连接的主要目的是在一个数据中建立表
之间的关系。尽管也可能把数据存储在一个巨大的表中,没有连接,它将很快在资源使用及响
应时间上变得低效。例如,没有人阻止我们创建像这样的系统(参见表1 0 - 4):
表1 0 - 4
F i r s t N a m e L a s t N a m e B i o g r a p h i c a l Ti t l e I S B N
S t e p h e n M o h r ⋯⋯ XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5
S t e p h e n M o h r ⋯⋯ Designing Distributed 1 - 8 6 1 0 0 2 - 2 7 - 0
Applications with
X M L,A S P,I E 5,L D A P
And MSMQ
K a t h i e K i n g s l e y ⋯⋯ XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5
H u g h e s
F r a n k B o u m p h r e y ⋯⋯ Professional Style Sheets 1 - 8 6 1 0 0 1 - 6 5 - 7
For HTML and XML
F r a n k B o u m p h r e y ⋯⋯ XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5
然而,很明显,不需要重复每一个作者的名字和传记的细节在每一本他们写的书上,同样
第10章XML和数据库使用369 下载
表1 0 - 3
名姓
S t e p h e n M o h r
K a t h i e K i n g s l e y - H u g h e s
F r a n k B o u m p h r e y
也没有地方显示参与每本书写作的每个作者的名字。不仅仅是因为低效,也是因为难于维护,
当一个作者的信息改变时就需要将它拷贝到每一个出现的地方。
为了实现在书与作者之间更高效的关系,我们需要建立多对多的关系。这就要求一个特别
的技术,稍后将进行介绍。在介绍之前,先看一下一对一和一对多的关系应如何建立。
(4) 一对一和一对多连接
你可能还记得我们的书的目录,一本书可以包括一个价格,每个价格可以有一个货币符号:
程序清单1 0 - 8
如果我们采用刚才提到的方法—将所有的数据都放在一张表中—那样它将像表1 0 - 5所示
存在数据库中:
表1 0 - 5
Ti t l e I S B N C u r r e n c y P r i c e
XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5 U S D 4 9 . 9 9
Designing Distributed Application 1 - 8 6 1 0 0 2 - 2 7 - 0 U S D 4 9 . 9 9
With XML, ASP, IE5, LDAP and MSMQ
Professional Style Sheets for HTML And XML 1 - 8 6 1 0 0 1 - 6 5 - 7 G B F 4 5 . 9 9
然而,模式可能会认为只有三种货币符号是可用的,每一个价格(指书)只能使用一种货
币符号,尽管并不反对每个货币符号被使用多次。所以我们可以在书的实体与一个新的实体,
货币符号,之间建立一种一对多的关系。合理化数据的过程叫做标准化,将在下面更详细地讨
论。将货币符号分离到另一个表中会给我们带来几个好处:
• 可以存储货币符号的附加信息,像用在下拉框和报告中的货币符号名称,也可能是一个汇
率。
• 我们可以保证在列表中只有一个符号被输入到书的表中。
我们通过增加一个货币符号的新表来实现它(参见表1 0 - 6):
表1 0 - 6
货币编号缩写
1 U S D 美元
2 G B F 英镑
3 C D 加拿大元
C u r r e n c y I D列是表的主键。用于确定表中的每一行都是唯一的,也用来记录在其他表中的地
址的方法。尽管在这个例子中我们可以使用S h o r t N a m e作为主键,但是有一个普遍的经验就是使
用数字来连接表,因为它们是压缩的,并且可以比较得很快。
370使用XML 高级编程
下载
在建立起我们的货币符号表之后,修改书的表以便从货币符号表中指出它的货币符号(参
见表1 0 - 7):
表1 0 - 7
Ti t l e I S B N C u r r e n c y I D P r i c e
XML Application 1 - 8 6 1 0 0 1 - 5 2 - 5 1 4 9 . 9 9
Designing Distributed Application 1 - 8 6 1 0 0 2 - 2 7 - 0 1 4 9 . 9 9
With XML, ASP, IE5, LDAP and MSMQ
Professional Style Sheets for HTML And XML 1 - 8 6 1 0 0 1 - 6 5 - 7 2 4 5 . 9 9
这里我们看到通过使用主键的值建立了一个引用。因为C u r r e n c y I D在书表中看上去不像在货
币符号表中是主键,我们说它是一个外键。在某些数据库系统,可能会加强这种主键与外键的
关系,例如,我们不能把数字10 000放到字段中,因为在货币符号表中不存在相应的记录。设置
一个列具有一个外键的属性是用来保证数据一致性的重要方法。
现在来通过在W H E R E子句里使用变量生成书和它们的货币符号的记录集:
像前面一样,我们想取出的列被列在S E L E C T和F R O M之间,但是这一次我们要求两个不同
的表中的数据,书的表和货币符号表。然而,为了让每一行有意义我们要求书表中的每一行都
要与货币符号表中的每一行相匹配。但是我们不是想要随便的一行,而是想要与在书表中的货
币符号数字相同的行。实际上,在书表中的C u r r e n c y I D列执行了一个查找,在货币符号表中获
得它所需要的细节。结果集看上去将同表1 0 - 8所示。
表1 0 - 8
Ti t l e S h o r t N a m e P r i c e
XML Application U S D 4 9 . 9 9
Designing Distributed Application U S D 4 9 . 9 9
With XML, ASP, IE5, LDAP and MSMQ
Professional Style Sheets for HTML And XML G B P 4 5 . 9 9
这时,尽管已经将我们的数据分割成不同的表,但可能在任何时候通过连接重新得到它,
就好像是一个表。
这个货币符号的例子模拟了一对多的关系—一个货币符号与多本书有关—但是同样的
技术也可用来模拟一对一关系。例如,我们可能在一张表中保存价格和货币符号,并且从一本
书中指出全部的价格。一本书应该只有一个价格。
(5) 多对多的连接
刚刚描述的方法,是在一个表中的一列中设置了对另一个表的一列的引用,对于一对一或
 
中国航空网 www.aero.cn
航空翻译 www.aviation.cn
本文链接地址:XML高级编程上(122)