Zayson
A to Zayson!
Zayson
전체 방문자
오늘
어제
  • 분류 전체보기 (132)
    • Computer Science (20)
      • Network (4)
      • DB (12)
      • OS (4)
    • Algorithm (32)
      • 완전탐색(Brute-Force) (3)
      • 그리디(Greedy) (6)
      • 투포인터(Two-Pointer) (1)
      • 그래프(Graph) (5)
      • BFS & DFS (9)
      • 구현, 시뮬레이션(Implementation) (5)
      • 다이나믹 프로그래밍(DP) (3)
    • Backend (51)
      • Spring Boot (19)
      • JPA (16)
      • Kafka (2)
      • Java (13)
      • Kotlin (1)
    • DevOps (1)
      • Jenkins (5)
      • Oracle Cloud Infrastructure (1)
      • Kubernetes & Docker (1)
    • Trouble Shooting (3)
      • JPA (1)
      • Spring Boot (2)
    • 회고 (5)
      • 엔빵 프로젝트 포스트 로드맵 (1)
      • 2022년 (4)
    • Kafka (7)
      • Kafka (5)
      • Kafka Connect (2)
    • 기술 서적 (6)
      • 데이터 중심 애플리케이션 설계 (3)
      • 개발자가 반드시 정복해야할 객체 지향과 디자인 패턴 (2)
      • 가상 면접 사례로 배우는 대규모 시스템 설계 기초 (1)

블로그 메뉴

  • 홈
  • 태그
  • 방명록

인기 글

태그

  • Backend
  • 관계형 데이터베이스 실전 입문
  • 완전탐색
  • 프로그래머스
  • BFS
  • Kafka Connect
  • 구현
  • 엔빵프로젝트
  • CS
  • JPA
  • Computer science
  • spring boot
  • Java
  • kafka
  • SpringBoot
  • dfs
  • 백준
  • 나 혼자 스프링부트!
  • 라이브스터디
  • 그리디

최근 글

티스토리

hELLO · Designed By 정상우.
Zayson

A to Zayson!

술어논리와 관계형 모델 (DB 스터디 2주차)
Computer Science/DB

술어논리와 관계형 모델 (DB 스터디 2주차)

2022. 9. 21. 10:12
"관계형 데이터베이스 실전 입문 - 오쿠노 마키아"를 읽으며 매주 스터디 진행

 

2.1 술어논리와 관계형 모델

명제와 공리

  • 명제 : 어떤 사물의 참/거짓 판단 방법
  • 정리 : 증명을 통해 참이 밝혀진 것
  • 공리 : 증명없이 참으로 받아지는 명제
  • 여러 개의 명제를 통해 공공적으로 올바르다고 정한 정리 = 공리
    • 공리로 정의된 명제끼리는 모순 X
    • 공리의 집합 = 공리계, 모순이 없는 완전성

양화논리

  • 명제를 이용해 모든 것을 참/거짓 판단 불가능 → 양화논리의 등장
  • 집단을 대상으로 참/거짓을 묻는 것

양화논리의 두가지 종류

  1. "어떤 집단의 요소 전체가 어떠한 성질을 충족하는가?” → 범용정량자(∀)
  2. “어떤 집단의 요소는 어떠한 성질을 충족하는 것이 존재하는가?” → 존재정량(∃)

술어논리

  • 기존 집합 → 새로운 집합의 도출하는 논리식 = 술어논리
  • 집합과 술어논리 → 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
    'Computer Science/DB' 카테고리의 다른 글
    • 정규화 이론(두번째) - 결합 종속성 (DB 스터디 3주차)
    • SQL과 관계형 모델 (정규화) (DB 스터디 3주차)
    • SQL과 관계형 모델 (DB 스터디 1주차)
    • 반정규화 (De-Normalization)
    Zayson
    Zayson
    공부한 내용을 정리하는 공간

    티스토리툴바