데이터베이스 - chap.1

로두마니·2025년 9월 10일

데이터베이스

목록 보기
1/1
post-thumbnail

📝 데이터베이스 핵심 개념 정리

1. 데이터베이스 기본 용어

데이터(Data): 의미를 가지며 기록될 수 있는 알려진 사실들입니다.

데이터베이스(Database): 서로 관련있는 데이터들의 모임입니다.

DBMS(데이터베이스 관리 시스템): 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지입니다.

데이터베이스 시스템(Database System): 데이터베이스와 이를 관리하는 소프트웨어(DBMS), 응용 프로그램을 모두 포함하는 용어입니다.

미니월드(Mini-world): 데이터베이스 구축의 대상이 되는 현실 세계의 일부분을 가리킵니다.

2. 데이터베이스의 구조: 3단계 스키마 아키텍처

데이터베이스는 사용자와 물리적 저장 구조의 분리를 목표로 3단계 스키마 아키텍처를 사용하며, 이를 통해 데이터 독립성을 보장합니다.

외부 스키마(External Schema): 개별 사용자가 보는 데이터베이스의 관점입니다. 사용자마다 관심 있는 데이터의 일부만

뷰(View) 형태로 제공하여 전체 복잡성으로부터 사용자를 보호합니다.

개념 스키마(Conceptual Schema): 조직 전체의 데이터베이스를 통합한 논리적 구조입니다. 데이터베이스에 저장될 모든 데이터, 관계, 제약 조건을 기술하며, 데이터의 물리적 저장 구조와는 독립적입니다.

내부 스키마(Internal Schema): 데이터가 물리적으로 저장되는 방식을 기술합니다. 데이터가 저장되는 파일, 인덱스 등 세부적인 물리적 정보를 포함하며, 하드웨어 및 운영체제에 종속적일 수 있습니다.

3. 데이터 독립성

3단계 스키마 아키텍처는 두 가지 유형의 데이터 독립성을 제공합니다.

논리적 데이터 독립성: 개념 스키마가 변경되어도 외부 스키마(사용자 뷰)는 영향을 받지 않습니다.

물리적 데이터 독립성: 내부 스키마(물리적 저장 구조)가 변경되어도 개념 스키마는 영향을 받지 않습니다.

4. 데이터베이스의 주요 특징

자기 기술성(Self-describing): DBMS는 데이터베이스 자체에 대한 정의(메타데이터)를 데이터 카탈로그에 스스로 저장합니다. 이로 인해 응용 프로그램과 데이터의 연결이 느슨해져, 데이터 구조가 변경되어도 응용 프로그램을 최소한으로 수정하거나 전혀 수정하지 않아도 됩니다. 이는 프로그램-데이터 독립성을 가능하게 합니다.

데이터 추상화: 데이터 모델을 사용하여 저장 구조의 세부 사항을 숨기고 개념적인 뷰만 제공합니다.

데이터 공유 및 다중 사용자 트랜잭션 처리: 여러 사용자가 동시에 데이터를 안전하게 공유할 수 있게 합니다.

트랜잭션(Transaction): 한 번 이상의 데이터베이스 접근을 포함하는 프로그램의 단위 또는 프로세스 수행으로, 원자성과 고립성을 만족해야 합니다.

원자성(Atomicity): 트랜잭션 내의 모든 연산이 하나의 단위로 묶여 부분적 실행이 불가능함을 의미합니다.

고립성(Isolation): DBMS가 다양한 기술(예: 잠금)을 사용해 각 트랜잭션이 마치 독립적으로 실행되는 것처럼 보이게 하는 기능입니다.

동시성 제어(Concurrency Control): 여러 트랜잭션이 동시에 실행되더라도 데이터의 일관성을 유지하는 기능입니다.

복구(Recovery): 시스템 장애 시에도 데이터 손실을 방지하는 기능입니다.

5. DBMS의 장점 및 사용 효과

데이터 중복성 제어: 데이터 중복을 방지하고 데이터 일치성을 보장합니다.

데이터 공유 및 동시 접근 보장: 다수 사용자 간의 데이터 공유와 동시 접근을 보장합니다.

권한 없는 접근 통제: 보안 및 권한 서브시스템을 통해 접근을 통제합니다.

지속성 기억 공간 제공: 프로그램 객체를 위한 영구적인 저장 공간을 제공합니다.

효율적인 질의 처리: 저장 구조 및 탐색 기법을 통해 질의를 효율적으로 처리합니다.

백업과 회복: 백업 및 회복 기능을 제공하여 데이터를 복구합니다.

다양한 사용자 인터페이스 제공: 다양한 인터페이스를 통해 데이터에 접근할 수 있게 합니다.

복잡한 관계 표현: 데이터 간의 복잡한 관계를 표현합니다.

무결성 제약 조건 시행: 데이터의 정확성과 일관성을 유지하기 위한 제약 조건을 강제합니다.

표준화된 데이터 관리: 업무 효율성을 증대시킵니다.

데이터 구조 변경의 유연성: 데이터 구조가 변경되어도 사용자에게 미치는 영향이 거의 없습니다.

응용 프로그램 개발 시간 단축: 응용 프로그램의 많은 부분을 DBMS가 처리해주어 개발 시간을 단축합니다.

최신 정보 제공: 한 사용자의 갱신이 다른 사용자에게 즉시 반영됩니다.

규모의 경제성: 통합된 DB 관리를 통해 비용을 절감합니다.

6. DBMS가 불필요한 경우

높은 초기 투자 비용과 오버헤드: DBMS의 기능(보안, 동시성 제어, 복구)이 필요하지 않은 경우, 오버헤드가 되어 성능에 부정적 영향을 줄 수 있습니다.

단순하고 변경 가능성이 적은 응용: 응용 프로그램이 단순하고 잘 정의되어 있으며, 변경될 가능성이 적을 때.

실시간 데이터 처리 요구사항: DBMS의 오버헤드로 인해 엄격한 실시간 데이터 처리 요구사항을 만족시키기 어려울 수 있습니다.

다중 사용자 접근이 필요하지 않은 경우: 단일 사용자 환경에서는 DBMS의 복잡한 기능이 필요하지 않습니다.

profile
해적왕이 될 사나이

0개의 댓글