① 如何選擇操作系統和資料庫.
我們公司一直使用windows/oracle. 最早是NT,由於NT的內存管理不是很好,所以我們一直是每周 重啟機器,雖然現在我們升級到Windows 2003,但還是保持著傳統每周重啟,聽說Windows 2003已經 改進得很好,我們也在考慮不重啟. 使用windows,管理員並不比unix累,我們使用windows將近十年,系統運行很穩定,性能也非常好.唯 一的缺點是現在windows的主流還是32位,64位還不成熟,所以內寸最多隻能用到4G. Oracle應使用SAP的安裝盤,不需要選擇.如果你非要知道,那應該是企業版.
② 欲檢索綜述文獻,使用哪個資料庫較方便
可以在知網上進行檢索,能很方便的查到。
③ 資料庫如何設計
資料庫設計的基本步驟
按照規范設計的方法,考慮資料庫及其應用系統開發全過程,將資料庫設計分為以下6個階段
1.需求分析
2.概念結構設計
3.邏輯結構設計
4.物理結構設計
5.資料庫實施
6.資料庫的運行和維護
資料庫設計通常分為6個階段1分析用戶的需求,包括數據、功能和性能需求;2概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;3邏輯結構設計:通過將轉換成表,實現從E-R模型到關系模型的轉換;4:主要是為所設計的資料庫選擇合適的和存取路徑;5資料庫的實施:包括編程、測試和試運行;6資料庫運行與維護:系統的運行與資料庫的日常維護。),主要討論其中的第3個階段,即邏輯設計。
在資料庫設計過程中,需求分析和概念設計可以獨立於任何資料庫管理系統進行,邏輯設計和物理設計與選用的DAMS密切相關。
1.需求分析階段(常用自頂向下)
進行資料庫設計首先必須准確了解和分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,也是最困難,最耗時的一步。需求分析是否做得充分和准確,決定了在其上構建資料庫大廈的速度與質量。需求分析做的不好,會導致整個資料庫設計返工重做。
需求分析的任務,是通過詳細調查現實世界要處理的對象,充分了解原系統工作概況,明確用戶的各種需求,然後在此基礎上確定新的系統功能,新系統還得充分考慮今後可能的擴充與改變,不僅僅能夠按當前應用需求來設計。
調查的重點是,數據與處理。達到信息要求,處理要求,安全性和完整性要求。
分析方法常用SA(Structured Analysis) 結構化分析方法,SA方法從最上層的系統組織結構入手,採用自頂向下,逐層分解的方式分析系統。
數據流圖表達了數據和處理過程的關系,在SA方法中,處理過程的處理邏輯常常藉助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的數據也逐級分解,形成若干層次的數據流圖。系統中的數據則藉助數據字典(data dictionary,DD)來描述。數據字典是系統中各類數據描述的集合,數據字典通常包括數據項,數據結構,數據流,數據存儲,和處理過程5個階段。
2.概念結構設計階段(常用自底向上)
概念結構設計是整個資料庫設計的關鍵,它通過對用戶需求進行綜合,歸納與抽象,形成了一個獨立於具體DBMS的概念模型。
設計概念結構通常有四類方法:
自頂向下。即首先定義全局概念結構的框架,再逐步細化。
自底向上。即首先定義各局部應用的概念結構,然後再將他們集成起來,得到全局概念結構。
逐步擴張。首先定義最重要的核心概念結構,然後向外擴張,以滾雪球的方式逐步生成其他的概念結構,直至總體概念結構。
混合策略。即自頂向下和自底向上相結合。
3.邏輯結構設計階段(E-R圖)
邏輯結構設計是將概念結構轉換為某個DBMS所支持的數據模型,並將進行優化。
在這階段,E-R圖顯得異常重要。大家要學會各個實體定義的屬性來畫出總體的E-R圖。
各分E-R圖之間的沖突主要有三類:屬性沖突,命名沖突,和結構沖突。
E-R圖向關系模型的轉換,要解決的問題是如何將實體性和實體間的聯系轉換為關系模式,如何確定這些關系模式的屬性和碼。
4.物理設計階段
物理設計是為邏輯數據結構模型選取一個最適合應用環境的物理結構(包括存儲結構和存取方法)。
首先要對運行的事務詳細分析,獲得選擇物理資料庫設計所需要的參數,其次,要充分了解所用的RDBMS的內部特徵,特別是系統提供的存取方法和存儲結構。
常用的存取方法有三類:1.索引方法,目前主要是B+樹索引方法。2.聚簇方法(Clustering)方法。3.是HASH方法。
5.資料庫實施階段
資料庫實施階段,設計人員運營DBMS提供的資料庫語言(如sql)及其宿主語言,根據邏輯設計和物理設計的結果建立資料庫,編制和調試應用程序,組織數據入庫,並進行試運行。
6.資料庫運行和維護階段
資料庫應用系統經過試運行後,即可投入正式運行,在資料庫系統運行過程中必須不斷地對其進行評價,調整,修改。
資料庫設計5步驟
Five Steps to design the Database
1.確定entities及relationships
a)明確宏觀行為。資料庫是用來做什麼的?比如,管理雇員的信息。
b)確定entities。對於一系列的行為,確定所管理信息所涉及到的主題范圍。這將變成table。比如,僱用員工,指定具體部門,確定技能等級。
c)確定relationships。分析行為,確定tables之間有何種關系。比如,部門與雇員之間存在一種關系。給這種關系命名。
d)細化行為。從宏觀行為開始,現在仔細檢查這些行為,看有哪些行為能轉為微觀行為。比如,管理雇員的信息可細化為:
· 增加新員工
· 修改存在員工信息
· 刪除調走的員工
e)確定業務規則。分析業務規則,確定你要採取哪種。比如,可能有這樣一種規則,一個部門有且只能有一個部門領導。這些規則將被設計到資料庫的結構中。
====================================================================
範例:
ACME是一個小公司,在5個地方都設有辦事處。當前,有75名員工。公司准備快速擴大規模,劃分了9個部門,每個部門都有其領導。
為有助於尋求新的員工,人事部門規劃了68種技能,為將來人事管理作好准備。員工被招進時,每一種技能的專業等級都被確定。
定義宏觀行為
一些ACME公司的宏觀行為包括:
● 招聘員工
● 解僱員工
● 管理員工個人信息
● 管理公司所需的技能信息
● 管理哪位員工有哪些技能
● 管理部門信息
● 管理辦事處信息
確定entities及relationships
我們可以確定要存放信息的主題領域(表)及其關系,並創建一個基於宏觀行為及描述的圖表。
我們用方框來代表table,用菱形代表relationship。我們可以確定哪些relationship是一對多,一對一,及多對多。
這是一個E-R草圖,以後會細化。
細化宏觀行為
以下微觀行為基於上面宏觀行為而形成:
● 增加或刪除一個員工
● 增加或刪除一個辦事處
● 列出一個部門中的所有員工
● 增加一項技能
● 增加一個員工的一項技能
● 確定一個員工的技能
● 確定一個員工每項技能的等級
● 確定所有擁有相同等級的某項技能的員工
● 修改員工的技能等級
這些微觀行為可用來確定需要哪些table或relationship。
確定業務規則
業務規則常用於確定一對多,一對一,及多對多關系。
相關的業務規則可能有:
● 現在有5個辦事處;最多允許擴展到10個。
● 員工可以改變部門或辦事處
● 每個部門有一個部門領導
● 每個辦事處至多有3個電話號碼
● 每個電話號碼有一個或多個擴展
● 員工被招進時,每一種技能的專業等級都被確定。
● 每位員工擁有3到20個技能
● 某位員工可能被安排在一個辦事處,也可能不安排辦事處。
2.確定所需數據
要確定所需數據:
a)確定支持數據
b)列出所要跟蹤的所有數據。描述table(主題)的數據回答這些問題:誰,什麼,哪裡,何時,以及為什麼
c)為每個table建立數據
d)列出每個table目前看起來合適的可用數據
e)為每個relationship設置數據
f)如果有,為每個relationship列出適用的數據
確定支持數據
你所確定的支持數據將會成為table中的欄位名。比如,下列數據將適用於表Employee,表Skill,表Expert In。
Employee
Skill
Expert In
ID
ID
Level
Last Name
Name
Date acquired
First Name
Description
Department
Office
Address
如果將這些數據畫成圖表,就像:
3.標准化數據
標准化是你用以消除數據冗餘及確保數據與正確的table或relationship相關聯的一系列測試。共有5個測試。本節中,我們將討論經常使用的3個。
關於標准化測試的更多信息,請參考有關資料庫設計的書籍。
標准化格式
標准化格式是標准化數據的常用測試方式。你的數據通過第一遍測試後,就被認為是達到第一標准化格式;通過第二遍測試,達到第二標准化格式;通過第三遍測試,達到第三標准化格式。
如何標准格式:
1. 列出數據
2. 為每個表確定至少一個鍵。每個表必須有一個主鍵。
3. 確定relationships的鍵。relationships的鍵是連接兩個表的鍵。
4. 檢查支持數據列表中的計算數據。計算數據通常不保存在資料庫中。
5. 將數據放在第一遍的標准化格式中:
6. 從tables及relationships除去重復的數據。
7. 以你所除去數據創建一個或更多的tables及relationships。
8. 將數據放在第二遍的標准化格式中:
9. 用多於一個以上的鍵確定tables及relationships。
10. 除去只依賴於鍵一部分的數據。
11. 以你所除去數據創建一個或更多的tables及relationships。
12. 將數據放在第三遍的標准化格式中:
13. 除去那些依賴於tables或relationships中其他數據,並且不是鍵的數據。
14. 以你所除去數據創建一個或更多的tables及relationships。
數據與鍵
在你開始標准化(測試數據)前,簡單地列出數據,並為每張表確定一個唯一的主鍵。這個鍵可以由一個欄位或幾個欄位(連鎖鍵)組成。
主鍵是一張表中唯一區分各行的一組欄位。Employee表的主鍵是Employee ID欄位。Works In relationship中的主鍵包括Office Code及Employee ID欄位。給資料庫中每一relationship給出一個鍵,從其所連接的每一個table中抽取其鍵產生。
RelationShip
Key
Office
*Office code
Office address
Phone number
Works in
*Office code
*Employee ID
Department
*Department ID
Department name
Heads
*Department ID
*Employee ID
Assoc with
*Department ID
*EmployeeID
Skill
*Skill ID
Skill name
Skill description
Expert In
*Skill ID
*Employee ID
Skill level
Date acquired
Employee
*Employee ID
Last Name
First Name
Social security number
Employee street
Employee city
Employee state
Employee phone
Date of birth
將數據放在第一遍的標准化格式中
● 除去重復的組
● 要測試第一遍標准化格式,除去重復的組,並將它們放進他們各自的一張表中。
● 在下面的例子中,Phone Number可以重復。(一個工作人員可以有多於一個的電話號碼。)將重復的組除去,創建一個名為Telephone的新表。在Telephone與Office創建一個名為Associated With的relationship。
將數據放在第二遍的標准化格式中
● 除去那些不依賴於整個鍵的數據。
● 只看那些有一個以上鍵的tables及relationships。要測試第二遍標准化格式,除去那些不依賴於整個鍵的任何數據(組成鍵的所有欄位)。
● 在此例中,原Employee表有一個由兩個欄位組成的鍵。一些數據不依賴於整個鍵;例如,department name只依賴於其中一個鍵(Department ID)。因此,Department ID,其他Employee數據並不依賴於它,應移至一個名為Department的新表中,並為Employee及Department建立一個名為Assigned To的relationship。
將數據放在第三遍的標准化格式中
● 除去那些不直接依賴於鍵的數據。
● 要測試第三遍標准化格式,除去那些不是直接依賴於鍵,而是依賴於其他數據的數據。
● 在此例中,原Employee表有依賴於其鍵(Employee ID)的數據。然而,office location及office phone依賴於其他欄位,即Office Code。它們不直接依賴於Employee ID鍵。將這組數據,包括Office Code,移至一個名為Office的新表中,並為Employee及Office建立一個名為Works In的relationship。
4.考量關系
當你完成標准化進程後,你的設計已經差不多完成了。你所需要做的,就是考量關系。
考量帶有數據的關系
你的一些relationship可能集含有數據。這經常發生在多對多的關系中。
遇到這種情況,將relationship轉化為一個table。relationship的鍵依舊成為table中的鍵。
考量沒有數據的關系
要實現沒有數據的關系,你需要定義外部鍵。外部鍵是含有另外一個表中主鍵的一個或多個欄位。外部鍵使你能同時連接多表數據。
有一些基本原則能幫助你決定將這些鍵放在哪裡:
一對多在一對多關系中,「一」中的主鍵放在「多」中。此例中,外部鍵放在Employee表中。
一對一在一對一關系中,外部鍵可以放進任一表中。如果必須要放在某一邊,而不能放在另一邊,應該放在必須的一邊。此例中,外部鍵(Head ID)在Department表中,因為這是必需的。
多對多在多對多關系中,用兩個外部鍵來創建一個新表。已存的舊表通過這個新表來發生聯系。
5.檢驗設計
在你完成設計之前,你需要確保它滿足你的需要。檢查你在一開始時所定義的行為,確認你可以獲取行為所需要的所有數據:
● 你能找到一個路徑來等到你所需要的所有信息嗎?
● 設計是否滿足了你的需要?
● 所有需要的數據都可用嗎?
如果你對以上的問題都回答是,你已經差不多完成設計了。
最終設計
最終設計看起來就像這樣:
設計資料庫的表屬性
資料庫設計需要確定有什麼表,每張表有什麼欄位。此節討論如何指定各欄位的屬性。
對於每一欄位,你必須決定欄位名,數據類型及大小,是否允許NULL值,以及你是否希望資料庫限制欄位中所允許的值。
選擇欄位名
欄位名可以是字母、數字或符號的任意組合。然而,如果欄位名包括了字母、數字或下劃線、或並不以字母打頭,或者它是個關鍵字(詳見關鍵字表),那麼當使用欄位名稱時,必須用雙引號括起來。
為欄位選擇數據類型
SQL Anywhere支持的數據類型包括:
整數(int, integer, smallint)
小數(decimal, numeric)
浮點數(float, double)
字元型(char, varchar, long varchar)
二進制數據類型(binary, long binary)
日期/時間類型(date, time, timestamp)
用戶自定義類型
關於數據類型的內容,請參見「SQL Anywhere數據類型」一節。欄位的數據類型影響欄位的最大尺寸。例如,如果你指定SMALLINT,此欄位可以容納32,767的整數。INTEGER可以容納2,147,483,647的整數。對CHAR來講,欄位的最大值必須指定。
長二進制的數據類型可用來在資料庫中保存例如圖像(如點陣圖)或者文字編輯文檔。這些類型的信息通常被稱為二進制大型對象,或者BLOBS。
關於每一數據類型的完整描述,見「SQL Anywhere數據類型」。
④ 如何選擇合適的資料庫
如何選擇資料庫
一般來講,數據分析的查詢不會直接從生產環境的資料庫來讀取數據,一方面是影響線上性能,另一方面是OLTP的表結構設計更多的是面向插入,而不是讀取。如何來選擇合適的資料庫做數據分析呢?本文給出了四方面的考量,拋磚引玉。
1. 客戶要分析什麼樣的數據
2. 客戶分析的數據量是多少
3. 客戶工程師團隊技術背景,運維能力
4. 預期的數據分析的響應時間
客戶要分析什麼樣的數據
上文已簡單介紹了關系型資料庫和非關系型資料庫的區別,這里就不再贅述。下圖是一個簡單的分類。
⑤ 怎樣選擇資料庫審計系統
安華金和官網上看的一篇文章,希望對你有幫助。隨著數據價值的不斷提升,從政策到用戶對於數據安全重視程度越來越高,資料庫審計產品作為一款部署簡單,不用對現有IT架構進行任何改變,又能夠滿足政策合規需求的產品,是很多用戶保障數據安全和合規需求的首選產品。那麼面對市場上眾多的資料庫審計產品該怎樣選擇呢?下面將從資料庫審計產品的功能上提出一些參考建議,希望對在資料庫審計產品的選型過程中對您有所幫助。
一、資料庫審計產品選型的10大基本能力
如果要滿足用戶使用資料庫審計產品的基本需求,必須滿足以下條件:
1、審計記錄全和准:保證審計的准確性、全面性、無漏審,實現資料庫訪問流量的全捕獲;
2、高效入庫:審計結果快速入庫,要在高訪問量壓力下,審計結果入庫無延遲、無丟包;
3、准確的關聯審計:高並發情況下,能夠審計到資料庫操作的應用用戶;
4、高效分析:要能夠對審計記錄進行快速分析與檢索,至少實現千萬乃至億級數據秒級響應;
5、高易用性:要符合用戶的使用習慣,保障產品的易用性;
6、加密協議解析:隨著通訊加密的普及,資料庫審計產品必須要能夠解析加密的資料庫訪問流量;
7、資料庫入侵行為監測:數據價值的提升,造成了資料庫攻擊行為更加普遍,審計產品應提供針對資料庫漏洞攻擊的「檢測」功能,並對這些漏洞攻擊實時監控、有效記錄,發現風險後及時告警,且能夠有效追溯風險來源;
8、資料庫異常行為監測:資料庫訪問行為異常時,系統可提供實時的告警能力,降低數據泄露的損失;
9、資料庫違規行為監測:資料庫審計產品還應具備針對資料庫的違規訪問、登錄等行為檢測告警的能力;
10、報表展現:資料庫審計產品應具備將審計日誌進行數據化分析並以個性化報表展示的能力,以便幫助安全管理人員更加便捷、深入的剖析資料庫運行風險。例如:綜合報表、合規性報表、專項報表、自定義報表等。
二、做標王,資料庫審計還需要哪些更過硬實力
在具備了資料庫審計產品的基本功能之外,一款好的資料庫審計產品還應能夠做到以下四點:
1、全面的審計元素:包括,表、函數、包、存儲過程、視圖、資料庫登陸用戶、客戶端ip、埠、MAC、客戶端操作系統、用戶名、客戶端工具、影響行數、結果集、執行時間、操作類型、長語句、大對象、mysql壓縮協議、dblink、imp、exp、prepare參數等,這樣才能保證審計結果的全面性;
2、精確SQL語句解析:採用句柄追蹤\參數綁定追蹤和基於詞法和語法的精確SQL解析技術,可以實現在長SQL語句、高並發訪問量時不丟包;在多SQL語句情況下,准確記錄資料庫語句是否執行成功;對於prepare語句,准確將參數值與原始語句和綁定變數關聯;對SQL執行結果集進行准確追蹤,從而准確記錄SQL語句的影響行數,從而保證資料庫審計結果的准確性;
3、應用審計視角下的4層應用框架結構:具備4級應用框架結構——應用請求、應用行為、應用模塊、應用:
應用請求:訪問源對某個指定的URL發起訪問請求的流水記錄;
應用行為:針對某類相同和相似的應用請求,去除參數化的URL模板(類似於SQL語句模板概念);
應用模塊:多個應用行為的組合,歸屬於一組功能模塊的集合,對應應用伺服器的功能菜單;
應用:以應用伺服器IP+應用伺服器埠+應用工程名定義的一個應用系統。
這種4級應用框架結構,可以有效保證資料庫審計產品的應用關聯准確性,從而提供完整的基於應用訪問視角的綜合性統計數據呈現和正向追溯能力,以及多角度的審計結果分析能力。
4、完整的風險匹配規則與多樣化的告警方式:基於橫向的黑白名單匹配規則以及黑白名單SQL語句,以及縱向的高中低等風險等級設置,實現准確的資料庫訪問風險行為匹配。snmp、syslog、簡訊、郵件等多樣性的告警方式,保證資料庫風險行為的實時告警,從而實現全面風險發現與及時告警。
這是我在安華金和官網上看到的一篇文章,覺得不錯,推薦給你,他們家就有資料庫審計產品。
⑥ 如何選擇出最適合做網店的資料庫系統
首先,先介紹幾款在網店系統中使用最常見的資料庫。
Access資料庫,在ASP網店系統流行時,是一款應用非常廣泛的資料庫,它最大的特點就是操作、維護簡單,管理方便。但對儲存數據較大的網站,Access在存儲、處理、安全等角度就顯得吃力。隨著ASP技術被微軟淘汰,Access在網店系統中的應用也不在明顯。
Mysql資料庫,由於其主要的管理程序和運行環境都是開源的,因此發展非常迅速,在網店系統中的應用也非常廣泛,特別在PHP網店系統中資料庫無一例外選擇的是Mysql。但Mysql資料庫的介面支持彼此不統一,在資料庫對接上存在一定的困難。
SQL server資料庫,也是目前網店系統行業應用最多的資料庫之一,隨著微軟在互聯網方面的技術投入,11545.html">我們有理由相信它會越來越強大。SQL server的特點是具有很好的伸縮性,可跨越多種平台使用,對Web技術的支持,使用戶能夠很容易地將資料庫中的數據發布到Web頁面上。
Oracle資料庫,在網店系統行業來講是比較高端、安全的資料庫,適合大型網點應用,如金融、國防、政府、世界五百強等網站,都是採用了Oracle資料庫。
筆者近期也研究了幾款國內知名網店系統,像SHOP++、ECSHOP、V5SHOP、SHOPEX等都在研究范圍內。SHOP++是基於JAVA技術的網店系統,支持Mysql、SQL server、Oracle等多種資料庫;ECSHOP和SHOPEX同是PHP技術開發的,同是商派旗下產品,資料庫採用的是Mysql;V5SHOP是.NET技術中的老牌產品,資料庫支持Mysql,若要支持SQL server必需先要獲取資料庫用戶名和密碼。顯然,在網店系統行業若系統能同時支持多種資料庫則會是最佳選擇。
接下來進入正題,分析資料庫在網店系統中的作用
通過我對幾款網店系統的研究,各網店系統正常安裝分為:程序安裝和環境部署,而環境部署過程中就包含了資料庫的安裝。資料庫我們都知道,在網店在主要是存儲功能,如網站的資料、圖片等都是儲存在資料庫上。對於一個有意義的網站來說,資料庫是必不可缺的,我們常見的動態網站就是通過資料庫的存儲、輸出來產生。如果是靜態頁面,就不需要存儲資料、圖片了,更不用使用資料庫。
說到資料庫還有一點是讓站長最勞心的就屬數據的遷移了,若有站長對網站數據的遷移存有疑惑,不防可以參照下面的方法操作:
a.進入網站後台,對數據進行備份,以防發生意外;
b.進入空間將home和image文件用ftp下載到本地;
c.安裝新的網店程序,設置好管理賬戶、資料庫的用戶名和密碼;
d.解析域名;
e.上傳home和image文件;
f.進入後台對備份的數據恢復,更新後台,退出;
g.重新登錄,訪問正常,即遷移成功;
其實,資料庫在網店系統中還有一個非常重要的作用--安全,也是本文的重點:
資料庫的對網店系統有安全一面,可能有網友不解。我們舉一個例子,小偷同時光顧Access資料庫和Oracle資料庫,你會發現小偷在Access資料庫中可以來去自由,資料庫文件不經意間就被任意DOWN走了。而光顧Oracle資料庫,進入「保險庫」大門後,發現還有一個警察拿著槍對著他,相比下使用Oracle的網店系統安全方面就更強。如網頁編輯程序ewebeditor一樣,只因使用了Access資料庫,就造成了數以萬計的站點因為它而被黑客輕輕鬆鬆的黑掉了。所以,資料庫的選擇也關繫到網店系統的安全。
求採納
⑦ 如何選擇資料庫
如何選擇資料庫
完整的存儲進去,完整的取出來,不需要額外的操作。
NoSQL 比 RDB 有更強的擴展性,可以充分利用分布式系統來提升讀寫性能和可靠性。
這不是誰設計好壞的問題,而是跟他們要解決的問題有關:RDB 誕生於互聯網萌芽的時代,那時數據的准確、可靠是最重要的,而 NoSQL 誕生於互聯網快速發展普及的時代,大數據、分布式、擴展性成了資料庫的另一個重要特性。
總結一下:
RDB 首先得是准確、可靠,然後才向更高的「可拓展性」發展;
而 NoSQL 生而分布式,可拓展性強,然後才向更高的「准確性」發展。
NoSQL ,not only SQL,其實就是對那種打破了 RDB 嚴格事務和關系模型約束的那些資料庫的泛指,而隨著要解決的問題的不同,又誕生了各種各樣的 NoSQL。
首先是「列式資料庫」(Column-oriented DBMS),數據量上去了,我們想分析網站用戶的年齡分布,簡單說,就是你需要對同一個特徵進行大數據量的分析統計,於是把原來 RDB 的「按行存儲」的範式打破,變成了「按列存儲」,比如 HBase;
然後你發現有些數據變動不是很大,但是經常需要被查詢, 查詢時還要關聯很多張表,於是你把這些來自不同表的數據,揉成一個大對象,按 key-value 的格式存起來,比如 Redis;
再後來你需要對博客內容進行相關性搜索,傳統 RDB 不支持相關性搜索,最重要的,還是擴展性差,增加機器的帶來邊際效益有限,於是有了「全文搜索引擎」,比如 Elasticsearch;
除此之外,還有「文檔資料庫」、「圖形資料庫」……
沒有一種資料庫是銀彈。
總結
這篇文章的題目是「如何選擇資料庫」,這是困擾很多人的問題,那麼多資料庫,到底要選什麼好?
可是當你問出這樣一個問題時,其實你是在問一種「手段」。我現在要做這樣一個需求,用什麼資料庫可以幫我實現它?
但其實你需要的不只是一種「手段」,因為如果對方甩給你一個冷冰冰的名字,Mysql、Elasticsearch、MongoDB,你肯定會問,憑什麼?
你需要的,是一種「解決方案」。如果你需要數據十分嚴格准確,分毫不差,那我會推薦你採用「事務」和「關系模型」來處理數據;如果你需要數據能夠被大量讀取和寫入,那我會推薦你擴展性強的「分布式」;如果你的數據經常是整個讀取、整個更新的,那「關系模型」就沒有「文檔模型」適合你。
「事務」、「關系模型」、「分布式」、「文檔模型」等等,這些就是「解決方案」,知道用什麼「解決方案」,用哪個資料庫,自然水到渠成。
正如一位大牛說的:
用戶不會因為你用了 Mysql 或者 MongoDB 而使用你的軟體,畢竟絕大多數用戶都不知道 Mysql 和 MongoDB 是什麼玩意。
⑧ 如何做一個好的系統綜述和Meta分析
系統性綜述的英文名稱有systematic review, overview和meta-analysis。我們用overview表示系統性綜述的統稱, 用meta-analysis代表定量系統性綜述。系統性綜述的實施步驟包括: 擬定主題, 檢索、 選擇和評價有關素材(原始文獻), 綜合有關數據或資料, 及得出結論。系統性綜述可以用於治療、 病因、 診斷和預後等方面的問題。 1.1 基本標准 大多數臨床問題涉及病人的治療、 病因、 診斷和預後。除非綜述明確地描述了主題, 否則我們就只能猜測其主要內容是否與病人的診療問題有關。如果通過文題或摘要無法了解綜述的主題, 最好另選文章。 素材的選擇標准應該包含病人、 暴露因素和觀測指標或結局(outcome)的定義, 及研究方法的界定。對素材的具體要求可見前幾篇關於治療、 診斷、 危害因素和預後方面文章的介紹。 在主題相同的綜述中, 入選病人、 暴露因素或觀測指標的不同, 可以導致綜述結果的不同。如果作者介紹了選擇素材的標准並按之實施, 則基本上可以避免因自身經驗的影響而導致挑選支持其原先假設的文獻的傾向。 1.2 二級標准 全面檢索, 以搜集符合選擇標準的原始文獻是綜述的一個重要環節。全面檢索應包括檢索有關資料庫(如MEDLINE, EMBASE)、 查找已知文獻的引文和向專家咨詢。專家咨詢的作用可避免漏選尚未印刷、 索引和引用的待發表或已發表的文獻, 還可避免因漏選未發表文獻而導致的「出版偏倚」--結果陽性的文章更易發表的傾向所造成的對干預因子作用的過高估計。除非文中介紹了文獻檢索的方法, 否則很難判斷文獻被漏選的情況。 即使對於全部以隨機對照試驗為素材的綜述, 仍有必要了解原始研究的質量是否良好; 即使各個原始研究的結果是一致的, 仍有必要了解各原始研究的真實有效性。 目前, 尚無公認的評估真實有效性的標准方法。在各種評價方法中, 有些為復雜的考查條款, 有些僅包含三四條原則或要求。不妨參照本系列文章前幾篇文章的要求來進行評價。 搜集文獻、 評價原始研究的真實有效性並選取其中的數據是綜述的重要環節, 但較易出現差錯或偏倚。如果能安排兩個或兩個以上的人分別獨立地進行, 且重復性或一致性良好, 那麼綜述的結果更加可信。 即使制定了嚴格的納入標准, 但在病人、 暴露或干預、 結局指標和研究方法方面, 大多數系統性綜述的素材(原始研究)之間仍會存在許多不同。我們必須判定這些不同的程度(或性質)是否嚴重影響到綜合原始研究的結果或數據的基礎。 對於定量的數據來說, 確定可否綜合的標准之一是各個原始研究測量的效應關系具有相同的含義。在定量系統性綜述中, 可以檢驗研究結果之間不同的程度是否超出了隨機因素所致的預計范圍及超出的程度。這種統計學分析稱為「一致性檢驗」(齊性檢驗)。一致性檢驗的(差異)顯著性越大, 原始研究之間結果的差異單獨由機會所致的可能性越小, 但對不一致性「統計學意義」的解釋應慎重。另一方面, 差異無顯著性的檢驗結論並不能排除重大不一致性的存在。因此, 即使一致性檢驗的結果是差異無顯著性, 但是如果原始研究結果之間的差異具有臨床意義, 那麼仍要求我們謹慎地解釋綜合的結果--總結果。然而, 即使原始研究之間的結果具有重大的差異, 只要所有被利用的原始研究的質量上乘, 綜述的結果仍是干預或暴露作用的最佳估計值。 2 綜述結果的含義 2.1 系統性綜述總結果的含義 臨床研究(原始)通過個體病人收集數據。系統性綜述通過原始研究獲取數據, 進而通過定量(或定性)的方法分析和綜合之。 簡單地比較原始研究中結果陽性的研究與陰性的數目的方法不是一種綜合原始研究結果的好辦法。系統性綜述根據樣本量權重各個原始研究, 樣本大的研究, 權重也大, 從而得到的總結果是原始研究結果的加權平均值。有時根據研究的質量給予權重, 或劣質研究的權重定為零(剔除), 並了解這種安排或調整是否會造成總結果的重大改變。 有時, 各個原始研究結果指標的性質相同, 但測量的方法或工具不同。例如, 同類的研究可能採用不同的方法測量功能狀態, 如果病人標准和干預措施是相同的, 則仍值得對干預措施影響功能狀態平均效應進行估計。一種實施這類估計的方法是通過「效應尺度」(effect size)來綜合各個原始研究的結果。效應尺度是某一研究的干預組與對照組結局指標測得值之差的均數除以標准差的商。所以, 通過效應尺度能夠計算以不同方法測量結果的許多原始研究的加權平均效應。你可能感到很難解釋或理解效應尺度的臨床意義。你不妨將其重新轉換為熟悉其診療意義的指標。 通常, 我們希望系統性綜述的結果為定量性綜合的結果, 但是由於原始研究結果間不明原因的異質性或原始研究的質量很差, 進行定量性綜合有時並不合適。此時, 可以通過圖表「羅列」原始研究的結果。 可以通過可信區間來估計平均效應值的精度。 由於系統性綜述包含許多單項研究, 它的優點之一是其結果來源於各式各樣的病人。如果各單項研究的結果一致, 系統性綜述的結果適用於這些單項研究中納入的各式各樣的病人。即使如此, 我們仍應對其結果的普遍性留有餘地: 或許你的病入年齡比系統性綜述納入對象的年齡都大; 如果單項研究應用的葯物不同, 我們就應考慮某葯的作用是否比另一種葯物的要好。 後一個問題涉及亞組分析問題。判定是否相信亞組分析結果的最重要的原則之一是對待研究間比較所得的結論應持懷疑的態度進行審查。如果存在下列情況, 亞組間存在差異的假設較為可信: 治療效應的差別很大; 治療效應的差異具有高度顯著性統計學意義; 研究之前就假設存在著差異, 且數個假設的差異中僅該項被驗證; 單項研究間的結果一致; 間接證據支持存在差異。如果不符合上述情況, 亞組分析的結果很少是真實的, 我們應該接受系統性綜述的總結果, 而不是亞組分析的結果。 通過主題具體的以單一結局為指標的綜述更有可能得到真實有效的結果或結論, 但這並不意味著我們可以忽略綜述沒有包含的結局: 臨床決策需要考慮所有重要的臨床結局。 臨床決策的原則是預期效益必須大於潛在的風險和成本。治療或預防決策時, 這一點很明確。向病人介紹病因或預後情況時, 同樣存在著益處和害處的問題。 [Oxman AD,等. JAMA,1994,272:1367-1371 (英文)傅 鷹 摘譯 吳廷王充 校譯]
⑨ 系統綜述怎麼寫
內容要求
文獻綜述是在研究選題確定後並在大量搜集、查閱相關文獻的基礎上,對相關課題或相關領域已有研究成果進行的綜合性介紹,目的是理清本課題已有的研究基礎及尚存的研究空間,它既可以給研究者在充分借鑒前人已有成果的基礎上如何進一步深化本課題的研究指明方向,還可以幫助讀者(或論文審閱者)明確本研究的新意所在。因此,寫好文獻綜述,對於課題研究具有重要作用。
文獻綜述的結構一般由下列成份構成:
1、標題。文獻綜述的標題一般多是在論文選題的標題後加「研究綜述」或「文獻綜述」字樣。
2、提要或前言。此部分一般不用專設標題,而是直接作為整個文獻綜述的開篇部分。內容是簡要介紹本課題研究的意義;將要解決的主要問題;如果本課題涉及到較前沿的理論,還應對該理論進行簡要介紹;最後要介紹研究者搜集的資料范圍及資料來源,其中要講清查閱了哪些主要著作、在網路中查詢了哪些資料庫(如中國期刊網全文資料庫、學位論文全文資料庫等)、並以怎樣的方式進行搜索(如通過輸入「關鍵詞」或「作者名」或「文章名」進行搜索,一般用精確匹配),共搜索到的相關論文的篇目數量多少,對自己有直接參考價值的論文有多少等信息。
3、正文。這是文獻綜述的核心部分。應在歸類整理的基礎上,對自己搜集到的有用資料進行系統介紹。撰寫此部分時還應注意以下兩點:
其一、對已有成果要分類介紹,各類之間用小標題區分。以下是常見的分類線索:按時空分類(如:本課題的研究歷史與研究現狀、國外研究現狀與國內研究現狀);按本課題所涉及的不同子課題分類;按已有成果中的不同觀點進行分類,等等。
⑩ 資料庫如何設計
資料庫設計的基本步驟
按照規范設計的方法,考慮資料庫及其應用系統開發全過程,將資料庫設計分為以下6個階段
1.需求分析
2.概念結構設計
3.邏輯結構設計
4.物理結構設計
5.資料庫實施
6.資料庫的運行和維護
資料庫設計通常分為6個階段1分析用戶的需求,包括數據、功能和性能需求;2概念結構設計:主要採用E-R模型進行設計,包括畫E-R圖;3邏輯結構設計:通過將轉換成表,實現從E-R模型到關系模型的轉換;4:主要是為所設計的資料庫選擇合適的和存取路徑;5資料庫的實施:包括編程、測試和試運行;6資料庫運行與維護:系統的運行與資料庫的日常維護。),主要討論其中的第3個階段,即邏輯設計。
在資料庫設計過程中,需求分析和概念設計可以獨立於任何資料庫管理系統進行,邏輯設計和物理設計與選用的DAMS密切相關。
1.需求分析階段(常用自頂向下)
進行資料庫設計首先必須准確了解和分析用戶需求(包括數據與處理)。需求分析是整個設計過程的基礎,也是最困難,最耗時的一步。需求分析是否做得充分和准確,決定了在其上構建資料庫大廈的速度與質量。需求分析做的不好,會導致整個資料庫設計返工重做。
需求分析的任務,是通過詳細調查現實世界要處理的對象,充分了解原系統工作概況,明確用戶的各種需求,然後在此基礎上確定新的系統功能,新系統還得充分考慮今後可能的擴充與改變,不僅僅能夠按當前應用需求來設計。
調查的重點是,數據與處理。達到信息要求,處理要求,安全性和完整性要求。
分析方法常用SA(Structured Analysis) 結構化分析方法,SA方法從最上層的系統組織結構入手,採用自頂向下,逐層分解的方式分析系統。
數據流圖表達了數據和處理過程的關系,在SA方法中,處理過程的處理邏輯常常藉助判定表或判定樹來描述。在處理功能逐步分解的同事,系統中的數據也逐級分解,形成若干層次的數據流圖。系統中的數據則藉助數據字典(data dictionary,DD)來描述。數據字典是系統中各類數據描述的集合,數據字典通常包括數據項,數據結構,數據流,數據存儲,和處理過程5個階段。