방송대 데이터베이스시스템 - 1강. 데이터베이스의 이해
1. 데이터베이스의 역할
사회 트렌드의 변화
• Legacy Systems (기존 시스템)
- 기업이나 기관에서 오랜 기간 동안 사용해온 기존의 시스템이나 소프트웨어
- 보통 오래되어 업그레이드나 현대화에 제한을 가지고 있음.
- 최신 기술과 요구에 대응하기 어려워, 기업들은 이러한 레거시 시스템을 교체하거나 혁신하는 방향으로 변화하려고 함.
• Smart Devices (스마트 기기)
- 스마트폰, 스마트워치, 스마트홈 장비 등과 같이 인터넷에 연결되고 다양한 기능을 수행할 수 있는 지능형 기기들
- 휴대성과 편리성을 제공하며, 우리의 일상생활을 혁신하고 향상시킴.
• Social Media (소셜 미디어)
- 인터넷을 통해 사용자들이 콘텐츠를 공유하고 의사소통하는 플랫폼 (페이스북, 인스타그램, 트위터 등)
- 소셜 미디어는 사회적인 상호작용과 정보 공유를 촉진하며, 개인과 기업 모두에게 다양한 기회를 제공함.
• IoT Sensors (사물 인터넷 센서)
- 인터넷에 연결된 센서를 통해 실시간 데이터를 수집하고, 분석하며, 조작하는 기술
- 우리 주변 환경에서 다양한 데이터를 수집하여 스마트 시티, 스마트 홈, 산업 자동화 등 다양한 분야에서 활용되어 생활의 편리성과 효율성을 증대시키는 데 기여함.
데이터 단위
bit | 비트 | |
byte | 바이트 | 1 byte = 8 bit |
kilobyte (KB) | 킬로바이트 | 1 kilobyte = 1024 bytes |
megabyte (MB) | 메가바이트 | 1 megabyte = 1024 kilobytes |
gigabyte (GB) | 기가바이트 | 1 gigabyte = 1024 megabytes |
terabyte (TB) | 테라바이트 | 1 terabyte = 1024 gigabytes |
petabyte (PB) | 페타바이트 | 1 petabyte = 1024 terabytes 구글G메일 전세계 사용자들이 하루에 사용하는양 4~6PB |
exabyte (EB) | 엑사바이트 | 1 exabyte = 1024 petabytes |
zettabyte (ZB) | 제타바이트 | 1 zettabyte = 1024 exabytes |
yottabyte (YB) | 요타바이트 | 1 yottabyte = 1024 zettabytes 현재 지구에서 저장할 수 있는 공간의 한계를 넘어선 단위 |
빅데이터 처리
1 | IOT : data collection Through IoT | IoT를 통해 데이터를 수집 |
2 | Big Data: Cature,stortage, analysis of data | 빅데이터 처리를 통해 데이터의 수집, 저장, 분석, 시각화 등 |
3 | AI : Data-based learning | AI가 데이터를 기반으로 학습하고 유용한 정보를 추출 |
데이터 관리의 필요
• 데이터 관리의 필요성
- 데이터의 양적 증가로, 데이터 관리에서 요구되는 시간과 비용이 증가하여 별도의 관리장치가 필요하게 됨.
• 데이터 관리 장치
- 데이터 → (저장) → [데이터 관리 장치] → (검색) → 필요 데이터
- 대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조하는 장치
• 데이터베이스
- 많은 수의 데이터를 저장해 두고 필요 시 원하는 데이터를 빠른 시간에 검색하여 사용할 수 있도록 지원하는 장치
데이터관리의 역사
1946 | 1956 | 1960초 | 1970년대 | 1980년대 | 1990년대 | 2000중반 | 2000말 | 2015년~ |
컴퓨터 | 저장장치 도입 |
파일 처리 시스템 |
IBM사 SQL |
데이터 웨어하우스 |
웹의 등장 | 클라우드 컴퓨팅 |
빅데이터 분석 |
IoT와 AI의 등장 |
파일 처리 시스템(file processing system)
• 데이터베이스가 개발되기 전에 데이터 관리에 사용
• 업무별 애플리케이션이 개별 데이터파일에 저장·관리하는 시스템
ex. 수강 업무 ←→ 수강 파일, 성적 업무 ←→ 성적 파일, 학적 업무 ←→ 학적 파일
• 발생 가능한 문제
- 데이터 종속의 문제 : 저장된 데이터가 특정 H/W에서 또는 사용자 및 S/W만 사용될 수 있도록 제한되는 문제
- 데이터 중복의 문제 : 하나의 사항에 대한 데이터가 여러 파일에 중복되어 저장되는 문제
- 무결성 훼손의 문제 : 데이터의 정확성이 보장되지 않고, 데이터의 값과 값에 대한 제약조건을 만족하지 않는 문제
- 동시 접근 이상 : 동일 데이터에 다수 사용자의 접근 허용 시 일관성이 훼손되는 문제
1) 데이터 종속의 문제
저장된 데이터가 특정 H/W에서 또는 사용자 및 S/W만 사용될 수 있도록 제한되는 문제
데이터의 독립성(data independency) : 논리적 데이터 독립성, 물리적 데이터 독립성
- 논리적 데이터 독립성 : 데이터의 논리적 구조가 변하더라도 그에 따른 프로그램의 구조가 변경되지 않는 것
- 물리적 데이터 독립성 : 물리적인 시스템 구조가 변하더라도 프로그램은 그대로 유지되는 것
2) 데이터 중복의 문제
하나의 사항에 대한 데이터가 여러 파일에 중복되어 저장되는 문제
동일한 사항에 대한 중복 데이터는 일관성, 보안성, 경제성 측면에서 문제 발생
- 일관성 : 한 사실에 대해 한 개의 데이터 값을 유지
- 보안성 : 같은 데이터에 같은 수준의 보안 유지
- 경제성 : 데이터에 대해 최소한의 저장 공간만을 점유
3) 무결성 훼손의 문제
• 실세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약조건)를 포함.
- 현상에 대한 값의 예 : '홍길동'의 수강과목
- 가능 범위의 예 : 1학기 최대 수강과목 18학점
• 데이터 무결성(data integrity)
- 데이터의 정확성 보장
- 데이터의 값과 값에 대한 제약조건을 동시에 만족
• 파일 시스템은 새로운 조건을 추가하거나 조건이 변경될 때마다 관련 프로그램을 일일히 변경해야함.
→ 데이터 무결성을 보장하기 위한 기능을 제공하지 않음.
4) 동시 접근의 문제(동시 접근 이상)
• 동일 데이터에 다수 사용자의 접근 허용 시 일관성이 훼손
2. 데이터베이스의 특징
데이터베이스 사용의 의미
• 애플리케이션 사용자가 직접 데이터를 저장하고 관리하는 것 (X)
→ 모든 데이터를 데이터베이스에 위임하여 실질적으로 데이터베이스에만 접근하는 방식 (O)
• 데이터 사용과 데이터 관리를 분리하여 데이터베이스에 모든 것을 일임함으로써 데이터의 양이 증가하더라도 효율적인 데이터 관리를 실현하는 것이 주요한 의미
데이터베이스의 특징
• 데이터베이스 시스템의 자기 기술성(self-describing)
- 데이터와 데이터의 정의 및 설명(메타데이터)을 포함
- 메타데이터 : 데이터베이스에 속하는 각 파일의 구조, 각 데이터 항목의 타입과 저장 형식, 데이터의 다양한 제약조건 등
• 프로그램과 데이터의 독립성 및 추상화
- 프로그램-데이터 독립성(program-data independency) : 프로그램은 DBMS에 필요 데이터를 데이터의 의미만으로 요청할 수 있도록 데이터의 사용과 데이터 관리가 분리되는 특성
- 데이터 추상화(data abstraction) : 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성을 향상
• 다중 뷰(view) 제공
- 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공
• 데이터 공유와 다수 사용자 트랜잭션 처리
- 단일 논리적인 작업을 수행하는 일련의 데이터베이스 명령 집합인 트랜잭션(transaction)과 동시성 제어(concurrency control)
- 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보장하면서 동시에 작업을 수행
※ 시스템 카탈로그(system catalog) 또는 데이터 사전
- 특정 데이터베이스에 저장된 파일 구조를 파악하기 위한 물리적 정보(타입, 포맷 등)와 논리적 정보(의미, 설명 등)를 관리함.
- 특수한 형태의 테이블로 DBMS에 의해서만 사용 및 수정됨.
데이터베이스 시스템의 구성
• 사용자 또는 프로그래머는 애플리케이션을 통해 업무 처리를 위해 DBMS에 접근함.
• DBMS에는 여러 소프트웨어 모듈이 내부적으로 동작하여 데이터베이스와 데이터베이스의 정의(메타데이터)가 저장장치에 저장됨.
• 메타데이터를 저장하는 이유는 저장된 데이터의 의미를 파악할 수 있어야 사용자가 요청 시 데이터를 조회 또는 검색하여 제공하기 위함임.
값, 데이터, 메타데이터
값 (Value) | 정보의 가장 작은 단위로서 의미를 가지는, 데이터의 단일 요소 ex. 특정 의미가 부여되지 않은 숫자 12 그 자체 (12월, 12일, 12시, 12도?) |
메타데이터 (Metadata) | 데이터를 설명하고 관리하기 위한 데이터로서, 데이터의 특성, 속성, 구조 등을 기술하는 정보 ex. 값에다가 의미를 부여하는 부연 설명(오늘, 낮 최고기온) |
데이터 (Data) | 정보를 표현하거나 처리하기 위해 수집된 사실이나 숫자, 기호 등의 모음 ex. 하나의 값이 두 개 이상의 설명 태그가 붙여서 만들어진 것 |
데이터베이스의 3단계 구조
![]() |
![]() |
DBSM은 데이터 독립성과 데이터 추상화 확보를 위해 3단계 구조로 구성됨.
내부 단계 (internal level) |
가장 낮은 추상화 단계로 내부 스키마에 의해 기술됨. 원시 수준(raw level)의 데이터 구조, 저장된 레코드 유형 정의, 인덱스(index)의 유무, 저장된 컬럼의 표현 방식, 저장된 레코드의 물리적 순서 등 구체적인 사항(물리적인 상세사항)에 대해 정의함. |
학생, 과목, 또는 수강 레코드 등은 연속적으로 저장된 블록(block)으로 표현됨. DBSM는 하위 단계의 저장구조에 대한 구체적인 사항을 데이터베이스 프로그래머로부터 숨기는 역할을 함. |
|
개념 단계 (conceptual level) |
데이터베이스의 전체 구조를 추상화하는 단계로 개념 스키마를 통해 기술됨. 물리적인 상세사항 등은 배제되며 데이터베이스에 무엇이 저장되어 있는지와 데이터 간의 관계만 기술함. 여러 간단한 데이터의 구조로 전체 데이터베이스를 기술하게 됨. 개념 스키마에서의 정의는 보안성 검사, 무결성 검사와 같은 부가적인 특징을 포함하기도 함. |
프로그램 명령어와 같이 각 레코드의 타입과 레코드 간의 관계 정의로 표현됨. 프로그래머는 이 단계의 추상화에서 프로그래밍 언어를 사용하여 작업함. |
|
외부 단계 (external level) |
추상화의 최상위 단계로, 외부스키마(뷰)에 의해 기술됨. 데이터베이스에 대한 여러 뷰가 정의되며, 사용자는 뷰를 통해서만 데이터를 확인할 수 있음. 뷰는 사용자가 관심을 갖는 데이터의 일부분만 기술하고, 다른 부분은 은폐함. 뷰에는 개념 단계의 구체성이 감추어져 있어서 뷰를 통한 보안 매커니즘 제공이 가능함. |
ex. 입학처에서 근무하는 사용자에게 제공되는 뷰는 DB에 학생과 관련된 정보만 접근 가능, 강사나 교직원의 연봉에 대한 정보에 접근 불가능함. |
세 가지 스키마는 사상(mapping)을 통해서 연결됨.
외부-개념 사상 (external conceptual mapping) |
외부 스키마(뷰)와 개념 스키마 간의 대응 관계를 정의함. 개념 스키마에 변화가 생기더라도 그 변화를 외부-개념 사상에만 반영시켜 주면 외부 스키마에 아무런 영향도 미치지 않음. → 논리적 데이터 독립성 확보 |
개념-내부 사상 (conceptual internal mapping) |
개념 단계의 데이터 스키마가 디스크 내의 내부 필드와 어떻게 대응하는가를 정의함. 물리적인 변화(다른 디스크로의 데이터 이동이나 파일 구조 변경 등)가 발생해도 그 변화를 개념-내부 사상에만 반영시켜 주면 개념 스키마에는 아무런 영향도 미치지 않음. → 물리적 데이터 독립성 확보 |
데이터베이스 관련 용어
• 데이터(data) : 어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 값에 대한 설명
• 데이터베이스(database) : 특정 기관의 애플리케이션 시스템에서 사용되는 데이터 집합
• 데이터베이스 관리 시스템(DBMS) : 데이터베이스에 저장된 데이터의 구성, 저장, 관리, 사용을 위한 소프트웨어 패키지
• 데이터베이스 시스템(database system) : 정보를 데이터베이스에 저장 및 관리하여 사용자에게 요구된 형태의 정보로 제공하는 컴퓨터 기반 시스템
3. 데이터베이스의 구성요소
데이터베이스 언어
- DBMS는 사용자가 데이터베이스를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공
- 역할에 따른 종류로 구분 : DDL(데이터 정의 언어), DML(데이터 조작 언어)
- 현대 데이터베이스 언어는 자연어와 유사한 형태의 SQL로 표준화
• DDL(Data Definition Language, 데이터 정의 언어)
- 스키마를 정의하기 위함.
- 데이터베이스 객체를 생성, 수정, 삭제하기 위한 언어- CREATE, ALTER, DROP, TRUNCATE 등 - DDL 명령 결과는 시스템 카탈로그에 저장됨.
·DDL의 요구 기능
- 데이터 모델에 따라 애플리케이션 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 규정
- 데이터가 기억장치에 저장되도록 데이터의 물리적 구성을 규정
- 물리적 구성을 논리적 구성으로 변환이 가능하도록 데이터의 물리적 구성과 논리적 구성 간의 사상을 규정
- 데이터를 적재(load)하는 방식, 무결성 유지 방식, 검증 및 권한 등의 기술된 제약사항 등에 대한 규정
• DML(Data Manipulation Language, 데이터 조작 언어)
- 데이터의 갱신과 질의를 표현
- 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어(검색, 삽입, 삭제, 수정)
- SELECT, INSERT, UPDATE, DELETE 등·DML의 요구 조건
- 데이터 조작이 쉽고 간편
- 데이터 조작 기능이 정확하고 완전
- 사용자의 요청을 시스템 내부에서 효율적으로 처리 가능
절차적 DML | 사용자가 필요한 데이터를 어떻게 구할 것인지 구체적으로 명시하는 유형 데이터에 대한 조작을 위해 반복문이나 변수 선언 등 일반적 프로그래밍 언어의 기능을 포함 |
비절차적(선언적) DML | 사용자가 요구하는 데이터가 무엇인지만 기술하는 유형 처리 절차를 명시하지 않아 비효율적으로 처리될 수 있는 단점이 있음. |
데이터베이스 시스템 아키텍처
• 중앙집중식 방식과 분산 시스템 방식
중앙집중식 방식 | 분산 시스템 방식 |
단일 서버가 다수의 클라이언트 장치를 대신하여 작동 사용자가 자체적 데이터 처리 능력이 없는 터미널을 사용함. 중앙 컴퓨터의 과부하로 전체적인 성능 저하 |
클라이언트 장치의 성능 향상으로 자체적인 처리 능력 보유 클라이언트-서버 데이터베이스 시스템 ·클라이언트 : 단일 사용자, 서비스 요청 ·서버 : 다중 사용자 컴퓨터, 계산, 연결, 데이터베이스 서비스 등 애플리케이션 프로그램의 부하를 분산 소프트웨어의 유지보수 비용을 절감 및 이식성 증가 |
![]() |
![]() |
• 클라이언트-서버 구조(2계층/3계층) [수업 X]
- DBMS 서버 = 질의 서버(query server), 트랜잭션 서버(transaction server), SQL 서버
2계층 클라이언트-서버 구조 (2-tier architecture) |
3계층 클라이언트-서버 구조 (3-tier architecture) |
|
구성 요소 | 클라이언트, 서버 | 클라이언트, 애플리케이션 서버, 데이터베이스 서버 |
역할 분담 | 클라이언트의 프로그램이 서버의 DBMS와 연결하여 통신하는 방식으로 동작함 | 클라이언트는 사용자 인터페이스를 담당 애플리케이션 서버가 DB 서버에 저장된 데이터 접근에 사용되는 비즈니스 규칙을 저장, 데이터 처리를 담당함 |
데이터 흐름 | 클라이언트에서 서버로 단방향 흐름 | 클라이언트와 애플리케이션 서버 사이 양방향 흐름 |
보안 | 중앙 집중식 보안 모델 | 다중 계층 보안 모델 |
장점 | 간단한 구조, 구현과 유지 보수가 비교적 쉬움 | 확장성과 유연성이 높으며 보안이 강화될 수 있음 |
단점 | 서버 부하가 증가할 경우 성능 저하 발생 가능 | 구조가 복잡하고 구현 및 유지보수가 어려울 수 있음 |
데이터베이스 사용자 및 관리자 [수업 X]
• 데이터베이스 사용자 : 일반 사용자, 애플리케이션 프로그래머, 전문 사용자, 특수 사용자
• 데이터베이스 관리자 역할(DBA: Database Administrator) :
- DBMS 설계, 관리, 운용 및 통제, 성능 측정
- 사용자와의 소통
- 장애 발생 시 복구 대책 마련