DB (DataBase)
- 특정 목적에 필요로 공유하여 사용할 수 있도록 통합해서 저장한 운영 데이터의 집합
- 통합 데이터 : 최소의 중복과 통제 가능한 중복만 허용하는 데이터
- 저장 데이터 : 사용자가 접근할 수 있는 매체에 저장된 데이터
- 운영 데이터 :조직의 주요 기능을 수행하기 위해 필요한 데이터
- 공용 데이터 : 여러 사용자가 함께 소유하고 이용할 수 있는 데이터
DBMS
사용자와 데이터베이스 사이에서 사용자의 요구에 따라 정보를 생성, 관리해주는 SW
사용자 -(데이터 명령)-> DBMS -(명령에 따라 처리)-> DB
RDBMS
- Oracle, mysql, microsoft sql servaer, maria db, access, aurora..
- 데이터를 테이블 형태(스키마라고 부른다)로 관리한다
- 각 테이블끼리는 ERD 방식을 통해 관계를 형성할 수 있다.
- 장점
- 업무 변화에 대한 적응력이 높아 변화하는 업무에 쉽게 활용하며 유지보수 편리, 생산성 향상
- 명확한 스키마가 정의되어 있고, 데이터 무결성을 보장
- 단점
- 다른 DBMS보다 더 많은 자원이 활용되어 시스템의 부하가 높다.
- 설계 시 많은 노력이 필요하다.
NoSQL
- 몽고db, Cassandra, redis
- 데이터 간의 관계를 줄이는 대신 성능을 높이는데 목적으로 사용
- 장점
- 단점
- 데이터가 여러 컬렉션에 중복 되어있어 수정해야하는 모든 컬렉션에서 수행해야 한다.
- 특정 데이터를 가져오기가 RDBMS 비해 복잡하다.
관계형 vs 비관계형
- 많은 IT 회사들은 RDBMS를 사용하지만, 프로젝트 특성에 따라 NoSQL 또한 많이 사용
- 관계형 : 회원 정보 등 복잡한 데이터의 관계가 있는 경우, 변경이 잦을 경우 적합
- 비관계형 : 로그 분석 등 단일 컬럼으로 사용할 수 있을 경우, 수평 확장이 될 수 있는 경우 적합
you make a valid point. I have been playing Sprunki recently, and it is quite interesting. You might want to give it a try.