Database2018. 4. 24. 10:57

데이터와 정보

데이터는 가공이 필요한 있는 그대로의 사실이다.

정보는 가공된 데이터로 그 의미를 보여준다.



DB 접근 특성

전통적인 파일 처리: 각각의 사용자를 정의하고, 파일들을 처리하는데 특별한 소프트웨어가 필요했음. 데이터의 불필요한 중복(Redundancy)이 일어나고 일관성(Inconsistency)이 없음.



DB 시스템의 자기 설명성

DBS는 구조적 정의나 제약 조건 등을 포함한다: 테이블 구조, 데이터 아이템의 타입, 데이터의 다양한 제약조건

System catalogMeta-data, DB의 구조를 설명한다. DBMS 소프트웨어, DBA와 같이 DB의 구조에 대한 정보가 필요한 사용자에 의해 사용된다.



프로그램과 데이터 사이의 Insulation 및 데이터 추상화

Program-Data Independence: DB를 사용하는 어플리케이션 소프트웨어를 수정하지 않고 DB의 구조를 수정할 수 있어야 한다.



Program-Operation Independence: 객체 지향성 혹은 객체 관련성 (Object Oriented or Object Relational) DBS에서는 사용자가 데이터에 DB 정의의 일부분으로서 Operation을 정의할 수 있다.



Operation은 다음 두 가지 특성이 있다:

-       인터페이스(혹은 시그니쳐)는 인수의 Operation 이름이나 데이터 타입 등을 포함한다.

-       인터페이스에 영향을 주지 않고 구현(implementation)은 바뀔 수 있다.


프로그램 데이터에 의한 데이터 추상화 및 Program-Operation Independence: 기본적인 정보만을 외부에 제공하고 백그라운드의 자세한 정보는 숨긴다. DBMS는 사용자에게 데이터의 추상적인 묘사만을 제공하는데, 그 데이터가 어떻게 저장되어 있으며 Operation들이 어떻게 구현되어 있는지에 대해서는 보여주지 않는다.


비공식적으로, 데이터 모델은 개념적 표현을 제공하는데 주로 사용되는 데이터 추상화의 한 종류이다.



데이터의 Multiple View 지원

View: DB 파일들로부터 파생된 virtual data들을 포함하지만 명시적으로 저장되진 않는다. 데이터에 저장된 query들의 결과를 기반으로 한 Virtual table이라고 생각하면 된다. DB 사용자들은 지속성 있는 DB에 있을 때 view들을 query 할 수 있다.


Multiuser DBMS에서 사용자들은 다양한 어플리케이션들을 가지고 있다. Multiuser DBMSmultiple view들을 정의할 수 있는 기능을 제공해야만 한다.



데이터의 공유와 Multiuser Transaction Processing

(트랜잭션: 데이터베이스에서 하나의 논리적 기능을 수행하기 위한 작업의 단위. DBS에서 복구 및 병행 시행 시 처리되는 작업의 논리적 단위. 하나의 트랜잭션은 commit 되거나 rollback .)

여러 사용자를 동시에 DB에 접근할 수 있게 허용한다.


Concurrency control software(병행 처리 소프트웨어): 여러 유저들이 같은 데이터를 업데이트 하려고 할 때 통제된 방식으로 맞는 결과를 얻도록 안전하게 처리한다.


트랜잭션: Operation들의 모음으로 계좌 이체 같은 하나의 논리적 일의 단위이다. DBMS는 여러 operation들을 처리할 때 트랜잭션을 가장 작은 일의 단위로 처리하는 것으로 데이터 무결성을 유지한다.


OnLine Transaction Processing (OLTP): OLTP는 매우 빠른 쿼리를 수행한다. 많은 수의 짧은 트랜잭션을 처리하며, 많은 사용자가 동시에 접근하는 환경에서 데이터 무결성을 유지한다.



DB와 관련된 사람의 역할

DBA: 데이터베이스 스키마를 만들고 수정, 데이터베이스에 대한 접근 권한 부여, 저장소 설계 및 접근 경로 정의, DB 모니터링 및 조정, backuprecovery 관리, 소프트웨어 및 하드웨어 리소스 취득


DB Designer: 저장될 데이터 식별, 해당 데이터를 저장하고 represent 하는데 적절한 구조 선정, views of DB



Advanced of Using the DBMS Approach

중복성 제어(Control concurrency): 같은 데이터를 중복해서 저장하는 것은 저장 공간 낭비 및 데이터 불일치 등의 문제를 야기할 수 있다. 각 논리적 데이터 아이템은 DB의 한군데만 저장되도록 DB를 조직해야한다. (데이터 일반화는 데이터 중복을 피하게 해준다.)


허용되지 않은 접근 제한, 백업과 복구 제공, 데이터 간의 복잡한 관계 표현, 효율적인 쿼리 수행을 위한 저장 공간 구조나 검색 기술을 제공, 무결성 제약 조건 강화, multiple user interfaces 제공


Rule을 활용한 추론 및 액션 허용:

-       연역적 DB 시스템(Deductive DB Systems): 저장된 DB의 사실을 이용해 새로운 정보를 얻어낼 수 있다.

-       Trigger: DB operation이 특정 조건을 위반할 때 해당 SQL statements를 자동으로 중단한다.

-       Stored Procedures: 할당된 이름이 있는 PrecompileSQL statements, 여러 프로그램에서 공유할 수 있다.

-       Active DB Systems: 특정 이벤트나 상태가 일어나면 자동으로 액션을 취할 수 있는 유동적인 rules을 제공한다.


Database approach를 사용해서 얻을 수 있는 추가적인 장점

-       Potential for enforcing standards

-       개발 기간 단축

-       유연성(Flexibility)

-       정보 업데이트 가능성

 


DB Applications의 역사



-       Hierarchical DBS: 1960s. 데이터는 하나가 다른 것들에게 연결되는 형식으로 저장됨. 1:M Relationship. 데이터 독립성과 데이터 추상화가 힘듦. 데이터 중복의 가능성.


-       Network DBS: 1970s. 데이터가 다른 것들에게 연결된 형태로 저장. M:N Relationship. Hierarchical DBSNetwork DBS의 특수한 케이스. 단점도 Hierarchichal과 비슷함.


-       Relational DBS: 1980s. 데이터 아이템들과 그 아이템들 간의 관계가 테이블로서 조직된 것. 추상적인 표현과 실제로 데이터가 저장된 곳이 다름. 데이터 추상화와 program-data 독립성이 보장됨. 사용자가 프로시저를 하나하나 조직하지 않아도 원하는 것을 얻을 수 있음(Declarative Query).


-       Object Oriented DBS: 객체지향의 특징을 적용한 데이터베이스. C++과 같은 프로그래밍 언어와 호환되며 영속 객체를 조작할 수 있음. 사용자가 정의한 OperationDB 객체에 사용하는 것이 허용되며 복잡한 entities를 모델화 할 수 있고, 유지와 확장이 쉽다는 장점이 있다. 하지만 모델이 복잡해지며 너무 일찍 standard가 된 것이 해가 되었다.


-       Object Relational DBS: OO 함수들을 포함한 관계형 데이터 모델을 확장함. Tuples에게 nested relations와 같이 기본적인 자료형이 아닌 타입을 가지는 것을 허용함. 일률 모델링을 확장하는 동안, 부분적으로 데이터에 대한 선언적 액세스에서, 관계의 기초를 보존함.


-       Enterprise Resource Planning (ERP): 일반적으로 비즈니스 관리 소프트웨어에서 사용함. 많은 비즈니스 활동에서 나온 데이터들을 모으고 저장하며, 관리할 수 있음.


-       Customer Relationship Management (CRM): 회사가 고객들과 판매나 서비스와 관련된 양상들을 수반함.

-       Parallel DBS: 데이터 로딩, 인덱스 제작, 그리고 쿼리 평가 같은 여러 Operations의 병렬처리를 통해 성능의 향상을 목적에 둠.


-       Distributed DBS: 인터넷이나 개인 WAN으로 연결된 컴퓨터에 데이터베이스가 분산되어 저장되어 있는 것. 트랜잭션이 한 곳 이상의 사이트에서 데이터에 대한 액세스가 일어남. DBMS는 사용자에게 세부적으로 어떻게 조직되어 있는지는 숨김.


-       Temporal DBS: 과거의 데이터를 다루는 체계적인 방법


-       Deductive DBS: DB에 저장된 rulesfacts를 기반으로 공제를 만들어낼 수 있음.


-       Active DBS: 이벤트에 따라 동작하는 아키텍쳐를 포함하며 DB 안팎에서의 상태에 대응할 수 있음.


-       Spatial DBS: 기하학 공간에 정의된 물체를 나타내는 데이터 query와 저장에 최적화 되어있다.


-       Multimedia DBS: 텍스트, 이미지, 그래픽, 애니메이션, 오디오와 비디오 같은 미디어 데이터의 집합


-       Real-time DBS: Real-time Processing을 사용하는 상태가 주기적으로 바뀌는 시스템에 사용되는 데이터베이스.


-       Cloud DBS: 클라우드 컴퓨팅 플랫폼에서 동작하는 데이터베이스로 공유된 프로세스 자원과 데이터를 사용자의 필요에 따라 제공함.



DBMS를 사용하지 말아야 할 때

DBMS의 오버헤드 비용은 다음 항목들 때문에 생긴다:

-       HW, SW, 그리고 훈련하는데 지나치게 높은 초기 환경

-       데이터의 정의와 처리 과정

-       보안, 중복 제어, 복구, 그리고 무결성 기능들을 제공하는 것


일반 파일 입출력을 사용하는 것이 더 어울릴 때:

-       단순하고 잘 정의된 데이터베이스가 성능의 향상에 영향을 거의 주지 않을 때

-       DBMS의 오버헤드 때문에 실시간으로 데이터를 요구하는 사항에는 적합하지 않음

-       저장 공간에 제약이 있는 임베디드 시스템

-       다양한 사용자가 데이터에 접근하지 않을 때


Posted by BinZIP