"관계형 데이터베이스 실전 입문 - 오쿠노 마키아"를 읽으며 매주 스터디 진행
2.1 술어논리와 관계형 모델
명제와 공리
- 명제 : 어떤 사물의 참/거짓 판단 방법
- 정리 : 증명을 통해 참이 밝혀진 것
- 공리 : 증명없이 참으로 받아지는 명제
- 여러 개의 명제를 통해 공공적으로 올바르다고 정한 정리 = 공리
- 공리로 정의된 명제끼리는 모순 X
- 공리의 집합 = 공리계, 모순이 없는 완전성
양화논리
- 명제를 이용해 모든 것을 참/거짓 판단 불가능 → 양화논리의 등장
- 집단을 대상으로 참/거짓을 묻는 것
양화논리의 두가지 종류
- "어떤 집단의 요소 전체가 어떠한 성질을 충족하는가?” → 범용정량자(∀)
- “어떤 집단의 요소는 어떠한 성질을 충족하는 것이 존재하는가?” → 존재정량(∃)
술어논리
- 기존 집합 → 새로운 집합의 도출하는 논리식 = 술어논리
- 집합과 술어논리 → 1:1 대응 → 릴레이션 = 집합
- 릴레이션에 포함된 튜플들은 항상 참(사실) = 릴레이션은 사실의 집합 → 쿼리를 통한 새로운 릴레이션 = 모두 사실인 릴레이션
- 도메인 = 속성이 가질 수 있는 모든 값의 집합
“폐쇄 세계 가정”
릴레이션에 포함되지 않는 사실인 데이터가 실제로 존재할 수도 있지만 이는 릴레이션 내에 존재하지 않는다고 가정한다.
💡 관계형 모델의 한계
* 술어논리(집합론)에 따른 데이터 모델 → 그 틀에서 벗어난 데이터나 연산을 표현 불가
⇒ 1차 술어논리의 표현력보다 복잡하거나 유연한 데이터 또는 연산은 관계형 모델로 표현 불가
ex) 그래프
- DB 쿼리를 통한 데이터 조회 = 술어 표현 + 논리 연산 진행 결과 ⇒ 새로운 집합 도출
간략 요약
- 명제를 이용해선 모든 사물의 참/거짓을 판단은 어려움
- 집단을 대상으로 참/거짓을 묻는 양화논리 등장
- 양화논리를 논리식으로 풀어낸 것이 술어논리
- 집단(집합)에 대한 논리식 : 술어논리 → 집합과 1:1 대응
- 집합 = 릴레이션 → 술어를 통해 논리적인 연산 가능 = DB 쿼리를 통한 연산과 동일
2.2 릴레이션의 연산과 술어논리
제한(Restrict)
- 릴레이션 R이 이름과 나이라는 속성을 갖는다 가정 R = (이름, 나이)
- ex) Query : 20살 이상인 사람을 검색
- P(t) : 릴레이션 R → 기존 릴레이션 자체가 술어
- Q(t) : “나이가 20살 이상” → 제한 표현 술어
- P(t) AND Q(t) → 새로운 릴레이션 도출
릴레이션 내 포함된 튜플은 모두 참이기 때문에 릴레이션 R에서 제한한 술어인 Q(t)의 20살 이상인 사람의 속성값은 모두 참이다.
곱집합 (Product)
- 공통된 속성을 갖지 않는 릴레이션 R1, R2 존재 가정 → R1 = (강아지 이름), R2 = (고양이 이름)
- 두 릴레이션의 튜플의 조합
- ex) Query : 집에서 기르는 강아지와 고양이의 이름 도출
- P(t1) : 릴레이션 R1 → 릴레이션 자체가 술어
- Q(t2) : 릴레이션 R2 → 릴레이션 자체가 술어
- P(t1) AND Q(t2) → 두 릴레이션 자체가 참 + 공통된 속성 X = R1 튜플 개수 * R2 튜플 개수 ⇒ R3 = (강아지 이름, 고양이 이름)
결합 (Join)
- 결합 = 두 개의 릴레이션 사이의 공통된 속성이 존재하는 경우
- 결합 연산 이후 릴레이션 포함 튜플 = 공통의 속성값이 같음
- P(x, z) : 릴레이션 R1, Q(y, z) : 릴레이션 R2
- P와 Q의 속성 z는 공통된 속성으로 자유변수이다.
- P(x, z) AND Q(y, z) → z(공통) 속성으로 결합된 릴레이션
교집합 (Intersect)
- 모든 속성이 공통인 릴레이션
합집합 (Union)
- 두 릴레이션 모두 포함된 튜플 집합
- P(t) OR Q(t)
차집합 (Difference)
- 한쪽 릴레이션 포함, 다른쪽 릴레이션 포함 X
- P(t) : 릴레이션 R1
- Q(t) : 릴레이션 R2
- P(t) AND NOT Q(t) → R1의 튜플에서 R2가 아닌 튜플만 참
- MINUS, NOT EXISTS 키워드 사용
프로젝션 (Projection)
- 여러개 속성 가진 릴레이션에서 특정 속성만 남기는 연산
2.3 요약
- 술어와 집합 = 1:1 관계
- 기존 집합에서 다른 새로운 집합을 도출하는 방법 = 술어논리
- 관계형 모델에서 술어논리 기반으로 새로운 값을 도출 = 쿼리
반응형
'Computer Science > DB' 카테고리의 다른 글
정규화 이론(두번째) - 결합 종속성 (DB 스터디 3주차) (0) | 2022.09.28 |
---|---|
SQL과 관계형 모델 (정규화) (DB 스터디 3주차) (0) | 2022.09.28 |
SQL과 관계형 모델 (DB 스터디 1주차) (0) | 2022.09.16 |
반정규화 (De-Normalization) (0) | 2022.06.25 |
정규화 (Normalization) (0) | 2022.06.22 |