- 관계형 모델
4.1 관계형 모델
- 데이터베이스 모델링 과정
- 논리적 데이터 모델링
- 특정 DBMS에서 사용하는 데이터 모델이 맞추어 데이터를 표현하는 과정
- 데이터 정의 언어로 기술된 논리 스키마 생성
- 관계형 모델
1969년 에드가 F 코드에 의해 제안
술어논리와 집합론을 이론적 배경으로 릴레이션(relation)으로 데이터를 표현하는 모델
데이터 표현이 단순하고 직관적이기 때문에 현재 대다수 DBMS의 기초
=> Oracle, DB2, PostgreSQL, MySQL, MSSQL 등
- 릴레이션의 특징
- 레코드의 유일성: 중복된 레코드가 존재하지 않음
- 레코드의 무순서성: 한 릴레이션에 포함된 레코드의 순서는 정해져 있지 않음
- 컬럼의 무순서성: 컬럼은 순서가 없고, 이름과 값의 쌍으로 구성
- 컬럼의 원자성: 모든 값들은 나눌 수 없는, 단 하나의 의미만을 갖는 원자값
- 관계형 모델의 제약조건
- 영역 제약조건: 각 컬럼 A의 값이 반드시 A의 영역 dom(A)에 속한 값의 집합에 포함
- 키 제약조건: 키는 레코드를 고유하게 구별하는 값으로 구성
- 개체 무결성 제약조건: 어떤 기본키 값도 널(null) 값이 될 수 없음
- 참조 무결성 제약조건: 두 릴레이션의 레코드 사이에 일관성을 유지에 사용
- 키의 종류 및 속성
- 수퍼키: 유일성 만족
- 후보키: 유일성, 최소성 만족
- 기본키: 레코드의 구분을 위해 선택된 후보키
- 외래키: 참조된 다른 릴레이션의 기본키
- 컬럼의 구분(키 관점에서)
- 주속성: 릴레이션의 키 중 적어도 한 키에 포함되는 컬럼
- 비주속성: 주속성이 아닌 나머지 컬럼
4.2 ER 다이어그램 변환
- 관계형 모델로 변환 방법
- 단계 1 - 개체 집합을 릴레이션으로 사상(키 지정)
- 단계 2 - 약한 개체(복합 키 지정)
- 단계 3 - 1:1 관계 집합 설정(외래키 지정)
- 단계 4 - 1:N 관계 집합 설정(외래키 지정)
- 단계 5 - M:N 관계 집합 설정(릴레이션 생성)
- 단계 6 - 다중값 속성의 정리(릴레이션 생성)
- 단계 7 - n항 관계 설정(릴렝리션 생성)
4.3 관계 대수
- 관계연산의 개념
- 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현
- 사용자의 관점에서 필요한 새로운 릴레이션을 정의하는 방법
- 관계 연산 정의 방법
- 관계 대수
- 관계 해석
- 관계 대수와 관계 해석
- 관계 대수(relational algebra)
주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자연산자(∪, ∩, -, σ, π, x, , ÷, 집계함수 등)으로 구성
관계 연산의 과정을 표현
- 관계 해석(relational calculus)
원하는 릴레이션에 포함되는 레코드의 조건을 정의하는 방식
관계 연산의 결과를 표현
- 셀렉트 연산
- 정의: 주어진 릴레이션에서 조건을 만족하는 레코드 만을 갖는 릴레이션을 추출
=> σ조건(R)
- 조건 - aΘb 또는 aΘv
a, b | 속성이름 | v | 상수 값 |
Θ | 비교자 {=, ≠, <, >, ≤, ≥} | R | 릴레이션 |
- 조건의 결합 - ∧(and), ∨(or)
- 프로젝트 연산
- 정의: 기술된 컬럼만 갖는 릴레이션을 추출
- <컬럼리스트>: A1, A2, …, An와 같이 R에 존재하는 컬럼을 ,(콤마)로 분리하여 기술
- 집합 연산자
- 수학적 집합 이론에서의 이진 연산
- 합집합: R ∪ S
- 교집합: R ∩ S
- 차집합: R – S
- 집합 연산자 사용 조건
- 릴레이션 R과 S의 차수가 같다
- 모든 i에 대해 R의 i번째 컬럼의 도메인과 S의 i번째 컬럼의 도메인이 반드시 동일
- 합집합: R ∪ S
- R과 S의 어느 한쪽이라도 포함되는 레코드로 이루어진 릴레이션
- 카티시언 프로덕트
- 두 릴레이션에 포함된 레코드 간의 모든 조합을 생성하는 연산자
- R × S
- 각각 m개와 n개의 레코드, a개와 b개의 컬럼이 존재하는 R과 S 릴레이션의 경우, R × S는
- a + b 개의 컬럼
- m ☓ n 개의 레코드
- 조인 연산자
- 두 릴레이션에서 조건을 만족하는 레코드를 결합한 레코드로 구성된 릴레이션을 생성
=> σ AθB(R × S)
- 집계 함수 연산
- 집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산
- x( ): AVG, SUM, MIN, MAX, COUNT등의 집계 함수
- A: 집계 연산을 적용할 컬럼
- 레코드 그룹화를 위해 집계 함수 연산자 앞에 그룹화 속성을 기술
- B: 그룹의 기준이 되는 컬럼
- x(): 집계 함수
- A: 집계 연산을 적용할 컬럼
'데이터베이스' 카테고리의 다른 글
06 정규화 I (0) | 2016.03.10 |
---|---|
05 SQL (0) | 2016.03.09 |
03 데이터베이스 모델링 (0) | 2016.03.08 |
02 데이터베이스 (0) | 2016.03.07 |
01 데이터베이스 개요 (0) | 2016.03.06 |