日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

爬虫结果数据完整性校验

發(fā)布時(shí)間:2023/11/29 编程问答 25 豆豆
生活随笔 收集整理的這篇文章主要介紹了 爬虫结果数据完整性校验 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

數(shù)據(jù)完整性分為三個(gè)方面:

1、域完整性(列)

  限制輸入數(shù)據(jù)的類型,及范圍,或者格式,如性別字段必須是“男”或者“女”,不允許其他數(shù)據(jù)插入,成績(jī)字段只能是0-100的整型數(shù)據(jù),email字段的內(nèi)容必須符合郵箱的正則表達(dá)式

2、實(shí)體完整性(行)

  要求表中的所有行都有一個(gè)唯一標(biāo)識(shí)符。這個(gè)唯一標(biāo)識(shí)符可能是一列,也可能是幾列的組合,稱為主鍵。也就是說,表中的主鍵在所有行上必須取唯一值。

3、參照完整性(表)

  參照完整性是基于外鍵與主鍵之間的關(guān)系,從表中的外鍵必須在主表中存在數(shù)據(jù),不能引用主表中不存在的主鍵值,在輸入更改或者刪除主表數(shù)據(jù)時(shí),從表需要聯(lián)動(dòng)變化,保證了數(shù)據(jù)的一致性。

?

根據(jù)以上概念,對(duì)于數(shù)據(jù)的完整性校驗(yàn)是從?“列”、“行”、“表”?的維度進(jìn)行的。

?

有些約束是在建表的時(shí)候就已經(jīng)根據(jù)數(shù)據(jù)庫定義語言DDL語句進(jìn)行了約束。

1、域完整性約束

  強(qiáng)制域完整性的方法有:限制類型(通過設(shè)定列的數(shù)據(jù)類型)、格式(通過CHECK約束和規(guī)則)或可能值的范圍(通過FOREIGN KEY約束、CHECK約束、DEFAULT定義、NOT NULL定義和規(guī)則)

2、實(shí)體完整性約束

  強(qiáng)制實(shí)體完整性的方法有:索引、UNIQUE約束、PRIMARY KEY約束或IDENTITY屬性。

3、參照完整性約束

  強(qiáng)制參照完整性的方法有:主外鍵關(guān)系

?

校驗(yàn)點(diǎn)分析:

  可以看到其實(shí)實(shí)體完整性是肯定符合的,因?yàn)闆]有主鍵是不能建表的,參照完整性約束在建表時(shí)一般也會(huì)進(jìn)行約束,校驗(yàn)的重點(diǎn)在于域完整性校驗(yàn),即校驗(yàn)列數(shù)據(jù)的內(nèi)容,有時(shí)候建表時(shí)不會(huì)增加CHECK約束(下面會(huì)舉例),

所以不能保證入庫的數(shù)據(jù)就是你想要的,假如沒有約束性別字段只能為”男”或者“女”,而你又需要統(tǒng)計(jì)男女比例分布,萬一爬蟲數(shù)據(jù)寫入了其他值,則統(tǒng)計(jì)結(jié)果肯定就不準(zhǔn)確了。

例子:

CHECK約束(mysql)

在 "Persons" 表創(chuàng)建時(shí)在 "P_Id" 列上創(chuàng)建 CHECK 約束。CHECK 約束規(guī)定 "P_Id" 列必須只包含大于 0 的整數(shù)。

CREATE TABLE Persons ( P_Id int NOT NULL, LastName varchar(255) NOT NULL, FirstName varchar(255), Address varchar(255), City varchar(255), CHECK (P_Id>0) )

?

域完整性校驗(yàn)實(shí)例:

使用robot framework編寫的自動(dòng)化測(cè)試腳本

*** Settings *** Library DatabaseLibrary Library re*** Test Cases *** 域完整性校驗(yàn)[Documentation] 腳本解釋:......   1、連接數(shù)據(jù)庫,讀取主鍵id和email字段的值......   2、遍歷email的所有值,校驗(yàn)是否符合郵箱格式的正則表達(dá)式,如果不符合用例失敗,打印錯(cuò)誤信息Connect To Database Using Custom Params pymysql database='test_platform',user='root',password='guchen',host='192.168.202.80',port=3306${table} Set Variable account_user${primary_key} Set Variable id${column} Set Variable email@{result} Query select ${primary_key},${column} from ${table}Log Many @{result}: FOR ${li} IN @{result}\ log ${li[1]} #${li[1]}為獲取到的郵箱\ Run Keyword If '${li[1]}' == '' log 數(shù)據(jù)為空\(chéng) ... ELSE Should Match Regexp ${li[1]} ^.+\\@(\\[?)[a-zA-Z0-9\\-\\.]+\\.([a-zA-Z]{2,3}|[0-9]{1,3})(\\]?)$ msg=${table}表中,${primary_key}為${li[0]}的行數(shù)據(jù)${column}字段的值:${li[1]}數(shù)據(jù)格式不正確,非郵箱格式。\ ... #校驗(yàn)郵箱字段的值是否都符合郵箱格式

?

?

腳本解釋:

  1、連接數(shù)據(jù)庫,讀取主鍵id和email字段的值

  2、遍歷email的所有值,校驗(yàn)是否符合郵箱格式的正則表達(dá)式,如果不符合用例失敗,打印錯(cuò)誤信息

轉(zhuǎn)載于:https://www.cnblogs.com/gcgc/p/11403723.html

總結(jié)

以上是生活随笔為你收集整理的爬虫结果数据完整性校验的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。