2. 키워드
• Predicate Logic 술어논리
– 참과 거짓을 표현하기 위한 수학적 프레임워크
• T-SQL은 Boolean 표현과 논리 연산을 포
함
– 모두 술어논리라고는 할 수 없음
3. IF Statement of T-SQL
• T-SQL은 SQL 중심의 언어 (선언적 언어)
• 절차적 프로그래밍 기법도 지원함
IF OBJECT_ID(‘dbo.orders’) IS NOT NULL DROP TABLE dbo.Orders’
• 로직(logic)
– 프로그램의 의사결정이나 반복을 구현하는 방
법
4. IF Statement of T-SQL
• 논리에서의 IF <this> THEN <that>
– 문장 전체가 참 거짓을 나타냄
– 나중에 자세히…
• 프로그래밍에서의 IF <this> THEN <that>
– <this> 가 참일 경우 <that>을 수행하라는 명령
5. Propositions & Predicates
• 명제 (Proposition)
– 참 또는 거짓인 문장
• 12 + 7 = 100
• 비가 오는구나. ( O / X ?)
– 숨김 요소가 있을까요?
• 술어(Predicates)
– parameterized propositions
– 하나 이상의 불확정 값을 포함한 명제
• date > 02/12/12
• 둘 모두 Boolean 표현
6. Boolean Expressions in T-SQL
• WHERE, ON, HAVING 뒤에 옴
• IF, WHILE 뒤에도 옴
• CASE WHEN
– 우리가 흔히 이야기하는 조건에 해당~
7. Proposition or Predicate?
• x<3
– predicates
• x<x+3
– 일반적으로 true 라고 한다면 모든 x에 대해 참
일 경우
– 내포된 의미가 있음
• 이명박은 한국의 대통령이다.
– 참, 거짓?
– 시간이 내포됨
8. Creating Propositions from Predicates
• 전체 정량자 (universal quantifier)
– For all, …
• 존재 정량자 (existential quantifier)
– For some,…
– There exists …
• 특정한 값 대입
9. The Law of Excluded Middle
• 명제의 중간값은 없다.
• 언제나 참/ 거짓만 존재함
15. Vacuous Truths
• P→Q 문장은 P가 거짓일 경우 무조건 참이
됨
– 만약 1==0, 달은 치즈로 만들어졌다.
– 만약 그 수가 양수이면서 음수이면, x는 100이
다.
16. Negating Quantified Statements
• 실무에서 주어진 값의 ‘역’을 찾으면 매우
쉽게 문제가 해결 될 수 있다.
– 어떤 답이 아니라 답이 아닌 모든 것을 찾음
• 한정자의 부정
– 단순 부정은 한정자의 부정이 아님
– ‘모든 책이 세일 중이다’의 부정?
• 모든 책은 세일하지 않는다.
• 모든 책이 세일 중인 것은 아니다.
• 적어도 한 권의 책은 세일 중이 아니다.
18. Multiple Quantification
• 모든 미국의 사원이 적어도 한 번 주문을 처
리한 고객들의 집합 S
– 쇼핑 중독분들의 집합(?)
• 정의?
– Set builder notation으로 정의
• S의 부정
19. Alternatives and Generalizations
• Boolean Algebra
– 비트연산
• BIT 데이터 타입도 있음
• &, |, ~, ^
• Three-values logic
– true, false, UNKNOWN
– 비즈니스에서 unknown은 havoc을 유발
– null?
– 차태욱은 몇 권의 데이터베이스 책을 가졌을까?
• 0 or NULL 은 각각 다른 의미를 가짐
20. Alternatives and Generalizations
• Fuzzy Logic
– 참이면 1
– 거짓이면 0
– 절대적인 100%가 아니라 적절한 값을 선택
• 90%의 진실
• 2.5%의 거짓
25. A Practical Application
• the set of all customers for whom every
employee from the USA has handled at
least one order
– set builder notation
– 모든 사원이 적어도 하나 이상의 주문을 한 적
이 있는 고객의 집합
– 아까 그 집합입니다.
26.
27. A Practical Application
• 사원이 3명인 경우 S의 원소인 c는 다음 조
건을 만족
– e1 이 c의 주문을 처리
– e2 가 c의 주문을 처리
– e3 가 c의 주문을 처리
• S는 다음 조건을 모두 만족하는 집합
– e1이 처리한 주문의 고객들의 집합 C1
– e2가 처리한 주문의 고객들의 집합 C2
– e3가 처리한 주문의 고객들의 집합 C3
교집합
28. A Practical Application
• 특성함수
– 원소가 집합에 포함되면 1, 아니면 0
• x ∈ S ⇔ 1S (X)= 1
– 교집합의 특성함수 min(1S1, 1S2 , 1S3 )
– 합집합의 특성함수 max(1S1,1S2 , 1S3 )
• 특정 e에 대한 c의 특성함수를 만드는 쿼리
– 실습