9.DB - YukaKoshiba/MyknowledgeDocs GitHub Wiki
DB @Japanese Version
Create DateïŒ2025/3/31
Last Update DateïŒ2025/4/23
DBïŒ
DBã®çš®é¡ïŒ Relational Databases(RDB)ã NoSQLã Flat-File Database
DBMSïŒ
DBMSã®æ©èœ (
ãã©ã³ã¶ã¯ã·ã§ã³ç®¡çã
index(玢åŒ)ã
ã·ããã )
RDBMSã
ãªããã£ãã€ã¶
SQLite
)
ããŒã¿ããŒã¹ãã¡ã€ã«
ããŒã¿ãœãŒã¹ïŒã IMDb
æ å ±ãæäŸããããã®ããŒã¿ã®éåäœ
- DBãµãŒãïŒDBãšDBMSã®åäœãããã³ã³ãã¥ãŒã¿ã®ããš
- Query(ã¯ãšãª)
åãåãããšããæå³ã§ãããŒã¿ããŒã¹ã«å¯ŸããŠç¹å®ã®æ å ±ãèŠæ±ããåœä»€ã®ããš
æãäžè¬çãªã¯ãšãªã¯ãSQLãçšããŠèšè¿°ãããããŒã¿ããŒã¹ãžã®åãåããã§ã
SQLã§èšè¿°ãããã¯ãšãªã¯ãSQã¯ãšãªãšåŒã¶ - ã¬ãŒã¹ã³ã³ãã£ã·ã§ã³
è€æ°ã®åŠçãåæã«åãããŒã¿ã«ã¢ã¯ã»ã¹ãã倿Žããããšããéã«çºçããåé¡
åŠçã®å®è¡é åºã«ãã£ãŠçµæãç°ãªããããŒã¿ã®æŽåæ§ã倱ãããå¯èœæ§ããã - ã¹ããŒã(Schema)
ããŒã¿ããŒã¹ãªããžã§ã¯ã(ããŒãã«,ãã¥ãŒ,ã€ã³ããã¯ã¹ãªã©)ã®æ§é ãå®çŸ©ã®éãŸã
ããå ·äœçã«ã¯ã以äžã®ãããªæ å ±ãå«ã
ã»ããŒãã«ã®æ§æ(ã«ã©ã å,ããŒã¿å,å¶çŽãªã©)
ã»ãã¥ãŒã®å®çŸ©
ã»ã€ã³ããã¯ã¹ã®å®çŸ©
ã»ã¹ãã¢ãããã·ãŒãžã£ã颿°ãªã©ã®å®çŸ©
ã¹ããŒãã¯ãDBMSãªããžã§ã¯ããè«ççã«ã°ã«ãŒãåãã管çããããã®åå空éãšããŠãæ©èœãã
DBMSã«ãã£ãŠã¯ãã¹ããŒãã¯ãŠãŒã¶ãŒãã¢ããªã±ãŒã·ã§ã³ããšã«äœæããããããããç¬ç«ããåå空éãæã€ããšãã§ãã
â»DBã®æ§é ã3ã€ã®ã¬ãã«ã«åããŠèããæŠå¿µã§ããäžå±€ã¹ããŒããšã¯å¥ã®æŠå¿µ - åå空é(Namespace)
èå¥å(ãªããžã§ã¯ãåãªã©)ã®äžææ§ãä¿èšŒããããã®ä»çµã¿
DBã«ãããŠãããŒãã«åããã¥ãŒåãªã©ãéè€ããªãããã«ãåå空éã«ãã£ãŠç®¡çãããŠãã
äŸãã°ãåãDBå ã«"customer"ãšããåãããŒãã«åããã£ããšããŠãã
éçºç°å¢ã«ååšããdevã¹ããŒããšæ¬çªç°å¢ã®prodã¹ããŒããæ··åšããªãæ§ã«ç®¡çãããŠãã
Create(çæ)ïŒæ°ããããŒã¿ãäœæããæäœ
Read(èªåã)ïŒæ¢åã®ããŒã¿ãåç
§ããæäœ
Update(æŽæ°)ïŒæ¢åã®ããŒã¿ã倿Žããæäœ
Delete(åé€)ïŒæ¢åã®ããŒã¿ãåé€ããæäœ
TableãšåŒã°ããæ§é ã®è¡ãšåã«ããŒã¿ãæ ŒçŽãã
RDBã«ãããæšæºçãªæäœèšèªã¯ãANSIã«ããSQL(æ§é åç
§äŒèšèª)ãæšæºåãããŠãããã»ãšãã©ã®RDBMSã§SQLãæ¡çšãããŠãã
ACIDç¹æ§ãæã¡ãããŒã¿ã®æŽåæ§ãä¿ã€ããã®å³æ Œãªã«ãŒã«ãæã€
å€ãã®äŒæ¥ãªã©ã§ã倧éã®ããŒã¿ãå¹ççã«ç®¡çããããã«ããã®æ¹æ³ãæ¡çšããŠãã
RDBã«ãããçè«çãªåºç€(æŠå¿µ)ã¯ãé¢ä¿ä»£æ°ã«åºã¥ããŠãããããŒã¿ã®æäœæ¹æ³ãæœè±¡çã«å®çŸ©ãããŠãã
é¢ä¿ä»£æ°ã®3ã€ã®æŠå¿µãåºã«ãå®éã«RDBãæäœããèšèªãšããŠSQLãéçºãããŠãã
ïŒSQLã¯é¢ä¿ä»£æ°ã§å®çŸ©ãããæŒç®ããå
·äœçãªæ§æã§è¡šçŸããããã®èšèª
| é¢ä¿ä»£æ° | æäœ | SQLå¥ |
|---|---|---|
| å°åœ±(Projection) | åã®åãåºã | SELECT |
| éžæ(Selection) | è¡ã®åãåºã | WHERE |
| >çµå(Join) | 1ã€ã®è¡šã«ãã | JOIN |
ããã°ããŒã¿ã®åºç€æè¡ãšããŠå©çšãããæ§ã
ãªåœ¢åŒã®ããŒã¿ãäžã€ã®ããŒã«å¯Ÿå¿ä»ããŠç®¡çããããŒããªã¥ãŒåããŒã¿ããŒã¹
æè»ãªããŒã¿æ§é ãæã¡ã倧éã®éæ§é åããŒã¿ãåæ§é åããŒã¿ãå¹ççã«åŠçã§ãã
ããŒã¿ãåäžã®ãã¡ã€ã«ã«æ ŒçŽããã·ã³ãã«ãªããŒã¿ããŒã¹åœ¢åŒ
åŸæ¥ã®ããŒã¿ããŒã¹ã·ã¹ãã ãšã¯ç°ãªããè€æ°ã®ããŒãã«ãè€éãªé¢ä¿æ§ãæãããããŒã¿ãåçŽãªæ§é ã§ç®¡çãã
ããŒã¿ã¯éåžžãããã¹ããã¡ã€ã«(CSVãTSVãªã©)ã«æ ŒçŽãããè¡ãšåã§æ§æãããããŒãã«åœ¢åŒã§è¡šçŸããã
åè¡ã1ã€ã®ã¬ã³ãŒãã衚ããååããã£ãŒã«ãã衚ã
ã¡ãªããïŒ
ã»ããŒã¿ããŒã¹ç®¡çã·ã¹ãã (DBMS)ã®ãããªè€éãªãœãããŠã§ã¢ãäžèŠã§ãç°¡åã«æ±ãã
ã»ããã¹ããã¡ã€ã«ãšããŠããŒã¿ãä¿åãããããç°ãªããã©ãããã©ãŒã ãã¢ããªã±ãŒã·ã§ã³éã§ããŒã¿ã容æã«å
±æã§ãã
ã»ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã«æ¯ã¹ãŠã¡ã¢ãªããã£ã¹ã¯å®¹éã®æ¶è²»éãå°ãªãããã軜éãªã·ã¹ãã ã«é©ããŠãã
ã»ããã¹ããã¡ã€ã«ãšããŠããŒã¿ãä¿åããããã人éãçŽæ¥ããŒã¿ãèªã¿æžãã§ãã
ãã¡ãªããïŒ
ã»ããŒã¿éãå¢å ãããšãæ€çŽ¢ãæŽæ°ãªã©ã®åŠçã«æéããããå Žåããã
ã»ããŒã¿ããŒã¹ç®¡çã·ã¹ãã ã®ãããªé«åºŠãªã»ãã¥ãªãã£æ©èœããªããããã»ãã¥ãªãã£å¯Ÿçãå¥éè¡ãå¿
èŠããã
ã»è€æ°ã®ããŒãã«ãæ±ãããšããè€éãªããŒã¿å士ã®é¢ä¿æ§ãæ±ãããšã¯é£ãã
çšéïŒ
ã»å°èŠæš¡ãªããŒã¿ç®¡çïŒå人çšã®ã¢ãã¬ã¹åž³ãèšå®ãã¡ã€ã«ãªã©
ã»å€§éã®ããã¹ãããŒã¿ã®ä¿åïŒã¢ããªã±ãŒã·ã§ã³ã®ãã°ãã¡ã€ã«ãªã©
ã»ç°ãªãã¢ããªã±ãŒã·ã§ã³éã§ããŒã¿ã亀æåœ¢åŒ
ãã¡ã€ã«åœ¢åŒäŸïŒ
ã»CSVãã¡ã€ã«ïŒã«ã³ãåºåãã®ããã¹ããã¡ã€ã«ã§ã衚圢åŒã®ããŒã¿ãä¿åãã
ã»TSVãã¡ã€ã«ïŒã¿ãåºåãã®ããã¹ããã¡ã€ã«ã§ã衚圢åŒã®ããŒã¿ãä¿åãã
ã»èšå®ãã¡ã€ã«ïŒã¢ããªã±ãŒã·ã§ã³ã®èšå®æ
å ±ãä¿åããããã«äœ¿çšããã
ããŒã¿ããŒã¹ãå¹ççã«äžå
管çããããã®ãœãããŠã§ã¢
ããŒã¿ã®ä¿åãæ€çŽ¢ãæŽæ°ãåé€ãªã©ã®æäœãå¹ççã«è¡ããããŒã¿ã®æŽåæ§ãã»ãã¥ãªãã£ãä¿ã€åœ¹å²ãæ
ã
DBMSã®ç¹åŸŽïŒ
DBMSã¯ããŒã¿ãåžžã«å®å
šãªç¶æ
ã«ä¿ãããèš±å¯ããã人ã ãã§ã¢ã¯ã»ã¹åºæ¥ãããšãä¿èšŒããå¿
èŠãããã以äž5ã€ã®ç¹åŸŽãæã€
- ããŒã¿ã®äŸçµŠïŒDBMSã«å¯Ÿããè€æ°ã®ã¢ããªã±ãŒã·ã§ã³ããåæã«åãåãããè¡ãããšãåºæ¥ã
- ã¢ã¯ã»ã¹å¶åŸ¡ïŒã¢ã¯ã»ã¹ã«èªèšŒãæ±ãã(ãã¹ã¯ãŒããå¿ èŠ)
- ããŒã¿ççŸã®æé€ïŒäžŠè¡åŠçãè¡ãããå Žåãåªå
床ãå®ããŠ1ã€ãã€åŠçãäºé
ãã
âããã¯ãæä»å¶åŸ¡(ä»ã®ãŠãŒã¶ã該åœããŒã¿ãæäœã§ããªã) - ããŒã¿ã®ã¢ããªã±ãŒã·ã§ã³ããã®ç¬ç«ïŒDBMSã¯DBã®ç®¡çã®ã¿è¡ããã¢ããªã±ãŒã·ã§ã³ã¯SQLæã§åãåãããè¡ãã®ã¿
- ããŒã¿å®å šæ§ã®ç¢ºä¿ïŒé害ãçºçããŠã埩æ§ããæ©èœ(ããã¯ã¢ãã)
DBMSã®çš®é¡ïŒ
- RDBMSïŒRDBã管çããããã®ãœãããŠã§ã¢
ãã©ã³ã¶ã¯ã·ã§ã³ãšã¯ãäžé£ã®DBæäœã1ã€ã®ãŸãšãŸããšããŠæ±ãä»çµã¿ããã³åäœã®ããš
SQLåŠçã®æå°åäœãå埩ã®åäœ(Unit of Re-cover)ãšãèšãã
以äžã®ããã«åŠçããããšã§ãå¹ççãªåŠçãšããŒã¿ã®æŽåæ§ãäž¡ç«ãããŠããïŒ
1.ãã©ã³ã¶ã¯ã·ã§ã³ã«ããããŒã¿ã®æŽæ°ã¯ããŸãã¡ã¢ãªäžã®ãããã¡ã«äžæçã«æžã蟌ãŸãã
âãã£ã¹ã¯ãžã®æžã蟌ã¿ãããã¡ã¢ãªãžã®æžã蟌ã¿ã®æ¹ãé«éã§ãããããåŠçã®å¹çåãå³ãã
2.ã¡ã¢ãªäžã®ãããã¡ã«æžã蟌ãŸããæŽæ°ããŒã¿ããã£ã¹ã¯äžã®ãã°ãã¡ã€ã«ãžé 次èšé²ãã
âã¡ã¢ãªäžã®ããŒã¿ã¯ãåé»ãã·ã¹ãã é害ãªã©ãçºçããå Žåã«å€±ãããŠããŸãå¯èœæ§ããã
ããã°ãã¡ã€ã«ã¯ãæŽæ°åŠçã®å±¥æŽãæç³»åé ã«èšé²ãããã®ã§ãã·ã¹ãã ã®åŸ©æ§æã«ããŒã¿ã®æŽåæ§ã埩å
ããããã«äœ¿çšããã
ãDBMSã¯ãããã¡ã«æžã蟌ãŸããæŽæ°ããŒã¿ããã£ã¹ã¯äžã®ãã°ãã¡ã€ã«ã«ãé æ¬¡èšé²ããé害çºçæã®ããŒã¿ç Žæãé²ã
ãã©ã³ã¶ã¯ã·ã§ã³ã®ACIDç¹æ§
ãã©ã³ã¶ã¯ã·ã§ã³ã¯ãæ¬æ¥ãACIDç¹æ§ãæºããäžé£ã®åŠçã®åäœãæããã
çŸå®ã«ã¯ããã¹ãŠã®ããŒã¿ããŒã¹ã·ã¹ãã ãå³å¯ã«ACIDç¹æ§ãå®è£
ããŠããããã§ã¯ãªã
ãã©ã³ã¶ã¯ã·ã§ã³ã®æŠå¿µã¯ãããšããšãªã¬ãŒã·ã§ãã«ããŒã¿ããŒã¹(RDB)ãäžå¿ã«çºå±ããŠãã
RDBã¯ãããŒã¿ã®æŽåæ§ãå³å¯ã«ä¿ã€å¿
èŠããããACIDç¹æ§ãéèŠèŠããã(ïŒACIDç¹æ§ã¯ãå³å¯ãªäžè²«æ§ãèŠæ±ããã)
ããããããã¯ããŒã¿ãé«éã«åŠçããããã«å©çšãããNoSQLããŒã¿ããŒã¹ãªã©ãæ§èœãå¯çšæ§ãéèŠããã·ã¹ãã ã§ã¯ãçµæçã«äžè²«æ§ãä¿ãããã°è¯ããšãã"çµææŽåæ§"ã®èãæ¹ãããŠããã
ACIDç¹æ§ã®äžéš(ç¹ã«äžè²«æ§ãç¬ç«æ§)ãç·©åããŠããå Žåããã
ãããã£ãŠãDBããã©ã³ã¶ã¯ã·ã§ã³åäœã§åŠçãè¡ã£ãŠãããšããŠããå¿
ãããACIDç¹æ§ãæã€ãšã¯ãããªã
| åç§° | ç¹åŸŽ |
|---|---|
|
Atomicity ååæ§ |
ãã©ã³ã¶ã¯ã·ã§ã³ã§ã¯ãå
šãŠã®åŠçãå®äºãã(All)ããå
šãå®è¡ãããªã(Nothing) ã©ã¡ããã§ããããš âCommitãšRollbackã§å®çŸã§ãã |
|
Consistency äžè²«æ§ |
ãã©ã³ã¶ã¯ã·ã§ã³ã®åŠçã«ãã£ãŠããŒã¿ããŒã¹å
ã®ããŒã¿ã«ççŸãçããªãããš ïŒåžžã«æŽåæ§ãããç¶æ ã«ä¿ãããããš |
|
Isolation ç¬ç«æ§/é颿§ |
è€æ°ãã©ã³ã¶ã¯ã·ã§ã³ãåæå®è¡æãšãé çªã«å®è¡ããå Žåã®çµæãçããããšãä¿èšŒãã ããŒã¿ã«ããã¯ããããŠããŒãã£ãªãŒããããŠãçŽåå®è¡ã·ãçµæãšåãã«ãªã â»ããŒãã£ãªãŒãïŒã³ããããããŠããªãããŒã¿ãèªã¿èŸŒãã§ããŸãããšã |
|
Durability èä¹ æ§ |
æ£åžžã«çµäºãããã©ã³ã¶ã¯ã·ã§ã³ã®æŽæ°çµæã¯ãé害ãçºçããŠãããŒã¿ããŒã¹ããæ¶å€±ããªãããš |
ããŒã¿ããŒã¹å
ã®ããŒã¿ãå¹ççã«æ€çŽ¢ããããã®ä»çµã¿
ïŒæžç±ã®ç®æ¬¡ã®ãããªãã®ã§ãç®æ¬¡ãããããšã§ç®çã®ããŒãžãçŽ æ©ãèŠã€ãããã
ã€ã³ããã¯ã¹ã¯ãç¹å®ã®å(ã«ã©ã )ã®å€ãããŒã«ããã®å€ã«å¯Ÿå¿ããããŒã¿ã®å Žæ(ãã€ã³ã¿)ãèšé²ããããŒã¿æ§é ã§
DBã¯ãã€ã³ããã¯ã¹ãåç
§ããããšã§ãç®çã®ããŒã¿ãæ ŒçŽãããŠããå Žæãç¹å®ããçŽæ¥ã¢ã¯ã»ã¹ã§ããããã«ãªã
ã€ã³ããã¯ã¹ã®çš®é¡ïŒ
DBMSã«ãã£ãŠããŸããŸãªçš®é¡ã®ã€ã³ããã¯ã¹ãæäŸãããŠãã
代衚çãªãã¯ã以äžã®éã
| çš®é¡ | 説æ |
|---|---|
| B-tree(B+æš) | æšæ§é ã䜿ã£ãŠããŒã¿ã管çããæ¹åŒã§ãå€ãã®DBMSã§æãäžè¬çãªã€ã³ããã¯ã¹ ç¯ããšã«ããŒå€ã®ç¯å²ãšãã®åèŠçŽ ãžã®ãã€ã³ã¿ãä¿æããŠãããç¯å²æ€çŽ¢ãã¹ã ãŒãºã«è¡ãã ã¢ã¯ã»ã¹åæ°ã®ãªãŒããŒã¯"log2X" æšæ§é ã®æ·±ããäžå®ã®çºãã©ã®ãããªããŒå€ã§ãã£ãŠãæ¢çŽ¢ã³ã¹ãã倧ããå€ãããªã â倧éã®ããŒã¿ã«å¯Ÿããæäœã§ãã£ãŠããããçšåºŠã®é床ãæåŸ ã§ãã ã€ã³ããã¯ã¹ããŒãã¯ãœãŒããããç¶æ ã«ãªã£ãŠããã®ã§æŽååŠçãé«éã«è¡ãã |
| ããã·ã¥ | ããã·ã¥é¢æ°ã䜿çšããŠããŒå€ãšã¬ã³ãŒãã®æ ŒçŽäœçœ®ãçŽæ¥é¢é£ä»ããæ¹åŒ ããŒå€ãããšã«ã¬ã³ãŒãã®æ ŒçŽäœçœ®ãäžæã«ç¹å®ã§ããB+æšã€ã³ããã¯ã¹ããé«éãªã¢ã¯ã»ã¹ãå¯èœ ç¯å²æ€çŽ¢ãããŒå€ãé çªã«èªã¿èŸŒãã§åŠçãè¡ãçšéã«ã¯äœ¿çšã§ããªã äžéšã®DBMSã§ã®ã¿ãµããŒã |
| å šæ | ããã¹ãããŒã¿å ã®ããŒã¯ãŒãæ€çŽ¢ã«ç¹å |
äžè¬çã«æ€çŽ¢å¯Ÿè±¡ãšãªãããŒã¿é
ç®ã«ã€ã³ããã¯ã¹ãä»äžããããšã§ãã¢ã¯ã»ã¹é床ãåäžãã
ãªãã¹ãéè€ã®ãªã倧éã®ããŒã¿ãã©ã³ãã ã«æ€çŽ¢ãããšãã«æã广ãçºæ®ããã
å°éã®ããŒã¿ããã®æ€çŽ¢ãéè€ã®å€ãããŒã¿ããã®æ€çŽ¢ãªã©ã¯é床ãäžããããéã«äœäžããå¯èœæ§ããã
ãã¡ãªããïŒ
ã»èšæ¶é åã®æ¶è²»ïŒã€ã³ããã¯ã¹ã¯ãå
ã®ããŒã¿ãšã¯å¥ã«èšæ¶é åãæ¶è²»ãã
ã»ããŒã¿æŽæ°æã®ãªãŒããŒãããïŒããŒã¿ã®è¿œå /æŽæ°/å逿ã«ãã€ã³ããã¯ã¹ã®æŽæ°ãå¿
èŠã«ãªããããåŠçé床ãäœäžããå Žåããã
ã»ã€ã³ããã¯ã¹ã®é©åãªèšèšãå¿
èŠïŒé©åãªã€ã³ããã¯ã¹ãèšèšããªããšãéã«ããã©ãŒãã³ã¹ãäœäžããå¯èœæ§ããã
ã€ã³ããã¯ã¹ãä»äžããã³ãïŒ
1.ã¢ã¯ã»ã¹é »åºŠã®é«ãé
ç®ã«ä»äžãã
2.æŽæ°é »åºŠã®å€ãé
ç®ã«ã¯èšå®ããªã
3.ã¬ã³ãŒãæ°ãå°ãªã衚ã§ã¯å¹æãçºæ®ããªãçºãã¬ã³ãŒãæ°ãèæ
®ãã
ããŒã¿ããŒã¹ãªããžã§ã¯ã(ããŒãã«,ãã¥ãŒ,ã·ãŒã±ã³ã¹ãªã©)ã«å¯Ÿããå¥åãä»äžããæ©èœ
å
ã®ãªããžã§ã¯ããžã®åç
§ãç°¡ç¥åããããã¢ã¯ã»ã¹æš©éãå¶åŸ¡ãããããããã«äœ¿çšããã
ããŒã¿ããŒã¹ã·ã¹ãã ã«ãã£ãŠã¯ãã·ããã ã®æ©èœãæäŸãããŠããªãå Žåããã
ã¡ãªããïŒ
ã»é·ãããŒãã«åãçãã·ããã ã§çœ®ãæããããšã§ãSQLã¯ãšãªãç°¡æœã«èšè¿°ã§ãã
ã»ã·ã¹ãã ã«ãã°ã€ã³ãããŠãŒã¶ããªããžã§ã¯ãã®ææè
ã®éããªã©ãã¹ããŒããæèããå¿
èŠããªããªã
ãïŒããŒãã«åã¯åãã§ãç°ãªãã¹ããŒã(åå空é)ã«å±ããŠããå Žåãã¹ããŒããæèããå¿
èŠããªã
ãäŸãã°ãéçºç°å¢ïŒDEVã¹ããŒãã®Tableãæ¬çªç°å¢ïŒPRODã¹ããŒãã®Table<ããã£ãå Žåã
ãã¹ããŒãããªãå ŽåïŒä»¥äžã®2è¡ãããããæžããªããã°ãã¬ã³ãŒããžã¢ã¯ã»ã¹ãã§ããªã<
ãSELECT * FROM DEV.Table<;/code>
ãSELECT * FROM PROD.Table;
ãã¹ããŒããããå ŽåïŒä»¥äžã®1è¡ã®ã¿ã§ãã¬ã³ãŒããžã¢ã¯ã»ã¹ãã§ãã<
ãSELECT * FROM SYN_Table;
RDBMSã®äžæ žçãªæ©èœã§ãSQLã¯ãšãªã®å®è¡èšç»ãæé©åãã圹å²ãæ
ã
SQLæãå®è¡ãããéããŠãŒã¶ãŒããäžããããSQLã¯ãšãªãè§£æãã察象ãšãªãã¬ã³ãŒãã®ååŸæéãæå°ãšããããã«ã¢ã¯ã»ã¹ãã¹ãæé©åãã
ãªããã£ãã€ã¶ã®æ©èœïŒ
ã»SQLã¯ãšãªã®è§£æïŒSQLæãè§£æããå¿
èŠãªããŒã¿ãåŠçã®ç¹å®
ã»å®è¡èšç»ã®çæïŒè€æ°ã®å®è¡èšç»ãçæããããããã®ã³ã¹ãã®èŠç©
ã»æé©ãªå®è¡èšç»ã®éžæïŒã³ã¹ããæãäœãå®è¡èšç»ãéžæ
ã»å®è¡èšç»ã®å®è¡ïŒéžæãããå®è¡èšç»ã«åŸã£ãŠãããŒã¿ãååŸ/åŠç
ãªããã£ãã€ã¶ã®çš®é¡ïŒå®è¡èšç»ã®ã³ã¹ããèŠç©ããæ¹æ³ã«ãã£ãŠã倧ãã以äžã®2ã€ã®ã¢ã¯ã»ã¹ãã¹éžæåºæºã«åé¡ããã
ã»ã³ã¹ãããŒã¹ãªããã£ãã€ã¶ïŒ
ãDBMSã«èç©ããã衚ãã€ã³ããã¯ã¹ã®çµ±èšæ
å ±ãããšã«ã³ã¹ããèŠç©ãããã®çµæã«åºã¥ããŠæãå¹ççãªå®è¡èšç»ãäœæããæ¹æ³
ã»ã«ãŒã«ããŒã¹ãªããã£ãã€ã¶ïŒ
ãäºã決ããŠãããã«ãŒã«(ã¢ã¯ã»ã¹ãã¹ã®åªå
é äœãªã©)ã«ãå®è¡ããããšããSQLæ§æãšè¡šãã€ã³ããã¯ã¹ã®å®çŸ©æ
å ±ãåœãŠã¯ããŠå®è¡èšç»ãäœæããæ¹æ³
| 補åå | äŒç€Ÿ |
|---|---|
| Oracle Database | Oracle |
| Microsoft SQL Server | Microsoft |
| DB2 | IBM |
| MySQL | ãªãŒãã³ãœãŒã¹ |
| PostgreSQL | ãªãŒãã³ãœãŒã¹ |
| SQLite | ãªãŒãã³ãœãŒã¹ |
軜éã§é«éãªãªãŒãã³ãœãŒã¹ã®ããŒã¿ããŒã¹ç®¡çã·ã¹ãã (RDBMS)
ä»ã®ããŒã¿ããŒã¹ã·ã¹ãã ãšã¯ç°ãªãããµãŒããŒããã»ã¹ãå¿
èŠãšãããåäžã®ãã¡ã€ã«ã«ããŒã¿ããŒã¹å
šäœãæ ŒçŽãã
ãã®ãããçµã¿èŸŒã¿ã·ã¹ãã ãã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ãªã©ããªãœãŒã¹ãéãããç°å¢ã§ã®å©çšã«é©ããŠãã
ç¹åŸŽïŒ
ã»è»œé/ã³ã³ãã¯ã:éåžžã«å°ããªãããããªã³ãã§åäœããã¡ã¢ãªããã£ã¹ã¯å®¹éã®æ¶è²»ãæãã
ã»ãµãŒããŒã¬ã¹ïŒãµãŒããŒããã»ã¹ãå¿
èŠãšãããã¢ããªã±ãŒã·ã§ã³ã«çŽæ¥çµã¿èŸŒãã§å©çšã§ãã
ã»ãã¡ã€ã«ããŒã¹ïŒããŒã¿ããŒã¹å
šäœãåäžã®ãã¡ã€ã«ã«æ ŒçŽãããããŒã¿ã®åãæž¡ããããã¯ã¢ããã容æ
ã»ãã©ã³ã¶ã¯ã·ã§ã³å¯Ÿå¿ïŒACIDç¹æ§(Atomicity,Consistency,Isolation,Durability)ããµããŒãããããŒã¿ã®æŽåæ§ã確ä¿ãã
ã»SQLæºæ ïŒæšæºçãªSQLæ§æããµããŒãããŠãããå€ãã®ããŒã¿ããŒã¹ã¢ããªã±ãŒã·ã§ã³ãšäºææ§ããã
ã»ã¯ãã¹ãã©ãããã©ãŒã ïŒWindows,macOS,Linux,Android,iOSãªã©ãæ§ã
ãªãªãã¬ãŒãã£ã³ã°ã·ã¹ãã ã§åäœãã
å©çšäŸïŒ
çµã¿èŸŒã¿ã·ã¹ãã ïŒå®¶é»è£œåãèªåè»ãå»çæ©åšãªã©ããªãœãŒã¹ãéãããçµã¿èŸŒã¿ã·ã¹ãã
ã¢ãã€ã«ã¢ããªã±ãŒã·ã§ã³ïŒã¹ããŒããã©ã³ãã¿ãã¬ãã端æ«ã®ã¢ããªã±ãŒã·ã§ã³ã§ãããŒã«ã«ããŒã¿ã®ä¿å
ãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ïŒå°èŠæš¡ãªãã¹ã¯ãããã¢ããªã±ãŒã·ã§ã³ã§ãèšå®ãã¡ã€ã«ãããŒã¿ã®ä¿å
Webãã©ãŠã¶ïŒWebãã©ãŠã¶ã®ãã£ãã·ã¥ãå±¥æŽã®ä¿å
ãã¹ãç°å¢ïŒã¢ããªã±ãŒã·ã§ã³ã®ãã¹ãç°å¢ã§ã軜éãªããŒã¿ããŒã¹ãšããŠå©çš
ä»ã®ããŒã¿ããŒã¹ãšã®éãïŒ
SQLiteã¯ãå€§èŠæš¡ãªWebã¢ããªã±ãŒã·ã§ã³ããšã³ã¿ãŒãã©ã€ãºã·ã¹ãã ã§å©çšãããMySQLãPostgreSQLãªã©ã®ããŒã¿ããŒã¹ã·ã¹ãã ãšã¯ç°ãªãã
å°èŠæš¡ãªã¢ããªã±ãŒã·ã§ã³ãçµã¿èŸŒã¿ã·ã¹ãã ã§ã®å©çšãæ³å®ããŠãã
å©ç¹ïŒã»èšå®ã管çã容æãã»é«éãªããŒã¿ã¢ã¯ã»ã¹ãã»é«ãç§»æ€æ§
泚æç¹ïŒ
ã»å€§èŠæš¡ãªåæã¢ã¯ã»ã¹ã«ã¯äžåã
ã»ãããã¯ãŒã¯çµç±ã§ã®ã¢ã¯ã»ã¹ã«ã¯å¯Ÿå¿ããŠããªã
5ã€ã®ããŒã¿åãæã€
| ããŒã¿å | 説æ |
|---|---|
| BLOB | 1ãš0ã®ã°ã«ãŒãã§ãããã€ããªã©ãŒãžãªããžã§ã¯ã |
| INTEGER | æŽæ° |
| NUMERIC | æ¥ä»ã®ãããªç¹æ®ãªæžåŒã®æ°å€ |
| REAL | æµ®åå°æ°ç¹æ°ã®ãããªãã® |
| TEXT | æååãªã© |
ã³ã³ãã¥ãŒã¿äžã§æ§é åãããããŒã¿ãæ ŒçŽããããã®ãã¡ã€ã«
åŸæ¥ã®CSVãã¡ã€ã«ãªã©ããã¡ã€ã«ã·ã¹ãã ã«ããããŒã¿ç®¡çãšæ¯èŒããŠãå¹ççãªããŒã¿ã®æ€çŽ¢ãæŽæ°ã管çãå¯èœã«ãã
DBMSã«ãã£ãŠããŒã¿ããŒã¹ãã¡ã€ã«ã®æ¡åŒµåã¯ç°ãªã
ç°ãªãDBMSã§ããããŒã¿ããŒã¹ãã¡ã€ã«ã®æ¡åŒµåãåãå ŽåãããçºãããŒã¿ããŒã¹ãã¡ã€ã«ã®å
容ã確èªããéã¯ãDBMSã®çš®é¡ãç¹å®ããå¿
èŠããã
ããŒã¿ããŒã¹ãã¡ã€ã«ã®å
容ã確èªãããæãã³ãã³ãããã³ãããããã°ã©ãã³ã°èšèªã§ç¢ºèªããããšãå¯èœã ãã
DBã¯ã©ã€ã¢ã³ãããŒã«ã䜿çšãããšãGUIã§ããŒã¿ãçµã蟌ã¿ãªããç°¡åã«å
容ã確èªã§ãã
å
容ãé²èЧã§ããã ãã§ãªããSQLãåæã«èšè¿°ããŠãããããèªåãèšè¿°ããSQLãå®è¡åºæ¥ãããããã¹ãçš/éçºçšãšããŠéåžžã«éå®ãã
| DBMS | ããŒã¿ããŒã¹ãã¡ã€ã«æ¡åŒµå | DBã¯ã©ã€ã¢ã³ãããŒã« |
|---|---|---|
| SQLite | .db |
DB Browser for SQLite |
| MySQL | .sql |
SQL Server Management Studio |
| PostgreSQL | .sql |
|
| Oracle Database | .ora |
|
| Microsoft Access |
.accdb.mdb
|
IMDb(Internet Movie Database)ã¯ãæ ç»ããã¬ãçªçµããããªã²ãŒã ãªã©ãæ åäœåã«é¢ããäžçæå€§çŽã®ãªã³ã©ã€ã³ããŒã¿ããŒã¹
ç¹åŸŽïŒ
ã»èšå€§ãªæ
å ±éïŒæ ç»ããã¬ãçªçµã俳åªãç£ç£ãªã©ãå¹
åºãæ
å ±ãç¶²çŸ
ãããŠãã
ã»ãŠãŒã¶ãŒåå åïŒãŠãŒã¶ãŒãäœåã®è©äŸ¡ãã¬ãã¥ãŒãæçš¿ã§ãã
ã»å€èšèªå¯Ÿå¿ïŒäžçäžã®æ ç»ãã¡ã³ãå©çšã§ãããããå€èšèªã«å¯Ÿå¿ããŠãã
ã»çŸåšã¯ã¢ããŸã³ã®åäŒç€Ÿã§ãAmazonã®ãµãŒãã¹ãšé£æºããŠãã