23.10.23 항해 99 16기 기술면접 대비
1. RDBMS의 정규화에 대해 설명해주세요.
1) RDBMS의 정규화란?
RDBMS 를 설계할 때 중복을 최소화 하면서 데이터 구조를 짜는 프로세스다 정규화를 하는 이유는
이상현상 (Anomaly) 이 발생하기 때문이다
(1) 1정규형 (1NF) : 테이블 컬럼이 원자값(하나의 값)을 갖도록 테이블을 분해하는 것
(2) 2정규형 (2NF) : 1정규화를 진행한데 테이블에 대해 완전 함수 종속을 만족하도록 테이블을 분해하는 것
* 완전 함수 종속 : 기본키의 부분집합이 결정자가 되어선 안됨
(3) 3정규형 (3NF) : 2정규화를 진행한 테이블에 대해 이행적 종속을 없애도록 테이블을 분해
* 이행적 종속 : A->B, B->C, A->C 성립
(4) 보이스-코드 정규형 (BNCF) : 3정규화를 진행한 테이블에 대해 모든 결정자가 후보키가 되도록 테이블을 분해
(5) 4정규형 (4NF) 보이스-코드 정규화를 진행한 테이블에 대해 다치(다중 값) 종속성 제거 되어야함
(6) 5정규형 (5NF) 4정규화를 진행한 테이블에 대해 조인 종속성 제거 되어야함
* 이상현상 (Anomaly)
정규화를 적절히 하지 않은 DB 또는 Relation(Table) 에 데이터가 중복되고 이 Table 이 어떠한 작업을 할 때 비합리적인
문제점들이 발생하는 현상
1) 삽입이상 : 데이터를 테이블에 저장할 때 불필요한 데이터도 넣어야하는 경우
2) 삭제이상 : 데이터를 테이블에서 삭제할 때, 원치 않는 데이터도 같이 삭제되는 경우
3) 갱신이상 : 중복된 데이터 중에서 특정 부분만 수정되어 값이 모순을 일으키는 경우
2. Primary Key, Foreign Key에 대해 설명해주세요.
1) Primary Key 란?
레코드의 저장위치를 결정하며 다른 항목과 절대로 중복되어 나타날 수 없는 단일값을 가진다 절대 null 값을
가질수가 없다
예) 주민등록번호화 같은 개념 동일한 이름을 가진 사람을 많을 수 있고 동일한 날에 동일한 이름을 가진 사람도
존재 가능하나 결국 그사람들이 만나서 민증을 대조하면 다른번호이다
2) Foreign Key 란?
두 테이블을 서로 연결하는데 사용하는 키이며, 두테이블의 필드는 같은 타입이어야 한다
외래키가 포함된 테이블을 자식 테이블이라고 하고 외래키 값을 제공하는 테이블을 부모테이블이라고 한다
외래키 값은 null 이거나 부모 테이블의 기본키 값과 동일해야하고, 부모 테이블의 기본키 및 고유키를 외래키로
지정할 수 있다
부모테이블의 기본키 및 고유키 컬럼을 원하는 개수만큼 묶어서 외래키로 지정가능하다
3. HTTP 메서드에 대해 설명해주세요.
1) HTTP 메서드란?
클라이언트와 서버 사이에 이루어지는 요청(Request)과 응답(Response) 데이터를 전송하는 방식
총 9가지가 있으며 주로 쓰이는 메소드는 5개지 정도이다
2) 주요 메서드
(1) GET : 리소스 조회
(2) POST : 요청 데이터 처리, 주로 등록에 사용
(3) PUT : 리소스를 대체(덮어쓰기), 해당 리소스가 없으면 생성
(4) PATCH : 리소스 부분 변경 (PUT 이 전체변경, PATCH 는 일부변경)
(5) DELETE : 리소스 삭제
3) 기타 메서드
(1) HEAD : GET 과 동일하지만 메세지부분(body) 을 제외하고, 상태 줄과 헤더만 반환
(2) OPTIONS : 대상 리소스에 대한 통신 간응 옵션(메서드)을 설명 (주로 CORS 에서 사용)
(3) CONNECT : 대상 자원으로 식별되는 서버에 대한 터널을 설정
(4) TRACE : 대상 리소스에 대한 경로를 따라 메시지 루프백 테스트를 수행