[정보처리기사] 정보처리기사 실기 정리 11 (관계형 데이터베이스의 제약 조건 - 키(Key), 무결성(Integrity))

미음제

·

2021. 8. 22. 15:49

Section 41

 

관계형 데이터베이스의 제약 조건 - 키(Key)

 

키(Key)

 

데이터베이스에서 조건에 만족하는 튜플을 찾거나

순서대로 정렬할 때

기준이 되는 속성을 말한다.

 

* 키의 종류

 

✓ 후보키(Candidate Key) : 기본키가 될 수 있는 것

✓ 기본키(Primary Key)

✓ 대체키(Alternate Key) : 기본키 외 나머지 후보키

✓ 슈퍼키(Super Key) : 유일성은 만족, 최소성은 만족 못함

✓ 외래키(Foregin Key)

 

후보키(Candidate Key)

 

릴레이션을 구성하는 속성들 중에서

튜플을 유일하게 식별하기 위해

사용되는 속성들의 부분 집합.

 

키본키로 사용할 수 있는 속성들로,

하나일 수도 있고, 여러 개 일 수도 있다.

 

후보키는 유일성(Unique)과 최소성(Minimality)을 모두

만족시켜야 한다.

 

유일성(Unique) 하나의 키 값으로 하나의 튜플만을 유일하게 식별할 수 있어야
최소성(Minimality) 키를 구성하는 속성 하나를 제거하면 유일하게 식별할 수 없도록 꼭 필요한 최소의 속성으로 구성되어야 함

 

기본키(Primary Key)

 

후보키 중에서 특별히 선정된 주키(Main Key)이다.

 

중복된 값을 가질 수 없고, NULL 값을 가질 수 없다.

 

한 릴레이션에서 특정 튜플을 유일하게 구별할 수 있는 속성이다.

 

<학생> 릴레이션

 

<학생>릴레이션에서 학번과 주민번호는 후보키이다.

 

이름은 중복된 값이 있을 수 있고,

전화번호는 중복된 값은 없으나 NULL 값이 있을 수 있어

후보키에서 제외된다.

 

대체키(Alternate Key)

 

후보키가 둘 이상일 때 기본키를 제외한 나머지 후보키를 의미한다.

 

<학생> 릴레이션

 

<학생> 릴레이션에서 학번이 기본키(PK)라면,

주민번호는 대체키가 된다.

 

슈퍼키(Super Key)

 

한 릴레이션 내에 있는

속성들의 집합으로 구성된 키를 말한다.

 

슈퍼키로 구성된 속성의 집합과 동일한 값은 나타나지 않는다.

 

 슈퍼키는 릴레이션을 구성하는 모든 튜플에 대해

유일성은 만족하지만, 최소성은 만족하지 못한다.

 

<학생> 릴레이션

 

학번, 이름의 조합과

주민번호, 전화번호의 조합은

<학생> 릴레이션에서 슈퍼키가 된다.

 

두 개의 슈퍼키는 모두

유일성은 만족하지만,

최소성은 만족하지 못한다(속성이 두 개).

 

외래키(Foreign Key)

 

다른 릴레이션의 기본키를 참조하는 속성 또는

속성들의 집합을 의미한다.

 

외래키로 지정되면 참조 릴레이션의 기본키에 없는 값은 입력할 수 없다.

 

<학생> 릴레이션과 <수강> 릴레이션

 

<학생> 릴레이션에서 학번이 기본키(PK) 일 때,

<수강> 릴레이션의 학번은 외래키(FK)가 된다.

 

<학생> 릴레이션과 <수강> 릴레이션

 

<수강> 릴레이션에서 학번이 1005이고, 수강 과목이 A인 값은

삽입할 수 없다.

 

<수강> 릴레이션이 <학생> 릴레이션을 참조하고 있고,

<학생> 릴레이션에의 학번 중 1005라는 값은 없기 때문이다.

 


Section 42

 

관계형 데이터베이스의 제약 조건 - 무결성(Integerity)

 

무결성(Integrity)

 

데이터베이스에 저장된 데이터 값과 그것이 표현하는

현실 세계의 실제값이 일치하는 정확성을 의미한다.

 

즉, 저장된 데이터 베이스에

잘못된 데이터가 없다는 것을 의미한다.

 

쉽게 말해 데이터베이스에 정확한 데이터만 있다는 뜻이다.

 

* 무결성의 종류

 

종류 내용
개체 무결성 기본 테이블의 기본키를 구성하는 어떤 속성도 NULL 값이나 중복값을 가질수 없다는 규정
참조 무결성 외래키 값은 NULL이거나 참조 릴레이션의 기본키 값과 동일해야 함.
즉, 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정
도메인 무결성 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정
사용자 정의 무결성 속성 값들이 사용자가 정의한 제약조건에 만족되어야 한다는 규정
NULL 뮤결성 릴레이션의 특정 속성 값이 NULL이 될 수 없도록 하는 규정
고유 무결성 릴레이션의 특정 속성에 대해 각 튜플이 갖는 속성값들이 서로 달라야 한다는 규정
키 무결성 하나의 릴레이션에는 적어도 하나의 키가 존재해야 한다는 규정
관계 무결성 릴레이션에 어느 한 튜플의 삽입 가능 여부 또는 한 릴레이션과 다른 릴레이션의 튜플들 사이의 관계에 대한 적절성 여부를 지정한 규정

 

✓ 개체 무결성, 참조 무결성은 개념을 서술할 정도로 암기

 

<학생> 릴레이션

 

<학생> 릴레이션에서 학번이 기본키(PK) 일 때,

마지막 두 행은 개체 무결성을 위반한다.

 

기본키는 NULL 값을 가질 수 없고,

중복 값을 가질 수 없다.

 

<학생> 릴레이션과 <수강> 릴레이션

 

<학생> 릴레이션의 기본키(PK)는 학번이고,

<수강> 릴레이션은 <학생> 릴레이션을 참조할 때,

<수강> 릴레이션의 마지막 두 행 중,

빨간색 부분만 참조 무결성을 위반한다.

 

<수강> 릴레이션의 학번 중,

1005라는 값은 <학생> 릴레이션의 기본키 값에 없다.

 

그러나, 학번은 없고 과목명만 있는 경우는

외래키 값이 NULL을 허용하기 때문에,

참조 무결성에 위반되지 않는다.

 

데이터 무결성 강화

 

데이터 무결성은 데이터 품질에 직접적인 영향을 미치므로

데이터 특성에 맞는 적절한 무결성을 정의하고 강화해야 한다.

 

* 데이터 무결성 강화 방법

 

애플리케이션 데이터 생성, 수정, 삭제 시 무결성 조건을 검증하는 코드를 프로그램 내에 추가함
데이터베이스 트리거 트리거 이벤트에 무결성 조건을 실행하는 절차형 SQL을 추가함
제약 조건 데이터베이스에 제약 조건을 설정하여 무결성을 유지함

 

반응형