    20      

    -     

    - (business rule)  ,   
,          
.     ,      
,       . 
           . 
   . -. 
    Q	       . 
    	    $950  . 
    	        
 . 
                
,     . 
    D         $5. 
    Q  ,      ,  
    10%     . 
    Q           . 
              
   ,   . 
                
.  ,       , 
    .    
    -    
   .       
/,         
-,       . 
         -    
    /.  - 
         
  ,    .    ,  
  -     
 ,         
,  ,     -    
      . 
     -   ,  
   ,   ,  
,         . 
         
  .      ,  
   ,     
 .   ,     
    ,     
    .   -   
  . 
              
 -:    /,   
     (middleware). He  
,      /   
   .    ,   ,     

    414 IV.    

     .     
   "  /  
 -.     @. . . SAY. . . 
GET  dBASE  . 
             , 
     -  .   
          
 /    -  , 
    ,       . 
,      ,     
      . 

     - 

          -  , 
     -.    
  -     . 
      -    
,         , 
 .  ,      
     ,    .  
      ,     
    .  ,    
   -. 

      

           -   
(constraint),      .      
 -     .    
       - .  
        .  
   -       
      . 
            
 .     -    
   :     , 
           
 .      . 
           . 
   ,     ,   
  .   : "   
    ".      
,       ,  .  
   : "    
  '', '', ''". ,   
,      ,    
 : "       ". 
    -       
(, "       ")   
  (  "      
    ,   0.07").   
 -   ,   
     -~ ,     
.         
. ,       . 
    -      . 
     .    
 ?    ,   ?    
      Y?   : "  
          
     ".   
        
  . 
       ,       
.   ,    . ,  , 
     .   
         
  .   ,      
    .    ,  
      .     
     

     20. -    	415 

(posting)    .      ,  
    ,     (  
    ),      
. ,     ,   
 (bucketless),        
   ,        , 
  (bucket). 
    ,      -,  
:    ?    ,    
  ,        
-.       . ,  
 -      . 
      /   
 .     -  
        
 ,     . 

     -   

    ,      ,       
   -   .  , 
   -     "   
".     . 
      , -    ,  
           
  . 
          . 
      ,  -     
/         
.  ,   -,  
,       . 
    ,         
   ""  ""    . 

         

          -  
         
.        , 
        
     . 
       -     
       , 
   .    -  
   /  ,    
          
.       .   
  /      
 ,    .   
  ,       
-,   ,      . 
         -     . 
         
     ,     
  ,     . 
  -      , 
        
 ,      , 
        , 
            
  .     
    ,   
        ,    
      .     - 
     ,       
   ,   , , 
 .      Windows,   
    Intel. , Windows NT  
    ,        , 
  Sybase SQL Server,     
     . 

    416 IV.    

         

            
 ,    .   
         ( ,  
)  .      
  . 
            - 
     .    
 ,        .    
         
.       ,  
    .        
       .     
 -:         
       .   
         
-  . 
     ,       
-  ,        
.  ,        
     .   , 
    ,     ,  
     ,        
 ,     ,    
 .    ,    
   . 
       ,        
         . 
Sybase,  ,        
 .  ,  ,  Sybase Replication Server, 
        
        .  
 -     .   
         
  ,        . 
           
  ,  ,   ,    
         
 . 
        -     
        
  /.        
      /  
,    -. 
             . 
        
     (  Borland)  
       . 
 ,  Delphi  -    
/,            
   ,    ,   
     -. 

    j         

        -    
       ,   
-.      ,   
   . ,      
  ,          
 . 
           
,    . , Object Pascal 
  SQL.  BASIC  SQL. 
         -   
     , 
 -,  ,     
 .   -  ,  
     .    
  21,-" -   Delphi" . 

     20. -    	417 
    14 Delphi 3   / 

         

        -   
    ,       
 .     ,    
    /,     
  .      
   ,        , 
   ,    . , 
   -,     
  .   ,   
-         . 
,          
    ,      ,  
   .      , 
    . 
     ,         
,    ,    
 " ".    
 ,  -     
  . - ,    ,  
,      .   ,   
     ,     ,  
      .   
 ,     "   ".    
   -       . 
             
/       , 
      . 
  ,       
   .        
             
  ,      
  . 
               
 /        
.     /  
   ,      
    . ,    
  ,   ,   ,   
   .  "    "  
  . 
      ,    -  
,        
 ,       .  
,       ,   
,  Delphi,      Oracle Developer/2000,   
  .   Developer/2000     
 -,    Delphi,    
      .   
      . ,  
  -     Delphi   
     Delphi  Borland C++,   
     .    ,   
 -     ,     
       UNIX? 
     ,  -     
    -      
 .         , 
 ,      .   
         
- CASE-.     . 
    ,        
-   .      
     ,    
 .        
   .     
- .      
      .   
 -       . 
,         
,        .   
 -  ,       
       -. ,  
    . 

    418 IV.    

      -     

       ,   
       .   
     ,     .  
        
.  ,       
 ,       . 
   ,      
   ,  BDE,   ,   
OLEntreprise,    Delphi 3  Client/Server.  
   .   
-          . 
   -       
, ,   ,       . 
  ,  NeXTSTEP   (Steve Job), 
    . 
          
  -?  -   
   ,      -_  
    . 
            "  "  
"   ". -     , 
 .         , 
   ,       -. 
     Delphi       , 
       .  
    /   
,   .      
   22, "   ". 

      -     

              
 ,     .   ,  
-      ,      
   .      
         ,   
. ,   :       
  ,    ,    
        -,   
      . 

     -   

          ,   
 -  ,  :  - 
?   -      
.  , , ,    , 
   .         
    -. 

      -  

    ,      -,    
      /. 
 ,  ,     . 
   ,     , 
        
      . 

     20. -    	419 

        -   : 
   (domain integrity)    
(relational integrity).      , 
     . ,    
   ,        
  ,    . -,  
 ,        
 . 
           
. ,         
 ,       
       ,    
    . 
            
,      .   
     , . 
    Q	       . 
    Q	          
 . 
    	     VISA, MasterCard  American Express. 
               
       . 
              
  7%     $5     . 
    Q      ,        
. Q          Federal Express. 
        .     
   .      
    .       
   . ,    ,   
       -. 
,         
    ,        -  
.         
  . 
     CASE-,     
 /,   ,   
 -,      -  
   ,    .   
      -,  
CASE-      . 

       

    ,     ,    
  -  .      
    ,       . 
       .   
  -   ,     
 ,    . 
     ,    .  
  ,       , 
        , 
        . , 
,      SQL. 
     ,   . 
      ,  . 
  WITH CHECK OPTION   ANSI SQL  
  ,   SQL.      
 ,   .  
-       .   
          -. 
            (primary 
key constraint).   ,     
,     .     
      . , 

    420 IV.    

       ,      
 .         
        
,     .    
   ,       . 
 SQL         
    : 

    ALTER TABLE  CLIENT ADD  PRIMARY  KEY   (CustomerNumber) 


       

       (foreign key constraint)    
   .        
    . ,     
,   .     
       ,   
   .       
,       ,    
SQL  , , : 

    ALTER TABLE  ORDER ADD  FOREIGN KEY   (CustomerNumber)   REFERENCES  CLIENT 


      

           .  
    ,     
    . , , 
  ,      , 
 VISA, MasterCard  American Express.     
    .    
  SQL. 

    ALTER  TABLE   ORDERS  ADD  CONSTRAINT   INVALID_CREDIT_CARD CHECK   
(CreditCardType   in   ('V,    'M',    'A')) 

           , : 

    CREATE TABLE NYSE_EVENTS 
    ( 
    EventNo INTEGER NOT NULL, 
    Year INTEGER NOT NULL CHECK (YEAR >= 1790), 
    Description VARCHAR(SO) NOT NULL, 
    Resolution VARCHAR(80) NOT NULL 
    PRIMARY KEY (EventNo) 
    ); 

           ,   
 ,    . 

        

            , 
      INSERT,     
.     ,    
   . 
    CpegHj3a3pa6oT4HKOB      
      .  Delphi, ,  
 ,   OnNewRecord. 
     ,       
 . "  ,    
  .       ,  
    ,   , . 
           
  ,     .    
  ANSI.  ANSI      
      : 

    ALTER TABLE ORDERS 
    ADD CreditCardType chard) 
    DEFAULT 'V 

     20. -    	421 

     

      -     
 SQL.  ,      SELECT, 
   ,       
,   .  SQL   ,    
   -,     
  . 
    ,      
   . 

    CREATE VIEW INVOICEDETAIL 
    AS 
    SELECT   InvoiceNumber,   LineNumber,   PriceEach   *   UnitsOrdered  ExtendedTotal 

        "     
  ,    ,   
   ". 

     

        ,      
    .      
 SQL,      . ,  
Sybase   Transact-SQL, a Oracle  PL/SQL.   
  .       
  ,  ,     .   
,      : 

    CREATE  TRIGGER  ORDERSInsert   FOR  ORDERS  BEFORE   INSERT  AS BEGIN 
    IF   (New.CreditCardType='V   AND New.Amount<50.00)   THEN 
    EXCEPTION  BELOW_MINIMUM_VISA; END 

        ,   ,   
 VISA,    $50.       
          
   .       
 . 

      

          -  
   SQL.    ,    
    DML (Data Manipulation Language    
),       ,   
.         
-    . 
    ,     ,   
        
-.        ,  Delphi, 
  ,        
     .   TUpdateSQL  
Delphi     DML.     
      Delphi,  
     ,    
.       
,          
  Delphi. 
             ,  
    .  ,   , 
    .       
     .  
       "" 
        ,  
  .  ,   ,   
.   ,       
,   ,  ,     . 
        ,     ,    
 ,    .    
 "" ,    

    422	IV.    

       .   Delphi,    
      . 
       ,  .     
  .       
,    ,   . 
             
     .      
         , 
       . 
          .     
          
,      : 

    CREATE PROCEDURE POSTAP (APACCOUNT) 
    AS 
    DECLARE VARIABLE APTOTAL FLOAT 
    BEGIN 
    SELECT   SUM(AmountOfTransaction)   TranAmount 
    INTO   :APTOTAL 
    FROM APTRANS; 
    UPDATE  GLBAL  SET  APMonthEndBalance=APMonthEndBalance+:APTOTAL 
    WHERE  AccountNumber=:APACCOUNT; END 

        AmountOfTransaction  APTRANS 
    APMonthEndBalance.   -, 
       
   . 
         ,     
    SELECT,   ,  
   ,    .  , 
    - , , ,  
     . 

     

        ,      
   ,  ,   -  
     .    
          . 
  ,   ,   . 
  ,       
      ,     , 
    . ,   
    ,     
.           . 

     ... 

      21, "-   Delphi",   
 -   .      
  ,     -, 
         .   
21     ,    . 

     20. -    	423 
