01 DataBase 기본개념
01 DataBase 기본개념
1. 데이터베이스
1. 주요 개념
- 데이터/정보/지식
구분 | 의미 | 예시 |
---|---|---|
데이터(Data) | 가공되지 않은 사실 또는 수치 | “2025-10-14”, “홍길동”, “35세” |
정보(Information) | 데이터를 가공·처리하여 의미를 부여한 것 | “홍길동의 나이는 35세이다” |
지식(Knowledge) | 여러 정보 간의 관계를 분석해 얻은 통찰 | “35세 이상의 고객은 재구매율이 높다” |
- 데이터베이스
- 조직에 필요한 정보를 얻기 위해 논리적으로 연관된
데이터
를 모아 구조적으로 통합해놓은 것 - 데이터의 일관성(Consistency), 무결성(Integrity), 보안(Security), 공유성(Sharing) 등을 보장하는 정보 관리 시스템의 핵심 인프라
- 조직에 필요한 정보를 얻기 위해 논리적으로 연관된
- 스키마
- 데이터베이스 구조와 제약 조건을 정의한 설계 정보
- 데이터베이스에 어떤 테이블이 있고, 컬럼은 어떤 것이며, 데이터 타입과 관계는 어떻게 되는지를 정리한 것
2. 데이터베이스의 특징
- 실시간 접근이 가능하다(real-time accessibility)
- 계속 변화한다(continuous evolution)
- 동시 공유가 가능하다(concurrent sharing)
- 내용으로 참조가 가능하다(content reference)
3. 데이터베이스의 데이터 종류
구분 | 설명 |
---|---|
통합 데이터(Integrated Data) | 여러 부서나 업무에서 사용하는 데이터를 중복 없이 통합 관리한다. → 동일 데이터가 여러 파일에 분산되지 않고 한 곳에서 일관성 있게 유지됨. |
저장 데이터(Stored Data) | 컴퓨터 시스템 내 보조 기억장치(디스크 등)에 저장되어 지속적으로 관리된다. → 일시적이 아닌 ‘영속적(persistent)’ 데이터 보관이 가능. |
운용 데이터(Operational Data) | 실제 업무나 서비스 운영에 필요한 데이터를 관리한다. → 예: 회원 정보, 주문 내역, 결제 이력 등. |
공용 데이터(Shared Data) | 여러 사용자가 동시에 동일한 데이터를 접근·사용할 수 있다. → 사용자 간 데이터 충돌 방지를 위해 DBMS가 동시성 제어 수행. |
4. 데이터베이스의 유형
구분 | 변경 빈도 | 조회 비중 | 주요 특징 | 주요 예시 |
---|---|---|---|---|
운영형 데이터베이스 (Operational DB) | 잦음 (상시 갱신) | 적음 (거래 단위 중심) | 실시간 서비스 운영 및 거래 처리 - 실시간 트랜잭션 중심 - 데이터 일관성, 무결성 중요 - 많은 동시 접속 처리 필요 | 은행 거래 DB, 온라인 쇼핑몰 주문 DB, 항공 예약 DB |
분석형 데이터베이스 (Analytical DB) | 없음 (주기적 적재) | 많음 (분석 쿼리 중심) | 대량의 데이터 분석 및 통계 처리 - 데이터 변경 거의 없음 - 대용량 조회/집계에 최적화 - 정규화보다는 분석용 구조(비정규화) | 데이터 웨어하우스(DW), BI 시스템, 로그 분석 DB |
혼합형 데이터베이스 (Hybrid / HTAP) | 중간 | 중간 | 운영 + 분석 병행 - 트랜잭션과 분석을 동시에 지원 - 최신 데이터 기반 실시간 분석 가능 | SAP HANA, Oracle Exadata, PostgreSQL + Timescale 등 |
4. 데이터베이스의 개념적 구조
1. 개념
수준 | 역할 | 설명 |
---|---|---|
외부 수준(External Level / View Level) | 사용자 관점 | 사용자가 접근하는 데이터의 일부를 정의. 각 사용자나 응용 프로그램별로 다른 뷰(View) 제공 |
개념 수준(Conceptual Level / Logical Level) | DB 전체 논리 구조 | DB 전체 구조를 정의. 테이블, 컬럼, 관계, 제약조건 등 논리적 설계 중심. 외부 수준과 내부 수준 사이의 중재자 역할 |
내부 수준(Internal Level / Physical Level) | 저장 관점 | 데이터가 실제로 저장되는 방식 정의. 저장 구조, 접근 경로, 인덱스, 파일 구조 등 물리적 설계 중심 |
2. 정리
항목 | 설명 |
---|---|
외부 수준(View) | DB 개념 수준에서 정의된 전체 데이터를 기반으로 사용자 맞춤형으로 보여주는 데이터 부분 |
웹 시스템에서의 구현 | 개발자가 HTML, CSS, JS, API, 화면 구성 등을 통해 사용자에게 필요한 정보(외부수준)만 보여주는 인터페이스를 만드는 것 |
예시 | - 학생 관리자: 학생 정보 목록, 성적 입력 화면 - 교사 관리자: 담당 수업 정보, 출결 관리 화면 - 학생: 본인 성적/출결 조회 화면 |
DBMS 역할 | 개발자가 만든 화면 요청에 맞춰 DB에서 필요한 데이터를 조회하고, 권한·보안·동시성 제어를 수행 |
2. 파일시스템 / DBMS
1. DBMS
- 데이터베이스(Database)를 생성, 관리, 제어, 보호, 활용할 수 있도록 해주는 프로그램
- 역할
구분 | 핵심 역할 | 주요 기능 |
---|---|---|
데이터 정의 (Data Definition) | 데이터 구조를 정의하고 스키마를 관리 | 테이블, 컬럼, 제약조건 생성 및 변경 |
데이터 조작 (Data Manipulation) | 데이터의 조회, 삽입, 수정, 삭제 수행 | CRUD(Create, Read, Update, Delete) |
데이터 제어 (Data Control) | 사용자 권한 및 보안 관리 | 접근 제어, 권한 부여·회수 |
트랜잭션 관리 (Transaction Control) | 작업 단위를 묶어 일관성 있게 처리 | Commit, Rollback, Savepoint 관리 |
무결성 관리 (Integrity Control) | 데이터의 정확성과 일관성 보장 | 제약조건 검사 (PK, FK, UNIQUE, CHECK 등) |
동시성 제어 (Concurrency Control) | 다중 사용자 접근 시 데이터 충돌 방지 | Lock, Isolation Level, Deadlock 처리 |
복구 관리 (Recovery Control) | 장애 발생 시 데이터 복원 | 로그 기록, 자동 백업, Rollforward/Rollback |
보안 관리 (Security Management) | 사용자 인증 및 접근 통제 | 사용자별 권한 설정, 암호화 |
2. 파일시스템과 DBMS
구분 | 파일 시스템 | 데이터베이스(DBMS) |
---|---|---|
데이터 구조 | 개별 파일 단위 저장 (비구조적) | 테이블 기반 구조적 저장 |
데이터 중복 | 동일 데이터 중복 발생 | 중복 최소화 (정규화) |
데이터 일관성 | 개별 파일마다 다름 | 중앙 집중 관리로 일관성 보장 |
보안 관리 | OS 수준 권한만 존재 | 사용자 단위 접근 제어 가능 |
동시성 처리 | 다중 사용자 접근 어려움 | 트랜잭션 기반 동시성 제어 |
검색 성능 | 파일 단위 순차 탐색 | 인덱스, 쿼리 최적화로 빠름 |
복구 기능 | 직접 백업 필요 | 자동 백업 및 로그 복구 기능 제공 |
3. 데이터모델
1. 데이터모델
- 데이터베이스에서 데이터 구조, 데이터 간 관계, 제약조건, 연산 규칙을 정하는 개념적 설계
- DBMS가 실제 데이터를 저장하고 관리할 때 따라야 할 설계 규칙
2. 역할
- DB 설계 시 데이터 구조와 관계를 논리적으로 명확하게 표현
- 데이터 무결성과 일관성을 보장하기 위한 제약 조건 정의
- DBMS에서 데이터를 구현할 때 구조와 제약 조건을 따라야 함
3. 데이터 모델의 종류
종류 | 특징 |
---|---|
관계형 모델(Relational Model) | 데이터를 테이블(행·열)로 저장, 키를 통해 관계 정의, SQL 기반 |
계층형 모델(Hierarchical Model) | 트리 구조로 부모-자식 관계를 통해 데이터 연결 |
네트워크 모델(Network Model) | 그래프 구조로 복잡한 다대다 관계 표현 가능 |
객체지향 모델(Object-Oriented Model) | 데이터와 관련 연산을 객체 단위로 묶어 표현 |
4. DBMS/데이터모델
1. 관계형 DBMS(RDBMS) – 테이블 기반
DBMS | 유형 | 특징 | 사용 사례 |
---|---|---|---|
Oracle | 상용 | 안정적, 강력한 트랜잭션 관리, 대규모 기업용 | 금융권, 공공기관, ERP 시스템 |
MySQL | 오픈소스 | 경량, 빠른 성능, 커뮤니티 활발 | 웹 서비스, 쇼핑몰, 블로그 |
PostgreSQL | 오픈소스 | 표준 SQL 준수, 고급 기능 지원, 확장성 우수 | GIS, 분석 시스템, 대규모 웹 서비스 |
Microsoft SQL Server | 상용 | Windows 환경 최적화, BI·보고서 기능 지원 | 기업 내 ERP, 데이터 웨어하우스 |
IBM DB2 | 상용 | 대규모 트랜잭션 처리, 안정성 높음 | 은행, 금융권, 대형 기업 시스템 |
2. 비관계형 DBMS(NoSQL) – 비정형 데이터 처리
DBMS | 유형 | 특징 | 사용 사례 |
---|---|---|---|
MongoDB | 문서(Document) | JSON 형태로 데이터 저장, 유연한 스키마 | 로그, SNS, IoT 데이터 |
Redis | 키-값(Key-Value) | 메모리 기반, 빠른 읽기/쓰기 | 캐시, 세션 관리, 실시간 데이터 처리 |
Cassandra | 컬럼(Column) | 분산형, 대규모 데이터 처리에 강점 | IoT, 빅데이터, 추천 시스템 |
Neo4j | 그래프(Graph) | 노드·관계 기반, 복잡한 관계 처리 | 소셜 네트워크, 추천 엔진, 지식 그래프 |
This post is licensed under CC BY 4.0 by the author.