학습 개요
- 실세계의 방대한 데이터를 효과적으로 처리하기 위해서는 데이터베이스 응용이 필수적임
- 최근 데이터 생성과 관련된 기술의 등장으로 데이터를 관리하고 효과적으로 사용하기 위한 데이터베이스의 역할이 더욱 중요해지고 있음
- 따라서 데이터베이스의 기본적인 특징 및 구조에 대한 이해가 반드시 선행되어야 함
- 데이터베이스란 무엇이며, 기존 파일 처리 시스템과는 어떤 차이점이 있는지 알아보고, 데이터 모델, 데이터베이스 3단계 구조 등 데이터베이스의 특징과 장단점을 학습함
- 데이터베이스 사용자 유형에 따른 역할과 데이터베이스의 구조 등 데이터베이스와 관련한 전반적인 개념을 학습함
학습 목표
- 파일 처리 시스템과 데이터베이스 시스템의 차이점을 설명할 수 있음
- 데이터베이스의 특징을 이해할 수 있음
- 데이터베이스 시스템의 구성 요소를 나열할 수 있음
주요 용어
- 파일 처리 시스템
- 파일을 사용하여 업무에 해당하는 데이터를 관리하는 방식
- 데이터베이스 관리 시스템(DBMS)
- 정보를 데이터베이스에 저장·관리하여 사용자에게 요구된 형태의 정보로 제공하는 컴퓨터 기반 시스템
- DBMS 3단계 구조
- 데이터 추상화와 데이터 독립성을 확보하기 위한 개념적-논리적-물리적 3단계 구조
- 트랜잭션
- 하나의 논리적인 작업을 수행하는 일련의 데이터베이스 명령의 집합
강의록
데이터베이스의 역할
사회 트렌드의 변화
쌓인 데이터들과 다양한 서비스를 연결 시킨 데이터베이스 시스템이 있어야 서비스 가능
데이터 생성
시간이 갈 수록 데이터가 빠르게 쌓이고 있음
데이터 단위
- bit
- 컴퓨터가 데이터를 처리하는 가장 작은 단위
- 0과 1
- byte
- bit가 8개 모인 데이터 단위
- 사람이 쓰기 위한 데이터 최소한의 단위
- ex) 영문자 한단어
- KB
- 1024 byte
- ex) 신문 기사 하나 분량
- MB
- 1024 KB
- ex) 신문, 잡지 하나
- GB
- 1024 MB
- ex) 저화질 영화 한편
- TB
- 1024 GB
- PB
- 1024 TB
- ex) 신문 기사 하나 분량
- EB
- 1024 PB
- ex) 하나의 it 공용 기업이 전체적으로 처리하는 데이터 단위
- ZB
- 1024 EB
데이터 처리
- 데이터 수집, 저장, 분석 단계
- 판단하기 위해 필요한 정보 만들어낼 수 있음
데이터 관리
대량의 데이터를 저장 및 관리하고 필요한 데이터를 신속히 검색할 수 있도록 보조하는 장치에 대한 요구 증가
- 데이터베이스
- 발생된 데이터 저장하고 필요한 데이터 빠르게 검색해서 제공해주는 장치
- 한 조직의 여러 응용 시스템을 다수의 사용자가 공용으로 사용하기 위해 통합, 저장, 관리하는 장치
- 데이터베이스
컴퓨터는 사람과 동일한 방식으로 데이터를 검색, 처리함
- 각각의 데이터가 조건에 맞는 것인지 일일이 체크 후 사용자에게 제공하기 때문에 많은 시간이 소요됨
데이터 관리의 역사
전통적 데이터 관리 방식
파일 처리 시스템(file processing system)
- 각각의 애플리케이션이 별도의 파일들을 만들어 저장, 관리함
파일 처리 시스템
- 데이터베이스가 개발되기 전 데이터 관리에 사용
- 업무별 애플리케이션에서 사용하는 데이터를 개별 데이터 파일에 저장, 관리하는 시스템
- 발생 가능한 문제
- 데이터 종속의 문제
- 데이터 중복의 문제
- 무결성 훼손의 문제
- 동시 접근의 문제
데이터 종속의 문제
저장된 데이터가 특정 H/W에서 또는 특정 사용자 및 S/W에서만 사용될 수 있도록 제한되는 문제
- 물리적 데이터 종속
- 약간의 물리적 변화에도 동작하지 않을 수 있음
- 논리적 데이터 종속
- 데이터 기록 순서, 방법이나 형태, 인코딩 변경 될 경우에도 동작하지 않을 수 있음
- 물리적 데이터 종속
데이터 중복의 문제
동일한 사항에 대한 중복된 데이터는 일관성, 보안성, 경제성 측면에서 문제 발생의 원인
- 일관성
- 한 사살에 대해 한개의 데이터 값을 유지
- 보안성
- 같은 데이터에 같은 수준의 보안 유지
- 경제성
- 데이터에 대해 최소한의 저장 공간만을 점유
- 일관성
무결성 훼손의 문제
- 실 세계의 데이터는 데이터가 가질 수 있는 가능 범위(제약 조건)를 포함
- ex) 데이터 : 홍길동의 수강 학점
- ex) 가능 범위 : 한 학기 최대 수강 학점 18학점
- 데이터 무결성의 정의
- 데이터 정확성을 보장
- 데이터의 값과 값에 대한 제약 조건을 동시에 만족
- 파일 처리 시스템은 데이터 무결성을 보장하기 위한 기능을 제공하지 않음
- 데이터의 신뢰성이 저하됨
동시 접근의 문제
동일 데이터에 다수 사용자의 접근 허용 시 일관성이 훼손
데이터베이스의 특징
데이터베이스 사용 의미
- 애플리케이션이 파일에 직접적으로 접근하지 못하도록 함
- 애플리케이션의 요청을 받아 관리하며 파일에 각각 접근하여 애플리케이션에 전달
- 데이터 사용, 관리하는 영역 분리
데이터베이스의 특징
- 데이터베이스 시스템의 자기 기술성
- 데이터와 데이터의 정의 및 설명(메타 데이터)를 포함
- 자기가 저장하고 있는 데이터가 무엇인지 명확하게 알고 있음
- 프로그램 데이터의 격리 및 추상화
- 사용자에게 데이터에 대한 개념적인 표현을 제공하여 접근성을 향상
- 다중 뷰 제공
- 각 사용자가 관심을 갖는 데이터베이스의 일부만을 표현할 수 있는 기능 제공
- 데이터 공유와 다수 사용자 트랜잭션 처리
- 다수의 데이터 조작 요청을 동시성 제어 기능을 통해 데이터의 일관성을 보장하면서 동시에 작업 수행
데이터베이스 시스템의 구성
- 시스템 카탈로그
- 데이터에 관련된 여러가지 사항들을 저장하고 있는 메타 데이터의 집합
- 저장한 데이터의 의미 등을 관리해주는 집합
- DBMS가 자동적으로 관리해주는 정보
값, 데이터 그리고 메타 데이터
- 메타 데이터
- 값에 의미를 부여하는 또 다른 개념이 2개 이상 붙을 경우 그 값을 메타 데이터라 함
- 값, 그리고 메타 데이터가 함께 관리되어야 데이터의 역할을 수행할 수 있음
DBMS의 3단계 구조
- 어떠한 데이터를 저장할 때 DBMS가 3단계의 구조로 나눠서 저장함
서로 다른 정보의 수준을 다루는 세 개의 정보 집합
- 외부 스키마
- 사용자 별 접근 권한에 따라 뷰 제공
- 개념 스키마
- 데이터 베이스의 전체 구조와 각각의 관계
- 내부 스키마
- 물리적으로 어떻게 저장되어있는가?
- 외부 스키마
- 개념, 내부 사상 통해 물리적 데이터 종속 피할 수 있음
외부, 개념 사상 통해 논리적 데이터 종속 해결
- 외부 단계
- 사용자가 직접적으로 볼 수 있음
- 개념 단계
- 데이터의 구조 형식을 볼 수 있음
- 내부 단계
- 데이터가 물리적으로 어떻게 저장되어 있는지 다룸
- 외부 단계
다수 사용자 트랜잭션 처리
- 트랜잭션의 정의
하나의 논리적 작업을 처리하기 위한 일련의 데이터베이스 명령의 집합
데이터베이스 관련 용어
- 데이터(data)
- 어떠한 사실에 대한 정량적, 정성적 특징을 나타낼 수 있는 값과 값에 대한 설명
- 데이터베이스(datbase)
- 특정 기관의 애플리케이션 시스템에서 사용되는 데이터의 집합
- 특정 목적에 맞춰 관리되는, 집합화 된 데이터
- 주제 지향적인 데이터의 집합
- 데이터베이스 관리 시스템(DBMS)
- 데이터베이스에 저장된 데이터의 구성, 저장, 관리 사용을 위한 소프트웨어 패키지
- 데이터베이스 시스템(database system)
- 정보를 데이터베이스에 저장, 관리하여 사용자에게 요구된 형태의 정보로 제공하는 컴퓨터 기반 시스템
데이터베이스 시스템 구성 요소
데이터베이스 언어
- DBMS 는 사용자가 데이터를 쉽게 사용하고 다룰 수 있도록 언어 형태의 인터페이스를 제공
- 정확한 결과를 위해서는 부탁도 명확히 해야 함
- 역할에 따라 종류의 언어로 구분
- 데이터 정의 언어(DDL)
- 데이터 조작 언어(DML)
- 현대의 데이터베이스 언어는 자연어와 유사한 형태의 SQL로 표준화
데이터 정의 언어
- DDL(Data Definition Language)
- 데이터베이스 객체를 생성, 수정, 삭제하기 위한 언어
- DDL의 요구 기능
- 데이터 모델에 따라 애플리케이션 프로그램이 요구하는 데이터의 논리적 구성이나 특징을 규정
- 데이터가 저장장치에 저장되도록 데이터의 물리적 구성을 규정
- 물리적 구성을 논리적 구성으로 변환이 가능하도록 데이터의 물리적 구성과 논리적 구성 간의 사상을 규정
데이터 조작 언어
- DML(Data Manipulation Language)
- 구조화된 데이터에 사용자가 접근 및 조작할 수 있도록 지원하는 언어(검색, 삽입, 삭제, 수정)
- DML의 요구 조건
- 데이터 조작이 쉽고 간편
- 데이터 조작 기능이 정확하고 완전
- 사용자의 요청을 시스템 내부에서 효율적으로 처리 가능
데이터베이스 시스템 아키텍처
- 아키텍처 (architecture)
- 전체적인 구조, 골조
- 데이터를 관리하는 DBMS 서버와 DBMS 에 접근해 데이터를 사용하는 애플리케이션으로 구성
- 서버와 애플리케이션 구조, 관계를 정의
- 전체적인 구조, 골조
중앙 집중 방식
- 단일 서버가 다수의 터미널을 대신하여 데이터 처리
- 중앙 서버의 과부하로 전체적인 성능 저하
- dbms 서버가 데이터의 전반적인, 모든 관리와 처리 담당
- 구성 간편해 비용 저렴하게 데이터베이스 시스템 구축 가능
클라이언트-서버(분산 처리) 방식
- 클라이언트의 성능 향상으로 자체적인 처리 능력 보유
- 애플리케이션 프로그램의 부하를 분산
- 소프트웨어의 유지 보수 비용을 절감 및 이식성 증가
- 2 계층 구조
- 서버와 클라이언트가 논리적으로 분리되어 있는 상태에서 연결되어 데이터베이스 시스템을 구성하는 방식
- 3 계층 구조
- 작업에 변화가 있더라도 단순히 애플리케이션 서버를 변경함으로써 유연하게 변화에 대응 가능
- 데이터베이스 시스템 설계 복잡하고 중앙 집중 방식보다 구축 비용 증가
연습 문제
다음 중 파일 처리 시스템의 데이터 중복으로 발생할 수 있는 문제가 아닌 것은?
a. 통일성
- 파일 처리 시스템은 데이터 중복을 방지할 수 없으며, 이로 인에 데이터의 보안성, 경제성, 일관성 측면에서 문제가 발생함
데이터베이스 3단계 구조에서 논리적 데이터 독립성이 확보되는 과정은?
a. 외부-개념 사상
- DBMS는 데이터의 추상화를 위해 외부-개념-내부 3단계로 구조화되며, 외부-개념 사상 과정에서 논리적 데이터 독립성, 개념-내부 사상을 통해 물리적 데이터 독립성이 확보됨
구조화된 데이터에 사용자가 데이터를 삽입 · 수정 · 삭제하고 저장된 데이터를 검색할 수 있도록 지원하는 데이터베이스 언어는?
a. 데이터 조작 언어, DML(Data Manipulation Language)
- DBMS 인터페이스인 데이터베이스 언어는 데이터 조작 언어와 데이터 정의 언어로 구분되며, 이 중 데이터 조작 언어(DML)는 데이터 정의 언어로 구조화된 데이터에서 다양한 유형의 데이터 조작을 지원하는 명령어로 구성됨
정리 하기
- 기존 전산 시스템, 스마트 기기, 소셜 미디어, IoT 센서 등 사회 트렌드의 변화로 대량의 데이터가 저장 및 활용되고 있어 데이터 관리가 점차 중요해지고 있음
- 파일 처리 시스템은 프로그램이 직접 데이터에 접근하여 데이터를 저장 및 사용하는 데이터의 중복성, 데이터의 종속성, 데이터의 무결성 훼손, 그리고 동시 접근 이상의 문제점을 내포함
- 데이터베이스는 파일 처리 시스템과 달리 자기 기술성, 추상화, 다중 뷰, 동시성 제어 등의 기능을 통해 파일 처리 시스템의 문제점을 극복함
- 데이터베이스 시스템은 3단계 구조, 즉 외부 단계, 개념 단계 그리고 내부 단계로 구성됨
- 외부 단계는 사용자 뷰를 나타냄
- 개념 단계는 데이터베이스의 논리적인 전체 구조를 나타냄
- 내부 단계는 데이터가 기억 장소에 저장되기 위한 물리적 구조를 정의함
- 각 단계 간의 접속에서 특정 외부 스키마와 개념 스키마 간의 대응 관계를 정의한 외부-개념 사상과, 개념 스키마와 내부 스키마 간의 대응 관계를 정의한 개념-내부 사상에 의해 연관성을 갖음
- 데이터베이스 언어란 데이베이스 사용을 위한 언어 형태의 인터페이스로 데이터 정의 언어(DDL)와 데이터 조작 언어(DML)로 구성됨
- DBMS는 전체 시스템을 구성하는 방식에 따라 중앙집중식과 분산 시스템 방식으로 아키텍처를 구성할 수 있음
강의 체크 포인트
시스템 카탈로그에 대한 설명으로 틀린 것은?
a. 시스템 카탈로그에 대한 갱신은 데이터베이스의 무결성 유지를 위하여 사용자가 직접 갱신해야 한다.
- 시스템 카탈로그에 대한 설명
- 시스템 카탈로그는 DBMS가 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.
- 테이블
- 데이터베이스가 데이터를 저장하기 위한 가장 기본적인 집합체, 구조
- 테이블
- 시스템 카탈로그 내의 각 테이블은 DBMS에서 지원하는 개체들에 관한 정보를 포함한다.
- 일반 사용자도 시스템 카탈로그의 내용을 검색할 수 있다.
- 시스템 카탈로그는 DBMS가 생성하고 유지하는 데이터베이스 내의 특별한 테이블의 집합체이다.
- 시스템 카탈로그에 대한 설명
다음 설명에 해당하는 것은?
1
물리적 저장 장치의 입장에서 본 데이터 베이스 구조로서 실제로 데이터베이스에 저장될 레코드의 형식을 정의하고 저장 데이터 항목의 표현 방법, 내부 레코드의 물리적 순서 등을 나타낸다.
a. 내부 스키마