일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | |||||
3 | 4 | 5 | 6 | 7 | 8 | 9 |
10 | 11 | 12 | 13 | 14 | 15 | 16 |
17 | 18 | 19 | 20 | 21 | 22 | 23 |
24 | 25 | 26 | 27 | 28 | 29 | 30 |
- formmatted
- 동기
- JWT
- 로그인/로그아웃
- 스프링부트 구조
- MSA
- 작업명중복
- 세션기반 인증
- 비동기
- Java
- ./gr
- 퍼시스턴스 계층
- ORM
- 스프링부트
- 스프링 부트 테스트
- 비즈니스 계층
- 스프링
- 토큰기반 인증
- http
- 프레젠테이션 계층
- ./gradlew docker
- JPA
- 스프링부트 계층구조
- spring
- @temproal
- 로그인 인증 흐름
- java I/O
- 어노테이션
- IPC
- RESTfull API
- Today
- Total
[DEV] J-Jay
데이터베이스(DB) 본문
데이터 베이스란?
데이터 베이스는 여러 사람이 데이터를 한 군데에 모아놓고 여러 사람이 사용할 목적으로 관리하는 데이터 저장소이다.
흔히 데이터베이스를 말할 때 MySQL, Oracle, PostgreSQL등을 이야기 한다.
사실 엄밀히 말해 이것들은 데이터베이스를 관리하는 시스템 이름(DBMS) 이며 데이터 베이스가 아니다.
다만 데이터 베이스와 데이터베이스 관리 시스템은 한 쌍으로 움직이므로 둘을 하나처럼 언급할 뿐이다.
RDB란?
데이터베이스는 여러 가지로 구분할 수 있다 (RDB, NoSQL, NewSQL 등)
그중 가장 많이 사용하는 데이터베이스느는 RDB이다. RDB는 Relational Database의 약자로 관계형 데이터베이스라는 뜻
RDB가 아닌 데이터베이스를 NoSql 또는 NewSQL로 구분한다. 관계형 데이터베이스는 데이터를 행과 열로 이루어진 테이블로 관리하며, 기본 키를 사용해 각 행을 식별한다. 또한 각 테이블 간에 관계를 지을 수 있다.
RDB에서 가장 유명한 데이터베이스들은 MySQL, Oracle, PostgreSQL 등이 있다.
SQL이란?
SQL은 Structured Query Language의 약자로 말 그대로 쿼리, 데이터 검색을 하는 언어이다.
SQL도 하나만 있는 것이 아니라 ANSI 표준 SQL이 있고, 각 RDB별로 사용하는 SQL이 있따 데이터베이스 전문가가 아니라면 ANSI 표준 SQL만 공부해도 무방하다. SQL도 사실 데이터를 질의 하기 위한 언어이므로 RDB 전용이라고 보기는 힘들다. NoSQL에도 SQL엔진을 도입해 데이터를 조금 더 편하게 질의하도록 지원하는 경우도 많다.
NoSQL이란?
NoSQL의 뜻이 SQL을 쓰지 않는다 라는 의미로 사용되기도 하지만, 최근에는 Not Only SQL의 의미로 많이 사용한다.
RDB는 데이터 저장, 질의, 수정, 삭제가 용이하지만 반면에 성능을 올리는게 쉽지 않다. 데이터베이스 성능을 높이려면 머신의 성능을 좋게 하는 scale-up 또는 머신을 여러 대로 분리하는 sacle-out이라는 것이 필요하다.
scale-up은 장비를 업그레이드 하면 되지만 scale-out은 데이터베이스를 분산하고, 이때 트랜잭션을 사용하면 성능이 떨어지게 된다.
RDB의 이러한 문제들을 해결하기 위해, NoSQL이 등장했다. NoSQL에는 데이터 모델링을 어떻게 하느냐에 따라
다이나모디비, 카우치베이스, 몽고디비 같은 다양한 NoSQL 데이터 베이스들이 있다.
'Back-end > 기본상식' 카테고리의 다른 글
Library 와 Framework (0) | 2023.08.30 |
---|---|
IP와 Port (0) | 2023.08.29 |
서버와 클라이언트 (0) | 2023.08.28 |
Restful API Design (0) | 2023.07.19 |
HTTP 프로토콜 (0) | 2023.07.19 |