CS 기술면접 준비 - 데이터베이스
DB - Database
기술면접을 위해 기초 CS에 대한 복습중이다. 공부한 내용 중 요점이나 나중에 기억해야할 부분을 정리해보려고 한다. 내가 아는 부분은 생략되어 있을 수 있고, 혹여나 틀린 부분이 있을 수도 있으니 이 글을 보고 ‘다른 사람’이 공부하기에는 도움이 되지 않을 수 있으니 주의!
인덱스 (Index)
- 책 부록에 ‘찾아보기(index)’처럼 모든 변수 다 검색할 필요 없이 빠르게 조회 가능
- 해시 테이블 or B-Tree 구조로 되어 있다. 주로 B-Tree
- 해시 테이블로 하면 검색은 빠르지만($O(1)$), 등호 연산 밖에 되지 않아 순차 검색이 불가하다.
- B-Tree는 $O(NlogN)$이지만, 부등호 연산이 가능해서 순차 검색이 가능하다.
관계형 데이터베이스 vs 비관계형 데이터베이스
- 관계형: key와 value로 이루어진 테이블 형태. RDBMS
- 비관계형: NoSQL(Not Only SQL)
- Document: MongoDB
- Key-Value DB: SQL보다 빠르게 읽을 수 있지만, 저장할 때 그에 맞춰서 저장해야 함.
- Graph: SNS 등
SQL
DB와 서로 주고 받기 위한 언어
SELECT (컬럼이름) FROM (테이블이름) WHERE (조건)
ORM
- 객체-관계 매핑, 객체와 관계형 DB를 매핑시켜주는 것.
- ex) JPA
댓글남기기