SQL 면접대비

2021. 5. 17. 23:16work

1. RDBMS란? 

관계형 데이터베이스 시스템으로, 테이블기반의 DBMS를 말한다. 

데이터 항목간의 관계에 따라 데이터베이스를 구성하고, 엑세스하는 DBMS.

이 관계형 데이터베이스에서 데이터들간의 관계를 테이블로 표현하는 것.

 

2. 데이터베이스 '정규화'(Normalization)란?

데이터 중복성을 줄이고, 데이터 무결성을 개선하기 위해 정규형식에 따라 관계형 데이터베이스를 재구성하는 프로세스를 말한다. 

 

3. ER모델이란?

개체-관계를 나타내는 모델. 

엔티티는 데이터의 개체, 구성요소를 말하고, 관계는 그들간의 관계를 나타낸다. 

4. 데이터베이스 트랜잭션이란?

데이터베이스 관리시스템 내에서 수행되는 작업단위를 말한다. 

트랜잭션은 일반적으로 데이터베이스의 모든 변경을 나타냄.

예를들어 트랜잭션이 100개행을 업데이트한다고 시작했지만, 20개만 업데이트하고 실패했다면 데이터베이스는 이 변경사항을 처음이 아닌, 20개 행으로 롤백시킨다. 

 

5. 인덱스란?

데이터베이스 인덱스란, 데이터베이스 테이블에 대한 데이터 검색 작업의 속도를 향상시키는 데이터 구조를 말한다. 

테이블에 액세스할 때마다 모든 행을 검색할 필요없이 데이터를 빠르게 찾는데 효율적이다. 

하지만 데이터베이스 전체의 10%정도 공간이 요구되며, DB의 변경작업이 잦다면 성능저하에 원인이 될 수있다. 

 

6. 기본키란?

기본키는 테이블의 행을 고유하게 식별하는 열 집합을 말한다. 

관계형 데이터베이스에서 테이블의 모든 행에는 기본키가 반드시 포함되며, 동일한 기본키가 있을 수 없다. 

기본키의 조건은 null이거나 중복이되면 안된다. 

 

7. SQL명령문 DROP과 TRUNCATE 차이점은?

DROP은 테이블 정의와 그 내용을 모두 제거하는 명령어인 반면, TRUNCATE는 테이블의 모든 행을 삭제하는 명령어이다. 둘다 롤백 불가하고, 테이블의 데이터만 삭제하는 TRUNCATE와 달리 DROP은 데이터는 물론 전체 스키마 구조까지 제거한다. 

 

8. 트리거란?

데이터베이스 트리거는 데이터베이스의 특정 이벤트에 대한 응답으로, 자동으로 실행되는 절차 코드를 말한다. 

반복되는 명령어처리로, 업무 처리를 자동화하고 싶을때 주로 사용하고, 데이터 무결성을 유지하는데 사용된다. 

 

9. Join의 개념과 종류 차이점 

조인이란, 두개 이상의 테이블을 연결해 데이터를 검색하는 방법을 말한다. 

  • Inner Join은 2개 이상의 테이블에서 교집합을 추출
  • Outer Join은 2개 이상의 테이블에서 합집합을 추출 
  • Left Join은 A와 B의 테이블에서 A의 모든 열 더하기 B에 있는 공통부분 추출 
  • Right Join은 B의 모든 열 더하기 A의 공통부분 추출 

10. 교착상태란?

데이터베이스에서 교착상태란, 둘 이상의 트랜잭션이 서로 잠금을 포기할 때까지 기다리는 상황을 말한다. 

교착상태를 방지하려면?

  • 정의된 트랜잭션 순서로 개체에 액세스한다 
  • 데이터항목이 가장 적은 트랜잭션을 선택한다 
  • 최소한의 업데이트를 수행하는 트랜잭션을 선택한다 

11. NoSQL은 언제 사용? 특징은?

  • 구조없이 많은 양의 데이터를 저장할때 
  • 스키마와 관계가 없다. 그래서 둘다 가지고있는 SQL보다 유연하다 
  • 데이터가 여러 컬렉션에 중복되어 있어서 update해야하는 경우, 모든 컬렉션에서 수정해야한다 

12. SQL과 NoSQL은 각각 언제 사용하는 것이 좋을까

  • 관계를 맺고있는 데이터가 자주 update되는 애플리케이션의 경우, SQL이 좋음. 변경될 여지가 없고 명확한 스키마가 사용자와 데이터 모두에게 중요한 경우!
  • read는 자주하지만 update는 자주 하지 않는경우, NoSQL이 유용하다. 막대한 양의 데이터를 변경없이 많이 저장하고자할때는 NoSQL이 적합할듯. 

'work' 카테고리의 다른 글

첫회사, 네번째 팀.. 오히려 좋아.  (0) 2024.07.02
기술면접 대비 참고사이트 북마크  (0) 2021.05.19