Database Schema Design

SQL (Structured Query Language)

  • ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์ž์ฒด๋ฅผ ๋งํ•˜๋Š”๊ฒŒ ์•„๋‹ˆ๋ผ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์™€ ์ƒํ˜ธ ์ž‘์šฉํ•˜๋Š” ๋ฐ ์‚ฌ์šฉ ํ•˜๋Š” ์ฟผ๋ฆฌ ์–ธ์–ด๋ฅผ ๋งํ•œ๋‹ค.

  • ํ…Œ์ด๋ธ” ํ˜•์‹

  • ๋Œ€๋ถ€๋ถ„์˜ ๊ฒฝ์šฐ, SQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ˆ˜์งํ™•์žฅ์ด ๊ฐ€๋Šฅํ•˜๊ธฐ๋•Œ๋ฌธ์— CPU, RAM, SSD์™€๊ฐ™์€ ๊ฒƒ์„ ์ฆ๊ฐ€์‹œํ‚ด

  • ์‚ฌ์ „ ์ •์˜ ๋œ ์Šคํ‚ค๋งˆ

  • ์ค‘๋ณต๋˜๋Š” ๋ฐ์ดํ„ฐ๊ฐ€ ์—†๋‹ค.

NoSQL (Not only SQL)

  • ๋น„๊ด€๊ณ„ ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค

  • ํ‚ค value, ๋ฌธ์„œ, ์ปฌ๋Ÿผ๋ฐ” ๋ฐ ๊ทธ๋ž˜ํ”„ ํ˜•์‹์„ ํฌํ•จํ•œ ๋‹ค์–‘ํ•œ ๋ฐ์ดํ„ฐ ๋ชจ๋ธ์„ ์ˆ˜์šฉํ•  ์ˆ˜ ์žˆ๋Š” ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค ์„ค๊ณ„์— ๋Œ€ํ•œ ์ ‘๊ทผ๋ฐฉ์‹์ด๋‹ค.

    • key - value : ์—์–ด๋กœ์ŠคํŒŒ์ดํฌ(Aerospike), Riak

    • Column Family: Cassandra

    • Document: MongoDB

    • Graph: Neo4j, InfiniteGraph

    • Column Family: HBase

  • ๋ฐ˜๋ฉด์— NoSQL ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค๋Š” ์ˆ˜ํ‰ ์ ์œผ๋กœ ํ™•์žฅ ๊ฐ€๋Šฅํ•ฉ๋‹ˆ๋‹ค. ์ฆ‰, ๋ฐ์ดํ„ฐ๋ฒ ์ด์Šค์— ์„œ๋ฒ„๋ฅผ ์ถ”๊ฐ€ํ•˜๊ธฐ ๋งŒํ•˜๋ฉด ๋” ๋งŽ์€ ํŠธ๋ž˜ํ”ฝ์„ ์ฒ˜๋ฆฌ ํ•  ์ˆ˜ ์žˆ์Šต๋‹ˆ๋‹ค.

  • ์ด๋Ÿฌํ•œ ์ฐจ์ด๋Š” ๊ฐ™์€ ๊ฑด๋ฌผ์— ์ธต์„ ๋Š˜๋ฆฌ๋Š” ๊ฒƒ๊ณผ, ๊ฑด๋ฌผ ์˜†์— ๊ฑด๋ฌผ์„ ์ƒˆ๋กœ ์ถ”๊ฐ€ํ•˜๋Š” ์ฐจ์ด์™€ ๊ฐ™์Šต๋‹ˆ๋‹ค.

  • ๊ตฌ์กฐํ™”๋˜์ง€ ์•Š์€ ๋ฐ์ดํ„ฐ์— ๋Œ€ํ•œ ๋™์  ์Šคํ‚ค๋งˆ

shell

์ง์ ‘ mongodb์™€ ๋ช…๋ น์–ด๋‚ ๋ ค์„œ ์ž‘์—…ํ•˜๋Š”๊ฒƒ. ํ™•์ธํ•˜๊ฑฐ๋‚˜,

show dbs

๋‚ด ์ปดํ“จํ„ฐ์— ์žˆ๋Š” db์ข…๋ฅ˜๋“ค์„ ๋ณด์—ฌ์ค€๋‹ค.

use test
show collections
db.articles.find()
db.articles.insert()
db.articles.find().pretty()
db.articles.remove({})
db.createCollection(name)
mongoimport --db dbName --collection collectionName --file fileName.json --jsonArray
db.collection.insertMany()

Last updated

Was this helpful?