
Habré以éã§ã¯ããªã¬ãŒã·ã§ãã«ä»£æ°ãšSQL
ããã°ãã°
è°è«ãããŸã
ã ããããã®åœ¢åŒäž»çŸ©ã®éã®é¢ä¿ã«çŠç¹ãåœãŠãããšã¯ããŸããããŸããã ãã®èšäºã§ã¯ãã¯ãšãªçè«ã®ãŸãã«æ ¹æºã§ããããªã¬ãŒã·ã§ãã«èšç®ããªã¬ãŒã·ã§ãã«ä»£æ°ãSQLèšèªã«ã€ããŠèª¬æããŸãã ç°¡åãªäŸã䜿çšããŠããããåæããã¯ãšãªã®åæãšäœæã®ããã«åœ¢åŒãåãæ¿ããããšãæçšã§ããããšã確èªããŸãã
仿¥ããªããããå¿
èŠãªã®ã§ããããïŒ ããŒã¿ã¢ããªã¹ããããŒã¿ããŒã¹ç®¡çè
ãããŒã¿ãæäœããå¿
èŠãããã ãã§ãªããå®éã«ã¯ïŒåïŒæ§é åããŒã¿ããäœããæœåºããããæ¢åã®ããŒã¿ã倿ãããããå¿
èŠã®ãã人ã¯ã»ãšãã©ããŸããã ã¯ãšãªèšèªãç¹å®ã®æ¹æ³ã§æ§é åãããŠããçç±ãããçè§£ããããããæèçã«äœ¿çšããã«ã¯ãåºç€ãšãªãã³ã¢ã«å¯ŸåŠããå¿
èŠããããŸãã 仿¥ã¯ããã«ã€ããŠã話ããŸãã
èšäºã®ã»ãšãã©ã¯ãçè«ãæ£ãã°ããããäŸã§æ§æãããŠããŸãã ã»ã¯ã·ã§ã³ã®æåŸã«ã¯ã远å è³æãžã®ãªã³ã¯ããããŸããèå³ããã人ã®ããã«ãæåŸã«ããã€ãã®æç®ãšã³ãŒã¹ããããŸãã
å
容
é¢ä¿ä»£æ°
ããŒãªãã¬ãŒã¿ãŒ
-ãªã¬ãŒã·ã§ã³AèªäœïŒããã§ã®ãªã¬ãŒã·ã§ã³ã¯è¡šããã³è¿°èªãšå矩ã§ãïŒã¯ããã«ããªã¬ãŒã·ã§ã³ä»£æ°ã®è¡šçŸã§ãããªã¬ãŒã·ã§ã³A
éžæïŒéžæãå¶éïŒ
-éžæïŒéžæãå¶éïŒãA-é¢ä¿ïŒè¿°èªã衚ïŒã
-è¡ïŒã¿ãã«ãã¬ã³ãŒããªã©ïŒã®éžæã«äœ¿çšãããããŒã«åŒ
éžæã¯åºæ¬çã«æ°Žå¹³ã®è¡ãã£ã«ã¿ãŒã§ããã€ãŸããåè¡ã«æ²¿ã£ãŠæ¡ä»¶ãæºãããŠãããã®ã ããæ®ãããšãæ³åã§ããŸãã
ã ããããããããããã®ç°¡åãªäŸïŒ

æåœ±
-屿§AãBã...ã®æåœ±ïŒæåœ±ïŒ åïŒå±æ§ïŒAãBã...ã®ã¿ãæ®ã£ãŠããããŒãã«ãè¿ããŸãã 以äžã®ç°¡åãªäŸã å®éãããã¯å±æ§ã«ãããã£ã«ã¿ãŒã§ãã ããæå³ãåçŽãã£ã«ã¿ãŒã§ãã

ååã倿Ž
-Aã«é¢ããŠåaã®ååãbã«å€æŽããŸãïŒå±æ§ãè¿°èªåŒæ°ãªã©ïŒã åå倿޿Œç®åã䜿çšãããšã代æ°ãå³å¯ã«è¡šçŸããããããšã瀺ã玳士ãžã®ãè¶2æ¯
ïŒ
ãã«ã«ãç©
-2ã€ã®é¢ä¿ã®ãã«ã«ãç©ãAãšBã®æååã®ãã¹ãŠã®å¯èœãªçµã¿åããã®å€§ããªæ¯çã

ã»ããæäœ
é¢ä¿ä»£æ°ã¯ãéåäžã®å€å
žçãªæŒç®åã®éåã®æ¡åŒµã§ãïŒé¢ä¿ã¯ãé åºä»ããããã¿ãã«ã®éåã§ããããã¯ãé åºä»ããããã¿ãã«ã®éåãšãŸã£ããçãããªãããšã«æ³šæããŠãã ããïŒã StudentMarkããŒãã«ïŒNameãMarkãSubjectãDateïŒããããã¿ãã«ïŒVasyaã5ãInformaticsã2010幎5æ5æ¥ïŒãé åºä»ããããŠãããšä»®å®ããŸã-æåã«ãæåã®ïŒokããŸãã¯ãŒãïŒäœçœ®ã®Nameè¡ã2çªç®ã®æŽæ°ã 3çªç®ã®è¡ãš4çªç®ã®æ¥ä»ã ããã«ãé åºä»ããããã¿ãã«èªäœïŒååãããŒã¯ãä»¶åãæ¥ä»ïŒã¯ãé¢ä¿ã®ãå
åŽãã«é åºä»ããããŠããŸããã
çµ±äž
-AãšBã®ãã¹ãŠã®è¡ã®çµåãå¶éã¯åã屿§ã§ã

亀差ç¹
-ç·ã®äº€å·®ãåãå¶é

å·®åã»ãã
-B-AãBã«ååšãããAã«ã¯ååšããªããã¹ãŠã®è¡ãåãå¶é

ïŒB \ A; A-å·ŠåŽãB-å³åŽïŒ
ãã«ããŒãªãã¬ãŒã¿ãŒ
-åå ïŒæ¥ç¶ïŒ; joinã¯ãããŒãã«AãšBã®2ã€ã®ã¬ã³ãŒããçµåããŸãããã ããããã2ã€ã®ã¬ã³ãŒãã«ã€ããŠæ¡ä»¶ÏãæºããããŠããå Žåã«éããŸãã

æºåéåã®ã¿ã¹ã¯
次ã®ã¹ããŒã ã§äœæ¥ããŸã

ïŒå³ã¯ãæ¬ããæç²ããŠããŸãïŒElmasriãNavathe-Fundamentals of Database systems;äžãäžã®å ŽåïŒæ¬ã匷ããå§ãããŸãã;æåŸã®éžæãåç
§ããŠãã ããïŒ
次ã«ãé¢ä¿ä»£æ°ã®ããã€ãã®ç°¡åãªåé¡ãèããŸãã
æåã®ã¿ã¹ã¯ã ãããžã§ã¯ãXã§é±ã«10æé以äžåã第5éšéã®å
šåŸæ¥å¡ã®ååãå°å·ããŸãã
ïŒäžéã®çµæã¯ãæ°ããé¢ä¿ã§ãç¶æãã§ããŸãããããã¯å¿
èŠãããŸãããïŒ
æåã®åé¡ã®è§£æ±ºçã é¢ä¿ä»£æ° 2çªç®ã®ã¿ã¹ã¯ã ãã©ã³ã¯ãªã³ã»ãŠã©ã³ãçŽæ¥çããå
šåŸæ¥å¡ã®ååãå°å·ããŸã ïŒãããŠã以äžã®ãœãªã¥ãŒã·ã§ã³ã§å°ããªééããèŠã€ããŸãïŒã
2çªç®ã®åé¡ã®è§£æ±ºçã é¢ä¿ä»£æ° 3çªç®ã®ã¿ã¹ã¯ã§ã¯ãæ°ããæŒç®åãéèšãã䜿çšããå¿
èŠããããŸãã äŸã§èããŠã¿ãŸãããïŒ
åãããžã§ã¯ãã«ã€ããŠããã¹ãŠã®åŸæ¥å¡ããã®ãããžã§ã¯ãã«è²»ãããååãšé±ãããã®ç·æéæ°ã衚瀺ããŸãã
3çªç®ã®åé¡ã®è§£æ±ºçã é¢ä¿ä»£æ° ã¯ãšãªã®åœ¢åŒã¯a F bïŒAïŒã§ããããšã«æ³šæããŠãã ãããaãbã¯åãAã¯æ¯çãaã¯éèšé¢æ°ïŒããšãã°ãSUMãMINãMAXãCOUNTãªã©ïŒã§ãã æ¬¡ã®ããã«èªã¿åããŸããåaã®åå€ã«ã€ããŠãbãã«ãŠã³ãããŸãã ã€ãŸããè€æ°ã®è¡ãåaã®1ã€ã®å€ã«å¯Ÿå¿ãããã®è¡ã»ããã®åbã®å€ã颿°ã«å
¥ããŠã察å¿ããå€ã§æ°ãã屿§fun_bãäœæã§ããŸãã
ãã®ã¯ãšãªã¯ããå€å
žçãªãé¢ä¿ä»£æ°ã§ã¯è¡šçŸã§ããŸããïŒéçŽæŒç®åFãªãïŒã ã€ãŸããã¹ããŒããæºããããŒã¿ããŒã¹ã«å¯ŸããŠæ£ããçããäžããåäžã®ã¯ãšãªãæžãããšã¯ã§ããŸããã
æ£ç¢ºã«äžããããçµæãç¶ããšããã§ãåŸã§åæããŸãããéèšãå«ãã¯ãšãªã¯èšç®ã®è€éãã®ããé«ãã¯ã©ã¹ã«å±ããããšã«æ³šæããããšãã§ããŸãã
ãã®èšäºã®åŸåã§ãåé¡ã®ããè峿·±ãäŸãæ€èšããŠåæããŸãã ããã§å©çšå¯èœãªè§£æ±ºçãåãããªã¬ãŒã·ã§ãã«ä»£æ°ã®åé¡ã®å°ããªéžæããããŸã
SQL
ãã®ããŒãã§ã¯ãSQLïŒæ§é åç
§äŒèšèªïŒã«ã€ããŠèª¬æããç°¡åãªäŸã䜿çšããŠSQLããªã¬ãŒã·ã§ãã«ä»£æ°ãšã©ã®ããã«äžèŽãããã瀺ããŸãã
æåã®ã¿ã¹ã¯ãããäžåºŠèããŠã¿ãŸãããã
æåã®ã¿ã¹ã¯ã ãããžã§ã¯ãXã§é±ã«10æé以äžåã第5éšéã®å
šåŸæ¥å¡ã®ååãå°å·ããŸãã
åŸæ¥ã®ãœãªã¥ãŒã·ã§ã³ã¯æ¬¡ã®ãšããã§ãã
å€å
žçãªãœãªã¥ãŒã·ã§ã³ã ãŸãã¯ã次ã®ããã«æžãããšãã§ããŸãã
ãŸãã¯ãŸã£ããå¥ã®æ¹æ³ïŒ
ïŒè¿œå ã®ãœãªã¥ãŒã·ã§ã³ã¯ãã¿ãã¬ã®äžã§ã¯åé€ãããŸããïŒ
SQLãšãªã¬ãŒã·ã§ãã«ä»£æ°ã®é¡äŒŒæ§ãæã
2çªç®ã®è§£æ±ºçã§ã¯ãé¢ä¿ä»£æ°ãšã®æç¢ºãªé¡äŒŒæ§ãèŠãããŸãã

çµåã«çåŒã䜿çšããŠãæåã®ãœãªã¥ãŒã·ã§ã³ã§ã®SQLãšé¢ä¿ä»£æ°ã®é¡äŒŒæ§ã確èªããŸãã

ã©ããªã«ç®èãªããšã§ããSQLã®SELECTã¯ãªã¬ãŒã·ã§ãã«ä»£æ°ã®ãããžã§ã¯ãïŒÏ;ãããžã§ã¯ã·ã§ã³ïŒã§ãã
次ã«ãéçŽã«é¢ããåé¡ãæ€èšããããããªã¬ãŒã·ã§ãã«ä»£æ°ã®ãœãªã¥ãŒã·ã§ã³ãšæ¯èŒããŸãã

èšäºã®åŸåã§ããã«è峿·±ãã¿ã¹ã¯ãæ€èšãïŒ ããã§ãå°ããªéžæïŒãå¥ã®ã¯ãšãªåœ¢åŒãæ€èšããŸãã
é¢ä¿èšç®
æ°é
ãã®ããèªè
ã¯ä»ãå«ã¶ãããããŸããïŒã€ã®ã¯ãã¿ã³ã¢ã³ãŒãã£ãªã³ãšã¯äœã§ããïŒ ããã«ããã®ã¯ãã¯ãšãªãèšè¿°ããããã®2ã€ã®åœ¢åŒãååã§ã¯ãªããšããããšã§ãã
ãªã¬ãŒã·ã§ãã«èšç®ã¯ãã¯ãšãªãèšè¿°ããããã®1次è«çïŒFOLïŒ1次è«çïŒã®é©å¿ã§ãã FOLã¯æ°åŠã®æãããç ââç©¶ããã圢åŒã®1ã€ã§ãããã¯ãšãªã®åæãšèšè¿°ã«ãã§ã«äœæãããçè«çãªè£
眮ãšå€å
žçãªçµæã䜿çšããããšãå¯èœã«ããŸãã
å€ãã®å Žåãè€éããè¡šçŸæ§ãããã³ã¯ãšãªã®åœ¢æãè«çããããŒã¿ããŒã¹ã«ããããããŸããããã¯ããŸãã«ãªã¬ãŒã·ã§ãã«èšç®ã®ããã§ãããããã£ãŠããã®åœ¢åŒã«æ
£ãã䟡å€ããããŸãã
é¢ä¿èšç®ãè§£æããŠè©±ãã«ã¯ã ããã§æŽæ°ã§ãã1次è«çãå¿
èŠã§ã ã
ÏïŒXïŒãäžæ¬¡åŒãXãèªç±å€æ°ãããªãã¡ããããã¯æ°éåãããŠããŸããïŒâã¯æ±çšæ°éè©ãâã¯ååšæ°éè©ã§ãïŒã®ã§ãé¢ä¿èšç®ã®ã¯ãšãªã¯ã»ãããå®çŸ©ããŸãïŒ
{X | ÏïŒXïŒ}
圢åŒãåæããç°¡åãªäŸãèããŠã¿ãŸãããã
Rã3ã€ã®å±æ§aãbãcãæã€é¢ä¿ãšããŸãã æ¬¡ã«ã次ã®ãªã¬ãŒã·ã§ãã«ä»£æ°ã¯ãšãªãæžãæããŸãã
ãªã¬ãŒã·ã§ãã«çšèªã§ïŒ
{raãrbãrc | R®ããã³ra = rc}
åçŽãªèšèªã«ç¿»èš³ãããšãrã¯Rã®ã¿ãã«ã§ãïŒã€ãŸããååããããã§å€ãååŸã§ãã屿§ãæã€æååã§ããã€ãŸããraã¯RïŒããŒãã«ïŒã«å¯Ÿããã¿ãã«rïŒæååïŒã®å±æ§ã§ãïŒã ã芧ã®ãšãããrã¯ãªã¯ãšã¹ãã®åºåã«ãããããªãŒã®ã¿ãã«ã§ããå¿
èŠããããããããã«ã¯æ°éè©ã¯ãããŸããã
å¥ã®ç°¡åãªäŸãèããŠã¿ãŸãããïŒRïŒaãbãcïŒâ SïŒcãdãeïŒãããã§*ã¯èªç¶ãªçµåãããªãã¡ ååã§çµå-çµåæ¡ä»¶ãšåãååã®å±æ§ãååŸããŸãã
{rAãrBãrCãsDãsE | R®ããã³SïŒsïŒããã³rC = sC}
sDãšSeãåºåãã©ã¡ãŒã¿ãŒã«å«ãŸããŠããªãå Žåããªã¯ãšã¹ãã¯æ¬¡ã®åœ¢åŒã«ãªããŸãã
{rAãrBãrC | R®ããã³âsïŒSïŒsïŒããã³rC = sC}
Sã¯ãªã¯ãšã¹ãã®ãããã£ãã«ã®ã¿å«ãŸããŠãããããååšã®éæå®åãé
眮ããå¿
èŠããããŸãã
ãã®ãããªã¯ãšãªãã³ã³ãã€ã«ãããšããæ¬¡ã®åŒãïŒãã£ã±ã説æãšããŠïŒæžãå Žåãæ®éæ§ã®éæå®åã«åžžã«æ³šæããå¿
èŠããããŸãã
{rA | R®ããã³âsïŒSïŒsïŒããã³rC = sCããã³sE = "banana"}
ã¯ãšãªæ¡ä»¶ãæºããããããã«ã¯ãé·ã3ã®ã¯ãŒã«ãã®åã¿ãã«ãSã«å±ããæåŸã®å±æ§ãbananaãã®å€ãæã£ãŠããå¿
èŠãããããããã®ã¯ãšãªã¯åžžã«ç©ºã®ã»ãããè¿ããŸãã
éåžžã嫿ã=>ãã¯æ±çšæ°éè©ãšäžç·ã«äœ¿çšãããã¯ãšãªã次ã®ããã«æžãæããããšãã§ããŸãã
{rA | R®ããã³âsïŒïŒSïŒsïŒããã³rC = sCïŒ=> sE = "banana"}
sãSã«å±ããCã®å€ãRã®CãšäžèŽããå ŽåãæåŸã®å±æ§ã¯bananaã«èšå®ããå¿
èŠããããŸãã
ããã§ã¯ãè§£ãå«ããªã¬ãŒã·ã§ãã«èšç®ã®åé¡ã®ç°¡åãªéžæãèŠã€ããããšãã§ããŸãã
圢åŒã®å¹³çïŒã³ããã®å®çïŒ
ç°¡åã«èšãã°ãCoddã®å®çã¯æ¬¡ã®ããã«èãããŸãã3ã€ã®SQL圢åŒãé¢ä¿ä»£æ°ãé¢ä¿èšç®ã¯ãã¹ãŠåçã§ãã ããã«èå³ããã人ã®ããã®å€ãã®çè«ããããŸã
ã€ãŸããããèšèªã§è¡šçŸãããèŠæ±ã¯ãå¥ã®èšèªã§åå®åŒåã§ããŸãã ãã®çµæã¯ãã¯ãšãªåæã«æã䟿å©ãªåœ¢åŒã䜿çšã§ãããšããç¹ã§äž»ã«äŸ¿å©ã§ããæ¬¡ã«ã宣èšåSQLèšèªãšé¢ä¿èšç®ãåœä»€é¢ä¿ä»£æ°ã«æ¥ç¶ããŸãã ã€ãŸããã¯ãšãªãSQLãããªã¬ãŒã·ã§ãã«ä»£æ°ã«å€æãããšãã¯ãšãªãå®è¡ïŒããã³æé©åïŒããæ¹æ³ãæ¢ã«åŸãããŠããŸãã
çµåã¯ãšãªïŒCQïŒ
é¢ä¿ä»£æ°ã®selectïŒÏïŒ-projectïŒÏïŒ-joinïŒâïŒã»ã°ã¡ã³ãã§æ§æãããã¯ãšãªã¯ãçµåã¯ãšãªãšåŒã°ããŸãïŒããããŸãããååã®å€æŽã¯çç¥ããæé»çã«ååšãããšèŠãªããŸãïŒã
ãã®è¡ãŸã§èªãã å Žåãããã3ã€ã®æŒç®åïŒãã¡ãããé¢ä¿ïŒã®ã¿ã䜿çšããŠã次ã®åé¡ã解決ããŠãã ããã
ãã£ã¬ã³ãžã åãããžã§ã¯ãã§åããã¹ãŠã®åŸæ¥å¡ã®ååãå°å·ããŸãã
解決çããã¯äžå¯èœã§ãã ãªãèªãã§ãã ããã
ãã®ã¯ã©ã¹ã®ãªã¬ãŒã·ã§ãã«ä»£æ°ãå±ããSQLããã³ãªã¬ãŒã·ã§ãã«èšç®ã®ã©ã®ã»ã°ã¡ã³ãã«ã€ããŠèããŸãã
èšç®ã®è€éã
ã¯ãšãªã®èšç®ã®è€éããæž¬å®ããæ¹æ³ã¯ããã€ããããŸããããããã¯ãã°ãã°æ··åããããããå®çŸ©ãšãã®ååãæžããŸãã
Qãã¯ãšãªãDãããŒã¿ããŒã¹ãQïŒDïŒãšãã
- Qãåºå®ãããŠããå ŽåãfïŒDïŒã®èšç®ã®è€éãã¯ããŒã¿ã®è€éããšåŒã°ããŸã
- Dãåºå®ãããŠããå ŽåãfïŒQïŒã®èšç®ã®è€éãã¯ã¯ãšãªã®è€éããšåŒã°ããŸãã
- äœãåºå®ãããŠããªãå Žåãè€é床fïŒQãDïŒã¯è€åè€é床ãšåŒã°ããŸã
éèŠãªäºå®ïŒ ããŒã¿ ïŒããã³ãã®ä»ãã¹ãŠïŒã«å¿ãã SQLã®è€é床ã¯ã¯ã©ã¹AC0ã«å±ããŸã-ããã¯éåžžã«åªããè€é床ã¯ã©ã¹ã§ããã€ãŸããã¯ãšãªãéåžžã«å¹ççã«èšç®ã§ããŸãã
çè«çãªèгç¹ããããã®åçãèŠãããšãã§ããŸãïŒ

AC0ã¯NLå
ã«ãããŸãïŒããæ£ç¢ºã«ã¯ãNLå
ã®NCãã¬ã€ã€ãŒãã®1ã€å
ã«ãããŸãïŒã
èšç®ã®è€éãã«é¢é£ããæ¬¡ã®è峿·±ã質åãèããŠã¿ãŸããããfãåŒã®å
è¶³å¯èœæ§é¢æ°ãã€ãŸããã¯ãšãªããšã«QïŒDïŒãçã«ãªããããªããŒã¿ããŒã¹ããããã©ããã調ã¹ãŸãã Coddã®å®çãããé¢ä¿ä»£æ°ãšSQLã¯é¢ä¿èšç®ãšåçã§ããããšãããããŸãã ããã¯ãfã®èšç®ã忢åé¡ã«çžåœããããšãæå³ããŸãïŒSATã¯1次è«çã§ã¯èšç®ã§ããŸããïŒã ãããã£ãŠãä»»æã®SQLã¯ãšãªã®äžè²«æ§ã倿ã§ããã¢ã«ãŽãªãºã ã¯ãããŸããã
èå³ã®ãã人ã«ã¯ã以äžããå§ãããŸãïŒ Trachtenbrotã®å®ç
å°é£ãªé£èšã¯ãšãª
CQã¯ãããŒã¿ããŒã¹ã¯ãšãªã®å€§éšåãæ§æãããããæãããç ââç©¶ãããŠããã¯ãšãªã¯ã©ã¹ã®1ã€ã§ãïŒ1ã€ã®ãã¬ãŒã³ããŒã·ã§ã³ã§90ïŒ
ã®æ°å€ãèŠãŸããããä»ã¯ãœãŒã¹ãèŠã€ããããšãã§ããŸããïŒã ãããã£ãŠããããã®è€éããããè©³çŽ°ã«æ€èšããå®éã«ãããã®è€åãããè€éãã¯NPã«çããããšã蚌æããŸãã ã¿ã¹ã¯ã¯NPå®äºã§ãã ïŒ ãããšããã§ NPå
šäœãèªãããšãã§ããŸã ãïŒ
ãããè¡ãã«ã¯ããªã¬ãŒã·ã§ãã«èšç®ã§ä»»æã®CQã¯ãšãªã次ã®åœ¢åŒã§èšè¿°ããŸãã
{X | [âX0ïŒ] p0ïŒX0ïŒããã³[âX1ïŒ] p1ïŒX1ïŒããã³[âX1ïŒ] pïŒX2ïŒ...}
ããã§ã[ã]ã¯æ°éè©ã®ãªãã·ã§ã³ã§ãã ãªããã®ãããªè¡šçŸãåžžã«æå¹ãªã®ã§ããïŒ ããã§ã®ãããžã§ã¯ãã¯åžžã«Xã§è¡šçŸã§ããããã§ãã
ãçµåã¯å€æ°ã®çåŒãéããŠè¡šçŸãããŸã
ãããã³äžã®æ¡ä»¶ãéžæããŸã
ãªã¯ãšã¹ãã®æ¬æã
åé¡ãNPå®å
šã®ã¯ã©ã¹ã«å±ããããšã瀺ãã«ã¯ã2ã€ã®ããšãè¡ãå¿
èŠããããŸã
- NPã¯ã©ã¹å
ã®ã¿ã¹ã¯ã衚瀺
- NPå®å
šåé¡ãæå®ã®å€ã«æžå°ããããšã瀺ã
æåã®æ¡ä»¶ã¯ç°¡åã«æºããããŸããé¢ä¿ã®å€ã¯æéã§ããããïŒã€ãŸããããããçš®é¡ã®å¯èœãªå€ã®ã»ããïŒã颿°ãéæ±ºå®çã«ãæšæž¬ãã§ããŸãã
ãã®ããã«ãååšã®æ°éè©ã®äžã§ãã¹ãŠã®é¢ä¿ãçã«ãªããŸãã
ã°ã©ãã®è²ã®åé¡ã¯ãCQã¯ãšãªã®å®è¡å¯èœæ§ã®åé¡ã«åž°çããããšã瀺ããŸãã
Dã1ã€ã®é¢ä¿ãšããžã§æ§æãã= {ïŒredãgreenïŒãïŒgreenãredïŒãïŒblueãredïŒãïŒgreenãblueïŒ...}-2ã€ã®é ç¹ãåãè²ãæããªãããã«ãã°ã©ãã®å¯èœãªãã¹ãŠã®æ£ããè²ä»ãã
åæã°ã©ãã¯ãšããžã®ã»ãããšããŠäžããããŸã 
次ã«ã次ã®ã¯ãšãªãæžãçããŸã
{ïŒïŒ| âX0...âXNïŒãšããžïŒV1ãV2ïŒããã³...ãšããžïŒV_iãV_jïŒ...}
ã€ãŸããã¯ãšãªã®ãœãŒã¹ã°ã©ãã®åã¢ãŒã¯ã¯ã察å¿ããåŒæ°ãšã®ãšããžé¢ä¿ã«å¯Ÿå¿ããŸãã ã¯ãšãªã空ã®ã¿ãã«ãè¿ããå Žåããã®ãããªé¢æ°ãããããšãæå³ããŸã
衚瀺ãã
ãããã«ã2ã€ã®é ç¹ãåãè²ãæã€ããšã¯ãããŸããïŒDã®å®çŸ©ã«åŸãïŒã C.T.D.
ã¢ã¹ã¿ãªã¹ã¯ä»ãã®è³ªåïŒselect-project-joinã»ã°ã¡ã³ããããããžã§ã¯ããé€å€ããŸããèšç®ã®è€éãã¯ã©ã®ããã«å€ãããŸããïŒ
æšç§»éå
ããŒã¿ããã³ã¯ãšãªã«ããè€éãã®å®çŸ©ã¯ã1ã€ã®ããç¥ãããŠããçµæã«ãå
ãåœãŠãŸã-å€å
žçãªSQLïŒwithãªãïŒã§ã¯ãåºå®ã¯ãšãªã§
ã¯æšç§»çéå
ã¯è¡šçŸã§ããŸããã ããŒã¿ããŒã¹ã«å¯ŸããŠè¿°èªéå
ãèšç®ãããããªã¯ãšãªãæžãããšã¯ã§ããŸããã ã€ãŸãããšããžé¢ä¿ãšããŠä¿åãããã°ã©ããããå Žåãä»»æã®ã°ã©ãã®å°éå¯èœæ§é¢ä¿ãèšç®ããåºå®ã¯ãšãªãèšè¿°ã§ããŸããã çŽæçã«ã¯ããã®ãããªèŠæ±ã¯æããã«CQã¯ã©ã¹ã«ããã¯ãã§ãã
ããã¯ããããŒã¿ã«ãããèšç®ã®è€éãããããŸãã¯ãã建èšçãã€è峿·±ãããšã«
ãã³ã³ãã¯ãæ§å®çãšCoddã®å®çïŒSQL = First Order LogicïŒããããããŸãã
蚌æã¯èªæã§ã¯ãªãããããªãè³æã®çè§£ã倱ãããšãªãã¹ãããããããšãã§ããŸãã
蚌æ ã®ã¹ã±ããã³ã³ãã¯ãæ§å®çïŒãã®ã»ããã®æéãµãã»ãããå®è¡å¯èœãªå Žåã«éããç¡éã®ã»ããã®åŒã¯å®è¡å¯èœã§ãïŒã¢ãã«ãããããã¹ãŠã®åŒãçã§ãããšããè§£éããããŸãïŒã
GödelïŒ 1次è«çã¯ã³ã³ãã¯ãã§ãã
CoddïŒSQL-äžæ¬¡ããžãã¯
éã®èšŒæãšããŠãTïŒaãbïŒãaããbãžã®ãã¹ãšããã P_nïŒaãbïŒã¯ãé·ãnã®aããbãžã®ãã¹ã§ãã æ¬¡ã«ãP_nïŒaãbïŒ-aããé·ãnã®bãžã®ãã¹ã¯ãããŸããã
æ¬¡ã®æééåãåã{TïŒaãbïŒããP_1ïŒaãbïŒããP_2ïŒaãbïŒ...ãP_kïŒaãbïŒ}-ããã¯å®è¡å¯èœã§ãããªããªããé·ãk + 1ãšTã®ãã¹ãåãããã§ãïŒaãbïŒãæºãããããã¹ãŠã®ãP_1 ...ãP_kãæºããããŸãã ããã«ããã®çš®ã®æééåã¯å
è¶³å¯èœã§ããããããã£ãŠãã³ã³ãã¯ãæ§å®çã«ããããããã®ç¡éçµåãå®çŸå¯èœã§ãªããã°ãªããŸããã
ãã ãããP_k-ãã¹ãŠã®kã«å¯ŸããŠtrueã§ãªããã°ãªããŸãããã€ãŸããaããbãŸã§ã®é·ãã®ãã¹ãååšããŠã¯ãªãããTïŒaãbïŒãååšããã«ã¯ããã®ãããªãã¹ãååšããå¿
èŠããããŸãã è«äºã QED
èŠæ±ãä¿®æ£ãããªãå Žåãã¿ã¹ã¯ã¯ç°¡åã«è§£æ±ºå¯èœã«ãªããŸãã ããŒã¿ããŒã¹ã«kãšããžãããªããã€ãŸãæå€§ãã¹ãæå€§kã§ãããšä»®å®ãããšãã¯ãšãªãé·ã1ã2ã... kã®ãã¹ã®ãŠããªã³ãšããŠæç€ºçã«èšè¿°ããã°ã©ãã®å°éå¯èœæ§ãèšç®ããã¯ãšãªãååŸã§ããŸãã
ã¯ãšãªã®ããããã£ãšåæ
ããŠãåã«ææ¡ããåé¡ã«æ»ããŸãããã
åãããžã§ã¯ãã§åããã¹ãŠã®åŸæ¥å¡ã®ååãå°å·ããŸãã
ãã®åé¡ãCQã¯ã©ã¹ã§è§£æ±ºããªãçç±ã¯ããªã¯ãšã¹ãèªäœãšCQã¯ã©ã¹ã®äž»èŠãªããããã£ãå®çŸ©ããããšã§çè§£ã§ããŸãã
å®çŸ©ãQã¯ãšãªã¯ãä»»æã®2ã€ã®ããŒã¿ããŒã¹ã«å¯ŸããŠãã¢ãããŒã³ãšåŒã°ããŸãã
ããã¯æ¬åœã§ã
ã ã€ãŸããããŒã¿ããŒã¹ã®å¢å ã¯ãåºåå
ã®ã¿ãã«ã®æ°ãå¢ãããããã®ãŸãŸã«ããããšãã§ããŸãã
芳å¯ïŒCQã¯å調ã«å¢å ããã¯ãšãªã®ã¯ã©ã¹ã§ãã ä»»æã®CQã¯ãšãªQãæ³åããŠãã ãã-select-project-joinã§æ§æãããŠããŸãã ãããããå調æŒç®åã§ããããšã瀺ããŸãã
Dã«å¥ã®ãšã³ããªã远å ããŸããã
select-ã¬ã³ãŒããåçŽæ¹åã«ãã£ã«ã¿ãŒããŸããæ°ããã¬ã³ãŒããèŠæ±ãæºããå Žåãåçã®ã»ããã¯å¢å ããããã§ãªãå Žåã¯åããŸãŸã§ãã
ãããžã§ã¯ã-远å ã®ã¿ãã«ã«ã¯åœ±é¿ããŸãã
join-察å¿ããã¬ã³ãŒãã2çªç®ã®ã»ããã«ãããå Žåãå¿çã»ããã¯æ¡åŒµãããããã§ãªãå Žåã¯åããŸãŸã«ãªããŸãã
å調æŒç®åã®éãåããã¯å調ã§ã=> CQã¯å調ã¯ãšãªã®ã¯ã©ã¹ã§ãã
質åïŒå
ã®åé¡ã¯å調ã§ããïŒ ããã§ããªãã 2人ã®ãããžã§ã¯ãAãšBã§äœæ¥ããŠããåŸæ¥å¡Petyaã1人ã ãã§ãAãšBã®ãããžã§ã¯ãã2ã€ãããªããããPetyaããªã¯ãšã¹ããçºè¡ããå¿
èŠããããšããŸãã 3çªç®ã®ãããžã§ã¯ãC =>ã远å ããPetyaãåçã«å«ãŸããŠããããå¿çã»ããã空ã§ãããšä»®å®ããŸããããã¯ãã¯ãšãªãå調ã§ã¯ãªãããšãæå³ããŸãã
ããããæ¬¡ã®è³ªåãè«ççã«ç¶ããŸãïŒè§£æ±ºããã¿ã¹ã¯ã®ããã«select-project-joinã«è¿œå ããå¿
èŠããããã®ã¯äœã§ããïŒ ããã¯éå調ã§ãªããã°ãªããŸããïŒ
ãã¡ããèªè
ãæšæž¬ããããã«ãéãã¯ã»ããã§ãã 圌ã®é察称æ§ã¯ç§ãã¡ãä¿ããæåãã圌ãéç«ãããããã«èŠããŸããã
ãã ãããœãªã¥ãŒã·ã§ã³ãäœæããåã«ããã1ã€èгå¯ããŸããã¹ããŒãã¡ã³ãã®åäŸãååšããªãå Žåããã®ã¹ããŒãã¡ã³ãã¯åžžã«çã§ãã æ£åŒã«ïŒ
-pïŒxïŒãåœã§ãããããªxã¯ãããŸããã
ã¿ã¹ã¯ã§ã¯ãæç€ºçã«ããã¹ãŠãã®æ°éè©ã確èªããäºéåŠå®ã䜿çšããŠããããšãã¥ã¬ãŒãã§ããŸããã€ãŸããæ¬¡ã®ããã«ã¯ãšãªãèšãæããŸãã äœæ¥ããŠããªããããžã§ã¯ãããªããã¹ãŠã®åŸæ¥å¡ã®ååã衚瀺ããŸã

ãã®åããªã¯ãšã¹ãã¯ãä¿¡ããããªãã»ã©ã·ã³ãã«ã«èŠããŸã
ïŒãããŠãããã¯ãªã¬ãŒã·ã§ãã«çšèªã§ãïŒïŒ
{e.fnameãe.lname | EMPïŒeïŒããã³
PRJïŒpïŒ
WORKS_ONïŒwïŒããã³w.Pno = p.Pnumberããã³e.Ssn = w.Essn}
ã¯ãšãªã®æé©åã«RAã䜿çšããäŸ
ãŸããSQLããªã¬ãŒã·ã§ãã«ä»£æ°ã«å€æãããšãã¯ãšãªã®å®è¡ãæé©åã§ããŸãã ç°¡åãªäŸãèããŠã¿ãŸãããã
ææŠãã
Schmidtãšããååã®åŸæ¥å¡ããã®ãããžã§ã¯ãã管çããéšéã®ãããŒãžã£ãŒãšããŠåããã¹ãŠã®ãããžã§ã¯ãçªå·ã衚瀺ããŸãã
å
ã®æèšãããžã§ã¯ãã管çããéšéã®ãããŒãžã£ãŒãšããŠå§ãSmithã§ããåŸæ¥å¡ãé¢äžãããããžã§ã¯ãã®ãã¹ãŠã®ãããžã§ã¯ãçªå·ããªã¹ããã
ç°¡åãªè§£æ±ºçã¯æ¬¡ã®ãšããã§ãã

ããã¯ã次ã®ããã«ãªã¬ãŒã·ã§ãã«ä»£æ°ã§æžãçŽãããšãã§ããŸãã

æåã®æé©å-ã§ããã ãæ©ãselectã䜿çšããå¿
èŠãããå Žåããã«ã«ãç©ã¯å
¥åã§ããå°ããªé¢ä¿ãåãåããŸãã

çåŒå®æ°ã䜿çšããéžæã¯åŒ·åãªå¶çŽã§ãããããã§ããã ãæ©ãèšç®ããŠæ¥ç¶ããå¿
èŠããããŸãã

ãã«ã«ãç©ããªãã«ããŠãçµåã§éžæããŸãïŒããã¯ãã€ã³ããã¯ã¹ãšç¹æ®ãªããŒã¿æ§é ã§å¹ççã«å®è£
ãããŸãïŒ

å¿
èŠãªæ
å ±ã ããããªãŒã«æž¡ãããããã«ããããžã§ã¯ããå¯èœãªéãäœãããŸã

èªå·±å®£äŒã®ç¬éããŒã¿ãµã€ãšã³ã¹ãããã°ããŒã¿ãæ©æ¢°åŠç¿ãããŒã¿ãã€ãã³ã°-
æžã蟌ã¿ã«ã¯è峿·±ãã¿ã¹ã¯ããã
ãŸã ã
æåŠãè³æãã¹ã©ã€ã
ã¹ã¿ã³ãã©ãŒããªã³ã©ã€ã³ã³ãŒã¹-ãžã§ããã¡ãŒãŠã£ãã -çŽ æŽãããã³ãŒã¹ããå§ã
ã¢ãªã¹ã®æ¬-ã»ã«ãžã¥ã¢ããããŒã« -ãžã£ã³ã«ã®å€å
ž
Martin Graber-SQL -SQLã¢ã«ãŽãªãºã ãšæ§æãã©ã®ããã«æ©èœãããã«ã€ããŠã®ããªãã·ã³ãã«ã§è©³çްãªèª¬æ
P-NPã«é¢ããHabraã®èšäº-å
¥éè³æããŒã1ããã³2
ãããã¯ã«é¢ããç§ã®ã¹ã©ã€ãïŒããŸããŸãªåœ¢åŒã®åé¡ã解決ããäŸããããããéåžžã«åœ¹ç«ã¡ãŸã-ãªã©ã³ãèªãšè±èªãæ··åšããå ŽåããããŸãïŒ
è¯ãçè«ã®ã¹ã©ã€ãïŒéèŠãªçè«çè³æïŒ