데이터와 데이터베이스
데이터의 정의
데이터베이스 (Database : DB)
: 유용한 데이터의 집합
데이터베이스 시스템 (Database System)
- 정보 처리를 위한 시스템
- 효과적으로 정보를 처리할 수 있도록 정보를 수집하고 분석할 수 있도록 도와주는 도구
데이터 (Data)
: 현실 세계에서 관찰이나 측정을 통해 수집한 단순한 사실(Fact) 또는 값(Value)
(ex) 스트링 (String), 이미지 (Image), 텍스트 (Text), 그래픽 (Graphic)
정보 (Information)
- 의사 결정에 도움을 줄 수 있는 유용한 형태
- 데이터를 가공(처리)해서 얻을 수 있는 결과를 의미 (처리 및 가공)
I = P(D)
I: Information
P: Processor
D: Data
정보처리 (Information Processing)
: 컴퓨터로 정보를 생성하기 위해서 데이터를 처리하는 작업
데이터(D) => 정보처리: 처리기(P) => 정보(I)
정보는 정확성과 현재성을 갖고 있어야 한다. (올바른 의사결정을 하기 위해서)
정보가 정확성과 현재성을 갖고 있기 위해서는 데이터도 정확성과 현재성, 신뢰성을 갖고 있어야 한다.
데이터는 기업에서 비즈니스를 진행하는데 있어서도 굉장히 중요한 역할을 한다. (중요도, 부가가치가 높다.)
정보 시스템 (Information System)
조직체에 필요한 데이터를 수집, 저장해 두었다가 필요시에 처리해서 의사결정에 필요한 정보를
만들어 내고 분배하는 수단으로 사용하는 시스템
경영 정보 시스템 (MIS: Management Information System)
기업 업무를 기획(Planning), 운영(Operation) 그리고 통제(Control)에 필요한
의사결정을 위한 정보를 제공하는 수단으로 사용
(오늘날 대부분의 기업체가 보편적으로 사용함)
그 밖에 정보 시스템
- 군사 정보 시스템 (MIS)
- 행정 정보 시스템 (AIS)
- 인사 정보 시스템 (PIS)
- 의사 결정 지원 시스템 (DSS)
- 지식 관리 시스템 (KMS)
의사 결정 지원 시스템 (DSS: Decision Support System)
하나의 전문적인 목적보다는 여러 가지 복합적이고,
광범위한 의사결정 목적을 위해 통합적인 기능을 수행
데이터 웨어하우스 (DW: Data Warehouse)
조직이나 기업체의 중심이 되는 주요 업무 시스템에서
추출되어 새로이 생성된 데이터베이스로서 의사 결정 지원
시스템을 지원하는 주체적, 통합적, 시간적 데이터의 집합체
데이터 마이닝 (Data Mining)
데이터 웨어하우스 규모가 대형화되고 복잡하게 될 때
관련된 데이터를 찾아내고, 필요한 정보 또는 지식을 생성하는 과정
데이터 처리 시스템 (Data Processing System)
정보 시스템이 사용할 데이터를 처리하는 정보 시스템의 서브 시스템
일괄 처리 시스템 (Batch Processing : a.k.a 배치잡)
시스템의 효율성을 최대한 높이기 위해서 일정 시간(1주일, 1개월등..)
또는 일정량의 데이터를 모아서 한 번에 처리하는 시스템
트랜잭션을 한번에 몰아서 처리하기때문에 비용절약이 된다.
하지만, 사용자 측면에서는 바로바로 처리가 안되므로 답답함을 느낄 수 있다.
온라인 처리 시스템 (Online Processing) : 일괄 처리 시스템과 반대 개념
- 데이터 발생 즉시 처리하는 시스템
- On-Line Real Time Processing
분산 처리 시스템 (Distributed Processing System)
지리적으로 분산되어 있는 여러 대의 컴퓨터(프로세서)를
통신 회선으로 연결하여 논리적으로 하나의 시스템을 사용하는 것처럼
운영하는 방식
데이터베이스 정의
조직체의 응용 시스템들이 공유해서 사용하는 운영
데이터들이 구조적으로 통합된 하나의 주제와 관련된 의미있는 데이터들의 모음
=> 데이터베이스의 구조는 사용되는 데이터 모델에 의해 결정
통합된 데이터 (Intergrated Data)
- 산재되어 있지 않고 한 곳에 있어야 함
- 모든 데이터가 중복을 최소화하면서 통합
저장 데이터 (Stored Data)
- 컴퓨터에서 처리가 가능하도록 전자적 형태로 젖아
- 디스크, 테이프 등 컴퓨터가 접근 가능한 저장 매체에 저장된 데이터
운영 데이터 (Operatioinal Data)
- 고유 기능을 수행하기 위해 반드시 유지되어야 할 데이터
공용 데이터 (Shared Data)
- 조직의 여러 응용 시스템들이 공동으로 소유, 유지, 이용하는 데이터
데이터베이스 특징
실시간 접근성 (Real-Time Accessibility)
- 수시적이고 비정형적인 질의(Query)에 대하여 실시간 처리(Real-Time Processing)로 응답
계속적인 변화 (Continuous Evolution)
- 새로운 데이터의 삽입(Insertion)이나 삭제(Deletion), 갱신(Update)으로 항상 변하고,
그 속에서 현재의 정확한 데이터를 유지할 수 있음
동시 공용 (Concurrent Sharing)
- 여러 사용자(Multi-User)가 동시에 자기가 원하는 데이터에 접근
내용에 의한 참조 가능(Content Reference)
-
데이터의 레코드 위치(Location)나 주소(Address)가 아닌
사용자가 요구하는 데이터의 내용(Contents), 즉 데이터가 가지고 있는 값에 따라 참조 -
모든 레코드들은 물리적 위치와 상관없이 하나의 논리적 단위로 취급되고 접근
데이터베이스 관리 시스템
파일 시스템 (File System)
- 전통적인 파일 중심의 데이터 처리
- 응용 프로그램은 응용 프로그래머가 생각하는 논리적 파일 구조를 직접 물리적 파일 구조로 표현
물리적 데이터 구조에 대해 잘 알고 있어야만 데이터에 대한 접근 방법을 효율적으로 구현
- 응용 프로그램이 자기 자신의 데이터 파일을 독립적으로 가지고 있어야 함
문제점 : 데이터 종속성 (Data Dependency), 데이터 중복성 (Data Redundancy)
응용프로그램이 데이터 파일과 N:N 매칭이 되어있음
데이터는 응용프로그램에 종속되며, 데이터는 같은 데이터를 중복해서 사용할 수 있기때문에
위와 같은 문제가 발생한다.
데이터 중속성 (Data Dependency)
데이터의 구성 방법이나 접근 방법을 변경할 때는
자연히 이것을 기초로 한 응용 프로그램도 같이 변경시켜야 함
데이터 중복성 (Data Redundancy)
한 시스템 내에 내용이 같은 데이터가 중복되게 저장 관리되는 것
문제점: 일관성, 보안성, 경제성, 무결성
일관성 : 여러개의 데이터가 하나의 사실을 가지고 있다면 논리적으로 그 데이터는 같아야 한다.
하지만 하나의 값만 변경하게 될 경우 일관성이 깨지게 된다.
보안성 : 논리적으로 한 시스템에 존재하는 데이터는 같은 수준의 보안성을 유지해야 한다.
같은 수준의 보안성을 유지하기는 생각보다 까다롭다.
경제성 : 데이터가 중복되어 저장된 경우 모든 데이터를 갱신하게 되면 갱신시 발생하는 비용을 무시할 수 없다.
중복으로 저장하는데 스토리지도 필요하고 갱신시 비용이 발생하니 경제성이 문제가 될 수 있다.
무결성 : 중복된 데이터가 분산되어 저장된다면 무결성을 지키기가 쉽지 않다.
데이터베이스 관리 시스템 (DBMS: Database Management System)
방대한 양의 데이터를 편리하게 저장하고 효율적으로 관리하고
검색할 수 있는 환경을 제공해주는 시스템 소프트웨어
데이터를 집합시킴으로써 앞에서 제기된 문제를 극복할 수 있다.
데이터베이스 관리 시스템의 필수 기능
정의 기능
구현된 하나의 물리적 구조의 데이터베이스로 여러 사용자들의 다양한 형태의
데이터 요구를 지원해 줄 수 있도록 가장 적절한 데이터베이스 구조를 정의할 수 있는 기능
올바른 데이터 정의에 포함되어야 하는 조건
-
모든 응용 프로그램에서 요구하고 있는 데이터 구조를 지원할 수 있도록
데이터베이스의 논리적 구조나 특성이 DBMS에서 요구되어지는 데이터 모델에 맞게
기술되어야 한다 -
데이터베이스의 물리적 저장장치에 저장하기 위해서 데이터의 물리적 구조에 대한 명세도 포함되어야 한다.
-
데이터베이스-데이터의 논리적 구조가 상호변환이 가능하도록 두 구조사이에 매핑이 명세되어야 한다.
조작 기능
사용자와 데이터베이스 사이의 인터페이스를 위한 수단을 제공
제어 기능
공용 목적으로 관리되는 데이터베이스의 내용에 대해 항상 무결성이 파괴되지 않도록 하며
정확성과 안전성을 유지하는 기능
정확성과 안전성
은 데이터를 공유하기 위한 가장 기본적인 제약 조건이다.
-
데이터베이스는 접근하는 갱신, 삽입, 삭제 작업이 정확하게 수행될 수 있도록
데이터의 무결성이 파괴되지 않게 제어되어야 한다. -
정당한 사용자가 허가되있는 데이터에 접근할 수 있도록 권한에 대해 검사하고 보안을 유지해야 한다.
-
여러사용자가 데이터베이스에 동시에 접근할 수 있도록 처리해야하고,
처리결과는 정확성이 유지되도록 병행,제어하여 처리하도록 한다.
데이터베이스 관리시스템의 장점
- 파일 시스템에 비해 데이터 중복을 최소화 (제어된 중복)
- 여러 사용자와 응용 프로그램들이 데이터를 공유하는 것이 가능
- 데이터의 일관성을 유지
- 무결성이 유지
- 모든 데이터에 대해 보안을 보장
- 데이터베이스의 일관성 있는 접근
- 데이터 관리를 유연
데이터베이스 관리시스템의 단점
- 운영비가 증가 (고가의 소프트웨어 비용 및 유지비용)
- 백업과 복구에 대한 전문적인 기술과 지식이 필요
데이터 독립성
데이터 독립성
- 데이터 베이스 구조의 변화로 인한 영향을 응용 프로그램(또는 논리적 구조)에 미치지 않도록 하는 것을 의미
논리적 데이터 독립성
- 응용 프로그램에 영향을 주지 않고 논리적 데이터 구조를 변경할 수 있게 하는 것
물리적 데이터 독립성
- 응용 프로그램과 데이터베이스의 논리적 구조에 영향을 주지않고 물리적 구조를 변경할 수 있게 하는 것
응용프로그램1 응용프로그램2 응용프로그램3
[A,B,C] [B,C,E] [A,C,G]
논리적 구조 사상 (논리적데이터 독립성)
[A, B, C, D, E, F, G, ...]
물리적 구조 사상 (물리적 데이터 독립성)
[
[A, B, C, D]
[E, F, G, ...]
]
스키마 (Schema)
데이터 구조와 제약조건에 대한 명세(Specification)를 기술하는 것
개체(Entity), 속성(Attribute), 관계(Relatioinship)에
대한 정의와 이들이 유지해야 될 제약조건(Constraints)을 포함
세 단계로 구별하여 데이터베이스를 기술하고 이들 관계를 정의하고 있음
- 외부 단계 (External Level) : 데이터를 이용하는 각 개인의 견해(View)
- 개념 단계 (Conceptual Level) : 개인의 모든 견해가 종합된 기관 전체의 견해
- 내부 단계 (Internal Level) : 물리적 저장 장치의 입장에서 보는 저장 장치의 견해
desktop1 desktop2 desktop3 desktop4 - [사용자]
외부스키마1 외부스키마2 외부스키마3 외부스키마4 - [서브 스키마]
------------------------------------------------ [응용 인터페이스]
[개념 스키마]
개념 스키마를 변경한다고 해도
외부 스키마를 수정할 필요가 없으므로
외부와 개념의 사상(응용 인터페이스)을 통해
논리적 데이터 독립성을 보장받을 수 있다.
------------------------------------------------ [저장 인터페이스]
[내부 스키마]
내부 스키마를 변경한다고 해도
개념 스키마에 영향을 주지 않기 때문에
물리적 데이터 독립성을 제공할 수 있다.
[저장 데이터베이스]
내부 스키마와 개념 스키마는 사상(Mapping, 연결)되어 있다.
3단계 데이터베이스 구조 다시 한번 보기
외부 스키마
- 개개 사용자가 보는 개인적인 데이터베이스에 관한 것
- 가장 바깥쪽 스키마로 데이터베이스의 개개 사용자나 응용 프로그래머가 접근하는 데이터베이스를 정의하는 것
- 전체 데이터베이스 내의 전체 데이터 중에서 사용자가 사용하려는 한 논리적 부분을 말하기 때문에 서브 스키마라 부른다.
개념 스키마
- 모든 응용 시스템들이나 사용자들이 필요로 하는 데이터를 통합한 조직 전체의 데이터베이스 기술
- 개념 스키마로부터 모든 외부 스키마가 생성되고 지원
내부 스키마
- 저장 장치의 입장에서 전체 데이터베이스가 저장되는 방법을 명세
- 물리적 단계보다 한 단계 위로 물리적 저장 장치 관점에서 본 구조
- 개념스키마와 내부스키마는 서로 매핑됨
사용자 (User)
일반 사용자 (Users, End User)
- 데이터 베이스를 접근하는 사용자들
- 일반 사용자 (Users)
- 보통 사용자 (Casual User)
- 터미널 사용자 (Terminal USer)
응용 프로그래머 (Application Programmer)
- 일반 호스팅 프로그래밍 언어로 응용 프로그램을 작성할 때 데이터조작어(DML)과 같은
부속어를 삽입시켜 데이터베이스에 접근하는 사람 - DBMS가 지원하는 데이터 조작어를 잘 구사할 수 있는 프로그래밍 전문가
데이터베이스 관리자 (Database Administration)
- 데이터 정의어(DDL)와 데이터 제어어(DCL)를 사용하여 데이터베이스를 DBMS에 기술해주고
저장된 데이터를 제어할 목적으로 데이터베이스르 접근하는 사람
데이터베이스 관리자 (DBA: Database Administration)
- 데이터베이스 설계와 운영
- 행정 관리 및 불평 해결
- 시스템 감시 및 성능 분석