방송통신대학교 데이터베이스 시스템 강의 정리 자료입니다.
전통적인 데이터 관리 방법 - 파일처리시스템
: 각각의 애플리케이션이 파일들을 각각 관리하는 방식의 시스템이었음.
파일처리 시스템의 문제
- 데이터 종속의 문제 / 데이터 중복의 문제 / 무결성 훼손의 문제 / 동시접근의 문제
데이터베이스는 애플리케이션이 직접적으로 데이터에 접근하지 못하게 만들고 중간에서 브로커 역할을 하며 파일처리시스템의 한계를 해결하였음.
예를들어 축제 참가자 명단을 엑셀과 같은 파일로 관리할 경우, 수정한 최종본을 찾는 문제와 데이터 업데이트시 연계된 파일들의 정확한 데이터 갱신여부를 확인하기 어려움. 데이터의 양이 적을 경우 관리하는데 문제가 없을 수도 있으나 데이터 양이 증가할 경우 이를 관리하기는 매우 어려움.
지하철 도착시간을 확인하기 위한 애플리케이션, 책을 구매하기 위해 접속하는 애플리케이션, 로봇 청소기의 청소영역을 확인할 수 있는 애플리케이션 등 데이터를 활용한 여러가지 서비스는 실생활과 굉장히 밀접해 있음.
Legacy Systems, Smart Device, Social Media, Smart Space(IoT와 같은 센서정보를 활용한 공간 서비스등을 지칭)이 보편화 되며, 엄청난 양의 데이터가 축적되기 시작함.
그러나 단순히 데이터가 축적된다고 서비스가 탄생하는게 아니기에 이를 실 서비스와 연결 시켜준 중간 매개체가 데이터 베이스라고 할 수 있음.
1. 데이터베이스의 역할
독일의 통계업체인 Statista에 의하면 데이터의 생성량이 계속 증가하여 2025년이 되면 181ZB 정도가 쌓을 것이라 예측함.
단위 | 양 |
bit | 최소단위 |
byte | 8bit |
kilobyte(KB) | 1024byte |
megabyte(MB) | 1024KB |
gigabyte(GB) | 1024MB |
terabyte(TB) | 1024GB |
petabyte(PB) | 1024TB |
exabyte(EB) | 1024PB |
zettabyte(ZB) | 1024EB |
yottabyte(YB) | 1024ZB |
데이터는 New Technology들을 통해 생성이 이루어지며, 이렇게 생선된 데이터들은 Big Data로 분류되어 수집, 저장, 분석이 이루어진 후 AI를 학습시키기 위한 자원들로 이용될 수 있음.
최근 대세를 이루는 생성형 AI들의 기반들도 결국 이와 같은 데이터 이기에 발생한 데이터들을 적절히 저장하여 관리하고 필요시 검색하여 활용할 수 있도록 해야함.
이에 따라 대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조하는 장치에 대한 요구가 증가하게 되었으며, 이에 따라 데이터베이스(한 조직의 여러 응용 시스템을 다수의 사용자가 공용으로 사용하기 위해 통합, 저장, 관리하는 장치)와 데이터베이스관리시스템(DBMS)가 등장하게 되었음.
컴퓨터와 인간은 데이터를 처리하는 방식이 매우 유사함. 즉, 컴퓨터도 방대한 데이터 속에서 사용자가 요청한 데이터를 찾아내기 위해서는 일일히 데이터를 확인하는 과정이 필요함. 이를 보다 효율적이고 빠르게 하기 위해서 사전준비를 해주는 것이 데이터베이스 시스템임.
웹기반 정보 시스템은 사용자가 요청을 보내면 스위치를 통해 Web 서버로 요청을 보내고 Web서버를 거쳐서 WAS 서버를 거쳐 데이터베이스에 접속 후 필요한 데이터를 찾은 후 사용자에게 돌려줌.
데이터 관리의 역사
전통적 데이터 관리방식으로는 파일처리시스템(file processing system)이 대표적임.
개별적인 애플리케이션들이 각각의 파일들을 별도로 서버에 저장 후 이용하는 방식으로 이루어졌음.
파일처리시스템은 데이터베이스가 개발되기 전 데이터 관리에 이용되었으나, 아래와 같은 4가지 문제를 해결하지 못하는 한계가 있었음.
- 데이터 종속의 문제
: 저장된 데이터가 특정 HW에서 또는 특정 사용자 및 SW에서만 사용될 수 있도록 제한되는 문제임. 기존의 디스크의 용량이 가득차서 신규 디스크를 생성했다고 했을 경우, 애플리케이션의 원본 소스가 수정되지 않을 경우 사용중이던 애플리케이션은 신규 디스크에 접근할 수가 없음.(물리적인 데이터 종속이 발생 / 인코딩만 변경되더라도 애플리케이션이 데이터를 읽지 못하는 문제가 발생함.)
- 데이터 중복의 문제
: 각각의 애플리케이션들이 고유한 파일들을 관리하기 때문에 때때로 중복 데이터를 저장하는 경우가 발생함. 예를 들어 학적 애플리케이션과 수강신청 애플리케이션이 각각 학생정보를 저장한다고 했을 경우, 각각의 애플리케이션이 동일한 학생의 정보를 저장하는 경우가 발생할 수 있음. 이 때, 전화번호라는 데이터 하나만 서로 다르게 저장된다고하면 정합성이 훼손되어 신뢰성에 문제가 발생함. 즉, 동일한 사항에 대한 중복 데이터는 일관성(한 사실에 대해 한 개의 데이터 값을 유지), 보안성(같은 데이터에 같은 수준의 보안 유지), 경제성(데이터에 대해 최소한의 저장 공간만을 점유) 측면에서 문제 발생의 원인이 됨.
- 무결성 훼손의 문제
: 실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건)이 있음. 예를 들어 한 학기 최대 수강학점이 18학점이라고 정해져 있는데, 이를 넘어서는 24학점이라는 데이터를 저장할 경우 저장을 금지시키는 방법이 없기에 무결성이 훼손될 수 있음.
- 동시 접근의 문제
: 동일 데이터에 다수 사용자의 접근 허용 시 일관성이 훼손 될 수 있음.
2. 데이터베이스의 특징
파일 처리 시스템의 문제는 각각의 애플리케이션이 파일에 직접 접근해서 관리하는 것에 발생하는 것이기에 이를 중개할 매개체가 필요하게 됨. 이와 같은 역할을 데이터베이스가 맡게 되어 파일 처리 시스템의 문제를 해결한 것이 데이터베이스 사용의 의미임.
데이터베이스의 특징
- 데이터베이스 시스템의 자기 기술성
: 데이터와 데이터의 정의 및 설명(메타데이터)을 포함함.
- 프로그램과 데이터의 격리 및 추상화
: 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성을 향상함.
- 다중 뷰 제공
: 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공함.
- 데이터 공유와 다수 사용자 트랜잭션 처리
: 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보장하면서 동시에 작업을 수행함.
데이터베이스 시스템의 구성
값, 데이터 그리고 메타데이터
단순한 수치는 데이터가 될 수 없음. 예를 들어 '12'라는 숫자가 있을 경우 '12'는 데이터가 될 수 없으나 '오늘 낮 최고 기온'라는 메타 데이터가 추가되어 '오늘 낮 최고 기온 12'가 되면 데이터가 되기에 단순한 숫자 '12'는 데이터가 아닌 값임.
추상화와 다중 뷰
해당 사항을 구현하기 위해 DBMS는 3단계 구조를 취하고 있음. 각 단계는 서로 다른 수준의 데이터를 다룸. 각 단계는 동기화를 위해 사상(Mapping)이 필요함.
다수 사용자 트랜잭션(하나의 논리적인 작업을 처리하기 위한 일련의 데이터베이스 명령의 집합) 처리
트랜잭션을 나누어 순서에 따라 처리함에 따라 데이터 정합성을 맞추고 신뢰성을 확보함.
데이터베이스 관련 용어
- 데이터:
어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 값에 대한 설명
- 데이터베이스
: 특정 기관의 애플리케이션 시스템에서 사용되는 데이터의 집합(SW나 System이 아닌 데이터의 집합을 지칭함.)
- 데이터베이스 관리시스템
: 데이터베이스에 저장된 데이터의 구성, 저장, 관리, 사용을 위한 소프트웨어 패키지
- 데이터베이스 시스템
: 정보를 데이터베이스에 저장, 관리하여 사용자에게 요구된 형태로 정보를 제공하는 컴퓨터 기반 시스템(DBMS를 포함)
3. 데이터베이스 시스템 구성요소
데이터베이스 언어
: DBMS는 사용자가 데이터를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공하며, 역할에 따라 데이터 정의 언어(DDL), 데이터 조작언어(DML)로 구분됨. 현대의 데이터베이스 언어는 자연어와 유사한 형태의 SQL로 표준화되었음.
DDL(Data Definition Language: 데이터베이스 객체를 생성, 수정, 삭제하기 위한 언어)의 요구 기능
: 데이터 모델에 따라 애플리케이션 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 규정하고 데이터가 저장장치에 저장되도록 데이터의 물리적 구성을 규정함. 또한 물리적 구성을 논리적 구성으로 변환이 가능하도록 데이터의 물리적 구성과 논리적 구성 간의 사상을 규정함.
DML(Data Manipulation Language: 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어[검색, 삽입, 삭제, 수정])의 요구 조건
: 데이터 조작이 쉽고 간편해야하며, 데이터 조작 기능이 정확하고 완전해야함. 또한 사용자의 요청을 시스템 내부에서 효율적으로 처리가 가능해야함.
데이터베이스 시스템 아키텍처(Architecture: 전체적인 구조 또는 골조)
- 중앙집중 방식
: 데이터의 전반적인 관리와 처리를 담당하는 DBMS 서버를 기반으로 터미널을 매개로 사용자가 이용하는 방식
단일 서버가 다수의 터미널을 대신하여 데이터를 처리하기에 중앙 서버의 과부하로 전체적인 성능이 저하되지만 구성이 간단해서 빠르고 저렴한 비용으로 DBMS 시스템을 구축할 수 있다는 장점이 있음.
- 클라이언트-서버(분산 처리)방식
: PC에 대중화되기 시작하며 발전한 방식으로 DBMS 서버와 사용자의 PC가 Networks로 연결되어 이용하는 방식으로 기본적으로 2계층 구조가 있음. 데이터 처리과정이 복잡해지면 2계층 구조로 충분하지 않기에 중간에 서버를 추가하여 보다 변화에 유연한 3계층 구조로 구성할 수 있으며, 유연하게 변화에 대응할 수 있다는 장점이 있으나 구성이 까다롭고 비용이 비싸다는 단점이 있음.
클라이언트의 성능 향상으로 자체적인 처리 능력을 보유하고 있고, 애플리케이션 프로그램의 부하를 분산할 수 있음. 또한 소프트웨어의 유지보수 비용 절감과 이식성을 증가시킬 수 있다는 장점을 지님. 단, 구성이 어렵고 비용이 비쌈.
'방송통신대학교 > 3학년 1학기' 카테고리의 다른 글
운영체제] 2강. 프로세스와 쓰레드 (0) | 2025.03.13 |
---|---|
[운영체제] 1강. 운영체제 소개 (0) | 2025.03.13 |
[데이터베이스 시스템] 4강. SQL (1) (0) | 2025.03.12 |
[데이터베이스 시스템] 3강. 관계형 모델 (0) | 2025.03.12 |
[데이터베이스 시스템] 2강. 데이터베이스 모델링 (0) | 2025.03.11 |
댓글