데이터의 정확성과 신뢰성을 나타냅니다. 데이터베이스에 의미 요구 사항을 충족하지 않는 데이터가 있는 것을 방지하기 위해 제시되었으며, 입력 및 출력 오류 메시지가 잘못된 작업이나 오류 메시지를 유발하지 않도록 하기 위한 것입니다. 데이터 무결성은 엔티티 무결성과 도메인 무결성의 네 가지 범주로 나뉩니다.
도메인 무결성, 참조 무결성 및 사용자 정의 무결성.
데이터 무결성 보장:
1. 비즈니스 규칙 대신 제약 조건을 사용하여 데이터 무결성을 향상시킵니다.
업무 규칙에 따라 요구사항을 처리하는 경우 업무 계층/사용자 인터페이스를 확인해야 합니다. 업무 규칙이 나중에 변경된 경우 갱신만 하면 됩니다.
요구 사항이 데이터 무결성을 유지해야 하는 경우 데이터베이스 수준에서 제한을 적용해야 합니다.
데이터 계층에서 제약 조건을 사용하는 경우 사용자가 제약 조건 검사를 통과하지 못하는 언어를 업데이트하여 사용자 인터페이스에 알릴 수 있는 방법이 있는지 확인해야 합니다. 너의 필드명이 길지 않으면 필드명 자체는 충분하지 않다. -라몬트 애덤스
가능하면 데이터베이스 시스템을 사용하여 데이터 무결성을 달성합니다. 여기에는 표준화를 통한 무결성뿐만 아니라 데이터의 기능도 포함됩니다. 또한 데이터를 쓸 때 트리거를 추가하여 데이터의 정확성을 보장할 수 있습니다. 데이터 무결성을 보장하기 위해 비즈니스 계층에 의존하지 않습니다. 테이블 (외래 키) 간의 무결성을 보장하지 않으므로 다른 무결성 규칙에 적용할 수 없습니다.
-피터 리치
분산 데이터 시스템
분산 시스템의 경우 각 사이트의 모든 데이터를 복제할지 한 곳에 저장할지 결정하기 전에 향후 5 년 또는 10 년 동안의 데이터 양을 예상해야 합니다. 데이터를 다른 사이트로 보낼 때는 데이터베이스 필드에 레이블을 설정하는 것이 좋습니다. 대상 사이트에서 데이터를 받은 후 레이블을 업데이트합니다. 이러한 데이터 전송의 경우 사용자가 매일 작업한 후 데이터를 전송할 수 있도록 하는 대신 특정 간격으로 실행할 수 있도록 자체 배치 또는 스케줄러를 적어 두십시오. 상수와 이자율 계산, 버전 번호 설정, 각 사이트의 데이터가 정확히 일치하도록 유지 관리 데이터를 로컬로 복사합니다.
-수헬 기술 공화국
3. 무결성에 대한 필수 지침
유해 데이터가 데이터베이스에 들어간 후에는 제거할 수 있는 좋은 방법이 없으므로 데이터베이스에 들어가기 전에 제거해야 합니다. 데이터베이스 시스템에 표시된 무결성 기능을 활성화합니다. 이를 통해 데이터를 깔끔하게 유지하고 개발자가 오류 상황을 처리하는 데 더 많은 시간을 할애할 수 있습니다.
-콜
4. 관계
두 엔티티 간에 다대일 관계가 있고 다대다 관계로 전환될 가능성이 있다면 처음부터 다대다 관계로 설정하는 것이 좋습니다. 기존의 다대일 관계에서 다대다 관계로 전환하는 것이 다대다 관계로 시작하는 것보다 훨씬 어렵다.
—CS 데이터 설계자
하나의 관점을 채택하다
데이터베이스와 응용 프로그램 코드 사이에 또 다른 추상 계층을 제공하기 위해 응용 프로그램이 데이터 테이블에 직접 액세스할 필요 없이 응용 프로그램에 대한 특수 뷰를 만들 수 있습니다. 이렇게 하면 데이터베이스 변경 작업을 보다 자유롭게 수행할 수 있습니다.
-게이 하우
6. 데이터 보존 및 복구 계획
데이터 보존 정책을 고려하여 설계 프로세스에 포함시키고 데이터 복구 프로세스를 미리 설계하십시오. 사용자/개발자에게 게시할 수 있는 데이터 사전을 사용하면 데이터 식별을 용이하게 하고 데이터 소스의 문서화를 보장할 수 있습니다. 업데이트 쿼리의 온라인 업데이트를 작성하여 향후 데이터 손실 시 업데이트를 재처리할 수 있도록 합니다.
-콜
7. 저장 프로시저를 사용하여 시스템이 과중한 작업을 수행하도록 합니다
무결성이 뛰어난 데이터베이스 솔루션을 구축하기 위해 많은 문제를 해결한 후 우리 팀은 관련 테이블의 기능 그룹을 캡슐화하고 각 그룹에 액세스하는 일반적인 저장 프로시저 세트를 제공하여 고객 프로그램 코드 개발을 가속화하고 단순화하기로 결정했습니다. 이 기간 동안 다음과 같이 3GL 인코더에 가능한 모든 오류 조건이 설정되어 있음을 발견했습니다.
SELECT Cnt = COUNT (*)
[< 표>]
여기서 [< 기본 키 열 & gt]= & lt;; 새 값>
Cnt = 0 인 경우
시작
[< 에 삽입 표>]
([< 기본 키 열>])
값 (< 새 값>)
끝
기타
시작
& lt 는 반복 오류> 를 나타냅니다
끝
비 3GL 인코더는 이렇게 합니다.
[< 에 삽입 표>]
([< 기본 키 열>])
가치관
(< 새 값>)
IF @@ERROR = 2627-키 구속조건의 문자 오류 코드
시작
& lt 는 반복 오류> 를 나타냅니다
끝
두 번째 프로그램은 훨씬 간단합니다. 사실, 우리가 데이터베이스에 부여한 함수를 활용합니다. 개인적으로 인라인 문자를 사용하는 것을 좋아하지 않지만 (2627). 그러나 이것은 약간의 사전 처리로 쉽게 대체될 수 있다. 데이터베이스는 데이터를 저장하는 곳일 뿐만 아니라 인코딩을 단순화하는 곳이기도 하다.
-스미스
8. 찾기를 사용합니다
데이터 무결성을 제어하는 가장 좋은 방법은 사용자의 선택을 제한하는 것입니다. 가능한 경우 선택할 수 있는 명확한 값 목록을 사용자에게 제공해야 합니다. 이렇게 하면 코드를 입력할 때 실수와 오해가 줄어들고 데이터 일관성이 제공됩니다. 일부 공개 데이터는 국가 코드, 상태 코드 등 검색에 특히 적합합니다.