• 
    

    
    

      99热精品在线国产_美女午夜性视频免费_国产精品国产高清国产av_av欧美777_自拍偷自拍亚洲精品老妇_亚洲熟女精品中文字幕_www日本黄色视频网_国产精品野战在线观看

      ?

      淺談媒體協(xié)同數(shù)據(jù)庫設(shè)計(jì)

      2017-09-29 03:01:10宋凌宇張樹勇闞景森
      中國傳媒科技 2017年8期
      關(guān)鍵詞:主鍵字段數(shù)據(jù)表

      ■文/宋凌宇 張樹勇 闞景森

      淺談媒體協(xié)同數(shù)據(jù)庫設(shè)計(jì)

      ■文/宋凌宇 張樹勇 闞景森

      數(shù)據(jù)庫是信息系統(tǒng)的核心和基礎(chǔ),一個(gè)好的數(shù)據(jù)庫設(shè)計(jì)在實(shí)現(xiàn)信息系統(tǒng)方便、及時(shí)、準(zhǔn)確地獲得所需的信息之外,還要滿足易維護(hù)、易擴(kuò)充等要求,并考慮到數(shù)據(jù)的一致性、冗余性、訪問效率等。

      數(shù)據(jù)庫;表;檢索;索引

      引言

      2015年3月起,隨著國家數(shù)字復(fù)合出版系統(tǒng)工程——媒體協(xié)同(即07包)系統(tǒng)的設(shè)計(jì)和研發(fā)逐步展開,數(shù)據(jù)庫的設(shè)計(jì)變得尤為關(guān)鍵。通過對以往一些應(yīng)用系統(tǒng)開發(fā)過程出現(xiàn)的問題進(jìn)行分析,然后規(guī)避這些問題,設(shè)計(jì)出一個(gè)規(guī)范、高性能、易維護(hù)、易擴(kuò)展的數(shù)據(jù)庫,以實(shí)現(xiàn)07包的功能需求及后期的擴(kuò)展。

      1.以往應(yīng)用系統(tǒng)的問題

      筆者參與過一些應(yīng)用系統(tǒng)的設(shè)計(jì)和研發(fā)工作,經(jīng)歷過項(xiàng)目研發(fā)過程中的瓶頸和問題,這些問題表現(xiàn)在以下幾個(gè)方面。

      1.1 數(shù)據(jù)表和字段命名混亂

      有些項(xiàng)目的數(shù)據(jù)表和字段命名不規(guī)范,往往難以找到所需要的庫表,給開發(fā)人員帶來很多不便,甚至困惑。

      1.2 難擴(kuò)展功能

      有些項(xiàng)目的數(shù)據(jù)表字段數(shù)量剛好符合開始設(shè)計(jì)時(shí)的功能需求,那么在開發(fā)過程中有功能擴(kuò)充時(shí),就要增加數(shù)據(jù)表字段、數(shù)據(jù)表,有可能會(huì)造成程序的修改,甚至重新開發(fā),這樣就會(huì)加大開發(fā)人員工作量,也有可能造成項(xiàng)目的延期;再者項(xiàng)目交付多個(gè)用戶后,會(huì)造成項(xiàng)目多版本維護(hù),增加維護(hù)的難度。

      2.數(shù)據(jù)檢索慢

      有些項(xiàng)目在設(shè)計(jì)之初,考慮得相當(dāng)完善,規(guī)避了許多數(shù)據(jù)庫設(shè)計(jì)時(shí)的問題。但隨著用戶使用數(shù)據(jù)的增漲,尤其達(dá)到百萬級以上,數(shù)據(jù)的檢索速度明顯變慢,勢必給用戶帶來不便,甚至厭煩。

      如:部分用戶應(yīng)用系統(tǒng)情況

      用戶 稿件表記錄 日志表記錄 檢索耗時(shí)半島都市報(bào) 30多萬條 180多萬條 5分鐘大眾日報(bào) 40多萬條 200多萬條 5分鐘…

      3.(07包)數(shù)據(jù)庫設(shè)計(jì)

      數(shù)據(jù)庫的設(shè)計(jì)是07包的各功能能否緊密地結(jié)合在一起以及如何結(jié)合的關(guān)鍵所在,是07包開發(fā)和建設(shè)的重要組成部分。從以下幾個(gè)方面對數(shù)據(jù)庫的設(shè)計(jì)進(jìn)行規(guī)范和優(yōu)化設(shè)計(jì)。

      3.1 命名規(guī)范

      表:T+代表字母+表名 。數(shù)據(jù)表名由具有能描述表內(nèi)容等特殊含義的單詞或縮寫組成。如:TISTORYSOURCE稿件來源表。

      字段:類型前綴+字段名。必須以有特征含義的單詞或縮寫組成。

      主鍵:PK_。主鍵名稱應(yīng)是 前綴+表名+構(gòu)成的字段名。如果復(fù)合主鍵的構(gòu)成字段較多,則只包含第一個(gè)字段。表名可以去掉前綴。

      外鍵:FK_。外鍵名稱應(yīng)是 前綴+外鍵表名+主鍵表名+外鍵表構(gòu)成的字段名。表名可以去掉前綴。

      索引:IDX_。索引名稱應(yīng)是 前綴+表名+構(gòu)成的字段名。如果復(fù)合索引的構(gòu)成字段較多,則只包含第一個(gè)字段,并添加序號。表名可以去掉前綴。

      3.2 邏輯分塊

      根據(jù)07包功能數(shù)據(jù)的邏輯進(jìn)行分塊設(shè)計(jì)。

      TI_(TableInfo_縮寫)。 是跟系統(tǒng)中參數(shù)設(shè)置相關(guān)的數(shù)據(jù)表,如:稿件體裁、來源、分類等。

      TB_(TableBase_縮寫)。 是跟系統(tǒng)中基礎(chǔ)信息設(shè)置相關(guān)的數(shù)據(jù)表, 如:部門、人員、作者、角色、共享范圍等。

      TW_(TableWork _縮寫)是跟07包實(shí)際業(yè)務(wù)相關(guān)的數(shù)據(jù)表,如:稿件、報(bào)題、任務(wù)、選題等。

      TR_(TableRole_縮寫)。是跟角色權(quán)限相關(guān)的數(shù)據(jù)表。

      3.3 數(shù)據(jù)關(guān)聯(lián)設(shè)計(jì)

      應(yīng)07包業(yè)務(wù)要求,有很多關(guān)聯(lián)查詢需求,在設(shè)計(jì)之初就有必要正確處理多對多的關(guān)系。盡量消除多對多情況,將一個(gè)多對多的關(guān)系,變?yōu)閮蓚€(gè)一對多的關(guān)系。

      如圖1:一個(gè)人員有可能有多個(gè)角色,反之一個(gè)角色賦值多個(gè)人員。在角色和人員表中增加一個(gè)角色人員表,就變?yōu)閮蓚€(gè)一對多的關(guān)系了。

      圖1

      再有,因用戶個(gè)性需求而易改變的關(guān)鍵數(shù)據(jù),增加“名值表”設(shè)計(jì)?!懊当怼?,顧名思義就是,那些鍵被其他數(shù)據(jù)關(guān)聯(lián)著的值修改時(shí),不會(huì)造成數(shù)據(jù)存放的混亂,便于多表關(guān)聯(lián)查詢。

      第三,為實(shí)現(xiàn)數(shù)據(jù)的完整性,在設(shè)計(jì)數(shù)據(jù)表時(shí)就考慮了數(shù)據(jù)冗余,以及事務(wù)的添加、級聯(lián)刪除和級聯(lián)更新等。

      3.4 超前設(shè)計(jì)

      07包數(shù)據(jù)庫的設(shè)計(jì)不但滿足當(dāng)前的功能需求,還要考慮未來功能的擴(kuò)展,增加07包的靈活性。

      預(yù)留數(shù)據(jù)表。在設(shè)計(jì)時(shí)考慮未來可能的業(yè)務(wù),預(yù)設(shè)計(jì)一些數(shù)據(jù)表。如:音視頻信息擴(kuò)展表,擬記錄音視頻的碼率、時(shí)長等信息。

      預(yù)留字段。在設(shè)計(jì)時(shí)針對系統(tǒng)業(yè)務(wù)數(shù)據(jù)表,基本都預(yù)留1-2個(gè)字段,便于功能的擴(kuò)展和后續(xù)的業(yè)務(wù)拓展。如果這些預(yù)留字段不能滿足未來業(yè)務(wù)的需求,那么就通過添加數(shù)據(jù)表,實(shí)現(xiàn)更高的可擴(kuò)充性要求。

      3.5 優(yōu)化設(shè)計(jì)

      對于大的數(shù)據(jù)庫表,合理的索引能夠提高整個(gè)數(shù)據(jù)庫的操作效率。索引在數(shù)據(jù)庫優(yōu)化中占有一個(gè)非常大的比例,在設(shè)計(jì)數(shù)據(jù)表時(shí),充分考慮到當(dāng)單表數(shù)據(jù)量很大時(shí),比如說是百萬數(shù)量級,如果我們使用普通的查詢語句,耗時(shí)會(huì)非常多。給這些表建上好的索引,能將檢索效率提高幾十甚至幾百倍。

      在設(shè)計(jì)索引時(shí),遵循以下規(guī)則:

      ①主鍵(sguid)的數(shù)據(jù)列、有外鍵的數(shù)據(jù)列(fk_sguid)一定要建立索引。

      ②對于經(jīng)常查詢的數(shù)據(jù)列根據(jù)需要建立索引。

      ③對于需要在指定范圍內(nèi)快速或頻繁查詢的數(shù)據(jù)列,如“**name LIKE ‘a(chǎn)%’”,最好建立索引。

      ④經(jīng)常用在WHERE子句中的數(shù)據(jù)列,建立索引。

      ⑤經(jīng)常出現(xiàn)在關(guān)鍵字order by、group by、distinct后面的字段,建立索引。如果建立的是復(fù)合索引,索引的字段順序要和這些關(guān)鍵字后面的字段順序一致,否則索引不會(huì)被使用。

      ⑥對于那些查詢中很少涉及的列,重復(fù)值比較多的列不要建立索引。

      ⑦對于定義為text、image、blob和bit數(shù)據(jù)類型的列不要建立索引。

      ⑧對于經(jīng)常存取的列避免建立索引 。

      ⑨限制表上的索引數(shù)目。對一個(gè)存在大量更新操作的表,所建索引的數(shù)目一般不要超過3個(gè),最多不要超過5個(gè)。索引雖說提高了訪問速度,但太多索引會(huì)影響數(shù)據(jù)的更新操作。

      ⑩對復(fù)合索引,按照字段在查詢條件中出現(xiàn)的頻度建立索引。在復(fù)合索引中,記錄首先按照第一個(gè)字段排序。對于在第一個(gè)字段上取值相同的記錄,系統(tǒng)再按照第二個(gè)字段的取值排序,以此類推。只有復(fù)合索引的第一個(gè)字段出現(xiàn)在查詢條件中,該索引才可能被使用,因此將應(yīng)用頻度高的字段,放置在復(fù)合索引的前面,會(huì)使系統(tǒng)最大可能地使用此索引,發(fā)揮索引的作用。

      ?在Join查詢時(shí),兩個(gè)表中Join的字段建立索引。

      遵循以上規(guī)則對07包中稿件表和日志表、操作歷史表等關(guān)鍵列增加索引設(shè)置。

      附:用戶數(shù)據(jù)庫優(yōu)化后應(yīng)用系統(tǒng)檢索情況,如下表:

      用戶稿件表記錄日志表記錄索引前檢索耗時(shí)索引后檢索耗時(shí) 備注半島都市報(bào) 30多萬條 180多萬條 5分鐘 1-3秒大眾日本 40多萬條 200多萬條 5分鐘 1-3秒 服務(wù)器性能好…

      4.總結(jié)

      本文通過論述一些應(yīng)用系統(tǒng)的現(xiàn)存問題,得出數(shù)據(jù)庫設(shè)計(jì)的重要性。提出07包的數(shù)據(jù)庫設(shè)計(jì)時(shí)要遵循的原則和規(guī)范,從而設(shè)計(jì)出一個(gè)滿足07包功能需求和未來擴(kuò)展的高性能、易維護(hù)、易擴(kuò)展的數(shù)據(jù)庫。

      [1]勵(lì)文杰.大型數(shù)據(jù)庫ORACLE數(shù)據(jù)庫的優(yōu)化設(shè)計(jì)方案[J].科技風(fēng),2011(19).

      [2]趙靜宇.?dāng)?shù)據(jù)庫設(shè)計(jì)規(guī)范化的理論研究與應(yīng)用[J].電子技術(shù)與軟件工程,2013(21).

      [3]汪輝.基于大數(shù)據(jù)應(yīng)用系統(tǒng)架構(gòu)的設(shè)計(jì)與實(shí)現(xiàn)[J].電子技術(shù)與軟件工程,2015(20).

      (作者單位:濰坊北大青鳥華光照排有限公司;東營日報(bào)社)

      G202

      A

      1671-0134(2017)08-081-02

      10.19483/j.cnki.11-4653/n.2017.08.029

      本文受國家數(shù)字復(fù)合出版系統(tǒng)工程-媒體協(xié)同工作系統(tǒng)(1141STC40519/07)項(xiàng)目資助。

      猜你喜歡
      主鍵字段數(shù)據(jù)表
      基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
      圖書館中文圖書編目外包數(shù)據(jù)質(zhì)量控制分析
      湖北省新冠肺炎疫情數(shù)據(jù)表
      黨員生活(2020年2期)2020-04-17 09:56:30
      基于外鍵的E-R圖繪制方法研究
      基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
      CNMARC304字段和314字段責(zé)任附注方式解析
      圖表
      無正題名文獻(xiàn)著錄方法評述
      基于VSL的動(dòng)態(tài)數(shù)據(jù)表應(yīng)用研究
      河南科技(2014年24期)2014-02-27 14:19:25
      關(guān)于CNMARC的3--字段改革的必要性與可行性研究
      营山县| 金湖县| 东至县| 且末县| 阿荣旗| 万荣县| 泸溪县| 奎屯市| 衢州市| 湄潭县| 图片| 张家口市| 麻阳| 平江县| 牙克石市| 襄城县| 贺兰县| 内丘县| 育儿| 新宾| 玛多县| 右玉县| 麻城市| 麻江县| 平阳县| 蕲春县| 麟游县| 赤峰市| 桃源县| 互助| 湘西| 洛扎县| 民权县| 黔南| 嫩江县| 龙门县| 永济市| 北碚区| 永定县| 上思县| 永州市|