2018/05/15 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 5강 정규화 기초

2018/03/21 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 4강 데이터베이스 언어

2018/03/19 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 3강 관계형 모델

2018/03/16 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 2강 데이터베이스 모델링

2018/03/16 - [방송통신대학교/컴퓨터과학과 [3학년 1학기]] - [데이터베이스] 1강 데이터베이스의 이해

1. 관계형 모델의 개념

1) 데이터베이스 모델링 과정
    개념적 데이터모델링 > 개념스키마 > 논리스키마 > 물리스키마 > DB

2) 논리적 데이터 모델링
    - 특정 DBMS에서 사용하는 데이터 모델에 맞추어 데이터를 표현하는 과정
    - 데이터 정의 언어로 기술된 논리 스키마 생성
    - 관계형 모델(releational model)
        * 1969년 에드가 F.코드에 의해 제안
        * 릴레이션(releation)으로 데이터를 표현하는 모델
        * 데이터 표현이 단순하고 직관적
        * 현재 대다수 DBMS의 기초

3) 릴레이션의 특징
    - 레코드의 유일성: 중복된 레코드가 존재 불가능
    - 레코드의 무순서성: 레코드의 순서는 의미가 없음
    - 컬럼의 무순서성: 컬럼은 순서가 없고, 이름과 값의 쌍
    - 컬럼값의 원자성: 모든 값들은 나눌수 없는, 단 하나의 의미

4) 키의 사용
    - 릴레이션의 레코드를 유일하게 식별하는 값

4-1) 키의 종류 및 속성
    키의 속성: 유일성, 최소성
    키의 종류:
        수퍼키: 유일성 만족
        후보키: 유일성, 최소성 만족
        기본키: 레코드의 구분을 위해 선택된 후보키
        외래키: 참조된 다른 릴레이션의 기본키
    키의 참조:
        두 릴레이션에 포함된 레코드 간 연관성을 표현

5) 관계형 모델의 제약조건

영역 제약 조건
    - 컬럼에 정의된 영역(domain)에 속한 값으로만 컬럼값이 결정
키 제약 조건
    - 키는 레코드를 고유하게 구별하는 값으로 구성
개체 무결성 제약조건
    - 어떠한 기본키 값도 널(null) 값이 될 수 없음
참조 무결성 제약조건
    - 두 릴레이션의 레코드 사이에 일관성을 유지에 사용


2. ER다이어그램의 변환

1) 관계형 모델로 변환 예

강좌 - 강의 → 강사
1:N의 관계에서 외래키는 N의 릴레이션에 1의 기본키를 외래키로 사용한다.
다중값속성 ( {} )은 원자성에 어긋나므로 별도의 릴레이션으로 만든다.

강사 ← 부양(약한관계집합) = 가족
약한관계집합 ( 관계: 마름모꼴의 테두리가 두 줄 ) 약한 개체집합 에서 전체참가( 두 줄로 연결 ) 1:N의 릴레이션에서 약한릴레이션은 외래키 및 기본키로 1 의 릴레이션의 기본키를 사용하고 두번째 기본키로 약한집합의 기본키로 사용할 수 있는것을 사용한다.

회원 - 수강[날짜] - 강좌 (N:N 관계)
N:N 의 관계에서는 반드시 관계집합 자체가 별도의 릴레이션으로 만들어져야 한다.
별도의 릴레이션에는 양쪽 릴레이션의 기본키를 가져와서 별도의 릴레이션에 외래키기본키로 컬럼을 생성해야한다.

3. 관계 대수의 사용

1) 관계연산의 개념
    - 관계형 모델을 기반으로 구성된 릴레이션을 사용하여 새로운 릴레이션을 생성하는 표현
    - 사용자의 관점에서 필요한 데이터를 릴레이션에서 추출하는 방법을 제공하는 도구
    - 관계 대수(relational algebra)
        * 관계 연산을 정의하는 방법
        * 주어진 릴레이션에서 필요한 릴레이션을 만드는 연산자로 구성

2) 셀렉트 연산자
    - 주어진 릴레이션에서 조건을 만족하는 레코드 만을 갖는 릴레이션을 추출
    (그림 셀렉트연산자)


    - 교수라는 릴레이션에서 학과명이 컴퓨터과학과인 레코드를 가져와라.
    (그림 셀렉트연산자2)

 

3) 프로젝트 연산자
    - 기술된 컬럼만 갖는 릴레이션을 추출
    (그림 프로젝트 연산자)


    - 교수 릴레이션에서 이름과 연봉만 알고싶다.
    (그림 프로젝트 연산자2)

 

4) 집합 연산자
    - 수학적 집합 이론에서의 이진 연산
        합집합, 교집합, 차집합
    - 집합 연산자 사용 조건
        릴레이션 R과 S의 차수가 동일
        모든 i에 대해 R의 i번째 컬럼의 도메인과 S의 i번째 컬럼의 도메인이 반드시 동일

5) 카티시언 프로덕트 연산자
    - 두 릴레이션에 포함된 레코드 간의 모든 조합을 생성하는 연산자
        R X S
    - 각각 m개와 n개의 레코드, a개와 b개의 컬럼이 존재하는 R과 S릴레이션의 경우, R X S는
        a + b 개의 컬럼
        m x n 개의 레코드

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


    조인과 카티시언의 다른점
        카티시언은 무작정 짝짖는거고 조인은 조건을 만족시키는것만 짝지음
        카티시언을 수행 한 후 조건을 만족시키는 레코드만 남기는것으로 수행

7) 집계함수 연산
    - 집계 함수를 값들의 집합 또는 레코드의 집합에 적용하는 연산
    (그림 집계함수)

7-1) 칼리그래프G 의 왼쪽부분에 레코드 그룹핑을 시킬 수 있다.
(그림 집계함수 그룹화)