Info > Data Mining > 3-4. RDB > 관계형 데이터 모델
▷▶ 관계형 데이터 모델 ( relational data model )
전통적인 세 실행 데이터 모델(관계형, 계층형, 그물형) 중 가장 최근에
개발. 구조의 간단명료함과 조작의 유연성으로 업계에서 가장 널리 체택되고 있는 데이터
모델. 코드( codd 1970 )에 의해 처음 제안.
1.1 구조
- 관계형 데이터 모델에서 사용되는 유일한 데이터 구조는 관계이며 이는 이차원 평면 테이블이다.
<그림 1.1> 관계형 데이터 모델의 관계의 예
직원 |
|
1.1.1 관계의 특성
·각 열은 동일한 속성에 관한 값을 갖는다.
·테이블의 각 셀의 값은 반드시 단일값이어야 한다.
·각 열은 고유한 이름(속성이름)을 갖는다.
·각 열의 순서는 중요하지 않다.
·식별자 속성 열은 동일한 값을 가질 수 없으며 이 열의 값에 의해 각 행은 구별될 수
있다. ( 주키 : primary key )
·각 행의 순서는 중요하지 않다.
1.1.2 타플, 속성, 영역
·타플 (tuple) : 관계형 데이터 모델에서 행
·속성 (attribute) : 관계형 데이터 모델에서 열 : 속성값의 수가 n 개인 경우 이 관계의
차수는 n이 되며 n-타플 관계라 부른다.
·원소수 (cardinality) : 한 관계에 포함된 타플의 총 수
·영역 (domain) : 특정 속성이 가질 수 있는 가능한 값의 집합 : 영역을 나타내기 위해
영역을 형성하는 데이터 값이 추출될 수 있는 데이터형을 명시하는 방법을 사용.
1.2 제약 - 데이터베이스에 저장되는 데이터에 대한 규칙
·본질적 제약 : 데이터 모델의 구조적인 특성으로 인한 제약으로 데이터
베이스의 기본구조를 유지하기 위해 필요
·내재적 제약 : 데이터의 의미를 정확히 표현하고 오류를 방지하기 위해 데이터베이스
스키마에 구체적으로 내재시키는 제약
·명시적 제약 : 데이터베이스 스키마에 표현할 수 없어서 프로그램에 명시하거나 사용자의
수작업에 의존할 수 밖에 없는 제약
1.2.1 본질적 제약
① 타플의 비중복성 <= 주키를 사용
·주키의 특성 : 유일성( unique identification )/최소성( minimality )/공값을
가질 수 없다 - 개체 무결성 제약/한 항목 또는 그 이상의 항목이 결합되어 주키의 역할을
수행할 수 있다 (합성키)
·후보키 : 한 관계에서 주키의 역할을 수행할 수 있는 하나이상의 항목들
·대리키 : 주키로 선정되지 않은 후보키
② 테이블의 각 셀이 단일값을 갖는다 - 만약 어느 셀이 다중값을 가지는 경우에는 정규화 과정을 통해서 단일값을 갖는 셀로 전환
1.2.2 내재적 제약
① 영역 제약 ( domain constraints ) : 허용되는 데이터값에 관한 제약,
데이터형의 제약, 데이터 길이 제약, 데이터값의 범위, 데이터 틀
② 참조 무결성 제약 : 두 관계의 타플간의 일관성을 유지하기 위하여 명시하는 제약,
관련된 관계를 서로 참조함으로써 데이터베이스와 무결성을 제고시키기 위한 내재적 제약
<그림 1.2>교수와 학생 관계
교수 |
학생 |
||||||||||||||
|
|
·외부키 : 한 관계의 비주키 속성값이 다른관계의 주키 또는 주키의 일부의
속성값 영역에 대해 제약받는 경우 이 비주키 속성을 외부키라 한다
<그림 1.3> 관계스키마 상에서 외부키
교수 ( 교수번호, 교수이름, 전공 ) |
·교차참조키 : 한 관계에서 주키(합성키)를 구성하는 한 속성값이 다른 관계의 주키 또는 주키의 일부 속성값 영역에 의하여 제약을 받는 경우 이속성을 교차참조키라 한다
<그림 1.4> 부품, 납품업자, 주문의 관계 스키마
부품 ( 부품번호, 부품명 ) 납품업자 ( 납품업자 번호, 납품업자명 ) 주문 ( 부품번호, 납품업자 번호, 주문량 ) |
·참조 무결성 제약은 참조하는 관계의 타플의 값이 반드시 참조되는 관계의 타플에 존재해야 한다
·참조 무결성 제약이 발생하는 경우와 대책
▶ 삽입 : 참조하는 관계에 새로운 타플을 삽입하고자 하는 경우 참조되는 관계를 검사하여 해당 타 플이 존재하는 경우에만 삽입이 가능
예) <그림 1.2>의 학생 관계에 다음과 같은 타플을 삽입한다
학번 : 105
학생이름 : 이형철
학과 : 화학
지도교수 번호 : 4
--> 현재 교수 관계에 4번 지도교수 타플이 존재하지 않기 때문에 학생관계에 이 타플을
삽입하는 것을 허용해서는 안된다
예) 아직 지도교수가 배정되지 않은 학생의 데이터를 저장할 때
--> 해당 외부키의 값을 공값으로 비워둔다.
<그림 1.5> 외부키 값으로 공값을 배정한 타플의 추가
학번 |
학생이름 |
학과 |
지도교수번호 |
101 |
심순보 |
경영 |
1 |
▶삭제 : 참조되는 테이블의 타플의 삭제는 그 타플을 참조하는 테이블의 타플이 존재하는 한 허용해서는 안된다.
<삭제와 관계되는 참조 무결성의 해결방안 >
·삭제 금지
·공값화 : 참조하는 테이블의 해당 타플의 값을 공값으로 배정
·참조삭제 : 참조하는 테이블의 해당 타플을 모두 삭제
▶수정 : 참조하는 관계의 타플의 값을 수정하고자 하는 경우에, 수정될 값이 참조되는 관계의 해당타플에 존재하는 경우에만 수정이 가능하다. 참조되는 테이블의 타플의 수정은 그 타플을 참조하는 테이블의 타플이 존재하는 한 허용해서는 안된다
1.3 개체 - 관계성도의 관계형 데이터 모델로의 전환
1.3.1 개체 집합의 전환
규칙 1 ( 개체집합의 전환 ) 모든 개체 집합은 관계로 전환된다. 이때 관계에는 반드시 주키가 지정되어 있어야 한다. |
<그림 1.6> 지도교수와 학생 개체 집합

==> 관계로 전환
지도교수 ( 교수번호, 교수이름, 전공 )
학생 ( 학번, 학생이름, 학과, 학년 )
1.3.2 이원 관계성 집합의 전환
규칙 2 ( 양방향 모두 완전 관계성인 1:1의 관계성 집합의 전환 ) 두 관계는 하나의 관계로 통합되면 통합된 관계의 주키는 통합되기 전 두 관계의 주키중 어느것을 선택하여도 상관없다. |
==>관계로의 전환
지도교수-학생 ( 교수번호, 교수이름, 전공, 학번, 학생이름, 학과, 학년 )
학생-지도교수 ( 학번, 학생이름, 학과, 학년, 교수번호, 교수이름, 전공 )
규칙 3 ( 한 방향만 완전 관계성인 1:1의 관계성 집합의 전환 _ 부분 관계성 측 관계의 주키를 완전 관계성 측에 외부키로 포함시킨다. |
==>관계로의 전환
지도교수 ( 교수번호, 교수이름, 전공)
학생 ( 학번, 학생이름, 학과, 학년, 교수번호 )
규칙 4 ( 양방향 모두 부분 관계성인 1:1의 관계성 집합의 전환 ) 기존 두 관계의 주키로 구성되는 새로운 관계를 생성하며 새로운 관계의 주키는 기존 두 관계의 주키중 어느 것을 사용하여도 상관없다. |
==>관계로의 전환
지도교수 ( 교수번호, 교수이름, 전공)
학생 ( 학번, 학생이름, 학과, 학년 )
지도교수-학생 ( 교수번호, 학번 )
규칙 5 ( 다 측이 완전 관계성인 1:다의 관계성 집합의 전환 ) 1측 관계의 주기를 다 측 관계에 외부키로 포함시킨다. |
==>관계로의 전환
지도교수 ( 교수번호, 교수이름, 전공)
학생 ( 학번, 학생이름, 학과, 학년, 교수번호 )
규칙 6 ( 다 측이 부분관계성인 1:다의 관계성 집합의 전환 ) 기존 두 관계의 주키로 구성되는 새로운 관계를 생성하며, 새로운 관계의 주키로는 다 측 관계의 주키를 사용한다. |
==>관계로의 전환
지도교수 ( 교수번호, 교수이름, 전공)
학생 ( 학번, 학생이름, 학과, 학년 )
지도교수-학생 ( 학번, 교수번호 )
규칙 7 ( 다:다의 관계성 집합의 전환) 기존 두 관계의 주키로 구성되는 새로운 관계를 생성하며, 새로운 관계의 주키로는 기존 두 관계의 주키룰 결합한 합성키를 사용한다. |
==>관계로의 전환
지도교수 ( 교수번호, 교수이름, 전공)
학생 ( 학번, 학생이름, 학과, 학년 )
지도교수-학생 ( 교수번호, 학번 )
1.3.3 삼원 관계성 집합의 전환
·삼원 관계성 집합 : 세 개체 집합의 개체 예들 간에 동시에 발생하는 관계성 집합
규칙 8 ( 삼원 관계성 집합의 전환 ) 기존 세 관계의 주키로 구성되는 새로운 관계를 생성하며, 새로운 관계의 주키로는 대응비에 따라 기존 관계의 주키 또는 주키들이 결합된 합성키가 사용된다. |
<그림 1.7> 삼원 관계성 집합

==> 관계로의 전환
납품업자 ( 납품업자 번호, 전화 )
제품 ( 제품 번호, 가격 )
창고 ( 창고 번호, 위치 )
납품업자-제품-창고 ( 납품업자 번호, 제품번호, 창고번호, 수량 )
1.3.4 일반화 관계성 집합의 전환
규칙 9 ( 일반화 관계성 집합의 전환 ) 상위 개체 집합을 나타내는 관계의 주키를 하위 개체 집합을 나타내는 관계의 주키로 다시 사용한다. 그리고 상위 개체 집합에 가 개체의 유형을 표시하는 속성을 추가한다. |
<그림 1.8> 일반화 관계성 집합

==>관계로의 전환
직원 ( 직원번호, 직원이름, 호봉, 직원유형 )
생산직원 ( 직원번호, 기술분야 )
영업직원 ( 직원번호, 최대 할인율, 할당액 )
Info > Data Mining > 3-4. RDB > 관계형 데이터 모델