資深IT人員告訴你,為什麼DOGE總是鬧笑話

靠譜的新媒體不多,請關注美國華人雜談
策劃|資訊正義編輯部
作者 | 溪邊愚人

編輯

 | 美華雜談、資訊正義編輯部

全文共 4329 字,閱讀大約需要 8 分鐘
本文為非營利調查新聞編輯室“Information Justice(資訊正義)”原創作品,與“美國華人雜談聯合發表。歡迎轉載、分享、轉發。
請使用網站Justicepatch.org檢視完整文章及更多內容,為防失聯,請透過郵件訂閱網站,或關注我們的電報頻道:https://t.me/piyaoba
自馬斯克和他領導的“政府效率部”(DOGE)在各個聯邦政府機構開始查賬後,他們公佈了不少讓人驚掉下巴的各種腐敗/浪費資訊。雖然一次次被媒體的事實核查打臉,他們還是不斷髮布新的聳人聽聞的資訊。

福克斯臺報道說埃隆·馬斯克聲稱有 150 歲的老人在享受社安福利
最近幾天傳得比較瘋的一條訊息是,美國有很多 150 歲的人還在拿社保。馬斯克也拿這個事大說特說,在 X 上用推文說,在白宮橢圓辦公室裡對著記者的鏡頭說。只是,又很快被打臉。PolitiFact 說,這是電腦程式設計造成的資料假象,並非真有其事。
用大白話說就是,向系統輸入資料時,如果在生日一欄不輸入任何數值,系統就會自動填充為 1875 年 5 月 20 日。那麼,這些人今年就是 150 歲!(有關所謂數千萬百歲以上老人領社保,具體請閱讀:不,150歲的人並沒領社會保障福利。)
這件事好笑嗎?似乎很好笑。但我笑不出來。作為一個以主力身份參與了四次大型資料遷移的曾經的資深資料庫 IT 從業人員,我想說的是:不是專業人員,資料庫後臺是不能進去的,一是有造成危害的可能,二是你看不懂,會誤讀資料。(本文作者也曾談過選舉時因為普通人無法解讀資料庫,所引發的舞弊謠言,詳見:密歇根州早投票,11萬人投出28萬票?謠言!
任何一個數據庫都有自己的特殊性,有自己獨一無二的“故事”。要讀懂資料,不僅要有關於資料庫的 IT 常識,還必須具體瞭解這一個資料庫的“故事”,有時甚至需要了解其前世今生。像 DOGE 那樣去讀資料庫,他們讀出來的東西毫無價值。
為什麼非專業人員不該進資料庫後臺
資料庫後臺只是給資料庫 IT 專業人員用的。任何非專業人員需要看資料,都是透過應用程式,就是我們平時說的 app,或者請專業人員提供報告。從專業角度來說,有千千萬萬個理由不允許非專業人員進入後臺,這裡只從常識角度說幾點。
第一,你讀不懂後臺資料。從 app 上看見的資料是經過一定條件的組合與過濾的。這個我後面會展開說。
第二,app 裡面的內建規則後臺未必有。比如,某個名單的輸入規定生日不能空缺,輸入空缺資料 app 會不接受。但後臺如果沒有做同樣的設定,就有可能接受這樣的資料,於是就產生了“壞”資料,隱患無窮,嚴重的話可能會使系統崩潰。也有自己的系統不崩潰,但資料打包出售後,把買家系統搞崩潰的。
第三,app 裡面往往都是處理單筆資料,而資料庫後臺卻可以“全體”資料一起處理。如果有後臺刪除的許可權,不小心就把資料都刪光了。
為什麼非專業人員會看不懂後臺資料?
回答很簡單,資料庫的後臺本來就不是給非專業人員看的。其實這就好像程式只是給程式設計師看的一樣。問題是,一般人都看不懂程式,所以不會去看。而資料庫的後臺似乎像一個個 Excel 表格,讓人產生可以“看”的感覺,其實不然。資料庫後臺的表格與 Excel 表格完全不是一回事,你要當作 Excel 表格來讀,大錯特錯
舉個例子,一個公司的員工表,其中有一欄是“是否在職”,裡面分別有 0,1,2,3,4 等近十個不同數值。首先,你不能簡單地認為表格裡所有人都是在職員工。其次,你不能簡單地認為 0 代表離職,1 代表還在職。很可能不同數值分別代表了退休,離開該公司後又回來重新入職,在休產假,或者休長病假等等。如果沒有系統說明書,這些都需要從知情者那裡瞭解。
這還是欄目名字有直觀意思的。有的時候你根本不可能從名稱上猜出真正的意思。有時是名稱本身看不出意思,更多時候是,一個欄目的功能已經“進化”,超出了原來名稱的意義。
記得 2020 年大選時,網上盛傳某個州選民資料庫裡很多選民生日是 1800 年 1 月 1 日或 1900 年 1 月 1 日。於是有人說,這還了得,200 多歲的人還在投票!
說實話,我當時一看就明白,這一定是一個派特別用途的特定數值。果然,後來聽見 CNN 電臺裡解釋說這是個佔位符(placeholder),說是用這個日子代表已經投過票的人。當時我也對人說,我猜是個特定值。但馬上有人說,從來沒見過設計資料庫時,生日欄不輸入生日資訊,卻派這樣的用途。不可能!
我只能說,這樣說話的人不懂得資料庫前臺與後臺的區別。這種實踐在資料庫應用裡非常普遍。你沒聽說過是因為你只看得見前臺,而做後臺的人不需要告訴你這些“骯髒”的東西。
沒有人會在設計資料庫的時候就決定把生日欄派這個用場。這樣的“設計”都是慢慢演變出來的。任何企業或機構,業務範圍或運作方式隨時會發生變化,於是對資料庫就會有新的要求。一個數據庫投入應用後,結構不能隨便改。即便現在資料庫已經越來越機動靈活了,改變的空間也有限,這就必須在現有條件下發揮創造性來滿足業務要求。
我不知道上面例子的真實情況是怎樣的,但我可以從專業角度猜測。下面就是幾種資料庫應用中經常發生的只有在後臺才看得見的“不尋常”現象(其中包括但不限於針對上面例子的情況)。
1)資料庫後臺有不止一個生日欄,分佈在不同的表格裡。
這就有了機動性,可以保留一個生日欄作為真正的生日,其他派別的用途。上面例子就很可能是這種情況,凡是已經投過票的,就在這個多餘的生日欄輸入特定的日子,如果這個選民再次來投票,系統就會拒絕。
別問我為什麼會有一個以上生日欄。這個世界稀奇古怪的事情很多,包括資料庫的設計或資料庫裡的資料。大機率是從不同地方資料遷移(data migration)過來彙總的結果,為了某種原因,不得不給兩個、三個生日欄,把不同來源的生日存在不同地方,日後慢慢清理,最後全部輸入一個地方。
2)有一種可能,以前對搬離本州或故世的選民,都是採用刪除的做法。後來業務要求變了,需要保留記錄,只是將這些人標為不能投票。
為了滿足新的業務要求,做後臺設計的人決定用生日欄來做標記,凡是搬離的選民,就把生日改為 1800 年 1 月 1 日;凡是去世的,就輸入 1800 年 1 月 2 日;凡是犯罪被剝奪投票權的,生日一律是 1800 年 1 月 3 日……關鍵是選擇一個“不可能”的日子,這樣就不容易與真實的日子混淆。
這裡就再現了我前面說的非專業人員看不懂後臺資料的情況。要從後臺調出今年的合格選民,你必須知道選擇條件,必須排除那些生日是特殊日子的人。不知道的人直接去後臺看資料,就以為自己發現了驚人的秘密。事實上,那些選民是不會獲得投票資格的。如果是從 app 裡看,你根本不會看見不合格選民,因為被系統過濾掉了。在 app 上,可能只有有特別許可權的人才能看見不合格選民。
3)也有可能,資料庫原先的設計是,投票記錄表格只記錄最近一次選舉的投票。系統也不保留歷史投票記錄,每次選舉就抹去以前的記錄,重新開始。但是,後來又要求保留所有投票記錄。於是,名稱為“最近一次選舉投票記錄”的那個表格裡,一個選民會有很多記錄。讓事情更糟糕的是,那個表格沒有投票日這一欄,也沒有其他可以用作類似用途的內容,這樣的話,要調出最近一次投票記錄就必須透過與其他表格中的記錄相連,甚至可能需要利用系統內在的“時間戳”才能調出正確的內容。當限制條件在另外的表格裡時,僅僅看一個表格,就不可能知道這一筆記錄是不是“有效”。至於需要利用系統時間戳的,這是“不可見”的東西,外行在後臺絕對看不出名堂,相反還會“發現”,居然有那麼多人在一次選舉中多次投票!
資料庫是個特別的東西
資料庫有其特殊性,也有自己特殊的難度,特別是做系統的改朝換代。我做過好幾個大型資料遷移專案,深知把資料從舊系統遷移到一個結構完全不同的新系統是一個非常挑戰的工作。稍有不慎就會犯毀滅性的錯誤。
以顯示員工名單為例,如果一個應用程式忘記考慮“在職與否”那個欄目,把不該包括的名單都顯示了出來,只需要在程式里加一個條件就改正了。這樣的錯誤,除了面子不好看,不會有大傷害。但如果是資料遷移把這一欄漏了,就再也沒辦法區分員工的在職狀態了。
當然,不會有人犯這樣低階的錯誤,我只是舉例說明資料遷移很容易遺漏關鍵的資料資訊。如果事後才發現,資料的修復極其挑戰,甚至會有不可能修復的情況。有的連結一旦失去就連不回去了。
說這麼多,一是為了說明資料庫任何“小”錯誤都可以有嚴重後果,二是想說,聯邦社保資料庫中的資料從 1935 年至今,一定是經歷過多次資料遷移,每次遷移都是一番脫胎換骨,再加上平時免不了的大小“補丁”,一定有很多“故事”,因而讀資料時會需要很多“竅門”。
總之一句話:資料庫不僅需要專業的人來維持,還需要專業的人來用
DOGE 成員絕對不該被允許進入資料庫
二十多年前,這個行業的管理都還不那麼正規,我們做資料庫的人都有上生產環境伺服器的許可權(後來都被拿掉了,只有專人才有)。平時需要做什麼,先在開發環境伺服器上測試,沒有問題了就自己直接上生產環境伺服器做。我每次上生產環境伺服器都會緊張。我以為是自己菜,才會緊張,後來一位很“老”的同事告訴我,他每次上生產環境伺服器手都會發抖,我才知道,並不只是我。因為責任的確是太大了,而且後果嚴重。這也是為什麼會有那麼多人,不惜辭職也不肯給 DOGE 的人進入資料庫的許可權
我見過幾乎是最好的資料庫,但也見過讓人哭笑不得的資料庫。一個嚴肅的資料庫,設計合格的話,任何一個操作應該都可以還原,哪怕在後臺操作也會留下完整的稽核記錄,包括誰做了改動,什麼時候改的,改動之前和之後的內容分別是什麼等等。
我不知道聯邦政府的資料庫質量如何,但我一直記得,川普第一任時曾經搞過讓無證移民孩子與父母“骨肉分離”的事情。我非常吃驚的是,紐約時報記者說,當某個記錄從資料庫中被刪除後,就再也找不到孩子與父母之間的那個聯絡了,結果後來有相當一部分孩子再也沒有能與父母團圓。由此可見,至少不是所有聯邦政府的資料庫都是高質量的
我聽說馬斯克手下幾個毛孩子獲得進入後臺的許可權,真的有遭了電擊的感覺。那些人很可能是我們稱為碼農的人,自以為程式設計本事了得。而且碼農往往因為資料庫工程技術成分低,看不起資料庫的活。但正是這個看不起會要人命——不懂得資料庫的特殊性,還輕敵,最容易闖禍。
說實話,他們鬧了那麼多笑話一點也不奇怪。我只希望,他們沒有對資料庫造成不可逆的傷害。
當然,還有一個需要擔心的因素是,他們會不會隨便洩露不該公開的資訊。畢竟他們中的一個曾經有過這方面的劣跡
這還只是說有沒有對資料庫造成技術上的傷害。至於他們滿天飛的謠言極壞的政治影響,都不知該從何說起了。
關注我們,不再失聯
電報頻道t.me/piyaoba
檢視更多精彩文章,請前往正義補丁網站justicepatch.org
參考資料:
https://www.fox5dc.com/news/elon-musk-claims-150-year-olds-social-security
https://www.politifact.com/article/2025/feb/17/are-150-year-old-americans-receiving-social-securi/
相關閱讀:
不,150歲的人並沒領社會保障福利
密歇根州早投票,11萬人投出28萬票?謠言!

相關文章