관리 메뉴

사과하는 제라스

2. 관계형 데이터 모델<하> 본문

대학 전공 공부/데이터베이스1

2. 관계형 데이터 모델<하>

Xerath(제라스) 2022. 4. 24. 22:39

목차

    728x90
    반응형

    - 관계 대수(Relational Algebra) : 관계형 데이터 모델의 일부. 관계, 제약 사항에 대한 연산을 제공함.

    →RDBMS는 관계 대수를 직접적으로 사용자에게 지원하지 않는 대신, SQL언어를 지원함.

     

     

    1. 선택 연산(Select Operation) →  σ(시그마)

    : 주어진 조건을 만족하는 tuple들을 선택하는 연산.

     

    2. 투영 연산(Project Operation) → π(파이)

    : 주어진 속성들을 선택하는 연산으로 '중복된 tuple들은 제거됨'.

     

    3. 합집합 연산(Union Operation) →

    : 주어진 속성들의 개수와 그 종류가 동일(도메인이 상호 호환적인)한 table끼리만 가능한 연산으로 일반적인 합집합 연산.

     

    4. 차집합 연산(Set Difference Operation) → -

    : 주어진 속성들의 개수와 그 종류가 동일(도메인이 상호 호환적인)한 table끼리만 가능한 연산으로 일반적인 차집합 연산.

     

    5. 카티시안곱 연산(Cartesian Product Operation) → X

    : 두 table 간의 곱 연산. 다음과 같은 결과가 나옴.

    이때, 속성의 개수와 tuple의 개수는 다음과 같다.

     

    6. 재명명 연산(Rename Operation) → ρ(rho)

    : 단순히 테이블 이름, 속성 이름을 변경하는 연산.

     

    ⌞관계명만 변경 시엔 X만 작성 ok. 속성명만 변경 시엔 X(A1, A2,...)처럼 관계명, 모든 속성명 작성해야 함.

     

    ----------------------------------------------이후는 확장 관계 대수-----------------------------------------------------

    [확장 관계 대수는 기본연산을 통해 표현이 가능하다. 기본 연산의 경우엔 다른 연산으로 표현이 불가능하다.]

     

     

    7. 할당 연산(Assignment Operation) →  ←

    : 복잡한 질의문을 작성할 때 중간 결과 표현을 임시로 저장하게 해주는 연산.

     

    8. 교집합 연산(Set Operation) 

    : 속성의 개수, 속성의 종류, 그 값들이 동일한 tuple을 뽑아내는 연산. 다음과 같은 결과가 나옴.

    9. 자연 조인(Natural Join Operation)→

    : 카티시안곱 -> 선택 연산 -> 투영연산을 차례로 진행하는 연산. 결합법칙, 교환법칙이 모두 성립됨.

    조인은 크게 내부 조인 / 외부 조인으로 나뉨.

    - 내부 조인

    1) 세타 조인 : 가장 일반적인 조인으로 조인 조건이 무엇이든 가능.

    2) 동등 조인 : 세타 조인 중에서 조인 조건은 동등 조건만으로 구성되어야 함.

    3) 자연 조인 : 동등 조인 중에서 조인 조건이 조인 결과에 한번만 나타나야 함.(ex) r.pID, s.pID 둘 다 나타나는 게 아니라 pID 하나만 나타나는 조인임.)

    - 외부 조인

    1) 자연 왼쪽 외부 조인 : 왼쪽에 오는 입력 관계의 모든 tuple들이 결과에 나와야 하고, 해당 tuple들에 없는 오른쪽 관계의 속성은 모두 null값으로 사용함.

    2) 자연 오른쪽 외부 조인 : 오른쪽에 오는 입력 관계의 모든 tuple들이 결과에 나와야 하고, 해당 tuple들에 없는 왼쪽 관계의 속성은 모두 null값으로 사용함.

    3) 자연 완전 외부 조인 : 왼쪽, 오른쪽 외부 조인을 합쳐놓은 연산.

     

    10. 나눔 연산(Division Operation) → ÷

    : 설명은 다음 그림으로 함.

    이때, R(A,B,C,D,E) ÷ S(D,E,F)와 같이

    relation의 속성 값들이 어느 한 쪽이 다른 한 쪽에 포함되는 관계가 아닌 경우엔 연산이 불가능!

     

    - 질의문에 'for all'이 포함된다면 나눔 연산으로 풀는게 좋음.

    ex) r(studentID, courseID) ÷ s(courseID) 

    → s table에 포함된 모든 courseID를 수강한 studentID를 찾음.

     

    728x90
    반응형

    '대학 전공 공부 > 데이터베이스1' 카테고리의 다른 글

    3. SQL 1 - DML  (0) 2022.04.25
    3. SQL 1 - DDL  (0) 2022.04.25
    3. SQL 1 - Intro  (0) 2022.04.24
    2. 관계형 데이터 모델 <상>  (0) 2022.04.24
    1. 데이터베이스 소개  (0) 2022.04.24