데이터베이스 모델이란?
데이터베이스 모델(Database Model)은 데이터베이스의 논리적 구조를 결정하고, 데이터를 저장·조직화·조작하는 근본적인 방식을 정의하는 개념입니다. 데이터베이스가 등장하기 전에는 파일 저장 방식으로만 데이터를 보관할 수 있었는데, 이 경우 프로그래머가 데이터를 추출하기 위해 상당한 노력을 기울여야 했고, 프로그램 역시 복잡한 파싱(parsing)과 데이터 연관 작업을 수행해야 하는 등 복잡성이 크게 증가했습니다.
Perl처럼 강력한 정규 표현식을 지원하는 언어를 활용하면 텍스트를 비교적 쉽게 처리할 수 있지만, 파일에서 직접 데이터에 접근하는 작업은 여전히 까다롭습니다. 데이터 접근을 위한 표준 방식이 없기 때문에 시스템은 오류에 취약했고, 개발 속도도 느렸으며 유지보수 또한 어려웠습니다. 또한 데이터 중복(Data Redundancy) 문제(동일한 데이터가 불필요하게 반복 저장되는 현상)와 낮은 데이터 무결성 문제(일부 위치에서만 데이터가 변경되어 잘못되거나 오래된 정보가 제공되는 현상)도 발생했습니다.
이러한 문제를 해결하기 위해 데이터베이스 관리 시스템(DBMS)이 개발되었습니다. DBMS는 데이터에 접근하고 갱신하는 표준적이고 신뢰할 수 있는 방법을 제공하며, 응용 프로그램과 데이터 사이에 중개 계층을 두어 프로그래머가 데이터 접근 문제를 걱정하지 않고 응용 프로그램 개발 자체에 집중할 수 있도록 돕습니다.
데이터베이스 모델의 정의
따라서 데이터베이스 모델은 데이터가 어떻게 표현되는지를 다루는 논리적 모델이라고 정의할 수 있습니다. 데이터베이스 설계자는 물리적인 데이터 저장 방식보다는 더 높은 개념적 수준에 집중함으로써, 실제 세계의 문제와 기술적 구현 사이의 간격을 줄일 수 있습니다.
데이터 모델의 역할
데이터 모델은 데이터 요소들을 조직화하고 데이터 요소 간의 관계를 표준화하는 데 사용됩니다. 데이터 요소는 실제 삶의 사람, 장소, 사물 그리고 그들 사이에서 일어나는 사건을 기록하는 데 쓰이며, 이는 곧 현실을 반영합니다. 예를 들어 '건물에는 창문이 많다', '개는 눈이 두 개 있다'와 같은 사실들이 그 예입니다. 모델은 데이터를 구조화하는 데 도움을 주며, 동시에 데이터에 대해 수행할 수 있는 연산의 집합도 정의합니다.
하나의 DBMS는 둘 이상의 모델을 제공할 수 있습니다. 최적의 구조는 응용 프로그램 데이터의 자연스러운 조직 형태와 해당 응용 프로그램의 요구 사항에 따라 달라지며, 고려해야 할 주요 요소는 다음과 같습니다.
- 트랜잭션 처리율(속도)
- 신뢰성
- 유지보수성
- 확장성
- 비용
플랫(테이블) 모델
플랫(Flat) 모델, 즉 테이블(Table) 모델은 가장 전통적이고 단순한 데이터 모델로, 하나의 2차원 배열로 구성됩니다. 특정 열(column)의 모든 값은 서로 유사한 성격의 값을 가지며, 한 행(row)의 값들은 서로 연관된 정보를 나타냅니다. 예를 들어 시스템 보안 데이터베이스에서 열은 이름과 비밀번호를 담당하고, 각 행에는 특정 사용자와 그 사용자의 비밀번호가 함께 저장됩니다. 테이블의 각 열에는 문자 데이터, 날짜·시간 정보, 정수, 부동소수점 숫자 등 값을 정의하는 자료형(type)이 지정됩니다.
플랫 파일 데이터베이스란?
플랫 파일 데이터베이스(flat file database)는 구조화되지 않은 일반 파일, 이른바 '플랫 파일(flat file)'에 데이터를 저장하는 데이터베이스입니다. 파일 전체가 컴퓨터 메모리에 적재되므로 컴퓨터 시스템에서 데이터 구조에 접근하고 이를 조작하기가 수월합니다. 데이터베이스 작업이 완료되면 파일은 컴퓨터 시스템에서 내보내져 호스트의 파일 시스템으로 전송됩니다. 이러한 저장 방식을 '플랫(flat)'이라고 부르는 이유는 인덱싱 구조가 없고 레코드 간에 구조적인 관계가 존재하지 않기 때문입니다.
플랫 모델은 소규모의 단순한 데이터베이스에 가장 적합합니다. 데이터 크기가 커질수록 메모리 접근이 어려워지며, 더 정교한 데이터베이스가 필요하게 됩니다. 손으로 작성한 이름, 연락처, 주소, 도시 목록이 대표적인 플랫 파일 데이터베이스의 예이며, 동일한 정보를 스프레드시트에 기록하면 온라인 환경에서 향상된 검색 기능과 함께 활용할 수 있습니다. 또한 플랫 파일 데이터베이스 모델을 이용해 데이터를 전송할 수도 있습니다.
예시 데이터베이스
다음 예시는 플랫 파일 데이터베이스의 기본 요소를 보여줍니다. 열과 행이 테이블 형태로 구성되어 있으며, 각 열은 다음과 같은 정보를 담고 있습니다.
- ID(첫 번째 열): 레코드를 고유하게 식별하는 숫자형 고유 식별자
- NAME(두 번째 열): 사람의 이름
- TEAM(세 번째 열): 해당 사람이 지원하는 운동팀의 이름
아래와 같은 데이터 표현 방식은 플랫 파일 데이터베이스에서 매우 표준적으로 사용됩니다.
| ID | NAME | TEAM |
|---|---|---|
| 101 | Abhinav | Blues |
| 102 | Aditya | Blues |
| 103 | Anjali | Pink |
| 104 | Bhavna | Pink |
| 105 | Charu | Pink |
| 106 | Divy | Blues |
| 107 | Disha | Pink |
| 108 | Eashan | Blues |
| 109 | Gauri | Pink |