[TOPCIT][02] I. 데이터와 데이터베이스의 이해 (에센스 정리 요약)
학습 목표
1. 정보화시대의 데이터, 정보, 지식에 대한 개념과 특징을 설명할 수 있다.
2. 데이터처리 유형의 개념과 특징을 설명할 수 있다.
3. 파일처리 시스템의 개념과 특징을 설명할 수 있다.
4. 데이터베이스의 개념과 특징을 설명할 수 있다.
5. 데이터베이스 시스템의 개념과 구성요소를 설명할 수 있다.
6. ANSI-SPARC의 3-level Database Architecture를 설명할 수 있다.
7. 데이터 독립성에 대하여 설명할 수 있다.
8. 데이터베이스 관리자(DBA)의 역할과 데이터아키텍트(DA)의 개념을 설명할 수 있다.
9. DBMS(Database Management System)의 개념과 기능을 설명할 수 있다.
핵심 키워드
- 데이터, 정보, 지식
- 데이터베이스
- 일괄처리
- 온라인처리
- 분산처리
- DBMS
- 데이터 독립성
- ANSI-SPARC
- 3-level Database Architecture
01 데이터의 이해
데이터, 정보, 지식에 대한 개념과 특징
1. 데이터
- 현실세계에서 발견, 조사, 수집, 창작을 통한 기초자료인 수집 자원의 형태 그대로의 것
- 인간의 가치와 판단이 들어가 있지 않은 상태
- 자연 상태 그대로를 뜻하는 사실과 관련있음
2. 정보
- 다양한 데이터를 목적에 맞게 일정한 규칙에 따라 정리하고 분류하여 체계화한 형태
- 데이터를 일정한 양식으로 처리, 가공하면 특정 목적을 달성하는데 필요한 정보가 생산됨
3. 지식
- 수많은 구체화된 정보로부터 일반화된 사항
- 정보화된 데이터의 의미와 관계를 해석하고 연구하는 과정에서 생성됨
- 지식은 정보화된 데이터의 이미 부여와 관계의 해석, 인간의 가치와 판단에 따라 매우 다양할 수 있음
데이터 처리 유형의 개념과 특징
1. 일괄처리시스템(Batch Processing System)
- 데이터를 일정기간 또는 일정량을 모아서 한꺼번에 처리하는 방식
- 시스템 중심 처리방법(낮은 처리비용과 높은 시스템 성능 요구)
- 사전준비작업 필요(원시데이터 수집, 분류, 정리-> 파일에 수록)
- 대기시간 필요(즉시 처리 불가능)
- 파일이 일괄적으로 처리될 때까지 변동 내용의 수정 절차가 복잡하고 어려움
- ex) 급여처리 시스템, 성적 처리 시스템 등
2. 온라인처리시스템(On-line Processing System)
- 데이터가 컴퓨터로 전송되면 컴퓨터는 즉시 데이터를 처리하는 방식(실시간 처리 시스템)
- 사용자 중심 처리방법(높은 처리비용과 낮은 시스템 성능 요구)
- 사전준비작업 불필요
- 데이터의 현재성 유지
- 유지, 보수, 회복의 어려움
- ex) 항공, 철도 등의 좌석 예약 처리 시스템, 은행 예금 처리 시스템 등
3. 분산처리시스템
- 지리적으로 분산되어 있는 처리기와 데이터베이스를 네트워크로 연결하여 처리하는 방식
- 클라이언트/서버 시스템 형태로 운영
- 연산속도 및 신뢰성 향상
- 자원의 효율적 이용 증대
- 소프트웨어 개발 난이도, 보안 수준, 설계 복잡성 등이 상대적으로 높음
02 데이터베이스의 이해
파일처리시스템의 개념
- 물리적인 디스크에서 사용자가 기록한 데이터를 배치하고 관리하기 위한 체계
- 일반적으로 디렉토리 구조의 계층적 파일 시스템이 사용됨
- 각 개별 응용프로그램이 자신이 처리할 개별적인 파일을 접근하여 검색, 입력, 삭제 및 수정을 하는 것
파일처리시스템의 특징
- 응용 프로그램은 응용 프로그래머가 생각하는 논리적 파일 구조를 직접 물리적 파일 구조로 구현해야 함
- 응용 프로그래머는 물리적 데이터구조에 대해 잘 알고 있어야만 데이터에 대한 접근 방법을 응용 프로그램 속에 구현시킬 수 있음
파일처리시스템의 문제점
- 데이터 독립성 보장 미흡 : 프로그램 의존적
- 데이터 일관성 보장 문제 : 파일의 시간 의존성
- 데이터 무결성 보장 문제 : 의미적으로 같은 값은 동일하게 유지되어야 함
- 공유성, 사용 편의성 저조 : 낮은 경제성, 보안관리 저조
데이터베이스의 개념
- 통합되고, 운영되고, 저장되고, 공유되는 특징이 있음
- 중복된 데이터를 한 군데 집약시켜서 최대한 중복을 배제한 상태에서 관리함
데이터베이스의 특징
구분 | 내용 |
실시간 접근성 (Real-time Accessibilities) | 수시적이고 비정형적인 질의(Query)에 대해 실시간 응답 |
계속적인 변화 (Continuous Evolution) | 갱신, 삽입, 삭제: 동적 특성 (이러한 변화 속에서 항상 현재의 상태를 정확히 유지) |
동시 공용 (Concurrent Sharing) | 동일 데이터를 여러 사람이 다른 방법으로 동시에 공용할 수 있도록 지원 |
내용에 의한 참조 (Contents Reference) | 위치나 주소가 아닌, 사용자가 요구하는 데이터의 내용, 즉 값(Value)에 따라 참조 |
03 데이터베이스 시스템의 이해
데이터베이스 시스템(DBS)의 개념
- 데이터를 Database에 저장하고 관리해서 필요한 정보를 생성하는 컴퓨터 중심의 시스템
DBS 구성요소
구분 | 내용 |
데이터베이스 | 한 조직의 여러 응용시스템이 공유하기 위해 최소의 중복으로 통합, 저장된 운영 데이터의 집합 |
데이터베이스 언어 (Database Language) | 사람과 시스템의 인터페이스를 제공하는 도구 |
사용자 | 데이터베이스 관리자, 데이터베이스 응용 프로그래머, 데이터베이스 사용자 |
데이터베이스 관리시스템 (DBMS) | 데이터베이스를 구축하고 이용하는 기능을 제공하는 시스템 SW |
데이터독립성
- 끊임없이 요구되는 사용자 요구사항에 대해 화면과 DB간에 서로 독립성을 유지하기 위한 목적으로 데이터독립성 개념이 출현
ANSI-SPARC의 3-level Database Architecture
항목 | 내용 | 비고 |
외부스키마 (External Schema) | - View 단계 여러 개의 사용자 관점으로 구성 - DB의 개인 사용자나 응용프로그래머가 접근하는 DB 정의 |
- 사용자 관점 - 접근하는 특성에 따른 스키마 구성 |
개념스키마 (Conceptual Schema) | - 개념단계 하나의 개념적 스키마로 구성 모든 사용자 관점을 통합한 조직 전체의 DB를 기술하는 것 - 모든 응용시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 DB를 기술한 것으로 DB에 저장되는 Data와 그들 간의 관계를 표현하는 스키마 |
- 통합 관점 |
내부스키마 (Internal Schema) | - 내부단계, 내부 스키마로 구성, DB가 물리적으로 저장된 형식 - 물리적 장치에서 Data가 실제적으로 저장되는 방법을 표현하는 스키마 |
- 물리적 저장구조 |
두 영역의 데이터 독립성
종류 | 내용 | 특징 |
논리적 독립성 | - 개념 스키마가 변경되어도 외부 스키마에는 영향을 미치지 않도록 지원하는 것 - 논리적 구조가 변경되어도 응용 프로그램에 영향 없음 |
- 사용자 특성에 맞는 변경가능 - 통합 구조 변경 가능 |
물리적 독립성 | - 내부스키마가 변경되어도 외부/개념 스키마는 영향을 받지 않도록 지원하는 것 - 저장장치의 구조변경은 응용 프로그램과 개념스키마에 영향 없음 |
- 물리적 구조 영향 없이 개념구조 변경가능 - 개념 구조 영향 없이 물리적인 구조 변경 가능 |
DBMS(Database Management System)의 개념
- 파일시스템의 문제점인 종속성과 중복성의 문제를 해결하고자 고안된 시스템
- 응용 프로그램과 데이터 사이의 중재자로서 모든 응용 프로그램들이 데이터베이스를 공용할 수 있게 관리해 주는 소프트웨어 시스템
DBMS의 기능
- 다 사용자 간의 데이터 공유
- 권한 없는 사용자의 데이터 접근 통제
- 다양한 사용자에게 다양한 형태의 인터페이스 제공
- 데이터 사이에 존재하는 복잡한 관련성을 표현
- 데이터베이스의 무결성을 보장
DBMS의 개념도와 주요기능
DBMS의 구성요소
구성요소 | 설명 |
DDL 컴파일러 | - DDL로 명세된 스키마를 내부 형태 즉, 메타데이터로 처리하여 시스템 카탈로그에 저장 - 모든 DBMS 모듈들은 필요 시에 이 카탈로그 정보를 접근해서 이용함 |
질의어 처리기 | 일반 사용자가 제출한 고급 질의문을 처리함. 즉, 이것은 검사하고 파싱해서 컴파일함. 그리고 DB 접근코드를 생성한 뒤, 실행을 위해 런타임 DB 처리기에 보내짐 |
DML 예비 컴파일러 | 응용 프로그램에 삽입된 DML 명령문을 추출하고, 추출된 DML명령문은 DB접근을 위한 목적코드로 컴파일 되도록 DML 컴파일러에 보내짐 |
DML 컴파일러 | 넘겨받은 DML 명령어를 파싱하고 컴파일하여 목적 코드를 생성함 |
런타임 데이터베이스 처리기 | 실행시간에 DB 접근을 관리함. 즉, 검색이나 갱신과 같은 DB 연산을 저장하고 데이터 관리자를 통해 DB에 실행시킴 |
트랜잭션 관리자 | - DB에 접근하는 과정에서 무결성 제약조건의 만족여부, 사용자의 권한 검사 등 체크 - 트랜잭션의 병행제어나 장애발생 시의 회복작업 등을 수행함 |
저장 데이터관리자 | 디스크에 저장되어 있는 사용자 DB나 카탈로그 접근을 책임짐 |