본문 바로가기

명사 美 비격식 (무리 중에서) 아주 뛰어난[눈에 띄는] 사람[것]

Personal/Employment

신입개발자 면접질문 - 데이터베이스

데이터베이스의 특징?
동적상태로 실시간 처리에 대한 다수의 사용자에게 같은 내용의 응답이 가능해야 합니다.

데이터베이스의 언어?
DDL, alter, create, drop 데이터베이스 구조를 관리합니다.
DML, select, insert, update, delete 데이터베이스 내의 자료를 관리합니다.
DCL, commit, rollback, grant, revoke 데이터의 무결성유지, 병행수행제어, 보호를 관리합니다.

select쿼리의 수행 순서를 알려주세요
from, on, join로 테이블확인, 조건확인
where group by, having, 개별행에 열의 공통값,
select 표현식
distinct 중복삭제, 
order by 오름차순, 내림차순설정
limit 벗어나는 행은 제외해 출력합니다.

트리거란?
트리거란 특정테이블에 대한 이벤트에 반응해 데이터베이스에서 자동으로 동작하도록 작성된 프로그램입니다.

index란?
테이블을 모두 검색하는 FTS와 달리 인덱스를 검색하는 방법입니다.원하는 값을 검색하는데 빠르나 값수정시 쿼리문 실행 속도가 느려집니다.

이상현상이란?
테이블을 설계할때 잘못설계하여 데이터에 생리는 오류들을 말합니다.
NULL을 입력해야하거나 중복데이터중 일부만 수정되거나, 삭제시 의도하지않은 정보까지 삭제되어버리는 현상이 예입니다.

SQL injection이란?
공격자가 악의적인 의도를 갖는 sql문을 삽입해 데이터베이스를 비정상적으로 조작하는 공격기법입니다.이때 저장프로시저를 사용해 지정된 형식이 아닌 쿼리는 실행되지않게 하여 보안성을 향상시킬 수 있습니다.

RDBMS와 NoSQL의 차이?
RDBMS는 스키마에 맞춘 테이블형태로, 
NoSQL은 Key-Value 컬렉션 형태로 데이터를 관리합니다.
RDBMS는 데이터구조가 명확할때, NoSQL은 데이터의 구조가 변경될 수 있는 경우 사용합니다.

트랜잭션이란?
작업을 모두 처리하지못했을경우 이전상태로 복구해 일부만 적용되지않도록 Rollback하는 기능입니다.

group by의 역할?
명령어를 통해 특정 컬럼을 기준으로 연산한 결과를 그룹으로 짓는 역할 입니다.
count, sum, avg, max, min등의 연산, distinct의 중복제거가 가능한 특징이 있습니다.

having과 where의 차이?
having은 그룹을, where은 개별행을 필터링하는데 사용됩니다.