zaibd/wkpdtw huggingface dataset:
在電腦領域，資料倉儲（英語：data warehouse，也稱為企業資料倉儲）是用於報告和資料分析的系統，被認為是商業智慧型的核心組件。 資料倉儲是來自一個或多個不同源的整合資料的中央儲存庫。資料倉儲將當前和歷史資料儲存在一起，用於為整個企業的員工建立分析報告。

儲存在倉庫中的資料從執行系統（例如行銷或銷售）上傳。這些資料可能會通過一個 ODS 資料庫，並且可能需要進行額外操作的資料清理，以確保資料品質，然後才能在資料倉儲中用於報告。

典型的基於提取、轉換、載入（ETL）的資料倉儲使用分級、資料整合和存取層來存放其關鍵功能。分級層或分級資料庫儲存從每個不同的源資料系統中提取的原始資料。整合層通過轉換來自分級層的資料，將不同的資料集合在一起，通常將轉換後的資料儲存在 ODS 資料庫中。然後將整合的資料轉移到另一個資料庫（通常稱為資料倉儲資料庫），在這個資料庫中，資料被分為層次組（通常稱為維度），並被分成事實和聚合事實。事實和維度的組合有時被稱為星型模式。存取層幫助使用者檢索資料。

資料的主要來源被清理、轉換、分類，並提供給管理人員和其他商業專業人員用於資料探勘、線上分析處理、市場研究和決策支援。 然而，檢索和分析資料、提取、轉換和裝載資料以及管理資料字典的方法也被認為是資料倉儲系統的基本組成部分。許多資料倉儲的文獻都使用了這個更廣泛的語境。因此，資料倉儲的擴充定義包括商業智慧型工具、提取、轉換和載入資料到儲存庫的工具，以及管理和檢索元資料的工具。



較簡易的解釋方式

資料倉儲是一種資訊系統的資料儲存理論，此理論強調利用某些特殊資料儲存方式，讓所包含的資料，特別有利於分析處理，以產生有價值的資訊並依此作決策。

利用資料倉儲方式所存放的資料，具有一但存入，便不隨時間而更動的特性，同時存入的資料必定包含時間屬性，通常一個資料倉儲皆會含有大量的歷史性資料，並利用特定分析方式，自其中發掘出特定資訊。



較學術的解釋方式

資料倉儲 ，由資料倉儲之父比爾・英蒙於 1990 年提出，主要功能乃是將組織透過資訊系統之線上交易處理（OLTP）經年累月所累積的大量資料，透過資料倉儲理論所特有的資料儲存架構，作一有系統的分析整理，以利各種分析方法如線上分析處理（OLAP）、資料探勘（Data Mining）之進行，並進而支援如決策支援系統（DSS）、主管資訊系統（EIS）之建立，幫助決策者能快速有效的自大量資料中，分析出有價值的資訊，以利決策擬定及快速回應外在環境變動，幫助建構商業智慧型（BI）。

一般來說，資料倉儲可由關聯式資料庫，或專為資料倉儲開發的多維度資料庫建立，若由多維度資料庫建立而成，其架構可分為星狀及雪花狀架構，包含數個維度資料表，及一個事實資料表。

資料倉儲的建制不僅只是資訊工具技術面的運用，在規畫和執行面更需對產業知識、行銷管理、市場定位、策略規畫等相關條件有深入的了解，才能真正發揮資料倉儲以及後續分析工具的價值，提升組織競爭力。



資料倉儲的特性


* 主題導向（Subject-Oriented）

　
: 有別於一般 OLTP 系統，資料倉儲的資料模型設計，著重將資料按其意義歸類至相同的主題區（subject area），因此稱為主題導向。舉例如 Party、Arrangement、Event、Product 等。


* 整合性（Integrated）

　
: 資料來自企業各 OLTP 系統，在資料倉儲中是整合過且一致的。


* 時間差異性（Time-Variant）

　
: 資料的變動，在資料倉儲中是能夠被紀錄以及追蹤變化的，有助於能反映出能隨著時間變化的資料軌跡。


* 不變動性（Nonvolatile）

　
: 資料一旦確認寫入後是不會被取代或刪除的，即使資料是錯誤的亦同。（i.e. 錯誤的後續修正，便可因上述時間差異性的特性而被追蹤）



ODS、資料倉儲和資料超市之異同

Operational data store（ODS）、資料倉儲和資料超市三者相同之處在於均不屬於任一 OLTP 系統，並且都是以資料導向的設計而非流程（process）導向。

相異之處在於，ODS 的特性較著重於戰術性查詢，變動性大。資料倉儲通常為企業層級，用來解答即興式、臨時性的問題。而資料超市則較偏向解決特定單位或部門的問題，部分採用維度模型（dimensional model）。



資料探勘、OLAP 和資料倉儲

資料倉儲可以作為資料探勘和 OLAP 等分析工具的資料來源，由於存放於資料倉儲中的資料，必需經過篩選與轉換，因此可以避免分析工具使用錯誤的資料，而得到不正確的分析結果。

資料探勘和 OLAP 同為分析工具，其差別在於 OLAP 提供使用者一便利的多維度觀點和方法，以有效率的對資料進行複雜的查詢動作，其預設查詢條件由使用者預先設定，而資料探勘，則能由資訊系統主動發掘資料來源中，未曾被察覺的隱藏資訊，和透過使用者的認知以產生知識。

資料探勘（Data Mining）技術是經由自動或半自動的方法探勘及分析大量的資料，以建立有效的模型及規則，而企業透過資料探勘更瞭解他們的客戶，進而改進他們的行銷、業務及客服的運作。資料探勘是資料倉儲的一種重要運用。基本上，它是用來將你的資料中隱藏的資訊挖掘出來，所以 Data Mining 其實是所謂的 Knowledge Discovery 的一部份，Data Mining 使用了許多統計分析與 Modeling 的方法，到資料中尋找有用的特徵（Patterns）以及關連性（Relationships）。Knowledge Discovery 的過程對 Data Mining 的應用成功與否有重要的影響，只有它才能確保 Data Mining 能獲得有意義的結果。



參見



參考文獻
「數據倉庫一體機（Data Warehouse Appliance）」是一種專為大量數據的分析處理而設計的軟、硬體結合的產品。它由一組集成的伺服器、存儲設備、作業系統、資料庫管理系統以及一些為數據倉庫用途而特別預先安裝及優化的軟體組成。

數據倉庫一體機為中等至大型的數據倉庫市場（通常數據量在 TB 至 PB 級別）提供解決方案。



歷史



特點

一個數據倉庫的總體擁有成本（Total Cost of Ownership，TCO）由初始進入成本、進行中的維護成本及隨著數據倉庫的增長而增容的成本組成。而數據倉庫一體機只需較低的進入和維護成本。而初始成本則由安裝在其上的應用程式來決定。

總體擁有成本大部分由監控及調優數據倉庫所花費的資源來組成，通常差不多有 80%。數據倉庫一體機減少了日復日的操作、設置及集成的管理工作。很多一體機也提供了低成本的處理能力和容量的擴展方案。



應用



相關產品



趨勢



相關條目


* 商業智能 (BI)

* 數據挖掘

* 數據集市 (DM)

* 數據倉庫



外部連結
在電腦編程中，資料傳輸物件 (data transfer object，DTO) 是在 2 個行程中攜帶資料的物件。因為行程間通訊通常用於遠端介面（如 web 服務）的昂貴操作。成本的主體是客戶和伺服器之間的來回通信時間。為降低這種呼叫次數，使用 DTO 聚合本來需要多次通信傳輸的資料。

DAO 與業務物件或資料存取物件的區別是：DTO 的資料的變異子與存取子（mutator 和 accessor）、語法分析（parser）、序列化（serializer）時不會有任何儲存、取得、序列化和反序列化的異常。即 DTO 是簡單物件，不含任何業務邏輯，但可包含序列化和反序列化以用於傳輸資料。



術語

值物件不是 DTO。過去 Sun/Java 環境曾把二者混為一談。



參考文獻



外部連結


* Summary from Fowler's book （頁面存檔備份，存於網際網路檔案館）

* Data Transfer Object - Microsoft MSDN Library （頁面存檔備份，存於網際網路檔案館）

* GeDA - generic dto assembler is an open source Java framework for enterprise level solutions （頁面存檔備份，存於網際網路檔案館）

* Local DTO （頁面存檔備份，存於網際網路檔案館）
資料傳輸速率（Data transfer rate）簡稱傳輸速率，在電信領域是指在單位時間內在資料傳輸系統裝置之間傳送位元，字元，或者塊的平均值。

傳輸速率可以應用於不同功能。反應時間可以幫助網路管理員查明網路裡面什麼位置速率下降和潛在的阻斷。通過分析資料傳輸速率來相應做調整，作為一個保護性措施，系統可以執行得更加有效，並可以在高負荷的時候預防處理特別的頻寬限制。

測試裝置比如光纖迴路測試可以幫助測量和管理資料傳輸速率。



參見


* 位元速率
資料保護 API（全稱：Data Protection Application Programming Interface，縮寫 DPAPI）是一個簡單的密碼學應用程式介面 ，作為一個組件內建在 Windows 2000 及之後版本的 Microsoft Windows 作業系統中。理論上，資料保護 API 可以實現任何類型的資料對稱加密；在實踐中，其在 Windows 作業系統中的主要用途是執行非對稱私鑰的對稱加密，使用使用者或系統的秘密資訊作為熵的重要來源。

對於幾乎所有密碼系統來說，最困難的挑戰之一是「金鑰管理」—— 其中部分即是，如何安全地儲存解密金鑰。如果金鑰以純文字儲存，則可以存取金鑰的任何使用者都可以存取加密的資料。如果金鑰被加密，則又需要另一個金鑰，周而復始。DPAPI 允許開發者使用從使用者的登入私鑰匯出的對稱金鑰來加密金鑰，或者在系統加密的情況下使用系統的域驗證私鑰來加密金鑰。

用於加密使用者 RSA 金鑰的 DPAPI 金鑰儲存在 `%APPDATA%\Microsoft\Protect\{SID}` 目錄，其中 {SID} 為該使用者的安全識別碼。DPAPI 金鑰儲存在與保護使用者私鑰的主金鑰相同的檔案中。它通常為 64 位元組的亂數據。

2010 年，Elie Bursztein 和 Jean-Michel Picod 在 Black Hat DC 2010 提出了 Reversing DPAPI and Stealing Windows Secrets Offline。除了他們的簡報，Bursztein 和 Picod 發布了能離線解密 DPAPI 加密資料的 DPAPIck。2012 年，Passcape Software 在他們的部落格中發布了介紹 DPAPI 內部邏輯的更詳細文章及一個完全離線解密和分析 DPAPI 的工具。與上一個不同，該工具利用了一些舊有 Windows 的缺陷（例如，你可以無需獲知所有者的登入密碼就解密 Windows 2000 的 DPAPI 資料體）並完全相容 Windows 8 的 DPAPI 資料結構。在 Windows 8 中，微軟改變了 DPAPI 邏輯的工作方式，現在可以使用多個使用者的金鑰來匯出加密金鑰以解密使用者的主金鑰，然後用於解碼單個 DPAPI 資料體（blob）。



安全屬性

DPAPI 不為自己儲存任何永續性資料。相反，它只接受明文並返回密文（反之亦然）。

DPAPI 安全性依賴於 Windows 作業系統保護主金鑰和 RSA 私鑰免受攻擊的能力。這在大多數攻擊情形中高度依賴終端使用者憑據的安全性。主加密 / 解密金鑰通過 PBKDF2 函式從使用者密碼匯出。特定資料的二進位大型物件可以添加鹽和 / 或詢問外部使用者提供額外密碼（也稱強密碼保護）來加密。鹽的使用由各實現的選項控制，即由應用程式開發者控制，不能由終端使用者或系統管理員控制。

通過使用 COM + 物件可以授予金鑰的委託存取權限。這使 IIS 網頁伺服器能夠使用 DPAPI。



微軟軟體對 DPAPI 的使用

雖然並非所有微軟產品都在使用，但微軟產品對 DPAPI 的使用隨著每個 Windows 版本在增加。不過，出自微軟或第三方開發人員的許多應用程式仍傾向於使用自己的保護方式，或者最近才切換為使用 DPAPI。例如 Internet Explorer 的 4.0-6.0 版本、Outlook Express 和 MSN Explorer 使用較舊的保護儲存（PStore）API 來儲存儲存的憑據（例如密碼）。Internet Explorer 7 則開始使用 DPAPI 保護已儲存的使用者憑據。


* Windows 8 中的圖片密碼、PIN 和指紋

* Windows 2000 及之後版本中的加密檔案系統

* SQL Server 透明資料加密（TDE）服務的主加密金鑰

* Internet Explorer 7，無論是適用於 Windows XP 的獨立版本，還是 Windows Vista 和 Windows Server 2008 中整合的版本

* Windows Mail 和 Windows Live Mail

* Outlook 的 S/MIME

* Internet Information Services 的 SSL/TLS

* Windows 權利管理服務客戶端 v1.1 及之後版本

* Windows 2000 及之後版本對 EAP/TLS（VPN 身分驗證）和 802.1x（Wi-Fi 身分驗證）

* Windows XP 及之後版本對儲存的使用者名稱和密碼）（也稱憑據管理器）

* .NET Framework 2.0 及之後版本對 System.Security.Cryptography.ProtectedData

* Microsoft.Owin（Katana） Cookie 身分驗證（當自代管時）



參考資料



外部連結


* Windows Data Protection API (DPAPI) white paper by NAI Labs

* Data encryption with DPAPI （頁面存檔備份，存於網際網路檔案館）

* Use DPAPI to encrypt and decrypt data

* How To: Use DPAPI (User Store) from ASP.NET 1.1 with Enterprise Services （頁面存檔備份，存於網際網路檔案館）

* System.Security.Cryptography.ProtectedData in .NET Framework 2.0 and later （頁面存檔備份，存於網際網路檔案館）

* Discussion of the use of MS BackupKey Remote Protocol by DPAPI to protect user secrets （頁面存檔備份，存於網際網路檔案館）

* The Windows PStore （頁面存檔備份，存於網際網路檔案館）

* DataProtectionDecryptor （頁面存檔備份，存於網際網路檔案館），NirSoft 出品的免費軟體
《數據保護指令》（英語：Data Protection Directive），正式名稱：《第 95/46/EC 號保護個人在數據處理和自動移動中權利的指令》（Directive 95/46/EC on the protection of individuals with regard to the processing of personal data and on the free movement of such data），是一項於 1995 年通過的歐洲聯盟指令，用於規範歐盟範圍內處理個人數據的行為，是歐盟隱私法和人權法的重要組成部分。

《數據保護指令》被《一般資料保護規範》（GDPR, General Data Protection Regulation）替代。後者於 2016 年 4 月通過，在 2018 年 5 月 25 日生效。



參見


* 一般數據保護條例

* 數據保護法案（英國落實《數據保護指令》的法律）

* 安全港原則



參考文獻
一個數據元由以下兩部分組成：

1. 數據元概念：數據元概念是能以一個數據元的形式表示的概念，其描述與任何特定表示法無關。
2. 表示：表示由值域、數據類型、計量單位（如果需要）、表示類（可選）組成。

基於數據建模的視角，一個數據元概念由兩部分組成。

1. 對象類：可以對其界限和含義進行明確的表示，且特性和行為遵循相同規則的觀念、抽象概念或現實世界中事物的集合。
2. 特性：一個對象類所有成員所共有的特性。

參考文獻

1. 信息技術 元數據註冊系統（第一部分：框架）
資料冗餘發生在資料庫系統中，指的是一個欄位在多個表里重複出現。舉個例子，如果每條客戶購買商品的資訊都連帶記錄了客戶自身的資訊，這樣的資料冗餘可能造成不一致，因為客戶自身的資訊可能不一樣。 資料冗餘會導致資料異常和損壞，一般來說設計上應該被避免。 資料庫規格化防止了冗餘而且不浪費儲存容量。 適當的使用外來鍵可以使得資料冗餘和異常降到最低。但是，如果考慮效率和便利，有時候也會設計冗餘資料，而不考慮資料被破壞的風險。



參照

Template:Database-stub
資料分析是一種統計學常用方法，其主要特點是多維性和描述性。有些幾何方法有助於揭示不同的資料之間存在的關係，並繪製出統計資訊圖，以更簡潔的解釋這些資料中包含的主要資訊。其他一些用於收集資料，以便弄清哪些是同質的，從而更好地了解資料。

資料分析可以處理大量資料，並確定這些資料最有用的部分。本學科近年來的成功，很大程度上是因為製圖技術的提高。這些圖可以通過直接分析資料，來突出難以捕捉的關係；更重要的是，這些表達方法與基於現象分布的「先驗」觀念無關，與經典統計方法正相反。

資料分析的數學基礎在 20 世紀早期就已確立，但直到電腦的出現才使得實際操作成為可能，並使得資料分析得以推廣，而資料分析是數學與電腦科學相結合的產物，，且相關的應用還能在未來起到預測輿情、風險控管的效果。

若是以固定時間為資料分析的顆粒單位，則稱為時間序列分析，是主要作為銷售資料商業分析的方法之一。
數據包捕獲設備是一種能夠捕獲數據包的獨立設備。它可以部署在網絡上的任何部位，常部署在網絡入口（即網際網路連接）和關鍵設備，如包含敏感信息的伺服器的前面。

一般情況下，數據包捕獲設備會完整地捕獲並記錄所有網絡數據包（包括報頭和有效載荷），然而，一些設備還可以被配置為根據用戶定義的過濾器來捕獲部分網絡流量。對於許多應用，特別是網絡取證和應急事件響應，執行完整的數據包捕獲極其關鍵，而帶有過濾器的數據包捕獲設備有時可能被用於特定的，有限的信息收集。



部署

數據包捕獲設備捕獲的網絡數據取決於設備在網絡上的安裝位置和方式。在網絡上部署包捕獲設備有兩種方法：第一個是將設備連接到網絡交換機或路由器上的 SPAN 埠（埠鏡像）。第二種選擇是內聯連接設備，使得沿著網絡路由的網絡活動穿過設備（在配置上類似於網絡分路器，但信息由分組捕獲設備捕獲和存儲，而不是傳遞到另一個設備） 。

當通過 SPAN 埠連接時，包捕獲設備可以接收和記錄交換機或路由器的所有埠的所有乙太網 / IP 活動。

當內聯連接時，數據包捕獲設備僅捕獲兩點之間行進的網絡流量，即通過與數據包捕獲設備連接的電纜的流量。

有兩種通用的方法來部署數據包捕獲設備：集中式和分散式。

集中

使用集中式方法，將一個高容量，高速數據包捕獲設備連接到數據聚合點。集中式方法的優點是，通過一個設備，你可以了解網絡的整個流量。然而，這種方法產生了單點故障，而這對於黑客是一個非常有吸引力的目標；另外，必須重新設計網絡以將業務帶到設備，並且這種方法通常涉及高成本。

分散

使用分散式方法，你可以在網絡上放置多個設備，從入口點開始，並向下游到更深層的網段（如工作組）。優點包括：不需要重新配置網絡；易於部署；可用於事件響應調查多個有利點；有可擴展性；沒有單點故障 - 如果一個失敗了，你還有其他的可用；如果結合電子隱形來說，這種方法還消除了黑客未經授權訪問的危險；低成本。缺點：需要增加多個電器用來維護。

在過去，分組捕獲設備通常僅被節省地部署在進入網絡的點處。現在可以將數據包捕獲設備更有效地部署在網絡各處。當執行事件響應時，從各種有利位置查看網絡數據流的能力對於縮短解決時間和縮小網絡的哪些部分最終受到影響是不可缺少的。通過將分組捕獲設備放置在每個工作組的入口點和前面，可以簡化和更快地跟蹤特定傳輸到網絡中的路徑。此外，放置在工作組前面的設備將顯示位於入口點的設備無法捕獲的內部網傳輸數據。



容量

數據包捕獲設備的容量範圍從 500 GB 到 32 TB 或更多。只有少數幾個具有極高網絡使用率的組織可以用於上層的容量。大多數組織的服務能力從 1 TB 到 4 TB。

選擇容量時一個好的經驗法則是，對於普通用戶，每天可為重型用戶提供 1 GB 的容量，而每月可容納 1 GB 的容量。對於具有平均使用的 20 人的典型辦公室，1TB 將足夠約 1 至 4 年。

比率 100/0 表示實際連結上的單工流量，你可以擁有更多的流量。



特點

過濾與全包捕獲

完全包捕獲設備捕獲和記錄所有乙太網 / IP 活動，而過濾的包捕獲設備僅捕獲基於一組用戶可定義過濾器的流量子集；例如 IP 位址，MAC 地址或協議。除非為過濾器參數所涵蓋的非常特定的目的使用分組捕獲設備，否則通常最好使用全包捕獲設備來避免丟失重要數據。特別是在使用數據包捕獲進行網絡取證或網絡安全時，捕獲所有數據是至關重要的，因為任何未捕獲的數據包都會永遠消失。提前知道所需的分組或傳輸的特定特性是不可能的，特別是在高級持續性威脅（APT）的情況下。APT 和其他黑客技術的成功依賴於網絡管理員不知道他們是如何工作的，因此沒有解決方案來消除他們。

加密與未加密存儲

一些數據包捕獲設備會將捕獲的數據加密，然後再將其保存到磁碟，而其他數據包則不會。考慮到在網絡或網際網路連接上傳播的信息的寬度，並且其至少一部分可以被認為是敏感的，對於大多數情況為保持捕獲的數據安全的措施，加密是一個好主意。加密也是用於數據 / 網絡取證的數據認證的關鍵要素。

持續捕獲速度與峰值捕獲速度

持續捕獲速度指的是分組捕獲設備在長時間段內捕獲和記錄分組而沒有中斷或錯誤的速率。這與峰值捕獲率不同，峰值捕獲率是數據包捕獲設備可以捕獲和記錄數據包的最高速度。峰值捕獲速度只能在短時間內保持，直到設備的緩衝區填滿並開始丟失數據包。許多數據包捕獲設備共享 1 Gbit /s 的相同峰值捕獲速度，但實際持續速度因型號而異。

永久性和可覆蓋性存儲

具有永久存儲的數據包捕獲設備是網絡取證和永久記錄保存的理想選擇，因為捕獲的數據不能被覆蓋，更改或刪除。永久存儲的唯一缺點是，如果最後設備滿了則需要更換。具有可覆蓋存儲的數據包捕獲設備更容易管理，因為一旦達到容量，它們將開始用新的數據覆蓋最舊的捕獲數據，但是，網絡管理員要承擔在覆蓋時丟失重要捕獲數據的風險。通常，具有重寫能力的分組捕獲設備對於簡單的監視或測試目的是有用的，因為其不需要永久記錄。永久的，不可覆蓋的記錄是網絡取證信息收集的必要條件。

GbE 與 10 GbE

大多數企業使用千兆乙太網速度網絡，並將繼續這樣做一段時間。如果企業打算使用一個集中式數據包捕獲設備來聚合所有網絡數據，則可能需要使用 10 GbE 數據包捕獲設備來處理來自網絡的大量數據。更有效的方法是使用多個 1Gbit /s 在線數據包捕獲設備，圍繞網絡有策略地放置，這樣就不需要重新設計千兆網絡以適應 10 GbE 設備。



數據安全

由於數據包捕獲設備捕獲並存儲大量的網絡活動數據，包括文件，電子郵件和其他通信，他們本身可能成為黑客的有吸引力的目標。部署了任何時間長度的數據包捕獲設備應該包括安全特徵，以保護記錄的網絡數據不被未授權方訪問。如果部署數據包捕獲設備引入了太多對安全性的額外注意，則保護它的成本可能超過它帶來的好處。最好的方法是使數據包捕獲設備具有內置的安全功能。這些安全功能可以包括加密或「隱藏」設備在網絡上的存在的方法。例如，一些數據包捕獲設備具有「電子不可見性」，即，通過不要求或使用 IP 或 MAC 地址而具有隱秘的網絡簡檔。

雖然在它的表面上通過 SPAN 埠連接分組捕獲設備似乎使其更加安全，但是數據包捕獲設備最終仍然必須連接到網絡以便允許管理和數據檢索。雖然無法通過 SPAN 連結訪問，但設備可通過管理連結訪問。

儘管有這些好處，但是從遠程機器控制數據包捕獲設備的能力具有一個安全問題，那就是可能會使設備易受攻擊。允許遠程訪問的數據包捕獲設備應該有一個強大的系統，以防止未經授權的訪問。實現這一點的一種方式是併入手動禁用，例如允許用戶物理地禁用遠程訪問的開關或切換。這個簡單的解決方案是非常有效的，但是有人懷疑這會使得黑客更容易地獲得對設備的物理訪問，以翻轉開關。

最後考慮的是物理安全。如果有人只能竊取數據包捕獲設備或製作數據包捕獲設備的副本，並且可以隨時訪問存儲在其上的數據，那麼世界上的所有網絡安全功能都是無用的。加密是解決這一問題的最佳方法之一，儘管一些數據包捕獲設備還具有防篡改機箱。



參見

入侵檢測

數據包捕獲

數據包嗅探器



參考文獻
數據包絡分析（Data envelopment analysis，DEA）是運籌學和研究經濟生產邊界的一種方法。該方法一般被用來測量一些決策部門的生產效率。
數據化是將均勻、連續的數字比特結構化和顆粒化，形成標準化的、開放的、非線性的、通用的數據對象，並基於不同形態與類別的數據對象，實現相關應用，開展相關活動。

數據化是中文中獨有的一個重要概念，它是在電子化、信息化、計算機化和網絡化等術語之間自然出現的。在很多地方，數據化的概念經常被與量化、數值化的概念相混淆，但實際上在這裡，數據不是指狹義的數量值，而是指可以對應於各種信息對象的，數字比特的結構化集合。



數據化與數位化

數據化和數位化不是對立的。數據化這一概念的提出不是對數位化的否定，而是對數位化的拓展與推進。數據化關注的焦點更多地集中在數字比特更複雜、更高級的存在形態上。數據化基於由數字比特組合形成的客體 —— 數據。數據是所有數字比特對象的子集，數據化是數位化進程中的一個方向。

數據化是內生於數位化的，就像半導體化內生於電子化，就像「數字的」內生於「模擬的」，就像活字印刷術內生於印刷術。在人類文明史中，活字印刷取代印刷術發展早期的雕版印刷，將中文裡的漢字、英文裡的字母和單詞分離出來，成為可以自由組合的、在各種具體的文本中通用的獨立顆粒，這一拓展革命性地提升了印刷的效率，導致了印刷成本的大幅度降低。在早期印刷術發展的基礎上，活字印刷這一偉大發明帶給我們更多靈活性，更大的選擇空間，推動了社會中知識的傳播與普及，加速了人類文明的進程。而數據化的文化意義和社會價值正是與它非常相似的。

在電子化的時代，從「模擬的」轉向「數字的」是一個巨大的飛躍。數位化是通過對連續時空對象進行離散化實現的。



典型的數據化對象

數位化對應的基本單元是比特（bits），數據化對應的典型對象則是字節（bytes）和字（words）。其他基本的數據類型還有布爾、雙字、整型、浮點型等，而複合的數據類型則有數組、結構、枚舉、聯合等等。對應於通訊、計算與存儲等具體應用，我們有複雜的高級數據對象，它們是數據包（packet）、類（class）和文件（file）等。



參見


* 數位訊號

* 二進位
在計算領域，數據即服務（Data as a service，簡稱 DaaS）是指在線數據服務，開發者將開發用的數據保存在網際網路上並隨時訪問，而無需使用保存在本地計算機上的資料庫。
數據可移植性是一種保護用戶免於將他們的數據存儲在彼此不兼容地方（封閉平臺）的手段。有些封閉平台為了留住用戶，故意讓用戶數據備份時困難重重。

數據可移植性需要共同的技術標準來促進，這樣用戶從一個平台遷移數據到另一個平台才更方便，例如用戶應該可以很方便地將數據導出到用戶可訪問的本地文件中，此外還應該讓用戶通過一些工具（如 `grep` ）簡單、快捷搜索數據中的內容。 

數據可移植性適用於個人數據，而且用戶可以訪問個人數據，但它並不表示數據所有權就歸屬於個人。



參考文獻
數據可視化感知設計（Visual Perception Design of Data）是感知設計中的一種，根據參與場景業務需求，按照數據可視化規律，將事件的狀態，誘因、路徑、事件發起原點進行貼合人性化設計；將場景與用戶習慣、覺察力、注意力進行重組排序設計；將數據源的各種常量、變量、參數、閾值等屬性重構；在目力所及範圍內，用一層界面全景展示所有類型的數據信息設計。
數據同化，或稱資料同化，是通過數學模型擬合觀測數據的一種漸進方式，通常用於複雜系統的建模和動態預測。這類系統通常具有複雜的數學模型，自由度有時達到 $10^{6}$ ，且因為觀測數據體量龐大，使得對全體觀測進行靜態擬合成為不可能。



「分析 - 預報」循環

數據同化過程主要為兩個步驟的循環。第一步可以稱為_分析_，其中實際系統的觀測量與模型產生的_預報_值相比較 / 融合，得到系統現在狀態的最佳估計。在第二步，根據觀測數據和模型兩者包含的不確定度性信息，平衡二者得到關於未來系統狀態的預報值（具體時間點由下一批觀測值給出）。這就完成了一個_分析 - 預報_循環。



數據同化與卡爾曼濾波器

可以用卡爾曼濾波器來比喻數據同化過程。其中「分析」步驟類似於觀測值與它的預估值的作差；預報步驟則相當於系統狀態的最優估計。數據同化通常與最優控制過程之不同在於其自由度數量龐大，根本無法得到其協方差矩陣。數據同化常用於涉及大規模時效性數據處理的過程，如現代天氣預報。

 



相關條目


* 天氣預報
數據同步是指從源數據到目標數據存儲之間建立一致性的過程，反之亦然，並隨著時間的推移不斷協調數據。它是各種同步應用的基礎，這些同步應用有檔案同步和行動裝置同步（例如個人數碼助理）。在加密領域，公鑰伺服器的同步也涉及到數據同步。



參考文獻
數據處理通常是指「收集和操作數據項以產生有意義的信息。」

英語中數據處理「Data Processing (DP)」一詞也指組織中負責操作數據處理應用程式的部門。 



數據處理功能

數據處理可能涉及各種過程，包括：


* 驗證 – 確保提供的數據正確且相關。

* 排序 – 「按某些順序，以不同的集合排列數據項」。

* 匯總 – 從具體數據中提取要點。

* 聚合 – 合併多塊數據。

* 分析 – 「對數據的收集，組織，分析，解釋和表達」。

* 報告 – 列出詳細信息，摘要數據或計算得到的信息。

* 分類 – 將數據分為各種類別。



歷史

美國普查局的歷史說明了數據處理方式從手動到電子程序的演變。

手動數據處理

儘管英語中術語「_數據處理」_ 的廣泛使用僅始於 20 世紀 50 年代， 但是數據處理工作已由人類手動執行了數千年。例如，記帳涉及諸如過帳交易和製作資產負債表和現金流量表等。隨著機械計算器和電子計算器的出現，工作效率得以提升。一個從事手動或用計算器計算工作的人稱為「計算員」。

1850 年到 1880 年，美國人口普查局採用了「計數系統，由於所需分類的組合數量增加，這個系統變得越來越複雜。一次計數只能記錄有限數量的組合，因此必須處理五六遍表格。」 「1880 年人口普查的結果用了 7 年的時間才發布」 。

自動數據處理

1890 年美國人口普查中使用了赫爾曼・何樂禮打孔卡設備。 「人口普查局使用何樂禮的打孔卡設備，可以在兩三年內完成 1890 年人口普查數據的大部分制表工作，作為對比，1880 年人口普查則花了七八年。據估計，使用何樂禮的系統節省了約 500 萬美元的處理成本「 （以 1890 年的美元計算)，即便 1890 年的調查問題數量是 1880 年的兩倍。

電子數據處理

使用計算機進行數據處理代表了後來的發展。1950 年美國人口普查中，人口普查局開始有限度地使用電子計算機：1951 年交付 UNIVAC I 系統 。



應用領域

商業數據處理

商業數據處理涉及大量輸入輸出數據，計算操作則相對較少。例如，一家保險公司需要保存大量保單記錄，列印並郵寄帳單，以及接收付款和過帳。
數據處理單元（Data processing unit，DPU）是一種可程式電子電路，它具有數據處理以及硬體加速功能，數據處理單元主要用於數據中心內的數據計算處理。  一個 DPU 通常含有一個中央處理器 、 網卡和可程式數據硬體加速引擎， 因此 DPU 可以像中央處理器那樣處理數據的同時還可以處理網路封包。 



參考文獻
數據字典（英語：data dictionary）是一個自動的或手動的存儲數據元的定義和屬性的文檔。

指一組對數據流程圖中的數據流、數據文件、數據項及處理邏輯進行定義描述的表格。



參考文獻
數據安全是指人們採取各種措施保護數碼資料的安全（例如資料庫中的數據），如不讓資料庫中的數據受到破壞性影響以及不讓數據受到未經授權的用戶行為的影響，如網絡攻擊以及數據泄露。



參考文獻
資料定義語言（data definition language，DDL）屬於 DBMS 語言的一種，用於明確定義概念綱要 (conceptual schemas) 及內部綱要 (internal schemas)，DBMS 內的 DDL 編譯器 (compiler) 能夠處理 DDL，識別綱要建構物 (schema constructs) 的描述 (description) 並加以存入 DBMS 目錄中的綱要描述 (schema description)。
為 SQL 語言集中負責資料結構定義與資料庫物件定義的語言，由 `CREATE`、`ALTER` 與 `DROP` 三個語法所組成，最早是由 Codasyl（Conference on Data Systems Languages）資料模型開始，現在被納入 SQL 指令中作為其中一個子集。



語法結構

目前大多數的 DBMS 都支援對資料庫物件的 DDL 操作，部份資料庫 (如 PostgreSQL) 可把 DDL 放在交易指令中，也就是它可以被撤回 (Rollback)。較新版本的 DBMS 會加入 DDL 專用的觸發程式，讓資料庫管理員可以追蹤來自 DDL 的修改。

CREATE

CREATE 是負責資料庫物件的建立，舉凡資料庫、資料表、資料庫索引、預存程序、使用者函式、觸發程式或是使用者自訂型別等物件，都可以使用 CREATE 指令來建立，而為了各式資料庫物件的不同，CREATE 也有很多的參數。

例如，CREATE DATABASE (建立資料庫) 的指令為：

其中的 `ON` 為資料庫檔案的宣告，而 `LOG ON` 為交易記錄檔的宣告。
若需要更進階的設定，則還有 `FOR` 和 `WITH` 以及 `COLLATE` 等等。

又例如，CREATE TABLE (建立資料表) 的指令為：

其中，每個欄位的格式都有定義，並且若有需要建立參考完整性的連結時，可以使用 `REFERENCES` 來宣告，主鍵則是用 `PRIMARY KEY` 來宣告，計算型欄位 (Computed Field) 則是直接給定運算式等等，`CREATE TABLE` 指令很常用，但若設定起來會較為複雜，因此很多資料庫管理人員都會使用 GUI 工具來設計。

其他像是：


* CREATE INDEX：建立資料表索引。

* CREATE PROCEDURE：建立預存程序。

* CREATE FUNCTION：建立使用者函式。

* CREATE VIEW：建立檢視表。

* CREATE TRIGGER：建立觸發程式。

等等，都是使用來建立不同資料庫物件的指令。

ALTER

`ALTER` 是負責資料庫物件修改的指令，相較於 `CREATE` 需要定義完整的資料物件參數，`ALTER` 則是可依照要修改的幅度來決定使用的參數，因此使用上並不會太困難，例如：

DROP

DROP 則是刪除資料庫物件的指令，並且只需要指定要刪除的資料庫物件名稱即可，在 DDL 語法中算是最簡單的。

例如：



DBMS 語言

其他 DBMS 語言包括：


* 儲存定義語言 (Storage Definition Language, SDL)

* 視野定義語言 (View Definition Language, VDL)

* 資料操縱語言 (Data Manipulation Language, DML)



參考資料

1. DDL
2. MySQL SQL Syntax （頁面存檔備份，存於網際網路檔案館）
3. Oracle® Database SQL Language Reference
4. Transact-SQL Reference （頁面存檔備份，存於網際網路檔案館）
5. PostgreSQL SQL Commands （頁面存檔備份，存於網際網路檔案館）
資料室或數據室是人們用於存放數據的地方。資料室可以是物理空間、虛擬空間或數據中心。資料室通常安全級別較高，房間內會有監控。



參考文獻
資料平行（英語：Data parallelism，又譯為數據平行），是一種多處理器的平行運算模式，將資料分配到不同的平行運算節點中。資料平行把大的任務化解成若干個相同的子任務，處理起來比任務平行簡單。



概論

在一個多處理器系統中，執行相同的指令集（SIMD），當每個處理器都處理同一個行程中不同的資料時，就達成資料平行。
資料庫交易（簡稱：交易）是資料庫管理系統執行過程中的一個邏輯單位，由一個有限的資料庫操作序列構成。



概要

資料庫交易通常包含了一個序列的對資料庫的讀 / 寫操作。包含有以下兩個目的：

1. 為資料庫操作序列提供了一個從失敗中恢復到正常狀態的方法，同時提供了資料庫即使在異常狀態下仍能保持一致性的方法。
2. 當多個應用程式在並行存取資料庫時，可以在這些應用程式之間提供一個隔離方法，以防止彼此的操作互相干擾。

當交易被提交給了資料庫管理系統（DBMS），則 DBMS 需要確保該交易中的所有操作都成功完成且其結果被永久儲存在資料庫中，如果交易中有的操作沒有成功完成，則交易中的所有操作都需要回滾，回到交易執行前的狀態；同時，該交易對資料庫或者其他交易的執行無影響，所有的交易都好像在獨立的執行。

例子

某人要在商店使用電子貨幣購買 100 元的東西，當中至少包括兩個操作：

1. 該人帳戶減少 100 元
2. 商店帳戶增加 100 元

支援交易的資料庫管理系統（transactional DBMS）就是要確保以上兩個操作（整個「交易」）都能完成，或一起取消；否則就會出現 100 元平白消失或出現的情況。

但在現實情況下，失敗的風險很高。在一個資料庫交易的執行過程中，有可能會遇上交易操作失敗、資料庫系統／作業系統出錯，甚至是儲存媒介出錯等情況。這便需要 DBMS 對一個執行失敗的交易執行恢復操作，將其資料庫狀態恢復到一致狀態（資料的一致性得到保證的狀態）。為了實現將資料庫狀態恢復到一致狀態的功能，DBMS 通常需要維護交易紀錄檔以追蹤交易中所有影響資料庫資料的操作。



ACID 性質

並非任意的對資料庫的操作序列都是資料庫交易。資料庫交易擁有以下四個特性，習慣上被稱之為 ACID 特性。


* 原子性（Atomicity） ：交易作為一個整體被執行，包含在其中的對資料庫的操作要麼全部被執行，要麼都不執行。

* 一致性（Consistency） ：交易應確保資料庫的狀態從一個一致狀態轉變為另一個一致狀態。_一致狀態_的含義是資料庫中的資料應滿足完整性約束。

* 隔離性（Isolation） ：多個交易並行執行時，一個交易的執行不應影響其他交易的執行。

* 永續性（Durability） ：已被提交的交易對資料庫的修改應該永久儲存在資料庫中。



SQL

SQL 國際標準使用 `START TRANSACTION` 開始一個交易（也可以用方言命令 `BEGIN`）。`COMMIT` 語句使交易成功完成。`ROLLBACK` 語句結束交易，放棄從 `BEGIN TRANSACTION` 開始的一切變更。若 autocommit 被 `START TRANSACTION` 的使用禁止，在交易結束時 autocommit 會重新啟用。



關係型資料庫

關係型資料庫傳統上是由具有固定大小的欄位和記錄的表組成。物件資料庫由可變大小的 blobs (二進位大物件) 組成，可能是可序列化的，也可能是結合了 MIME 類型的。關係型資料庫和物件型資料庫的基本相似之處是 start, commit 或 rollback。

在啟動交易後，資料庫記錄或物件會被鎖定，唯讀，或讀寫。然後才可以進行讀寫操作。一旦交易完全完成，變化就會被原子性地提交或回滾，這樣在交易結束時就不會出現不一致的情況。



分散式交易

資料庫系統實現分散式交易是指在多個節點上存取資料的交易。一個分散式交易在多個節點上執行 ACID 屬性，可能包括資料庫、儲存管理器、檔案系統、訊息系統和其他資料管理器等系統。在一個分散式交易中，通常有一個實體協調所有的過程，以確保交易的所有部分都適用於所有相關系統。



參考文獻



參見


* 資料庫管理系統
資料庫引擎是資料庫管理系統用來在資料庫中進行創建、讀取、更新和刪除（CRUD）數據的底層軟體組件。大多數資料庫管理系統都提供應用程式接口 (API)，允許程序員通過 API 與其底層的資料庫引擎進行交互。許多資料庫管理系統支持多個資料庫引擎，例如 MySQL 支持 InnoDB 以及 MyISAM 。



參考文獻
以主從式架構提供資料庫服務的伺服器被稱為資料庫伺服器。



舉例


* DB2

* Oracle 資料庫

* Microsoft SQL Server

* MySQL

* PostgreSQL



出處

Kenneth C.Laudon and Jane P.Laudon, 《Management Information Systems》, Pearson, 07 March 2011, Chapter6 Information systems Organizations and Strategy p. 155
資料庫權利也稱為資料庫特殊權利，是因現有法律資源無法保護資料庫製作者權益而提出的資料庫權利保護模式，是在著作權法、民法以及反不正當競爭法外設立的一類智慧財產權。現在世界各國並未對資料庫權利形成一致意見。



歷史



各國及組織資料庫保護情況

歐盟

歐盟率先提出了資料庫的特殊權利保護模式，並且與 1996 年立法制度《關於資料庫法律保護指令》。

美國

美國對於資料庫保護的立法由於教育、科研機構反對，因此始終未能獲得美國國會通過。頁 129

中華人民共和國

中華人民共和國對資料庫的保護主要是依據《著作權法》對組譯作品的保護進行，沒有相關的專門立法。頁 306



參考文獻
資料庫正規化，又稱正規化、標準化，是資料庫設計的一系列原理和技術，以減少資料庫中數據冗餘，增進數據的一致性。關係模型的發明者埃德加・科德最早提出這一概念，並於 1970 年代初定義了第一正規化、第二正規化和第三正規化的概念，還與 Raymond F. Boyce 於 1974 年共同定義了第三正規化的改進正規化 ——BC 正規化。

除外還包括針對多值相依的第四正規化，連接相依的第五正規化、DK 正規化和第六正規化。

現在資料庫設計最多滿足 3NF，普遍認為正規化過高，雖然具有對數據關係更好的約束性，但也導致數據關係表增加而令資料庫 IO 更易繁忙，原來交由資料庫處理的關係約束現更多在資料庫使用程序中完成。



正規化

正規化如下（從最不規範到規範排序）：



參考文獻
資料庫管理員（英語：Database administrator，簡稱 DBA），是負責管理資料庫的人。資料庫管理員負責在系統上運行資料庫，執行備份，執行安全策略和保持資料庫的完整性。因為管理資料庫是個很龐大的職務，每個公司或組織的資料庫管理員的需要也是很不同。一個大公司可能有很多資料庫管理員，但是一個小公司可能也沒有資料庫管理員，而讓系統管理員管理資料庫。



技能


* 資料庫理論

* 資料庫設計

* 關聯式資料庫管理系統
  
* Oracle 資料庫、IBM DB2、Microsoft SQL Server、MaxDB、MySQL

* SQL
  
* PL-SQL、Transact-SQL

* NoSQL
  
* MongoDB、Redis、LevelDB、Apache HBase



專業證照


* OCA DBA〈發照單位：Oracle〉

* OCP DBA〈發照單位：Oracle〉

* MCDBA〈發照單位：Microsoft〉

* MySQL CMDBA〈發照單位：Sun Microsystems〉

* MySQL CMCDBA〈發照單位：Sun Microsystems〉



參考文獻



參見


* 系統管理員
資料庫索引，是資料庫管理系統中一個排序的資料結構，以協助快速查詢、更新資料庫表中資料。



聚集索引

索引鍵值的邏輯順序與索引所服務的表中相應行的物理順序相同的索引，被稱為聚集索引，反之為非聚集索引，索引一般使用二元樹排序索引鍵值的，聚集索引的索引值是直接指向資料表對應元組的，而非聚集索引的索引值仍會指向下一個索引資料塊，並不直接指向元組，因為還有一層索引進行重新導向，所以非聚集索引可以擁有不同的鍵值排序而擁有多個不同的索引。而聚集索引因為與表的元組物理順序一一對應，所以只有一種排序，即一個資料表只有一個聚集索引。



參考文獻


* http://www.cnblogs.com/aspnethot/articles/1504082.html 聚集索引和非聚集索引（整理） - 布颜书 - 博客园 （頁面存檔備份，存於網際網路檔案館）



外部連結


* 資料庫技術之索引與查詢 \_51CTO.COM
資料庫行銷（_Database Marketing_）將行銷和客戶資料建立資料庫，並根據對資料庫內資料的分析，進行行銷策略和活動。資料庫行銷常被視作是「直效行銷」（_Direct marketing_）的一個分支，也是一種關係行銷，並且強化客戶管理和忠誠度。



方法

將客戶的銷售歷史資料等行銷資料建立資料庫，並根據對資料庫內資料的分析，確認目標客戶，迅速準確地獲知其需求，了解其特徵，傳達產品和服務的相關資訊，以便更有效地進行市場行銷活動，維繫顧客和提高銷售額。

資料庫行銷旨在建立互信共贏的客戶關係，資料庫服務過程本身即可視為資料庫行銷過程。資料庫的資料必須是動態的，可擴充的和及時更新的，涵蓋現有客戶和潛在客戶。

資料庫的海量處理往往要依賴資料探勘（_Data Mining_）技術。



意義與現狀

資料庫行銷不僅僅被視為是一種行銷工具、方法或者技術平台，而是一種企業經營理念，深刻地改變了企業的行銷模式以及服務模式。

資料庫行銷在歐美國家的市場行銷實踐中已相當普及。美國 85% 的零售商和製造商認為一個強大的行銷資料庫來支持他們的行銷活動，以增強競爭力。2003 年，美國資料庫行銷專家唐・E・舒爾茲在清華大學演講時說：



行業實例

例如在電信行業，使用者基數成長到海量規模時，與客戶的溝通通過信函、電話、電子郵件就難以解決了，而利用資料探勘技術就能從海量的資料中找出最易流失的客戶，並利用行銷工具對其加強溝通來維持他們的品牌忠誠度。



參見


* 直效行銷
在關聯式資料庫，資料表，又稱表格，是一系列二維數組的集合，用來代表和儲存資料對象之間的關係。表是構成表空間的基本結構，由區間構成。它由縱向的行和橫向的列組成，例如一個有關作者信息的名為 authors 的表格中，每個行包含的是所有作者的某個特定類型的信息，比如「姓氏」，而每列則包含了某個特定作者的所有信息：姓、名、住址等等。

對於特定的資料表，行的數目一般事先固定，各行之間可以由行名來識別。而列的數目可以隨時、動態變化，每列通常都可以根據某個（或某幾個）行中的資料來識別，稱為候選鍵。



參考文獻



參見


* 表空間

* 關係模型

* 結構化查詢語言
觸發式（英語：trigger）是在資料庫中，在執行對資料有異動的動作時，先行攔截並處理的一種資料庫物件，它大部份會設在資料表中，作為強制執行特定動作的程式，因此又稱為資料操縱語言（DML）觸發式。

觸發程式的好處：


* 可在寫入資料表前，強制檢驗或轉換資料。

* 觸發程式發生錯誤時，異動的結果會被復原。

* 部份資料庫管理系統可以針對資料定義語言（DDL）使用觸發程式，稱為 DDL 觸發式。

* 可依照特定的情況，替換異動的指令 (INSTEAD OF)。



種類

DML 觸發程式可以分為數種：


* BEFORE：在異動發生前執行。

* AFTER：在異動發生後執行。

* INSTEAD OF：替換異動的指令。

DDL 觸發程式範圍就相當大，對資料庫物件的異動大多都可捕捉，視資料庫管理系統而定。



語法

SQL Server 的 DML 觸發程式可利用下列語法建立：
資料庫轉儲是一種包含了資料庫或特定表格中所有數據的文件，一般是一系列 SQL 語句，資料庫損壞後可以用它恢復資料庫。通常可以通過分析轉儲來恢復損壞的資料庫。



參見


* 核心轉儲

* 資料庫

* SQLyog - 用於生成資料庫轉儲的 MySQL GUI 工具



參考文獻
資料庫連接(database connection) 是資料庫伺服器與客戶端之間的通信聯繫。客戶通過資料庫連接發送命令、接收伺服器返回的結果。

IBM DB2, Microsoft SQL Server, Oracle, MySQL, PostgreSQL, 與 Neo4j 使用連接池技術來改善性能。

建造連接時，通常要提供一個驅動程序或 provider 與一個連接字符串。例如， `Server=sql_box;Database=Common;User ID=uid;Pwd=password;`.

一旦連接建立，它可以被打開、關閉、設置性質。



參見


* ADO

* ADO.NET

* ODBC

* JDBC

* XQJ

* RDBMS



參考文獻

引用

來源



外部連結


* ConnectionStrings.com （頁面存檔備份，存於網際網路檔案館）
在軟體工程中，數據建模是運用正式的數據建模技術，建立信息系統的數據模型的過程。



概述

數據建模是一種用於定義和分析數據的要求和其需要的相應支持的訊息系統的過程。因此，數據建模的過程中，涉及到的專業數據建模工作，與企業的利益和用戶的訊息系統密切相關。

從需求到實際的資料庫，有三種不同的類型 。用於訊息系統的數據模型作為一個概念數據模型，本質上是一組記錄數據要求的最初的規範技術。數據首先用於討論適合企業的最初要求，然後被轉變為一個邏輯數據模型，該模型可以在資料庫中的資料結構概念模型中實現。一個概念數據模型的實現可能需要多個邏輯數據模型。數據建模中的最後一步是確定邏輯數據模型到物理數據模型中到對數據，訪問，性能和存儲的具體要求。數據建模定義的不只是數據元素，也包括它們的結構和它們之間的關係。



參考文獻
在電腦中，資料恢復是一個從二級儲存、抽取式媒體或檔案中搶救被刪除、無法存取、遺失、損壞或格式化的資料的過程，當儲存在其中的資料無法以常規方式存取時。資料最常從儲存媒介中搶救出來，如內部或外部的硬碟機 s（HDD）、固態驅動器 s（SSD）、USB 快閃記憶體驅動器 s、磁帶、CDs、DVDs、RAID 子系統和其他電子裝置。由於儲存裝置的物理損壞或檔案系統的邏輯損壞，使其無法被主機作業系統掛載，可能需要恢復。(OS)。



概述

最常見的資料恢復原因是作業系統故障、儲存裝置故障、儲裝置邏輯故障、意損壞或刪除資料等 (一般來說，在一個有一個磁碟、一個分割區和一個作業系統的系統中)。在這種情況下，最終目標是只需將所有重要檔案從損壞的媒介複製到另一個新磁碟即可。您可以直接從永久記憶體引導，而不是從損壞的磁碟引導。這可以通過 Live CD 或 DVD 完成。許多 Live CD 或 DVD 都有連接系統磁碟和後援盤或可更換的資料記錄媒體的工具，它們還可以使用檔案管理器將檔案從系統磁碟移動到備份媒介和光碟製作軟體。
如果您想提高在系統崩潰時儲存資料的可能性，請提前將磁碟分割區，並將有價值的資料或其副本儲存在儲存作業系統的分割區之外。
當被加密或隱藏（但未損壞）的資料被恢復時，「資料恢復」一詞也用於間諜軟體或流氓軟體。有時需要加密或隱藏電腦上的資料。這是必要的，以防止電腦病毒損壞這些資料。由於只有少數電腦專家能夠在病毒損壞的情況下恢復資料。
下列是較為知名的數據恢復軟體列表。



可引導啟動

有時需要在無法正常啟動的系統上完成數據恢復。正因如此，需要一個包含最小作業系統的啟動盤、Live CD、Live USB 或其他類型的 Live CD。


* BartPE：一個輕量級的 Microsoft Windows XP 或 Windows Server 2003 的變體，32 位作業系統，類似 Windows PE，這可以從一個 Live CD 或 Live USB 驅動器啟動。

* AOMEI PE Builder：免費軟體，可以創建基於 Windows PE 的可引導環境，無須安裝 AIK/WAIK。

* Boot Repair Disk：一鍵修復 Linux 和 Microsoft Windows 系統的啟動項。

* Finnix：一個基於 Debian 的 LiveCD，著重於小和快速，用於計算機和數據的救援。

* Data Rescue 3：Prosoft Engineering 公司製作的一個可啟動的 OS X 恢復 DVD，支持 HFS 和 HFS + 文件系統。

* Data Rescue PC3：一個基於 Linux 的 Live CD/Live USB，具有 Prosoft Engineering 公司的數據恢復軟體，支持 FAT 和 NTFS 文件系統。

* Hiren's BootCD：一個可啟動 CD，包含各類診斷程序，例如分區助手、性能基準測試、磁碟克隆和鏡像工具、數據恢復工具、MBR 工具 BIOS 工具，以及許多修復計算機問題的工具。

* Knoppix：原裝的 Linux Live CD。包含許多適合數據恢復的實用工具。

* SpinRite：一個基於 FreeDOS 的數據恢復工具，適用於硬碟和磁存儲設備。

* SystemRescueCD：一個基於 Gentoo 的 Live CD，可用於修復無法啟動的計算機和系統，在系統崩潰後找回數據。

* Trinity Rescue Kit：一個免費的命令行 Live CD Linux 分發版，專為救援 Windows PC 而創建。

* Ultimate Boot CD for Windows：一個 Microsoft Windows XP Live CD，內置有診斷和修復工具，適合清除惡意軟體和恢復數據。

* Windows 預先安裝環境：一個可定製的 Microsoft Windows 啟動 DVD（微軟製作，可免費分發）。可以被修改為引導啟動上述列出的軟體。



一致性檢查


* CHKDSK：適用於 DOS 和 Windows 系統的一致性檢查程序。

* Disk First Aid：適用於 Mac OS 9 的一致性檢查程序。

* 磁碟工具程式：適用於 Mac OS X 的一致性檢查程序。

* fsck：用於 UNIX 的一致性檢查程序。

* GParted：GNU Parted 的前端，GNU 分區編輯器，可以調用 fsck。



文件恢復


* ApowerRecover：Apowersoft 出品。多平台的數據恢復工具。

* CDRoller：恢復光碟的數據。

* Data Recovery Wizard：EaseUS 出品。Microsoft Windows 文件恢復實用工具。

* Data Rescue PC3：Prosoft Engineering 公司的數據恢復軟體，適用於 FAT 和 NTFS 文件系統。

* Disk Drill Basic：適用於 Mac OS X 和 Windows 的數據恢復程序。

* dvdisaster：生成用於光碟的數據糾正數據。

* FileSalvage：一個 Mac OS X 數據恢復程序。

* GetDataBack：一個 Windows 的數據恢復程序。

* Hetman Partition Recovery：完整的數據恢復解決方案。

* IsoBuster：恢復光碟、USB 驅動器、快閃記憶體盤和硬碟的數據。

* Mac Data Recovery Guru：一個 Mac OS X 數據恢復程序，支持在 USB 驅動器、光碟和硬碟驅動器上運行。

* Norton Utilities：一個文件恢復工具實用套裝。

* PhotoRec：多平台 CLI 程序，用於恢復文件。

* Recoverit：Wondershare 出品。適用於 Mac 和 Windows 的數據恢復。

* Recover My Files：Microsoft Windows 2000 及之後版本，FAT、NTFS 和 HFS。

* Recuva：Microsoft Windows 2000 及之後版本，FAT 和 NTFS。

* Stellar Data Recovery: 適用於 Mac 和 Windows 的數據恢復程序。

* TestDisk：多平台。恢復文件和丟失的硬碟分區。

* TotalRecovery：Microsoft Windows。可啟動備份和恢復系統。

* TuneUp Utilities：Microsoft Windows XP 及之後版本。有一套文件恢復實用工具。

* iRecover：支持 FAT、FAT32、NTFS、EXT2/3/4 XFS、RAID 和 NAS。



電子取證


* EnCase：一個 Guidance 軟體開發的法務工具套裝，用於鏡像和和法學分析 UNIX、Linux 和 Windows 系統。

* Foremost：一個開源的命令行界面文件恢復程序，最初由 U.S. Air Force Office of Special Investigations 和 NPS 中心為信息系統安全研究和探索開發。

* Forensic Toolkit：出自 AccessData，用於執法行動。

* Open Computer Forensics Architecture：一個運行在 Linux 上的開源程序。

* The Coroner's Toolkit：一個實用工具套裝，協助法務人員分析已進入的 UNIX 系統。

* The Sleuth Kit：也稱 TSK。The Sleuth Kit 是一套法務分析工具，由 Brian Carrier 為 UNIX、Linux 和 Windows 系統開發。TSK 包括 Autopsy forensic browser。



鏡像工具


* 再生龍：一個免費的磁碟克隆、磁碟鏡像、數據恢復和部署啟動磁碟的工具

* CopyCatX：最初是一款備份軟體，它可以為已損壞的介質創建鏡像。

* ddrescue：一個類似 dd 的開源工具，但可以跳過和在稍後重試損壞的塊，適合發生壞塊故障的存儲設備。

* dd：常用的字節級克隆工具，在基於 Unix 的系統中都可找到。



公司


* The Data Rescue Center

* DriveSavers：各主要硬碟製造商已授權的數據恢復服務

* DTI Data

* SalvageData

* SecureDataRecovery
資料執行防止，簡稱「DEP」，英文全稱為「Data Execution Prevention」，是一組在記憶體上執行額外檢查的硬體和軟體技術，有助於防止惡意程式碼在系統上執行。



概述

此技術由 Microsoft 主導，Microsoft 在 Windows XP Service Pack 2 上開始提供此技術的軟體支援。而 AMD、Intel 則提供 DEP 的硬體支援，如 NX bit。



説明

資料執行防止（DEP）是一項安全性功能，可協助避免病毒與其他安全性威脅所造成的損害。

電腦程式預留了一部份電腦記憶體供資料使用，另一部份則供程式的指令使用。駭客可以嘗試以欺騙手法讓程式執行放置在電腦記憶體中的有害資料，並將其視為指令。此時駭客便可以取得對您電腦的控制權。

DEP 可透過監視程式來協助保護電腦，確保程式能夠安全地使用電腦記憶體。如果 DEP 發現有某程式正嘗試執行資料用記憶體區塊中的指令，DEP 便會關閉該程式並通知使用者。



外部連結


* 資料執行防止：常見問題集 （頁面存檔備份，存於網際網路檔案館）
數據報（英語：Datagram）是在封包交換網路中的最小傳輸資料單元的抽象詞彙。對於應用層、TCP、IP、LAN 不同網路通訊層而言，datagram 內容逐層增加，並不相同。Datagram 的設計使無連接式通訊成為可能，同時與 Datagram 接收先後順序無關，它與虛擬電路構成了分組交換的兩種主要傳輸方式。



定義

RFC 1594 對數據報的定義如下：

> 一個自我完備的獨立資料實體，攜帶著足夠的資訊，它能夠從源頭，選取路徑，最終到達目的電腦，而不用依賴起始電腦、目的電腦以及傳輸網路預先交換的資訊。
> 
> 



歷史

數據報的概念，最早出現在 1970 年的 CYCLADES 封包網路計畫中，由路易斯・普贊提出。隨後被使用於網際協定（IP）之上。



參見


* 虛電路



參考來源
資料包傳輸層安全（英語：Datagram Transport Layer Security，縮寫為 DTLS），又譯數據包傳輸層安全，是一種通訊協定，它向基於資料報的應用提供傳送安全性，使應用能以一種防止竊聽、篡改、偽造的方式通信。DTLS 協定基於面向字串流的 TLS 協定，意在提供類似的安全保護。DTLS 常用於串流媒體。由於 DTLS 採用 UDP 或 SCTP 而不是 TCP，它能在用於建立 VPN 通道時避免「TCP 熔斷問題」。



定義

下列文件定義 DTLS：


* RFC 6347，在使用者資料包協定（UDP）上使用

* RFC 5238，在數據擁塞控制協定（DCCP）上使用

* RFC 6083，在流控制傳輸協定（SCTP）上使用

* RFC 5764，在安全即時傳輸協定（SRTP）上使用，也被稱為 DTLS-SRTP

DTLS 1.0 的底層為 TLS 1.1，DTLS 1.2 的底層為 TLS 1.2，DTLS 1.3 的底層為 TLS 1.3。DTLS 1.1 並不存在，為了與 TLS 版本編號相協調，這個版本編號略過了。就像前期的 DTLS 版本一樣，DTLS 1.3 意在提供「[與 TLS 1.3] 等價的安全性保證，除順序保護 / 不可重放性」。



實現

函式庫
資料報傳遞協定（英語：Datagram Delivery Protocol，縮寫 DDP）是 AppleTalk 網路協定套件的一員，其主要職責是通過一個 AppleTalk 網路進行資料包的通訊端至通訊端傳輸。


* 備註：所有應用層協定，包括基礎設施協定 NBP、RTMP 和 ZIP 都建立在 DDP 之上。



外部連結


* RFC 1742 - AppleTalk Management Information Base II

* DDP Variable Specifications （頁面存檔備份，存於網際網路檔案館）
數據擁塞控制協定（英語：Datagram Congestion Control Protocol，縮寫為 DCCP）是由（網際網路工程工作小組 IETF）提出一個針對傳輸層中 UDP 的新傳輸的協定而發展出來，用來傳輸即時業務。它是一個可以進行擁塞控制的非可靠傳輸協定，並同時提供多種擁塞控制機制，在通信開始時由使用者進行協商選擇。除預留和自訂方式外，目前 DCCP 定義了兩種擁塞控制機制：TCP－Like 和 TFRC。TCP－Like 類似 TCP 的 AIMD 機制，而 TFRC 是 TCP 友好的速率控制機制。

建立、維護和拆卸不可靠連接的資料流以及對不可靠性資料流進行擁塞控制，是 DCCP 主要提供的兩大功能。即時業務需要快速且低開銷的傳輸協定，要使包頭帶來的開銷和終端處理的工程量儘量小。因此，DCCP 儘可能做到簡單合理、低延遲和快速回應，避免提供更高層的傳輸功能。DCCP 沒有 TCP 的可靠性和順序傳送的特性。基於單播的應用功能也被涵蓋在 DCCP 中。



DCCP 的主要特色

有確認的不可靠資料報流。使用 Data 和 DataAck 兩種資料流的資料傳輸，Data 是純資料，DataAck 可以既有資料又有確認資訊。

可靠性協商。包括合適的擁塞控制協商、擁塞控制協商演算法。半連接。這使得兩台主機間可以使用兩個半連接來連接，並使用不同的擁塞控制機制。（擁塞控制標記（CCID））。每個 CCID 說明了它的終端是如何對 ECN 報告進行回應的。如 CCID2：TCP-like 機制、CCID3：TFRC 機制（TCP 友好控制機制）。

多重連接和行動通訊中的應用。DCCP 提供多重連接。在連接過程中可以通知對方位址或者埠的改變。當行動端點得到新的位址後，它從新位址傳送 DCCP-Move 包給固定端點，然後固定端點使用新的位址改變連接狀態。此外，DCCP 使用一個快取來取代 TCP 的探測影格，這樣減少了網路開銷。

此外，DCCP 合併了 ECN 和 ECNNonce 的擁塞控制，具有最大路徑傳送單元（MTU）的發現機制；清晰的連接建立和中止過程，對於連接的建立和拆除有著可靠的握手過程；伺服器可以拒絕任何沒有確認資訊的連接嘗試或者是本已結束的連接嘗試。

儘管 DCCP 當前仍有很多問題，例如，協定應該同時支援 IPv4 和 IPv6；在安全性方面，有關 DCCP 是否可以在傳輸安全管理協定上取代 UDP 還需探討；DCCP 和 RTP（即時傳輸協定）的關係也還須進一步研究，但 DCCP 協定草案的提出為希望使用一種協定同時提供多種傳輸服務的應用展現了一種新的服務模式，對未來網路中傳輸協定的研究及對多媒體應用的支援提供了一個新的切入點。



外部連結


* IETF Chairs

* 正式 IETF 網站
數據損壞是指計算機數據在寫入、讀取、存儲、傳輸或處理過程中發生的錯誤，這些錯誤給原始數據帶來了意想不到的變化。計算機和存儲系統會通過一些措施來保證端到端傳輸過程中的數據完整性，避免出現錯誤。



參考文獻
數據控制者目錄（英語：Register of data controllers）是英國依據《1998 年數據保護法案》設立的資料庫。目錄由資訊專員辦公室管理，用於登記數據控制者（數據收集者）的信息以及收集和處理數據的目的。

根據《數據保護法案》，在某些情況下，數據控制者可豁免登記。當無法達到豁免要求時，在開始收集數據前未能通知資訊專員辦公室（即登記到目錄）是一項無過失責任罪行，可被資訊專員辦公室刑事檢控。

登記加入目錄繳納的費用被直接用於英國資訊專員辦公室的運作。任何人均可免費查詢此目錄。



參考文獻



外部連結


* 數據控制者目錄 （頁面存檔備份，存於網際網路檔案館）
資料控制語言 (Data Control Language) 在 SQL 語言中，是一種可對資料存取權進行控制的指令，它可以控制特定使用者帳戶對資料表、檢視表、預存程序、使用者自訂函式等資料庫物件的控制權。由 `GRANT` 和 `REVOKE` 兩個指令組成。



語法結構

DCL 以控制使用者的存取權限為主，因此其指令作法並不複雜，可利用 DCL 控制的權限有：


* `CONNECT`

* `SELECT`

* `INSERT`

* `UPDATE`

* `DELETE`

* `EXECUTE`

* `USAGE`

* `REFERENCES`

根據不同的 DBMS 以及不同的安全性實體，其支援的權限控制也有所不同。

`GRANT` 的語法結構為：

`DENY` 的語法結構為：



參考文獻
資料調處語言（Data Manipulation Language, DML）是用於資料庫操作，對資料庫其中的物件和資料執行存取工作的編程語句，通常是資料庫專用程式語言之中的一個子集，例如在資訊軟體產業通行標準的 SQL 語言中，以 `INSERT`、`UPDATE`、`DELETE` 三種指令為核心，分別代表插入 (意指新增或建立)、更新 (修改) 與刪除 (銷毀)。在使用資料庫的系統開發過程中，其中應用程式必然會使用的指令；而加上 SQL 的 `SELECT` 語句，歐美地區的開發人員把這四種指令，以「CRUD」(分別為 Create, Retrieve, Update, Delete 英文四字首字母縮略的術語) 來稱呼；而亞洲地區使用漢語的開發人員，或可能以四個漢字：增 查 改 刪 來略稱。



語法結構

DML 的主要功能即是存取資料，因此其語法都是以讀取與寫入資料庫為主，除了 `INSERT` 以外，其他指令都可能需搭配 `WHERE` 指令來過濾資料範圍，或是不加 `WHERE` 指令來存取全部的資料。

SELECT

SELECT 是 SQL 資料調處語言 (DML) 中用於查詢表格內欄位資料的指令，可搭配條件限制的子句 (如 where) 或排列順序的子句 (如 order) 來取得查詢結果。

基本格式有：

 

INSERT

INSERT 是將資料插入到資料庫物件中的指令，可以插入資料的資料庫物件有資料表以及可更新檢視表兩種。

基本格式有：

例如：

UPDATE

UPDATE 指令是依給定條件，將符合條件的資料表中的資料更新為新的數值，其基本格式為：

例如：

DELETE

DELETE 指令為自資料庫物件中刪除資料的指令，基本語法為：

例如：



使用者介面的增查改刪功能

CRUD 在多數使用者介面的應用程式，也是與系統相關的重要功能。 例如在通訊錄軟體中，基本儲存單元是單個聯絡人條目。一個通訊錄軟體最基本的功能，必須允許使用者可以操作：


* 添加或建立新的聯絡人條目

* 讀取，檢索，搜尋或檢視現有條目

* 更新或編輯現有條目

* 刪除現有條目

如果沒有這四個操作，該軟體或許不是完整的版本。由於這些操作很重要，它們通常在一個大的功能標題下記錄和描述，例如「聯絡人管理」，「內容管理」或「聯絡人維護」（或「文件管理」），具體取決於基本儲存單元 特定的應用程式）。



參考文獻

1. 完整的 SQL 中文參考網站
2. MySQL SQL Syntax （頁面存檔備份，存於網際網路檔案館）
3. Oracle® Database SQL Language Reference
4. Transact-SQL Reference （頁面存檔備份，存於網際網路檔案館）
5. PostgreSQL SQL Commands （頁面存檔備份，存於網際網路檔案館）
資料整合是將不同來源與格式的資料邏輯上或物理上進行整合的過程。傳統上，資料整合可以分為兩大類別方法，即資料倉儲和聯邦資料庫系統。資料庫倉庫技術在物理上將分布在多個資料來源的資料統一集中到一個中央資料庫中；而聯邦資料庫則僅通過將使用者查詢翻譯為資料來源查詢來進行邏輯上的資料整合。
數據文件是一種計算機文件，用於存儲計算機應用程式或系統所要使用的數據，這些數據包括輸入和輸出數據。數據文件通常不包含所要執行的指令或代碼（即電腦程式）。



參考文獻
在軟體工程中，對象映射器模式（data mapper pattern）是一種架構模式。它在 Martin Fowler 的 2003 年著《企業應用架構的模式》書中命名。符合這個模式的對象的接口將包括函數比如創建、讀取、更新和刪除，它們對表示數據存儲中領域實體類型的對象進行操作。

數據映射器是，在持久化數據存儲（經常是關係資料庫）和內存中數據表示（領域層）之間，進行雙向轉移的數據訪問層。這個模式的目標是，保持內存中表示和持久化數據之間相互獨立，並獨立於數據映射器自身。數據訪問層是由一個或多個映射器（或數據訪問對象）構成，它們進行數據轉移。映射器實現在範圍上有所不同。通用映射器將處理很多不同的領域實體類型，專用映射器只處理一種或一些。



實現

這個概念的實現可在很多程式語言的各種框架中見到。

Java/.NET


* MyBatis 持久化框架。

* Hibernate（NHibernate）持久化框架。

Node.js/TypeScript


* Bookshelf.js 庫。

* TypeORM 庫。

* Massive.js 庫。

* Prisma。

* Objection.js 庫。

* MikroORM 庫。

PHP


* Atlas ORM（數據映射器、表格數據網關、查詢建造器和 PDO 包裝器）。

* Doctrine2 對象關係映射器（ORM）和資料庫抽象層。

* Cycle ORM（PHP 數據映射器 ORM 和數據建模引擎）。

Python


* SQLAlchemy 庫。

* mincePy 庫。

Ruby


* DataMapper 庫（實際上這個庫實現了主動記錄設計模式，它的後繼者 DataMapper 2（現在的 ROM）致力於實際上實現它所命名的這個設計模式）。

Elixir


* Ecto 持久化框架。



參見


* 主動記錄模式

* 對象關係映射



引用
查詢語言或資料查詢語言（Data Query Language, DQL）是用於從資料庫或資訊系統中查詢資料的電腦語言。例如 SQL 語言是查詢語言裡比較知名的一種。



查詢語言範例



資料查詢語言

數據查詢語言泛指向資料庫或資訊系統查詢的各種程式語言。資料查詢語言必須要能表達所有關係代數所能表達的查詢，這樣才被稱為關係完整的（英語：Relational complete）。

DQL 的主要功能是查詢資料，本身核心指令為 SELECT，為了進行精細的查詢，加入了各類輔助指令。`SELECT` 是查詢的指令，例如：



參照



參考資料

1. 完整的 SQL 中文參考網站
2. MySQL SQL Syntax （頁面存檔備份，存於網際網路檔案館）
3. Oracle® Database SQL Language Reference
4. Transact-SQL Reference （頁面存檔備份，存於網際網路檔案館）
5. PostgreSQL SQL Commands （頁面存檔備份，存於網際網路檔案館）
6. 一種新的查詢語言：OttoQL Reference
文件格式可以指：


* 文件檔案格式（英語：Document format），港台譯作文件格式，中國大陸譯作文檔格式。

* 檔案格式（英語：File format），中國大陸譯作文件格式，港台譯作檔案格式。
在軟體工程中，資料模型是定義資料如何輸入和與輸出的一種模型。其主要作用是為資訊系統提供資料的定義和格式。資料模型是資料庫系統的核心和基礎，現有的資料庫系統都是基於某種資料模型而建立起來的。



要求

1. 比較直觀地模擬實境世界
2. 容易為人理解
3. 便於電腦實現



三要素

1. 資料結構：儲存在資料庫中物件類型的集合，作用是描述資料庫組成物件以及物件之間的聯絡。
2. 資料操作：指對資料庫中各種物件實例允許執行的操作的集合，包括操作及其相關的操作規則。
3. 資料完整性約束條件：指在給定的資料模型中，資料及其聯絡所遵守的一組通用的完整性規則，它能保證資料的正確性和一致性。



參考文獻
在採用段式內存管理的架構中，數據段（data segment）通常是指用來存放程序中已初始化的全局變量的一塊內存區域。數據段屬於靜態記憶體分配。



參見


* BSS 段

* 代碼段

* 記憶體管理

* 動態記憶體分配

* 段式管理
資料流又稱數據流，是一個用在電腦計算的術語，有多方面的含義，取決於具體的應用程式及使用情境。 在軟體架構領域，資料流指的通常是串流處理或響應式編程。



軟體架構

資料流是一種軟體範例，它基於將計算參與者與可以同時執行的階段（管道）斷開連接的想法。數據流也可以稱為串流處理或響應式編程。



硬體架構



並發性



另見



參考文獻



外部連結
Data Flow Diagram，縮寫為 DFD。中文名資料流圖或資料流程圖。數據流圖 DFD 是描述系統中數據流程的一種圖形工具，它標誌了一個系統的邏輯輸入和邏輯輸出，以及把邏輯輸入轉換邏輯輸出所需的加工處理。

值得注意的是，資料流圖不是傳統的流程圖或方塊圖，資料流也不是控制流。資料流圖是從資料的角度來描述一個系統，而方塊圖是從對資料進行加工的工作人員的角度來描述系統。



數據流圖的圖符

數據流圖有四種基本圖形符號：



分層 DFD

如果系統的規模較大，僅用一個 DFD 難以描述，會使得系統變得複雜、龐大而又難以理解。為了降低系統的複雜性，一般採取「逐層分解」的方法，繪製分層的 DFD。


* 繪製分層 DFD 的原則一般是：先全域後局部，先整體後細節，先抽象後具體。

* 繪製分層 DFD 的步驟一般是：
  
* 先確定整個系統的範圍和功能，繪製頂層的 DFD。
  
* 繪製出頂層的 DFD 之後，然後逐層分解頂層 DFD，獲得若干中間層 DFD。
  
* 根據獲得的中間層 DFD 繪製各個底層的 DFD。



實例

一個簡單的資料流圖



參考文獻

參照

來源

書籍


* 《軟體工程 —— 理論與實踐》許家怡、曾翎、彭德中 高等教育出版社



外部連結


* 中興大學地圖導覽系統 DFD

* 東南大學軟體工程資料流圖的基本成分 （頁面存檔備份，存於網際網路檔案館）

* P. D. Bruza and Th. P. van der Weide. The Semantics of Data Flow Diagrams. [2010-01-09]. （原始內容存檔於 2008-03-23）.

* Case study "Current physical dataflow diagram for Acme Fashion Supplies" ..and accompanying elementary process descriptions

* "Yourdon's chapter on DFDs"



參見


* 軟體工程

* 流程圖

* 業務流程建模標記法

* 系統關係圖

* 控制流程圖
在程式設計中，資料流程編程是一種程式設計範式，它將程式建模為資料在運算（operation）之間流動的有向圖，從而實現了資料流程原理和架構。資料流程程式語言，共享了純函數式語言的某些特徵，比如單賦值，並且開發它們的動因，通常是為了向更適合數值處理的語言，增加函式語言程式設計概念。



歷史

先驅的資料流程語言是 BLODI（BLOck DIagram），它是 John Larry Kelly, Jr.、Carol Lochbaum 和 Victor A. Vyssotsky 專門開發的，用於採樣資料系統。最初開發更常規的資料流程語言，是為了使並列編程更加容易。在 1966 年 Bert Sutherland 的博士論文《電腦過程的線上圖形規定》中，Sutherland 建立了第一個圖形資料流程編程框架。

資料流程編程，是 1960 年代由 Jack Dennis 和他在 MIT 的研究生開創。為了避免混淆於資料流程計算或資料流程架構，它基於了非確定型機器範式，一些作者使用術語「資料串流」（datastream）替代「資料流程」。

後續的資料流程語言，大多是在大型的超級電腦實驗室中開發的。其中最流行的是 1983 年發行的 SISAL，它是勞倫斯利弗莫爾國家實驗室開發的。SISAL 看起來很像大多數的語句驅動語言，但是變數必須是單賦值的。這允許編譯器容易的辨識輸入和輸出。SISAL 已經發展出了很多分支，包括 SAC，即單賦值 C 語言，它力求儘可能的接近流行的 C 程式語言。

在 1980 年代早期，美國海軍開發了 ACOS 和 SPGN（訊號處理圖式表示法）。它今天仍用於很多實戰平台中。更激進的概念是 Prograph，在其中程式用螢幕上的圖形來構造，而變數被完全替代為連接輸入和輸出的連線。

資料流程已被提議，用作規定分散式系統構件的全域行為的抽象方法：在現場分散式物件編程模型中，使用分散式資料流程來儲存和溝通狀態，因而它們扮演了類似於類 Java 程式語言中變數、欄位和參數的角色。



特性

傳統上，程式被建模為，按照特定次序發生的一系列運算；這稱為指令式編程，這種編程方式也叫做順序式、程序式、控制流程（意指程式選擇某個特定路徑）。程式聚焦於命令，符合於馮・紐曼的順序式編程願景，而資料通常是「靜止的」。

與之相對，資料流程編程強調了資料的流動，並將程式建模為一系列的連接。顯式的定義輸入和輸出的連接運算，它的功能類似於黑箱。一個運算在它的所有輸入成為有效時立即執行。因此，資料流程語言是天然並列的，並可在大型的、去中心化的系統上運作。

狀態

電腦編程的關鍵概念之一，是狀態（state）的概念，它本質上是在系統中各種狀況的快照（snapshot）。多數程式語言需要相當數量的狀態資訊，它們通常對編程者是隱蔽的，電腦自身經常完全不知道哪部份資訊編碼了持久狀態。這是一個嚴重問題，因為在並列處理機器中，狀態資訊需要在多個處理器之間共享。多數語言強制編程者增加額外代碼，來指示哪些資料和哪部份代碼，對於狀態而言是重要的。這種代碼趨向於在效能方面是代價昂貴的，並且難於閱讀和除錯。

如果將順序式程式想像為，在任務（運算）之間移動的一個單一工人，則資料流程程式，更像是在一個裝配線上的一系列工人，每個人都在材料可獲得的時候，作一份特定任務。因為運算只關心資料輸入的可獲得性，它們沒有隱蔽的狀態要追蹤，都是同時「準備好的」。

體現

資料流程程式，可以用不同方式來體現。一個傳統程式，通常體現為一系列的正文指令，可以合理的描述一個串行系統，它在小型單一用途的，接收、處理並返回的工具之間，用管道連通資料。資料流程程式開始於一個輸入，可能有命令列參數，並說明資料被怎樣使用和修改。資料的流程是顯式的，經常用連線或管道來說明。

在編碼方面上，資料流程程式，可以被實現為一個雜湊表，具有以可唯一性辨識的輸入作為鍵（key），用它來尋找轉至指令的指標。當任何運算完成時，程式逐項掃描運算的一個列表，直到找到第一個全部輸入都當前有效的運算，並執行它。當運算結束時，它典型的會輸出資料，因而使得另一個運算變為有效。

對於並列運算，只有這個列表需要被共享；它是整個程式的狀態。因此維護狀態的任務，從編程者移交給了語言的執行時系統。在有著單一處理器核心的機器上，設計用於並列運算的實現，只會簡單的產生開銷，要完全去掉這種開銷，可以使用一種不同的執行時系統。



語言

資料流程程式語言包括：



應用編程介面


* Apache Beam：Java/Scala SDK，統一的串流（和批次）處理，支援多種執行引擎（Apache Spark、Apache Flink、Google 雲平台等）。

* Apache Flink：Java/Scala 庫，允許串流（和批次）計算執行於分散式 Apache Hadoop（或其他）叢集之上。

* SystemC：C++ 庫，主要用於硬體設計。

* TensorFlow：基於資料流程編程的一個機器學習庫。



參見


* 資料驅動編程

* 基於流程編程

* 函數式回應式編程

* 管道 (軟體)

* 訊號編程

* 串流處理



參照



外部連結


* Book: Dataflow and Reactive Programming Systems

* Basics of Dataflow Programming in F# and C# （頁面存檔備份，存於網際網路檔案館）

* Dataflow Programming - Concept, Languages and Applications （頁面存檔備份，存於網際網路檔案館）

* Static Scheduling of Synchronous Data Flow Programs for Digital Signal Processing （頁面存檔備份，存於網際網路檔案館）

* Handling huge loads without adding complexity （頁面存檔備份，存於網際網路檔案館） The basic concepts of dataflow programming, Dr. Dobb's, Sept. 2011

* 純函式管道資料流 v3.0 （頁面存檔備份，存於網際網路檔案館）
在數據傳輸中，數據流量控制是一個能管理兩個節點（數據發送方和數據接收方）之間數據傳輸速度的機制，由於數據發送方的發送速度和數據接收方的處理速度並不一致，數據流量控制為數據接收方提供了一種控制發送方傳輸速度的機制，使數據接收方節點不會被數據發送方節點發來的數據所淹沒。
資料淨化（data cleaning）是從記錄集、資料庫表或資料庫中檢測和糾正（或刪除）損壞或不準確的記錄的過程，是指辨識資料的不完整、不正確、不準確或不相關部分，然後替換、修改、或刪除髒資料或粗資料。資料淨化可以與資料加工工具互動執行，也可以通過指令碼進行批次處理。

清洗後，一個資料集應該與系統中其他類似的資料集保持一致。 檢測到或刪除的不一致可能最初是由使用者輸入錯誤、傳輸或儲存中的損壞或不同儲存中類似實體的不同資料字典定義引起的。 資料清理與資料確認 (data validation) 的不同之處在於，資料確認幾乎總是意味著資料在輸入時被系統拒絕，並在輸入時執行，而不是執行於批次資料。

資料淨化不僅僅更正錯誤，同樣加強來自各個單獨資訊系統不同資料間的一致性。專門的資料淨化軟體能夠自動檢測資料檔案，更正錯誤資料，並用全企業一致的格式整合資料。



參閱


* 資料確認

* 驗證及確認
資料湖泊（英語：data Lake）是指以檔案以其原始格式（如 BLOB 或檔案等）儲存的數據儲存庫或是系統 。資料湖泊多半會將所有的資料統一儲存，包括源系統資料、感測器資料、社會資料等資料的原始副本，也包括用於報表、視覺化、資料分析和機器學習等流程之轉換後資料。資料湖泊也可能包括關聯式資料庫的結構化資料（行與列）、半結構化的資料（CSV、紀錄檔、XML、 JSON）及非結構化資料 (電子郵件、檔案、PDF）及二進位資料（圖像、音訊、影片）等。資料湖泊可能是「on premises」（指在組織的資料中心裡），也可能放在雲端（使用 Amazon、微軟或是 Google 的雲端服務）。

構建不良的資料湖泊又稱為資料沼澤。使用者或是無法存取這樣的資料湖泊，或是資料湖泊內的資料沒什麼價值。



背景

據稱此術語由 James Dixon 為了與資料市集對比而提出，當時他是 Pentaho 的技術長。 資料市集相對較小，包含從原始資料提取出來的有價值的屬性。 在推廣資料湖泊的時候，他認為，資料市集有幾個原生的問題，例如 資訊孤島。普華永道稱，資料湖泊可以 "解決資料孤島。" 在其資料湖泊研究中，他們指出，企業 "開始使用一個單一的、基於 Hadoop 的儲存庫來存放和提取資料。"
Hortonworks, Google, Oracle, Microsoft, Zaloni, 天睿動力的技術， Cloudera 和 亞馬遜 都有資料湖泊的產品。 



範例

許多公司使用 Azure Data Lake 和 亞馬遜雲服務 Lake Formation 之類的雲端儲存服務，或者 Apache Hadoop 之類的分散式檔案系統 學術界對於資料湖泊的興趣也正在興起。比如，Cardiff 大學 的個人資料湖泊，它定位於管理個人大數據，提供收集，管理和分享個人資料的單一入口. 
早期的資料湖泊 (Hadoop 1.0) 在批次資料處理方面能力有限，僅有 (MapReduce) 這一個資料處理範式。 資料湖泊的存取者必須具備用 Java 實現 MapReduce 的能力，以及掌握一些高層工具，比如 Apache Pig and Apache Hive (他們本身是面向批次處理的).



批評

在 2015 年六月，David Needle 表示 "所謂的資料湖泊" 是 "一個（相比之下）更具爭議性的方法來管理大數據". 普華永道 也在它們的研究中謹慎地指出，並不是所有的資料湖泊行動都是成功的。 他們參照 Sean Martin，劍橋語意的技術長的話：

普華永道描述那些在建立資料湖泊方面取得成功的公司能找出對組織重要的那些資料和元資料，逐步讓他們的資料湖泊趨向成熟。對於資料湖泊的另一項批評是，這一概念模糊和任意。 它指的是不適合進入傳統的 資料倉儲 架構的任何工具或資料管理實踐。 資料湖泊已被稱為一種特定的技術。 資料湖泊已被標記為一個原始資料儲存庫或 ETL 解除安裝樞紐。 資料湖泊已被定義為一個自助分析服務的中央樞紐。 資料湖泊這一概念涵蓋了太多意義，因此這個術語的價值存疑。



參考文獻
數據脫敏又稱數據漂白，是指人們將數據中的敏感信息去除。這些敏感信息包括個人的姓名、電話、住址、身份證號碼。數據脫敏的目的是保障敏感信息不外泄。常見的數據脫敏的方法有替換（如將女性用戶名替換為 F）、重排（如將序號 12345 重排為 54321）、加密（如將編號 12345 加密為 23456）、截斷（例如 13811001111 截斷為 138）、掩碼（如 123456 變成 1xxxx6）。



參考文獻
數據狗（Datadog）是美國的一家 SaaS 公司，提供伺服器、資料庫等的監控服務。



歷史

該公司創立於 2010 年，創始人來自無線世代（Wireless Generation）。2015 年收購 Mortar Data。隨著公司規模擴大和不斷併購，它先後在巴黎和東京等地開設了分部。

融資

2010 年接受 NYC Seed、Contour Venture Partners、IA Ventures、傑瑞・紐曼和亞歷克斯・佩恩等的種子輪投資，2012 年接受指數投資和 RTP 投資的 A 輪融資，2014 年接受 Openview 的 B 輪融資，2015 年接受指數投資 3100 萬美元的 C 輪融資。2016 年接受 ICONIQ 資本 9450 萬美元的 D 輪融資，2019 年 9 月 19 日在納斯達克上市。



參考文獻



外部連結


* 官方網站
*
數據科學中，數據確認（英語：data validation）是一個流程，確保數據清洗後的數據是健壯的（fitness）、一致的（consistency） 。這種流程稱為「確認規則」、「確認約束」、「檢查流程」 。這不同於證實或證否算法正確實現了規格或屬性的正確性。



數據確認的類別

數據類別檢查

如 Excel 數據表中的某列是由 24 個數字組成的序列號（serial number），不應該被 Excel 軟體自動識別為數值，這會導致表示精度問題。

值域與約束性檢查

如檢查輸入值在最小 / 最大的閾值之間；或與正則表達式定義的規格一致（consistency）。

代碼及交查引用檢查

代碼與交叉引用確認是檢查搜否與可能的外部規則、需求、或特定組織、上下文環境、基本假設相一致。這些確認提供的數據是否與已知的查詢表或目錄信息服務相一致。

例如，用戶提供的國家代碼應該與當前所在國家 / 地區相一致。

結構化檢查

是指把其他種類的確認與複雜的流程組合起來。

一致性檢查

確保數據是符合邏輯的。例如，訂單交付日期不應該早於運輸日期。



確認的類型

允許字符的檢查
: 檢查字符是否在期望的範圍內。

批匯總
: 根據批匯總數據是否對得上，檢查是否有缺失記錄

基數檢查
: 檢查記錄數與相關記錄數是否合乎邏輯。例如，作為「客戶」的接觸信息記錄，就應該至少關聯一條訂單。有的業務邏輯更為複雜。如工資資料庫中標名為「前雇員」的接觸信息記錄，就不應該在離職日期之後再有關聯的薪水支付記錄 (cardinality = 0)。

數字檢查
: 對於數值數據，可以用一位額外的數字作為檢查和。

一致性檢查
: 檢查記錄的欄位之間是邏輯一致的。例如，如果已經過了過期日期，那麼狀態欄位就不該是 "active".

跨系統一致性檢查
: 多個系統可能都存有同一信息，但數據格式不同。

數據類型檢查
: 檢查輸入值是否遵從了類型數據。例如，輸入框應該包含數字，拒絕字母 'O'。

文件存在檢查
: 檢查給定名字的文件是否存在。

格式檢查
: 檢查數據是否符合規定格式，如日期 YYYY-MM-DD，正則表達式驗證

存在性檢查
: 例如，客戶應該有 email 地址

值域檢查
: 例如，概率值應該在 0 與 1 之間。

引用完整性
: 外鍵應該在被引用表中有對應的主鍵。

拼寫與語法檢查
:

獨一無二性檢查
:

查表檢查
: 檢查數據是否在允許值清單中。

確認後動作

強制動作
: 如果確認未通過，則拒絕該數據並要求輸入者提供符合要求的數據。

建議動作
: 如果自動清理數據，應該給數據源用戶發 email 備案此事。

確認動作
: 要求數據輸入者人工確認數據符合其真實意圖或者根據系統給出的建議修改數據格式。

日誌動作
: 即使確認沒有發現問題，也應該寫下確認日誌。



確認與保全

未通過數據確認的，稱為數據損壞.



參見


* 數據驗證

* 驗證及確認

* 軟體驗證及確認



參考文獻



外部連結


* Data Validation （頁面存檔備份，存於網際網路檔案館）, OWASP

* Input Validation （頁面存檔備份，存於網際網路檔案館）, OWASP Cheat Sheet Series, github.com
資料科學（英語：data science）又稱數據科學，是一門利用資料（數據）學習知識的學科，其目標是通過從資料中提取出有價值的部分來生產資料產品，學科範圍涵蓋了：資料取得、資料處理、資料分析等過程，舉凡與數據有關的科學均屬資料科學。

資料科學結合了諸多領域中的理論和技術，包括應用數學、統計、圖型識別、機器學習、資料視覺化、資料倉儲以及高效能計算。資料科學通過運用各種相關的資料來幫助非專業人士理解問題。
資料科學技術可以幫助我們如何正確的處理資料並協助我們在生物學、社會科學、人類學等領域進行研究調研。此外，資料科學也對商業競爭有極大的幫助。

美國國家標準技術研究所於 2015 年發表七卷大數據參考框架（NIST Big Data Reference Architecture，NBDRA），於第一卷定義篇中將數據科學定為在理論科學、實驗科學和計算科學之後的第四科學科學。

 



歷史

1960 年代，彼得・諾爾就首次提議要用「數據科學（data science、Datalogy）」來替代「計算機科學（computer science）」，後來在上世紀九十年代中期為國際分類社團聯盟所用。

1997 年 11 月，吳建福 發表了題為「統計 = 資料科學？」的就任演講， 因為他被任命為密西根大學的 H. C. 卡弗教授。
在這次演講中，他將統計工作描述為資料收集、資料建模和分析以及決策制定的三部曲。 在他的結論中，他開創了「資料科學」（而非「電腦科學」）這個術語的現代用法，並提倡將統計學重新命名為資料科學，而統計學家則應重新命名為資料科學家。
後來，他發表了題為「統計 = 資料科學？」的演講，作為他 1998 年的首個 P. C. 馬哈拉諾比斯紀念演講。 這些講座是為了紀念印度科學家、統計學家和印度統計學院創始人 P. C. 馬哈拉諾比斯。

2001 年，William S. Cleveland 提議將其設立為一個新的學科，吸收「計算在數據方面取得的進展」作為統計學的延伸。《Data Science Journal》及《The Journal of Data Science》分別於 2002 年與 2003 年發行；2005 年 9 月，美國國家科學基金會發表了《長存的數位資料收集：使 21 世紀的研究與教育成為可能》，文中將數據科學家定義為「資訊與電腦科學家，資料庫與軟體工程師與程式設計師，跨學科專家，保管員以及專業注釋者，圖書館員，檔案館員和其他人員，這些人對數位資料收集的成功管理至關重要。」
2008 年 Jeff Hamerbatcher 與 DJ Patil circa 分別在 Facebook、LinkedIn 領導全球第一支數據科學團隊，至此數據科學越來越被廣泛流行，並應用到公共衛生、市場、金融、社會等各個領域。



資料科學家

數據科學家這個職位的頭銜則是 1997 年吳建福的報告 "Statistics = Data Science?" 中首次提及的，他認為數據科學家就是能夠從大型資料集中析取出數據，並進行統計推斷的統計學家。

2009 年 1 月，數位化數據跨機構工作組發表了一份名為《駕馭科學與社會數字化數據之力》的報告，Sadkowsky 從中了解到「數據科學家」這個詞，認為該詞是自己所從事工作的最好描述。

2012 年，資料科學家被《哈佛商業評論》稱為《二十一世紀最性感的職業》後，數據科學逐漸成為一個時髦術語（Buzzword）。

2017 年，由資料科學活動而衍生的資料經濟，也開始被關注。與資訊經濟不同的是，資訊經濟是由編譯過的資料而產生經濟價值，而資料經濟的資料價值則源自於資料本身，它可以不斷的被編譯而產生多樣化的價值。

資料科學家在美歐的需求巨大，麥肯錫公司宣布全世界上此職業人才短缺超過二十萬工人。



參考文獻
數據科學家這個職位的頭銜則是 1997 年吳建福的報告 "Statistics = Data Science?" 中首次提及的，他認為數據科學家就是能夠從大型數據集中析取出數據，並進行統計推斷的統計學家。

2009 年 1 月，數位化數據跨機構工作組發表了一份名為《駕馭科學與社會數字化數據之力》的報告，Sadkowsky 從中了解到「數據科學家」這個詞，認為該詞是自己所從事工作的最好描述。

數據科學家被《哈佛商業評論》稱為《二十一世紀最性感的職業》後，數據科學逐漸成為一個時髦術語（英語：Buzzword)。

數據科學家在美歐的需求巨大，麥肯錫公司宣布全世界上此職業人才短缺超過二十萬工人。《The Data Incubator》國際企業，在矽谷和紐約等地成立，提供國際大數據和數據科學培訓服務。



參見


* 信息與計算科學

* 計算科學家

* 統計學習理論

* 機器學習

* 人工智慧

* 運算學習論

* 超級計算機

* 雲計算

* 計算機科學家



注



外部連結

*
資料管理，即對資料資源的管理。按照 DAMA 的定義：「資料資源管理，致力於發展處理企業資料生命周期的適當的建構、策略、實踐和程式。」這是一個高層而包含廣泛的定義，而並不一定直接涉及資料管理的具體操作（如關聯式資料庫的技術層次上的管理）。

資料管理的常見內容包括:


* 資料分析

* 資料建模

* 資料庫管理

* 資料倉儲

* 資料探勘

* 資料安全

* 資料整合

* Data movement

* Data quality assurance

* Meta-data management (data repositories, and their management)

* Strategic data architecture



資料管理的主題（領域）

資料管理的主題，根據 DAMA DMBOK 框架劃分，包括：



參考文獻



外部連結


* DAMA International - 資料管理協會

* DM 評論 （頁面存檔備份，存於網際網路檔案館）
在 C 語言中，資料型態可以分為兩類：基礎資料型態和複合資料型態。



基礎資料型態

_注意：以下是典型的資料位長和範圍。編譯器可能使用不同的資料位長和範圍。請參考具體的參考。_

在標準標頭檔 limits.h 和 float.h 中說明了基礎資料的長度。float，double 和 long double 的範圍就是在 IEEE 754 標準中提及的典型資料。另外，C99 添加了新的複數類型，C11 添加了原子類型，它們不在本條目討論範圍內。關於這些類型的具體含義和部分細節，參見資料類型，最後一列寫出了這些類型在硬體層面的類型（x86&x86\_64 實現)

註：粗體為 C99 所新增的類型。



複合資料型態

在 C 語言中，複合資料型態可分為三類：結構、聯合和列舉。在現代 C 語言中，聯合和列舉的使用頻率已逐漸減少。

結構

結構（structure variable） 允許構造由多個基礎資料型態組合而成的複雜結構。結構為物件導向程式設計的藍本。以下範例通過結構和結構體裡的指標實現了二元樹結構：

為結構定義變數時通常會用到動態記憶體分配：

由於 C 語言不具備自動垃圾收集（Garbage Collection）功能，使用完畢後呼叫 `free(treePtr)` 來釋放之前通過 `malloc(size)` 分配的記憶體。詳見這裡。
在 C99 標準中，還添加了名為伸縮型陣列成員的特性，關於此特性的內容超出了該條目的介紹範圍，若需了解更多資訊可參見文件或其它材料。

聯合

聯合（union） 與結構相類似，但不同的是，聯合在某一特定時刻只有最後被使用的成員的值是確定的，因此一個聯合只使用所有成員中所占空間最大的成員所使用的記憶體。然而，一些編譯器可以通過編譯參數或 #pragma 的方式強制聯合使用與所有成員所占儲存空間的和相等的儲存空間，在這種情況下，除最後被使用的成員外，其餘成員的值是未定義的。以下給出了聯合的一個聲明：

在這個例子中，假設使用 32 位元平台編譯，一個 double 變數占 8 位元組，一個 int 變數占 2 位元組（由上表得），則該聯合所占大小即為 double 類型的大小 ——8 位元組。在這段程式執行完畢後，foo.bar 的值是未定義的，而 foo.foobar 的值為 3.14。

列舉

列舉（enumerated type） 用來聲明一組整數常數。預設情況下，列舉聲明格式為 enum _type_ {value1,value2,...,valuen}; 此時 value1,value2 分別為 0，1，直到 n-1。事實上，列舉類型在 C 語言實現中是以 int 類型儲存的。以下是列舉的一個聲明：

在此之後，便可以以如下方式使用：

而此時的 b，c，d 分別為 0，1，2。
另外，也可以手動為列舉列表中的常數賦值。下面是一個例子：

則此時 red，blue，yellow 的值分別為 100，700，200.

需要注意的是，列舉在 C 和 C++ 中所表現的行為有一些細微的差異。參見 C 與 C++ 的相容性。



參考文獻
數據約束模型（英語：Data-constrained modelling，DCM）是由澳大利亞聯邦科學與工業研究組織的楊玉雙博士提出並領頭開發的一種材料三維微觀結構表徵和模擬方法。



外部連結


* 官方網站 （頁面存檔備份，存於網際網路檔案館）

* 數據約束模型軟體 （頁面存檔備份，存於網際網路檔案館）

* CSIRO-Data-Access-Portal 下載 （頁面存檔備份，存於網際網路檔案館）
資料經濟（data economics）又稱數據經濟，是指優先取得大量資料（數據）並加以分析的人，會在經濟上取得優勢的概念。

資料經濟和資訊經濟不同，資訊經濟強調的是資料整合後形成的資訊，而資料經濟也著重整合前的原始資料，相同的原始資料若依不同的方式分析，有可能產生不同的資訊。



參考資料



相關條目


* 知識經濟

* 資訊經濟

* 大數據

* 開放資料
資料繫結（英語：Data binding）是將「提供器」的資料來源與「消費者」繫結並使其同步的一種通用技術。這通常用兩種不同語言的資料 / 資訊源完成，如 XML 資料繫結。在 UI 資料繫結中，相同語言但不同邏輯功能的資料與資訊物件被繫結在一起（例如 Java UI 元素到 Java 物件）。

在資料繫結過程中，每個資料更改會由繫結到資料的元素自動反射。術語「資料繫結」也指一個外部資料表示隨元素更改產生變化，並且底層資料自動更新以反映此更改。舉例來說，對一個文字方塊的更改可能修改其根源的資料值。



資料繫結框架和工具

Delphi


* DSharp 第三方資料繫結工具

* OpenWire Visual Live Binding - 第三方可視資料繫結工具

* LiveBindings

C#


* Windows Presentation Foundation

JavaScript


* AngularJS

* Backbone.js

* BindingJS

* Datum.js

* EmberJS

* 通用資料繫結器

* KnockoutJS

* React

* SAPUI5、OpenUI5

* Vue.js

Java


* Google Web Toolkit

Objective-C


* AKABeacon iOS 資料繫結框架

Scala


* Binding.scala，用於 Scala 的回應式資料繫結框架。



參見


* Windows Presentation Foundation

* XML 資料繫結

* UI 資料繫結

* 繫結屬性



參考資料



拓展閱讀


* Noyes, Brian. Data Binding with Windows Forms 2.0: Programming Smart Client Data Applications with .NET. Pearson Education. 12 January 2006. ISBN 978-0-321-63010-0.
在電腦科學中，資料結構（英語：data structure）是電腦中儲存、組織資料的方式。

資料結構意味著介面或封裝：一個資料結構可被視為兩個函式之間的介面，或者是由資料類型聯合組成的儲存內容的存取方法封裝。

大多數資料結構都由數列、記錄、可辨識聯合、參照等基本類型構成。舉例而言，可為空的參照（nullable reference）是參照與可辨識聯合的結合體，而最簡單的鏈式結構連結串列則是由記錄與可空參照構成。

資料結構可透過程式語言所提供的資料類型、參照及其他操作加以實現。一個設計良好的資料結構，應該在儘可能使用較少的時間與空間資源的前提下，支援各種程式執行。

不同種類的資料結構適合不同種類的應用，部分資料結構甚至是為了解決特定問題而設計出來的。例如 B 樹即為加快樹狀結構存取速度而設計的資料結構，常被應用在資料庫和檔案系統上。

正確的資料結構選擇可以提高演算法的效率（請參考演算法效率）。在電腦程式設計的過程中，選擇適當的資料結構是一項重要工作。許多大型系統的編寫經驗顯示，程式設計的困難程度與最終成果的品質與表現，取決於是否選擇了最適合的資料結構。

系統架構的關鍵因素是資料結構而非演算法的見解，導致了多種形式化的設計方法與程式語言的出現。絕大多數的語言都帶有某種程度上的模組化思想，透過將資料結構的具體實現封裝隱藏於使用者介面之後的方法，來讓不同的應用程式能夠安全地重用這些資料結構。C++、Java、Python 等物件導向的程式語言可使用類 (電腦科學) 來達到這個目的。

因為資料結構概念的普及，現代程式語言及其 API 中都包含了多種預設的資料結構，例如 C++ 標準模板庫中的容器、Java 集合框架以及微軟的.NET Framework。



常見的資料結構


* 堆疊（Stack）

* 佇列（Queue）

* 陣列（Array）

* 連結串列（Linked List）

* 樹（Tree）

* 圖（Graph）

* 堆積（Heap）

* 雜湊表（Hash table）



參考文獻



外部連結


* Descriptions from the Dictionary of Algorithms and Data Structures

* Data structures course （頁面存檔備份，存於網際網路檔案館）

* An Examination of Data Structures from .NET perspective （頁面存檔備份，存於網際網路檔案館）

* Schaffer, C. _Data Structures and Algorithm Analysis_ （頁面存檔備份，存於網際網路檔案館）