來源:無錫網(wǎng)站建設(shè)阿凡達(dá) 瀏覽次數(shù):324 發(fā)表日期:2023-05-22
網(wǎng)站數(shù)據(jù)層處于三層邏輯體系架構(gòu)中的*底層,它用于實(shí)行信息系統(tǒng)對(duì)數(shù)據(jù)庫的操作,包括增加、刪除、修改、査找記錄等,是網(wǎng)站中相對(duì)穩(wěn)定持續(xù)的部分,它向網(wǎng)站邏輯層提供數(shù)據(jù),原則上不涉及網(wǎng)站邏輯層的設(shè)計(jì)。網(wǎng)站數(shù)據(jù)層通常由一個(gè)或多個(gè)數(shù)據(jù)庫系統(tǒng)組成,如SQL Server2014,Oracle,DB2等。
1)網(wǎng)站數(shù)據(jù)層的功能
當(dāng)網(wǎng)站的邏輯層獲取從表示層得到的數(shù)據(jù)請(qǐng)求之后,完成對(duì)業(yè)務(wù)邏輯的編譯,將這種信號(hào)以SQL語句的形式傳輸給網(wǎng)站的數(shù)據(jù)層。網(wǎng)站數(shù)據(jù)層主要是對(duì)原始數(shù)據(jù)的操作層,而不 是指原始數(shù)據(jù),也就是說,是對(duì)數(shù)據(jù)的操作,而不是數(shù)據(jù)庫,具體為網(wǎng)站邏輯層或表示層提供數(shù)據(jù)服務(wù)。數(shù)據(jù)層從SQL語句中獲取相應(yīng)的參數(shù),該參數(shù)是以對(duì)象的方式傳遞的,即在用戶界面層獲得一系列數(shù)據(jù),把這些數(shù)據(jù)以對(duì)象屬性的方式進(jìn)行封裝,然后僅將對(duì)象傳遞給網(wǎng)站 邏輯層即可,網(wǎng)站邏輯層將對(duì)象的屬性進(jìn)行相應(yīng)的處理操作,*后將對(duì)象傳遞給網(wǎng)站數(shù)據(jù)層。數(shù)據(jù)層將對(duì)象的各個(gè)屬性作為SQL參數(shù)參與執(zhí)行,該層將執(zhí)行結(jié)果返回給網(wǎng)站邏輯層,執(zhí)行結(jié)果是以某條或多條數(shù)據(jù)記錄或者一個(gè)或多個(gè)數(shù)據(jù)表的形式呈現(xiàn)的。
2)網(wǎng)站數(shù)據(jù)層的工作理念
在網(wǎng)站系統(tǒng)中用戶操作相關(guān)界面完成對(duì)應(yīng)的業(yè)務(wù)流程的操作,但無論是什么業(yè)務(wù)流程*終反映到軟件系統(tǒng)中則是對(duì)數(shù)據(jù)庫中相關(guān)數(shù)據(jù)表單的數(shù)據(jù)進(jìn)行操作,所在網(wǎng)站框架中可以將數(shù)據(jù)訪問進(jìn)行深入抽象,將其分為數(shù)據(jù)庫的查詢運(yùn)算、插入運(yùn)算、修改運(yùn)算及刪除運(yùn)算。
這樣對(duì)應(yīng)的每個(gè)業(yè)務(wù)流程只需指定相關(guān)的數(shù)據(jù)表或視圖,就可根據(jù)表中的數(shù)據(jù)項(xiàng)自動(dòng)生成相關(guān)數(shù)據(jù)操作。
3)網(wǎng)站數(shù)據(jù)層的設(shè)計(jì)原則
網(wǎng)站數(shù)據(jù)層的設(shè)計(jì)原則應(yīng)時(shí)刻與網(wǎng)站的總體思想相一致,所設(shè)計(jì)的各個(gè)環(huán)節(jié)或板塊應(yīng)做到為整個(gè)系統(tǒng)更好地提供服務(wù),在網(wǎng)站的三層邏輯體系架構(gòu)中,各個(gè)層次之間相互協(xié)作。在數(shù)據(jù)庫中包含有不同同的層次以及不同的功能模塊,各部分的主要職責(zé)不同。盡量降低系統(tǒng)各部分之間的耦合度,提高模塊內(nèi)部的聚合程度是網(wǎng)站數(shù)據(jù)層設(shè)計(jì)的重要原則。將各個(gè)層面的數(shù)據(jù)進(jìn)行明確分工,有助于減少因數(shù)據(jù)的混亂所造成的損失。總之,網(wǎng)站數(shù)據(jù)層設(shè)計(jì)的核心思想是要做到“高內(nèi)聚,低耦合”。
將網(wǎng)站應(yīng)用系統(tǒng)在邏輯上劃分為不同的層次,有利于各個(gè)層次之間的相互獨(dú)立。在每層發(fā)生改變時(shí)而不影響其他層的正常運(yùn)行。這種網(wǎng)站的三層邏輯體系結(jié)構(gòu)劉分的優(yōu)點(diǎn)有:
①開發(fā)人員可以只將其中的某一層作為操作對(duì)象,在不影響其他各層的情況下完成對(duì)整個(gè)網(wǎng)站系統(tǒng)的完善和優(yōu)化。網(wǎng)站的項(xiàng)目結(jié)構(gòu)會(huì)更加清晰,分工明確,有益于后期的維護(hù)和升級(jí)。
②將各個(gè)層次進(jìn)行劃分,使得它們之間相互獨(dú)立,可以很容易的用新的實(shí)現(xiàn)替換原有層次的實(shí)現(xiàn)而不用考慮對(duì)另外兩個(gè)層次的影響。
③將整個(gè)網(wǎng)站的架構(gòu)劃分為3個(gè)層次,每一層有各自的主要使命和作用,相互之間的功能耦合性減少,便于系統(tǒng)的維護(hù)和操作,降低了各層之間的相互依賴性。
④擴(kuò)展性強(qiáng)。不同層負(fù)責(zé)不同的層面,具有不同的用途。在一個(gè)層的內(nèi)部進(jìn)行擴(kuò)展,不會(huì)對(duì)其他層造成影響,且因?yàn)槊繉拥淖饔孟嗤?,在此基礎(chǔ)上進(jìn)行相關(guān)內(nèi)容的添加是非常便捷的。
⑤安全性高。要想從用戶端的表示層獲取來自數(shù)據(jù)層的數(shù)據(jù)信息,必須通過網(wǎng)站邏輯層的傳輸。避免用戶與數(shù)據(jù)庫的直接接觸,減少了入口點(diǎn),把很多危險(xiǎn)的系統(tǒng)功能都屏蔽了
從開發(fā)角度和應(yīng)用角度來看,網(wǎng)站的三層邏輯體系架構(gòu)適合群體開發(fā),每人可以有不同的分工,協(xié)同工作使效率倍增。開發(fā)雙層或單層應(yīng)用時(shí),每個(gè)開發(fā)人員都應(yīng)對(duì)系統(tǒng)有較深的理解,能力要求很高,開發(fā)三層應(yīng)用時(shí),則可以結(jié)合多方面的人才,只需少數(shù)人對(duì)系統(tǒng)全面了解,從一定程度上降低了開發(fā)的難度
當(dāng)然,網(wǎng)站的三層邏輯體系架構(gòu)的劃分不可避免地具有一些不足:
(1)與單層或雙層架構(gòu)的劃分相比,該模式不可避免地降低了網(wǎng)站的運(yùn)行性能。如果跳過中間層的網(wǎng)站邏輯層,用戶可直接對(duì)數(shù)據(jù)庫進(jìn)行訪問,可大大減少獲取相應(yīng)數(shù)據(jù)的時(shí)間。實(shí)現(xiàn)更好的用戶體驗(yàn),提升用戶的滿意程度。
(2)三層邏輯體系架構(gòu)的設(shè)定,有時(shí)網(wǎng)站建設(shè)可能會(huì)導(dǎo)致級(jí)聯(lián)的修改。例如,表現(xiàn)層如果想更改或增加每一項(xiàng)功能,就必須對(duì)網(wǎng)站邏輯層和數(shù)據(jù)層的代碼進(jìn)行相應(yīng)的修改或增加。三層體系架構(gòu)表面看是分離的,但其內(nèi)部有不可忽視的關(guān)聯(lián)性。
(3)網(wǎng)站層次的增加必然會(huì)導(dǎo)致代碼的增加,加大了系統(tǒng)的運(yùn)行負(fù)擔(dān),增加了工作量,從而增強(qiáng)了網(wǎng)站內(nèi)部的復(fù)雜程度。
免費(fèi)答疑熱線
400-189-1319
添加微信