데이터 검증
Data validation컴퓨터 과학에서 데이터 검증은 데이터가 정확하고 유용한 데이터 품질, 즉 데이터 품질을 확보하기 위해 데이터 클렌징을 수행하는 프로세스입니다.시스템에 입력된 데이터의 정확성, 의미 및 보안을 검사하는 루틴을 사용합니다. 이 루틴은 종종 "검증 규칙", "검증 제약" 또는 "검사 루틴"이라고 합니다.규칙은 데이터 사전의 자동화된 설비를 통해 구현되거나 컴퓨터 및 응용 프로그램의 명시적 응용 프로그램 검증 논리를 포함함으로써 구현될 수 있습니다.
이는 규격 또는 속성을 구현하기 위한 알고리즘의 정확성을 증명 또는 반증하려는 공식 검증과는 다릅니다.
개요
데이터 검증은 애플리케이션 또는 자동화된 시스템에서 데이터의 적합성과 일관성에 대한 명확한 보증을 제공하기 위한 것입니다.데이터 검증 규칙은 다양한 방법론을 사용하여 정의 및 설계할 수 있으며 다양한 [1]컨텍스트에 배치할 수 있습니다.이러한 구현에서는 선언적 데이터 무결성 규칙 또는 절차 기반 비즈니스 [2]규칙을 사용할 수 있습니다.
데이터 검증의 보증에는 정확성이 반드시 포함되어 있는 것은 아니며, 철자 오류 등의 데이터 입력 오류가 유효한 것으로 간주될 수 있습니다.시스템 내에서의 부정확성을 줄이기 위해 기타 사무 및/또는 컴퓨터 제어를 적용할 수 있습니다.
다른 종류
데이터 검증의 기본을 평가할 때 범위, 복잡도 및 목적에 따라 다양한 종류의 검증에 대해 일반화할 수 있다.
예를 들어 다음과 같습니다.
- 데이터 유형 검증
- 범위 및 제약 조건 검증
- 코드 및 상호 참조 검증
- 구조화된 검증
- 일관성 검증
data형체크
데이터 유형 검증은 하나 이상의 단순 데이터 필드에서 커스텀으로 수행됩니다.
가장 간단한 종류의 데이터 유형 검증은 사용자 입력을 통해 제공되는 개별 문자가 프로그래밍 언어 또는 데이터 저장 및 검색 메커니즘에서 정의된 하나 이상의 알려진 원시 데이터 유형의 예상 문자와 일치하는지 확인합니다.
예를 들어 정수 필드에서는 0 ~9 문자만 사용해야 할 수 있습니다.
간단한 범위 및 구속조건 검사
간단한 범위 및 제약조건 검증에서는 입력의 최소/최대 범위와의 일관성 또는 정규 표현에 대한 하나 이상의 테스트와 같은 일련의 문자를 평가하기 위한 테스트와의 일관성을 검사할 수 있습니다.예를 들어 카운터 값은 음이 아닌 정수여야 하며 패스워드는 최소 길이를 충족하고 여러 카테고리의 문자를 포함해야 할 수 있습니다.
코드 및 상호 참조 확인
코드 및 상호 참조 검증에는 데이터가 특정 조직, 컨텍스트 또는 기본 전제 조건 집합과 관련된 하나 이상의 가능한 외부 규칙, 요건 또는 수집과 일치하는지 검증하는 작업이 포함됩니다.이러한 추가 유효성 제약 조건에는 제공된 데이터를 이미 알려진 룩업 테이블 또는 LDAP 등의 디렉토리 정보 서비스와 상호 참조하는 것이 포함될 수 있습니다.
예를 들어, 현재의 지정학적 지역을 식별하기 위해 사용자가 제공한 국가 코드가 필요할 수 있습니다.
구조체크
구조화된 검증을 통해 다른 종류의 검증과 보다 복잡한 처리를 조합할 수 있습니다.이러한 복잡한 처리에는 전체 복잡한 데이터 객체 또는 시스템 내의 일련의 프로세스 조작에 대한 조건부 제약조건 테스트가 포함될 수 있습니다.
무결성 검사
일관성 검증을 통해 데이터가 논리적인지 확인할 수 있습니다.예를 들어, 주문의 배송일은 배송일보다 이전이 금지될 수 있습니다.
예
2007년 이전의 10자리 ISBN에는 여러 종류의 데이터 검증이 관련되어 있습니다(2005년판 ISO 2108에서는[3] 2007년부터 13자리 ISBN이 필요).
- 크기. 2007년 이전의 ISBN은 10자리 숫자로 구성되어야 하며, 4개의 부분으로 구분되는 하이픈 또는 공백이 옵션이어야 합니다.
- 포맷 체크첫 번째 9자리 숫자는 각각0 ~ 9, 10번째 숫자는 0 ~9 또는 X 중 하나여야 합니다.
- 숫자를 확인합니다.번호가 변경 또는 전치된 문자 변환 오류를 검출하려면 , 2007년 이전의 ISBN 의 마지막 자리수가, 다른 9 자리수의 숫자(ISBN-10 체크 자리수)를 짜넣은 수식의 결과와 일치할 필요가 있습니다.
검증 유형
- 허용된 문자 검사
- 필드에 예상 문자만 있는지 확인합니다.예를 들어 숫자 필드에는 0 ~9의 숫자, 소수점 및 마이너스 기호 또는 쉼표만 사용할 수 있습니다.개인 이름과 같은 텍스트 필드에서는 마크업에 사용되는 문자가 허용되지 않을 수 있습니다.이메일 주소에는 적어도1개의 @ 기호 및 기타 다양한 구조 상세 정보가 필요할 수 있습니다.정규 표현은 이러한 체크를 구현하는 효과적인 방법이 될 수 있습니다.
- 배치합계
- 누락된 레코드가 있는지 확인합니다.숫자 필드는 일괄적으로 모든 레코드에 대해 함께 추가할 수 있습니다.배치 합계가 입력되고 컴퓨터는 합계가 올바른지 확인합니다. 예를 들어 여러 트랜잭션의 '총 비용' 필드를 함께 추가합니다.
- 카디널리티 체크
- 해당 레코드에 유효한 수의 관련 레코드가 있는지 확인합니다.예를 들어, 컨택레코드가 「고객」으로 분류되어 있는 경우는, 적어도1개의 관련 주문(카디널리티 >0)이 필요합니다.이러한 유형의 규칙은 추가 조건에 의해 복잡해질 수 있습니다.예를 들어 급여 데이터베이스의 연락처 기록이 "전 직원"으로 분류되는 경우, 분리일 이후 관련 급여 지급액이 없어야 한다(진수 = 0).
- 자릿수 확인
- 숫자 데이터에 사용됩니다.에러 검출을 서포트하기 위해서, 다른 자리수로부터 계산되는 숫자에 추가의 자리수가 추가됩니다.
- 무결성 검사
- 필드를 검사하여 이러한 필드의 데이터가 일치하는지 확인합니다. 예를 들어 만료 날짜가 지난 경우 상태가 "활성"이 아닙니다.
- 시스템 간 무결성 검사
- 서로 다른 시스템의 데이터를 비교하여 일관성을 확인합니다.시스템에 따라 같은 데이터를 다르게 나타낼 수 있습니다.이 경우 비교를 위해 변환이 필요합니다(예를 들어, 한 시스템은 하나의 이름 필드에 'Doe, John Q'로 고객 이름을 저장하는 반면, 다른 시스템은 First_Name 'John', Last_Name 'Doe', Middle_Name 'Quality'를 사용합니다).
- 데이터 유형 검사
- 입력된 데이터에 대한 입력 적합성을 검사합니다.예를 들어 숫자 데이터를 받아들이는 입력 상자는 문자 'O'를 거부할 수 있습니다.
- 파일 유무 확인
- 지정된 이름의 파일이 있는지 확인합니다.이 검사는 파일 처리를 사용하는 프로그램에 필수적입니다.
- 포맷 체크
- 데이터가 지정된 형식(템플릿)인지 확인합니다. 예를 들어 날짜는 YYY-MM-DD 형식이어야 합니다.이러한 종류의 검증에는 정규 표현을 사용할 수 있습니다.
- 존재 확인
- 데이터가 존재하는지 확인합니다(예: 고객이 이메일 주소를 가지고 있어야 할 수 있습니다).
- 범위 확인
- 데이터가 지정된 값 범위 내에 있는지 확인합니다. 예를 들어, 확률은 0과 1 사이여야 합니다.
- 참조 무결성
- 2개의 릴레이셔널 데이터베이스 테이블의 값은 외부 키와 프라이머리 키를 통해 링크할 수 있습니다.외부 키 필드의 값이 내부 메커니즘에 의해 제약되지 않는 경우 참조 테이블이 참조 테이블 내의 행을 항상 참조하도록 검증해야 합니다.
- 철자 및 문법 검사
- 철자 및 문법 오류를 찾습니다.
- 일의성 체크
- 각 값이 고유한지 확인합니다.이는 여러 필드(주소, 이름, 성)에 적용할 수 있습니다.
- 테이블 조회 조회
- 테이블 조회 검사는 데이터를 허용되는 값 집합과 비교합니다.
검증 후의 액션
이 섹션은 확인을 위해 추가 인용문이 필요합니다.(2012년 7월 (이 및 에 대해 ) |
- 시행 액션
- 일반적으로 시행 액션은 데이터 입력 요청을 거부하고 입력 액터가 데이터를 준수 상태로 만들기 위해 변경해야 합니다.이것은 실제 사람이 컴퓨터 위에 앉아 들어가는 인터랙티브한 사용에 가장 적합합니다.또한 파일 입력이 거부되고 데이터가 거부된 이유에 대한 일련의 메시지가 입력 소스로 전송되는 배치 업로드에도 적합합니다.
- 다른 형태의 시행 작업에는 데이터를 자동으로 변경하고 원래 버전이 아닌 적합한 버전을 저장하는 작업이 포함됩니다.이것은 외관상의 변화에 가장 적합합니다.예를 들어 [all-caps] 엔트리를 [Pascal case]엔트리로 변환하는 경우 사용자 입력이 필요하지 않습니다.자동 시행을 부적절하게 사용하면 시행으로 인해 비즈니스 정보가 손실될 수 있습니다.예를 들어, 길이가 예상보다 긴 경우 잘린 주석을 저장합니다.이는 중요한 데이터가 손실될 수 있으므로 일반적으로 좋지 않습니다.
- 어드바이저리 액션
- 일반적으로 조언 작업에서는 데이터를 변경하지 않고 입력할 수 있지만 발생한 검증 문제를 나타내는 메시지를 소스 액터에게 보냅니다.이는 비인터랙티브 시스템, 비즈니스상 중요한 변경이 아닌 시스템, 기존 데이터의 삭제 단계 및 엔트리 프로세스의 검증 단계에 가장 적합합니다.
- 검증 액션
- 검증 액션은, 어드바이저리 액션의 특수한 경우입니다.이 경우, 소스 액터는 이 데이터가 실제로 입력되고 싶은 것인지 검증하도록 요구받습니다.반대의 제안에 비추어 볼 때요.여기서 체크 스텝은 대안을 제시합니다(예를 들어 메일 주소의 체크는 해당 주소의 다른 포맷 방법을 반환하거나 다른 주소를 모두 제안합니다).이 경우 사용자에게 권장 사항을 수락하거나 버전을 유지할 수 있는 옵션을 제공할 수 있습니다.이는 설계상 엄격한 검증 프로세스가 아니며 새 위치 또는 아직 검증 데이터베이스에서 지원되지 않는 위치에 대한 주소를 캡처할 때 유용합니다.
- 유효성 검사 로그
- 데이터 검증에 문제가 발견되지 않은 경우에도 실시한 검증 로그와 그 결과를 제공하는 것이 중요합니다.이는 데이터 문제에 비추어 누락된 데이터 유효성 검사를 식별하고 유효성 검사를 개선하는 데 유용합니다.
검증 및 보안
데이터 유효성 검사에서 실패하거나 누락되면 데이터가 손상되거나 보안 [4]취약성이 발생할 수 있습니다.데이터 검증은 데이터가 처리되기 전에 목적에 [5]적합하고, 유효하고, 합리적이고, 안전한지 확인합니다.
「 」를 참조해 주세요.
레퍼런스
- ^ 데이터 검증 방법 1.0
- ^ 데이터 검증, 데이터 무결성, Visual Studio를 사용한 분산 애플리케이션 설계.그물
- ^ Wayback Machine ISO에서 아카이브된 새로운 ISBN 표준에 대한 FAQ 2007-06-10
- ^ 제10장데이터 검증
- ^ 스폿리스로 보다 효율적인 데이터 검증