데이터 무결성과 정합성이란? #6
Replies: 7 comments
-
기본 질문 (필수)1. 데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?데이터 무결성은 데이터 자체가 논리적인 오류가 없고 유효한 상태를 의미하며, 데이터 정합성은 여러 데이터간의 내용이 모순없이 일관되게 일치하는 상태를 의미합니다. 예를 들어, 재고 상태가 마이너스가 되는 상황, 주민번호가 중복되는 상황을 무결성이 깨졌다고 하고, 사용자A의 계좌에서 1만원이 차감되었는데 사용B의 계좌에 1만원이 들어오지 않은 상황을 정합성이 깨졌다고 합니다. 2. 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?크게 제약 조건과 트랜잭션을 통해 무결성을 보장합니다. 기본키나 외래키 유니크키, not null과 같은 제약조건으로 데이터의 무결성을 보장하고, 트랜잭션의 ACID를 통해 여러 작업을 한 단위로 처리되게하여 무결성을 보장합니다. 또한 동시성 상황에서는 격리수준, 디비 락, 낙관락을 통해 정합성을 보장합니다. 결국, 디비가 무결성 보장의 최종 방어선임을 인지하는 것이 중요한데, 어플리케이션에서의 검증이 동시 접근 상황에서는 우회되거나 race condition이 발생할 수 있기 때문입니다. 3. 트랜잭션은 데이터 정합성을 어떻게 보장하나요?트랜잭션은 한번에 이뤄져야하는 단위 작업들을 하나의 작업으로 묶어 실행하여 정합성을 보장합니다. 예를 들어, A계좌 1만원 출금 & B계좌 1만원 입금을 하나의 작업으로 묶어 정합성이 깨지지 않도록 보장합니다. 트랜잭션 내부의 단위 작업들이 실행되다가 실패하는 경우 전체 트랜잭션을 롤백시키기 때문에, 내부 단위작업들은 전부 실패하거나 성공하도록 강제할 수 있습니다. 이를 통해 정합성을 보장합니다. 하지만, 정합성이 완전히 보장된다고 단언할 수는 없는데요, 동시성 상황이 발생하는 경우, 여러 트랜잭션이 동일 리소스에 접근하는 경우 정합성이 깨질수 있습니다. 이를 방지하기위해 락 설정과 같은 동시성 제어 기법을 사용하는 것이 필요합니다. 4. 무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.무결성이 깨지는 상황은 DB에 저장되면 안 되는 값이 들어가는 경우입니다. 예를 들어 NOT NULL이어야 하는 회원 이메일이 NULL로 저장되거나, 존재하지 않는 회원 ID로 주문이 생성되는 경우입니다. 반면 정합성이 깨지는 상황은 각각의 데이터는 제약 조건을 만족하지만, 전체 비즈니스 상태가 맞지 않는 경우입니다. 예를 들어 결제는 완료됐는데 주문 상태는 결제 대기 상태로 남아 있거나, 주문은 생성됐는데 재고 차감이 되지 않은 경우입니다. |
Beta Was this translation helpful? Give feedback.
-
기본 질문 (필수)데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?데이터 무결성은 데이터가 결함이 없음을 의미한다. 즉, 데이터의 값(형태)이 정확하고, 규칙을 위반하지 않는 상태에 집중한다. 데이터 정합성은 데이터의 값이 서로 논리적으로 맞는지(맥락)에 집중한다. 따라서 차이점은 무결성은 데이터 자체의 규칙을 지키는 것이고, 정합성은 데이터 간의 관계와 논리적 일치를 지키는 것이다. 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?데이터베이스는 데이터가 입력될 때부터 여러 제약 조건을 사용하여 데이터의 무결성을 보장한다. 대표적인 4가지로 개체 무결성, 참조 무결성, 도메인 무결성, 고유 무결성이 있다. 트랜잭션은 데이터 정합성을 어떻게 보장하나요?참고) 답변) 무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.부적절한 데이터가 입력되었을떄 무결성이 깨진다고 본다. 예를 들어 나이컬럼에 -5라는 값이 들어갔을 때, 도메인 무결성 제약("나이는 0보다 큰 정수여야한다")이 무시되었다고 판단한다. |
Beta Was this translation helpful? Give feedback.
-
|
데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?
차이 : 데이터 무결성의 경우 단일값 그 자체로 정확한지, 완전한지, 유효한지를 따진다면 정합성은 같은 데이터라도 시간이 흐르기 전과 후를 따진다거나, 중복 데이터의 경우 해당 데이터들이 상태를 공유해야 함을 의미한다. (값의 상태를 따진다고 해야 하나..?) 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?
트랜잭션은 데이터 정합성을 어떻게 보장하나요?
무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.
정합성이 깨지는 상황은 시뮬레이션으로 설명을 해보도록 하겠다. 트랜잭션 A : 나루토의 전화번호를 변경 해야한다. A완료 후 B 순서로 진행 : 전화번호 변경 후 조회하므로 변경된 전화번호를 정상적으로 조회할 수 있다. |
Beta Was this translation helpful? Give feedback.
-
데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?데이터 무결성은 데이터의 중복, 누락, 도메인 범위 이탈, 잘못된 참조 등 결함이 존재하지 않는 것을 의미하고, 데이터 정합성은 데이터 사이에서 모순이 존재하지 않는 것을 의미합니다. 쉽게 말해 무결성은 올바른 규칙에 맞게 만들어졌는가에 대한 이야기이고, 정합성은 데이터들이 서로 충돌 없이 일관되는지에 대한 이야기입니다. 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?데이터 무결성은 여러 제약조건을 통해 보장합니다. 대표적으로 기본키 제약으로 데이터 중복을 방지하여 개체 무결성, 외래키 제약으로 잘못된 참조를 방지하여 참조 무결성을 보장합니다. 또한 Check 제약으로 도메인 범위 이탈을 방지하여 도메인 무결성을 보장하고 NotNull 제약으로 데이터 누락을 방지합니다. 이렇게 여러 제약조건을 통해 데이터 무결성을 보장합니다. 트랜잭션은 데이터 정합성을 어떻게 보장하나요?트랜잭션은 모든 작업을 성공하면 커밋, 한 개 이상의 작업을 실패한다면 전부를 롤백하는 특징을 가집니다. 이런 특징 덕분에 데이터는 전부가 변화를 받아들여 일관성을 유지하거나 전부가 변화를 반영하지 않아 일관성을 유지하게 됩니다. 무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.쇼핑몰을 예시로 설명해보자면 먼저 무결성에 대해 말해보자면 상품의 재고가 0 이상이어야 하지만 0 미만이 되는 상황을 도메인 무결성 위반, 주문 테이블에 A 상품 주문에 대한 데이터가 입력됐지만 상품 테이블엔 A라는 상품이 존재하지 않는 참조 무결성 위반 등이 무결성 위반 상황입니다. 그리고 정합성에 대한 상황의 예시로는 주문자가 결제를 진행하여 주문자의 계좌 잔액은 감소 되었는데 판매자의 계좌 잔액은 증가하지 않는 상황이 정합성 위반 상황입니다. |
Beta Was this translation helpful? Give feedback.
-
1. 데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?데이터의 무결성이란 데이터 값이 항상 올바른 규칙을 지키는지를 의미한다. 이는 NOT NULL이나 PK등 제약조건 등으로 무결성을 보장한다. 데이터의 정합성은, 여러 데이터가 서로 모순되지 않는 상태로 예를 들어 재고가 10개 있는 상태에서 3개의 상품이 팔렸을 때, 재고가 7개가 아니면 정합성이 깨졌다고 볼 수 있다. 2. 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?가장 대표적인 방법으로는 잘못된 데이터가 저장되지 않도록 DBMS가 자동으로 검사해주는 제약조건 설정이 있다. 대표적인 제약 조건으로는 PRIMARY KEY,FOREIGN KEY, NOT NULL, UNIQUE, CHECK등이 있다. 예를 들어서 FOREIGN KEY는 존재하는 데이터만 참조하도록 하여 무결성을 보장하고, PRIMARY KEY는 중복과 NULL을 허용하지 않는 제약조건으로 고유하게 엔티티를 식별할 수 있게 해준다. 3. 트랜잭션은 데이터 정합성을 어떻게 보장하나요?A가 100만원이 있을때 30만원을 B에게 입금했는데 B에게 입금이 실패해서 A만 70만원이 되고 B가 0원이여서 정합성이 깨진 상태에 있다고 보자. 이때 트랜잭션을 사용해서 여러 작업을 하나의 작업처럼 처리하면 COMMIT과 ROLLBACK으로 전부 성공하거나 전부 실패가 보장되기 때문에 만약 정합성이 깨지는 일이 일어나더라도 결과는 모순된 상태로 남지 않게 된다. 4. 무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.학번은 학생들을 구별하기 위한 고유한 번호로 중복이 일어나서는 안된다. 만약 학번이 중복된다면 무결성이 깨진다. 또한 존재하지 않는 학과가 데이터베이스에 기록되어서 참조하게 되면 이 또한 무결성이 깨진다고 볼 수 있다. 정합성은 1번과 3번 답변에서 말했듯이 은행 계좌이체나 재고관리 등에서 데이터의 모순이 생긴 상태를 말한다. |
Beta Was this translation helpful? Give feedback.
-
기본질문1. 데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?데이터 무결성 (Data Integrity): 데이터 정합성 (Data Consistency): 데이터 무결성은 데이터의 값이 정확한 상태로, 데이터 입력/수정 시의 정확성, 일관성, 신뢰성을 보장하며, 데이터의 규칙 준수 여부를 검사하는 데 중점을 둔다. 2. 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?주로 데이터에 적용되는 연산에 제한을 두어 데이터의 무결성을 유지한다. 데이터베이스에서 말하는 무결성에는 다음과 같은 3가지 종류가 있다.
3. 트랜잭션은 데이터 정합성을 어떻게 보장하나요?트랜잭션은 여러 데이터베이스 연산을 하나의 논리적 작업 단위로 묶고, 그 작업 단위가 전부 성공하거나 전부 실패하도록 제어해서 데이터 정합성을 보장한다. 핵심은 ACID이다. 트랜잭션 ACID(원자성, 일관성, 고립성, 지속성)는 트랜잭션이 안전하게 수행된다는 것을 보장하기 위한 성질이다. 원자성(Atomicity): 일관성(Consistency): 고립성(Isolation): 지속성(Durability): 4. 무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.무결성이 깨지는 상황:
정합성이 깨지는 상황
|
Beta Was this translation helpful? Give feedback.
-
데이터 무결성(Integrity)과 데이터 정합성(Consistency)은 무엇이며 어떤 차이가 있나요?데이터 무결성은 그 데이터 하나만 봐도 판정이 가능하다. 데이터가 규칙에 맞는지 아닌지에 관한것이다. 데이터 정합성은 시스템 전체의 데이터가 서로 논리적으로 모순되지 않는가 이다. 계좌이체 예시로 보면 쉽다. 잔액이 음수가 아닌 숫자이다 → 무결성 지켜짐 A가 B에게 만원을 보냈는데, A는 만원이 줄고 , B 는 그대로임 → 정합성 깨짐 데이터베이스에서 무결성을 보장하기 위한 대표적인 방법에는 무엇이 있나요?개체 무결성 : 각 행을 유일하게 식별 할 수 있어야 한다. 참조 무결성 : 외래키는 반드시 존재하는 부모 행을 가르켜야 한다. 도메인 무결성 : 값이 허용된 타입,범위 안에 있어야 한다. 트랜잭션은 데이터 정합성을 어떻게 보장하나요?트랜잭션이란? 쪼갤 수 없는 하나의 작업 묶음. 계좌이체에서 돈을 보내는것과 돈을 받는것은 하나로 묶인다. 트랜잭션에서는 두가지 결말뿐이 없다. 커밋 : 다 잘되서 결과 확정 롤백 : 하나라도 문제가 생겨서 시작전으로 되돌림. 정합성을 어떻게 보장하나요?
무결성과 정합성이 깨지는 상황을 각각 예시와 함께 설명해주세요.무결성이 깨지는경우 orders 테이블의 user_id 가 users를 참조하는 외래키인데 , 회원 탈퇴로 users 에서 회원을 지웠고 그 회원의 주문 5건은 남아있는 상태. 이 주문을 누구 했는지 조회해도 가르키는 곳이 텅 비어있다. → 참조 무결성 깨짐 정합성이 깨지는 경우
|
Beta Was this translation helpful? Give feedback.
Uh oh!
There was an error while loading. Please reload this page.
-
📆 일자: 26년 7월 2일(목)
발제 의도
기본 질문 (필수)
심화 질문 (선택)
추후 질문 (선택)
Beta Was this translation helpful? Give feedback.
All reactions