1. 데이터베이스란?
데이터베이스(DB)
- 여러 사람들이 공유하고 사용할 목적으로 통합 관리되는 데이터들의 모임
데이터베이스 관리 시스템(DBMS)
- 다수의 사용자들이 데이터베이스 내의 데이터를 접근할 수 있도록 해주는 소프트웨어
2. 데이터베이스의 목적
- 서로 다른 응용 프로그램에서 데이터를 공용해서 사용하기 위함
2.1. 데이터베이스의 배경
- 데이터베이스가 존재하기 이전에 파일 시스템을 이용하여 데이터를 관리함
- 데이터를 각각의 파일 단위로 저장하고, 이를 각각의 애플리케이션에서 사용하게 됨
- 파일 시스템에서는 파일에 접근하는 방식이 응용 프로그램 내에 표현되어 응용 프로그램과 데이터 간의 의존관계가 생김
- 데이터의 구조, 접근 방법이 변경되면 기존의 프로그램과 데이터를 함께 변경해야 하는 문제가 발생함
- 즉, 파일 단위로 저장하면 데이터 종속성, 중복성, 무결성 문제 등이 발생하여 데이터베이스로 관리하기 시작함
3. 데이터베이스의 개념
3.1. 데이터베이스의 정의
통합 데이터
- 여러 곳에서 사용하던 데이터를 통합하여 하나로 저장한 데이터
- 통합 시 중요한 점은, 각자 사용하던 데이터의 중복을 최소화함으로써 중복 저장으로 인한 데이터 불일치 현상을 없애는 것
저장 데이터
- 컴퓨터가 접근할 수 있는 매체에 저장된 데이터
운영 데이터
- 단순한 데이터의 집합이 아닌, 조직의 목적을 위해 사용되는 데이터
- 작업을 처리하기 위해 일시적으로 생성된 임시 데이터는 운영 데이터가 아니라는 의미
공용 데이터
- 여러 사용자가 함께 소유하고 사용할 수 있는 데이터
3.2. 데이터베이스의 특징
실시간 접근성
- 현재 사용되고 있는 시스템들에서는 일괄 처리만 하는 경우가 드물기에, 임의적이고 비정형적인 쿼리에 대해 실시간으로 처리함
지속적인 변화
- 데이터베이스에 저장된 내용은 어느 한순간의 상태를 나타내지만, 데이터는 시간에 따라 항상 바뀜
- 데이터베이스는 지속적인 삽입, 삭제, 수정을 통해 현재의 정확한 데이터를 유지함
동시 공용
- 서로 다른 목적을 가진 시스템들이 공용할 수 있도록 구성됨
- 같은 데이터의 동시 사용도 지원함
내용에 따른 참조
- 데이터가 저장된 물리적 주소나 위치가 아닌 내용으로 참조됨
- 데이터 자체의 값을 사용하여 조건을 제시하면, 이에 해당하는 데이터를 검색해 줌
- 그러므로 데이터의 저장되는 구조나 위치가 바뀌더라도, 응용 프로그램에는 영향을 미치지 않음
4. 데이터베이스의 구조
- 데이터베이스는 개념적으로 개체(Entity)와 관계(Relationship)로 이루어져 있음
- 하지만 실제로 데이터베이스는 개체와 관계의 값들로 구성되었고, 이러한 값들은 물리적인 저장장치에 저장됨
- 이 저장 구조를 장치의 입장과 사용자의 입장에서 볼 수 있으며, 각각 물리적 구조와 논리적 구조로 구별할 수 있음
- 개체를 고유의 이름과 속성들로 정의한 것을 개체 타입이라고 함 (논리적 구조)
- 개체를 구성하고 있는 속성이 실제 값을 가짐으로써 실체화된 개체를 개체 인스턴스라고 함 (물리적 구조)
5. 물리적으로 데이터가 어떻게 저장되는가
0. 배경
- 논리적 구조의 수강 목록(ID, 강의명, 수강생명, 강사명) 테이블의 데이터가 물리적으로 어떻게 저장될까?
1. 테이블 스페이스 생성
- 수강 목록 테이블과 그 안의 데이터를 저장할 테이블 스페이스를 생성함
테이블 스페이스(Tablespace)
- 데이터베이스 인스턴스의 실제 데이터를 저장하는 물리적 공간으로, DBMS에 의해 관리됨
- 일반적으로 디스크(SSD, HDD)에 저장되며, DBMS는 디스크에서 데이터를 읽고 쓰며 필요한 경우 디스크에서 캐싱하여 메모리(RAM)에 올림
2. 테이블 생성
- 수강 목록 테이블을 생성하고 논리적 스키마를 정의함
3. 테이블 데이터 저장
- 테이블 스페이스에 수강 목록 테이블의 데이터를 저장함
- 이 데이터는 테이블과 연관된 파일에 기록되고, 파일은 블록(Block)이라는 작은 단위로 분할됨
4. 레코드 삽입
- 예를 들어, 아래와 같은 레코드를 수강 목록 테이블에 삽입했다고 가정하자.
- 이 레코드는 테이블 스페이스의 파일 블록에 저장됨
- 각 속성은 해당 블록에 저장되며, 각 레코드의 유일한 식별자인 ID는 인덱스를 통해 검색됨
5. 인덱스 생성
- 데이터베이스는 빠른 데이터 검색을 위해 인덱스를 생성함
- 기본 키(ID)로 지정된 열에는 자동으로 인덱스가 생성됨
6. 정리
- 데이터베이스 파일과 테이블 스페이스는 디스크에 저장됨
- 이 파일들은 DBMS에 의해 관리되며, 필요에 따라 캐싱하여 메모리에서 데이터 엑세스를 위해 최적화함
- 사용자는 논리적 스키마를 기반으로 데이터에 엑세스하고 쿼리를 수행하며, DBMS는 이러한 요청을 처리하기 위해 물리적 데이터 구조를 관리함
참고자료
https://medium.com/@shehanPW/differentiate-database-system-and-dbms-68e3fee0688a
https://github.com/JaeYeopHan/Interview_Question_for_Beginner/tree/master/Database
'Computer Science' 카테고리의 다른 글
[Database] 5. 트랜잭션의 격리 수준과 락 (0) | 2023.09.30 |
---|---|
[Database] 4. 트랜잭션과 무결성 (0) | 2023.09.12 |
[Java] 1. JVM과 자바 코드 실행 과정 (0) | 2023.09.09 |
[Database] 3. 정규화 (0) | 2023.09.07 |
[Database] 2. 관계형 데이터베이스 설계하기 (0) | 2023.09.06 |