国产日韩欧美一区二区三区三州_亚洲少妇熟女av_久久久久亚洲av国产精品_波多野结衣网站一区二区_亚洲欧美色片在线91_国产亚洲精品精品国产优播av_日本一区二区三区波多野结衣 _久久国产av不卡

?

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

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

■文/宋凌宇 張樹(shù)勇 闞景森

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

■文/宋凌宇 張樹(shù)勇 闞景森

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

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

引言

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

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

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

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

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

1.2 難擴(kuò)展功能

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

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

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

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

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

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

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

3.1 命名規(guī)范

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

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

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

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

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

3.2 邏輯分塊

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

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

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

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

TR_(TableRole_縮寫(xiě))。是跟角色權(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ì)之初就有必要正確處理多對(duì)多的關(guān)系。盡量消除多對(duì)多情況,將一個(gè)多對(duì)多的關(guān)系,變?yōu)閮蓚€(gè)一對(duì)多的關(guān)系。

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

圖1

再有,因用戶個(gè)性需求而易改變的關(guān)鍵數(shù)據(jù),增加“名值表”設(shè)計(jì)?!懊当怼保櫭剂x就是,那些鍵被其他數(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ù)的添加、級(jí)聯(lián)刪除和級(jí)聯(lián)更新等。

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

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

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

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

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

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

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

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

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

③對(duì)于需要在指定范圍內(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ì)被使用。

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

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

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

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

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

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

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

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

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

4.總結(jié)

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

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

[2]趙靜宇.?dāng)?shù)據(jù)庫(kù)設(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).

(作者單位:濰坊北大青鳥(niǎo)華光照排有限公司;東營(yíng)日?qǐng)?bào)社)

G202

A

1671-0134(2017)08-081-02

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

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

猜你喜歡
主鍵字段數(shù)據(jù)表
基于Go 實(shí)現(xiàn)的分布式主鍵系統(tǒng)研究
圖書(shū)館中文圖書(shū)編目外包數(shù)據(jù)質(zhì)量控制分析
湖北省新冠肺炎疫情數(shù)據(jù)表
黨員生活(2020年2期)2020-04-17 09:56:30
基于外鍵的E-R圖繪制方法研究
基于列控工程數(shù)據(jù)表建立線路拓?fù)潢P(guān)系的研究
CNMARC304字段和314字段責(zé)任附注方式解析
圖表
無(wú)正題名文獻(xiàn)著錄方法評(píng)述
基于VSL的動(dòng)態(tài)數(shù)據(jù)表應(yīng)用研究
河南科技(2014年24期)2014-02-27 14:19:25
關(guān)于CNMARC的3--字段改革的必要性與可行性研究
横峰县| 昆山市| 南开区| 磐石市| 闽侯县| 乡城县| 东辽县| 凤庆县| 同江市| 彭州市| 昔阳县| 德州市| 江西省| 天水市| 阿勒泰市| 大庆市| 彭山县| 迭部县| 红河县| 衡阳县| 乌拉特中旗| 湘潭县| 郧西县| 丽水市| 积石山| 前郭尔| 都匀市| 丹东市| 米易县| 和林格尔县| 怀仁县| 邵武市| 麻江县| 论坛| 桐庐县| 余庆县| 谢通门县| 彝良县| 浦江县| 白山市| 唐山市|