[TIL] Databases

Dev_minยท2019๋…„ 10์›” 15์ผ
0

TIL

๋ชฉ๋ก ๋ณด๊ธฐ
19/61

๐Ÿ‘‰ Databases

Goal โœ”

  1. database ์˜ ์ดํ•ด
  2. database management system(DBMS)๊ฐ€ ๋ฌด์—‡์ธ์ง€ ์ดํ•ด
  3. SQL ๊ธฐ๋ณธ query๋ฌธ ์‚ฌ์šฉ
  4. Schema์˜ ์„ค๊ณ„ ๋ฐฉ๋ฒ•๊ณผ ๋‚˜์€ ๋ฐฉํ–ฅ์„ฑ์„ ๊ณ ์•ˆ
  5. ์„œ๋ฒ„์™€ ํด๋ผ์ด์–ธํŠธ ์‚ฌ์ด์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ฃผ๊ณ  ๋ฐ›์€ ๋ฐ์ดํ„ฐ๋ฅผ database์— ์ €์žฅ

๐Ÿ”จ SQL ์ด๋ž€?

: Structured Query Language ๊ตฌ์กฐํ™”๋œ Query ์–ธ์–ด
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์šฉ ํ”„๋กœ๊ทธ๋ž˜๋ฐ ์–ธ์–ด
๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— query๋ฅผ ๋ณด๋‚ด ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ์„ ๋ฝ‘์•„์˜ฌ ์ˆ˜ ์žˆ๋‹ค.

๐Ÿ”จ Query๋ž€?

: ์ง์—ญ์„ ํ•˜๋ฉด ์งˆ์˜๋ฌธ ex) ๊ฒ€์ƒ‰์ฐฝ์— ์ ๋Š” ๊ฒ€์ƒ‰์–ด๋„ Query์˜ ์ผ์ข…
์ €์žฅ๋˜์–ด ์žˆ๋Š” ์ •๋ณด๋ฅผ ํ•„ํ„ฐํ•˜๊ธฐ ์œ„ํ•œ ์งˆ๋ฌธ


๐ŸงชIn-memory์˜ ํ•œ๊ณ„

๋„๋ฉด ๋ฐ์ดํ„ฐ๊ฐ€ ์—†์–ด์ง„๋‹ค.(ํด๋ผ์ด์–ธํŠธ์— ์ €์žฅ)

๐ŸงชFile I/O

์„œ๋ฒ„์— ์ €์žฅํ•  ์ˆ˜ ์žˆ์ง€๋งŒ, ์›ํ•˜๋Š” ๋ฐ์ดํ„ฐ๋งŒ ๊ฐ€์ ธ์˜ฌ ์ˆ˜ ์—†๊ณ  ํ•ญ์ƒ ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ ๊ฐ€์ ธ์˜จ ๋’ค ์„œ๋ฒ„์—์„œ ํ•„ํ„ฐ๋ง ํ•„์š”

๐ŸงชDatabase

ํ•„ํ„ฐ๋ง ์™ธ์—๋„ File I/O ๋กœ ๊ตฌํ˜„์ด ํž˜๋“  ๊ด€๋ฆฌ๋ฅผ ์œ„ํ•œ ์—ฌ๋Ÿฌ ๊ธฐ๋Šฅ๋“ค์„ ๊ฐ€์ง€๊ณ  ์žˆ๋Š” ๋ฐ์ดํ„ฐ์— ํŠนํ™”๋œ ์„œ๋ฒ„

๐Ÿ‘‰ RDBMS

๋ณดํ†ต, DB๋ฅผ ์‚ฌ์šฉํ•˜๋ฉด Oracle ๋˜๋Š” MySQL์„ ๋งŽ์ด ์ ‘ํ•˜๊ฒŒ ๋œ๋‹ค. ๋‘˜ ๋‹ค ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDB)์ด๋ผ๊ณ  ํ•œ๋‹ค.

RDB

: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ชจ๋ธ์— ๊ธฐ์ดˆ๋ฅผ ๋‘” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ด๋‹ค. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์ด๋ž€? ๋ฐ์ดํ„ฐ๋ฅผ ๊ตฌ์„ฑํ•˜๋Š”๋ฐ ํ•„์š”ํ•œ ๋ฐฉ๋ฒ• ์ค‘ ํ•˜๋‚˜๋กœ 2์ฐจ์›์˜ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ํ‘œํ˜„ํ•ด์ค€๋‹ค. ์ด๋Š” ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ์ƒ๊ด€๊ด€๊ณ„์—์„œ ๊ฐœ์ฒด๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ํ‘œํ˜„ํ•œ ๊ฒƒ์ด๋ผ๊ณ ๋„ ํ•  ์ˆ˜ ์žˆ๋‹ค.
RDB๋Š” ๋ฐ์ดํ„ฐ์˜ ๋…๋ฆฝ์„ฑ์ด ๋†’๊ณ , ๊ณ ์ˆ˜์ค€์˜ ๋ฐ์ดํ„ฐ ์กฐ์ž‘์–ธ์–ด๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๊ฒฐํ•ฉ, ์ œ์•ฝ, ํˆฌ์˜ ๋“ฑ์˜ ๊ด€๊ณ„ ์กฐ์ž‘์— ์˜ํ•ด ํ‘œํ˜„๋Šฅ๋ ฅ์„ ๋†’์ผ ์ˆ˜ ์žˆ๋‹ค. ๊ด€๊ณ„ ์กฐ์ž‘์— ์˜ํ•ด ์ž์œ ๋กญ๊ฒŒ ๊ตฌ์กฐ๋ฅผ ๋ณ€๊ฒฝํ•  ์ˆ˜ ์žˆ๋‹ค๋Š” ๊ฒƒ์ด RDB์˜ ํŠน์ง•

RDBMS( Relational Database Management System )

: ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ์ƒ์„ฑํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ  ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋Š” ์†Œํ”„ํŠธ์›จ์–ด๋ผ๊ณ  ์ •์˜ํ•  ์ˆ˜ ์žˆ๋‹ค.

ํŠน์ง• >
1. ๋ชจ๋“  ๋ฐ์ดํ„ฐ๋ฅผ 2์ฐจ์› ํ…Œ์ด๋ธ”๋กœ ํ‘œํ˜„
2. ํ…Œ์ด๋ธ”์€ row(ํ–‰), column(์—ด)๋กœ ์ด๋ฃจ์–ด์ง„ ๊ธฐ๋ณธ ๋ฐ์ดํ„ฐ ์ €์žฅ ๋‹จ์œ„
3. ์ƒํ˜ธ๊ด€๋ จ์„ฑ์„ ๊ฐ€์ง„ ํ…Œ์ด๋ธ”์˜ ์ง‘ํ•ฉ
4. ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์„ค๊ณ„๋„๋ฅผ ER(Entity Relationship) ๋ชจ๋ธ
5. ER๋ชจ๋ธ์— ๋”ฐ๋ผ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๊ฐ€ ๋งŒ๋“ค์–ด์ง€๋ฉฐ, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•˜๋‚˜ ์ด์ƒ์˜ ํ…Œ์ด๋ธ”๋กœ ๊ตฌ์„ฑ

DB์ธ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ผ์ข…์˜ ๋ฐ์ดํ„ฐ ์ €์žฅ์†Œ(Storage)๋ผ๊ณ  ์ƒ๊ฐ.
๊ฐ ํ–‰์€ record๋ผ๊ณ  ํ•˜๊ณ , record๋“ค์€ ๋ช‡ ์กฐ๊ฐ์˜ ์ •๋ณด๋กœ ์ด๋ฃจ์–ด์ง€๋Š”๋ฐ ์ด๋•Œ ์กฐ๊ฐ์ด column ์ด ๋œ๋‹ค.

SQL Command

SELECT | UPDATE | DLELTE | INSERT INTO | CREATE DATABASE
ALTER DATABASE | CREATE TABLE | ALTER TABLE(modifies a table)
DROP TABLE(delete a table) | CREATE INDEX | DROP INDEX(deletes an index)

๐Ÿ‘‰ SQL JOINs

Different Types of SQL JOINs

  • (INNER) JOIN: Returns records that have matching values in both tables
  • LEFT (OUTER) JOIN: Returns all records from the left table, and the matched records from the right table
  • RIGHT (OUTER) JOIN: Returns all records from the right table, and the matched records from the left table
  • FULL (OUTER) JOIN: Returns all records when there is a match in either left or right table

// ์˜ˆ์‹œ์ฝ”๋“œ
mysql>select s.name, s.email from students s inner join classes_students cs on (s.id=cs.student_id) inner join classes c on (cs.class_id=c.id) where c.name="CS 101";
profile
TIL record

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