데이터베이스

1. PK, FK, ER 모델이란?

PK: row를 구분할 수 있는 후보키중 인덱스로서 사용되는 키 FK: 다른 테이블을 참조하기 위해 사용되는 키. 참조 무결성 제약조건에 의해 참조하는 테이블의 PK/UK이다.
ER 모델: 데이터를 개체, 속성, 관계로 표현한 모델.

2. SQL이란?

데이터베이스가 이해할 수 있는 질의 언어. 데이터를 보다 쉽게 검색하고 추가, 삭제, 수정같은 조작을 할 수 있도록 고안된 컴퓨터 언어.

3. 인덱스 설명

4. 트랜잭션이란?

트랜잭션은 데이터베이스 시스템에서 처리되는 작업의 논리적 단위로, commit되거나 rollback된다.

Spring의 트랜잭션
Spring에서 Transaction은 두 개 이상의 쿼리를 한 작업으로 실행해야 할 때 사용된다.
@Transactional 어노테이션을 사용하고 싶은 메소드 에 붙이면 된다.
@Transactional 어노테이션을 이용해 트랜잭션을 처리하기 위해 내부적으로 AOP를 사용한다.
스프링은 @Transactional 어노테이션이 적용된 빈 객체를 찾아서 프록시 객체를 생성한다. 이때 getBean 코드를 실행하면 프록시 객체를 리턴한다. 이 프록시 객체는 TransactionManager 객체를 사용해서 트랜잭션을 실행하고, 시작한 후 실제 객체의 메서드를 호출한다. 성공적으로 실행되면 트랜잭션을 커밋한다.

5. 트랜잭션의 성질을 말씀해 주세요.

6. 정규화란 무엇인가

7. NoSQL이란?

Non relational SQL, Not Only SQL이라고도 불리며, 전통적인 관계형 DB보다 덜 제한적인 일관성 모델을 사용한다.

8. Transaction Isolation Level 이란?

동시에 여러 트랜잭션이 처리될 때 특정 트랜잭션이 다른 트랜잭션에서 변경하거나 조회하는 데이터를 볼 수 있도록 허용할지 말지를 결정하는 것.

9. inner join과 outer join 차이

10. DELETE, TRUNCATE, DROP 차이

11. 데이터 추상화 3단계


12. DB에서 slow query가 발생했을 경우 어떻게 대처하는지

13. ORM이란?

14. 쿼리 옵티마이저 설명

15. 데이터베이스 샤딩이란?

16. 무결성에 대해 설명해주세요

17. 역정규화를 하는 이유?

18. RDS의 특징 설명

19. having과 where 차이

20. group by의 역할

21. commit/ rollback 설명

22. 부분함수적 종속/ 이행적 함수 종속성