顧夢嬌 那孜古力·斯拉木 鐘青陽 汪世宇 趙鴻博 馬文濤
摘要:“智慧消防”建設(shè)中一項(xiàng)重要任務(wù)是采集及分析城市消防數(shù)據(jù),全面展示火災(zāi)情況和數(shù)據(jù)特征。面向“智慧消防”的數(shù)據(jù)采集及分析系統(tǒng)采用Python的網(wǎng)絡(luò)爬蟲Request庫和Django網(wǎng)絡(luò)框架,設(shè)計(jì)了一個(gè)面向城市消防領(lǐng)域的數(shù)據(jù)采集及數(shù)據(jù)分析的系統(tǒng)。該系統(tǒng)不僅能快速地獲取城市消防數(shù)據(jù),還能全面分析并可視化展示火災(zāi)情況和特征,從而提升火災(zāi)數(shù)據(jù)采集的效率并拓展城市火災(zāi)數(shù)據(jù)分析的方法。該系統(tǒng)將提升火災(zāi)數(shù)據(jù)采集效率,拓展城市火災(zāi)數(shù)據(jù)分析的理論和方法,為“智慧消防”的發(fā)展做出貢獻(xiàn)。
關(guān)鍵詞:智慧消防;爬蟲;數(shù)據(jù)可視化;數(shù)據(jù)分析;Web應(yīng)用架構(gòu)
中圖分類號(hào):TP311.5? ? ? 文獻(xiàn)標(biāo)識(shí)碼:A
文章編號(hào):1009-3044(2023)34-0066-05
開放科學(xué)(資源服務(wù))標(biāo)識(shí)碼(OSID)
0 引言
“智慧消防”對(duì)于提升消防安全水平和保障公眾生命財(cái)產(chǎn)安全至關(guān)重要[1],近幾年逐漸成為近年消防界研究的熱點(diǎn)[2]。盡管已有的智慧消防系統(tǒng)取得了一些成果,但在數(shù)據(jù)采集和分析方面仍存在不足之處[3]。傳統(tǒng)的數(shù)據(jù)采集方法效率低下且容易出錯(cuò)[4],而現(xiàn)有系統(tǒng)在數(shù)據(jù)分析和展示方面缺乏全面性和準(zhǔn)確性[5]。因此,開展了面向城市消防領(lǐng)域的數(shù)據(jù)采集及分析系統(tǒng)。首先利用Python的Request網(wǎng)絡(luò)爬蟲技術(shù)獲取城市消防數(shù)據(jù)[6],之后通過Django框架實(shí)現(xiàn)了系統(tǒng)的爬蟲功能、數(shù)據(jù)分析、數(shù)據(jù)可視化等功能[7]。本文旨在提升火災(zāi)數(shù)據(jù)采集效率,拓展城市火災(zāi)數(shù)據(jù)分析的理論和方法,為“智慧消防”的發(fā)展做出貢獻(xiàn)。
1 相關(guān)技術(shù)
1.1 網(wǎng)絡(luò)爬蟲Request庫概述
網(wǎng)絡(luò)爬蟲是一種自動(dòng)化程序,用于從網(wǎng)頁中獲取數(shù)據(jù)信息。通過訪問網(wǎng)頁的文本協(xié)議和地址來實(shí)現(xiàn)數(shù)據(jù)的爬取,無須人為干預(yù)或操作即可完成網(wǎng)站中數(shù)據(jù)信息的自動(dòng)化爬取[8]。網(wǎng)絡(luò)爬蟲技術(shù)主要用于對(duì)網(wǎng)頁中數(shù)據(jù)的爬取和分析,可以應(yīng)用于多種網(wǎng)絡(luò)信息的檢索和存儲(chǔ)[9]。常用的網(wǎng)絡(luò)爬蟲操作流程是“獲取數(shù)據(jù)-解析數(shù)據(jù)-存儲(chǔ)數(shù)據(jù)”,模擬了用戶使用瀏覽器獲取網(wǎng)頁信息的過程。在Python中,常用的HTTP請(qǐng)求庫是Requests[10]。相比于urllib庫,Requests更易于使用,并可以減少很多工作量[11]。實(shí)際上,Requests是在urllib基礎(chǔ)上進(jìn)行了高度封裝,并支持一些其他特性,如使用Cookie保持會(huì)話、自動(dòng)確定響應(yīng)內(nèi)容的編碼等[12]。
1.2 Django框架簡介
Django框架結(jié)構(gòu)如圖1所示。Django 的設(shè)計(jì)采用的是 MTV(Model-View-Template) 架構(gòu),一種與經(jīng)典 MVC 架構(gòu)類似的架構(gòu)[13]。M模型層與數(shù)據(jù)庫交互,進(jìn)行增刪改查操作;models.py中的Firesi類定義了火災(zāi)案例的關(guān)鍵信息,可根據(jù)需求增加和修改屬性。通過M模型層操作實(shí)現(xiàn)對(duì)數(shù)據(jù)庫中火災(zāi)案例數(shù)據(jù)的靈活管理和處理。V視圖層接收請(qǐng)求并處理業(yè)務(wù),view.py中的函數(shù)完成爬蟲任務(wù)和案例管理,通過Fight()函數(shù)作為爬蟲入口,Jiangxi_news()c和Guizhou_news()獲取特定省份的消防案例,Keys()確定案例屬性,News()和Root_Delete()負(fù)責(zé)保存和刪除案例,通過Echarts()展示案例的圖表化信息。在系統(tǒng)中,T表現(xiàn)層封裝和構(gòu)造了要返回的HTML,創(chuàng)建了基本的頁面模板,包括layout.html、fight.html、news.html、show.html和echarts.html,通過動(dòng)態(tài)生成相應(yīng)的HTML頁面,給用戶提供展示和交互的界面,實(shí)現(xiàn)了頁面的組織和重用,提高了系統(tǒng)的可維護(hù)性和靈活性。
2 系統(tǒng)分析
2.1 系統(tǒng)功能需求分析
從用戶角度出發(fā),設(shè)計(jì)實(shí)際功能,系統(tǒng)需要實(shí)現(xiàn)登錄系統(tǒng)、數(shù)據(jù)采集、數(shù)據(jù)預(yù)處理、數(shù)據(jù)預(yù)覽、可視化分析等功能。系統(tǒng)包括普通用戶和管理員用戶。用戶功能需求分析階段的用例圖如圖2所示。
系統(tǒng)管理員通過登錄系統(tǒng)模塊確認(rèn)身份后,可以采集消防網(wǎng)頁的數(shù)據(jù),并以超鏈接的形式顯示火災(zāi)案例標(biāo)題。當(dāng)管理員該功能按鈕時(shí),數(shù)據(jù)采集模塊會(huì)自動(dòng)調(diào)用數(shù)據(jù)預(yù)處理模塊對(duì)采集到的原始數(shù)據(jù)進(jìn)行清洗、轉(zhuǎn)換、集成和規(guī)范化等操作。處理后的數(shù)據(jù)會(huì)被存入數(shù)據(jù)庫,并通過數(shù)據(jù)預(yù)覽模塊進(jìn)行文本呈現(xiàn)、刪除和導(dǎo)出操作,方便其他研究人員使用。同時(shí),系統(tǒng)還設(shè)計(jì)了可視化分析模塊,為普通用戶提供前后端交互的可視化界面,方便他們?yōu)g覽數(shù)據(jù)分析結(jié)果。整體而言,數(shù)據(jù)預(yù)處理是數(shù)據(jù)采集的子過程,因?yàn)樗蕾囉跀?shù)據(jù)采集,而沒有數(shù)據(jù)采集,就無法進(jìn)行數(shù)據(jù)預(yù)處理。因此,在用例圖中使用include關(guān)系能夠清晰地表達(dá)數(shù)據(jù)采集包含數(shù)據(jù)預(yù)處理的關(guān)系。
2.2 系統(tǒng)非功能性分析
由于性能需求總是與系統(tǒng)的具體功能相聯(lián)系,所以非功能性需求工程方法的結(jié)果質(zhì)量通常取決于功能性需求規(guī)格的質(zhì)量[14]。對(duì)于該系統(tǒng),除了實(shí)現(xiàn)數(shù)據(jù)采集、預(yù)處理和可視化分析功能外,還要滿足以下幾個(gè)非功能性需求:
1) 安全需求:降低緊急情況發(fā)生的可能性,快速反應(yīng)并處理異常,以防止系統(tǒng)故障和數(shù)據(jù)丟失。
2) 可靠性需求:確保準(zhǔn)確無誤的數(shù)據(jù)采集,規(guī)范輸入數(shù)據(jù)格式,避免因格式不一致而引發(fā)錯(cuò)誤。
3) 易用性需求:功能直觀易學(xué),操作簡便,界面簡潔美觀。
4) 可擴(kuò)展性需求:具備良好的可擴(kuò)展性,能夠滿足未來的業(yè)務(wù)增長和功能變化需求。
5) 靈活性需求:適應(yīng)不同網(wǎng)頁結(jié)構(gòu),進(jìn)行適當(dāng)修改以適應(yīng)不同消防網(wǎng)頁的環(huán)境和結(jié)構(gòu)。
綜合考慮上述需求,系統(tǒng)會(huì)采取多層次的安全措施,驗(yàn)證和備份數(shù)據(jù),保證數(shù)據(jù)準(zhǔn)確性和安全性。用戶界面會(huì)簡潔明了,邏輯直觀,提供操作指南。系統(tǒng)采用模塊化架構(gòu),支持新的功能和數(shù)據(jù)源擴(kuò)展。同時(shí),系統(tǒng)也會(huì)靈活適應(yīng)不同網(wǎng)頁環(huán)境和結(jié)構(gòu)。
3 系統(tǒng)設(shè)計(jì)
3.1 系統(tǒng)架構(gòu)設(shè)計(jì)
面向城市消防的數(shù)據(jù)采集及分析系統(tǒng)架構(gòu)設(shè)計(jì)如圖3所示。該應(yīng)用采用了多層架構(gòu)來實(shí)現(xiàn)功能。在應(yīng)用層,使用HTML、CSS和JavaScript等前端語言設(shè)計(jì)Web頁面,以展示相關(guān)功能。在業(yè)務(wù)層,采用了基于MTV模式的Django框架,包含Model層、View層和Template層,用于設(shè)計(jì)功能模塊、處理業(yè)務(wù)邏輯和展示火災(zāi)案例數(shù)據(jù)給用戶。數(shù)據(jù)庫層主要處理系統(tǒng)內(nèi)部的數(shù)據(jù)交互,使用MySQL作為數(shù)據(jù)庫存儲(chǔ)數(shù)據(jù),其復(fù)雜性很低,但是仍然提供廣泛的數(shù)據(jù)庫功能和選項(xiàng)[15],并提供數(shù)據(jù)預(yù)覽功能,實(shí)現(xiàn)數(shù)據(jù)庫的可視化管理。通過這種架構(gòu),系統(tǒng)實(shí)現(xiàn)了前端展示、業(yè)務(wù)邏輯處理和數(shù)據(jù)庫交互的功能。
3.2 系統(tǒng)功能模塊設(shè)計(jì)
面向城市消防的數(shù)據(jù)采集及分析系統(tǒng)模塊層次圖如圖4所示。總共由以下5個(gè)功能模塊組成:
1) 管理員登錄模塊
系統(tǒng)銀行分為管理員和普通訪客,以體現(xiàn)非功能需求的安全性。普通訪客可以直接訪問系統(tǒng)并進(jìn)入可視化分析頁面。然而,如果他們想進(jìn)入其他頁面,就需要進(jìn)行登錄驗(yàn)證。管理員需要輸入正確的用戶名、密碼和驗(yàn)證碼才能進(jìn)入系統(tǒng),管理員具有最高權(quán)限,可以執(zhí)行數(shù)據(jù)采集、預(yù)處理等操作,并對(duì)整個(gè)平臺(tái)進(jìn)行操作。
2) 數(shù)據(jù)采集模塊
數(shù)據(jù)采集模塊是為了確保數(shù)據(jù)來源的安全可靠,并且讓采集操作變得方便和易用。管理員在數(shù)據(jù)采集頁面上確認(rèn)需要爬取的省份,并輸入火災(zāi)案例的時(shí)間范圍,然后提交這些數(shù)據(jù)到后臺(tái)進(jìn)行采集。采集完成后,火災(zāi)案例的標(biāo)題以 URL 的形式展示在頁面上。為了提高系統(tǒng)的可擴(kuò)展性、全面性和靈活性,該模塊針對(duì)不同的省份編寫了不同的爬蟲函數(shù)。
3) 數(shù)據(jù)預(yù)處理模塊
管理員可以通過點(diǎn)擊火災(zāi)案例標(biāo)題進(jìn)入數(shù)據(jù)預(yù)處理頁面。在這個(gè)頁面上,管理員可以根據(jù)火災(zāi)案例新聞對(duì)數(shù)據(jù)進(jìn)行預(yù)處理,包括完善數(shù)據(jù)的屬性值。當(dāng)管理員確認(rèn)數(shù)據(jù)無誤后,可以將數(shù)據(jù)存儲(chǔ)到數(shù)據(jù)庫中。
4) 數(shù)據(jù)預(yù)覽模塊
數(shù)據(jù)預(yù)覽模塊是一個(gè)界面,它將數(shù)據(jù)庫中的數(shù)據(jù)以文本的形式展示在頁面上供管理員進(jìn)行操作。在這個(gè)模塊中,管理員可以對(duì)數(shù)據(jù)進(jìn)行導(dǎo)出和刪除操作。這個(gè)模塊設(shè)計(jì)簡單且易于使用,提供了強(qiáng)大的易用性。
5) 可視化分析模塊
可視化分析模塊的目標(biāo)是通過豐富的圖表類型來有效傳達(dá)消防案例數(shù)據(jù)的信息。消防案例數(shù)據(jù)擁有時(shí)間、空間和案例屬性三個(gè)維度,因此在設(shè)計(jì)過程中要考慮這些數(shù)據(jù)特點(diǎn)。模塊會(huì)有針對(duì)性地選擇柱狀圖、折線圖、餅圖、旭日?qǐng)D、樹圖和地圖等多種圖表類型,用于展示火災(zāi)案例的現(xiàn)狀情況。這樣的設(shè)計(jì)可以減少用戶認(rèn)知負(fù)擔(dān),提高決策效率,并促進(jìn)數(shù)據(jù)內(nèi)容的有效傳達(dá)。
4 數(shù)據(jù)庫設(shè)計(jì)
4.1 概念模型設(shè)計(jì)
在面向城市消防的數(shù)據(jù)采集及分析系統(tǒng)的實(shí)體關(guān)系圖中,實(shí)體有管理員、火災(zāi)案例屬性。系統(tǒng)E-R模型如圖5所示。
4.2 邏輯模型的設(shè)計(jì)
根據(jù)系統(tǒng)E-R模型圖,轉(zhuǎn)換出兩個(gè)數(shù)據(jù)表,分別是,用戶信息表AdminInfos:用于控制用戶訪問權(quán)限;火災(zāi)案例屬性表FileINFO:用于存儲(chǔ)每次火災(zāi)的火災(zāi)信息。分別如表1和表2所示。
5 系統(tǒng)開發(fā)及測試
5.1 功能模塊的實(shí)現(xiàn)流程
數(shù)據(jù)分析流程的研究方法如圖6所示,總共分為4部分,各部分負(fù)責(zé)的功能如下:
1) 數(shù)據(jù)采集:通過 requests 庫獲取各種消防案例的數(shù)據(jù)。
2) 數(shù)據(jù)清洗:通過 pandas、numpy、re 庫對(duì)案例的數(shù)據(jù)進(jìn)行清洗處理,得到火災(zāi)案例屬性值。
3) 數(shù)據(jù)存儲(chǔ):將處理好的屬性值存儲(chǔ)到 MySQL 數(shù)據(jù)庫。
4) 數(shù)據(jù)分析、展示:對(duì)數(shù)據(jù)進(jìn)行可視化現(xiàn)狀分析,以全面詳細(xì)的方式展現(xiàn)近年來的火災(zāi)發(fā)生情況和相關(guān)數(shù)據(jù)特征。
當(dāng)管理員點(diǎn)擊導(dǎo)航欄中的數(shù)據(jù)獲取按鈕時(shí),系統(tǒng)會(huì)跳轉(zhuǎn)到“/fight/”頁面,進(jìn)入數(shù)據(jù)采集模塊。在該模塊中,管理員需要選擇省份,并確認(rèn)時(shí)間范圍。一旦確認(rèn)完畢,管理員可以點(diǎn)擊開始爬取按鈕。
當(dāng)開始爬取按鈕被點(diǎn)擊后,表單數(shù)據(jù)會(huì)通過 form 提交至火災(zāi)采集視圖函數(shù) Fight()。在該函數(shù)中,可以通過 request.POST.get() 方法來獲取提交的信息,確認(rèn)省份編號(hào)、省份火災(zāi)平臺(tái)鏈接和時(shí)間范圍,通過調(diào)用預(yù)先編寫好的省份火災(zāi)平臺(tái)爬蟲代碼來獲取所需的數(shù)據(jù),并返回相應(yīng)的信息。數(shù)據(jù)采集的結(jié)果如圖7所示。
管理員點(diǎn)擊數(shù)據(jù)展示按鈕后,進(jìn)入“/show/”數(shù)據(jù)預(yù)覽模塊。調(diào)用視圖函數(shù) Show() 查詢火災(zāi)基本情況表數(shù)據(jù),并使用 paginator 創(chuàng)建分頁對(duì)象。通過 pagination.page_queryset 方法獲取數(shù)據(jù)和總頁數(shù)。
使用render() 傳遞數(shù)據(jù)到show.html 頁面,并將每條數(shù)據(jù)逐行展示。每條數(shù)據(jù)后面有刪除按鈕,點(diǎn)擊后在Root_Delete() 函數(shù)中使用 models.FileINFO.objects.filter(id=nid).delete() 刪除對(duì)應(yīng)數(shù)據(jù)。數(shù)據(jù)導(dǎo)出由 Save() 函數(shù)實(shí)現(xiàn),定義表頭信息,通過 for 循環(huán)將數(shù)據(jù)寫入 Excel 文件。預(yù)覽界面可參考圖8。
5.2 系統(tǒng)功能測試
圖9展示了六個(gè)省份在四年內(nèi)不同月份的城市火災(zāi)數(shù)量情況的堆疊條形圖。它可以將六個(gè)省份的火災(zāi)數(shù)量綜合起來,以便比較各省份之間的差異,快速了解火災(zāi)情況,并進(jìn)行直觀的比較。觀察圖表可知,在四年的8—11月份,江西省的火災(zāi)數(shù)量呈現(xiàn)出上升的趨勢。這個(gè)趨勢提醒當(dāng)?shù)卣兔癖娫谶@個(gè)時(shí)間段加強(qiáng)火災(zāi)防范工作,減少火災(zāi)的發(fā)生,以避免人員和財(cái)產(chǎn)的損失。
圖10折線圖展示了四年內(nèi)不同月份火災(zāi)數(shù)量的變化情況。數(shù)據(jù)顯示,每年的 8—11月份城市火災(zāi)數(shù)量顯著增加,高于其他月份。這一趨勢為消防部門提供重要的提示和提醒,應(yīng)在火災(zāi)高發(fā)期加強(qiáng)巡查和預(yù)防措施,以降低火災(zāi)發(fā)生率。
圖11條形圖可以直觀地比較各省份在不同月份的火災(zāi)數(shù)量,并能夠快速獲取某個(gè)省份火災(zāi)數(shù)量的變化趨勢。此外,它還具有方便的交互功能,比如點(diǎn)擊圖例可以展示具體省份的火災(zāi)數(shù)量情況,或者通過交互式操作展示不同時(shí)間段的火災(zāi)數(shù)量變化情況,幫助用戶更好地理解數(shù)據(jù)背后的趨勢和規(guī)律。結(jié)合圖10和圖11中的數(shù)據(jù),可以觀察到在2021年,陜西省的城市火災(zāi)數(shù)量最多,高于其他五個(gè)省份,特別是在8個(gè)月份的火災(zāi)數(shù)量都超過了廣東省。
6 結(jié)束語
本項(xiàng)工作的主要內(nèi)容是設(shè)計(jì)和實(shí)現(xiàn)面向城市消防領(lǐng)域的數(shù)據(jù)采集和分析系統(tǒng)。首先,介紹了Request庫,并詳細(xì)討論了采用了Django框架中MVT模式各模層的實(shí)現(xiàn)。接著對(duì)系統(tǒng)進(jìn)行了設(shè)計(jì),包括系統(tǒng)架構(gòu)、功能模塊和數(shù)據(jù)庫的設(shè)計(jì)。最后,介紹了系統(tǒng)功能的實(shí)現(xiàn)以及開發(fā)測試。
本文設(shè)計(jì)并實(shí)現(xiàn)的面向“智慧消防”的數(shù)據(jù)分析及采集系統(tǒng)能夠快速采集城市消防災(zāi)情的發(fā)生情況和關(guān)鍵特征數(shù)據(jù),并通過高效算法的分析,從龐大冗雜的歷史城市消防災(zāi)情數(shù)據(jù)庫中篩選出與目標(biāo)數(shù)據(jù)最匹配的一系列災(zāi)情數(shù)據(jù),為“智慧消防”領(lǐng)域的決策系統(tǒng)提供寶貴的數(shù)據(jù)資源。這將為消防部門提供準(zhǔn)確的災(zāi)情數(shù)據(jù)支持,有助于提高決策制定和災(zāi)情應(yīng)對(duì)的效率。
目前的不足之一是數(shù)據(jù)采集模塊的豐富度和系統(tǒng)界面設(shè)計(jì)方面存在有待完善之處。為了解決這些問題,未來的工作計(jì)劃是通過編寫更多地區(qū)的爬蟲代碼來豐富數(shù)據(jù)采集模塊,增加數(shù)據(jù)來源的多樣性。同時(shí),利用圖表功能生成更多的可視化分析,完善系統(tǒng)的數(shù)據(jù)展示和分析能力。此外,還計(jì)劃持續(xù)挖掘火災(zāi)數(shù)據(jù)的內(nèi)在聯(lián)系,深入研究數(shù)據(jù)背后的規(guī)律和趨勢。通過這些工作的持續(xù)改進(jìn),可以提升系統(tǒng)的功能和用戶體驗(yàn),進(jìn)一步提高應(yīng)用的價(jià)值和效益。
參考文獻(xiàn):
[1] 劉曉薇,雷蕾.智慧消防發(fā)展現(xiàn)狀研究[J].消防界(電子版),2022,8(1):19-22.
[2] 謝濟(jì)濤.智慧消防在消防安全管理中的應(yīng)用[J].消防界(電子版),2021,7(19):81-82.
[3] 李國生.智慧消防平臺(tái)建設(shè)探討[J].消防科學(xué)與技術(shù),2018,37(5):687-690.
[4] 肖調(diào)偉.基于大數(shù)據(jù)+GIS技術(shù)的滅火救援“一張圖” 構(gòu)想[J].中國公共安全(學(xué)術(shù)版),2018(2):65-67.
[5] 劉筱璐,王文青.美國智慧消防發(fā)展現(xiàn)狀概述[J].科技通報(bào),2017,33(5):232-235.
[6] 曾浩.基于Python的Web開發(fā)框架研究[J].廣西輕工業(yè),2011,27(8):124-125,176.
[7] 任妮,吳瓊,栗薈荃.數(shù)據(jù)可視化技術(shù)的分析與研究[J].電子技術(shù)與軟件工程,2022(16):180-183.
[8] 孫立偉,何國輝,吳禮發(fā).網(wǎng)絡(luò)爬蟲技術(shù)的研究[J].電腦知識(shí)與技術(shù),2010,6(15):4112-4115.
[9] 李玉香,王孟玉,涂宇晰.基于python的網(wǎng)絡(luò)爬蟲技術(shù)研究[J].信息技術(shù)與信息化,2019(12):143-145.
[10] 黎曦.基于網(wǎng)絡(luò)爬蟲的論壇數(shù)據(jù)分析系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)[D].武漢:華中科技大學(xué),2019.
[11] 林家業(yè),王嘯聞.基于Python的靜態(tài)網(wǎng)頁數(shù)據(jù)分析與正則提取[J].電腦編程技巧與維護(hù),2023(2):159-161.
[12] 楊健,陳偉.基于Python的三種網(wǎng)絡(luò)爬蟲技術(shù)研究[J].軟件工程,2023,26(2):19,24-27.
[13] 白相辰.基于Django框架的Web在線教育平臺(tái)的設(shè)計(jì)與實(shí)現(xiàn)[D].北京:北京交通大學(xué),2019.
[14] 吳淑慧.基于問題框架方法的軟件非功能性需求分析的研究[D].合肥:安徽大學(xué),2018.
[15] 鄭智方,李彬,劉世坤,等.探究MySQL的運(yùn)用實(shí)例-對(duì)數(shù)據(jù)庫的宏觀把握[J].科技風(fēng),2020(6):129.
【通聯(lián)編輯:謝媛媛】