용어
- 데이타 (data): 의미를 가지면서 기록될 수 있는 알려진 사실, 실세계의 값.
- 데이터베이스 (database): 관련있는 데이터의 모임. 가장 밑바닥에 database 존재. 보통 enterprise 단위로 database 생성.
- 데이터베이스 관리 시스템 (DBMS): 데이터베이스의 생성과 관리를 담당하는 소프트웨어 패키지.
- 데이터베이스 시스템 (Database System): database 와 그를 관리하는 소프트웨어 (DBMS, 응용 프로그램, ex-Oracle, MySQL, MongoDB...) 모두를 칭하는 용어.
- 작은 세계 (mini-world) 데이타베이스 구축의 대상이 되는 실세계의 일부분. mini-world를 잘 고려해서 database를 구축해야함.

1. Users / Programmers
- 정의: 데이터베이스 시스템을 사용하는 최종 사용자(end-user)나 데이터베이스 프로그래머.
- 설명: 사용자는 직접 질의(Query)를 작성하거나, 응용 프로그램(Application Program)*을 통해 데이터베이스를 이용함. 사용자가 직접 database에 접근하지 않는다.
2. Application Programs / Queries
- 정의: 데이터베이스에 접근하기 위한 사용자 요청(쿼리) 또는 사용자 인터페이스를 가진 응용 프로그램.
- 설명: 단순히 SQL 쿼리를 날려 데이터를 검색/수정할 수도 있고 또는 응용 소프트웨어(예: 은행 시스템, 예약 시스템)가 데이터베이스에 접근하는 역할을 할 수도 있음.
3. Software to Process Queries / Programs
- 정의: 사용자의 질의나 프로그램 요청을 해석하고 실행 계획을 세우는 모듈.
- 설명: SQL 같은 질의를 받아 파싱(parsing), 최적화(optimization), 실행 계획 생성(execution plan generation)을 담당함.
4. Software to Access Stored Data
- 정의: 실제 저장된 데이터를 접근하고 조작하는 모듈.
- 설명: 스토리지 엔진 역할을 수행하며, 데이터 파일을 읽고 쓰는 기능 제공. DBMS의 핵심 엔진이라고 할 수 있음.
5. Stored Database Definition (Meta-Data->데이터를 위한 데이터, 카탈로그)
- 정의: 데이터베이스의 구조와 제약조건에 대한 정의(스키마, 데이터 타입, 제약조건 등)를 저장한 메타데이터.
- 설명: 어떤 테이블이 있는지, 테이블의 컬럼 이름과 자료형은 무엇인지, 어떤 키가 기본 키인지, 뷰와 인덱스 정보 등. DBMS가 쿼리를 처리할 때 메타데이터를 참조하여 올바르게 데이터에 접근할 수 있음.
5. Stored Database
- 정의: 실제로 저장된 데이터(레코드, 튜플) 자체.
- 설명: 예를 들어 은행 DB라면 고객 정보, 계좌 내역, 거래 기록 같은 실제 데이터가 저장되는 부분.
엔티티 (Entity)
- 정의 (ER 모델 관점): 현실 세계의 객체(대상)를 표현한 개념. → 학생, 과목, 교수, 주문, 고객 같은 "실체". DB로 매핑되면 하나의 테이블(Table)로 구현됨.
- 특징: 엔티티는 “무엇을 저장할 것인가”에 초점이 있음. 엔티티 안에 있는 속성(attribute)들이 테이블의 컬럼이 됨. 엔티티 간 관계(Relationship)가 PK, FK 제약조건으로 표현됨
스키마 (Schema)
- 정의: 데이터베이스의 전체적인 구조. 엔티티(테이블), 속성(컬럼), 관계, 제약조건 전부 포함.
- 특징: "전체 설계도" 같은 것. 데이터베이스 안의 여러 엔티티(테이블)를 포괄함.
Database 의 특징
- 데이타베이스 시스템의 자기 기술성(self-describing): Database 카탈로그(catalog) 에는 메타 데이타 (meta-data) 가 저장되어 있으며 , 이를 이용하여 하나의 DBMS가 다수의 데이타베이스를 관리할 수 있음.
=> database 자체가 메타 데이터를 이용하여 data들의 속성을 설명함.
- 메타 데이타(meta-data): 데이타베이스에 대한 정보. 스키마 ex) 학생 테이블은 학번(INT), 이름(VARCHAR), 전공(VARCHAR)으로 구성됨
- 프로그램과 데이타의 분리: 데이타베이스 내의 데이타 저장 구조가 변경되어도 Database 응용 프로그램은 영향을 받지 않는 (변경될 필요가 없는) 성질. 프로그램과 데이타의 독립성(program-data independence) 을 높임
=> database software와 실제 데이터가 저장되는 disk와의 분리를 의미함. 즉 disk에 새로운 데이터를 저장하여 변화를 주어도
이를 위해 software프로그램를 다시 짜거나 변화를 줄 필요 없이 동일하게 기능을 사용하면 됨.
- 데이타 추상화: 데이타 모델(data model) 을 사용함으로써 저장 구조의 자세한 내용은 사용자로부터 은닉시키고 개념적인 뷰 (conceptual view)만을 제공함
=> 사용자는 database의 정확한 내부 구성을 몰라도됨. 그냥 필요한 data를 조회.
- 데이타에 대한 다중 뷰(view) 제공: 사용자는 전체 데이타베이스 보다는 관심이 있는, 책임이 있는 데이타베이스의 일부를 뷰로 정의할 수 있음
=> 사용자는 mini-world에 맞게 필요로 하는 데이터만 사용하면됨.
- 데이터의 공유와 다수 사용자 트랜잭션 처리: 트랜잭션(거래)은 한 번 이상의 데이터베이스 접근을 포함하는 프로그램의 단위 혹은 프로세스 수행(예를 들어 계좌 이체의 경우 한가지의 수행만이 아닌 돈은 계좌에서 뺴고 이 돈을 다른 계좌에 더하고 잔고를 확인하는 등 여러 수행이 합쳐진 행위임). 고립성과 원자성의 성질을 만족하여야 함. 동시성 제어(Concurrency Control). 온라인 트랜잭션 처리(OLTP: On-Line Transaction Processing) 다수 사용자를 위한 DB 프로그래밍 관점에서 트랜잭션에 대해 학습.
=> 은행이 다수가 동시에 일을 처리할때 발생할 수 있는 상황을 고려해야함을 의미
데이타베이스 사용자의 분류
- 데이타베이스 관리자 (database administrator, DBA): 데이타베이스 시스템의 관리를 책임진 사람. 개발자라기 보다는 운영고 관리
- 데이타베이스 설계자(database designer): 데이타베이스의 설계를 책임진 사람. 초기 아키텍쳐 및 설계를 담당.
- 최종 사용자(end users): 데이타베이스에 대하여 질의, 갱신, 보고서 작성 등을 담당하는 사람. UI부분을 사용하며 서버에 대한 내용은 모르는 사람.
-캐주얼 사용자(casual end users): 비정기적인 데이타베이스 사용자
-초보 사용자(parametric or naive users): 미리 일정한 용도로 작성된 프로그램을 사용하는 사용
자; 은행 점원이나 여행사 예약 담당원 등
-전문 사용자(sophisticated end users): 복잡한 응용을 개발하며, DBMS의 기능을 충분히 사용하
는 전문가 - 시스템 분석가/응용 프로그래머(system analysts / application programmers): 초보 사용자를 위하여 잘 정의된 기능의 응용을 설계하고 구현하는 사람. DB와 연결된 코드를 짜고, 프론트엔드/백엔드 로직을 개발. 코딩을 가장 많이 하는 사람.
데이타베이스 사용자 - 무대 뒤의 사람들 STEP
- DBMS 설계 및 구현자
-DBMS 소프트웨어(Oracle, MySQL ) 자체를 설계하고 구현하는 업무를 담당하는 사람들 - 도구 개발자
-데이타베이스를 사용하는 데에 필요한 도구들 (데이타베이스 설계 및 구축 도구, 성능 도구, 인터페
이스 등)을 설계하고 구현하는 사람들 - 운영 및 유지 보수 요원
-데이타베이스 시스템을 운영하는 데에 필요한 하드웨어 및 소프트웨어의 운영 및 유지 보수 담당
요원들
DBMS 의 장점
- 중복성의 제어
-데이터 일치성 (consistency) 보장 및 메모리 낭비 방지
-다수 사용자 간의 데이타의 공유 및 동시 접근 보장 - 권한이 없는 접근의 통제
-보안과 권한 서브시스템 - 프로그램 객체를 위한 지속성 기억 공간 제공
-지속성 객체(Persistent Object)
-Impedance Mismatch - 효율적인 질의 처리를 위한 저장 구조와 탐색 기법의 제공
- 백업과 회복 제공
- 다수의 사용자 인터페이스 제공
- 데이터 간의 복잡한 관계의 표현
- 무결성 제약 조건(Integrity constraint)의 시행
-참조 무결성(Referential integrity) => 존재하지 않는 ATTRIBUTE에 대한 접근 방지.
-비즈니스 규칙(Business rule) - 규칙을 사용한 추론과 수행
-연역(deductive) 데이터베이스 시스템
-트리거(Trigger)
DBMS 의 사용 효과
- 표준화된 데이타 관리
-조직 내 모든 부서에서 표준화된 문서 관리로 업무 효율성 증대 - 데이타 구조 변경에 융통성 부여
-데이타베이스 내의 자료 구조가 어떠한 이유로 변경되어도 사용자에 대한 영향은 거의 없음 - 응용 프로그램의 개발 시간 단축
-응용 프로그램의 상당한 부분을 DBMS가 처리함 - 항상 최신의 정보를 제공
-사용자 중에서 한 사람의 갱신으로 나머지 사람은 즉시 변경된 값을 접근가능 - 규모의 경제성 (economics of scale)
-부서마다 다른 방식으로 자료를 관리하는 것보다 통합 DB로 관리하는 것이 전체적인 관점에서 저
비용임
'📌CS > 데이터베이스' 카테고리의 다른 글
| [데이터베이스 정리] ch.3 관계형 모델, 관계형 데이터베이스 구조 RDB (0) | 2025.10.10 |
|---|---|
| [데이터베이스 정리] ch.2 데이터베이스 시스템 개념과 아키텍처 (0) | 2025.10.07 |