¤­¤j¸ê®Æ®wºÞ²z¨t²Î¤§¤ñ¸û

ªþ:¤ñ¸ûÁ`ªí

¤ñ¸û¤­­Ó¥D­nªºÃöÁp¦¡¸ê®Æ®w¨t²Î : Oracle7 Version 7.3¡ASybase SQL Sever 11¡AInformix-Online 7.2¡AMicrosoft SQL Server 6.5¥H¤Î DBMaker 3.0

¤å/ ¤_¤å­s¡@

¦b§Ú­ÌÁʶR¬~¦ç¾÷®É¡A§Ú­Ì·|¤ñ¸û¦U¼tµPªº©Ê¯à¡A ¦p¬O§_¦³Fuzzy¥\¯à¡A¬O§_¬O¤£ù׿ûªº¡A¬O§_¦³±þµß°£¯ä©ÎªÌ¬O§_²Å¦XÀô«O·§©À¡C

¦P¼Ëªº¡A¦b¿ïÁÊ¸ê®Æ®w¨t²Î®É¡A§Ú­Ì·|§Æ±æ§Ú­Ì¶R¨ìªº²£«~¯à²Å¦X§Ú­Ìªº»Ý¨D¡A¦Ó§â¦U®aªº¥\¯à®³¨Ó¤ñ¸û¤@µf¡C¦ý¬O¦b³o¼Ëªº¤@­Ó checklist ¤¤¡A ¨C­Ó¶µ¥Øªºµ²ªG¨Ã¤£¥u¬O Yes ©Î No ³o¼Ë²³æ¡A¥¦±`±`¬O¤@­Ó°ÝµªÃD¡A¦U®a°µ¨ìªºµ{«×¤£¦P¡A¬Æ¦Ü³sµªÃDªº¤è¦V¤]¤£¦P¡C­Y¬O¨S¦³¥J²ÓÁA¸Ñ¡A ¥i¯à´N¸õ¶i¤F¤@­Ó³£¬O Yes «o¨S¦³¤@¶µ¬O¯u¥¿²Å¦X»Ý¨Dªº³´¨À¤¤¡C

¦b³o½g¤å³¹¤¤¡A§Ú­Ì·|¤ñ¸û¤­­Ó¥D­nªºÃöÁp¦¡¸ê®Æ®w¨t²Î : Oracle7 Version 7.3¡ASybase SQL Sever 11¡AInformix-Online 7.2¡AMicrosoft SQL Server 6.5 ¥H¤ÎDBMaker 3.0¡C°£¤F´£¨Ñ¤@­Ó checklist ¤§¥~ ¡A¤]§Æ±æÂǥѰQ½×¨Ó§ó²`¤J¦aÁA¸Ñ³o´X­Ó¸ê®Æ®w¨t²Î¡C

¦b 1996 ¦~ 2 ¤ëªº Oracle Developer's Conference¤¤¡AOracle ÁnºÙ Release 7.3 µ²¦X¤FÃöÁp¦¡¸ê®Æ®w¨t²Î»P web¡A¤å¥ó³B²z ( text management )¡Amessaging »P Multimedia functions¡C¥¦¬O¬°¤F²Å¦X network-centric computing¡Amission-critical OLTP ¥H¤Î¸ê®Æ­ÜÀx ( Data warehousing ) ªº»Ý­n¦Ó±À¥Xªº¸ê®Æ®w¨t²Î¡C´X¥G¬O¦P¤@¦~¡ASybase Server 11 «h¬O¦]¬° ¦b SQL Server 10 ±À¥X«á¡A¨ü¨ì¦U¤è«Ü¦h­t­±ªºµû»ù¡A¦Ó±À¥Xªº·s²£«~¡C¥L­Ì«ÅºÙ­«·s³]­p«áªº SQL Server ²Å¦X ISO 9000 ªº¼Ð·Ç¦Ó¥B¬O scaleable¡A¯à¥R¥÷§Q¥Î Operating System »PµwÅ骺¥\¯à¡C¥t¥~¤@®a¸ê®Æ®w¤½¥q Informix¡A «h¥Ñ©ó·NÃѨìÃöÁp¦¡¸ê®Æ®w¨t²Î ¦b³B²z½ÆÂøªº¸ê®Æ«¬ºA¦p text¡Bimage¡Bspatial data ¤Wªº¯à¤O¤£¨¬¡A¦Ó»{¬°¤U¤@¥Nªº¸ê®Æ®w¨t²ÎÀ³¬° ORDB ( Object-Relational database system )¡A¨Ã¥B¿n·¥©¹¦¹¤@¤è¦V«e¶i¡C¦Ü©ó Microsoft SQL Server¡A¥¦­Ì³Ì¦­ªºª©¥»¬O¥Ñ Sybase SQL Server version 4.2 ²¾´Ó¹L¨Óªº¡C°£¤F¥[±j»P Back Office ªºµ²¦X¥~¡A¦b Windows NT system ¤Wªº°õ¦æ³t«×¤]¦]»P OS §@²`¼h combine ¦Ó¤ñ¨ä¥L´X®a¤j¦û«K©y¡C

DBMaker Ä~ 2.0 ª©¤§«á¡A¼W¥[¤F¤À´²¦¡¸ê ®Æ®w¡Adatabase replication¡B trigger ¡Bstored procedure¡Bembedded SQLµ¥¥\¯à¡C°£¤F¦b¤@¯ëÃöÁp¦¡¸ê®Æ®wªº¥\¯à¡A¤ñ°_«e­±´X®a²@¤£»¹¦â¤§¥~¡A§ó¯S§O¬°¦h´CÅé¸ê®Æ´£¨Ñ¤F file object ªº¥\¯à¡C§ó¦]¬°¨t²Î³]­pªì´Á´N¥H¤¤¤å¸ê®Æ¬°¥D­n¦Ò¶q¡A ¤¤¤å¤Æªºµ{«×¬OµL±e¸mºÃªº¡C°£¦¹¤§¥~¡A ¥»¦a«È¤á§ó¯àÀò±o³Ìª½±µªº¤ä´©¡A¦Ó¤£·|¦³¹J¨ì°ÝÃD®É¤£ª¾¹D§ä½Ö°Ýªºµ~¹Ò¡C¦b¥H¤Uªº¤ñ¸ûªí¤¤¡A DBMaker 3.0ªº¸ê®Æ¬O¥H²{¦³³Ì·sª©¥» ¬°¥D¡ADBMaker 3.0 ªº¸Ô²Ó¥\¯à¡A½Ð°Ñ¦Ò³Ì·s®ø®§¡C

¦b·§¬A©Ê¤¶²Ð¹L³o´X­Ó¸ê®Æ®w¨t²Î¤§«á¡A ²{¦b§Ú­Ì¥i¥H¶}©l¤À¶µ¤ñ¸û¤F¡C ²Ä¤@­Ó¤j¶µ¬O Relational Data Model¡C¬JµM³£¬OÃöÁp¦¡¸ê®Æ®w¨t²Î¡A§Ú­Ì·íµM­n¤ñ¸û¦b Relational Data Model¤W¦U®aªºªí²{¤F¡C°ò¥»¤W¦U®a³£²Å¦X°ò¥»ªºÃöÁp©Ê¸ê®Æ®wªº·§©À¡C¦ý¬O¦p ¹Ï¤@ ©Ò¥Ü¡A°£¤FDBMaker 3.0 ¨S¦³¤@®a´£¨Ñ Domain¡CUser ¥²¶·§Q¥Î¨ä¥Lªº¤è¦¡¦p User Defined Data type ¨Ó«Ø³y¦Û¤vªº Domain¡C¦bÃöÁp¦¡¸ê®Æ®w¤¤«Ü­«­nªºÆ[©À integrity constraints
¤W¡A¦U®a©Ò´£¨Ñªº¥\¯à¤]¤£¤@¼Ë¡C®Ú¾Ú ANSI SQL92 ªº¼Ð·Ç¨Ó¬Ý¡A¦b¹H ¤Ï integrity constraint ®É¡A¸ê®Æ®w¨t²Î¥i¥H±Ä¨ú 4 ºØ°Ê§@ :

  1. set NULL¡A§Y·í parent table ¤¤ delete ©Î update ¤@µ§¸ê®Æ®É¡Aforeign table ¤Wªº¸ê®Æ¬O³]¬° NULL¡C
  2. set default¡A³] foreign key ¬° default value¡C
  3. cascade¡A§Y·í delete ©Î update parent table ®É¡A¹ï foreign table¤]°µ ¦P¼Ëªº delete ©Î update¡C¦³¤Fcascade ªº¥\¯à¤§«á¡A¦b§Ú­Ì¶}µo application ´N¥i¥H¸`¬Ù³B²z integrity constraint ªº®É¶¡¤F¡C
  4. no action (restrict)¡A§Y·í¦¹µ§¸ê®Æ¦s¦b¦³ foreign key ®É¡A¤£¤¹³\°µ delete ©Î update¡C¤]´N¬O»¡¥²¶·±N¦¹ integrity constraint °£¥h«á¤~¯à°µ delete ©Î update¡C
¹Ï¤@ Relational Data Model
¡@ Oracle Sybase Informix Microsoft DBMaker
Domains No No No No Yes¡ASet null¡A
Set default
Referential-
integrity
violation
options
Restrict¡A
Cascade
delete
Restrict Restrict¡A
Cascade
delete
Restrict Restrict¡A
Cascade delete¡A
Cascade update
Updateable
views
Yes Yes Yes Yes Yes

¦b¹Ï¤@¤¤ªº cascade delete ¬Oªí¥Ü¹ï delete §@ cascade¡A¦Ó update ¤´ ºû«ù restrict¡C

¥t¥~¤@­Ó¤ñ¸ûªº¶µ¥Ø¬O updateable view ªº´£¨Ñ¡C°ò¥»¤W view ¬O¥Ñ ¹ï¤@­Ó©Î¦h­Ó table §@ select §Î¦¨ªº¡CµM¦Ó¦b³o­Ó¶µ¥Ø¤W¦U®a©Ò´£¨Ñªº updateable view ¦h¥u¬O:

  1. ³æ¤@ table
  2. ¨S aggregate function ©Î group by
  3. ¤£¬O select DISTINCT ªº view¡C

²{¦b§Ú­Ì¨Ó°Q½×²Ä¤G¤j¶µ Data Objects (¨£¹Ï¤G)¡C¦b User Defined Data type¤è­±¡A¦p«e©Ò­z DBMaker 3.0 ¤w¸g´£¨Ñ¤F Domain ¨¬¥H¥]¬A User Defined Data Type¡C ¦b³oùاڭ̥²¶·¥J²Ó¼f¬dªº¬O³o¨Ç©Ò¿×ªº User Defined Data Type °µ¨ìªºµ{«×¡C¥H Microsoft SQL Server ¨Ó»¡¡A¥¦¬O´£¨Ñ ¤@­Ó store procedure ¨Ó©w¸q·sªº data type¡C¦ý¬O¥²¶·¬O¥H¤@­Ó base data type ¬°°ò·Ç¡A¦p integer¡Achar¡Afloat µ¥¡C§Y¨Ï¥ÎªÌ¤£¯à§Q¥Î¤w©w¸qªº user defined data type ¨Ó©w¸q·sªº type¡C ¦Ó¥B¤£¯à©w¸q³o­Ó·sªº data type ªº default value ¥H¤Î°£¤F IS NULL¤§¥~ªº constraint¡CÁ|¨Ò¨Ó»¡¡A¨Ï¥ÎªÌ­Y·Q©w¸q ¤@­Ó·sªº data type ¥s age¡C¥B age ªº¦X²z½d³ò¬° 1-150 ®É¡A´N¥²¶·§Q¥ÎÃB¥~ªº¤èªk¨Ó¹F¦¨¡C

¹Ï¤G Database Objects (1)
¡@ Oracle Sybase Informix Microsoft DBMaker
User-
defined
data type
Yes Yes Yes Yes Yes
(domain)
BLOBs Yes Yes Yes Yes Yes
Additional
types
Image¡A
video¡Atext¡A
messaging¡A
spatial
Image¡A
money¡A
bit¡Atext
Byte¡A
text
¡@ File
object

¦b²{¤µ«D±`¬y¦æ¦h´CÅé¸ê®Æ¤è­±¡A¦U­Ó¸ê®Æ®w¨t²Î¤S¦p¦ó©O? °ò¥»¤W¡A³o¤­­Ó¸ê®Æ®w¨t²Î³£´£¨Ñ BLOB (binary large object) ¨ÓÀx¦s³o¨Ç¦h´CÅé¸ê®Æ¡C¨Æ¹ê¤W¹ï©ó¦h´CÅé¸ê®Æªº¤ä´©¤W¡A¥ú¬O´£¨ÑÀx¦s¬O¤£°÷ªº¡C ­Y¬O¨S¦³¬ÛÃöªº¥\¯à¨ÓºÞ²z³o¨Ç¸ê®Æ¡A ¬O¤£¨¬¥HºÙ¬°¦h´CÅé¸ê®Æ®wªº¡C

¦b³o¤è­± DBMaker ´£¨Ñ file object ªº¸ê®Æ«¬ºA¡A¦Ó¥B´£¥X¤F loosely couple ªºÆ[©À; §Y¤¹³\¦hµ§¸ê®Æ¦@¨É¤@­Ó file object¡A·í¦¹ file object §ïÅܮɡA³o¦hµ§¸ê®Æ³£¥i¥H¬Ý¨ì³o­Ó§ïÅÜ¡C

¦b¹Ï¤T¤¤¡A§Ú­Ì¦C¥X¤F table structure »P index structure ªº¤ñ¸û¡C³o¨âºØ structure ³q±`·|¼vÅT¬d¸ßªº®Ä²v¡C¦bindex¤è­±¡A³o´X®a³£¤ä´© B-tree¡CB-tree index ªºµ²ºc¦p¹Ï¥|©Ò¥Ü¡A ¦b leaf page ¤W·|¬ö¿ýµÛ³o­Ó key ­Èªº data record ªº©Ò¦b¦a¡C¦Ó¦ó¿×clustered index©O? (¦p¹Ï¤­) ¥¦»P B-tree index ªº¤£¦P´N¬O¦b leaf ¨º¼h¬Oª½±µ§â data ©ñ¦b leaf page¤¤¡A¦Ó¤£»Ý¦A¸g¤@¦¸ I/O ¤~¯à®³¨ì data record ¡C¤£¹L¡A¤]¦]¬°¦p¦¹¤@­Ó table ³q±`¥u¯à¦³¤@­Ó clustered index¡C

¹Ï¤T Database Objects (2)
¡@ Oracle Sybase Informix Microsoft DBMaker
Table
Structure
Heap¡A
clustered
Heap¡A
clustered
no
choice
no
choice
no
choice
Index
Structure
B-tree¡A
bitmap¡A
heap
B-tree B-tree¡A
clustered
Clustered B-tree
Tuning
facilities
Table and
index
allocation
Index
pre-fetch¡A
I/O buffer
cache¡A
block size¡A
table partition
Extents¡A
table frag-
mentation by
expression
or round
robin
Fill factor¡A
allocation
Fill factor¡A

frame size


¹Ï¥| B-tree

¹Ï¤­ Clustered Index

¦Ü©ó bitmap index¡A«h¬O§Q¥Î¤@­Ó bit ¨Ó¬ö¿ý key ­È¡C

Á|¨Ò¨Ó»¡(¦p¹Ï¤»)¡A°²³]¬Y¤½¥q¦³ 5 ­Ó­û¤u¡A¥L­Ìªº "¾·~" ©M "©~¦í«°¥«" ¤À§O¬°(·|­p®v¡A¥x¥_)¡A(¤uµ{®v¡A¥x¥_)¡A(¤uµ{®v¡A ¥x«n)¡A(¥DºÞ¡A¥x¤¤)¡A(µ{¦¡³]­p®v¡A¥x¤¤)¡C§Ú­Ì¥i¥H§â¾·~³o­ÓÄæ¦ìªº­È¥Î 4 ­Ó bit ªí¥Ü¡C 1st bit on ªí¥Ü¬°µ{¦¡³]­p®v¡A2nd bit on ªí¥Ü¬°·|­p®v¡A3rd bit on ªí¥Ü¬°¥DºÞ¡A4th bit on ªí¥Ü¬°¤uµ{®v¡C¦P²z¡A¹ï "©~¦í«°¥«" ³o­ÓÄæ¦ì¤]¥i¦pªkªw»s¡C

¹Ï¤» Sample Bitmap index Processing (1)
­û¤u¸ê®Æªí
­û¤u¼Ð¸¹ ¾·~ ©~¦í«°¥«
1 ·|­p®v ¥x¥_
2 ¤uµ{®v ¥x¥_
3 ¤uµ{®v ¥x«n
4 ¥DºÞ ¥x¤¤
5 µ{¦¡³]­p®v ¥x¤¤
­û¤u¸ê®Æªíªº Bitmap index
­û¤u½s¸¹ µ{¦¡³]­p®v ·|­p®v ¥DºÞ ¤uµ{®v ¡@ ¥x«n ¥x¤¤ ¥x¥_
1 0 1 0 0 ¡@ 0 0 1
2 0 0 0 1 ¡@ 0 0 1
3 0 0 0 1 ¡@ 1 0 0
4 0 0 1 0 ¡@ 0 1 0
5 1 0 0 0 ¡@ 0 1 0

³oºØ¤èªk¦³¤°»ò¦n³B©O?

  1. ¥¦¥i§Q¥Î¥¬ªL (boolean) ¹Bºâ¨Ó¥[³t¤ñ¸ûªº°Ê§@¡C¦p¹Ï¤C¤¤¡A­Y §Ú­Ì­n§ä¦í¦b¥x«nªº¤uµ{®v´N¥i¥H§Q¥Î "¾·~" ¤¤¤uµ{®vªº¨º­Ó bit array »P "©~¦í«°¥«" ¤¤ªº¥x«n§@ AND ¹Bºâ¡C
  2. ¥¦¥i¥H´î¤Ö index ªºÀx¦s°Ê§@¡C­Y¤@­ÓÄæ¦ì¥u¥i¯à¦³2­Ó­È®É(¨Ò ¦p:©Ê§O)¡A¥u»Ý­n¥Î 2 bits ´N¥i¥HÀx¦s³o­ÓÄæ¦ìªº¸ê®Æ¤F¡CµM¦Ó¡A¥Ñ¥H ¤W±Ô­z§Ú­Ì¥i¥Hª¾¹D¡Abitmap index ¥u¯à¥Î¦b¸ÓÄæ¦ì¶È¦³ N ­Ó¤wª¾­Èªº ±¡ªp¤U¡A¦Ó¥B N ¤£¯à¤Ó¤j¡C©Ò¥H¨Ï¥ÎªÌ¥²¶·¿Å¶q¦Û¤vªº»Ý¨D¨Ó¨Ï¥Î¥¦¡C 
¹Ï¤C Sample Bitmap Index Processing (2)
¬d¸ß±ø¥ó: ©~¦í¦b¥x«nªº¤uµ{®v
¾·~
¤uµ{®v
0
1
1
0
0
AND ©~¦í«°¥«
¥x«n
0
0
1
0
0
µ²ªG
¡@
0
0
1
0
0

¥t¥~¤@­Ó¸ê®Æ®wºÞ²z¨t²Îªº­«ÂI¥\¯à¬O trigger¡C±q¹Ï¤K¤¤¡A§Ú­Ì¥i¥H¬Ý¨£³o´X®a¸ê®Æ®w¨t²Î³£¤ä´© trigger¡C²Ä¤@­Ó®t²§¬O Level¡C Row-based trigger ªí¥Ü­Y ¤@­Ó DML (data manipulate language) °Ê§@§ïÅܤF«Ü¦hµ§¸ê®Æªº®É­Ô¡A³o­Ó trigger ªº°Ê§@¬O¹ï¨Cµ§¸ê®Æ³£§@¤@¹M¡C¦Ó set-based trigger «h¬O¤@­Ó DML ¥u·|¤Þµo¤@¦¸ trigger ªº°Ê§@¡AµL½×¥¦³y¦¨¦h¤Öµ§¸ê®Æªº§ïÅÜ¡CTriggerªº¥t¥~¤@­Ó¯S©Ê¬O¥¦¬Oµo¥Í¦b¦¹ DML ¤§«e©Î¤§«á¡CDBMaker 3.0 ´£¨Ñªº¬OµL½×¹ï row-based¡A©Îset-based ³£´£¨Ñ before (Trigger °Ê§@µo¥Í¦b DML ¤§«e)»P after (Trigger °Ê§@µo¥Í¦b DML ¤§«á)¡CÁÙ¦³¤@ÂI­È±oª`·Nªº¬O¡ATrigger¥i§_¤Þµo¥t¤@­Ó trigger¡A¥ç§Y¹Ï ¤E¤¤©ÒºÙªº nesting¡A³o­Ó¥\¯à¨C¤@­Ó¼tµP³£´£¨Ñ¡C

¹Ï¤K Triggers
¡@ Oracle Sybase Informix Microsoft DBMaker
Level row-
based¡A
set-
based
set-
based
row-
based¡A
set-
based
set-
based
row-
based¡A
set-
based
Timing before¡A
after
after before¡A
for each¡A
after
after before¡A
for each¡A
after
Nesting Yes Yes Yes Yes Yes

Stored procedure ¬O§â¤@³s¦ê¹ï¸ê®Æ®wªº°Ê§@¦s¦b¸ê®Æ®wùØ­±¡Cµ¥¨ì»Ý­n°õ¦æ³o¤@³s¦ê°Ê§@®É¡A¥u­n EXECUTE ³o­Ó Stored procedure ´N¥i¥H¤F¡CStored Procedure ¥]§t insert¡Aupdate¡Adelete¡Aselect µ¥©R¥O¥H¤Î¤@¨Ç flow control¡A¦p IF¡ATHEN¡AELSE µ¥¡C¦b¤@­Ó Stored procedure ¤¤¥²¶·¥i¥H©I¥s§Oªº©Î¦Û¤v³o­ÓStored procedure¡A³o´N¬O¹Ï¤E¤¤©ÒºÙªº nesting¡C Sybase ©M Oracle «h¥i¥H³]©w¬Y­Ó®É¶¡©Î¨C¹j¦h¤Ö®É¶¡¦Û°Ê¦a°õ¦æ Stored procedure¡C

¹Ï¤E Stored Procedures
¡@ Oracle Sybase Informix Microsoft DBMaker
Language PS/SQL Transact-
SQL
SPL Transact-
SQL
ESQL/C
Nesting Yes Yes Yes Yes Yes
Events Yes Time-
bases
events
No No No

²Ä¤T­Ó°Q½×ªº¤j¶µ¬O Queries¡C¸ê®Æ®w¨t²Î´£¨Ñ«ç¼Ëªº Locking level ·|¼vÅT Query °õ¦æ®É concurrency¡CÁ|¨Ò¨Ó»¡¡A¦p Sybase ¥u´£¨Ñ¨ì page level ªº lock¡A¦pªG¦³¨Ï¥ÎªÌ insert ¸ê®Æ¨ì¬Y­Ó page¡A«h¨S¦³§O¤H¯à select ¨ì¸Ó page ¤¤ªº¸ê ®Æ¡A¥²¶·µ¥¨ì³o­Ó insert ªº¥æ©öµ²§ô¡C±q¥t¤@¤è­±¨Ó»¡¡A´£¨Ñ¨ì row level ªºlock ·|¦û¥Î¤ñ¸û¦hªº¨t²Î¸ê·½¡A¦]¬°¨C¤@µ§¸ê®Æ´N¥²¶·®³¤@­Ólock¡C ¦b³o¤è­±¡ASybase¡A Microsoft »P DBMaker ³£´£¨Ñ¬Û¦Pªº¸Ñ¨M¤èªk¡A´N¬OEscalate Locks ¡C§Y·í¨Ï¥ÎªÌ¦b¤@­Ó page ¤W¨Ï¥Î¤F¹L¦hªº row lock ¤§«á¡A¨t²Î·|±N³o¨Ç row lock ´£ª@¬°¤@­Ó page lock¡C¦p¦¹¤@¨Ó¡A´N¥i¥H¸`¬Ù¨t²Î¸ê·½ªº¨Ï¥Î¡C

®Ú¾Ú SQL92 Entry level¼Ð·Ç¡A³o¤­­Ó¸ê®Æ®w¨t²Î¬Ò´£¨Ñ cursor¡A¥Î¨Ó¦bresult set ¤¤²¾°Ê»P§ì¨ú¸ê®Æ¡C ¦bIntermediate SQL-92¤¤¡A©w¸q ¤F cursor ²¾°Êªº¤è¦¡»P§Q¥Î cursor fetch data ªº¿ìªk¡A¤À§O¬°: next¡A prior¡Afirst¡Alast¡Aabsolute »P relative¡C Oracle »P Sybase ¥u´£¨Ñ moving forward ªº cursor¡C Informix «h¦³ next »P prior ªº cursor¡CMicrosoft «h´£¨Ñ¦b trigger »P stored procedure ¤¤¤]¥i¥H¨Ï¥Î cursor¡CµM¦Ó¡A¥Ñ ¹Ï¤Q¤¤¡A§Ú­Ì¥i¥H¬Ý¨ì¥u¦³DBMaker ´£¨Ñ¤F§¹¾ãªº cursor ²¾°Ê¥\¯à¡C

¹Ï¤Q Queries
¡@ Oracle Sybase Informix Microsoft DBMaker
Locking
level
table¡A
row
table¡A
page
database¡A
table¡A
page¡Arow
database¡A
table¡A
page¡Arow
database¡A
table¡A
page¡A
row
Escalates
locks
No Yes No Yes Yes
Cursors Forward Forward Forward¡A
backward
Forward¡A
backward¡A
relative¡A
absolute
Forward¡A
backward¡A
first¡Alast
relative¡A
absolute
Outer joins Yes Yes Yes Yes
(ANSI syntax)
Yes
ANSI SQL
compliance
Entry-
Level
SQL 92
Entry-
Level
SQL 92
Entry-
Level
SQL 92
Entry-
Level
SQL 92
Entry-
Level
SQL 92

²Ä¥|¤j¶µ¬O³o´X­Ó¸ê®Æ®w¨t²Î¹ï database administrator ¦Ó¨¥¡A¬O§_´£¨Ñ¥þ¤è¦ìªº¸Ñ¨M¤è®×¡C³o­Ó³¡¤À¥i¥H¤À¤G¤è­±¨Ó¬Ý :

  1. ¬O§_¦³ user friendly ªº GUI tool ¨ÓºÞ²z¸ê®Æ®w¡C
  2. ¬O§_´£¨Ñ¤@¨Ç¥\¯à¨Ó´î»´ DBA (database administrator) ªº­t¾á¡C

Á|¨Ò¨Ó»¡¡A¤@­Ó¦nªº DBA ¥i¯à·|§Q¥Î±ß¤W¨Ó load ¤j¶q¸ê®Æ¥HÁ×§K¼vÅT¥Õ¤Ñªº¸ê®Æ³B²z¤u§@¡C³o®É­Y¸ê®Æ®w¨t²Î¨S¦³´£¨Ñ antoextend tablespace ªº¥\¯à¡A«h³o¾ã¥ó¤u§@¥i¯à¦]¬° DBA ©¿²¤¤F¥ý¼W¥[ tablespace ªº storage¡A¦Ó§i¥¢±Ñ¡C¦b³o­Ó¤j¶µ¤U¡A¦U­Ó¸ê®Æ®w¨t²Îµo´§ªºªÅ¶¡Á٫ܦh¡C¦Ó¥B¹ï DBA ¦Ó¨¥¡A ¦]¬°¥L«Ü¥i¯à¦P®ÉºÞ²z¦h­Ó¤£¦Pªº¸ê®Æ®w¡A¥L§ó»Ý­nªº¬O¤@­Ó central management tool ¨Ó¦P®ÉºÞ²z³o»ò¦h­Ó¤£¦Pªº¸ê®Æ®w¡C¦b³o¤è­±´N»Ý­n¤@¨Ç 3rd party ªº²£«~¨Ó´£¨Ñ¥þ¤è¦ìªº¸Ñµª¤F¡C(¨£¹Ï¤Q¤@)

¹Ï¤Q¤@¡@Database Administration
Oracle Sybase Informix Microsoft DBMaker
security C2 C2 C2¡AB1 NT integrated C2
Partial
backup &
recovery
Yes
(tablespace)
Yes No Yes
(table)
No
Autoextend
tablespace
Yes No No No Yes

²Ä¤­¤j¶µ§Ú­ÌÀ³¸Ó°Q½×ªº¬O Internet Support¡C¦b´X¦~«e¡AWWW ÁÙ¨S¦³¿³°_¡A¨º®É¦ÛµM´N¨S¦³³o¶µ¡C¦ý¬O²{¦b¤ä´© WWW Åܦ¨¸ê®Æ®w¨t²Î¤£¥i©Î¯Êªº¤@­Ó¶µ¥Ø¡C¦b¹Ï¤Q¤G¤¤¥i¥H¬Ý¥X¦U®a¹ï WWW ¤ä´©ªºµ{«×¡C

¹Ï¤Q¤G Internet
¡@ Oracle Sybase Informix Microsoft DBMaker
Internet
support
Oracle
WebServer
web.sql ESQL or
4GL CGI
interface kit
IIS on NT CGI

±µ¤U¨Ó¡A§Ú­Ì¨Óµû¦ô³o´X­Ó¸ê®Æ®w¨t²Î¦b¤À´²¦¡¸ê®Æ³B²z¤Wªº¥\¯à¡C°ò¥»¤W­n¤ä´©¤À´²¦¡¸ê®Æ®w¨t²Î¡A´N¥²¶·¤ä´© 2-phase commit ¡A¦p¦¹¤~¯à§¹¦¨¤@­Ó¤À´²¦¡ transaction¡C¦b¤À´²¦¡ªºÀô¹Ò¤§¤U¡A¤@­Ó query ­n¥Î«ç¼Ëªº¤è¦¡°õ¦æ»P¦b³æ¤@ server ¤Wªº°õ¦æ¬O¤£¦Pªº¡A¦Ó©Ò»Ýªº optimization ¤]¤£¦P¡C¥t¥~¡A¦b¤@­Ó¤À´²¦¡Àô¹Ò¤§¤U¡A ¦U­Ó¸ê®Æ®w¨t²Î¬O¤À¤u¦X§@ªº¡C¦pªG¦b³o­ÓÀô¹Ò¤¤¡A ¦³¥i¯à²o¯A¨ì¦hºØ¤£¦Pªº¸ê®Æ®w¨t²Î¡A´N»Ý­n¸ê®Æ®w¨t²Îªº heterogeneous database support ¤F(¹Ï¤Q¤T)¡C

¹Ï¤Q¤T Distribution
¡@ Oracle Sybase Informix Microsoft DBMaker
Distributed
database
Yes Yes Yes ? Yes
2PC protocol Yes Yes Yes ? Yes
Hetergeneous through
gateway
through
gateway
No ? No
Optimization Yes Yes Yes ? Yes (not
includes
network
cost)

ªñ´X¦~¨Ó¡A¸ê®Æ®w¨t²Îªº¸ê®Æ½Æ»s (data replication) ¥\¯à¨ü¨ì¼sªxªº­«µø(¨£¹Ï¤Q¥|)¡C

²Ä¤@­ÓÅã¦Ó©ö¨£ªº»Ý¨D¬O¡AÀHµÛ¸ê®Æªº­«­n©Ê»P¤é­Ñ¼W¡A ¨Ï¥ÎªÌ·|§Æ±æ¦s¦bµÛ¤@¾ã­Ó¸ê®Æªº³Æ¥÷¥H³Æ¤£®É¤§»Ý¡A ¦Ó¥B³o¥÷³Æ¥÷¤¤ªº¸ê®Æ¥²¶·¬O³Ì·sªº¡C³o´N¬O©Ò¿×ªº hot standby ªºÆ[©À¡C

²Ä¤G­Ó»Ý¨D«h¬O»Ý­n±N¬Y¨Ç­«­nªº table ½Æ»s¨ì»·ºÝ¥h¡C

Á|¨Ò¨Ó»¡¡A ­Y¦³¤@¨Ç¸ê®Æ¬OÁ`¤½¥q¡B¤À¤½¥q³£·|¥Î¨ìªº¡C±NÁ`¤½¥qªº table ½Æ»s¨ì¤À¤½¥q¥i¥HÁ×§K¨C¦¸¤À¤½¥qªº¤H­û­n¬Ý³o­Ó table ´N¥²¶· connect ¨ìÁ`¤½¥qªº¸ê®Æ®w¡A¦p¦¹¤@¨Ó¡A°£¤F¬Ù®É¤§¥~¡A ÁÙ¥i¥H¸`¬Ùºô¸ô¶O¥Î¡C ¦Ó¦b±NÁ`¤½¥qªº table ½Æ»s¨ì¤À¤½¥qªº®É­Ô¡A ¬O§_¥i¥H¥u¿ï¨ú¹ï¤À¤½¥q¦³·N¸qªºÄæ¦ì¨Ó§@½Æ»s¡A³o­ÓÆ[©À´N¥s°µ projection ¡C

±q¥t¥~¤@­Ó¨¤«×¨Ó¬Ý¡A¬O§_¥i¥H¿ï¨ú¸ê®Æªº½d³ò¨Ó°µ½Æ»s¡A ¦pªG¥u¦³ location ¬O¥x¤¤ªº¸ê®Æ¤~½Æ»s¨ì¥x¤¤¤À¤½¥q¡A³o´NºÙ¬° fragment¡C¦Ó½Æ»s¨ì¥x¤¤¤§«á¥x¤¤ªº¸ê®Æ®w¨t²Î¦³¨S¦³Åv¤O¹ï³o­Ó table §@­×§ï¦p insert¡Adelete¡Aupdate ©O? ­Y¬O¨ã¦³ ownership Æ[©Àªº¸ê®Æ®w¨t²Î¡A¦b©w¸q¤F³o­Ó table ªº owner ¬OÁ`¤½¥q¤§«á¡A¬O¤£¤¹³\¥x¤¤¤À¤½¥q­×§ï¥¦©Ò½Æ»s¨ìªº³o­Ó table ªº¡C ¥x¤¤¤À¤½¥q­Y¬O·Q­×§ï¥¦¡A ¥²¶·¸g¥ÑÁ`¤½¥q¸ê®Æ®w¨t²Î¨Ó§¹¦¨¡C

¥t¥~¤@ºØ¹ï¸ê®Æ©Ò¦³Åv ( ownership ) ªº·§©À¬O¡A³o¨Ç¸ê®Æ¬JÄÝ©óÁ`¤½¥q¤]ÄÝ©ó¤À¤½¥q¡A ¤GªÌ³£¥i¥H¹ï¥¦§@­×§ï¡A¦Ó¥B³o­×§ï¬OÂù¤è³£¬Ý±o¨ìªº¡C ³o¼Ë´N¬O©Ò¿× peer-to-peer ªº·§©À¡C ¥Ñ©ó¦b³oºØ±¡ªp¤U¡A¨âºÝ³£·|§@­×§ï¡A ¦]¦¹»Ý­n¸ê®Æ®w¨t²Î§@½Ä¬ð°»´ú ( conflict detect ) ©Î¨¾¤î½Ä¬ð ( avoid conflict ) ªº°Ê§@¡C §@¥ÎªÌ¥²¶·µø¦Û¤vªº¨t²Î»Ý¨D¿ï¾Ü¾A¦XªººÞ²z¸ê®Æ©Ò¦³Åv ( ownership ) ªº¤è¦¡¡C µM¦Ó¡A¦b¤@­Ó½Æ»s¨t²Î¤¤³Ì­«­nªº¨ä¹ê¬O¥¦ªº throughput¡C ¦pªG¥¦·|¼vÅTÁ`¤½¥q©Î¤À¤½¥q¸ê®Æ³B²zªº¯à¤O¡A ´î§C¤F³æ¦ì®É¶¡¤º¥i¥H³B²zªº transaction ¼Æ¥Ø¡A©ÎªÌÀHµÛ¤À¤½¥q¼Æ¥Ø¼W¥[¦Ó¼vÅTÁ`¤½¥qªº³t«×ªº¸Ü¡A«h®Ú¥»ºÙ¤£¤W¬O¤@­Ó¦nªº¸ê®Æ½Æ»s¨t²Î¡C ¸ê®Æ½Æ»s§Þ³N¬O¸ê®Æ®wºÞ²z¨t²Îªº­«­n¥\¯à¡A¤]¬O¤@¶µ¬D¾Ô¡C ¨ì¥Ø«e¬°¤î³o´X­Ó¸ê®Æ®w¨t²Î´£¨Ñªº¥\¯à³£»·¤£¦p±Mªù°µ¸ê®Æ½Æ»sªº¤½¥q¨Óªº¦n¡C

¹Ï¤Q¥| Replication
¡@ Oracle Sybase Informix Microsoft DBMaker
Hot Standby Yes Yes Yes Yes Yes
Ownership Yes No Yes No No
Peer-to-peer Yes No Yes No No
Cascading Yes Yes No No No
Fragment Yes Yes Yes Yes No
Projection No Yes Yes Yes No
To other
DBMSs
through
gateway
through
gateway
No through
ODBC
No
Architecture 2-tier 3-tier 2-tier 3-tier 2-tier

³Ì«á¤@­Ó­n¶µ¬O platform¡C¤@­Ó²£«~ªº¥\¯à¦A¦n¡A­Y¬O¤£¯à¥Î¦b¥¿½Tªº¾÷¾¹¤W¡A´N¤£¯àµo´§¨ä¥\¥Î¡C¦p¹Ï¤Q¤­¤¤©Ò¥Ü¡A Oracle¡BSybase¡BInformix¡B DBMaker³£¥i¥H¦b¤j³¡¤ÀªºUNIXÀô¹Ò¡A¤Î Windows 95¡BNT¤W°õ¦æ¡C ¦Ó Microsoft SQL Server 6.5 «h¥u¦³¦b Windows NT ¤Wªºª©¥»¡C ·íµM³o¥i¯à¬O¥L­Ìªº§Q°ò¡C ¦ý¬O¡A¤@­Ó database ²£«~¤ä´© platform ªº¦h¤Ö¡A ¬O·|¼vÅT¥ø·~ªºÂX¥R©Êªº¡C·í¥ø·~«ùÄòÂX¼W¡A¸ê®Æ®w«ùÄòÅܤj¡A­Y­ì¦³ platform µLªk­t²ü¦Ó±ý§ó´« platform ®É¡A´N·|¨ü¨ì¸ê®Æ®w¨t²ÎµLªk²¾´Óªº­­¨î¡C ¦]¦¹¦bÁʶR¸ê®Æ®w¨t²Î«e¡A¨Æ¥ýÀ³¸Ó±N¸ê®ÆªºÂX¥R©Ê¦Ò¼{¦b¤º¡C

¹Ï¤Q¤­ Platforms
¡@ Oracle Sybase Informix Microsoft DBMaker
Platforms UNIX¡A95
NT¡AVAX¡A
VMS¡AOS/2¡A
Macintosh
UNIX¡A95¡A
NT¡AVAX¡A
VMS¡AOS/2¡A
Macintosh
UNIX¡A95¡A
NT
NT UNIX¡A95¡A
NT

ºî¦X¥H¤Wªº¤ñ¸û¡A §Ú­Ì¥i¥Hµo²{¦b³o½g¤å³¹¤¤©Ò°Q½×ªº¤­­Ó¸ê®Æ®w¨t²Î³£¦³¦U¦Ûªºªø³B©Mµu³B¡CÀHµÛ¨C­Ó·sªºª©¥»½Ï¥Í¡A ¦b³o³õÄvÁɤ¤¨Ã¨S¦³¥Ã»·ªºÄ¹®a©Î¿é®a¡C¦bµû¦ô¿ïÁÊ¸ê®Æ®w¨t²Î¤§«e¡A §Ú­ÌÀ³¸Ó¥ý¤ÀªR¦Û¤vªº»Ý¨D¡A µ¹¤©¨C­Ó¶µ¥Ø¾A·íªº¤ñ­«¡C·íµM°£¤F¥»½g°Q½×ªº¶µ¥Ø¤§¥~¡A §Ú­Ì­n¦Ò¼{ªº¦]¯ÀÁÙ¥]¬A»ù®æ¡B§Þ³N¤ä´©¡B±Ð¨|°V½m¬O§_§¹³Æ? ¬O§_®e©ö¶}µoÀ³¥Îµ{¦¡ µ¥¡C³Ì«á¡A«Ü­«­nªº¤@ÂI¬O¡A §A¤£¥u¶R¤F¤@­Ó¸ê®Æ®w¨t²Î¡A §A¶Rªº¨ä¹ê¬O¨º­Ó¸ê®Æ®w¨t²Îªº¬ãµo¤H­û»P§Þ³NªA°È¤H­û¡A¥L­Ì¹ï§AªºªA°È¦nÃaµ´¹ï¼vÅTµÛ§Aªº¨t²Î¹B§@¡C §A¶ZÂ÷¥L­Ì¶V»·¡A´N­n¥I¥X§ó¦hªº¤ß¤O¨ÓºÞ²z§Aªº¸ê®Æ®w¡C

°Ñ¦Ò¸ê®Æ:

  1. Robin Schumacher¡A"DBA Tools Today"¡ADBMS¡AJan¡A1997
  2. Martin Rennhackkamp¡A"Comparison Summary"¡ADBMS¡ANov¡A1996
  3. Cor Winckler¡A"Microsoft SQL Server 6.5"¡ADBMS¡ANov¡A1996
  4. Willem Roos¡A"Informix-Online Dynamic Server 7.2"¡A  DBMS¡ANov¡A1996
  5. Martin Rennhackkamp¡A"Sybase SQL Server 11"¡ADBMS¡ANov¡A1996
  6. Martin Rennhackkamp¡A"Oracle7 Release 7.3"¡ADBMS¡ANov¡A1996
  7. Steve Roti¡A"Indexing and Access Mechanisms"¡ADBMS¡A  May¡A1996
  8. Oracle Webserver Release 1.0 Datasheet
  9. Kevin Reichard¡A"Web Server for Database Applications"¡AInternet Systems¡AOct¡A1996
  10. Robin Schumacher¡A"Universal DBMSs and the Web"Internet Systems¡AApr¡A1997
  11. Charles J.Bontempo and C.M.Saracco¡A"Accelerating Indexed Searching"¡ADatabase Programming & Design¡A1995
  12. Sybase web.sql Programmer's Guide
  13. Microsoft SQL Server 6.5 Books
  14. Alex Berson and George Anderson¡ASybase and Client/Server Computing¡A1996
  15. DBMaker Reference manua7ls
  16. DBMaker Technical Report
Copyright 2002 SYSCOM Computer Engineering Co. All rights reserved.