실기_2과목 5장 데이터베이스 기타 실무 응용 - JuNijen/Industrial-Engineer-Information-Processing GitHub Wiki
실기 2과목 페이지 데이터베이스 실무 일반
병행 제어란 다중 프로그램의 이점을 활용하여 동시에 여러 개의 트랜잭션을 병행 수행할 때 실행되는 트랜잭션들이 데이터베이스의 길관성을 파괴하지 않도록 트랜잭션 간의 상호 작용을 제어하는 기술이다. 병행성이란 여러 개의 트랜잭션들이 동시에 인터리빙(Interleaving)하게 실행되는 것을 의미한다.
- 데이터베이스의 공유를 최대화한다.
- 시스템의 활용도를 최대화한다.
- 사용자에 대한 응답 시간을 최소화한다.
- 단위 시간당 트랜잭션 처리 건수를 최대화한다.
- 데이터베이스의 일관성을 유지한다.
병행 제어 없이 트랜잭션들이 데이터베이스에 동시에 접근하도록 허용할 경우 다음과 같은 문제점이 발생한다.
2개 이상의 트랜잭션이 같은 데이터를 공유하여 갱신할 때 갱신 결과의 일부가 없어지는 현상
복수의 사용자가 동시에 같은 데이터를 갱신할 때 데이터베이스 내의 데이터들이 상호 일치하지 않아 모순된 결과가 발생하는 현상. 불일치 분석(Inconsistent Analysis)이라고도 한다.
병행 수행되던 트랜잭션들 중 어느 하나에 문제가 생겨 Rollback되는 경우 다른 트랜잭션들도 함께 Rollback되는 현상
- 잠금(Lock)이란 데이터베이스 관리에서 하나의 트랜잭션에 사용되는 데이터를 다른 트랜잭션이 접근하지 못하게 하는 것을 의미한다.
- 트랜잭션들은 어떤 데이터를 접근하기 전에 잠금을 요청하여 잠금을 허락받아야 한다. 데이터를 갱신할 때는 반드시 잠금(Lock) → 실행 (Execute) → 해제(Unlock)의 규칙을 따라야 한다.
- 잠금 단위 : ▶ 병행 제어에서 한 번에 잠금할 수 있는 단위로 데이터베이스, 테이블, 레코드, 필ㄷ르 등이 사용될 수 있다. ▶ 잠금 단위가 크면 잠금 수가 작아 관리하기 쉽지만 공유성 수준이 낮아지고, 잠금 단위가 작으면 잠금 수가 많아 관리하기 복잡하지만 공유성 수준이 높아진다.
어떤 한 트랜잭션이 사용되기 위해 잠가 놓은 자원을 사용하기 위해 기다리므로 모든 트랜잭션들이 실행을 전혀 진전시키지 못하고 무한정 기다리고 있는 상태
트랜잭션 스케줄의 직렬성을 보장하는 대표적인 잠금 기법이다. 모든 트랜잭션들이 잠금과 잠금 해제를 다음과 같이 2단계로 수행하도록 한다.
- 확장(Growing)단계 : 트랜잭션이 잠금만 수행할 수 있고 잠금 해제는 수행할 수 없는 다녜
- 축소(Shrinking)단계 : 트랜잭션이 잠금 해제만 수행할 수 있고 잠금은 수행할 수 없는 단계 스케줄의 직렬성을 보장한다는 장점은 있지만 교착 상태를 예방할 수는 없다는 단점이 있다.
- 타임 스탬프란 시스템이 각 트랜잭션을 실행할 때 부여하는 값이다. 예를 들어, 트랜잭션이 시스템으로 들어오면 그 때의 시스템 시간 값이 그 트랜잭션의 타임 스탬프가 된다.
- 트랜잭션들을 인터리빙하게 실행한 결과가 시간 스템프 순서대로 트랜잭션들을 실행하는 직렬 스케줄의 실행 결과와 항상 동일하다는 것을 보장하는 기법이다.
- 직렬성 순서를 결정하기 위해 트랜잭션 간의 실행 순서를 미리 결정하는 기법들 중에서 가장 보편적인 방법이다.
- 타임 스탬프 순서 기법은 읽거나 변경할 데이터에 대해 트랜잭션을 실행하기 전에 타임 스탬프를 부여하고 타임 스탬프 순서에 따라 트랜잭션 작업을 수행하도록 한다.
- 교착 상태가 발생하지 않는다.
분산 데이터베이스는 논리적으로는 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어있는 데이터베이스이다.
- 분산 처리기 : 자체적으로 처리 능력을 가지며 지리적으로 분산되어 있는 컴퓨터 시스템을 말한다.
- 분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스로서 해당 지역의 특성에 맞게 데이터베이스가 구성된다.
- 통신 네트워크 : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 네트워크를 말한다.
- 위치 투명성 (Location Transparency) : 접근하려는 데이터베이스의 실제 위치를 알 필요 없이 단지 데이터베이스의 논리적인 명칭만으로 접근할 수 있다.
- 중복 투명성 (Replication Transparency) : 동일한 데이터가 여러 곳에 중복되어 있더라도 사용자는 마치 하나의 데이터만 존재하는 것처럼 사용할 수 있고, 시스템은 자동으로 여러 데이터에 대한 작업을 수행한다.
- 병행 투명성 (Concurrency Transparency) : 분산 데이터베이스와 관련딘 다수의 트랜잭션들이 동시에 실행되더라도 그 트랜잭션들의 수행 결과는 서로 영향을 받지 않는다.
- 장애 투명성 (Failure Transparency) : 트랜잭션, DBMS, 네트웤, 컴퓨터 장애에도 불구하고 트랜잭션은 정확하게 수행된다.
[장점]
- 지역 자치성이 높다.
- 데이터의 공유성이 향상된다.
- 분산 제어가 가능하다.
- 시스템 성능이 향상된다.
- 효율성 및 융통성이 높다.
- 신뢰성 및 가용성이 높다.
- 점증적 시스템 용량 확장이 용이하다. [단점]
- DBMS가 수행할 기능이 복잡하다.
- 데이터베이스 설계가 어렵다.
- 소프트웨어 개발 비용이 증가한다.
- 처리 비용이 증가한다.
- 잠재적 오류가 증가한다.
멀티미디어 데이터베이스는 텍스트, 그래픽, 정지 화상, 동영상, 음성 등이 복합적으로 구성된 데이터베이스이다.
- 데이터가 일반적으로 대용량이다.
- 정형화된 데이터가 아니고 검색 대상의 내용이 데이터의 중간에 있을 수 있으므로 미디어별로 별도의 검색 방법이 필요하다.
- 비정형 데이터이기 때문에 데이터의 구조가 복잡하고 관계를 구성하기가 어렵다.
- 파일 기반 기법 ▶ DBMS를 사용하지 않으며 단순한 검색 위주의 VOD(Video On Demand) 등에 이용된다. ▶ 데이터의 동시 접근이 어렵고 회복 기능 등의 지원이 빈약하다.
- 관계형 데이터베이스 기반 기법 ▶ 텍스트 데이터를 저장하기 위해서는 CLOB(Character Large Object) 데이터 타입을 이용하고, 이미지, 비디오, 오디오 등을 이용하기 위해서는 BLOB(Binary Large Object) 데이터 타입을 이용한다. ▶ 일반적으로 정형화된 데이터는 관계형 데이터베이스의 데이터 타입을 이용하고 비정형화된 데이터는 파일로 저장한다.
- 객체 지향 데이터베이스 기반 기법 ▶ 멀티미디어를 가장 잘 표현할 수 있는 기법이다. ▶ 사용자 정의 클래스, 사용자 정의 메소드를 이용하여 미디어별로 별도의 클래스를 정의할 수 있다.
- 객체 관계형 데이터베이스 기반 기법 관계형 데이터베이스의 CLOB, BLOB 데이터 타입을 이용하거나 사용자 정의 클래스, 사용자 정의 메소드를 이용하여 미디어별 타입을 정의해서 사용할 수 있다.
주기억장치 데이터베이스는 데이터베이스 전체를 주기억장칯에 상주시킨 후 데이터베이스 연산을 수행하는 시스템으로, 디스크 입·출력이 발생하지 않는다.
- 모든 연산이 주기억장칯에서 수행되므로 디스크 입·출력이 줄어들어 빠른 연산이 가능하다.
- 시스템에 문제가 생겼을 경우 복구시켜 주는 회복작업의 구현이 어렵다.
- 주기억장치의 구입 비용이 많이 든다.
- 데이터 웨어하우스는 급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율ㅈ럭을오 사용할 수 있도록 한 데이터베이스이다.
- 데이터 웨어하우스가 등장하게 된 동기는 전사적인 데이터 통합을 통한 정보의 효율적인 분석이 필요하게 되었고, 신속 정확한 의사결정으로 경쟁력을 확보하기 위하여 의사결정용 데이터베이스의 필요성이 대두되었기 때문이다.
- 데이터 웨어하우스에는 다양한 원본 데이터베이스로부터 정제되어 추출된 데이터만을 저장하고 필요한 인덱스를 생성한다. 이후, 데이터의 다차원 분석 도구로 데이터 웨어하우스를 분석하여 효율적인 의사결정에 필요한 자료를 얻는다.
- 높은 투자 수익률을 얻을 수 있다.
- 타사에 비하여 경쟁우위를 획득할 수 있다.
- 의사 결정자의 생산성을 향상시킬 수 있다.
- 기존 시스템과 명확한 역할 설정을 하지 못하면 업무의 혼란을 초래할 수 있다.
- 추출 기준에 맞지 않는 데이터의 입력, 갱신, 삭제가 발생하면 불일치 문제가 발생할 수 있다.
- 의사 결정을 위한 충분한 데이터가 확보되지 않으면 정확한 결과를 도출할 수 없다.
- 과다한 자원을 사용하게 되고 유지보수가 어렵다.
데이터 마트는 전사적으로 구축도니 데이터 웨어하우스로부터 특정 주제나 부서 중심으로 구축된 소규모 단일 주제의 데이터 웨어하우스를 말한다.
- 특정 부서의 의사 결정 지원을 목적으로 하는 부서별 또는 업무 기능별로 구축되는 데이터 웨어하우스로서, 일반적으로 한 기업 내에 복수개의 데이터 마트가 존재한다.
- 전사적 통합성을 염두에 두고 데이터 마트가 데이터 웨어하우스보다 먼저 구축될 수도 있다.
- 데이터 마트의 특징 ▶ 전사적 데이터 웨어하우스의 데이터를 분석 요건에 적합한 구조로 재구성함 ▶ 추세, 패턴 분석 및 데이터 접근이 용이한 요약 데이터로 구성되며, 필요 시 일부 상세 데이터 포함 ▶ 분석에 필요한 이력 데이터만을 포함하는 제한된 규모의 데이터 ▶ 다양한 질의나 요구를 충족하는 유연성과 접근성이 필요한 다차원 구조의 데이터
데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법이다.
- 연관(Association) : 대용량의 트랜잭션 데이터로부터 "A이면 B이다" 형식의 연관 관계를 발견하기 위한 방법이다.
- 연속(Sequence) : 개인별 트랜잭션 이력 데이터를 시계열적으로 분석하여 트랜잭션의 향후 발생 가능성을 예측하는 방법이다.
- 분류(Classification) : 다른 그룹과의 차별적인 특성을 도출하기 위한 방법이다.
- 클러스터링(Clustering, 군집화) : 상호 간에 유사한 특성을 갖는 데이터들을 집단화하는 방법.
- 특성화(Characterization) : 데이터베이스 내의 명시된 패턴을 찾는 방법이다.
- 경향 분석(Trend Analysis) : 시계열 데이터들이 시간 축으로 변화하는 전개 과벙을 특성화하여 동적으로 변화하는 데이터를 분석하는 방법이다.
다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식을 말한다. OLAPP 시스템은 데이터 웨어하우스나 데이터 마트와 같은 시스템과 상호 연관되는 정보 시스템이다.
- 데이터 웨어하우스가 데이터를 저장하고 관리한다면 OLAP는 데이터 웨어 하우스의 데이터를 전략적인 정보로 변환시키는 역할을 한다.
- OLAP는 중간 매개체 없이 이용자들이 직접 컴퓨터를 이용하여 데이터에 접근하는 데 있어 필수적인 시스템이라 할 수 있다.
- Roll-up : 분석학 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능
- Drill-down : 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능.
- Drill-through : 데이터 웨어하우스와 OLTP에 존재하는 상세 데이터에 접근하는 기능
- Drill-across : 다른 데이터 큐브의 데이터에 접근하는 기능
- Pivoting : 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능
- Slicing : 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능
- Dicing : Slicing을 더 세분화 하는 기능
- ROLAP(Relational-OLAP) : 관계형 데이터베이스와 관계형 질의어를 사용하여 다차원 데이터를 저장하고 분석함
- MOLAP(Multi-dimension OLAP : 다차원 데이터를 저장하기 위해 특수한 구조의 다차원 데이터베이스를 사용하고 데이터 검색 속도를 향상 시키기 위해 큐브 캐시(Cube Cache)라고 하는 주기억장치 속에 데이터 큐브를 보관함
- HOLAP(Hybrid OLAP) : ROLAP와 MOLAP의 특성을 모두 가지고 있으며, 빠른 검색이 필요한 경우에는 요약을 메모리에 저장하고 기본 데이터나 다른 요약들은 관계형 데이터베이스에 저장함.
온라인 업무 처리 형태의 하나. 네으퉈크 상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식을 말한다.
- 여기서 단위 작업은 트랜잭션을 의미하며 데이터 무결성을 위하 각 트랜잭션은 그 전체가 완전히 행해지든지, 아니면 전혀 행해지지 않든지 둘 중 하나가 되도록 처리되어야 한다.
- OLTP 시스템은 일반적으로 빠른 응답 시간을 요구하며, 개개의 레코드를 효율적으로 조회하고 수정할 수 있도록 정규화 되어 있다.
- OLTP와 OLAP 비교 - 210p 참고
프로그램과 데이터베이스의 종류에 관계없이 자유롭게 데이터베이스에 접근하여 사용할 수 있도록 Microsoft사가 만든 응용 프로그램의 표준 인터페이스(API : Application Programming Interface)이다.
- 데이터베이스에 따른 차이는 ODBC 드라이버에 흡수되기 때문에 사용자는 데이터베이스 종류를 의식하지 않고 ODBC 기준에 맞게 응용 프로그램을 작성하기만 하면 된다.
- ODBC를 사용하면 여러 종류의 데이터베이스를 함께 사용할 수 있으며, 기존에 사용하던 데이터베이스를 교체하더라도 응용 프로그램을 그대로 사용할 수 있어 비용이 절감된다.
- Application : 데이터베이스에 접속할 때 ODBC API를 사용함
- Driver Manager : Apliccation과 ODBC Driver 간의 통신을 관리하는 라이브러리로써 DSN에서 정의된 형태로 특정 데이터베이스에 접속할 때 필요한 드라이버를 로딩하거나 언로딩함
- DSN(Domain Service Name) : 서버에 연결할 때 필요한 드라이버와 데이터베이스 정보를 저장함
- ODBC Driver : ODBC API가 지원하는 함수를 구현하는 라이브러리
- 데이터베이스 : ODBC Driver에서 요청한 SQL에 대한 결과를 반환함