๋ณธ๋ฌธ ๋ฐ”๋กœ๊ฐ€๊ธฐ

TIL/๐Ÿงฌ DB

DB์™€ DBMS, ๊ทธ๋ฆฌ๊ณ  SQL ๋ช…๋ น์–ด ๋ชจ์Œ

DB(DataBase)


์—ฌ๋Ÿฌ ์‚ฌ๋žŒ๋“ค์ด ๊ณต์œ ํ•˜๊ณ  ์‚ฌ์šฉํ•  ๋ชฉ์ ์œผ๋กœ ํ†ตํ•ฉ ๊ด€๋ฆฌ๋˜๋Š” ๋ฐ์ดํ„ฐ๋“ค์˜ ๋ชจ์ž„ ์ฆ‰, ๊ด€๋ จ๋œ ๋ฐ์ดํ„ฐ์˜ ๋ชจ์ž„

 

 

๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ •์˜ 4๊ฐ€์ง€

  1. Integrated data(ํ†ตํ•ฉ ๋ฐ์ดํ„ฐ) : ์ค‘๋ณต ์ตœ์†Œํ™”, ํ†ต์ œ๊ฐ€ ๊ฐ€๋Šฅํ•œ ์ค‘๋ณต๋งŒ ํ—ˆ์šฉ
  2. Shared data(๊ณต์œ  ๋ฐ์ดํ„ฐ) : ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ํ•จ๊ป˜ ์†Œ์œ , ์ด์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๊ณต์šฉ ๋ฐ์ดํ„ฐ
  3. Operational data(์šด์˜ ๋ฐ์ดํ„ฐ) : ์กฐ์ง ๊ธฐ๋Šฅ์„ ์ˆ˜ํ–‰ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐ˜๋“œ์‹œ ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ
  4. Stored data(์ €์žฅ ๋ฐ์ดํ„ฐ) : ์ปดํ“จํ„ฐ๊ฐ€ ์ ‘๊ทผํ•  ์ˆ˜ ์žˆ๋Š” ๋งค์ฒด์— ์ €์žฅ๋œ ๋ฐ์ดํ„ฐ

ํŠน์ง•

  1. Continuous evolution ๊ณ„์† ๋ณ€ํ™” : insert, delete, update
  2. Real-time accessibility ์‹ค์‹œ๊ฐ„ ์ ‘๊ทผ์„ฑ : ์‚ฌ์šฉ์ž์˜ ๋ฐ์ดํ„ฐ ์š”๊ตฌ์— ์‹ค์‹œ๊ฐ„์œผ๋กœ ์‘๋‹ต
  3. Concurrent sharing ๋™์‹œ ๊ณต์œ  : ์„œ๋กœ ๋‹ค๋ฅธ ๋ฐ์ดํ„ฐ ๋™์‹œ ์‚ฌ์šฉ, ๊ฐ™์€ ๋ฐ์ดํ„ฐ์˜ ๋™์‹œ ์‚ฌ์šฉ
  4. Content reference ๋‚ด์šฉ ๊ธฐ๋ฐ˜ ์ฐธ๊ณ  : ์ €์žฅ๋œ ์ฃผ์†Œ๋‚˜ ์œ„์น˜๊ฐ€ ์•„๋‹Œ ๋ฐ์ดํ„ฐ์˜ ๋‚ด์šฉ, value(๊ฐ’)์œผ๋กœ ์ฐธ์กฐ

๊ตฌ์„ฑ์š”์†Œ

  1. external schema(์™ธ๋ถ€ ์Šคํ‚ค๋งˆ) : ๊ฐœ์ธ ์‚ฌ์šฉ์ž๊ฐ€ ์ ‘๊ทผํ•˜๋Š” DB
  2. conceptual schema(๊ฐœ๋… ์Šคํ‚ค๋งˆ) : ํ†ตํ•ฉ๋œ ์กฐ์ง ์ „์ฒด์˜ DB
  3. internal schema(๋‚ด๋ถ€ ์Šคํ‚ค๋งˆ) : ์ €์žฅ์žฅ์น˜์˜ ์ž…์žฅ์—์„œ DB ์ „์ฒด๊ฐ€ ์ €์žฅ๋˜๋Š” ๋ฐฉ๋ฒ• ๋ช…์„ธ

⇒ DB๋Š” ๋ฌด์—‡์œผ๋กœ ๊ตฌ์„ฑ๋˜๋Š” ๊ฐ€?

ํ…Œ์ด๋ธ”๋“ค๋กœ ๊ตฌ์„ฑ๋˜์–ด ์žˆ๋‹ค.

 

 

ํ…Œ์ด๋ธ”(Table)

๋ฆด๋ ˆ์ด์…˜, ์Šคํ‚ค๋งˆ์™€ ๊ฐ™์€ ๋œป์œผ๋กœ, column(์—ด)๊ณผ row(ํ–‰)์œผ๋กœ ๊ตฌ์„ฑ๋œ 2์ฐจ์› ํ‘œ์˜ ํ˜•ํƒœ

  • ํ–‰ row == ๋ ˆ์ฝ”๋“œ record == ํˆฌํ”Œ tuple ์—ด coliumn == ์†์„ฑ attribute == ํ•„๋“œ field
  • ํ…Œ์ด๋ธ” == ํ‘œ == ์—‘์…€ํŒŒ์ผ
  • ํ‘œ == ์นผ๋Ÿผ(์—ด, 1์ค„) + ๋กœ์šฐ(ํ–‰, ์—ฌ๋Ÿฌ์ค„)
  • ์นผ๋Ÿผ == ๋ฒˆํ˜ธ, ์ด๋ฆ„, ๋‚˜์ด, ์—ฐ๋ฝ์ฒ˜
  • ๋กœ์šฐ == 1, ํ™๊ธธ๋™, 24, 010-1234-1234

 

์ฃผ์˜ํ•  ์ 

  • ํ‘œ์—์„œ ์นผ๋Ÿผ์€ ํ•œ์ค„๋งŒ ์กด์žฌํ•œ๋‹ค.
  • ํ‘œ์—์„œ ๋กœ์šฐ๋Š” 0 ~ N์ค„ ์กด์žฌํ•  ์ˆ˜ ์žˆ๋‹ค.

 

์นด๋””๋„๋ฆฌํ‹ฐ(cardnality)

๋ ˆ์ฝ”๋“œ(==ํ–‰)์˜ ๊ฐœ์ˆ˜

 

 

DBMS(DataBase Management System)


DB๋ฅผ ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ

  • ํŒŒ์ผ ์‹œ์Šคํ…œ์˜ ๋ฌธ์ œ(์ค‘๋ณต์„ฑ, ์ข…์†์„ฑ)๋ฅผ ํ•ด๊ฒฐํ•˜๊ธฐ ์œ„ํ•ด ์ œ์‹œ๋œ ์†Œํ”„ํŠธ์›จ์–ด
  • ์กฐ์ง์— ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ํ†ตํ•ฉํ•˜์—ฌ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•œ๋‹ค.
  • ์ž๋ฃŒ์˜ ํ†ตํ•ฉ์„ฑ ์ฆ์ง„, ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์— ์šฉ์ด
  • ์žฅ์ : ์ค‘๋ณต ์ตœ์†Œํ™”, ๋ฐ์ดํ„ฐ ๋…๋ฆฝ์„ฑ

⇒ MySQL์€ DBMS์ด๋‹ค.

 

DBMS ์ฃผ์š” ๊ธฐ๋Šฅ

  1. definition facility ์ •์˜ ๊ธฐ๋Šฅ : ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ตฌ์กฐ๋ฅผ ์ •์˜ํ•˜๊ฑฐ๋‚˜ ์ˆ˜์ • ๊ฐ€๋Šฅ
  2. manipulation facility ์กฐ์ž‘ ๊ธฐ๋Šฅ : ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์‚ญ์ œ, ์ˆ˜์ •, ๊ฒ€์ƒ‰ํ•˜๋Š” ์—ฐ์‚ฐ
  3. control facility ์ œ์–ด ๊ธฐ๋Šฅ : ๋ฐ์ดํ„ฐ๋ฅผ ํ•ญ์ƒ ์ •ํ™•ํ•˜๊ณ  ์•ˆ์ „ํ•˜๊ฒŒ ์œ ์ง€
    • ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ ์œ ์ง€, ๋ณด์•ˆ ์œ ์ง€, ๊ถŒํ•œ ๊ฒ€์‚ฌ, ๋ณ‘ํ–‰ ์ œ์–ด, ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž ์ ‘๊ทผ ๊ฐ€๋Šฅ

 

 

SQL


DB์—๊ฒŒ ๋ช…๋ น์„ ๋‚ด๋ฆด ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ๋ช…๋ น์–ด

๋ช…๋ น์–ด ์ข…๋ฅ˜

  1. ์ „์ฒด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๋ฆฌ์ŠคํŒ…
    • SHOW DATABASES;
  2. ํŠน์ • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ ํƒ, ๋‹ค๋ฅธ๋ง๋กœ ํ•˜๋ฉด ํŠน์ • ํด๋”(DB)๋กœ ์ ‘์† ๋ช…๋ น์–ด
    • USE DB์ด๋ฆ„;
      • EX : USE mysql;
  3. ํ˜„์žฌ ์ ‘์†ํ•ด ์žˆ๋Š” DB์•ˆ์˜ ๋ชจ๋“  ํ…Œ์ด๋ธ”๋“ค์„ ๋ฆฌ์ŠคํŒ…
    • SHOW TABLES;

 

 

DB, ํ…Œ์ด๋ธ”, ๋กœ์šฐ ๋ณ„ ์กฐํšŒ, ์ƒ์„ฑ, ์‚ญ์ œ, ์ˆ˜์ • ๋ช…๋ น์–ด

๊ธฐ๋ณธ์ ์ธ SQL ์ •๋ฆฌ

์ข…๋ฅ˜ DB(๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค/ํด๋”) TABLE(ํ…Œ์ด๋ธ”/์—‘์…€ํŒŒ์ผ) ROW(๋กœ์šฐ/์—‘์…€ํŒŒ์ผ์˜ ํ•œ ํ–‰)

์กฐํšŒ SHOW DATABASES; SHOW TABLES;
SHOW TABLES LIKE 'ar%'DESC article; (ํ•œ ํ…Œ์ด๋ธ” ์•ˆ์— ์žˆ๋Š” ์นผ๋Ÿผ๋“ค ์กฐํšŒ)
SELECT id, regDate
FROM article
WHERE id >= 4
AND title LIKE '์ œ%'
ORDER BY id DESC
LIMIT 3;
์ƒ์„ฑ CREATE DATABASE a1; CREATE TABLE article (  
id INT(10) UNSIGNED NOT NULL AUTO_INCREMENT,  
regDate DATETIME NOT NULL,  
title VARCHAR(100) NOT NULL, 
body TEXT NOT NULL,  
PRIMARY KEY(id)
);
INSERT INTO artile
SET regDate = NOW(),
title = '์ œ๋ชฉ1',
body = '๋‚ด์šฉ1';
์ˆ˜์ • ์—†์Œ ALTER TABLE article ADD COLUMN hit INT(10);
ALTER TABLE article MODIFY COLUMNhit INT(10) UNSIGNED NOT NULL;
ALTER TABLE article CHANGE COLUMN hit hitNumber INT(10) UNSIGNED NOT NULL;
ALTER TABLE article DROP COLUMN hit;
ALTER TABLE article DROP INDEXPRIMARY;
ALTER TABLE article ADD PRIMARYKEY(id);
UPDATE article
SET title = '์ธ๊ธฐ๊ธ€'
WHERE id > 3;
์‚ญ์ œ DROP DATABASE a1; DROP TABLE article; DELETE FROM article;

 

'TIL > ๐Ÿงฌ DB' ์นดํ…Œ๊ณ ๋ฆฌ์˜ ๋‹ค๋ฅธ ๊ธ€

DB๊ฐ€ DBMS๋ž‘ ๋‹ค๋ฅธ ๊ฐœ๋…์ธ๊ฐ€์š”? ๊ทธ๋ ‡๋‹ค๋ฉด RDBMS๋Š”์š”?  (0) 2023.03.11
DML๊ณผ DDL  (0) 2023.03.10
Index(์ƒ‰์ธ)  (0) 2023.03.10