2.4 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.1http://hk.geocities.com/cmscit2003
檢查數位為了進行自檢,通常會在實際數值之後加上一個檢查數位。檢查數位根據某種數學公式計算出來,並且成為數值的一部分。在香港身份證號碼的括號裡的數字或英文字母就是檢查數位,採用模 11 驗法。
甚麼是模11驗法?太複雜了!我們先看看所謂「模2驗法」,然後再研究「模11驗法」吧 。
甚麼是模2驗法?例如224224這個三位數
將它的三個數字相加(即22+22+44=8)如果總和可被2整除,我們就在後面加上(0);如果總和不能被2整除,我們就在後面加上(1)。總之,括號內的數字要能令到所有數字加起來的總和能夠被2整除。括號裡應填上甚麼才能令以下數字通過模2驗法?225(?) 435(?) 9237(?)括號裡只會有 0 和 1 ,你知道點解嗎?
有沒有模10驗法?將所有數字加起來,看看總和能否被10整除?我們可以在後面加上括號,內放一個小於10的數字,使新的總和能被10整除。例如224224這個三位數,我們可以加上(2)。例如99999999這個數,我們可以加上(4)。例如55555555這個數,我們可以加上(0)。
括號裡的數目字就叫做「檢查數位檢查數位」。
模11驗法現在不太複雜了!即檢查總和是否可以被11整除。檢查數位就由0至10,因為10佔了兩個位,所以通常會用A或其他英文字母代替10。
P.202.4.2
2.4.2 模檢數模檢數為算法的一種用於檢查一個數字的有效性之前提及的檢查數位檢查數位可以檢查出部分輸入的錯,但是卻難以檢查這個錯誤:
「 2456 錯誤輸入為 2465 」利用「加權加權」的方法,便可以檢查出以上的錯誤。
國際標準圖書編號 (ISBN) 962- 943- 717- 1
檢查數位
P.21 例子2-2
2.4.3 檢查數位
P.22 例子2-3
香港身份證 (HKID) 號碼D288754(2)
檢查數位
可在 http://hk.geocities.com/cmscit2003 選擇 練習與活動 再選 活動 2.1
或在 Y: 磁碟 開啟 HKIDno.xls
請嘗試活動 2.1
2.4.4 數據校驗數據校驗是確保數據在轉換過程中沒有差誤。例如檢查已輸入的數據與源文件是否一致。方法:雙重輸入,即同一個人輸入數據兩次,然後做校驗由兩個人獨立輸入,然後做校驗一個人輸入,另一個人做校驗
P.24圖 2-3P.23 2.4.4