정보처리기사/Database

정처기 수준에서의 데이터베이스 - 튜닝, 객체 지향 데이터베이스, 고급 데이터베이스

mostlyjinsonit 2018. 10. 5. 16:53
반응형

튜닝의 개요

데이터베이스 튜닝이란 데이터베이스 응용 프로그램, 데이터베이스 자체, 운영체제 등의 조정을 통하여 데이터베이스 관리 시스템의 성능을 향상시키는 작업을 말한다.


튜닝의 목표

- 데이터베이스에 접근하는 SQL문의 실행 시 디스크 블록에 대한 접근횟수를 최소화한다.

- 디스크 블록에서 한번 읽어온 데이터는 가능한 한 메모리 영역에 보관하여 다시 그 데이터가 필요할 때 메모리에서 신속히 가져오게 한다.

- 모든 SQL문은 공유가 가능하도록 대소문자 일치 등의 이름 작성 규칙을 준수하여 작성한다.

- 여러 명의 사용자가 자원들을 안정적으로 접근할 수 있도록 허용하기 위해 잠금 기능의 사용을 최소화한다.


튜닝의 단계

비즈니스 규칙 튜닝

데이터 설계 튜닝

응용 프로그램 튜닝

데이터베이스의 논리적 구조 튜닝

데이터베이스 접근 방식 튜닝

접근 경로 튜닝

메모리 관리 튜닝

물리적 구조 및 입출력 튜닝

자원의 경합 튜닝

H/W에 대해 특화된 부분의 튜닝


객체 지향 데이터베이스(ODB; Object-oriented DataBase)

객체 지향 데이터베이스는 객체 지향 패러다임을 사용하는 객체 지향 프로그래밍 언어에서 영향을 받아 생성된 객체 지향 기술과 데이터베이스 기술의 결합체이다.


객체 지향 데이터베이스의 구성

속성 = 객체를 기술하는데 사용되며, 유일한 이름과 데이터 타입을 갖는다.

메소드 = 객체에 수행될 연산, 즉 객체의 속성 값에 대한 변경이나 검색을 기술한 것이다. 또한, 특정 메소드를 실행하기 위해서는 해당 객체에 메세지를 보내야한다.

클래스 = 공통적인 특성을 소유한 객체들을 그룹화 및 추상화한 것을 말한다. 즉, 클래스는 동일한 속성과 메소드를 갖는 개체들의 집합을 의미한다.

인스턴스 = 클래스를 이용하여 생성한 하나의 객체를 의미한다.

상속 = 클래스 계층 구조를 형성하는 서브 클래스와 슈퍼 클래스 간에 존재하는 계층의 개념이다. 일반적으로 서브 클래스와 슈퍼 클래스 간의 관계를 ISA 관계라고 한다.

오버로딩(Overloading) = 하나의 메소드 이름으로 다른 파라미터를 지정하여 사용하는 기법으로, 메소드 사용의 효율성을 높인 기법이다.

오버라이딩(Overriding) = 슈퍼 클래스에 있는 메소드를 서브 캘래스에서 상속받아 다른 기능을 수행하는 메소드로 재정의하는 기법이다. 


객체 관계 데이터베이스(ORDB; Object Relational Database)

객체 관계 데이터베이스는 관계형 데이터베이스에 객체 지향 데이터베이스의 개념을 추가한 데이터베이스이다.

- 관계형 데이터베이스는 데이터를 저장할 때 정형화된 데이터 타입을 필요로 한다. 정형화된 테이터 타입이란 릴레이션을 생성할 때 사용될 테이터의 크기를 미리 정해 놓은 테이터 타입을 의미한다.

   컴퓨터가 발전하면서 비정형화된 데이터 사용이 빈번해졌고, 이러한 비정형화된 데이터는 관계형 테이터베이스에 저장하기 어렵다는 단점이 있어 이를 해결하기 위해 등장했다.


객체 관계 데이터베이스의 특징

객체 관계 데이터베이스를 위한 데이터 언어 표준으로는 ISO에서 제시한 SQL3가 있다.

- 객체 관계 데이터베이스는 확장 가능 데이터 타입, 사용자 정의 데이터 타입, 사용자 정의 함수, 사용자 정의 프로시저, 사용자 정의 연산자, 대형 객체 타입, 상속 개념 등을 지원하고 있다.


고급 데이터베이스 - 분산 데이터베이스

분산 데이터베이스는 논리적으로는 같은 시스템에 속하지만 물리적으로는 컴퓨터 네트워크를 통해 분산되어 있는 데이터베이스이다.


분산 데이터베이스 시스템의 구성 요소

분산 처리기 : 자체적으로 처리 능력을 가지며 지리적으로 분산되어 있는 컴퓨터 시스템.

분산 데이터베이스 : 지리적으로 분산되어 있는 데이터베이스로서 해당 지역 특성에 맞게 데이터베이스가 구성된다.

통신 네트워크 : 분산 처리기들을 통신망으로 연결하여 논리적으로 하나의 시스템처럼 작동할 수 있도록 하는 네트워크를 말한다.


분산 데이터베이스의 목표

위치 투명성(Location Transparency)

중복 투명성(Replication Transparency)

병행 투명성(Concurrency Transparency)

장애 투명성(Failure Transparency)


멀티미디어 데이터베이스(Multimedia Database)

멀티미디어 데이터베이스는 텍스트, 그래픽, 정지 화상, 동영상, 음성 등이 복합적으로 구성된 데이터베이스.


주기억장치 데이터베이스(Main Memory Database)

주기억장치 데이터베이스는 데이터베이스 전체를 주기억장치에 상주시킨 후 데이터베이스 연산을 수행하는 시스템으로, 디스크 입출력이 발생하지 않는다.


데이터 웨어하우스(Data Warehouse)

데이터 웨어하우스는 급증하는 다량의 데이터를 효과적으로 분석하여 정보화하고 이를 여러 계층의 사용자들이 효율적으로 사용할 수 있도록 한 데이터베이스이다.

- 데이터 웨어하우스에는 다양한 원본 데이터베이스로부터 정제되어 추출된 데이터만을 저장하고 필요한 인덱스를 생성한다.

   이후, 데이터의 다차원 분석 도구로 데이터 웨어하우스를 분석하여 효율적인 의사결정에 필요한 자료를 얻는다.


데이터 마트(Data Mart)

데이터 마트는 전사적으로 구축된 데이터 웨어하우스로부터 특정 주제나 부서 중심으로 구축된 소규모 단일 주제의 데이터 웨어하우스를 말한다.


데이터 마이닝(Data Mining)

데이터 마이닝이란 데이터 웨어하우스에 저장된 데이터 집합에서 사용자의 요구에 따라 유용하고 가능성 있는 정보를 발견하기 위한 기법이다.


데이터 마이닝의 기법

연관(Association) = 대용량의 트랜잭션 데이터로부터 "A이면 B이다" 형식의 연관 관계를 발견하기 위한 방법이다.

연속(Sequence) = 개인별 트랜잭션 이력 되이터를 시계열적으로 분석, 트랜잭션의 향후 발생 가능성을 예측하는 방법이다.

분류(Classification) = 다른 그룹과의 차별적인 특성을 도출하기 위한 방법.

클러스터링(Clustering) = 상호 간에 유사한 특성을 갖는 데이터들을 집단화하는 방법.

특성화(Characterization) = 데이터 집합의 일반적인 특성을 분석하는 것으로 데이터의 요약 과정을 통해 특성을 발견하는 방법.

패턴 분석(Pattern Analysis) = 데이터베이스 내의 명시된 패턴을 찾는 방법이다.

경향 분석(Trend Analysis) = 시계열 데이터들이 시간 축으로 변화하는 전개 과정을 특성화하여 동적으로 변화하는 데이터를 분석하는 방법.


OLAP(Online Analytical Processing)

OLAP는 다차원으로 이루어진 데이터로부터 통계적인 요약 정보를 분석하여 의사결정에 활용하는 방식을 말한다.

OLAP 시스템은 데이터 웨어하우스의 데이터를 전략적인 정보로 변환시키는 역할을 한다. 상호작용을 한다.


OLAP 연산

Roll-up : 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 구체적인 내용의 상세 데이터로부터 요약된 형태의 데이터로 접근하는 기능.

Drill-down: 분석할 항목에 대해 한 차원의 계층 구조를 따라 단계적으로 요약된 형태의 데이터로부터 구체적인 내용의 상세 데이터로 접근하는 기능.

Drill-through: 데이터 웨어하우스는 OLTP에 존재하는 상세 데이터에 접근하는 기능.

Drill-across: 다른 데이터 큐브의 데이터에 접근하는 기능.

Pivoting: 보고서의 행, 열, 페이지 차원을 바꾸어 볼 수 있는 기능.

Slicing: 다차원 데이터 항목들을 다양한 각도에서 조회하고 자유롭게 비교하는 기능.

Dicing: Slicing을 더 세분화하는 기능.


OLAP 종류

ROLAP(Relational) = 관계형 데이터베이스와 관계형 질의어를 사용하여 다차원 데이터를 저장하고 분석함.

MOLAP(Multi-dimension) = 다차원 데이터를 저장하기 위해 특수한 구조의 다차원 데이터베이스를 사용하고 데이터 검색 속도를 향상시키기 위해 큐브 캐시라고 하는 주기억장치 속에 데이터큐브를 보관함.

HOLAP(Hybrid) =  위 두개를 합침


OLTP(Online Transaction Processing)

OLTP는 온라인 업무 처리 형태의 하나로 네트워크상의 여러 이용자가 실시간으로 데이터베이스의 데이터를 갱신하거나 검색하는 등의 단위 작업을 처리하는 방식.


ODBC(Open DataBase Connectivity)

ODBC는 프로그램과 데이터베이스의 종류에 관계없이 자유롭게 데이터베이스에 접근하여 사용할 수 있도록 Microsoft사가 만든 응용 프로그램의 표준 인터페이스(API : Application Programming Interface)이다.

데이터베이스에 따른 차이는 ODBC 드라이버에 흡수되기 때문에 사용자는 데이터베이스 종류를 의식하지 않고 ODBC 기준에 맞게 응용 프로그램을 작성하기만 하면 된다.


반응형