๐Ÿ“’๊ธฐ์ˆ ๋ฉด์ ‘ ( Database )

๊น€ํ˜ธ์ค€ยท2021๋…„ 10์›” 12์ผ
0

๋ฉด์ ‘

๋ชฉ๋ก ๋ณด๊ธฐ
2/2

1. MyBatis ์™€ JPA

  • Mybatis ๋ž€?

    • JDBC ๋ฅผ ์ข€๋” ํŽธํ•˜๊ฒŒ ์‚ฌ์šฉํ•  ์ˆ˜ ์žˆ๋„๋ก ๊ฐ์ฒด๋ฅผ SQL ์ด๋‚˜ ์ €์žฅ ํ”„๋กœ์‹œ์ €์™€ ๋งคํ•‘ ํ•ด์ฃผ๋Š” ํผ์‹œ์Šคํ„ด์Šค ํ”„๋ ˆ์ž„์›Œํฌ SQL ๊ตฌ๋ฌธ์„ java ๋ฉ”์†Œ๋“œ์™€ ๋งคํ•‘ํ•ด์ค€๋‹ค.

      JDBC(Java Database Connectivity)

      JDBC๋Š” ์ž๋ฐ”์—์„œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์ ‘์†ํ•  ์ˆ˜ ์žˆ๋„๋ก ํ•˜๋Š” ์ž๋ฐ” API๋กœ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ์ž๋ฃŒ๋ฅผ ์ฟผ๋ฆฌํ•˜๊ฑฐ๋‚˜ ์—…๋ฐ์ดํŠธํ•˜๋Š” ๋ฐฉ๋ฒ•์„ ์ œ๊ณตํ•œ๋‹ค.

  • Mybatis์˜ ์žฅ์ 

    • ๋‹ค๋ฅธ ํ”„๋ ˆ์ž„์›Œํฌ์— ๋น„ํ•ด ๊ฐ„๋‹จํ•˜๋‹ค.
    • ์†Œ์Šค ์ฝ”๋“œ์™€ SQL ์˜ ๋ถ„๋ฆฌ (์ƒ์‚ฐ์„ฑ, DBA์™€์˜ ํ˜‘์—…)
    • SQL์„ ์ง์ ‘ ๋‹ค๋ค„ ๋ณต์žกํ•œ ์ฟผ๋ฆฌ ์ž‘์„ฑ, SQL ํ•จ์ˆ˜๋‚˜ ์ €์žฅ ํ”„๋กœ์‹œ์ €๋ฅผ ์ž์œ ๋กญ๊ฒŒ ์ด์šฉ๊ฐ€๋Šฅ
  • Mybatis์˜ ๋‹จ์ 

    • ๋ฐ˜๋ณต์ ์ธ ์ฝ”๋“œ์™€ CRUD SQL ์ž‘์—…
    • SQL๊ณผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฒค๋”์— ๋Œ€ํ•œ ์ข…์†์„ฑ(์˜ค๋ผํด์—์„œ mySQL ๋กœ ๋ฐ”๊พธ๋ฉด ํ•จ์ˆ˜๋“ค์„ ๋ฐ”๊ฟ”์ค˜์•ผํ•œ๋‹ค.)
  • JPA ๋ž€?

    • ์ž๋ฐ” ๊ฐ์ฒด๋ฅผ ๋ฐ์ดํ„ฐํ…Œ์ด๋ธ”๊ณผ ๋งคํ•‘์‹œํ‚จ๋‹ค.
    • ORM : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ฐ์ฒด๋ฅผ ์ž๋ฐ” ๊ฐ์ฒด๋กœ ๋งคํ•‘ํ•˜์—ฌ ๊ฐ์ฒด ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋ฐ”ํƒ•์œผ๋กœ SQL์„ ์ž๋™์œผ๋กœ ์ƒ์„ฑ
    • JPA : ์ž๋ฐ” ์ง„์˜์˜ ORM ํ‘œ์ค€ ๊ธฐ์ˆ 
  • JPA์˜ ์žฅ์ 

    • ์ƒ์‚ฐ์„ฑ CRUD ๊ฐ™์€ ๊ฐ„๋‹จํ•œ ์ฟผ๋ฆฌ๋Š” ์ž๋™์œผ๋กœ ๋œ๋‹ค.
    • entity ์— ์ถ”๊ฐ€ ์†์„ฑ์ด ์ƒ๊ธฐ๋ฉด Mybatis ์˜ ๊ฒฝ์šฐ ์ฟผ๋ฆฌ์— ๊ฐ๊ฐ ๋‹ค ์ถ”๊ฐ€ํ•ด์ค˜์•ผํ•˜์ง€๋งŒ JPA๋Š” Entity์— ์†์„ฑ๋งŒ ์ถ”๊ฐ€ ์‹œ์ผœ์ฃผ๋ฉด ๋œ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์ ‘๊ทผ ์ถ”์ƒํ™” ๋ฒค๋” ๋…๋ฆฝ์„ฑ
    • SQL ์ค‘์‹ฌ์ ์ธ ๊ฐœ๋ฐœ์—์„œ ๊ฐ์ฒด ์ค‘์‹ฌ์œผ๋กœ ๊ฐœ๋ฐœ๊ฐ€๋Šฅ
  • JPA์˜ ๋‹จ์ 
    • ์ƒ๋Œ€์ ์œผ๋กœ ๋†’์€ ํ•™์Šต ๊ณก์„ 
    • ๋ณต์žกํ•œ ์ฟผ๋ฆฌ์ž‘์„ฑ์˜ ์–ด๋ ค์›€
    • JPQL์„ ํ†ตํ•ด ํ•ด๊ฒฐ๊ฐ€๋Šฅ
    • Native SQL๋กœ ์ง์ ‘ ์ž‘์„ฑ๊ฐ€๋Šฅ
    • mybatis ์™€ ํ˜ผ์šฉ๊ฐ€๋Šฅ

2. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์–ธ์–ด ( DDL, DML, DCL )

  • ์ •์˜์–ด(DDL : Data Definition Language)

    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์ •์˜,์ˆ˜์ •,์‚ญ์ œํ•˜๋Š” ์–ธ์–ด. (create, alter, drop)
  • ์กฐ์ž‘์–ด(DML : Data Manipulation Language)

    • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋‚ด์˜ ์ž๋ฃŒ ๊ฒ€์ƒ‰, ์‚ฝ์ž…, ๊ฐฑ์‹ , ์‚ญ์ œ๋ฅผ ์œ„ํ•œ ์–ธ์–ด. (select, delete, update, insert)
  • ์ œ์–ด์–ด(DCL : Data Control Language)

    • ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•ด ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, ๋ณ‘ํ–‰ ์ˆ˜ํ–‰ ์ œ์–ด, ๋ณดํ˜ธ์™€ ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์–ธ์–ด.(commit, rollback, grant, revoke)

3. Drop๊ณผ Truncate ๊ทธ๋ฆฌ๊ณ  Delete

  • DELETE TABLE์€ ๋กœ๊ทธ๋˜๋Š” ์ž‘์—…์ด๊ธฐ ๋•Œ๋ฌธ์— ์‚ญ์ œ๋˜๋Š” ๊ฐ ํ–‰์€ ํŠธ๋žœ์žญ์…˜ ๋กœ๊ทธ์— ๊ธฐ๋ก๋˜๊ณ  ์ด๊ฒƒ์€ ์ž‘์—…์„ ๋Š๋ฆฌ๊ฒŒ ํ•ฉ๋‹ˆ๋‹ค.

  • TRUCATE TABLE ์—ญ์‹œ ํ…Œ์ด๋ธ” ๋‚ด ํ–‰๋“ค์„ ์‚ญ์ œํ•˜์ง€๋งŒ ์‚ญ์ œ๋˜๋Š” ๊ฐ ํ–‰์„ ๊ธฐ๋กํ•˜์ง€ ์•Š๊ณ  ๋Œ€์‹  ํ…Œ์ด๋ธ”์˜ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ํ• ๋‹น ํ•ด์ œ๋ฅผ ๊ธฐ๋กํ•˜์—ฌ ์ž‘์—…์ด ๋น ๋ฆ…๋‹ˆ๋‹ค. TRUNCATE TABLE๋Š” ๋กค๋ฐฑํ•  ์ˆ˜ ์—†์Šต๋‹ˆ๋‹ค.

  • Drop

    • DROP ๋ช…๋ น์–ด๋Š” ํ…Œ์ด๋ธ” ์ „์ฒด๋ฅผ ์‚ญ์ œ,๊ณต๊ฐ„, ๊ฐ์ฒด๋ฅผ ์‚ญ์ œํ•œ๋‹ค. ์‚ญ์ œ ํ›„ ์ ˆ๋Œ€ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋‹ค.
  • Truncate

    • TRUNCATE ๋ช…๋ น์–ด๋Š” ์šฉ๋Ÿ‰์ด ์ค„์–ด๋“ค๊ณ , ์ธ๋ฑ์Šค ๋“ฑ๋„ ๋ชจ๋‘ ์‚ญ์ œ๋œ๋‹ค. ํ…Œ์ด๋ธ”์€ ์‚ญ์ œํ•˜์ง€๋Š” ์•Š๊ณ  ๋ฐ์ดํ„ฐ๋งŒ ์‚ญ์ œํ•œ๋‹ค. ํ•œ๊บผ๋ฒˆ์— ๋‹ค ์ง€์›Œ์•ผ ํ•œ๋‹ค. ์‚ญ์ œํ›„ ์ ˆ๋Œ€ ๋˜๋Œ๋ฆด ์ˆ˜ ์—†๋‹ค.
  • Delete

    • DELETE ๋ช…๋ น์–ด๋Š” ๋ฐ์ดํ„ฐ๋Š” ์ง€์›Œ์ง€์ง€๋งŒ ํ…Œ์ด๋ธ” ์šฉ๋Ÿ‰์€ ์ค„์–ด๋“ค์ง€ ์•Š๋Š”๋‹ค. ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ์ง€์šธ ์ˆ˜ ์žˆ๋‹ค. ์‚ญ์ œ ํ›„ RollBack ๊ฐ€๋Šฅํ•˜๋‹ค.

4. ์ฟผ๋ฆฌ ์ˆœ์„œ

  • SELECT -> FROM -> WHERE -> GROUP BY -> ORDER BY

5. ๋ฌด๊ฒฐ์„ฑ

  • ๊ฐœ์ฒด ๋ฌด๊ฒฐ์„ฑ

    • ๊ธฐ๋ณธํ‚ค๋Š” Null ๊ฐ’์ด ์˜ฌ ์ˆ˜ ์—†์œผ๋ฉฐ, ์ค‘๋ณต๋  ์ˆ˜ ์—†๋‹ค.
  • ์ฐธ์กฐ ๋ฌด๊ฒฐ์„ฑ

    • ์™ธ๋ž˜ํ‚ค๋Š” Null ๊ฐ’์ด ์˜ฌ ์ˆ˜ ์žˆ์œผ๋ฉฐ, ๋ถ€๋ชจํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธํ‚ค์— ์ข…์†๋˜์–ด์•ผ ํ•œ๋‹ค.

6. JOIN [์ˆ˜์ •์ค‘]

  • ์นดํ‹ฐ์…˜ ๊ณฑ

  • EQUI JOIN

  • NON-EQUI JOIN

  • OUTER JOIN

  • SELF JOIN

7. ํŠธ๋ฆฌ๊ฑฐ ( Trigger )

  • ์ž๋™์œผ๋กœ ์‹คํ–‰๋˜๊ฒŒ ์ •์˜ํ•œ ์ €์žฅ ํ”„๋กœ์‹œ์ €, Insert / Update / Delete ๋ฌธ์— ๋Œ€ํ•œ ์ž๋™ ํ˜ธ์ถœ

  • ์‚ฌ์šฉ ์ด์œ 

    • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๊ฐ•ํ™”
    • ์—…๋ฌด ์ฒ˜๋ฆฌ ์ž๋™ํ™”
    • ์—…๋ฌด ๊ทœ์น™ ๋ณด์žฅ

8. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ์ œ์•ฝ์กฐ๊ฑด

9. ์‹œํ€€์Šค ( Sequence )

profile
Go-getter Developer

0๊ฐœ์˜ ๋Œ“๊ธ€