Home > CS > 2024 > ๐Ÿ’พ [CS] Database๋ž€?

๐Ÿ’พ [CS] Database๋ž€?
CS

๐Ÿ’พ [CS] Database๋ž€?

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

1๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ฃผ์š” ํŠน์ง•.

1. ๋ฐ์ดํ„ฐ ์ €์žฅ.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•์‹์œผ๋กœ ๊ตฌ์กฐํ™”ํ•˜์—ฌ ์ €์žฅํ•ฉ๋‹ˆ๋‹ค.
  • ํ…Œ์ด๋ธ”์„ ํ–‰(row), ์—ด(column)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ฐ ํ–‰์€ ๋ฐ์ดํ„ฐ์˜ ํ•œ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ์—ด์€ ๋ฐ์ดํ„ฐ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…, ์ˆ˜์ •, ์‚ญ์ œ, ๊ฒ€์ƒ‰ํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
    • ์ด ๊ณผ์ •์—์„œ ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ, ๋ฌด๊ฒฐ์„ฑ, ๋ณด์•ˆ์ด ๋ณด์žฅ๋˜๋„๋ก ๊ด€๋ฆฌ๋ฉ๋‹ˆ๋‹ค.

3. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ๊ณผ ์ผ๊ด€์„ฑ ์„ ์œ ์ง€ํ•˜๊ธฐ ์œ„ํ•œ ๋‹ค์–‘ํ•œ ๊ทœ์น™๊ณผ ์ œ์•ฝ ์กฐ๊ฑด์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ๋ณด์žฅํ•˜๊ฑฐ๋‚˜, ์™ธ๋ถ€ ํ…Œ์ด๋ธ”๊ณผ์˜ ์ฐธ์กฐ ๊ด€๊ณ„๋ฅผ ์œ ์ง€ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

4. ๋™์‹œ์„ฑ ์ œ์–ด.

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

5. ๋ฐ์ดํ„ฐ ๋ณด์•ˆ.

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

6. ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ์†์‹ค์„ ๋ฐฉ์ง€ํ•˜๊ธฐ ์œ„ํ•ด ๋ฐฑ์—… ๋ฐ ๋ณต๊ตฌ ๊ธฐ๋Šฅ์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์‹œ์Šคํ…œ ์žฅ์• ๋‚˜ ์˜ค๋ฅ˜๊ฐ€ ๋ฐœ์ƒํ•˜๋”๋ผ๋„ ๋ฐ์ดํ„ฐ๊ฐ€ ๋ณต๊ตฌ๋  ์ˆ˜ ์žˆ๋„๋ก ์„ค๊ณ„๋ฉ๋‹ˆ๋‹ค.

2๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ์ข…๋ฅ˜.

1. ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Relational Database, RDBMS)

๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋ฉฐ, ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์„ค์ •ํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.
๊ฐ ํ…Œ์ด๋ธ”์€ ๊ณ ์œ ํ•œ Primary Key(๊ธฐ๋ณธ ํ‚ค) ๋ฅผ ํ†ตํ•ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”๊ณผ ์—ฐ๊ฒฐ๋ฉ๋‹ˆ๋‹ค.
๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ๋Š” SQL(Structured Query Language) ๋ฅผ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ: MySQL, PostgreSQL, Oracle, Microsoft SQL Server, SQLite ๋“ฑ
  • ํŠน์ง•
    • ๋ฐ์ดํ„ฐ๋ฅผ ํ…Œ์ด๋ธ” ํ˜•ํƒœ๋กœ ์ €์žฅํ•˜๋ฉฐ, ํ–‰(row) ๊ณผ ์—ด(cloumn) ๋กœ ๊ตฌ์„ฑ๋ฉ๋‹ˆ๋‹ค.
    • SQL์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•˜๊ณ  ์กฐ์ž‘ํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•˜๊ธฐ ์œ„ํ•œ ์ œ์•ฝ ์กฐ๊ฑด(Primary Key, Foreign Key ๋“ฑ)์„ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
  • ์˜ˆ์‹œ:
      CREATE TABLE User (
          id INT PRIMARY KEY,
          name VARCHAR(100),
          email VARCHAR(100) UNIQUE
      );
        
      INSERT INTO Users (id, name, email) VALUES (1, 'Kobe', 'kobe@example.com');
        
      SELECT * FROM Users;
    

2. NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Not Only SQL)

NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ ๋˜๋Š” ๋ฐ˜์ •ํ˜• ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ, ์œ ์—ฐํ•œ ์Šคํ‚ค๋งˆ์™€ ํ™•์žฅ์„ฑ์„ ๊ฐ•์กฐํ•ฉ๋‹ˆ๋‹ค.
NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋‹ค์–‘ํ•œ ์œ ํ˜•์˜ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ(๋ฌธ์„œ, ํ‚ค-๊ฐ’ ๊ทธ๋ž˜ํ”„ ๋“ฑ)์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ: MongoDB, Cassandra, Redis, Couchbase, Neo4j ๋“ฑ
  • ํŠน์ง•
    • ๋น„์ •ํ˜• ๋ฐ์ดํ„ฐ๋‚˜ ๋Œ€๊ทœ๋ชจ ๋ฐ์ดํ„ฐ๋ฅผ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์ ํ•ฉํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ์Šคํ‚ค๋งˆ๊ฐ€ ๊ณ ์ •๋˜์ง€ ์•Š์•„ ์œ ์—ฐํ•œ ๋ฐ์ดํ„ฐ ๊ตฌ์กฐ๋ฅผ ์ง€์›ํ•ฉ๋‹ˆ๋‹ค.
    • ๊ณ ์† ์ฝ๊ธฐ/์“ฐ๊ธฐ์™€ ๋†’์€ ํ™•์žฅ์„ฑ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.
  • ๋ฌธ์„œํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(MongoDB ์˜ˆ์‹œ)
    {
      "_id": 1,
      "name": "Kobe",
      "email": "kobe@example.com"
    }
    
  • ํ‚ค-๊ฐ’ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค (Redis ์˜ˆ์‹œ)
    SET "name" "Kobe"
    GET "name"
    

3. ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

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

ํด๋ผ์šฐ๋“œ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํ•„์š”์— ๋”ฐ๋ผ ์ž์›์„ ํ™•์žฅํ•  ์ˆ˜ ์žˆ๊ณ , ๋†’์€ ๊ฐ€์šฉ์„ฑ๊ณผ ์ž๋™ ๋ฐฑ์—… ๋“ฑ์˜ ์žฅ์ ์„ ์ œ๊ณตํ•ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ: Amazon RDS, Google Clould SQL, Microsoft Azure SQL Database, MongoDB Atlas ๋“ฑ

4. ๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

๊ทธ๋ž˜ํ”„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ๋…ธํŠธ(Node)์™€ ์—ฃ์ง€(Edge)๋กœ ํ‘œํ˜„ํ•˜์—ฌ ์ €์žฅํ•˜๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž…๋‹ˆ๋‹ค.
๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ํ‘œํ˜„ํ•˜๊ณ  ํƒ์ƒ‰ํ•  ์ˆ˜ ์žˆ๊ธฐ ๋•Œ๋ฌธ์—, ์†Œ์…œ ๋„คํŠธ์›Œํฌ, ์ถ”์ฒœ ์‹œ์Šคํ…œ ๋“ฑ์—์„œ ์ž์ฃผ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

  • ์˜ˆ์‹œ: Neo4j, ArangoDB, Amazon Neptune
  • ํŠน์ง•
    • ๋ฐ์ดํ„ฐ๋ฅผ ๊ทธ๋ž˜ํ”„ ๊ตฌ์กฐ๋กœ ํ‘œํ˜„ํ•˜์—ฌ ๋ณต์žกํ•œ ๊ด€๊ณ„๋ฅผ ํšจ์œจ์ ์œผ๋กœ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.
    • ๋ฐ์ดํ„ฐ ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ค‘์ ์ ์œผ๋กœ ์ฒ˜๋ฆฌํ•˜๋Š” ๋ฐ ์œ ๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

3๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ๊ธฐ๋ณธ ๊ฐœ๋….

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

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๋Š” ๊ธฐ๋ณธ ๋‹จ์œ„์ž…๋‹ˆ๋‹ค.
  • ํ…Œ์ด๋ธ”์€ ํ–‰(row)๊ณผ ์—ด(column)๋กœ ๊ตฌ์„ฑ๋˜๋ฉฐ, ๊ฐ ํ–‰์€ ๊ฐœ๋ณ„ ๋ฐ์ดํ„ฐ ๋ ˆ์ฝ”๋“œ๋ฅผ ๋‚˜ํƒ€๋‚ด๊ณ , ์—ด์€ ๋ฐ์ดํ„ฐ์˜ ์†์„ฑ์„ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

2. ์—ด(Column)

  • ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ์—ด์€ ๋ฐ์ดํ„ฐ๋ฅผ ์„ค๋ช…ํ•˜๋Š” ์†์„ฑ์ž…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์—์„œ ์—ด์€ ์ด๋ฆ„(name), ์ด๋ฉ”์ผ(email) ๊ฐ™์€ ์†์„ฑ์ผ ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

3. ํ–‰(Row)

  • ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ–‰์€ ๋ฐ์ดํ„ฐ์˜ ํ•œ ๋ ˆ์ฝ”๋“œ(์ธ์Šคํ„ด์Šค)๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์‚ฌ์šฉ์ž ํ…Œ์ด๋ธ”์—์„œ ํ–‰์€ ๊ฐœ๋ณ„ ์‚ฌ์šฉ์ž ์ •๋ณด๋ฅผ ๋‚˜ํƒ€๋ƒ…๋‹ˆ๋‹ค.

4. ๊ธฐ๋ณธ ํ‚ค(Primary Key)

  • ํ…Œ์ด๋ธ”์—์„œ ๊ฐ ํ–‰์„ ๊ณ ์œ ํ•˜๊ฒŒ ์‹๋ณ„ํ•  ์ˆ˜ ์žˆ๋Š” ๊ฐ’์ž…๋‹ˆ๋‹ค.
  • Primary Key๋Š” ํ…Œ์ด๋ธ”์—์„œ ์ค‘๋ณต๋˜์ง€ ์•Š๋Š” ๊ฐ’์„ ๊ฐ€์ ธ์•ผ ํ•˜๋ฉฐ, ๊ฐ ๋ ˆ์ฝ”๋“œ๊ฐ€ ๊ณ ์œ ํ•˜๊ฒŒ ๊ตฌ๋ถ„๋  ์ˆ˜ ์žˆ๋„๋ก ํ•ฉ๋‹ˆ๋‹ค.

5. ์™ธ๋ž˜ ํ‚ค(Foreign Key)

  • ํ…Œ์ด๋ธ” ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ •์˜ํ•  ๋•Œ ์‚ฌ์šฉ๋˜๋Š” ํ‚ค์ž…๋‹ˆ๋‹ค.
  • ํ•œ ํ…Œ์ด๋ธ”์˜ ์—ด์ด ๋‹ค๋ฅธ ํ…Œ์ด๋ธ”์˜ ๊ธฐ๋ณธ ํ‚ค๋ฅผ ์ฐธ์กฐํ•˜๋Š” ๋ฐฉ์‹์œผ๋กœ ๋‘ ํ…Œ์ด๋ธ”์„ ์—ฐ๊ฒฐํ•ฉ๋‹ˆ๋‹ค.

6. SQL(Structured Query Language)

  • ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์—์„œ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅ, ์กฐํšŒ, ์ˆ˜์ •, ์‚ญ์ œํ•˜๊ธฐ ์œ„ํ•ด ์‚ฌ์šฉํ•˜๋Š” ํ‘œ์ค€ ์–ธ์–ด์ž…๋‹ˆ๋‹ค.
  • SQL์„ ์‚ฌ์šฉํ•˜๋ฉด ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ๋ช…๋ น์„ ์ „๋‹ฌํ•˜์—ฌ ์›ํ•˜๋Š” ์ž‘์—…์„ ์ˆ˜ํ–‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

SQL์˜ ์ฃผ์š” ๋ช…๋ น์–ด

  • SELECT: ๋ฐ์ดํ„ฐ๋ฅผ ์กฐํšŒํ•ฉ๋‹ˆ๋‹ค.
SELECT * FROM Users;
  • INSERT: ๋ฐ์ดํ„ฐ๋ฅผ ์‚ฝ์ž…ํ•ฉ๋‹ˆ๋‹ค.
INSERT INTO Users (name, email) VALUES ('Kobe', 'kobe@example.com');
  • UPDATE: ๋ฐ์ดํ„ฐ๋ฅผ ์ˆ˜์ •ํ•ฉ๋‹ˆ๋‹ค.
UPDATE Users SET email = 'new_email@example.com' WHERE id = 1;
  • DELETE: ๋ฐ์ดํ„ฐ๋ฅผ ์‚ญ์ œํ•ฉ๋‹ˆ๋‹ค.
DELETE FROM Users WHERE id = 1;

4๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ๊ด€๋ฆฌ ์‹œ์Šคํ…œ(DBMS)

DBMS(Database Management System) ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋ฅผ ๊ด€๋ฆฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ์˜ ์ €์žฅ, ์ˆ˜์ •, ์‚ญ์ œ, ๊ฒ€์ƒ‰์„ ์ง€์›ํ•˜๋Š” ์†Œํ”„ํŠธ์›จ์–ด ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.

DBMS๋Š” ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ, ๋ณด์•ˆ, ๋™์‹œ์„ฑ ์ œ์–ด๋ฅผ ๋ณด์žฅํ•˜๊ณ , ๋‹ค์ˆ˜์˜ ์‚ฌ์šฉ์ž๊ฐ€ ํšจ์œจ์ ์œผ๋กœ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•  ์ˆ˜ ์žˆ๋„๋ก ๋„์™€์ค๋‹ˆ๋‹ค.

DBMS์˜ ์—ญํ• .

1. ๋ฐ์ดํ„ฐ ์ €์žฅ ๋ฐ ๊ด€๋ฆฌ.

  • ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ , ๊ด€๋ฆฌํ•˜๋ฉฐ, ํ•„์š”ํ•œ ๋ฐ์ดํ„ฐ๋ฅผ ๋น ๋ฅด๊ฒŒ ๊ฒ€์ƒ‰ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

2. ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ ๋ณด์žฅ.

  • ๋ฐ์ดํ„ฐ์˜ ์ •ํ™•์„ฑ๊ณผ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•ฉ๋‹ˆ๋‹ค.
  • ์ค‘๋ณต ๋ฐ์ดํ„ฐ ๋ฐฉ์ง€, ์™ธ๋ž˜ ํ‚ค ์ œ์•ฝ ๋“ฑ์„ ์‚ฌ์šฉํ•˜์—ฌ ๋ฐ์ดํ„ฐ์˜ ๋ฌด๊ฒฐ์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

3. ๋ณด์•ˆ ๊ด€๋ฆฌ.

  • ์‚ฌ์šฉ์ž๋ณ„๋กœ ์ ‘๊ทผ ๊ถŒํ•œ์„ ๋ถ€์—ฌํ•˜๊ณ , ๋ฐ์ดํ„ฐ ์ ‘๊ทผ์„ ์ œ์–ดํ•ฉ๋‹ˆ๋‹ค.

4. ๋™์‹œ์„ฑ ์ œ์–ด.

  • ์—ฌ๋Ÿฌ ์‚ฌ์šฉ์ž๊ฐ€ ๋™์‹œ์— ๋ฐ์ดํ„ฐ์— ์ ‘๊ทผํ•  ๋•Œ, ๋ฐ์ดํ„ฐ์˜ ์ผ๊ด€์„ฑ์„ ์œ ์ง€ํ•˜๋ฉด์„œ ๋™์‹œ์„ฑ์„ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

5. ํŠธ๋žœ์žญ์…˜ ๊ด€๋ฆฌ.

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

5๏ธโƒฃ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์˜ ํ™œ์šฉ ์‚ฌ๋ก€.

1. ์›น ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜.

  • ์‚ฌ์šฉ์ž ์ •๋ณด, ์ œํ’ˆ ์ •๋ณด, ๊ฒŒ์‹œ๊ธ€ ๋“ฑ์„ ์ €์žฅํ•˜๋Š” ๋ฐ ์‚ฌ์šฉํ•ฉ๋‹ˆ๋‹ค.
    • ์˜ˆ๋ฅผ ๋“ค์–ด, ์ „์ž์ƒ๊ฑฐ๋ž˜ ์‚ฌ์ดํŠธ์—์„œ ์ƒํ’ˆ ์ •๋ณด์™€ ์ฃผ๋ฌธ ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

2. ์€ํ–‰ ์‹œ์Šคํ…œ.

  • ๊ธˆ์œต ๊ฑฐ๋ž˜ ๋ฐ์ดํ„ฐ๋ฅผ ์•ˆ์ „ํ•˜๊ฒŒ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋ฉฐ, ํŠธ๋žœ์žญ์…˜์„ ํ†ตํ•ด ์ •ํ™•์„ฑ์„ ๋ณด์žฅํ•ฉ๋‹ˆ๋‹ค.

3. ๋ณ‘์› ์ •๋ณด ์‹œ์Šคํ…œ.

  • ํ™˜์ž ์ •๋ณด, ์ง„๋ฃŒ ๊ธฐ๋ก, ์ฒ˜๋ฐฉ์ „์„ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.

4. ์†Œ์…œ ๋„คํŠธ์›Œํฌ.

์‚ฌ์šฉ์ž ๊ฐ„์˜ ๊ด€๊ณ„๋ฅผ ์ €์žฅํ•˜๊ณ , ๋‰ด์Šคํ”ผ๋“œ, ๋ฉ”์‹œ์ง€ ๋“ฑ์˜ ๋ฐ์ดํ„ฐ๋ฅผ ๊ด€๋ฆฌํ•ฉ๋‹ˆ๋‹ค.

6๏ธโƒฃ ์š”์•ฝ.

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(Database) ๋Š” ๋ฐ์ดํ„ฐ๋ฅผ ์ฒด๊ณ„์ ์œผ๋กœ ์ €์žฅํ•˜๊ณ  ๊ด€๋ฆฌํ•˜๋Š” ์‹œ์Šคํ…œ์ž…๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฅผ ์ €์žฅํ•˜๊ณ , ๊ฒ€์ƒ‰ํ•˜๊ณ , ์ˆ˜์ •ํ•˜๊ณ , ์‚ญ์ œํ•˜๋Š” ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ์ฃผ๋กœ ๊ด€๊ณ„ํ˜• ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค(RDBMS)์™€ NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋กœ ๊ตฌ๋ถ„๋ฉ๋‹ˆ๋‹ค.
  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ํšจ์œจ์ ์ธ ๋ฐ์ดํ„ฐ ๊ด€๋ฆฌ, ๋ฐ์ดํ„ฐ ๋ฌด๊ฒฐ์„ฑ, ๋™์‹œ์„ฑ ์ œ์–ด, ๋ณด์•ˆ ๋“ฑ์˜ ๊ธฐ๋Šฅ์„ ์ œ๊ณตํ•˜๋ฉฐ, ๋‹ค์–‘ํ•œ ์• ํ”Œ๋ฆฌ์ผ€์ด์…˜์—์„œ ํ•ต์‹ฌ์ ์œผ๋กœ ์‚ฌ์šฉ๋ฉ๋‹ˆ๋‹ค.