2024. 2. 27. 23:48ใCS - Roadmap.sh/16. Databases
CS - 16. Databases - 16.1 SQL vs NoSQL databases
Databases
๐กA database is a collection of useful data of one or more related organizations structured in a way to make data an asset to the organization. A database management system is a software designed to assist in maintaining and extracting large collections of data in a timely fashion.
๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋ฐ์ดํฐ๋ฅผ ์กฐ์ง์ ์์ฐ์ผ๋ก ๋ง๋ค๊ธฐ ์ํ ๋ฐฉ์์ผ๋ก ๊ตฌ์กฐํ๋ ํ๋ ์ด์์ ๊ด๋ จ ์กฐ์ง์ ์ ์ฉํ ๋ฐ์ดํฐ ๋ชจ์์ ๋๋ค. ๋ฐ์ดํฐ๋ฒ ์ด์ค ๊ด๋ฆฌ ์์คํ ์ ๋๊ท๋ชจ ๋ฐ์ดํฐ ๋ชจ์์ ์ ์์ ์ ์ง ๊ด๋ฆฌํ๊ณ ์ถ์ถํ๋ ๋ฐ ๋์์ด ๋๋๋ก ์ค๊ณ๋ ์ํํธ์จ์ด์ ๋๋ค.
SQL vs NoSQL databases
๐กSQL stands for Structured Query Language. Itโs used for relational databases. A SQL database is a collection of tables that stores a specific set of structured data. Some examples are PostgreSQL, MySQL, MariaDB etc.
NoSQL stands for Not Only SQL. Itโs used for non-relational databases. A NoSQL database is a collection of collections that stores a specific set of unstructured data. Some examples are MongoDB, CouchDB, Redis etc.
SQL์ ๊ตฌ์กฐํ๋ ์ฟผ๋ฆฌ ์ธ์ด์ ์ฝ์์
๋๋ค. ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ๋ฉ๋๋ค. SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํน์ ๊ตฌ์กฐํ๋ ๋ฐ์ดํฐ ์งํฉ์ ์ ์ฅํ๋ ํ
์ด๋ธ ๋ชจ์์
๋๋ค. ๋ช ๊ฐ์ง ์๋ก๋ PostgreSQL, MySQL, MariaDB ๋ฑ์ด ์์ต๋๋ค.
NoSQL์ Not Only SQL์ ์ฝ์์
๋๋ค. ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฌ์ฉ๋ฉ๋๋ค. NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ํน์ ๋น์ ํ ๋ฐ์ดํฐ ์งํฉ์ ์ ์ฅํ๋ ์ปฌ๋ ์
์ ๋ชจ์์
๋๋ค. ๋ช ๊ฐ์ง ์๋ก๋ MongoDB, CouchDB, Redis ๋ฑ์ด ์์ต๋๋ค.
SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค
SQL(Structured Query Language) ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค(RDBMS)๋ก ์๋ ค์ ธ ์์ต๋๋ค. ์ด๋ ๋ฐ์ดํฐ๋ฅผ ์ด๊ณผ ํ์ผ๋ก ๊ตฌ์ฑ๋ ํ
์ด๋ธ์ ์ ์ฅํ๋ ๊ตฌ์กฐ๋ฅผ ๊ฐ์ง๊ณ ์์ต๋๋ค. ๊ฐ ํ
์ด๋ธ์ ๊ณ ์ ํ ํค๋ฅผ ํตํด ์ฐ๊ฒฐ๋ ์ ์์ผ๋ฉฐ, ์ด๋ฅผ ํตํด ๋ณต์กํ ์ฟผ๋ฆฌ๋ฅผ ์คํํ ์ ์์ต๋๋ค.
์ฅ์ :
ํ์คํ๋ ์ธ์ด(SQL)๋ฅผ ์ฌ์ฉํ์ฌ ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๊ณ ๊ด๋ฆฌํ ์ ์์ต๋๋ค.
๋ฐ์ดํฐ์ ๋ฌด๊ฒฐ์ฑ์ ๋ณด์ฅํฉ๋๋ค. ์ฆ, ๋ฐ์ดํฐ๊ฐ ์ ํํ๊ณ ์ผ๊ด์ฑ์ด ์๋์ง ํ์ธํ๋ ๊ธฐ๋ฅ์ ์ ๊ณตํฉ๋๋ค.
ํธ๋์ญ์
์ ์ง์ํฉ๋๋ค. ์ด๋ ์ฌ๋ฌ ์์
์ ํ ๋จ์๋ก ๋ฌถ์ด ์ฒ๋ฆฌํ๋ ๊ฒ์ ๋งํฉ๋๋ค.
๋จ์ :
์ํ ํ์ฅ์ด ์ด๋ ต์ต๋๋ค. ์ฆ, ์๋ก์ด ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฉ๋์ ์ฆ๊ฐ์ํค๋ ๊ฒ์ด ๋ณต์กํ ์ ์์ต๋๋ค.
๋ณต์กํ ์ฟผ๋ฆฌ๋ ์์คํ
์ ๋๋ฆฌ๊ฒ ๋ง๋ค ์ ์์ต๋๋ค.
NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค
NoSQL(Not Only SQL) ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ ๋น๊ด๊ณํ ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ฅผ ๋งํฉ๋๋ค. ์ด๋ SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ๋ฌ๋ฆฌ ๊ณ ์ ๋ ์คํค๋ง๊ฐ ์์ผ๋ฉฐ, ๋ฐ์ดํฐ๋ JSON, ํค-๊ฐ ์ ๋ฑ ๋ค์ํ ํํ๋ก ์ ์ฅ๋ ์ ์์ต๋๋ค.
์ฅ์ :
์ํ ํ์ฅ์ด ์ฝ์ต๋๋ค. ์ฆ, ์๋ก์ด ์๋ฒ๋ฅผ ์ถ๊ฐํ์ฌ ๋ฐ์ดํฐ๋ฒ ์ด์ค์ ์ฉ๋์ ์ฝ๊ฒ ์ฆ๊ฐ์ํฌ ์ ์์ต๋๋ค.
์ ์ฐํ ๋ฐ์ดํฐ ๋ชจ๋ธ์ ๊ฐ์ง๊ณ ์์ด, ๋ณ๊ฒฝ ์ฌํญ์ ์ฝ๊ฒ ์ฒ๋ฆฌํ ์ ์์ต๋๋ค.
๋จ์ :
ํ์คํ๋ ์ฟผ๋ฆฌ ์ธ์ด๊ฐ ์์ผ๋ฏ๋ก, ๊ฐ NoSQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ง๋ค ์ฟผ๋ฆฌ๋ฅผ ์์ฑํ๋ ๋ฐฉ๋ฒ์ด ๋ค๋ฆ
๋๋ค.
๋ฐ์ดํฐ์ ์ผ๊ด์ฑ์ ๋ณด์ฅํ๋ ๊ฒ์ด SQL ๋ฐ์ดํฐ๋ฒ ์ด์ค๋ณด๋ค ์ด๋ ต์ต๋๋ค.
๋์ ์ฌ์ฉํ ๊ฒฐ์ ํ ๋ ์ค์ํ๊ฒ ๊ณ ๋ คํด์ผ ํ ์ ์
1. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ
2. ๋ณต์กํ ์ฟผ๋ฆฌ ์ํ
3. ๋ฐ์ดํฐ์ ์ ํํ ์ฌ๋ถ
4. ๋ฐ์ดํฐ ๊ตฌ์กฐ
5. ๋๋์ ๋ฐ์ดํฐ
6. ๋น ๋ฅธ ์๋ต ์๊ฐ
์ ๋๋ก ๋ณผ์ ์์ต๋๋ค.
1. ๋ฐ์ดํฐ ๋ฌด๊ฒฐ์ฑ์ด ์ค์ํ ๊ฒฝ์ฐ - SQL ์ด ํธ๋์ญ์ ์ง์๊ณผ ๋ฌด๊ฒฐ์ฑ ๋ณด์ฅ๊ธฐ๋ฅ์ ์ง์ํฉ๋๋ค.
์ฃผ๋ก ๊ธ์ต, ์๋ฃ ๊ฐ์ ๋ฌด๊ฒฐ์ฑ์ด ์ค์ํ ํ๊ฒฝ์์ ๊ณ ๋ ค๋ฉ๋๋ค.
2. ๋ณต์กํ ์ฟผ๋ฆฌ
- SQL์ ๊ด๊ฒํ ๋ชจ๋ธ์ด DB์ ๋ณต์กํ ์ฟผ๋ฆฌ, JOIN์ฐ์ฐ์ ์ฒ๋ฆฌํ๊ธฐ ์ฝ์ต๋๋ค.
3. ๋ฐ์ดํฐ์ ์ ํํ ์ฌ๋ถ
- SQL ์ ๊ณ ์ ๋ ์คํค๋ง๋ฅผ ๊ฐ์ง๋ฏ๋ก ๋ฐ์ดํฐ์ ๊ตฌ์กฐ๊ฐ ๋ฏธ๋ฆฌ ์ ํด์ ธ ์๋ ๊ฒฝ์ฐ์ ์ข์ต๋๋ค.
4. ๋๋์ ๋ฐ์ดํฐ
- NoSQL์ ์ํ ํ์ฅ์ด ์ฝ๊ธฐ ๋๋ฌธ์, ๋น ๋ฐ์ดํฐ๋ฅผ ๋ค๋ฃฐ๋ ์ ๋ฆฌํฉ๋๋ค.
5. ๋ฐ์ดํฐ ๊ตฌ์กฐ
- 3๋ฒ๊ณผ ๋น์ทํ ์์ญ์ธ๋ฐ ๋ฐ์ดํฐ ๊ตฌ์กฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋๊ฒฝ์ฐ NoSQL์ ๊ตฌ์กฐ๊ฐ ์์ฃผ ๋ณ๊ฒฝ๋๋๋ผ๋ ์ ์ฐํ๊ฒ ๋์ฒํ ์์์ต๋๋ค.
6. ๋น ๋ฅธ ์๋ต ์๊ฐ
- ๋น ๋ฅธ ์๋ต์๊ฐ์ด ํ์ํ ๊ฒฝ์ฐ NoSQL์ DB์ ๊ฐ๋จํ ์ฟผ๋ฆฌ์ ๋ํด ๋น ๋ฅธ ์๋ต์๊ฐ์ ๊ฐ์ง๋๋ค.
์ค์๊ฐ ์ดํ๋ฆฌ์ผ์ด์ , ์บ์ฑ, ์บ์, ์ธ์ ๋ฑ ๊ด๋ฆฌ์ ์ ๋ฆฌํฉ๋๋ค.
'CS - Roadmap.sh > 16. Databases' ์นดํ ๊ณ ๋ฆฌ์ ๋ค๋ฅธ ๊ธ
16.3 Entity Relationship Model (+ERD) (์ถ๊ฐํ์) (0) | 2024.03.28 |
---|---|
16.2 Normalization vs Denormalization (0) | 2024.02.29 |