평가범위
- 데이터 독립성
- 데이터 중복성
- 무결성
- 동시 엑세스 문제
데이터 독립성
데이터를 응용프로그램에서 영향을 주면(서로 상호 종속적인 관계를 맺으면) 데이터가 변할때마다 연쇄적으로 프로그램을 수정해야한다.
데이터와 응용프로그램 간의 독립성이 필요하다.
- 물리적 데이터 독립성
맨 아래단계인 물리적단계의 스키마를 바꿔도 그 위 단계인 논리적단계의 스키마에 영향을 주지않음 -> 따라서, 뷰단계에도 영향을 주지않음 - 논리적 데이터 독립성
가운데 단계인 논리적단계의 스키마를 바꿔도 그 위 단계인 뷰단계에 영향을 주지않음
데이터 중복성
각 프로그램마다 데이터를 따로 가지고 있으면(중복된 데이터를 가지고있으면) 나중에 하나의 프로그램에서만 데이터를 변경하게 됐을때 자료 불일치가 발생한다.
학적과와 학생과에서 각각 학생정보 데이터를 가지고 있다고 가정할때, 학생과에서만 특정학생의 전화번호를 수정하면 데이터가 서로 맞지 않는다.(자료의 불일치)
- 일관성 문제
데이터의 일관성을 유지하기 어려움 - 보안성 문제
시스템마다 같은 수준의 보안성을 유지하기 어려움 - 경제성 문제
같은 데이터를 여러곳에 저장함으로써 추가적인 비용이 발생(저장공간 등) - 무결성 문제
일관된 형태의 데이터를 유지할수 없어 시스템별로 다른 결과가 산출
등이 발생할 수 있다
무결성
데이터의 정확성, 일관성, 유효성이 유지되는것을 말한다.
- 정확성: 중복이나 누락이 없음
- 일관성: 데이터의 변함이 없음
- 유효성: 데이터가 존재함(?)
자료의 불일치와 비슷하지만 꼭 자료의 불일치가 아니더라도 무결성을 해칠 수 있다.
무결성의 종류
- 개체(엔터티) 무결성
모든개체의 기본키는 Null값을 가질수 없다. - 참조 무결성
각 릴레이션은 참조할수 없는 외래키 값을 가질수 없다.
(주문 테이블에서 고객 테이블의 "고객번호"를 참조하고 있을 때, 고객 테이블에 없던 새로운 고객번호를 생성해서 insert할 수 없음) - 도메인 무결성
모든 속성은 도메인에 정의된 값이어야 한다.
(성별 컬럼에는 "남,여"만 있어야한다) - 고유 무결성
- Null 무결성
- 키 무결성
최소 키 한개씩은 가지고 있어야함
동시 엑세스 문제
어떤 데이터를 여러 사람(프로그램)에서 동시에 바꾸려고 할때 생기는 문제 (티케팅, 은행 입출금 등)
DBMS를 사용하여 동시성 제어를 해준다. 추후, 로킹이나 타임스탬프 기법 등에서 자세히 다룰 예정