본문 바로가기
면접

[신입 개발자 면접 준비 2] DB 편

by 챠챠12 2020. 10. 3.

1. DB 언어

: 데이터베이스를 구축하고 이용하기 위한 데이터베이스 시스템도과의 통신 수단입니다

1) 데이터 정의 언어(DDL)

: CREATE, ALTER, DROP

2) 데이터 조작 언어(DML)

: SELECT, INSERT, DELETE, UPDATE

3) 데이터 제어 언어 (DCL)

: COMMIT, ROLLBACK, GRANT, REVOKE

 

2. 도메인

도메인은 동일한 테이블 타입을 가지는 속성을 분리하는 것을 의미한다.

프로젝트에서 도메인을 적용하지 않아도 상관없다. 그러나 도메인을 사용하면 동일하거나 유사한 속성에 동일한 데이터 타입을 할당할 수 있어 데이터의 일관성과 정합성을 유지할 수 있는 이점이 있다.

 

3. Schema (스키마)

: 데이터베이스의 구조와 제약조건에 관한 전반적인 명세를 기술한 메타데이터의 집합입니다.

: 외부, 개념, 내부 스키마

 

4. 무결성

1. 널 무결성 : 릴레이션의 특정속성 값이 Null이 될 수 없도록 하는 규정

2. 고유 무결성 : 릴레이션의 특정 속성에 대해서 각 튜플이 갖는 값들이 서로 달라야 한다는 규정

3. 참조 무결성 : 외래키 값은 Null이거나 참조 릴레이션의 기본키 값과 동일해야 한다는 규정 즉 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정

4. 도메인 무결성 : 특정 속성의 값이, 그 속성이 정의된 도메인에 속한 값이어야 한다는 규정

5. 키 무결성 : 하나의 테이블에는 적어도 하나의 키가 존재해야 한다는 규정

 

5. View

 

6. 인덱스 생성시 고려 사항

 

7. index Scan 

: 인덱스를 검색하여 해당 자료의 테이블을 엑세스 하는 방법입니다.

 

8. SELECT문

: 데이터베이스에서 정보를 검색할때 사용합니다.

  데이터베이스 테이블에서 어떤 값들을 검색하는 것은 SQL질의 내 다양한 조건에 달려있습니다.

 

3. Insert문

: 데이터베이스에 정보를 삽입할때 사용합니다.

 

4. Delete문

: 데이터베이스에서 레코드 또는 특정 컬럼의 값을 삭제시 사용합니다.

 

5. DROP vs Truncate vs Delete

: DELETE TABLE은 로그 작업이기 때문에 삭제되는 각 행은 트랜잭션 로그에 기록되면서  작업을 느리게 합니다. 

  TRUCATE TABLE 역시 테이블 내 행들을 삭제하지만 삭제되는 각 행을 기록하지 않고 대신 테이블의 데이터베이스 할당 해제를 기록하여 작업이 빠릅니다. 

: DELETE 명령어는 데이터는 지워지지만, 용량은 줄어들지 않는다. 원하는 데이터만 지울 수 있으며, RollBack 가능합니다.

: TRUNCATE 명령어는 용량이 줄어들며, 인덱스 등도 모두 삭제됩니다. 그러나 테이블은 존재하고 데이터만  모두 다 삭제됩니다. Rollback 절대 불가능합니다.

: DROP 명령어는 테이블 전체를 삭제,공간, 객체를 삭제하며, Rollback 불가능합니다.

 

6. Where vs Having

: Where 절은 select 데이터에 조건을 주는 역할입니다.

: Having절은 그룹함수의 그룹의 조건으로 사용됩니다. 

 

7. LIke문

: 전체 이름이 아닌 이름의 일부로 값을 비교할 수 있는 방법입니다. 

: SELECT * FROM EMP WHERE ENAME LIKE ‘%한%’; ENAME에 문자열 '한' 포함하는 ENAME레코드들을 가진 레코드셋을 반환합니다.

 

8. Distinct 

: 중복된 결과를 제거하고 하나만 원하고자 할 때 쓰이는 문법입니다.

: 데이터베이스 테이블에 특정 값에 a,a,b,c가 있으면 a,b,c만 나오게 할 수 있다.

 

 

7. Order By 

: 정렬하고 정렬된 결과를 반환하여 원하는 정보를 보다 빠르게 찾을 수 있습니다. 

: ORDER BY를 이용함으로써 오름차순으로 정렬되고 ‘DESC’값을 주게 되면 내림차순이 됩니다.

 

8. Group BY

: 그룹단위로 묶어서 결과를 도출할때 사용합니다.

 

9. 테이블의 전체 레코드 수 구하기

: SELECT COUNT(*) FROM EMP; 처럼 count키워드를 사용하게 되면 카운트(수)를 얻을 수 있습니다.

 

10.기본키(Primary Key) vs 유일키(Unique Key)

: 기본키는 널을 허용X, 유일키는 모든 컬럼 중 유일하게 하나에 대한 NULL을 허용O

 

11. 쿼리 작성 순서

: SELECT -> FROM -> WHERE -> GROUP BY -> ORDER BY

 

12. 쿼리 실행 순서

: FROM > WHERE -> GROUP BY -> HAVING -> SELECT -> ORDER BY

 

 

작성한 부분에서 틀린 부분 있으면 댓글에 남겨주세요!!

LIST

댓글