¤¤j¸ê®Æ®wºÞ²z¨t²Î¤§¤ñ¸û
¤ñ¸û¤Ó¥DnªºÃöÁ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¡CY¬O¨S¦³¥J²ÓÁA¸Ñ¡A
¥i¯à´N¸õ¶i¤F¤@Ó³£¬O Yes «o¨S¦³¤@¶µ¬O¯u¥¿²Å¦X»Ý¨Dªº³´¨À¤¤¡C
¦b³o½g¤å³¹¤¤¡A§ÚÌ·|¤ñ¸û¤Ó¥DnªºÃöÁ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¤è«Ü¦ht±ªºµû»ù¡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¤¤¤å¸ê®Æ¬°¥Dn¦Ò¶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§ÚÌ·íµMn¤ñ¸û¦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 ºØ°Ê§@ :
- set NULL¡A§Y·í parent table ¤¤ delete ©Î update ¤@µ§¸ê®Æ®É¡Aforeign table
¤Wªº¸ê®Æ¬O³]¬° NULL¡C
- set default¡A³] foreign key ¬° default value¡C
- 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
- 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:
- ³æ¤@ table
- ¨S aggregate function ©Î group by
- ¤£¬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
|
| ¹Ï¤ 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?
- ¥¦¥i§Q¥Î¥¬ªL (boolean) ¹Bºâ¨Ó¥[³t¤ñ¸ûªº°Ê§@¡C¦p¹Ï¤C¤¤¡AY
§ÚÌn§ä¦í¦b¥x«nªº¤uµ{®v´N¥i¥H§Q¥Î "¾·~" ¤¤¤uµ{®vªº¨ºÓ bit array »P "©~¦í«°¥«"
¤¤ªº¥x«n§@ AND ¹Bºâ¡C
- ¥¦¥i¥H´î¤Ö index ªºÀx¦s°Ê§@¡CY¤@ÓÄæ¦ì¥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
|
AND |
©~¦í«°¥«
¥x«n
|
|
µ²ªG
¡@
|
|
¥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¥un 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¤è±¨Ó¬Ý
:
- ¬O§_¦³ user friendly ªº GUI tool ¨ÓºÞ²z¸ê®Æ®w¡C
- ¬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°ò¥»¤Wn¤ä´©¤À´²¦¡¸ê®Æ®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¤¤¤À¤½¥qY¬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¡AY¬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¡AY즳 platform
µLªkt²ü¦Ó±ý§ó´« 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´Nn¥I¥X§ó¦hªº¤ß¤O¨ÓºÞ²z§Aªº¸ê®Æ®w¡C
°Ñ¦Ò¸ê®Æ:
- Robin Schumacher¡A"DBA Tools Today"¡ADBMS¡AJan¡A1997
- Martin Rennhackkamp¡A"Comparison Summary"¡ADBMS¡ANov¡A1996
- Cor Winckler¡A"Microsoft SQL Server 6.5"¡ADBMS¡ANov¡A1996
- Willem Roos¡A"Informix-Online Dynamic Server 7.2"¡A
DBMS¡ANov¡A1996
- Martin Rennhackkamp¡A"Sybase SQL Server 11"¡ADBMS¡ANov¡A1996
- Martin Rennhackkamp¡A"Oracle7 Release 7.3"¡ADBMS¡ANov¡A1996
- Steve Roti¡A"Indexing and Access Mechanisms"¡ADBMS¡A
May¡A1996
- Oracle Webserver Release 1.0 Datasheet
- Kevin Reichard¡A"Web Server for Database Applications"¡AInternet
Systems¡AOct¡A1996
- Robin Schumacher¡A"Universal DBMSs and the Web"Internet
Systems¡AApr¡A1997
- Charles J.Bontempo and C.M.Saracco¡A"Accelerating Indexed
Searching"¡ADatabase Programming & Design¡A1995
- Sybase web.sql Programmer's Guide
- Microsoft SQL Server 6.5 Books
- Alex Berson and George Anderson¡ASybase and Client/Server Computing¡A1996
- DBMaker Reference manua7ls
- DBMaker Technical Report
|