Giter Club home page Giter Club logo

my_db_study's Introduction

My_DB_Study

๐Ÿ”ฅ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ์— ๋Œ€ํ•ด ๊ณต๋ถ€ํ•˜๊ณ  ์ดํ•ดํ•˜๊ณ ์ž ํ•œ๋‹ค.

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€? ๐Ÿ’พ


๊ตฌ์กฐํ™”๋œ ์ •๋ณด ๋˜๋Š” ๋ฐ์ดํ„ฐ์˜ ์กฐ์งํ™”๋œ ๋ชจ์Œ์œผ๋กœ ์ผ๋ฐ˜์ ์œผ๋กœ ์ปดํ“จํ„ฐ ์‹œ์Šคํ…œ์— ์ „์ž์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ํ•„์š”์— ์˜ํ•ด ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ฑฐ๋‚˜ ์ƒ์„ฑ, ๋ณ€๊ฒฝ ์‚ญ์ œํ•˜์—ฌ ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์›ํ•˜๋Š” ํƒ€์ด๋ฐ์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์ง‘ํ•ฉ์ฒด์ด๋‹ค.

๊ตฌ์กฐํ™”๋œ ์ •๋ณด ํ˜น์€ ๋ฐ์ดํ„ฐ๋ผ๋Š” ์˜๋ฏธ๋Š” ๋‹ค์–‘ํ•œ ์ •๋ณด๋ฅผ ๋‹ด๊ณ  ์žˆ๋Š” ์ฝ˜ํ…์ธ ๋ฅผ ๋…ผ๋ฆฌ์ ์œผ๋กœ ์กฐ์งํ™”ํ•˜์—ฌ ๊ฐ€๊ณต๋œ ๋ฐ์ดํ„ฐ๋ฅผ ์˜๋ฏธ๋ผ ์นญํ•œ๋‹ค.


๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค์™€ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฐจ์ด๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ตฌ์„ฑํ•˜๋Š” ๋ฐฉ๋ฒ•์ด๋‹ค.
๋น„๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” โœ” ํŠน์ • ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์— ๋Œ€ํ•ด ํŠน์ • ๋ชฉ์ ์— ๋งž์ถ”์–ด ๊ตฌ์ถ•๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ์„œ ํ–‰๊ณผ ์—ด๋กœ ์ด๋ฃจ์–ด์ง„ ํ…Œ์ด๋ธ” ํ˜•์‹์˜ ์Šคํ‚ค๋งˆ๋ฅผ ์‚ฌ์šฉํ•˜์ง€ ์•Š์Œ. โœ” ๋Œ€์‹  ๋ฐ์ดํ„ฐ๋ฅผ ์—ฐ๊ฒฐ๋˜์ง€ ์•Š์€ ๊ฐœ๋ณ„ํŒŒ์ผ๋กœ ์ €์žฅ๋˜๋ฉฐ, ๋ฌธ์„œ ๋˜๋Š” ๋ฆฌ์น˜ ๋ฏธ๋””์–ด ํŒŒ์ผ๊ณผ ๊ฐ™์€ ๋ณต์žกํ•˜๊ณ  ๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ ์œ ํ˜•์— ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋‹ค.
โœ” ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ๋‹ฌ๋ฆฌ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ๋”ฐ๋ฅด๋ฏ€๋กœ ์ž์ฃผ ๋ณ€๊ฒฝ๋˜๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์— ์ ํ•ฉํ•˜๋‹ค๊ณ  ํ•œ๋‹ค.


No-SQL DB ๋Œ€ํ‘œ์ ์ธ ์„ธ๊ฐ€์ง€

Key-value : key์™€ value๋กœ ์ด๋ฃจ์–ด์ง„ ๊ฐ€์žฅ ๋‹จ์ˆœํ•œ ๊ตฌ์กฐ๋กœ ๋‹จ์ˆœํ•œ ๋งŒํผ ์†๋„๊ฐ€ 
            ๊ต‰์žฅํžˆ ๋น ๋ฅธ ์žฅ์ ์ด ์žˆ์œผ๋ฉฐ ์บ์‹ฑ,์„ธ์…˜๊ด€๋ฆฌ ๋ฆฌ๋”๋ณด๋“œ, ์‹ค์‹œ๊ฐ„ ๋ถ„์„ ๋“ฑ์— ์‚ฌ์šฉ๋จ. 
            ๋Œ€ํ‘œ์ ์œผ๋กœ redis, Amazon DynamoDB๊ฐ€ ์žˆ์Œ.
Document :  key์™€ value๊ฐ€ ์•„๋‹Œ key์™€ json ํ˜•ํƒœ์˜ document๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๊ณ 
            json๊ณผ ํ˜•ํƒœ๊ฐ€ ๋™์ผํ•˜์—ฌ ์Šคํ‚ค๋งˆ ๋ณ€๋™์— ์œ ์—ฐํ•˜๊ฒŒ ๋Œ€์‘์ด ๊ฐ€๋Šฅํ•จ.
            ๋Œ€ํ‘œ์ ์œผ๋กœ mongoDB, Amazon DocumentDB, Firestore๊ฐ€ ์žˆ์Œ.
Graph : node์— ์†์„ฑ๋ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ์†Œ์…œ ๋„คํŠธ์›Œํฌ๋‚˜ ์ถ”์ฒœ์—”์ง„์„ ์œ„ํ•œ
        ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ฃผ๋กœ ์‚ฌ์šฉ๋จ.
        ๋Œ€ํ‘œ์ ์œผ๋กœ neo4j, Amazon Neptune, Giraph๊ฐ€ ์žˆ์Œ.

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ž€? Relational DataBase


ํ•˜๋‚˜ ์ด์ƒ์˜ ์—ด๊ณผ ํ–‰์œผ๋กœ ์ด๋ฃจ์–ด์ง„ ํ…Œ์ด๋ธ”์— ๋ฐ์ดํ„ฐ๊ฐ€ ์ €์žฅ๋˜๊ณ , ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๊ฐ€ ์–ด๋–ป๊ฒŒ ๊ด€๋ จ๋˜์–ด ์žˆ๋Š”์ง€ ์‰ฝ๊ฒŒ ํŒŒ์•…ํ•˜๊ณ  ์ดํ•ดํ•  ์ˆ˜ ์žˆ๋„๋ก ์‚ฌ์ „ ์ •์˜๋œ ๊ด€๊ณ„๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š” ์ •๋ณด ๋ชจ์Œ์ด๋‹ค.

โ“ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์‚ฌ์šฉํ•˜๋Š” ์ด์œ ๋Š” 
๋ฐ์ดํ„ฐ ๊ณต์œ ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž์—๊ฒŒ ๋™์‹œ์— ๊ณต์œ ํ•ด๋„ ์•ˆ์ •์„ฑ๊ณผ ์ •ํ™•์„ฑ์„ ๊ฐ–์ถ”๊ณ  ๋ฐ์ดํ„ฐ ์ค‘๋ณต์„ ์ตœ์†Œํ™”ํ•˜์—ฌ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋‹ค. ๊ทธ๋ฆฌ๊ณ  ๊ฐ™์€ ๋ฐ์ดํ„ฐ๋‚˜ ์—ฌ๋Ÿฌ ๋ฐ์ดํ„ฐ๊ฐ€ ์‚ฐ์žฌํ•ด์žˆ์œผ๋ฉด ๊ด€๋ฆฌ๊ฐ€ ์–ด๋ ค์šธ ๋ฟ๋”๋Ÿฌ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€๋„ ์–ด๋ ต๊ธฐ ๋•Œ๋ฌธ์— ๋ฐ์ดํ„ฐ ๋ฒ ์ด์Šค๋ฅผ ํ†ตํ•ด ๋ฌด๊ฒฐ์„ฑ์„ ์œ ์ง€ํ•˜๊ณ  ๋ณด์•ˆ ์œ ์ง€์— ๊ฐ•ํ•˜๊ธฐ ๋•Œ๋ฌธ์ด๋‹ค.

โœ” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ตฌ์ถ•ํ•  ๋•Œ ์š”๊ตฌ์‚ฌํ•ญ ๋ถ„์„ โ†’ ๊ฐœ๋…์  ๋ชจ๋ธ๋ง(ERD)๊ณผ ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง์„ ๊ฑฐ์ณ ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง์œผ๋กœ ํ…Œ์ด๋ธ”์„ ํ˜•์„ฑํ•œ๋‹ค.

ํ…Œ์ด๋ธ”์ด๋ž€?

๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ฐ์ฒด๋กœ์„œ ๋งˆ์น˜ ์—‘์…€ ์‹œํŠธ์ฒ˜๋Ÿผ ํ–‰(row)๊ณผ ์—ด(column)๋กœ ๊ตฌ์„ฑ๋œ ๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ ๋‹จ์œ„์ด๋ฉฐ, ์–ด๋Š ํŠน์ •ํ•œ ์ฃผ์ œ์™€ ๋ชฉ์ ์œผ๋กœ ๋งŒ๋“ค์–ด์ง€๋Š” ์ผ์ข…์˜ ์ง‘ํ•ฉ์ด๋‹ค.


ํ–‰ (ROW) ์ด๋ž€

> ํ–‰์€ ๋ฆด๋ ˆ์ด์…˜์ด ๋‚˜ํƒ€๋‚ด๋Š” ์—”ํ‹ฐํ‹ฐ์˜ ํŠน์ • ์ธ์Šคํ„ด์Šค์— ๊ด€ํ•œ ๊ฐ’๋“ค์˜ ๋ชจ์ž„์ด๋‹ค.  
> ํŒŒ์ผ์‹œ์Šคํ…œ์—์„œ๋Š” ๋ ˆ์ฝ”๋“œ(Record), ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ชจ๋ธ๋ง์—์„œ๋Š” ํŠœํ”Œ(tuple)์ด๋ผ๊ณ ๋„ ๋ถˆ๋ฆฐ๋‹ค.
> ์นด๋‹ค๋„๋ฆฌํ‹ฐ๋Š” ํ…Œ์ด๋ธ” ๋‚ด์— ์žˆ๋Š” ํŠœํ”Œ์˜ ์ˆ˜๋ฅผ ๋œปํ•œ๋‹ค.   

์—”ํ‹ฐํ‹ฐ๋ž€ : ๊ฐœ๋…/๋…ผ๋ฆฌ ๋ชจ๋ธ๋ง์—์„œ ์ถ”์ถœํ•œ ๊ฐœ์ฒด๋ฅผ ์—”ํ‹ฐํ‹ฐ๋ผ ๋ถ€๋ฅด๊ณ ,๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ํŠน์ • DBMS๋กœ ๊ตฌํ˜„๋˜๋Š” ๋‹จ๊ณ„๋ถ€ํ„ฐ ์ด ์—”ํ‹ฐํ‹ฐ๋ฅผ ํ…Œ์ด๋ธ”์ด๋ผ ๋ถ€๋ฅธ๋‹ค๊ณ  ํ•œ๋‹ค.
ํ•˜์ง€๋งŒ ์—”ํ‹ฐํ‹ฐ๋Š” ๊ตฌํ˜„๋‹จ๊ณ„์—์„œ ํ…Œ์ด๋ธ”์ด ๋  ์ˆ˜๋„์žˆ๊ณ  ์•ˆ๋  ์ˆ˜ ๋„์žˆ์Œ.

๋ฆด๋ ˆ์ด์…˜์€ ๊ฐœ๋… ๋‹จ๊ณ„์—์„œ ์—”ํ‹ฐํ‹ฐ์™€ ์—”ํ‹ฐํ‹ฐ๊ฐ„์— ํ˜„์„ฑ๋˜๋Š” ์—ฐ๊ด€๊ด€๊ณ„๋ฅผ ๋ฆด๋ ˆ์ด์…˜R์ด๋ผ๊ณ  ํ•œ๋‹ค. ๋ฆด๋ ˆ์ด์…˜ ์Šคํ‚ค๋งˆ๋Š” ์†์„ฑ๋“ค์˜ ์ง‘ํ•ฉ(ํ…Œ์ด๋ธ” ๋งจ ์ฒ˜์Œ์˜ ํ–‰ ์ง‘ํ•ฉ)์„ ์˜๋ฏธํ•œ๋‹ค.


์—ด (COLUMN) ์ด๋ž€

> ์—ด์€ ๋ฐ์ดํ„ฐ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋‚ด๋ฉฐ, ์—ด์ด๋ฆ„=์—ด ๊ฐ’์˜ ์Œ์œผ๋กœ ์ด๋ฃจ์–ด์ ธ์žˆ๋‹ค๊ณ  ๋ณผ ์ˆ˜ ์žˆ๋‹ค.
> ๊ฐ™์€ ์—ด์— ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ์†์„ฑ์€ ๋™์ผ์„ฑ์„ ์ด๋ฃจ๊ณ  ์žˆ์–ด์•ผ ํ•œ๋‹ค.

๊ฐœ๋…/๋…ผ๋ฆฌ ๋ชจ๋ธ๋ง์—์„œ ์ถ”์ถœํ•œ ๊ฐœ์ฒด ์—”ํ‹ฐํ‹ฐ์— ํฌํ•จ๋œ ์†์„ฑ์€ ๋ฌผ๋ฆฌ ๋ชจ๋ธ๋ง ๋‹จ๊ณ„์—์„œ ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ์˜ ์ด๋ฆ„์ด ๋œ๋‹ค.
๋„๋ฉ”์ธ์€ ์—”ํ‹ฐํ‹ฐ์˜ ์†์„ฑ๋“ค์˜ ๊ฐ’๋“ค์˜ ์ง‘ํ•ฉ์ด๋ฉฐ, ํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ๊ฐ’์„ ๊ตฌ์„ฑํ•  ๋•Œ ๊ฐ’์˜ ๋ฒ”์œ„, ๋ฐ์ดํ„ฐ ํƒ€์ž…, ์ œ์•ฝ์‚ฌํ•ญ ๋“ฑ์„ ์„ค์ •ํ•˜๋Š”๋ฐ, ์ด ๋ฒ”์œ„ ๊ฐ’์˜ ์„ค์ •์„ ๋„๋ฉ”์ธ์ด๋ผ ํ•จ.

โœ” ๋ฐ์ดํ„ฐ ํ‘œ์ค€ ์ •์˜ >> ๋„๋ฉ”์ธ(domain) : ์†์„ฑ์— ์ •์˜๋œ ์กฐ๊ฑด์„ ๋งŒ์กฑ์‹œํ‚ค๋Š” ๊ฐ’์˜ ๋ฒ”์œ„

ํŒŒ์ผ ์‹œ์Šคํ…œ ๊ฐœ๋…/๋…ผ๋ฆฌ ๋ฌผ๋ฆฌ
ํŒŒ์ผ ์—”ํ‹ฐํ‹ฐ(Entity) ํ…Œ์ด๋ธ”(Table)
ํ•„๋“œ ์–ดํŠธ๋ฆฌ๋ทฐํŠธ(Attribute) ์ปฌ๋Ÿผ(Column)
๋ ˆ์ฝ”๋“œ ํŠœํ”Œ(Tuple) ๋กœ์šฐ(Row)
ํ‚ค ์œ ์ผ๊ฐ’(Identifier) ๊ธฐ๋ณธํ‚ค(Primary Key),Unique
๋„๋ฉ”์ธ(domain)


โ“ ํŒŒ์ผ ์‹œ์Šคํ…œ๊ณผ ๊ฐœ๋…,๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง, ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง

  • ํŒŒ์ผ์‹œ์Šคํ…œ์€ DB๊ฐ€ ๊ฐœ๋ฐœ๋˜๊ธฐ ์ „์— ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ  ์žˆ๋Š” ์‹œ์Šคํ…œ์„ ๋œปํ•œ๋‹ค๊ณ  ํ•จ.

  • ๊ฐœ๋…์  ๋ชจ๋ธ๋ง์€ ์‚ฌ์šฉ์ž ์š”๊ตฌ์‚ฌํ•ญ์„ ๋ถ„์„ํ•˜์—ฌ ๋ถ„์„ํ•œ ๋‚ด์šฉ์˜ ์˜ค๋ฅ˜๋ฅผ ๋ฐฉ์ง€ํ•˜๊ณ  ์‹ค๋ฐ์ดํ„ฐ๋ฅผ ๊ฐœ๋…์ ์œผ๋กœ ์ผ๋ฐ˜ํ™”์‹œ์ผœ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ, ํƒ€์ž…, ์†์„ฑ, ๊ด€๊ณ„ ๋“ฑ DB ๊ตฌ์ถ•์— ํ•„์š”ํ•œ ์‚ฌํ•ญ๋“ค์„ ๋„์ถœํ•˜๋Š” ๊ณผ์ •

  • ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง์€ ๊ฐœ๋…์  ๋ชจ๋ธ๋ง์—์„œ ๋„์ถœ๋œ ๋‚ด์šฉ์„ ํ† ๋Œ€๋กœ ๋ฐ์ดํ„ฐ ์ •์˜ ์–ธ์–ด๋กœ ๋œ ๊ฐœ๋… ์Šคํ‚ค๋งˆ๋ฅผ ์ƒ์„ฑํ•˜๋Š” ๊ณผ์ •

      ์Šคํ‚ค๋งˆ๋ž€? ๊ตฌ์กฐ๋‚˜ ์กฐ๊ฑด์— ๊ด€๋ จํ•œ ์ „๋ฐ˜์ ์ธ ๋‚ด์šฉ๋“ค์„ ๋‹ด๊ณ ์žˆ๋Š” ๋ฉ”ํƒ€๋ฐ์ดํ„ฐ์˜ ์ง‘ํ•ฉ ๋˜๋Š” ์ž๋ฃŒ๊ตฌ์กฐ
    
  • ๋ฌผ๋ฆฌ์  ๋ชจ๋ธ๋ง์€ ๋…ผ๋ฆฌ์  ๋ชจ๋ธ๋ง์„ ํ†ตํ•ด ์ƒ์„ฑ๋œ ๊ฐœ๋… ์Šคํ‚ค๋งˆ๋ฅผ ์‹ค์ œ๋กœ ์ €์žฅํ•  ์ˆ˜ ์žˆ๋Š” ํ…Œ์ด๋ธ”์„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๊ตฌํ˜„ํ•˜๋Š” ๊ณผ์ •


SQL (Structured Query Language)


๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ์ž‘์šฉํ•˜๋Š” ์–ธ์–ด๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ •๋ณด๋ฅผ ์ €์žฅํ•˜๊ณ  ์ฒ˜๋ฆฌํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉ๋จ.

  • DDL : data definition Language : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ „๋ฐ˜์ ์ธ ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๋Š” ์–ธ์–ด
    ์ „๋ฐ˜์ ์ธ ๊ตฌ์กฐ : table, view, index, procedure
    • CREATE
    • ALTER
    • RENAME
    • DROP
    • TRUNCATE
    • COMMENT
  • DML : data manipulation Language : DDL์— ์˜ํ•ด ์ƒ์„ฑ๋œ ์Šคํ‚ค๋งˆ ๋‚ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐ์ž‘ํ•˜๋Š” ์–ธ์–ด
    • SELECT
    • INSERT
    • UPDATE
    • DELETE
    • MERGE
    • CALL
    • EXPLAIN PLAN
    • LOCK TABLE
  • DCL : data control Language : ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ์—‘์„ธ์Šค ๊ถŒํ•œ์„ ์ œ์–ดํ•˜๋Š” ์–ธ์–ด
    • GRANT
    • REVOKE
  • TCL : Transaction control Language : ํŠธ๋žœ์ ์…˜์„ ์ œ์–ดํ•˜๋Š” ์–ธ์–ด
    • COMMIT
    • ROLLBACK
    • SAVEPOINT
    • TRANSACTRION

ํŠธ๋žœ์ ์…˜์ด๋ž€ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ƒํƒœ๋ฅผ ๋ณ€ํ™”ํ•˜๋Š” ์ˆ˜ํ–‰ ์ž‘์—…์˜ ์ตœ์†Œ๋‹จ์œ„

Join

Join์€ DB ๊ตฌ์กฐ ๋‚ด์˜ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”๋“ค์˜ ์—ฐ๊ฒฐํ•˜์—ฌ ํ•˜๋‚˜์˜ ํ…Œ์ด๋ธ”๋กœ ํ‘œํ˜„ํ•˜๋Š” ๊ฒƒ์„ ์˜๋ฏธํ•จ.
์ด๋ง์€ Join์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” ๋‘˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ด์•ผ ํ•จ. Join์„ ํ†ตํ•ด ๋‚˜์˜จ ํ…Œ์ด๋ธ”์„ ํ…Œ์ด๋ธ”๋กœ์„œ ์ €์žฅํ•˜๊ฑฐ๋‚˜ ๊ทธ ์ž์ฒด๋กœ ์ด์šฉํ•  ์ˆ˜ ๋„ ์žˆ์Œ. ์‹๋ณ„์ž์™€ ์ฐธ์กฐ์ž

Join์˜ ํ•„์š”์„ฑ

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์˜๋ฏธ์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์œผ๋กœ ํ…Œ์ด๋ธ”์„ ๊ตฌ์„ฑํ•˜๊ณ  ์ •๊ทœํ™”๋ฅผ ํ†ตํ•ด ์„œ๋กœ ๊ด€๊ณ„์žˆ๋Š” ๋ฐ์ดํ„ฐ ์ง‘ํ•ฉ์„ ์—ฌ๋Ÿฌ ํ…Œ์ด๋ธ”๋กœ ๋‚˜๋‰˜์–ด ์ €์žฅํ•˜๋ฏ€๋กœ ์ €์žฅ๊ณต๊ฐ„์˜ ํšจ์œจ์„ฑ๊ณผ ํ™•์žฅ์„ฑ์ด ํ–ฅ์ƒ๋จ.
๊ฐ ํ…Œ์ด๋ธ”์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ๋ฅผ ํšจ๊ณผ์ ์œผ๋กœ ๊ฒ€์ƒ‰์„ ํ•˜๊ธฐ ์œ„ํ•ด์„œ๋Š” Join์ด ํ•„์š”ํ•˜๋‹ค.

Join์˜ ์ข…๋ฅ˜

Inner Join : ๊ต์ง‘ํ•ฉ
์—ฌ๋Ÿฌ ์–ดํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ์‚ฌ์šฉ๋˜๋Š” ๊ฐ€์žฅ ํ”ํ•œ ๊ฒฐํ•ฉ ๋ฐฉ์‹์œผ๋กœ ๊ณตํ†ต์ ์ธ ๋ถ€๋ถ„๋งŒ Select๊ฐ€ ๋จ.

์ฐธ์กฐํ‚ค๋ฅผ ๊ธฐ์ค€์œผ๋กœ ์ผ์น˜ํ•˜๋Š” ํ–‰๋งŒ ์กฐ์ธํ•˜๋ฉฐ ๊ด€๊ณ„๊ฐ€ ์žˆ๋Š” ๋ ˆ์ฝ”๋“œ๋งŒ ํ•ฉ์น˜๋Š” ๊ฒƒ์„ INNER JOIN์ด๋ผ๊ณ  ํ•จ. ๊ด€๊ณ„๊ฐ€ ์—†๋Š” ๋ ˆ์ฝ”๋“œ๋“ค์„ ์ œ๊ฑฐํ•˜๊ณ  ์ž์‹ํ…Œ์ด๋ธ”์ด ํ•„์š”๋กœํ•˜๋Š” ๋งŒํฌ ๋ถ€๋ชจํ…Œ์ด๋ธ”์˜ ์ปฌ๋Ÿผ ์ˆ˜๋ฅผ ๋ณต์‚ฌํ•ด์„œ ๋ถ™์ž„.

--๋ช…์‹œ์  inner ์กฐ์ธํ‘œํ˜„(explicit)
SELECT * FROM A INNER JOIN B ON "์กฐ๊ฑด๋ฌธ";

--์•„์šฐํ„ฐ ์กฐ์ธํ‘œํ˜„
SELECT * FROM A LEFT/RIGHT/FULL OUTER JOIN B ON "์กฐ๊ฑด๋ฌธ";
SELECT * FROM A LEFT/RIGHT/FULL JOIN B ON "์กฐ๊ฑด๋ฌธ";

--์•”์‹œ์  ์กฐ์ธํ‘œํ˜„(implicit)
SELECT * FROM A,B WHERE "์กฐ๊ฑด๋ฌธ";

Outer Join
๊ด€๊ณ„๊ฐ€ ์—†๋Š” ๋ ˆ์ฝ”๋“œ๋ผ๋„ ๊ธฐ์ค€์— ๋งž๋Š” ๋ฐฉํ–ฅ์˜ ๋ ˆ์ฝ”๋“œ๋Š” ์ถœ๋ ฅ๋˜๋Š” ๋Œ€์‹  ์กฐ๊ฑด์ด ์•ˆ๋งž์œผ๋ฉด ๋‚˜๋จธ์ง€ ํ•„๋“œ๋Š” NULL๊ฐ’์œผ๋กœ ์ฒ˜๋ฆฌ

  • Left Join ์™ผ์ชฝ์— ์žˆ๋Š” ์•„์šฐํ„ฐ๋ฅผ ํฌํ•จ
  • Right Join ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์•„์šฐํ„ฐ๋ฅผ ํฌํ•จ
  • full Join ์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ์— ์žˆ๋Š” ์•„์šฐํ„ฐ๋ฅผ ์ „๋ถ€ ํฌํ•จ

์™ผ์ชฝ ์˜ค๋ฅธ์ชฝ ๊ธฐ์ค€์€ ์ฟผ๋ฆฌ๋ฌธ ์ž‘์„ฑ ์‹œ A OUTER JOIN B ์—์„œ OUTER JOIN์„ ๊ธฐ์ค€์œผ๋กœ ๋‚˜๋ˆ”.

my_db_study's People

Contributors

lee-jam avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.