譯者序前言第1章ASP.數據和數據庫 11.1數據與信息 11.2數據訪問簡史 21.2.1早期的計算環(huán)境 31.2.2Internet帶來的影響 51.3當前的構造解決方案 91.3.1WindowsDNA2000體系結構 91.3.2WindowsDNA的數據訪問 131.4小結 15第一部分數據庫基本原理第2章數據庫設計思想 172.1數據庫系統(tǒng)的簡要回顧 182.1.1層次型數據庫 182.1.2網絡型數據庫 192.1.3面向對象的數據庫 192.2良好設計的重要性 192.3開發(fā)一個邏輯設計 242.3.1確保數據完整性 242.3.2關系型數據庫與平面文件數據庫 252.3.3標準化處理 272.3.4關系.基數和ER圖 402.3.5引用的完整性 412.3.6實施相關業(yè)務規(guī)則 422.4物理設計和調整 492.4.1使用索引 502.4.2使用視圖和存儲過程 512.4.3調整執(zhí)行性能 532.5創(chuàng)建并管理統(tǒng)計數字 552.6小結 56第3章SQL編程 573.1什么是SQL 573.2使用SELECT訪問數據 613.2.1SELECT語句的基本結構 613.2.2計算統(tǒng)計和其他運算 633.2.3使用一個SELECT語句來對數據進行分類 683.2.4在SELECT語句中使用條件 703.2.5用統(tǒng)計函數分組 753.3對多個表進行查詢 783.3.1JOIN的可選語法 783.3.2外部的連接 803.4使用SQL創(chuàng)建和修改表 833.4.1創(chuàng)建表 833.4.2用SQL修改表 853.5添加.刪除.修改數據 863.5.1向表中添加數據 863.5.2刪除表中的數據 873.5.3更新表中的數據 873.6事務處理過程 883.7查詢的技巧 903.7.1組合順序查詢 903.7.2生成交叉制表的查詢 923.7.3使用動態(tài)表 953.7.4生成記錄的組合 973.7.5對連接使用比較條件 983.8小結 101第4章存儲過程.觸發(fā)器和視圖 1024.1視圖 1024.1.1創(chuàng)建和使用視圖來選擇數據 1034.1.2修改和刪除視圖 1044.1.3使用視圖更改數據 1064.1.4視圖的優(yōu)點 1084.2存儲過程 1104.2.1使用存儲過程的優(yōu)越性 1114.2.2運行存儲過程 1134.2.3創(chuàng)建存儲過程 1144.2.4刪除存儲過程 1224.2.5重新編譯存儲過程 1244.2.6編寫存儲過程的代碼 1244.3觸發(fā)器 1444.4小結 149第二部分數據訪問第5章數據訪問簡介 1515.1開放式數據庫互連 1525.1.1運行時驅動管理器 1525.1.2ODBC驅動 1535.1.3連接到ODBC數據源 1545.1.4SQL的作用 1555.1.5超越ODBC 1555.2走向數據對象模型 1565.2.1DAO——數據訪問對象 1565.2.2RDO——遠程數據對象 1585.2.3ODBCDirect 1595.3ADO 1595.4通用數據訪問 1595.4.1OLEDB 1605.4.2UDA與通用數據存儲 1605.5目前的ADO 1615.5.1ADO2.0 1615.5.2ADO2.1 1615.5.3ADO2.5 1615.5.4ADO+ 1615.6小結 162第6章OLEDB 1636.1OLEDB基本原理 1636.2OLEDB體系結構 1656.2.1OLEDB消費者 1656.2.2OLEDB提供者 1666.2.3OLEDB服務提供者 1696.3OLEDB對象 1696.3.1映射ADO到OLEDB 1706.3.2OLEDB接口 1716.4OLEDB2.5的新特性 1756.4.1對半結構化數據的支持 1756.4.2直接URL綁定 1756.4.3通過OLEDB訪問數據源 1776.5小結 190第7章ActiveX數據對象 1917.1ADO對象模型概要 1917.2連接到數據庫 1927.2.1如何連接到數據庫 1937.2.2連接池 1997.3提取和使用數據 2007.4使用存儲過程 2127.4.1傳遞參數 2127.4.2對XML的支持 2187.4.3有效地使用ADO 2207.5小結 221第三部分體系結構第8章ASP應用程序體系結構 2238.1WindowsDNA 2248.1.1可擴展性 2248.1.2安全性 2258.1.3WindowsDNA2000 2268.1.4多層體系結構 2268.1.5應用程序的物理層 2328.2COM/COM+ 2368.2.1接口 2388.2.2IDispatch接口——遲綁定 2408.2.3組件和接口等的運行時識別——GUID 2408.2.4組件設計 2428.2.5接口設計 2448.3用VB創(chuàng)建組件 2458.4使用C/C++和ATL創(chuàng)建組件 2508.5小結 254第9章組件服務 2559.1微軟的事務服務器 2559.1.1什么是MTS 2569.1.2為什么要使用MTS 2569.1.3對象實例管理 2579.1.4環(huán)境管理 2579.1.5資源分配器 2589.2COM+ 2589.2.1COM+應用程序 2609.2.2COM+是如何工作的 2619.2.3開發(fā)COM+組件 2629.2.4安裝COM+應用程序 2709.2.5消息 2769.2.6消息隊列 2769.2.7建立隊列 2779.2.8MSMQ對象模型 2789.2.9實現(xiàn)消息隊列 2819.2.10COM+隊列組件 2869.3下一代的組件服務 2889.3.1增強的可擴展性 2889.3.2增強的管理能力 2889.3.3增強的可用性 2889.4小結 289第10章設計用戶服務 29010.1瀏覽器兼容性問題 29110.2優(yōu)秀的設計準則 29210.2.1ASP代碼的設計 29210.2.2頁面設計 29510.3設計一個Web站點:ArticleBazaar 29610.3.1構建ASP代碼 29810.3.2編寫這個Web站點的代碼 30210.3.3跨瀏覽器編程的技巧 30910.4瀏覽器特有的頁面 31010.4.1DHTML下拉窗口 31010.4.2WAP的特殊情況 31210.5通過XML顯示數據 31310.6小結 314第11章構建數據訪問組件 31511.1組件的優(yōu)越性 31511.1.1組件可以做什么 31511.1.2組件的類型 31711.2創(chuàng)建組件 31811.2.1VisualBasicActiveXDLL 31811.2.2COMAPI 31911.2.3ArticleBazaar.Query組件 31911.2.4插入新的文章 32511.3無身份組件 32711.3.1MTS編程模型 32711.3.2具有COM+兼容性的ArticleBazaar組件 32911.4基于COM的API的優(yōu)越性 33111.5小結 337第12章構建OLEDB組件 33812.1C++組件不是二流組件 33812.1.1走進C++活動服務器頁面 33912.1.2OLEDB.ODBC和ADO 34012.2C++中的數據訪問 34112.3定義一個消費者類 34512.4定義包裝組件 34812.5為什么用ASP組件 35112.5.1XML作為“萬能粘合劑” 35312.5.2直接使用ASP內部方法 35312.5.3創(chuàng)建查詢頁面 35412.6使用存儲過程 35812.6.1存儲過程的設計 35812.6.2從C++調用存儲過程 36012.7小結 362第13章用COM+集成應用 36313.1配置ASP應用 36313.1.1隱藏管理員帳戶 36413.1.2Web日志 36413.1.3目錄樹 36513.1.4磁盤分區(qū)及格式化 36513.1.5應用的配置 36513.1.6應用保護 36813.2集成COM+ 36913.2.1COM+的開發(fā) 37013.2.2準備COM+應用 37213.2.3基于角色的安全策略 37713.2.4把C++組件變?yōu)镃OM+組件 37813.3小結 380第四部分關系型數據庫第14章MicrosoftSQLServer 38114.1從ASP連接到一個SQLServer數據庫 38114.1.1SQLServer安全性——集成安全性和標準安全性 38114.1.2如何使用ASP代碼連接到SQLServer數據庫 38214.2擴展的存儲過程 38314.3設置MicrosoftSQLServer中的環(huán)境 38414.3.1NOCOUNT 38514.3.2ARITHABORT 38514.3.3ARITHIGNORE 38514.3.4CONCAT_NULL_YIELDS_NULL 38614.3.5ANSI_WARNINGS 38614.4存儲過程的性能因素 38714.4.1數據庫統(tǒng)計信息 38714.4.2運行方案 39114.4.3優(yōu)化存儲過程的內容 39214.5自動化操作 39514.5.1任務的創(chuàng)建和調度 39614.5.2在SQLServer中使用電子郵件 39814.5.3配置SQLMail 39914.5.4在SQLAgentMail中使用報警 40314.5.5使用WebAssistantWizard 40614.6小結 409第15章Oracle8和Oracle8i 41115.1Oracle簡史 41115.2Oracle版本8 41115.3Oracle版本8i 41215.4安裝Oracle客戶組件 41315.5連接到Oracle數據庫 42115.5.1OLEDBProviderforOracle 42215.5.2MicrosoftODBCDriverforOracle 42715.5.3OracleObjectsforOLE(OO4O) 42815.5.4PL/SQL概述 43715.5.5一個OracleASP應用程序示例 44115.5.6從Oracle存儲過程來檢索ADO記錄集 45315.5.7使用引用指針來檢索ADO記錄集 45915.6小結 462第16章IBMDB2通用數據庫 46416.1客戶組件的安裝 46516.2控制中心 46716.3OLEDB 46916.4ODBC連接 46916.5從ASP訪問DB2 47116.5.1記錄集 47216.5.2數據顯示 47316.5.3訪問數據庫圖表 47316.5.4存儲過程 47516.6一個小應用 47716.7小結 486第17章MySQL 48717.1MySQL簡介 48717.1.1支持環(huán)境 48717.1.2MySQL提供的功能 48817.2MyODBC的安裝 48917.3連接到MySQL 49117.3.1通過MySQL監(jiān)視命令行進行連接 49217.3.2通過DSN連接來進行連接 49317.3.3通過非DSN連接進行連接 49517.4MySQL的用戶權限 49617.4.1用戶表 49617.4.2數據庫表 49717.4.3主機表 49817.4.4tables_priv表 49817.4.5columns_priv表 49917.5MySQL的SQL語言簡介 50017.5.1區(qū)分大小寫 50017.5.2日期驗證 50017.5.3支持的函數 50117.6MySQL的局限性 50317.6.1用戶空間 50417.6.2子查詢 50417.6.3對事務的支持 50417.6.4存儲過程 50417.6.5觸發(fā)器 50517.6.6外關鍵字 50517.6.7視圖 50517.6.8日期驗證 50517.6.9合并操作 50517.7MySQL地址簿例程 50517.7.1創(chuàng)建地址簿數據庫 50617.7.2地址簿例子中的ASP應用程序 50717.8小結 519第五部分非關系型數據第18章目錄服務 52118.1ActiveDirectory 52118.1.1安裝ActiveDirectory 52218.1.2探討ActiveDirectory 52318.2目錄服務 52718.3其他的目錄服務 52818.3.1NetscapeDirectoryServer和OpenLDAPDirectoryServer 52818.3.2IISMetaBase 52918.3.3NovellDirectoryServices 52918.3.4ExchangeDirectory和SiteServerMembershipDirectory 52918.3.5WinNT 52918.4ADSI簡介 52918.4.1ADSI提供者 53118.4.2LDAP提供者 53118.4.3WinNT提供者 53218.4.4ADSI接口模型 53318.5枚舉一個對象的后代 53718.5.1認證目錄對象 54018.5.2列出域用戶 54218.5.3搜索 54318.5.4利用ADO進行搜索 54718.6小結 550第19章NDS和ASP 55119.1什么是NDS 55119.2NDS布局與規(guī)則 55219.2.1容器對象 55219.2.2葉對象 55319.2.3屬性 55319.2.4定制對象 55419.2.5命名對象 55419.3開發(fā)NDS應用程序 55519.3.1NDS編程支持 55519.3.2面向Web的NDS編程 55919.4為了安全目的使用NDS 55919.5小結 572第20章索引服務 57320.1引言 57320.2從數據庫角度看索引服務 57420.2.1分類表 57420.2.2結果集 57520.2.3關鍵字 57520.2.4文件屬性 57620.2.5范圍 57620.2.6過濾和索引處理 57620.2.7查詢 57720.2.8查詢語言 57720.2.9查詢方法 57820.2.10虛擬網站和分類表 57820.2.11安全問題 57920.3索引服務管理對象 57920.3.1AdminIndexServer對象的方法 57920.3.2CatAdm對象的屬性 58020.3.3CatAdm對象的方法 58120.3.4ScopeAdm對象的屬性 58120.3.5ScopeAdm對象的方法 58220.4創(chuàng)建帶有管理對象的分類表 58220.4.1編寫虛擬網站 58220.4.2編制分類表 58620.5自動查詢對象 58720.5.1Query對象的屬性 58720.5.2Query對象的方法 58820.5.3Utility對象的方法 58820.6構造一個Web搜索 58920.6.1用戶界面 58920.6.2為分類表創(chuàng)建索引 59020.6.3使用COM對象進行搜索 59220.6.4使用OLEDB提供者進行搜索 59620.7小結 598第21章半結構化數據與Internet發(fā)布 59921.1半結構化數據 60021.2Internet發(fā)布 60221.3更詳細的WebDAV 60321.4用于Internet發(fā)布的OLEDB 60421.5連接到MSADIPP 60521.6以Windows資源管理器進行Internet發(fā)布 60821.7使用InternetExplorer的Internet發(fā)布 61021.8Internet發(fā)布與ASP 61021.9列舉主目錄中的文件 61121.10列舉一個文件或者文件夾的屬性 61321.11移動或者重新命名一個文件或者文件夾 61521.12拷貝一個文件或者文件夾 61621.13創(chuàng)建一個新文件或者文件夾 61721.14刪除一個文件或者文件夾 61721.15讀取一個文件的內容 61721.16小結 620第22章Exchange2000 62122.1簡介 62122.1.1Exchange2000中的新特色 62122.1.2Exchange2000和ActiveDirectory 62322.1.3Exchange2000和WebDAV 62322.2Web數據庫系統(tǒng)說明 62322.2.1Web數據庫系統(tǒng)協(xié)議 62422.2.2支持能力 62722.3在Web數據庫系統(tǒng)中編程 62922.3.1OLEDBAccess——ExOLEDB 62922.3.2搜索數據庫 63922.4信息傳遞與協(xié)作 64522.4.1發(fā)送信息 64622.4.2處理信息屬性 64822.4.3展望 64922.5小結 649第23章遺留數據 65123.1IBMHost與SNANetworks 65223.1.1物理單元 65223.1.2邏輯單元 65323.1.3層次SNA網絡模型 65323.1.4Peer-OrientedSNA網絡模型 65423.2遺留數據的類型 65523.2.1關系型數據 65523.2.2非關系型數據 65623.2.3DB2 65623.2.4VSAM和IMS/DB 65623.3分布式數據管理 65623.4MicrosoftSNAServer和HostIntegrationServer2000 65723.4.1SNAServer 65723.4.2HostIntegrationServer2000 65823.5配置SNAServer和HostIntegrationServer 65823.6配置OLEDBProviderforDB2 66123.7配置OLEDBProviderforAS/400andVSAM 66423.8使用OLEDBProviderforDB2從ASP應用程序中連接到一個演示主機 66723.9使用OLEDBProviderforAS/400andVSAM從ASP應用程序中連接到一個演示主機 67423.10小結 679第六部分XML與ASP第24章XML入門 68124.1XML.HTML與SGML 68124.1.1標準通用標記語言——SGML 68224.1.2超文本標記語言——HTML 68224.1.3擴展標記語言——XML 68224.1.4XML文檔 68324.2XML文檔的其他部分 68624.2.1處理指令 68624.2.2實體 68724.2.3CDATA部分 69024.2.4注釋 69024.3XML語言 69024.3.1XML名稱空間 69124.3.2獲得一個XML詞匯表 69224.3.3XML語言的DTD語法 69224.3.4檢測DTD 69624.3.5XML語言的模式 69824.4XML語法分析程序 69924.4.1初始化一個語法分析程序 70024.4.2節(jié)點對象 70024.4.3遍歷XML文檔 70024.5XML數據島 70224.5.1標記 70224.5.2獲得XMLDOM 70424.5.3引用外部文件 70424.6小結 705第25章轉換與格式化XML 70625.1為XML給定一個樣式表 70625.1.1編寫一個XSL(T)文件 71025.1.2使用樣式表 71325.2具有XML和XSL的document/view應用程序 71625.2.1ASP方法 71625.2.2動態(tài)HTML方法 71625.3服務器端XML和XSL(T) 72025.3.1編寫XML與發(fā)送HTML 72225.3.2ISAPI過濾器能否幫助我們解決問題 72325.3.3MicrosoftXSLISAPI 72525.4小結 725第26章ADO與XML 72726.1保存ADO記錄集 72726.1.1ADTG格式 72826.1.2XML數據模式 72826.1.3寫入和裝入記錄集 73026.2使用基于XML的記錄集 73226.2.1應用過濾器 73326.2.2更新記錄集 73426.2.3刪除記錄 73626.2.4插入記錄 73626.2.5提交改變的內容 73726.3流化一個記錄集 74026.3.1從流到記錄集 74026.3.2從記錄集到流 74126.4ADO+出現(xiàn)的原因 74226.4.1記錄集調度 74326.4.2XML調度 74426.4.3ADO+數據集 74426.4.4結構問題 74526.5小結 746第27章XML與關系數據庫 74727.1XML與SQLServer2000 74727.1.1Web訪問 74727.1.2XPath查詢語法 74727.1.3更新grams 74827.1.4SQLServerXML結構 74827.1.5配置訪問 74827.1.6URL中的SQL查詢 75027.1.7模板文件 75927.1.8數據庫更新 76227.1.9格式化結果 76527.2XML和Oracle 76627.2.1XMLSQLUtility 76627.2.2Xmlgen程序包 76827.2.3OracleXML示例 77527.3XML與DB2 77827.3.1安裝DB2XMLExtender 77827.3.2XMLExtender管理向導 78127.3.3DAD 78527.3.4從DB2中檢索XML數據 79327.3.5向數據庫插入行 79527.4小結 797第七部分高級主題第28章電子貿易和電子商務 79928.1改進客戶的體驗 79928.1.1存儲客戶數據 79928.1.2銷售鏈集成 80128.1.3供應鏈集成 80128.2個性化和成員化 80128.2.1目錄與數據庫 80228.2.2P&M范例與客戶數據庫集成 80228.2.3客戶配置文件 80328.2.4建立產品目錄清單 80528.2.5創(chuàng)建客戶數據庫 80828.2.6創(chuàng)建業(yè)務層和表示層 80928.3安全性 82328.3.1當數據在服務器上傳輸的時候保護數據 82328.3.2保護服務器上的數據 82528.3.3共享服務器主機服務技術和它對于電子商務的沖擊 82528.4小結 826第29章數據整形 82729.1為什么需要數據整形技術 82829.2范例:檢索雇員的詳細情況 83129.2.1數據整形連接字符串 83429.2.2命令字符串 83529.3孫記錄集 83729.4統(tǒng)計總量 83929.5參數化記錄集 84129.6其他主題 84229.6.1重新整形 84229.6.2創(chuàng)建新的父節(jié)點 84229.6.3VBA函數 84229.7數據環(huán)境設計器 84229.8小結 846第30章多維數據 84830.1RocksWorks運動中心 84930.2介紹分析服務軟件 85330.3生成OLAP數據庫 85530.3.1步驟1:數據倉庫 85530.3.2步驟2:立體數據庫 85830.4使用ASP語言編寫分析服務程序 87030.5MDX 87230.6范例 87330.6.1顯示層 87330.6.2顯示一個結果數據表 87530.7小結 878第31章數據挖掘技術 87931.1基礎知識:數據倉庫技術 87931.2數據挖掘技術綜述 88231.3數據挖掘技術 88331.3.1可視化 88331.3.2聚類 88331.3.3決策樹 88431.3.4神經網絡 88431.4數據挖掘技術和ASP應用程序 88531.5數據挖掘工具 88731.6AnalysisServices 89031.6.1安裝AnalysisServices 89031.6.2AnalysisManager 89131.6.3從ASP中訪問數據挖掘模型 89631.7數據挖掘技術的展望 90631.8小結 907第32章遠程數據服務 90832.1什么是RDS 90832.1.1為什么使用RDS 90932.1.2什么時候不使用RDS 91032.1.3RDS2.6對象模型 91032.2利用DataControl對象實現(xiàn)數據綁定 92032.2.1綁定到DSO 92132.2.2表的分頁技術 92332.2.3DHTML數據綁定事件 92432.3RDS和定制對象 92432.3.1針對HTTP連接的注冊表修改 92432.3.2注冊一個帶有DCOM的對象 92532.3.3調用定制商業(yè)對象 93032.4安全問題和RDS 93132.5RDS范例 93532.5.1創(chuàng)建中間層對象 93632.5.2編寫Web頁面的代碼 93832.6小結 945第33章高級查詢接口 94633.1超越SQL 94633.2異類查詢 94733.2.1建立分布式查詢 94733.2.2鏈接服務器 94733.2.3OPENROWSET關鍵字 95033.2.4使用OPENROWSET關鍵字 95033.3尋找一種通用查詢語言 95233.3.1是否存在某種可以使用的UQL 95333.3.2XSL模式和XPath 95333.3.3什么是自然語言 95433.4英語查詢 95433.4.1MSEQ和數據庫 95433.4.2應用程序如何使用MSEQ 95533.5使得MSEQ開始工作 95733.5.1MSEQ實體和關系 95733.5.2測試EQ應用程序 96033.5.3管理特定問題 96133.5.4增強ArticleBazaar網站的功能 96533.6查詢OLAP立體數據庫 96833.7小結 970第八部分性能和安全性第34章可擴展性和性能 97134.1對應用程序進行評價 97134.2硬件的性能 97534.2.1內存 97634.2.2磁盤驅動器和磁盤驅動控制器 97834.2.3網絡性能 98034.3軟件的性能 98134.3.1操作系統(tǒng)和服務器軟件 98134.3.2應用程序的性能 98534.4通過集群技術獲取可靠性和可擴展性 99234.4.1MicrosoftSQLServer中的集群技術 99334.4.2WebFarm中的集群技術 99434.5小結 999第35章安全性 100035.1Windows2000和安全性 100035.2身份驗證 100135.2.1IIS的身份驗證 100235.2.2基于cookie的身份驗證 100735.2.3基于證書的身份驗證 101135.2.4使用ASP自定義身份驗證 101335.3Web服務器的身份驗證 101435.4防止攻擊 101735.4.1使用軟件的最新版本 101835.4.2使用SYSKEY來保護密碼數據 101835.4.3文件夾權限提供的安全性 102035.4.4進程隔離帶來的安全性 102035.4.5IP地址和域限定帶來的安全性 102135.4.6對數據庫的訪問 102135.5小結 1022第九部分實例研究第36章實例研究1:基于Web的報表 102336.1商業(yè)目標 102336.2使用應用程序 102436.3應用程序如何工作 102836.3.1Start頁 102936.3.2Parameters頁 103136.3.3Result頁 103436.3.4訪問中間層組件 103536.3.5數據庫 103736.3.6安全 104436.4小結 1046第37章實例研究2:動態(tài)元素 104837.1提出問題 104837.2解決方案 104937.3創(chuàng)建表關系 105037.3.1創(chuàng)建一個數據庫腳本 105137.3.2填充Sub_Task_T表 105437.3.3存儲過程 105537.4在客戶端創(chuàng)建動態(tài)HTML元素 105837.5動態(tài)元素的服務器端處理 106837.5.1在服務器端處理動態(tài)元素的ASP網頁 106837.5.2測試網頁 107337.6瀏覽結果 107437.7小結 1075附錄AASP對象模型 1077附錄Bp2p.wrox.com 1084