2.4 數據有效性及數據校驗
2.4.1 數據有效性 數據有效性是指將數據與一系列標準或數值進行比較,從而保證數據值的合理性。
有效性檢查項目 域完整性的檢查 欄長度的檢查 範圍檢查 格式檢查 檢查數位 P.20 表 2-2 跟住會逐個睇…
域完整性的檢查 確認具備了所有必須的字段 例如「學生記錄」中應該有姓名、班別、學號、性別等資料。 又例如「出生日期」應該有年、月、日等資料。 陳鐘耀
欄長度的檢查 確認每項數據都具有正確字串的長度。 例如「家用電話號碼」應有8位數字。 又例如「出生年份」是四位數字,不應有三位數(203)或五位數(19996)等。
範圍檢查 確認數據值在預先確定的範圍內。 例如「出生月份」為 1 至 12 之間的任何一個數,不應該有 13。 又例如「考試成績」只有 A 至 H 級,不應該有 K 級。
格式檢查 確認數據的類型符合指定的格式。 例如「身份證號碼」由一個英文字母加六個數目字,再加一個括號,內有一個英文字母或數目字。 A123456(7)便符合以上身份證號碼的格式。 3456789(0)及123456A(9)均不符合以上身份證號碼的格式。
暫停一會! 請完成以下作業: 網上練習2.1 http://hk.geocities.com/cmscit2003
檢查數位 為了進行自檢,通常會在實際數值之後加上一個檢查數位。 檢查數位根據某種數學公式計算出來,並且成為數值的一部分。 在香港身份證號碼的括號裡的數字或英文字母就是檢查數位,採用模 11 驗法。
甚麼是模11驗法? 太複雜了! 我們先看看所謂「模2驗法」,然後再研究「模11驗法」吧 。 Modulus 11
奇數? 偶數? 甚麼是模2驗法? 例如224這個三位數 將它的三個數字相加(即2+2+4=8) 如果總和可被2整除,我們就在後面加上(0); 如果總和不能被2整除,我們就在後面加上(1)。 總之,括號內的數字要能令到所有數字加起來的總和能夠被2整除。 括號裡應填上甚麼才能令以下數字通過模2驗法? 225(?) 435(?) 9237(?) 括號裡只會有 0 和 1 ,你知道點解嗎?
有沒有模10驗法? 將所有數字加起來,看看總和能否被10整除? 我們可以在後面加上括號,內放一個小於10的數字,使新的總和能被10整除。 例如224這個三位數,我們可以加上(2)。 例如9999這個數,我們可以加上(4)。 例如5555這個數,我們可以加上(0)。 括號裡的數目字就叫做「檢查數位」。
模11驗法 現在不太複雜了! 即檢查總和是否可以被11整除。 檢查數位就由0至10,因為10佔了兩個位,所以通常會用A或其他英文字母代替10。
2.4.2 模檢數 模檢數為算法的一種 用於檢查一個數字的有效性 2.4.2 模檢數 模檢數為算法的一種 用於檢查一個數字的有效性 之前提及的檢查數位可以檢查出部分輸入的錯,但是卻難以檢查這個錯誤: 「2456 錯誤輸入為 2465」 利用「加權」的方法,便可以檢查出以上的錯誤。 P.20 2.4.2
2.4.3 檢查數位 國際標準圖書編號(ISBN) 962-943-717-1 檢查數位 2.4.3 檢查數位 P.21 例子 2-2 國際標準圖書編號(ISBN) 962-943-717-1 檢查數位 香港身份證(HKID)號碼 D288754(2) 檢查數位 P.22 例子 2-3
請嘗試活動2.1 可在 http://hk.geocities.com/cmscit2003 選擇 練習與活動 再選 活動2.1 可在 http://hk.geocities.com/cmscit2003 選擇 練習與活動 再選 活動2.1 或在 Y: 磁碟 開啟 HKIDno.xls
2.4.4 數據校驗 數據校驗是確保數據在轉換過程中沒有差誤。 例如檢查已輸入的數據與源文件是否一致。 方法: 2.4.4 數據校驗 數據校驗是確保數據在轉換過程中沒有差誤。 例如檢查已輸入的數據與源文件是否一致。 方法: 雙重輸入,即同一個人輸入數據兩次,然後做校驗 由兩個人獨立輸入,然後做校驗 一個人輸入,另一個人做校驗 P.24 圖2-3 P.23 2.4.4