본문 바로가기
신입 개발자 기술면접 준비

[IT기술면접 준비] 데이터베이스(Oracle)

by whisperscope_ai 2024. 5. 26.
반응형
DBMS란?

DBMS (Database Management System): 데이터베이스를 생성하고 관리하며, 데이터의 효율적이고 안전한 저장과 검색을 가능하게 하는 소프트웨어 시스템입니다.

RDBMS란?

RDBMS (Relational Database Management System): 관계형 모델에 기반한 DBMS로, 데이터를 테이블 형식으로 저장하고, SQL을 사용하여 데이터를 관리합니다. 예: MySQL, PostgreSQL, Oracle.

SQL란?

SQL(Structured Query Language)은 데이터베이스의 데이터를 관리하고 조작하기 위한 쿼리 언어입니다. 데이터베이스에서 데이터를 검색, 삽입, 업데이트, 삭제하는 등의 작업을 수행할 수 있습니다. 예를 들어, 고객 관리 시스템에서 고객 정보를 조회하거나, 새로운 고객 정보를 데이터베이스에 추가할 때 SQL을 사용합니다.

DBMS의 장점에 대해 설명하시오?
  • 데이터 중복 최소화
  • 데이터 무결성 유지
  • 데이터 독립성 제공
  • 데이터 보안 강화
  • 다중 사용자 지원
  • 백업 및 복구 기능
데이터베이스 뷰(View)란 무엇이며, 장점과 단점은 무엇인가?

뷰(View): 하나 이상의 테이블로부터 생성된 가상의 테이블입니다.

장점:

  • 보안성 향상: 민감한 데이터를 숨길 수 있음.

  • 쿼리 단순화: 복잡한 쿼리를 간단하게 사용할 수 있음.

  • 데이터 독립성: 기본 테이블 구조 변경 시 뷰를 통해 데이터 접근 가능.

  • 단점:*

  • 성능 저하: 뷰를 사용할 때마다 기본 테이블에 접근해야 함.

  • 제한된 조작: 일부 뷰는 업데이트, 삽입, 삭제가 제한될 수 있음.

데이터베이스 트랜잭션이란 무엇인가?

트랜잭션(Transaction): 데이터베이스의 상태를 변화시키기 위한 논리적인 작업 단위로, ACID 속성을 만족해야 합니다.

  • Atomicity (원자성): 트랜잭션의 모든 작업이 완벽히 수행되거나 전혀 수행되지 않아야 합니다.
  • Consistency (일관성): 트랜잭션이 성공적으로 완료되면 데이터베이스는 일관된 상태를 유지해야 합니다.
  • Isolation (고립성): 하나의 트랜잭션이 완료될 때까지 다른 트랜잭션의 영향을 받아서는 안 됩니다.
  • Durability (지속성): 트랜잭션이 완료되면 그 결과는 영구적으로 반영되어야 합니다.
DB Lock에 대해 설명하시오

DB Lock: 다중 사용자 환경에서 데이터의 일관성과 무결성을 유지하기 위해, 트랜잭션이 데이터에 접근하는 것을 제어하는 메커니즘입니다.

  • Shared Lock (공유 락): 여러 트랜잭션이 동시에 읽을 수 있지만, 쓰기는 불가능.
  • Exclusive Lock (배타 락): 하나의 트랜잭션만 읽고 쓸 수 있음.
인덱스란? 장점과 단점은?

인덱스(Index): 데이터베이스 테이블의 검색 속도를 높이기 위해 사용하는 데이터 구조입니다.

장점:

  • 검색 성능 향상

  • 정렬 및 그룹화 작업 속도 향상

  • 단점:*

  • 삽입, 삭제, 갱신 시 성능 저하

  • 추가 저장 공간 필요

DBMS는 Index를 어떻게 관리하고 있나?(Index 자료구조)

DBMS는 보통 B-TreeB+Tree 자료구조를 사용하여 인덱스를 관리합니다. 이 자료구조는 데이터의 정렬된 순서 유지와 빠른 검색, 삽입, 삭제를 지원합니다.

데이터베이스에서 다양한 유형의 관계는 무엇인지 설명하시오 (3가지 유형의 관계)?
  • 1:1 관계: 한 테이블의 한 레코드가 다른 테이블의 한 레코드와 연결됨.
  • 1:다 관계: 한 테이블의 한 레코드가 다른 테이블의 여러 레코드와 연결됨.
  • 다:다 관계: 여러 테이블의 여러 레코드가 서로 연결됨.
정규화와 비정규화를 설명하시오?

정규화 (Normalization): 데이터의 중복을 최소화하고 무결성을 높이기 위해 데이터를 구조화하는 과정입니다.

비정규화 (Denormalization): 성능 향상을 위해 정규화된 데이터 구조를 일부 중복 허용하여 다시 통합하는 과정입니다.

ER모델은 무엇인가?

ER 모델 (Entity-Relationship Model): 데이터베이스를 설계할 때, 데이터의 논리적 구조를 표현하기 위해 사용되는 모델입니다. 엔티티, 속성, 관계로 구성됩니다.

역정규화란?

역정규화 (Denormalization): 성능 최적화를 위해 정규화된 데이터베이스를 비정규화하여 일부 중복을 허용하고 데이터베이스의 읽기 성능을 향상시키는 과정입니다.

자주 사용하는 DB, 서버와 그에 대해 설명하시오?
  • MySQL: 오픈 소스 관계형 데이터베이스 관리 시스템으로, 높은 성능과 사용 용이성이 특징입니다.
  • Oracle DB: 상용 관계형 데이터베이스 시스템으로, 대규모 트랜잭션 처리와 보안성이 뛰어납니다.
  • SQL Server: 마이크로소프트에서 개발한 관계형 데이터베이스 관리 시스템으로, BI 및 분석 기능이 강력합니다.
RDBMS와 NoSQL의 차이에 대해 설명하고, RDBMS와 NoSQL은 어느 경우에 적합한가?

RDBMS: 관계형 데이터베이스로, 정형화된 데이터와 관계를 처리하는 데 적합합니다. 예: 금융 시스템, ERP.

NoSQL: 비관계형 데이터베이스로, 비정형 데이터와 대규모 데이터를 처리하는 데 적합합니다. 예: 소셜 미디어, 로그 데이터.

SELECT문 실행순서?
  1. FROM: 테이블 지정
  2. WHERE: 조건 필터링
  3. GROUP BY: 그룹화
  4. HAVING: 그룹화된 데이터 필터링
  5. SELECT: 컬럼 선택
  6. ORDER BY: 정렬
  7. LIMIT: 결과 제한
기본키(primary key)와 외래키(foreign key)에 대해 설명하시오?
  • 기본키 (Primary Key): 각 레코드를 고유하게 식별하는 컬럼입니다.
  • 외래키 (Foreign Key): 다른 테이블의 기본키를 참조하여 테이블 간의 관계를 설정하는 컬럼입니다.
DB Connection Pool 이란?

DB Connection Pool: 데이터베이스 연결을 재사용하여 성능을 향상시키는 기술입니다. 미리 일정 수의 연결을 생성하고, 필요 시 이를 할당하여 사용합니다.

Unique란?

Unique 제약조건: 테이블의 특정 컬럼 값이 중복되지 않도록 보장하는 제약조건입니다. 기본키와 달리 null 값을 가질 수 있습니다.

데이터베이스 트리거란? 사용하는 이유는?

트리거 (Trigger): 특정 이벤트(삽입, 수정, 삭제)가 발생할 때 자동으로 실행되는 절차입니다. 데이터 무결성 유지, 감사 로그 기록 등의 목적으로 사용됩니다.

저장 프로시저를 정의하시오?

저장 프로시저 (Stored Procedure): 데이터베이스에 저장되어 서버에서 실행되는 SQL 코드 블록입니다. 재사용 가능하고, 복잡한 비즈니스 로직을 데이터베이스에서 직접 처리할 수 있습니다.

DELETE, TRUNCATE 및 DROP 명령을 구분하시오. 차이점과 주의사항?
  • DELETE: 테이블의 특정 행을 삭제하며, 롤백이 가능합니다.
  • TRUNCATE: 테이블의 모든 행을 삭제하며, 롤백이 불가능합니다. 테이블 구조는 남아 있습니다.
  • DROP: 테이블 자체를 삭제하며, 롤백이 불가능합니다.
이상현상이란? 종류는?

이상현상 (Anomaly): 데이터베이스에서 데이터 불일치가 발생하는 현상입니다.

  • 삽입 이상: 데이터를 삽입할 때 불필요한 데이터가 함께 삽입되는 현상.
  • 갱신 이상: 데이터 갱신 시 일부만 갱신되어 일관성이 깨지는 현상.
  • 삭제 이상: 데이터 삭제 시 의도하지 않은 데이터가 함께 삭제되는 현상.
데이터베이스의 무결성이란?

데이터 무결성 (Integrity): 데이터의 정확성과 일관성을 보장하는 특성입니다. 무결성 제약조건(기본키, 외래키, 유니크 제약조건 등)을 통해 유지됩니다.

조인에 대해 설명하고 조인의 종류에는 무엇이 있나?

조인 (Join): 두 개 이상의 테이블을 연결하여 데이터를 검색하는 방법입니다.

종류:

  • Inner Join: 교집합
  • Left Outer Join: 왼쪽 테이블의 모든 데이터와 오른쪽 테이블의 일치하는 데이터
  • Right Outer Join: 오른쪽 테이블의 모든 데이터와 왼쪽 테이블의 일치하는 데이터
  • Full Outer Join: 두 테이블의 모든 데이터
교착상태란?

교착상태 (Deadlock): 둘 이상의 트랜잭션이 서로 상대방의 자원을 기다리며 무한 대기하는 상태입니다.

DB튜닝(Tuning)이 무엇인지 그리고 튜닝의 3단계에 대해 설명하시오

DB 튜닝: 데이터베이스 성능을 최적화하는 과정입니다.

3단계:

  • 설계 튜닝: 데이터베이스 구조와 인덱스를 최적화.
  • 쿼리 튜닝: 효율적인 SQL 쿼리를 작성.
  • 하드웨어 튜닝: 하드웨어 자원의 최적 활용.
inner join과 outer join의 차이를 설명하시오
  • Inner Join: 두 테이블의 일치하는 데이터만 반환.
  • Outer Join: 일치하지 않는 데이터도 함께 반환 (Left, Right, Full Outer Join).
group by의 역할에 대해 설명하시오

GROUP BY: 특정 컬럼을 기준으로 데이터를 그룹화하여 집계 함수를 사용할 수 있게 합니다. 예: SUM, COUNT, AVG.

HAVING과 WHERE의 차이를 설명해주세요?
  • WHERE: 그룹화 이전에 행을 필터링.
  • HAVING: 그룹화 이후에 그룹을 필터링.
JOIN에서 ON과 WHERE의 차이를 설명하시오?
  • ON: 조인 조건을 지정하여 두 테이블의 데이터를 결합.
  • WHERE: 결합된 데이터에 추가 조건을 적용.
반응형