데이터베이스 기초 용어 정리
DBMS란? 🤷♂️
(Database management System)
-> 데이터베이스 내 데이터에 접근하도록 도와주는 시스템
-> 크게 질의처리기와 저장시스템으로 이루어져 있다.
-> 사용자가 입력한 SQL을 해석해주고 데이터를 접근하게 해준다 ex) mysql ,oracle, mongoDB 👍
트랜잭션의 특징 ACID 👀
A: 원자성, 한 트랜잭션 내 실행한 작업은 모두 성공하거나, 실패해야 한다.
C: 일관성, 트랜잭션의 작업 처리 결과는 항상 일관성이 있어야 한다.
I : 격리성 , 동시에 실행된 트랜잭션을 서로에게 영향을 미치면 안된다.
D : 지속성, 트랜잭션이 한번 성공해서 반영되면 영구적으로 유지되야 한다.
NOSQL
-> Not Only SQL의 약자이다.
-> SQL 과는 다르게 스키마(데이터 삽입 규칙)이 없다.
-> 대량의 분산 데이터를 저장하는데 특화되어 있다.
-> ex) mongoDB 😀
파티셔닝
-> 테이블을 컬럼 단위로 나누어 관리하는 기법
-> vertical 파티셔닝 (파티셔닝) 과 ,horizontal 파티셔닝 (샤딩) 이 있다.
-> update 나 insert 시 분산되어 성능이 향상된다.
-> 데이터 조회 시 필요에 따라 조인 비용이 들어간다, index를 별도로 파티셔닝 할 수 없다.
샤딩
-> 테이블을 컬럼 단위로 나누어 관리하는 기법
-> shared key 를 어떻게 정의하냐에 따라 데이터 효율이 달라진다.
-> -> Hash Sharding : ex) database id를 % 4 하여 0,1,2,3 으로 데이터를 분산 저장
-> -> Dynamic Sharding : ex) table를 하나 만들어서 id range를 정하여 0~50, 51~100 등으로 나누어서 관리
👏👏