추가적인 SQL 활용
- JOIN의 종류와 차이점
- GROUP BY와 HAVING의 차이점
- UNION과 UNION ALL의 차이점
- 데이터 삭제 시 DELETE와 TRUNCATE의 차이점
- JOIN은 두 개 이상의 테이블을 결합하여 관련 데이터를 가져오는 데 사용된다.
- INNER JOIN -> 두 테이블에서 조건을 만족하는 공통 데이터만 반환
- LEFT JOIN -> 왼쪽 테이블의 모든 데이터와, 조건이 일치하는 오른쪽 테이블 데이터를 반환한다. 조건이 맞지 않는 경우 오른쪽 데이터는 null로 반환
- RIGHT JOIN -> 오른쪽 테이블의 모든 데이터와, 조건이 일치하는 왼쪽 테이블 데이터를 반환, 조건이 맞지 않는 경우 왼쪽 데이터는 null로 반환
- FULL JOIN -> 두 테이블의 모든 데이터를 가져오며, 조건이 맞지 않는 부분은 null로 채워진다.
JOIN은 데이터베이스에서 테이블 간 관계를 활용하여 데이터를 효율적으로 추출하는데 사용된다.
2. GROUP BY는 데이터를 특정 열 기준으로
3. UNION과 UNION ALL은 두 개 이상의 SELECT 결과를 결합하는데 사용
UNION은 중복된 데이터를 제거한 결과를 반환, UNION ALL은 중복된 데이터를 포함하여 모든 결과를 반환
UNION은 중복 제거로 인해 추가적인 정렬 작업이 필요하므로 UNION ALL보다 속도가 느릴 수 있다. 중복 제거가 필요하지 않은 경우 UNION ALL을 사용하는 것이 효율적이다.
4. DELETE와 TRUNCATE는 데이터 삭제에 사용되지만, DELETE는 조건을 지정하여 특정 행만 삭제할 수 있고, 트랜잭션을 지원하므로 ROLLBACK으로 복구가 가능 / TRUNCATE는 테이블의 모든 데이터를 일괄 삭제하며, 롤백이 불가능, 테이블의 구조는 유지되며, 작업 속도가 DELETE보다 빠르다.
데이터베이스 키
- DB 키의 종류와 역할
- 외래 키를 사용하는 이유
- 데이터베이스 키는 테이블의 각 행을 고유하게 식별하거나, 테이블 간의 관계를 정의하는데 사용된다.
- 기본키(Primary Key) : 각 행을 고유하게 식별하며, NULL 값을 허용하지 않는다.
- 후보키(Candidate Key) : 기본키로 사용할 수 있는 후보 열의 집합으로, 테이블에서 유일성과 최소성을 만족하는 모든 열
- 대체키(Alternate Key) : 후보키 중에서 기본키로 선택되지 않은 열
- 외래키(Foreign Key) : 한 테이블에서 다른 테이블의 기본키를 참조하여 두 테이블 간의 관계를 정의
- 슈퍼키(Super Key) : 테이블에서 유일성을 만족하는 열이나 열의 조합
2. 외래키는 한 테이블의 열이 다른 테이블의 기본키를 참조하도록 설정하여, 테이블 간의 관계를 정의하고 데이터의 무결성을 유지하는데 사용
+추가
- 데이터 중복이 발생하면 어떤 문제?
- NoSQL의 BASE 특성은 무엇인가
- RDBMS에서 성능 최적화를 위해 어떤 작업을 할 수 있는가
- 트랜잭션 격리 수준(Isolation Levels)의 종류와 차이점
- 데이터베이스 샤딩(Sharding)과 파티셔닝(Partitioning)의 차이점
- 데이터 중복은 데이터베이스의 효율성과 무결성을 저하시킬 수 있다. 데이터 불일치(동일한 데이터가 여러 위치에서 다르게 저장되면, 데이터의 신뢰성이 떨어진다.), 저장 공간 낭비(불필요한 데이터 중복으로 인해 저장 공간이 비효율적으로 사용), 갱신 이상 ( 중복 데이터 중 일부만 수정되면, 데이터 일관성이 깨질 수 있다.), 쿼리 성능 저하(중복 데이터로 인해 검색 및 집계 작업이 느려질 수 있다.) 정규화를 통해 데이터 중복을 최소화하여 이러한 문제를 방지
- BASE는 NoSQL 데이터베이스의 모델로 Basically Available (시스템이 항상 가용성을 유지해야 함), Soft State(데이터는 항상 일관성을 보장하지 않으며, 일정 시간 동안 변경될 수 있음), Eventual Consistency (데이터의 일관성은 시간이 지나면서 최종적으로 보장됨)
BASE는 RDBMS의 ACID와는 대조적으로, 대규모 분산 시스템에서의 유연성과 확장성을 중시 - RDBMS에서 성능 최적화를 위해서는 인덱스 사용(필요한 열에 적절한 인덱스를 추가하여 검색 성능을 향상), 정규화와 역정규화(데이터 중복을 줄여 저장 효율을 높이거나, 역정규화를 통해 쿼리 성능을 최적화), 쿼리 최적화(쿼리 실행 계획 분석을 통해 비효율적인 쿼리를 개선), 파티셔닝(큰 테이블을 여러 작은 테이블로 나눠서 데이터 접근 시간을 줄임), 캐싱(자주 사용되는 데이터를 캐시에 저장하여 데이터베이스 부하를 줄임), 커넥션 풀링(데이터베이스 연결을 재사용하여 연결 비용을 절감), 하드웨어 업그레이드(빠른 디스크(I/O)와 메모리 증가로 성능 개선)
'면접준비' 카테고리의 다른 글
CS 지식 정리 - 네트워크(2) (1) | 2025.01.04 |
---|---|
CS 지식 정리 - 네트워크(1) (1) | 2025.01.03 |
CS 지식 정리 - 데이터베이스(1) (0) | 2025.01.01 |
CS 지식 정리 - 자료구조 (2) (0) | 2024.12.31 |
CS 지식 정리 - 자료구조 (1) (0) | 2024.12.30 |