본문 바로가기

All Categories/CS

[DB] DB 기본 개념 (+key) - 면접 예상 질문 & 답변

반응형

Q) DB를 정의하세요.

A) 데이터베이스(Database)란 컴퓨터에 저장되어 실시간으로 접근할 수 있고(Stored Data), 자료의 중복을 배제한 데이터의 모임(Integrated Data)입니다. 조직의 업무를 위해 존재 가치가 확실하고 없어서는 안 되는 자료들의 모임(Operational Data)이며 여러 사람들이 공유하고 사용할 목적(Shared Data)으로 통합 및 관리됩니다.

 

Q) 데이터베이스 시스템의 목적은 무엇인가요?

A) 파일 시스템의 단점을 극복하기 위함입니다.

  • 데이터 중복 및 비일관성: 동일한 파일의 여러 사본이 존재할 수 있고, 서로 다른 값을 보유하게 되는 상태가 될 수 있습니다.
  • 데이터 접근의 어려움: 필요한 데이터를 효율적으로 검색하기 어렵습니다.
  • 데이터 분리(고립): 데이터가 여러 파일에 나뉘어 저장되어 있거나 각 파일의 형식이 다를 수 있습니다.
  • 무결성 문제: 파일 자체가 아닌 응용 프로그램에서 관리합니다. 따라서 기존 제약에 수정 사항이 생기면 프로그램의 코드를 수정해야 합니다.
  • 원자성 문제: 데이터 작업 중 비정상적으로 종료되어 중간에 멈추지 않아야 하는데 파일 시스템에서는 이를 보장하기 어렵습니다.

데이터베이스는 이러한 단점을 모두 보완하여 정보를 저장하고 이를 검색하기 위한 편리하고 효율적인 환경을 제공합니다.

 

Q) 무결성이란 무엇인가요?

A) 무결성(Intergrity)이란 데이터의 결함이 없는 상태로 데이터의 중복이나 누락이 없는 상태인 정확성, 원인과 결과의 의미가 연속적으로 보장되어 변하지 않는 상태인 일관성이 유지되는 것을 의미합니다. 

  • 개체 무결성: 기본 테이블의 기본키를 구성하는 어떤 속성도 Null 값이나 중복값을 가질 수 없다는 규정입니다.
  • 도메인 무결성: 주어진 속성 값이 정의된 도메인에 속한 값이어야 한다는 규정입니다. 
  • 참조 무결성: 릴레이션은 참조할 수 없는 외래키 값을 가질 수 없다는 규정입니다.

 

Q) 무결성 제약 조건을 지켜야 하는 이유는 무엇인가요?

A) 데이터베이스에 저장된 데이터 값과 그것이 표현하는 현실 세계의 실제값이 일치해야 그 데이터를 신뢰할 수 있기 때문입니다.

 

Q) DBMS 정의와 특징을 설명하세요.

A) DBMS란 데이터베이스를 관리하고 운영하는 소프트웨어로, 데이터베이스를 여러 사람들이 공유하고 사용할 수 있도록 하는 프로그램입니다.

  1. 데이터의 독립성: DB 사이즈, 데이터 파일 등을 늘리더라도 관련된 응용 프로그램을 수정할 필요가 없습니다(물리적 독립성). 다양한 응용 프로그램의 논리적 요구를 만족시킬 수 있습니다(논리적 독립성).
  2. 데이터의 무결성: 데이터 유효성 검사를 통해 잘못된 데이터가 발생하는 것을 방지할 수 있습니다.
  3. 데이터의 보안성: 인가된 사용자들만 자원에 접근할 수 있도록 접근 권한을 설정합니다.
  4. 데이터의 일관성: 논리적인 구조로 데이터를 관리하여, 일부 데이터가 변경되었을 때 발생할 수 있는 데이터의 불일치성을 배제할 수 있습니다.
  5. 데이터 중복 최소화: 데이터를 통합해서 관리하여 자료의 중복을 해결할 수 있습니다

 

Q) 데이터 모델을 설명하세요.

A) 데이터베이스 구조의 기초가 되는 것으로 데이터, 데이터 간의 관계, 데이터의 의미, 데이터의 제약 조건 등을 기술하기 위한 개념적인 표현으로, 데이터 추상화 정도에 따라 3가지 종류로 나눌 수 있습니다.

  1. 개념적 데이터 모델: 일반 사용자들이 인식하는 방식과 같이 데이터를 개념적으로 표현하는 방식을 명시하는 데이터 모델로, 개체 관계 모델(Entity-Relationship model)이 있습니다.
  2. 논리적(표현) 데이터 모델: 물리적 데이터 모델과 개념적 데이터 모델 중간 수준에 존재하여, 일반 사용자들이 이해할 수 있는 방식으로 데이터를 표현하면서도, 실질적 데이터 저장 방식과 대응되는 방식을 명시하는 데이터 모델입니다.
  3. 물리적 데이터 모델: 데이터가 컴퓨터 내에 물리적으로 저장되는 방식을 명시하는 데이터 모델로, 레코드의 형식, 순서, 접근 경로 등의 정보를 제공합니다.

 

Q) 개념적 데이터 모델의 대표적인 것에는 무엇이 있나요?

A) E-R 모델이 있습니다. 개체, 속성, 관계 등에 대하여 용이하게 표현할 수 있는 ER 도형(ERD: Entity Relationship Diagram)을 정의합니다.

개체 타입 (Entity Type) 현실 세계의 객체로서 유형 또는 무형의 정보 대상으로 존재하며, 서로 구별될 수 있는 것을 뜻한다.
관계 타입 (Relationship Type) 관계란 2개 이상의 개체 사이에 존재하는 연관성을 뜻하며, 관계 타입은 관계들의 집합 또는 틀을 뜻한다.
속성 (Attribute) 개체의 특성이나 상태를 기술한 것이다.

 

Q) 데이터베이스 모델링(추상화) 과정에 대해 설명하세요.

A) 현실세계의 업무적인 프로세스를 컴퓨터로 데이터베이스와 하기 위한 과정으로, 설계 순서는 다음과 같습니다.
요구 조건 분석 -> 개념적 설계 -> 논리적 설계 -> 물리적 설계 -> 구현 -> 운영 -> 감시 및 개선

  1. 개념적 설계: 개체 타입과 이들 간의 관계 타입을 이용해 현실 세계를 개념적으로 표현하는 과정으로, ER 다이어그램을 이용할 수 있습니다. DBMS에 독립적인 개념 스키마를 모델링합니다.
  2. 논리적 설계: 목표 DBMS에 맞추어 논리적 표현(구현) 데이터 모델로 설계하는 과정입니다.
  3. 물리적 설계: 저장 레코드 양식의 설계 및 데이터의 물리적 구조를 표현하는 과정입니다.

 

Q)  스키마(Schema)를 설명하세요

A) 데이터베이스의 구조(개체, 속성, 관계)와 제약조건에 대한 명세를 기술한 것을 의미합니다.

  1. 외부 스키마 (External Schema): 일반 사용자, 응용 프로그래머가 접근하는 계층으로, 전체 데이터베이스 중에서 하나의 논리적인 부분을 의미합니다. 여러 개의 외부 스키마가 존재할 수 있습니다. 서브 스키마(Sub Schema)라고도 하며, 뷰(view)의 개념입니다.
  2. 개념 스키마 (Conceptual Schema): 전체 데이터베이스의 정의를 의미합니다. 하나의 데이터베이스에는 하나의 개념 스키마가 존재하며, 데이터베이스 관리자(DBA)가 관리합니다. 객체 간의 관계, 제약조건, 데이터베이스 접근 권한, 보안 및 무결성 규칙에 관한 명세 등을 포함합니다.
  3. 내부 스키마 (Internal Schema): 물리적 저장 장치에 데이터베이스가 실제로 저장되는 구조로, 데이터 레코드의 물리적인 배치, 내부 레코드의 물리적 순서(인덱스), 데이터 압축 등을 포함합니다.

 

Q) 관계형 데이터베이스 테이블에서 스키마와 인스턴스의 차이는 무엇인가요?

A) 스키마란 정적인 영역으로, 데이터 베이스의 구조와 제약조건에 대한 정의로, 특정 타입이 있는 변수 자체를 의미합니다. 인스턴스튜플들의 집합으로 그 변수 안에 담긴 값을 의미합니다.

 

Q) Key란 무엇이고, 종류에는 무엇이 있나요?

A) 키란 특정 조건에 맞는 튜플(Tuple)을 구분할 수 있는 기준이 되는 속성(Attribute)입니다.

  1. 후보키 (Candidate Key): 한 릴레이션 내에 있는 Tuple을 유일하게 식별할 수 있는 속성으로, 기본키로 사용할 수 있습니다. 유일성(하나의 Key로 Tuple을 찾아낼 수 있는 성질)과 최소성(꼭 필요한 속성으로만 구성되어 있는 성질)을 만족해야 합니다.
  2. 기본키 (Primary Key): 후보키 중에 선택한 속성으로, 개체무결성(Null 값을 가질 수 없고 중복값을 가질 수 없다는 규정)을 만족해야 합니다.
  3. 대체키 (Alternate Key): 후보키 중 기본키를 제외한 나머지 속성으로, 보조키라고도 합니다.
  4. 슈퍼키 (Super Key): 유일성은 만족하지만, 최소성은 만족하지 못하는 속성
  5. 외래키 (Foreign Key): 다른 릴레이션을 참조할 때 참조 기준이 되는 속성으로,  참조하고자 하는 릴레이션의 기본키와 동일합니다. 참조 무결성을 만족해야 하며, 외래키와 참조하려는 테이블의 기본키는 도메인과 속성 개수가 같아야 합니다.

 

Q)  DBMS 언어, 즉 SQL을 설명하세요

A) SQL이란 관계형 DBMS에서 데이터를 관리하기 위한 질의어로, 관계 대수의 한계를 극복하기 위해 확장된 언어입니다.

  • DDL(데이터 정의어: Data Definition Language): 외부 스키마, 개념 스키마, 내부 스키마를 정의하는 데 사용합니다. ex) CREATE, ALTER, DROP, TRUNCATE
  • DML(데이터 조작어: Data Manipulation Language): 데이터를 검색, 삽입, 삭제, 수정하는 데 사용합니다. ex) SELECT, INSERT, DELETE, UPDATE
  • DCL(데이터 제어어: Data Control Language): 데이터베이스 접근 및 사용 권한을 관리하는 데 사용합니다. ex) COMMIT, ROLLBACK, GRANT, REVOKE

 

Q) DROP, TRUNCATE, DELETE의 차이는 무엇인가요?

A) DROP은 테이블 객체(공간) 자체가 삭제되는 것이며 복구가 불가능합니다.
TRUNCATE는 테이블은 유지되고, 테이블 내에 존재하는 데이터들을 모두 삭제하는 것으로 삭제 후 용량이 줄어들고 복구가 불가능합니다.
DELETE는 데이터를 삭제하는 것인데, 테이블 용량은 그대로 유지되고 복구가 가능합니다.

 

Q) 이상(Anomaly) 현상을 설명하세요

A) 릴레이션에서 일부 속성들의 종속으로 인해 데이터의 중복이 발생하는 것을 의미합니다.

  • 삽입 이상 (Insertion Anomaly): 데이터를 삽입할 때 의도와 다르게 원하지 않는 값들로 인해 삽입할 수 없게 되는 현상으로, 기본키에 해당하는 속성 값 없이 튜플을 삽입하고자 할 때 발생합니다.
  • 삭제 이상 (Deletion Anomaly): 튜플을 삭제할 때 의도와 다르게 다른 값도 함께 삭제되는, 즉 연쇄 삭제가 발생하는 현상으로, 튜플 삭제 시 유지하고자 하는 정보까지 삭제되어 정보 손실이 발생하는 경우를 의미합니다.
  • 갱신 이상 (Update Anomaly): 튜플에 있는 속성 값을 갱신할 때 일부 튜플의 정보만 갱신되어 정보의 불일치성(Inconsistency)이 생기는 현상으로, 한 튜플의 일부 속성 값을 바꿨을 때 같은 기본키를 가지는 다른 튜플과 정보가 불일치가 생겨 발생합니다.
반응형