最新文章專題視頻專題問(wèn)答1問(wèn)答10問(wèn)答100問(wèn)答1000問(wèn)答2000關(guān)鍵字專題1關(guān)鍵字專題50關(guān)鍵字專題500關(guān)鍵字專題1500TAG最新視頻文章推薦1 推薦3 推薦5 推薦7 推薦9 推薦11 推薦13 推薦15 推薦17 推薦19 推薦21 推薦23 推薦25 推薦27 推薦29 推薦31 推薦33 推薦35 推薦37視頻文章20視頻文章30視頻文章40視頻文章50視頻文章60 視頻文章70視頻文章80視頻文章90視頻文章100視頻文章120視頻文章140 視頻2關(guān)鍵字專題關(guān)鍵字專題tag2tag3文章專題文章專題2文章索引1文章索引2文章索引3文章索引4文章索引5123456789101112131415文章專題3
問(wèn)答文章1 問(wèn)答文章501 問(wèn)答文章1001 問(wèn)答文章1501 問(wèn)答文章2001 問(wèn)答文章2501 問(wèn)答文章3001 問(wèn)答文章3501 問(wèn)答文章4001 問(wèn)答文章4501 問(wèn)答文章5001 問(wèn)答文章5501 問(wèn)答文章6001 問(wèn)答文章6501 問(wèn)答文章7001 問(wèn)答文章7501 問(wèn)答文章8001 問(wèn)答文章8501 問(wèn)答文章9001 問(wèn)答文章9501
當(dāng)前位置: 首頁(yè) - 科技 - 知識(shí)百科 - 正文

SQLServer數(shù)據(jù)體系和應(yīng)用程序邏輯

來(lái)源:懂視網(wǎng) 責(zé)編:小采 時(shí)間:2020-11-09 13:55:44
文檔

SQLServer數(shù)據(jù)體系和應(yīng)用程序邏輯

SQLServer數(shù)據(jù)體系和應(yīng)用程序邏輯:在許多用SQL Server實(shí)現(xiàn)的新的企業(yè)系統(tǒng)設(shè)計(jì)中,系統(tǒng)設(shè)計(jì)師需要在給數(shù)據(jù)結(jié)構(gòu)和管理應(yīng)用程序邏輯的定位上做出具有關(guān)鍵性意義的決定。SQL Server有它自己的編程語(yǔ)言(Transact-SQL,即TSQL),開發(fā)者可以用它來(lái)管理數(shù)據(jù)訪問(wèn)、代碼事務(wù)邏輯和交易控制。 使用TSQ
推薦度:
導(dǎo)讀SQLServer數(shù)據(jù)體系和應(yīng)用程序邏輯:在許多用SQL Server實(shí)現(xiàn)的新的企業(yè)系統(tǒng)設(shè)計(jì)中,系統(tǒng)設(shè)計(jì)師需要在給數(shù)據(jù)結(jié)構(gòu)和管理應(yīng)用程序邏輯的定位上做出具有關(guān)鍵性意義的決定。SQL Server有它自己的編程語(yǔ)言(Transact-SQL,即TSQL),開發(fā)者可以用它來(lái)管理數(shù)據(jù)訪問(wèn)、代碼事務(wù)邏輯和交易控制。 使用TSQ

在許多用SQL Server實(shí)現(xiàn)的新的企業(yè)系統(tǒng)設(shè)計(jì)中,系統(tǒng)設(shè)計(jì)師需要在給數(shù)據(jù)結(jié)構(gòu)和管理應(yīng)用程序邏輯的定位上做出具有關(guān)鍵性意義的決定。SQL Server有它自己的編程語(yǔ)言(Transact-SQL,即TSQL),開發(fā)者可以用它來(lái)管理數(shù)據(jù)訪問(wèn)、代碼事務(wù)邏輯和交易控制。 使用TSQL,

  在許多用SQL Server實(shí)現(xiàn)的新的企業(yè)系統(tǒng)設(shè)計(jì)中,系統(tǒng)設(shè)計(jì)師需要在給數(shù)據(jù)結(jié)構(gòu)和管理應(yīng)用程序邏輯的定位上做出具有關(guān)鍵性意義的決定。SQL Server有它自己的編程語(yǔ)言(Transact-SQL,即TSQL),開發(fā)者可以用它來(lái)管理數(shù)據(jù)訪問(wèn)、代碼事務(wù)邏輯和交易控制。
  使用TSQL,開發(fā)者可以創(chuàng)建保存過(guò)程,在保存過(guò)程中用一段可重用、預(yù)編譯而且擁有自己的許可設(shè)置的代碼塊來(lái)封裝數(shù)據(jù)訪問(wèn)。數(shù)據(jù)庫(kù)中每個(gè)表格都有一組叫做triggers的特殊的保存過(guò)程。當(dāng)?shù)讓訑?shù)據(jù)庫(kù)發(fā)生特定的數(shù)據(jù)庫(kù)事件(如Insert、Delete或者Update)時(shí),trigger就被 “觸發(fā)”了。使用triggers,開發(fā)者就可以編寫基于事件的事務(wù)邏輯,這樣,給定表格的Insert、Delete和Update事件就可以驅(qū)動(dòng)其它表格的變化。
  既然有了這樣的靈活性,那么我們?yōu)槭裁床槐M可能用TSQL寫更多的事物邏輯呢?
  使用TSQL來(lái)開發(fā)應(yīng)用程序邏輯存儲(chǔ)
  TSQL不僅可以作為單個(gè)應(yīng)用程序的邏輯倉(cāng)庫(kù),它也可以是一個(gè)訪問(wèn)相同數(shù)據(jù)的應(yīng)用程序組的邏輯倉(cāng)庫(kù)——這有幾個(gè)邏輯上的原因。通過(guò)對(duì)數(shù)據(jù)的集中處理和管理SQL server中數(shù)據(jù)的規(guī)則,你可以配置這樣的安全體系——即應(yīng)用程序在通過(guò)事務(wù)規(guī)則之前,不可以訪問(wèn)底層數(shù)據(jù)庫(kù)。
  這是大多數(shù)兩層客戶——服務(wù)器應(yīng)用程序的常見數(shù)據(jù)庫(kù)范例。該體系把所有的事務(wù)邏輯和數(shù)據(jù)訪問(wèn)交給后端的服務(wù)器而把豐富的表示邏輯交給客戶端??蛻艄芾硎聞?wù)過(guò)程和數(shù)據(jù)的視(view),但不在本地處理除顯示之外的其它事務(wù)。如果把所有的事務(wù)邏輯放到中央倉(cāng)庫(kù)去,那么這個(gè)體系還有降低管理成本的潛力,但這會(huì)付出降低了可測(cè)性的代價(jià)。
  我最近接觸了一個(gè)客戶,它花了數(shù)百個(gè)人月(一個(gè)人工作一個(gè)月的工作量)和數(shù)以千計(jì)的美元來(lái)設(shè)計(jì)一個(gè)非常復(fù)雜的、用TSQL管理所有應(yīng)用程序邏輯的應(yīng)用程序。盡管該體系非常精巧、在10到15個(gè)用戶的情況下也運(yùn)行良好,但是如果有20個(gè)用戶,速度就非常慢。通過(guò)給SQL server增加處理器的方法,該系統(tǒng)可以允許60個(gè)用戶同時(shí)使用。但是這距離100個(gè)用戶的設(shè)計(jì)目標(biāo)還有很大一段距離,這就使得該公司在 Internet上開放該應(yīng)用程序的計(jì)劃無(wú)法實(shí)施下去。由于存儲(chǔ)過(guò)程和trigger只能操作本地?cái)?shù)據(jù),該公司無(wú)法把該應(yīng)用程序分解成多個(gè)SQL server以提高可測(cè)性。結(jié)果,該公司不得不大規(guī)模的修改它。
  在應(yīng)用程序邏輯中使用.NET類
  上面那家公司在經(jīng)過(guò)一段曲折后所發(fā)現(xiàn)的問(wèn)題,大多數(shù)體系設(shè)計(jì)師在體系設(shè)計(jì)階段都會(huì)重新認(rèn)識(shí)到——應(yīng)用程序邏輯包含在一組.NET類的n層體系可以增加該應(yīng)用程序的靈活性和可測(cè)性。由于TSQL是一種以管理數(shù)據(jù)為主要目的的語(yǔ)言,因此它不夠靈活,但是我們?nèi)钥梢杂肨SQL編寫出復(fù)雜的事務(wù)邏輯。
  如果開發(fā)者使用.NET框架,那么他們可以在開發(fā)核心事務(wù)過(guò)程時(shí)做出自己的語(yǔ)言選擇。這個(gè)靈活性可以讓你對(duì)應(yīng)用程序要求和開發(fā)語(yǔ)言或者資源進(jìn)行最合理的搭配。而且如果適當(dāng)開發(fā),封住這些事務(wù)過(guò)程的對(duì)象可以在多臺(tái)機(jī)器上運(yùn)行并共享同樣的底層數(shù)據(jù)庫(kù)server。在與處理TSQL事務(wù)邏輯無(wú)關(guān)的情況下,SQL server可以應(yīng)付大量的并發(fā)請(qǐng)求。
  行操作(row operation)和集操作(set operations)
  在規(guī)劃體系階段時(shí)判斷使用行操作還是集操作的一個(gè)指導(dǎo)思想就是:如果使用TSQL就使用集操作,如果使用.NET則進(jìn)行行操作。通過(guò)網(wǎng)絡(luò)連接來(lái)提供大量的數(shù)據(jù)會(huì)影響應(yīng)用程序的整體性能,所以只要有可能就使用server來(lái)處理它們——這樣做是很有意義的。但是從內(nèi)存和處理能力的角度來(lái)看,,SQL Server的指針(cursor)是非常昂貴的對(duì)象,因此創(chuàng)建一個(gè)指針來(lái)遍歷集合中的所有記錄并依次處理這些記錄一般來(lái)說(shuō)并沒有多大意義。 ()
  當(dāng)你需要執(zhí)行基于行的處理,而這些處理包括了復(fù)雜的程序邏輯或者占用CPU比較厲害的操作時(shí),你就應(yīng)該從server中查詢這些行并在中間層來(lái)處理它們。
  如果你想通過(guò)一個(gè)例子來(lái)看看如何把數(shù)據(jù)訪問(wèn)邏輯封裝到一個(gè)中間層對(duì)象中去,請(qǐng)從MSDN中下載數(shù)據(jù)訪問(wèn)應(yīng)用程序模塊。這是一個(gè)提供代碼的、可重用的數(shù)據(jù)訪問(wèn)子系統(tǒng),你可以根據(jù)它來(lái)編寫自己的數(shù)據(jù)庫(kù)或者特性應(yīng)用程序的數(shù)據(jù)訪問(wèn)對(duì)象。
  通過(guò)創(chuàng)建可重用的.NET應(yīng)用程序框架來(lái)處理大多數(shù)應(yīng)用程序邏輯、并用基于TSQL的保存過(guò)程來(lái)作為服務(wù)器端的集操作的安全限制和機(jī)制,那么你就可以創(chuàng)建同時(shí)擁有TSQL和.NET這兩者優(yōu)點(diǎn)的應(yīng)用程序了。

聲明:本網(wǎng)頁(yè)內(nèi)容旨在傳播知識(shí),若有侵權(quán)等問(wèn)題請(qǐng)及時(shí)與本網(wǎng)聯(lián)系,我們將在第一時(shí)間刪除處理。TEL:177 7030 7066 E-MAIL:11247931@qq.com

文檔

SQLServer數(shù)據(jù)體系和應(yīng)用程序邏輯

SQLServer數(shù)據(jù)體系和應(yīng)用程序邏輯:在許多用SQL Server實(shí)現(xiàn)的新的企業(yè)系統(tǒng)設(shè)計(jì)中,系統(tǒng)設(shè)計(jì)師需要在給數(shù)據(jù)結(jié)構(gòu)和管理應(yīng)用程序邏輯的定位上做出具有關(guān)鍵性意義的決定。SQL Server有它自己的編程語(yǔ)言(Transact-SQL,即TSQL),開發(fā)者可以用它來(lái)管理數(shù)據(jù)訪問(wèn)、代碼事務(wù)邏輯和交易控制。 使用TSQ
推薦度:
  • 熱門焦點(diǎn)

最新推薦

猜你喜歡

熱門推薦

專題
Top