{"CODING": undefind};/DataBase

3. 데이터베이스 관계형 모델

잼잼미 2021. 2. 14. 07:15

 

1. 관계형 모델

 

-릴레이션(relation)으로 데이터를 표현하는 모델

 데이터 표현이 단순하고 직관적 구조화 모델

 현재 대다수 DBMS의 기초(Oracle, DB2, MySQL, MSSQL 등)

 

-릴레이션의 특징

1) 레코드의 유일성: 중복된 레코드의 존재가 불가능

2) 레코드의 무순서성: 레코드의 순서는 의미가 없음

3) 컬럼의 무순서성: 컬럼은 순서가 없고, 이름과 값의 쌍

4) 컬럼값의 원자성: 모든 값들은 나눌 수 없는, 단 하나의 의미

 

-키(key)의 역할

: 릴레이션의 레코드를 유일하게 식별하는 값

1) 키의 속성 : 유일성(Uniqueness), 최소성(Irreducibility)

2) 키의 종류

- 수퍼키(super key): 유일성 만족 ex) 학과이름, {학과이름, 단과대학}, 주소, 전화번호, {전화번호, 졸업학점}

- 후보키(candidate key): 유일성, 최소성 만족 ex) 학과이름, 주소, 전화번호

- 기본키(PK: primary key): 레코드의 구분을 위해 선택된 후보키 ex) 학과이름

- 외래키(FK: foreign key): 참조된 다른 릴레이션의 기본키-두 릴레이션에 포함된 레코드 간 연관성을 표현

 

- 관계형 모델의 제약조건

1) 영역 제약 조건: 컬럼에 정의된 영역(domain)에 속한 값으로만 컬럼값이 결정

2) 키 제약조건: 키는 레코드를 고유하게 구별하는 값으로 구성

3) 개체 무결성 제약조건: 어떠한 기본키 값도 널(null)이 될 수 없음

*널(null): '없음' 또는 '0'이 아닌 미지의 값에 대한 표현(입력된 적이 없는 값/적용 불가능한 값)

4) 참조 무결성 제약조건: 반드시 존재하는 레코드의 기본키만 참조 가능

 

2. ERD의 변환

- 관계형 DBMS(RDBMS)의 구현 모델에 맞춰 데이터의 구조와 관계를 표현, 작성된 ERD를 RDBMS가 수용 가능하는 구조로 변환

 

- 변환 방법

1) 개체 집합: 개체 집합은 릴레이션으로 변환

2) 약한 개체 집합: 강한 개체 집합의 키 속성을 약한 개체 집합의 릴레이션에 포함

3) 일대일 관계: 두 릴레이션 중에서 한 릴레이션의 기본키를 다른 릴레이션에서 외래키로 참조

4) 일대다 혹은 다대일 관계: '일'쪽의 기본키를 '다'쪽 릴레이션에서 외래키로 참조

5) 다대다 관계: 관계 릴레이션을 생성하고, 두 릴레이션의 기본키를 각각 참조하는 외래키를 복합키 형태의 컬럼으로 구성

6) 다중값 속성: 릴레이션의 기본키를 참조하는 외래키와 다중값 속성으로 별도의 릴레이션으로 구성

7) 관계 집합의 속성: 외래키가 위치한 릴레이션의 컬럼으로 삽입

 

 

3. 데이터 연산

 

- 관계 연산: 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현

 

- 관계 대수

: 관계 연산을 정의하는 방법

주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자로 구성

관계 대수 연산자는 새로운 임시 릴레이션을 생성

연산자를 중첩하여 연산 처리 절차를 표현

 

- 셀렉트 연산: 주어진 릴레이션에서 조건을 만족하는 레코드를 갖는 릴레이션을 생성

  "σ조건(R)"

  *R은 릴레이션 

   ex) σ소속학과='중어중문학과'(교수)

         => 중어중문학과의 교수 레코드를 출력

 1) 조건: aΘb 또는 aΘv

 *a,b 속성 이름 v상수 값 Θ 비교자

 2) 조건의 결합: ∧(and), ∨(or)

 

- 프로젝트 연산: 기술된 컬럼만 갖는 릴레이션으로 재구성

  " π<컬럼리스트>(R)"

  * <컬럼리스트>: A1, A2, ..., An와 같이 R에 존재하는 컬럼을 ,(콤마)로 분리하여 기술

   ex)π교수이름, 소속학과(교수)

      => 레코드 내 교수들의 교수이름, 소속학과 출력

 

- 집합 연산자

1) 수학적 집합 이론에서의 이진 연산

- 합집합: R∪S

- 교집합: R∩S

- 차집합: R-S

2) 릴레이션은 집합, 레코드는 집합에 포함된 우너소

3) 집합 연산자 사용 조건

- 릴레이션 R과 S의 차수가 동일

- 모든 i에 대해 R의 i번째 컬럼의 도메인과 S의 i번째 컬럼의 도메인이 반드시 동일

 

- 카티시언 프로덕트 연산: 두 릴레이션에 포함된 레코드 간의 모든 조합을 생성하는 이항 연산자

" R × S "

 

- 조인 연산: 두 릴레이션에서 조건을 만족하는 레코드를 결합한 레코드로 구성된 릴레이션을 생성

- 집계 함수 연산: 집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산