유튜브 쉬운코드와 스파르타코딩클럽 db특강을 정리한 내용입니다!
틀린 게 있다면 말씀해주세요
DB란?
전자적으로 저장되고 사용되는, 관련있는 데이터들의 조직화된 모음
왜 조직화 해놓을까?
-> 데이터가 조직화되어있지 않고 흩어져있다면 원하는 데이터를 빠르고 쉽게 찾기 어렵고 중복된 데이터가 있는지, 관련된 데이터가 얼마나 있는 지 등을 관리하기 어려울 것이다
데이터를 조직화함으로써 원하는 데이터를 신속하게 찾을 수 있고 불필요한 데이터가 중복으로 생성되는 것도 막을 수 있음
database system이란?
database + DBMS + 연관된 어플리케이션 -> 줄여서 databse라고 부름
문맥에 따라서 무엇을 의미하는지 잘 보자
DBMS(DataBase Management Systems)란?
사용자에게 DB를 정의하고 만들고 관리하는 기능을 제공하는 소프트웨어 시스템
-> db는 그저 데이터가 나열된 것이기 때문에 이를 제어하거나 백업, 튜닝, 모니터링 등을 하기 위해 프로그램이 필요함. 이 프로그램이 DBMS임(ex: MySQL, Postgre SQL 등)
-> 데이터베이스를 관리하고 저장하는 방식에 따라 유형이 구분됨 -> RDBMS, NoSQL
관계형 데이터 베이스(RDBMS)
장점
단점
비관계형 데이터 베이스(NoSQL, Not only SQL)
RDBMS를 제외한 나머지를 비관계형 데이터베이스라고 함
RDBMS보다 유연하게 데이터를 읽고 쓸 수 있음
-> 갑자기 왜 등장?
다양한 데이터를 축적하게 되면서 데이터의 복잡도와 양이 늘어남 -> 기존 RDBMS의 장점인 정확성이 그렇게 중요하지 않게 되었음
정리
SQL(RDBMS) | NoSQL | |
---|---|---|
데이터 저장 구조 | 열과 행이 있는 테이블 | Key-value, document, column, 등 다양 |
데이터 사전 정의 | 엄격하게 column에 대한 정의 필요 | SQL보다 유연하다. |
확장 | Scale Up(수직 확장) | Scale Out(수평 확장) |