일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | 5 | 6 | 7 |
8 | 9 | 10 | 11 | 12 | 13 | 14 |
15 | 16 | 17 | 18 | 19 | 20 | 21 |
22 | 23 | 24 | 25 | 26 | 27 | 28 |
29 | 30 | 31 |
- swift문법
- 운영체제
- react
- 소프트웨어분석및설계
- global soop
- 네이버 치지직
- 네이버 부스트캠프
- apple developer academy 후기
- 숭실대
- 애플 디벨로퍼 아카데미 21주차 회고
- iOS 개발 오류
- Swift 기능
- OS
- StateObject
- 애플 디벨로퍼 아카데미 후기
- 데이터베이스
- 애플 아카데미 후기
- ObservableObject
- Apple Developer Academy @ POSTECH
- Swift 디자인패턴
- 데이터베이스 공부
- sqoop
- 제앱소
- ObservedObject
- Swift 문법
- 치지직
- SWIFT
- 애플 디벨로퍼 아카데미
- useReducer
- 앱 비교 프로젝트
- Today
- Total
사과하는 제라스
2. 관계형 데이터 모델<하> 본문
목차
- 관계 대수(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를 찾음.
'대학 전공 공부 > 데이터베이스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 |