데이터베이스 & 관계형 데이터베이스 기본 개념

이승훈·2024년 1월 11일

1. 파일시스템과 데이터베이스의 차이점에 대해서 설명해주세요.

파일 시스템은 프로그램 별로 필요한 데이터를 각각 저장하기 때문에 중복된 데이터가 존재할 수 있습니다. 이로 인해 데이터를 일관된 상태로 유지하기 힘들고 신뢰성을 떨어트릴 수 있습니다.
그러나 데이터베이스의 경우 데이터를 구조적으로 통합하여 관리함으로써 데이터의 중복 문제를 해결하며, 무결성 제약 조건 등을 통해 데이터의 일관성을 보장할 수 있습니다.

또한 파일 시스템의 경우 데이터에 대한 보안 및 회복, 동시 공유 기능이 부족하지만, 데이터베이스는 이러한 기능들을 충분히 지원함으로써 여러 사람들이 데이터를 안전하게 공유할 수 있는 환경을 제공합니다.

파일시스템

  • 데이터를 파일로 관리하기 위해 파일에 대해 CRUD 기능을 제공하는 소프트웨어
  • 응용 프로그램 별로 필요한 데이터를 별도의 파일로 관리한다.
  • 데이터 중복성과 데이터 종속성 문제가 발생한다.

파일시스템의 문제점

  • 데이터 중복성: 파일 시스템은 프로그램 별로 파일을 유지하므로 같은 데이터가 여러 파일에 저장될 수 있다.
  • 데이터 종속성: 프로그램이 파일에 직접 접근하여 수정하므로 프로그램이 파일의 구조에 의존하게 된다.
  • 데이터 동시 공유, 보안 부족
    • 일반적으로 파일 시스템은 프로그램이 사용 중인 파일에 대해 다른 프로그램이 접근할 수 있는 동시 공유 기능을 제공하지 않는다.
    • 파일 시스템은 파일 안의 레코드나 필드와 같은 더 작은 단위에 대한 접근 제어가 힘들다. 또한 파일 시스템은 같은 데이터가 중복으로 여럿 존재할 수 있기 때문에 이들의 보안 수준을 관리하는 것이 어렵다.
  • 응용 프로그램 개발이 쉽지 않음
    • 파일 시스템에서는 프로그램이 파일에 접근하여 데이터를 관리해야 하기 때문에 응용 프로그램을 개발하는데 어려움이 많다.

2. 데이터베이스의 특징에 대해 설명해주세요.

데이터베이스의 특징은 실시간 접근성, 계속적인 변화, 동시 공유, 내용에 의한 참조로 요약할 수 있습니다. 데이터베이스는 실시간으로 사용자의 데이터 요구에 응답할 수 있으며, 데이터에 대한 생성과 수정, 삭제 등의 연산을 통해 항상 최신의 상태를 유지할 수 있습니다. 또한 여러 사용자가 동일한 데이터를 동시에 사용할 수 있으며, 데이터를 조회할 때 데이터의 물리적인 위치가 아닌 내용 자체로 참조할 수 있다는 특징을 가지고 있습니다.

데이터베이스 특징

  1. 실시간 접근성
    사용자의 데이터 요구에 실시간으로 응답할 수 있다.
  2. 계속적인 변화
    데이터베이스는 계속적인 삽입,수정,삭제 등을 통해 최신의 상태를 유지한다.
  3. 동시 공유
    여러 사용자가 동일한 데이터를 동시에 사용할 수 있다.
  4. 내용에 따른 참조
    데이터베이스에 저장된 데이터는 물리적인 위치(주소, 위치)가 아니라 내용으로 참조될 수 있다.

3. DBMS는 뭘까요? 특징에 대해 설명해주세요.

DBMS는 데이터베이스의 기능을 제공하는 소프트웨어를 말합니다. 사용자나 어플리케이션은 DBMS를 통해 데이터에 접근하여 조회 및 생성, 수정, 삭제 등의 작업을 수행할 수 있습니다. 이 외에도, 데이터 보안 및 백업, 복원 기능을 제공하며, 다중 사용자의 데이터 접근에 대한 동시성 제어 기능 등도 제공합니다.

DBMS란?

  • 데이터베이스의 기능을 제공하는 소프트웨어
  • 사용자, 프로그램이 데이터베이스를 관리하고 공유할 수 있는 환경을 제공한다.

DBMS 기능

대표적으로 아래와 같은 기능들을 제공한다.

  • 데이터 관리: 데이터 구조화하고 저장하여 효율적으로 관리
  • 데이터 접근 및 조작: SQL을 통해 생성, 조회, 수정, 삭제 등의 작업 수행
  • 데이터 보안: 사용자별 데이터 접근을 설정하여 데이터베이스 보호
  • 데이터 백업 & 복구: 트랜잭션 롤백, 로그 기반 데이터 복구 등 데이터 손실 방지 기능 제공
  • 동시성 제어: 트랜잭션 격리 수준을 제어

DBMS의 장단점

장점

  • 사용자나 프로그램이 손쉽게 데이터베이스를 조작할 수 있는 환경을 제공한다.
  • 데이터의 무결성을 유지하고 일관성을 보장해준다.
  • 장애 발생 시 회복이 가능하다.
  • 데이터를 동시에 공유할 수 있다.

단점

  • 비용이 많이 든다.
  • 백업 및 회복 기법이 복잡하다.
  • 중앙 집중 관리 형식으로 인한 취약점이 존재한다.

4. 스키마가 뭘까요? 3단계 데이터베이스 구조에 대해 설명해주세요.

스키마는 데이터베이스의 구조와 제약조건을 정의한 것을 말합니다. 데이터베이스는 관점에 따라 각각 외부, 개념, 내부 스키마로 나눌 수 있습니다.

외부 스키마의 경우 개별 사용자의 관점으로 이해한 데이터베이스 구조를 말합니다. 각 사용자마다 생각하는 데이터베이스의 구조가 다를 수 있기 때문에 하나의 데이터베이스에 여러 외부 스키마가 존재할 수 있습니다.

개념 스키마는 조직 전체의 관점에서 보는 데이터베이스의 모습으로, 모든 사용자에게 필요한 데이터를 통합하여 정의한 전체 데이터베이스의 논리적인 구조입니다. 데이터 간의 관계나, 제약조건에 대한 정의 뿐만 아니라 데이터의 보안 정책이나 접근 권한에 대한 정의도 포함됩니다.

내부 스키마는 저장 장치의 관점에서 이해한 데이터베이스의 구조를 말합니다. 전체 데이터베이스가 실제로 저장되는 방법을 정의하며, 파일에 저장되는 데이터의 레코드 구조, 필드 정보, 접근 경로 등의 정의를 포함합니다.

5. 데이터 독립성에 대해서 설명해주세요.

데이터 독립성은 데이터베이스의 구조와 데이터의 내용이 서로 영향을 미치지 않는 것을 말합니다. 데이터 독립성은 ‘논리적 데이터 독립성’과 ‘물리적 데이터 독립성’으로 나눌 수 있습니다. 논리적 데이터 독립성이란 데이터베이스의 논리적 구조가 변경되어도 어플리케이션이나 사용자의 요구에 영향을 주지 않는 것을 말하며, 물리적 독립성은 데이터베이스의 물리적 구조가 변경되어도 데이터에 영향을 주지 않음을 말합니다.

6. RDBMS(관계형 데이터베이스 관리시스템)는 뭘까요?

관계형 데이터베이스의 기능을 제공하는 소프트웨어를 말합니다. 관계형 모델(표 형식)을 기반으로 하는 DBMS의 한 유형입니다. 예시로는 MSSQL, MySQL, Oracle이 RDBMS 등이 있습니다.

7. 릴레이션 스키마와 릴레이션 인스턴스에 대해서 설명해주세요.

릴레이션 스키마는 테이블(릴레이션)에 담길 값을 정의한 논리적인 구조입니다. 즉 테이블의 열(속성)과 해당 열이 가질 수 있는 데이터 유형 등을 정의합니다. 예를 들어, 학생 테이블의 스키마는 학번, 이름, 성별 등의 열과 각 열이 가질 수 있는 데이터 유형을 정의합니다.

릴레이션 인스턴스란 테이블에 실제로 저장된 데이터의 집합을 의미합니다. 즉, 어느 시점에 테이블에 존재하는 행(투플)들의 집합입니다.

관련 용어 정리

이름
릴레이션하나의 객체에 대한 데이터를 2차원 테이블 구조로 정의한 것
속성(attribute)릴레이션의 열
행(tuple)릴레이션의 행
도메인하나의 속성이 가질 수 있는 값들의 집합
차수 (degree)하나의 릴레이션에서 속성의 전체 개수
카디널리티하나의 릴레이션에서 투플의 전체 개수

릴레이션과 데이터베이스

릴레이션은 릴레이션 스키마와 릴레이션 인스턴스로 구성된다.

  • 릴레이션 스키마: 릴레이션의 이름과 릴레이션에 포함된 모든 속성의 이름으로 정의하는 릴레이션의 논리적 구조
  • 릴레이션 인스턴스: 어느 한 시점에 릴레이션에 존재하는 투플들의 집합

8. 릴레이션의 차수와 카디널리티에 대해 설명해주세요.

릴레이션의 차수란 테이블(릴레이션)이 가지는 전체 속성의 개수를 말합니다. 예를 들어 학생 테이블이 이름, 성별, 학번의 속성을 가진다면 테이블의 차수는 3이됩니다.
반대로 테이블의 카디널리티는 테이블에 저장된 전체 행(투플)의 개수를 말합니다. 예를 들어 학생 테이블에 저장된 행의 수가 총 10개라면 테이블의 카디널리티가 10이라고 말할 수 있습니다.

9. 키(Key)에 대해서 설명해주세요. (슈퍼키, 후보키, 기본키, 대리키, 외래키)

키(key)는 테이블에 저장된 각 행(투플)을 구별하는 역할을 하는 속성 또는 속성들의 집합입니다. 키는 유일성과 최소성에 따라 분류되는데, 유일성과 최소성을 모두 만족하는 경우 이를 후보키라고 하며, 이 후보키 중에서 기본적으로 사용하기 위해 선택된 키를 기본키라고 합니다. 또한 기본키로 선택되지 못한 나머지 키들을 대리키라고 부르며, 유일성만 만족하는 경우 이를 슈퍼키라고 부릅니다. 외래키의 경우 다른 테이블(릴레이션)의 기본키를 참조하는 키를 말합니다.

10. 무결성 제약조건에 대해서 설명해주세요. (도메인 무결성, 개체 무결성, 참조 무결성)

무결성 제약조건이란 데이터의 무결성, 즉 데이터가 정확하고 유효하게 유지됨을 보장해야 한다는 규칙입니다. 개체 무결성 조건은 기본키를 구성하는 모든 속성은 널(null) 값을 가질 수 없다는 규칙이며, 참조 무결성 규칙은 외래키는 참조할 수 없는 값을 가질 수 없다는 규칙입니다. 마지막으로 도메인 무결성 규칙은 특정 속성의 값이 그 속성이 정의된 도메인에 속한 값이어야 한다는 규칙입니다. 예를 들어 학생 테이블의 성별이라는 속성이 존재하고, 성별의 도메인을 '남'과 '여'로 정의한 경우, 그 이외의 값은 입력할 수 없어야 합니다.

11. 사용했던 데이터베이스에 대해서 설명해주세요. (오라클DB, MySQL, MariaDB, MongoDB 등)

MySQL이라면?

MySQL 엔진에 대해서 설명해주세요.

MySQL 엔진은 클라이언트가 요청하는 SQL 문장을 분석하거나 최적화하여 처리하는 등의 역할을 담당합니다.

(MySQL을 사용했다면) InnoDB에 대해 설명해주세요.

MySQL의 데이터베이스 엔진으로 대용량 데이터 처리 및 사용자 동시 접속 환경을 제공하며, 논리적 장애 복구 기능을 제공합니다.

profile
학생

0개의 댓글