20130212 sqlinternal02 part2

31
Set Theory and Predicate Logic 정정정 / NHN NEXT

description

 

Transcript of 20130212 sqlinternal02 part2

Page 1: 20130212 sqlinternal02 part2

Set Theory and Predicate Logic정호영 / NHN NEXT

Page 2: 20130212 sqlinternal02 part2

키워드

• Predicate Logic 술어논리–참과 거짓을 표현하기 위한 수학적 프레임워크

• T-SQL 은 Boolean 표현과 논리 연산을 포함–모두 술어논리라고는 할 수 없음

Page 3: 20130212 sqlinternal02 part2

IF Statement of T-SQL• T-SQL 은 SQL 중심의 언어 ( 선언적

언어 )• 절차적 프로그래밍 기법도 지원함

• 로직 (logic)– 프로그램의 의사결정이나 반복을 구현하는

방법

IF OBJECT_ID(‘dbo.orders’) IS NOT NULL DROP TABLE dbo.Orders’

Page 4: 20130212 sqlinternal02 part2

IF Statement of T-SQL• 논리에서의 IF <this> THEN <that>–문장 전체가 참 거짓을 나타냄–나중에 자세히…

• 프로그래밍에서의 IF <this> THEN <that>–<this> 가 참일 경우 <that> 을 수행하라는

명령

Page 5: 20130212 sqlinternal02 part2

Propositions & Predicates• 명제 (Proposition)– 참 또는 거짓인 문장• 12 + 7 = 100• 비가 오는구나 . ( O / X ?)

– 숨김 요소가 있을까요 ?• 술어 (Predicates)– parameterized propositions–하나 이상의 불확정 값을 포함한 명제 • date > 02/12/12

• 둘 모두 Boolean 표현

Page 6: 20130212 sqlinternal02 part2

Boolean Expressions in T-SQL• WHERE, ON, HAVING 뒤에 옴• IF, WHILE 뒤에도 옴• CASE WHEN–우리가 흔히 이야기하는 조건에 해당 ~

Page 7: 20130212 sqlinternal02 part2

Proposition or Predicate?• x < 3 – predicates

• x < x + 3–일반적으로 true 라고 한다면 모든 x 에 대해

참일 경우–내포된 의미가 있음

• 이명박은 한국의 대통령이다 .–참 , 거짓 ? –시간이 내포됨

Page 8: 20130212 sqlinternal02 part2

Creating Propositions from Predicates

• 전체 정량자 (universal quantifier)– For all, …

• 존재 정량자 (existential quantifier)– For some,… – There exists …

• 특정한 값 대입

Page 9: 20130212 sqlinternal02 part2

The Law of Excluded Middle• 명제의 중간값은 없다 .• 언제나 참 / 거짓만 존재함

Page 10: 20130212 sqlinternal02 part2

AND / OR / NOT / XOR• 잘 보세요 .

Page 11: 20130212 sqlinternal02 part2

논리적 동치 (Logical Equivalence)• 같은 입력에 대해 항상 같은 참 / 거짓의

결과값이 나올 때 논리적으로 동치라고 함

Page 12: 20130212 sqlinternal02 part2

드 모르간의 법칙• 아주 옛날에 다 배웠죠 ?• 밴다이어 그램으로 열심히 그려보면

됩니다 . • 논리적으로 동치

Page 13: 20130212 sqlinternal02 part2

논리적 추론 방법 : Modus Ponens• 긍정 논법– p 이면 q 이다 . – q 의 참 거짓을 p 를 통해 판단함

Page 14: 20130212 sqlinternal02 part2

Contrapositive• 대우명제와 본 명제는 논리적으로 동치• 드 모르간 법칙에서 추론 가능

Page 15: 20130212 sqlinternal02 part2

Vacuous Truths• P→Q 문장은 P 가 거짓일 경우 무조건

참이 됨 –만약 1==0, 달은 치즈로 만들어졌다 . – 만약 그 수가 양수이면서 음수이면 , x 는

100 이다 .

Page 16: 20130212 sqlinternal02 part2

Negating Quantified Statements• 실무에서 주어진 값의 ‘역’을 찾으면 매우

쉽게 문제가 해결 될 수 있다 .–어떤 답이 아니라 답이 아닌 모든 것을 찾음

• 한정자의 부정–단순 부정은 한정자의 부정이 아님– ‘ 모든 책이 세일 중이다’의 부정 ?• 모든 책은 세일하지 않는다 .• 모든 책이 세일 중인 것은 아니다 .• 적어도 한 권의 책은 세일 중이 아니다 .

Page 17: 20130212 sqlinternal02 part2

Negating Quantified Statements• 1) ∀ 과∃의 교환• 2) P(x) 와 not P(x) 의 교환

Page 18: 20130212 sqlinternal02 part2

Multiple Quantification• 모든 미국의 사원이 적어도 한 번 주문을

처리한 고객들의 집합 S–쇼핑 중독분들의 집합 (?)

• 정의 ?– Set builder notation 으로 정의

• S 의 부정

Page 19: 20130212 sqlinternal02 part2

Alternatives and Generalizations• Boolean Algebra–비트연산• BIT 데이터 타입도 있음• &, |, ~, ^

• Three-values logic– true, false, UNKNOWN–비즈니스에서 unknown 은 havoc 을 유발– null?–차태욱은 몇 권의 데이터베이스 책을 가졌을까 ?• 0 or NULL 은 각각 다른 의미를 가짐

Page 20: 20130212 sqlinternal02 part2

Alternatives and Generalizations• Fuzzy Logic– 참이면 1– 거짓이면 0–절대적인 100% 가 아니라 적절한 값을 선택• 90% 의 진실• 2.5% 의 거짓

Page 21: 20130212 sqlinternal02 part2

Relations• 같은 도메인의 두 원소를 대입했을 때 참 /

거짓의 값이 결정되는 연산자

Page 22: 20130212 sqlinternal02 part2

Relations 의 특징

• = , <= , < 은 각각 어디에 속할까요 ?

Page 23: 20130212 sqlinternal02 part2

< Operator• Is it ok?

Page 24: 20130212 sqlinternal02 part2

< Operator

• How to fix it?

Page 25: 20130212 sqlinternal02 part2

A Practical Application• the set of all customers for whom

every employee from the USA has handled at least one order– set builder notation

–모든 사원이 적어도 하나 이상의 주문을 한 적이 있는 고객의 집합

–아까 그 집합입니다 .

Page 26: 20130212 sqlinternal02 part2
Page 27: 20130212 sqlinternal02 part2

A Practical Application• 사원이 3 명인 경우 S 의 원소인 c 는

다음 조건을 만족– e1 이 c 의 주문을 처리– e2 가 c 의 주문을 처리– e3 가 c 의 주문을 처리

• S 는 다음 조건을 모두 만족하는 집합– e1 이 처리한 주문의 고객들의 집합 C1– e2 가 처리한 주문의 고객들의 집합 C2– e3 가 처리한 주문의 고객들의 집합 C3 교집합

Page 28: 20130212 sqlinternal02 part2

A Practical Application• 특성함수–원소가 집합에 포함되면 1, 아니면 0• x ∈ S ⇔ 1S (X)= 1

–교집합의 특성함수 min(1S1, 1S2 , 1S3 )–합집합의 특성함수 max(1S1,1S2 , 1S3 )

• 특정 e 에 대한 c 의 특성함수를 만드는 쿼리–실습

Page 29: 20130212 sqlinternal02 part2

A Practical Application• Answer

Page 30: 20130212 sqlinternal02 part2

A Practical Application• 적어도 한명의 사원의 주문을 관리한 고객

중 모든 사원이 주문을 관리한 고객을 뺀 나머지 고객은 ?

• 더 좋은 쿼리는 없나요 ?–선착순 한 명 상품 ~

Page 31: 20130212 sqlinternal02 part2

부록

inside_ch2_lab.sqlTSQL2012.sql