DB/관계형 DB

술어논리와 릴레이션의 연산 #1

쿠와와 2020. 12. 2. 14:16

명제란 ??

명제란 어떤 사물에 관해 설명한 문장이 그 의미가 정확한지, 즉 참인지 거짓인지 물을 수 있는 것이다. 

 

명제논리

어떤 명제의 참과 거짓을 알고 있을 때 다른 명제의 참과 거짓이 무엇인지 알아내는 데 특화된 학문

-> 이때 가장 중요한 것은 어떤 명제의 참과 거짓을 이용해 다른 명제의 참과 거짓을 증명할 때 중요한 것은 명제들의 참과 거짓 값뿐이며 명제가 가진 다른 의미는 아무런 영향을 끼지치 못한다. 

보통 명제에서 첨과 거짓 이외의 의미를 제거하기 위해 명제를 P나 Q등의 기호로 표현한다. 

 

 

연결자와 진리값

연결자는 일반적으로 논리연산이라고 불린다. 

P Q NOR AND OR IMP EQ NAND  NOR XOR
P Q P P ∧ Q P ∨ Q P ⊃ Q P ≡ Q P | Q P ↓ Q P xor Q
T T F T T T T F F F
T F F F T F F T F T
F T T F T T F T F T
F F T F F T T T T F

동어반복 

명제의 값이 무엇이든지 식 전체의 값이 참과 거짓 값이 항상 참이되는 경우가 있다. (P,Q의 값이 상관없이 참만 나오는 경우) 이때 이 논리식을 동어반복, 항진식이라고 한다. 이때 동어반복은 다른 참이 되는 논리작을 도출하는데 사용한다. 

몇가지 동어 반복을 살펴보자

 

동일 법칙 ... P ⊃ P

배중 법칙 ... P ¬P

이중부정법칙 ...¬ P ≡ P

모순 법칙 ... ¬ (P ¬P)

Principle id explosion ... (P ¬P) ⊃ Q

등등... 

 

공리 

같이 보면 좋은 영상 : www.youtube.com/watch?v=ysXeWhu7aO8

아무런 전체 없이도 올바르다고 인정하자라는 함의하에 정해진 다른 정리의 출발점을 공리라고 한다. 즉 모든 정리는 공리가 출발점이다. (즉, 현실세계의 약속(가정)이라고 생각해도 좋을 것이다. 증명을 할 필요 없다는 것)

 

공리는 다양한 정리에 전제로 사용되므로 마음대로 공리를 만들수는 없다. 

공리는 여러개의 명제를 조합하여 성립한다. 공리로 명의된 명제끼리 모순이 없어야하고 공리는 다뤄지는 주제가 전체를 포괄할 수 있는 것을 가장하여 정의해야 한다. 이렇게 정한 공리의 집합을 공리계라고 한다. 

 

1. ⊃의 도임 ... P를 가정해 Q를 도출할 때, P를 가정하지 않고 P⊃Q를 도출하는 것이 좋다.

2. ⊃의 제거 ... P, P ⊃ Q에서 Q를 도출하는 것이 좋다.

 

3. ¬의 도입 ... P ( Q¬Q )에서 ¬P를도출하는것이좋다.

4. ¬의 제거 ... ¬P 에서 P를 도출하는 것이 좋다.

 

5. ∧의 도입 ... P,Q라는 두 개의 명제에서 P ∧ Q를 도출하는 것이 좋다.

6. ∧의 제거 ... P ∧ Q에서 P 또는 Q를 도출 하는 것이 좋다.

 

7. ∨의 도입 ... P 또는 Q에서 P Q를 도출하는 것이 좋다. 

8. 의 제거 ... P ∨ Q, P ⊃ Q,  Q ⊃ R에서 R을 도출하는 것이 좋다. 

 

 

명제논리의 한계

어떤 사실을 단순히 참과 거짓 값을 가진 명제로 표현할 수 있다면 문제 없지만 그렇지 않은 경우, 즉 사실을 단순한 명제를 이용해 표현할 수 없을 때는 대응할 수 없다는 한계 존재.

-> 그래서 나온 것이 양화논리

 

양화논리 

어떤 집단의 요소 존체가 어떠한 성질을 충족하는가?.                - 범용정량 ∀

어떤 집단의 요소는 어떠한 성질을 충족하는 것이 존재하는가?    - 존재정량 ∃

이로서 더욱 풍부한 표현력을 얻을 수 있다. 

 

술어논리

변수와 정량자 그리고 함수를 사용해 집단에 대한 성질을 기술한 문장을 논리식으로 표현할 수 있다. 이러한 표현을 사용한 명제논리를 확장한 체계를 술어논리라고 한다. 

정량자 ∀나 ∃와 함께 사용되는 변수를 속박변수라고한다.

 

술어논리의 공리계 

9. ∀의 도입 ... P(c) ⊃ ∀ x P(x)
10. ∀의 제거 ...∀ x P(x) ⊃ P(c)  

11. 존재의 도입 ... P(a) ⊃∃ x P(x)
12. 존재의 삭제 ...(∃ x P(x) ^ P(c) ⊃ Q) ⊃ Q

 

도메인 

술어 논리는 논의의 대상이 되는 집합을 가정하는 것이 일반적이며, 이처럼 논의의 대상이 되는 집합을 도메인, 영어로는 Domain of discourse (단순 영역)이라고 부른다. 이 개념은 관계형 모델에서도 통용되므로 꼭 기억하고 넘어가자. 

 

1차 술어논리

범용 정량자를 사용한 식은 논리식이다. 이처럼 변수와 정량자 그리고 함수를 사용해 집단에 대한 성질을 기술한 문장을 논리식으로 표현할 수 있다. 이러한 표현을 사용한 명제 논리를 확장한 체계를 술어 논리라고 한다.

즉 우리가 알고 있는 아무런 설명 없이 술어 논리하고 하면 1차 술어 논리라고 생각하면 된다. 

∀F : 모든 개념에 대해서~

∃F : ~개념이 존재한다

 

ex) ∃ x F(x)  <= '이 마을에는 정직하지 않은 사람이 있다.'를 표현한 술어 논리

 

2차 술어 논리

술어의 특징을 표현하는 술어를 다루는 것 즉 집합을 요소로 하는 집합을 말한다. 

 

 

관계형 모델은 1차 술어 논리를 바탕으로 디자인된 데이터 모델이므로 더 이상 다루지는 않겠다. 

 

릴레이션과 술어

술어 논리에서 술어를 F(x, y)라고 표현할 수 있다. 그러나 릴레이션의 요소는 튜플이므로 술어에 대입하면 튜플이 된다. 이때 가장 중요한 점은 릴레이션에 포함된 튜플은 모두 F(t)에 대입하면 참으로 평가된다. 즉 릴레이션은 참인 명제의 집합이라고 할 수 있다.

 

이 말을 왜 하느냐? 바로 릴레이션이 참인 명제의 집합이라는 것은 릴레이션의 연산은 논리 연산 외에는 없다는 말이다.

 

 

릴레이션의 연산

 

제한 (Restrict)

제한은 대상 릴레이션에 관해 새로운 술어를 적용하는 작업이다. 

양쪽의 술어를 만족하는 집합을 구하는 것이 제한이라는 작업이 가진 의미이다. 

곱집합(Product)

위에서 말했듯이 여기서의 집합은 모두 참이 되는 명제의 집합이다. 

그러므로 OR연산은 대상에 대한 모든 참의 값을 다 구해줘야 하는 것이다.

=> 두 개의 집합 R1, R2에 대하여 R1과 R2의 전제가 되는 사실로부터 어떻게 새로운 사실을 도출할지가 곱집합이라는 작업의 가진의 미다.

술어는 P(t1) ∧ Q(t1) 이다. 

 

 

결합(Join)

술어로는 곱집합과 동일하게 표시되지만, 곱집합은 결합에서의 특별한 경우이다. 

차이점은 두 개의 릴레이션에 공통 속성이 존재하는지 아닌 지다. 곱집합에는 두 개의 릴레이션에 공통된 속성이 존재하지 않는다. 

즉 이말을 좀 더 쉽게 말해보자면 결합한 후의 릴레이션에 포함된 튜플은 공통의 속성값이 같인 것뿐이다.

왜냐하면 공통의 속성은 같은 의미가 있으며 같은 값이 아니면 모순되기 때문이다. 

술어는P(t1) ∧ Q(t1) 이다. 

 

 

 

 

교집합

집합은 모든 속성이 공통인 릴레이션 사이의 결합이라고 할 수 있다. 

술어식은 P(t) ∧ Q(t) 이다. 

 

모든 속성이 공통인 관계들을 뽑아낸다고 생각하면 된다. (우측 그림)

 

 

 

 

 

합집합

합집합은 교집합처럼 모든 특성이 공통인 릴레이션 사이의 연산이다. 하지만 교집합과 술어식이 다르다.

술어는 P(t) ∨ Q(t) 이다. 

느낌은 Set(a + b) 이런 형식이다. 

집합 중 공통된 튜플은 하나만 그리고 공통되지 않은 튜플들을 합치는 것이다.

 

차집합

한쪽의 릴레이션에는 포함돼 있지만 다른 쪽의 릴레이션에는 포함되지 않은 튜플의 집합을 반환하는 연산이다. 

술어는 P(t) ∧ ¬Q(t)

 

교집합 합집합 차집합은 모두 릴레이션의 특성이 공통이여야 한다. 알아두자

 

 

프로젝션

프로젝션은 여러 개의 특성이 있는 릴레이션에서 특정 속성만 남기는 작업이다. 

프로젝션을 적용한 다음의 릴레이션에 원래 릴레이션의 후보키가 남아 있으면 요소의 수가 줄어들지 않지만 , 후보키에 포함된 속성의 전체 또는 일부가 포함되지 않을 때는 튜플의 값이 중복되므로 튜플의 수가 줄어들 수도 있다.

 

이거의 원래 의미는 물체에 빛을 비춰 그 그림자를 비추는 것을 의미하는데 3D에 빛의 쏴 그림자는 만들면 2D가 되는 것이라 동일한 성질이라고 생각하면 된다.

 

R1 - > R2

 

R1

dog owner
물리  정다정
하나 홍세나
사랑이 홍세나

R2

owner
정다정
홍세나

이런식으로의 변환을 프로젝션이라고 한다.

 

확장 

기존의 속성에 어떤 연산을 한 결과를 새로운 속성으로 추가하는 작업이다. 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

'DB > 관계형 DB' 카테고리의 다른 글

procedure  (0) 2020.12.29
mysql - CRUD 작업하기  (0) 2020.12.28
MYSQL 사용법  (0) 2020.12.27
SQL에서 릴레이션 조작  (0) 2020.11.29
관계형 모델  (0) 2020.11.28