- java jdbc의 statement와 prepareStatement의 차이점은?
- statement는 동적 쿼리를 날리기 위해 사용된다
- prepareStatement는 파라미터화된 쿼리를 사용하며 클라이언트에서 쿼리 AST 트리를 캐싱 가능하다
- 트랜잭션이란?
- 데이터베이스 처리의 기본 단위. 하나의 논리적인 작업 단위
- Atomicity: 모두 수행되거나 모두 수행되지 않는다.
- Consistency: 트랜잭션 수행 후에는 데이터의 일관성을 보장한다.
- Isolation: 트랜잭션은 서로 독립적이다. 여러 트랜잭션이 수행되도 서로 간의 영향을 주지 않음
- Durability: 트랜잭션이 완료되면 데이터는 지속된다.
- DBMS?
- 데이터베이스 관리 시스템, 다수의 사용자가 데이터베이스 내의 데이터를 접근/관리 가능하게 하는 시스템
- DB의 View란?
- 허용된 데이터를 제한적으로 보여주기 위해 하나 이상의 테이블에서부터 유도된 테이블
- 뷰에 나타나지 않은 데이터 보호 가능 + 편의성, 권한 관리
- DB 정규화란?
- 중복을 최대한 줄이고, 데이터를 구조화 하여 불필요한 데이터를 제거하고 데이터를 논리적으로 저장하여 이상 현상이 일어나지 않도록 하는 것입니다.
- 이상 현상 : 릴레이션에서 일부 속성들의 종속으로 인해 데이터 중복이 발생하는 현상
- 유니온 vs 유니온 all 차이
- distinct의 적용 여부 차이 by mySql.
- mysql storage engine 종류
- MEM, InnoDb, MyISAM, CSV
- 조인의 종류 및 방법(Nested Loop , Hash Join)
- Nested Loop: 드라이빙 테이블의 한 로우와 매칭되는 조건을 가진 행을 드리븐 테이블에서 찾는 방식. 2중 For 문으로 볼 수 있다
- Hash Join: 상대적으로 큰 데이터 셋을 조인하기 위한 방식. 조인 키 컬럼의 해시함수의 결과를 이용하여 조인하는 방식. 드리븐 테이블의 풀 스캔에 유리
- 드라이빙(빌드) 테이블의 조건을 해쉬화하여 저장한다
- 드리븐(프로브) 테이블의 로우를 해쉬화하여 비교한다
- 일치하는 값을 찾는 경우 결과로 반환한다