20130212 sqlinternal02 part2

484 views

Published on

0 Comments
0 Likes
Statistics
Notes
  • Be the first to comment

  • Be the first to like this

No Downloads
Views
Total views
484
On SlideShare
0
From Embeds
0
Number of Embeds
2
Actions
Shares
0
Downloads
1
Comments
0
Likes
0
Embeds 0
No embeds

No notes for slide

20130212 sqlinternal02 part2

  1. 1. Set Theory andPredicate Logic정호영 / NHN NEXT
  2. 2.  키워드• Predicate Logic 술어논리 – 참과 거짓을 표현하기 위한 수학적 프레임워크• T-SQL은 Boolean 표현과 논리 연산을 포 함 – 모두 술어논리라고는 할 수 없음
  3. 3.  IF Statement of T-SQL• T-SQL은 SQL 중심의 언어 (선언적 언어)• 절차적 프로그래밍 기법도 지원함IF OBJECT_ID(‘dbo.orders’) IS NOT NULL DROP TABLE dbo.Orders’• 로직(logic) – 프로그램의 의사결정이나 반복을 구현하는 방 법
  4. 4.  IF Statement of T-SQL• 논리에서의 IF <this> THEN <that> – 문장 전체가 참 거짓을 나타냄 – 나중에 자세히…• 프로그래밍에서의 IF <this> THEN <that> – <this> 가 참일 경우 <that>을 수행하라는 명령
  5. 5.  Propositions & Predicates• 명제 (Proposition) – 참 또는 거짓인 문장 • 12 + 7 = 100 • 비가 오는구나. ( O / X ?) – 숨김 요소가 있을까요?• 술어(Predicates) – parameterized propositions – 하나 이상의 불확정 값을 포함한 명제 • date > 02/12/12• 둘 모두 Boolean 표현
  6. 6.  Boolean Expressions in T-SQL• WHERE, ON, HAVING 뒤에 옴• IF, WHILE 뒤에도 옴• CASE WHEN – 우리가 흔히 이야기하는 조건에 해당~
  7. 7.  Proposition or Predicate?• x<3 – predicates• x<x+3 – 일반적으로 true 라고 한다면 모든 x에 대해 참 일 경우 – 내포된 의미가 있음• 이명박은 한국의 대통령이다. – 참, 거짓? – 시간이 내포됨
  8. 8.  Creating Propositions from Predicates• 전체 정량자 (universal quantifier) – For all, …• 존재 정량자 (existential quantifier) – For some,… – There exists …• 특정한 값 대입
  9. 9.  The Law of Excluded Middle• 명제의 중간값은 없다.• 언제나 참/ 거짓만 존재함
  10. 10.  AND / OR / NOT / XOR• 잘 보세요.
  11. 11.  논리적 동치 (Logical Equivalence)• 같은 입력에 대해 항상 같은 참 / 거짓의 결 과값이 나올 때 논리적으로 동치라고 함
  12. 12.  드 모르간의 법칙• 아주 옛날에 다 배웠죠?• 밴다이어 그램으로 열심히 그려보면 됩니 다.• 논리적으로 동치
  13. 13.  논리적 추론 방법: Modus Ponens• 긍정 논법 – p이면 q이다. – q의 참 거짓을 p를 통해 판단함
  14. 14.  Contrapositive• 대우명제와 본 명제는 논리적으로 동치• 드 모르간 법칙에서 추론 가능
  15. 15.  Vacuous Truths• P→Q 문장은 P가 거짓일 경우 무조건 참이 됨 – 만약 1==0, 달은 치즈로 만들어졌다. – 만약 그 수가 양수이면서 음수이면, x는 100이 다.
  16. 16.  Negating Quantified Statements• 실무에서 주어진 값의 ‘역’을 찾으면 매우 쉽게 문제가 해결 될 수 있다. – 어떤 답이 아니라 답이 아닌 모든 것을 찾음• 한정자의 부정 – 단순 부정은 한정자의 부정이 아님 – ‘모든 책이 세일 중이다’의 부정? • 모든 책은 세일하지 않는다. • 모든 책이 세일 중인 것은 아니다. • 적어도 한 권의 책은 세일 중이 아니다.
  17. 17.  Negating Quantified Statements• 1) ∀과∃의 교환• 2) P(x) 와 not P(x) 의 교환
  18. 18.  Multiple Quantification• 모든 미국의 사원이 적어도 한 번 주문을 처 리한 고객들의 집합 S – 쇼핑 중독분들의 집합(?)• 정의? – Set builder notation으로 정의• S의 부정
  19. 19.  Alternatives and Generalizations• Boolean Algebra – 비트연산 • BIT 데이터 타입도 있음 • &, |, ~, ^• Three-values logic – true, false, UNKNOWN – 비즈니스에서 unknown은 havoc을 유발 – null? – 차태욱은 몇 권의 데이터베이스 책을 가졌을까? • 0 or NULL 은 각각 다른 의미를 가짐
  20. 20.  Alternatives and Generalizations• Fuzzy Logic – 참이면 1 – 거짓이면 0 – 절대적인 100%가 아니라 적절한 값을 선택 • 90%의 진실 • 2.5%의 거짓
  21. 21.  Relations• 같은 도메인의 두 원소를 대입했을 때 참 / 거짓의 값이 결정되는 연산자
  22. 22.  Relations의 특징• = , <= , < 은 각각 어디에 속할까요?
  23. 23.  < Operator• Is it ok?
  24. 24.  < Operator• How to fix it?
  25. 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. 26.  A Practical Application• 사원이 3명인 경우 S의 원소인 c는 다음 조 건을 만족 – e1 이 c의 주문을 처리 – e2 가 c의 주문을 처리 – e3 가 c의 주문을 처리• S는 다음 조건을 모두 만족하는 집합 – e1이 처리한 주문의 고객들의 집합 C1 – e2가 처리한 주문의 고객들의 집합 C2 – e3가 처리한 주문의 고객들의 집합 C3  교집합
  27. 27.  A Practical Application• 특성함수 – 원소가 집합에 포함되면 1, 아니면 0 • x ∈ S ⇔ 1S (X)= 1 – 교집합의 특성함수 min(1S1, 1S2 , 1S3 ) – 합집합의 특성함수 max(1S1,1S2 , 1S3 )• 특정 e에 대한 c의 특성함수를 만드는 쿼리 – 실습
  28. 28.  A Practical Application• Answer
  29. 29.  A Practical Application• 적어도 한명의 사원의 주문을 관리한 고객 중 모든 사원이 주문을 관리한 고객을 뺀 나 머지 고객은?• 더 좋은 쿼리는 없나요? – 선착순 한 명 상품~
  30. 30.  부록

×