• 관계형 모델

    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
Posted by redcode.
,