본문 바로가기
면접준비

[기술면접 정리] 데이터베이스

by yuuuuna0 2023. 7. 19.

1. 데이터베이스 언어 

DDL(정의어) : DB 구조를 정의, 수정, 삭제하는 언어 (create, alter, drop)

DML(조작어) : DB 내 자료의 검색, 삽입, 갱신, 삭제를 위한 언어 (select, create, update, delete)

DCL(제어어) : 데이터의 무결성 유지, 병행 수행 제어, 보호와 관리를 위한 언어 (commit, rollback, grant, revoke)

 

2. select 쿼리 수행 순서

from, on, join -> where, group by, having -> select -> distinct -> order by -> limit

(limit : limit에서 벗어나는 행은 제외하고 출력)

 

3. join에서 on과 where의 차이 : on 조건으로 필터링 된 데이터간 join이 이루어지고 이후 where 조건절로 필터링된다.

 

4. 데이터베이스에서 table이란? : 특정한 종류의 데이터를 구조적으로 묶은 목록으로 실제 데이터가 저장되는 곳이다.

 

5. Index란? : 테이블에 대한 검색 속도를 높여주는 자료구조 -> 인덱스를 검색하여 풀스캔 대신 해당 데이터에 바로 엑세스 하는 방법

장점 : 정렬된 상태를 유지하므로 원하는 값을 검색하는데 빠르다

단점 : 새로운 값을 추가, 삭제, 수정하는 경우 실행속도가 느리다 / 

 

6. 이상 현상의 종류

삽입 이상 : 자료를 삽일할 때 해당하는 값이 없어 null을 입력해야 하는 현상

갱신 이상 : 중복된 데이터 중 일부만 수정되어 데이터 모순이 일어나는 현상

삭제 이상 : 어떤 데이터를 삭제하면 의도하지 않은 다른 데이터까지 삭제되는 현상

 

7. RDBMS vs NoSQL(비관계형데이터베이스)

RDBMS : 2차원 형테의 데이터 테이블

NoSQL : 데이터의 관계를 정의하지 않고 컬렉션 형태로 데이터 관리

 

8. 트랜잭션이란? 

쪼갤 수 없는 업무 처리의 최소단위로 데이터베이스의 상태를 변환시키는 하나의 논리적 기능을 수행하기 위한 작업의 단위입니다.

-> 작업을 모두 처리하거나 처리하지 못할 경우 이전 상태로 복구하여 작업의 일부만 적용되는 현상이 발생하지 않게 해 주는 기능

 

9. inner join vs outer join

inner join: 교집합만 출력하는 조인 방법

outer join : 합집합 출력하는 조인 방법 --> Left면 좌측거만 전부 Right면 우측것만 전부

 

10. Group by vs Having

Group by : 명령어를 통해 특정 컬럼을 기준으로 그룹화 --> 집계함수 사용에 용이 (count, avg, sum, max, min)

Having : group by절의 조건문

 >> select name, count(name) from student group by name having count(name)=1

 

11. Drop vs Truncate vs Delete 차이

delete: 원하는 데이터만 골라서 지울 수 있지만 테이블 용량은 줄어들지 않는다

truncate: 전체 데이터를 한번에 삭제하고 테이블 용량이 줄어들지만 테이블은 삭제할 수 없다

drop: 테이블 자체를 완전히 삭제

 

12. on delete cascade

데이터 무결성을 위해 사용하는 문법으로 부모데이터 삭제 시 자식데이터의 튜플도 삭제되는 것을 의미한다. 

 

 

 

 

 

출처 : https://dev-coco.tistory.com/158

'면접준비' 카테고리의 다른 글

[면접후기] 웹 에이전시 면접 후기  (0) 2023.07.22
[기술면접 정리] 백엔드  (0) 2023.07.19
[기술면접 정리] 운영체제  (0) 2023.07.19
[기술면접 정리] 네트워크  (0) 2023.07.19
[기술면접 정리] 자바  (0) 2023.07.19