검수요청.png검수요청.png

사이베이스

위키원
이동: 둘러보기, 검색
사이베이스(Sybase)
사이베이스(Sybase)

사이베이스(Sybase)는 1984년 미국에서 개발된 관계형 데이터베이스 관리 시스템(RDBMS)이다. 미국 마이크로소프트(Microsoft)의 엠에스에스큐엘(MS-SQL)은 사이베이스를 기반으로 제작하여 기능이 매우 유사하다.

개요

사이베이스(Sybase)는 캘리포니아와 매사추세츠에 위치한 시설을 통해 관계형데이터베이스의 정보를 관리하고 분석하는 소프트웨어를 제작한 엔터프라이즈 소프트웨어 및 서비스 회사가 개발한 관계형 데이터베이스 관리 시스템이다. 그러나, 사이베이스는 2010년 5월독일에스에이피(SAP) 회사에 인수되었다. 사이베이스는 버클리대학에서 잉그레스 프로젝트의 구성원으로 참여했던 밥 엡스타인(Bob Epstein)이 마크 호프만(Mark Hoffman)과 함께 1984년 회사를 설립하여 80년대 중반부터 움직이기 시작한 클라이언트와 서버 환경 데이터베이스 관리 시스템을 제공함으로써 오라클의 경쟁자로 떠올랐고, 빌 게이츠의 마이크로 소프트한텐 엠에스에스큐엘서버를 공급했다. 그리고, 버전 4.9.2에서 마이크로소프트에 코드에 대한 라이선스를 부여하고 에스큐엘 서버 6.0을 출시했으며, 바로 다음 버전 기능이 향상되고 개선된 시스템 엑스(system x)로 확장했다.[1]

연혁

  • 1984년 : 사이베이스(Sybase) 설립
  • 1989년 : 5,600만 달러 매출 달성
  • 1995년 : 사이베이스 아이큐(Sybase IQ) 출시
  • 1998년 : 존 첸(John Chen) 회장 및 대표
  • 1998년 : 에스큐엘 애니웨어 6(SQL Anywhere 6) 출시, 데이터베이스에 자바(Java) 도입
  • 1999년 : 어댑티브 서버 엔터프라이즈(ASE) V12.0 출시
  • 2000년 : 자회사 아이애니웨어솔루션(iAnywhere Solutions) 설립
  • 2007년 : 사이베이스는 10억 달러의 매출을 달성한다.
  • 2008년 : 분석 서버 사이베이스 아이큐(Sybase IQ) 기네스 세계 기록 달성
  • 2009년 : 엠페이먼트(mPayment) 솔루션 제공 업체 페이박스(Paybox) 인수
  • 2012년 : 에스에이피(SAP)에 의해 인수합병, 존 첸 대표 사직
  • 2014년 : 사이베이스 서비스 종료

역사

사이베이스는 1984년에 설립되어 본격적으로 활동하기 시작했다. 클라이언트 및 서버 환경에서 최적의 데이터베이스 관리 시스템(DBMS)을 제공하여 오라클(Oracle)의 강력한 경쟁자로 떠올랐고, 빌 게이츠(Bill Gates)의 마이크로소프트(Microsoft)에 엠에스큐엘(MSQL) 서버를 공급했다. 이후, 5,600만 달러의 매출을 달성했으며, 컬럼 스토어 방식의 데이터베이스 관리 시스템(DBMS)인 사이베이스 아이큐(Sybase IQ)를 발표해 분석용 데이터베이스 관리 시스템 시장에서 강력한 우위를 점하게 된다. 1998년 11월에는 존 첸(John Chen)이 회장 및 대표를 역임했으며, 새로운 이름의 에스큐엘 애니웨어 6(SQL Anywhere 6)가 출시되었다. 또한, 어댑티브 서버 애니웨어(ASA)가 엔진으로 사용되어 에스큐엘 모듈러(SQL Modeler)가 포함된 에스큐엘 애니웨어 스튜디오(SQL Anywhere Studio)의 일부인 자바(Java)가 데이터베이스에 도입되었다. 2000년대에는 사이베이스의 주력 데이터베이스 제품인 어댑티브 서버 엔터프라이즈(ASE) V12.0이 출시되었고, 사이베이스는 존 첸 회장의 관리하에 수익성을 회복했으며, 자회사 아이애니웨어솔루션(iAnywhere Solutions)이 설립되었다. 사이베이스는 10억 달러의 매출 달성과 사이베이스 아이큐(Sybase IQ)분석 서버의 세계 최대 데이터웨어 하우스에 새로운 기네스 세계 기록을 수립하기도 했다. 또한, 사이베이스는 엠페이먼트(mPayment) 솔루션 제공 업체 페이박스(Paybox)를 인수했지만, 2010년 5월에는 에스에이피(SAP)가 사이베이스를 58억 달러에 인수하겠다고 발표했다. 결국, 2012년 10월에 모든 사이베이스 직원이 에스에이피의 인력에 통합되었다. 사이베이스를 15년간 이끌어온 사이베이스의 존 첸 대표는 사이베이스와 에스에이피의 통합되면서 사이베이스를 떠났고, 2014년에 사이베이스는 서비스를 종료했다.[1]

데이터베이스 관리 시스템

1970년에 IBM은 데이터베이스 질의를 위한 언어를 만들었으며, 구조적 영어 질의 언어(Structured English Query Language)라고 불렀다. 이것이 시간이 흘러 그 언어 자체를 가리키는 의미와 함께 이를 처리하는 데이터베이스 엔진을 가리키는 말로 변모했다. 에스큐엘(SQL) 서버는 원래 사이베이스에 의해서 만든 데이터베이스 관리 시스템이다. 이것을 마이크로소프트와 사이베이스가 협력하여 버전 1.0을 OS/2 용으로 이식을 했고, 버전 4.2부터 윈도우 NT 서버로 이식했다. 이후 4.21, 4.21a 등으로 버전 업이 되었다. 이때는 3.5인치 디스켓 너 댓 장이 에스큐엘 서버 제품의 전부였으며, 지금이면 상상할 수 없는 매우 작은 크기의 데이터베이스였다. 그러던 것이 버전 6.0부터는 마이크로소프트가 사이베이스로부터 모든 라이센스를 사고 마이크로소프트의 독자적으로 개발하게 되었다. 그 이면에는 많은 갈등이 있었음을 짐작할 수 있다. 또한, 시간이 흘러 96년에는 제법 사용할만한 6.5 버전이 출시되었다. 6.0과 6.5 사이에 상당한 변화가 있었으며, 1년 뒤부터 7.0 버전의 소식이 들려왔다. 그러나, 7.0 버전은 한동안 출시가 지연되었다. 내부적으로는 1997년 2월경에 출시될 것이라고 했다가 무기한 연기로 바뀌었으며, 1998년 12월에야 출시되었다. 에스큐엘 서버 7.0 버전이 늦게 출시된 이면에는, 많은 유능한 데이터베이스 전문가들이 마이크로소프트로 스카우트되었기 때문이라는 소문이 있다. 그로 인해 데이터베이스 엔진 자체가 완전히 바뀌는 일대 변혁이 일어났다.

엠에스에스큐엘 서버 4.2 이전 버전은 사이베이스의 데이터베이스 관리 시스템 엔진을 마이크로소프트와 사이베이스가 협력하여 윈도우 NT에 탑재한 것이며, 6.0과 6.5 버전은 마이크로소프트가 사이베이스로부터 관계형 데이터베이스 관리 시스템(RDBMS)에 대한 라이센스를 사서 독자적으로 개발한 제품이다. 에스큐엘 서버는 사이베이스와 여러 가지 측면에서 유사한 특성을 많이 가지고 있었으며, 유닉스 플랫폼에서 동작하는 사이베이스의 기능이나 장점들을 윈도우 NT 운영체제에 이식하는 과정에서 윈도우 NT 운영체제가 지원하지 못하는 부분의 기능은 제외되거나 변형되었다. 그로 인해 에스큐엘 서버 6.0과 6.5는 이전 버전보다는 월등히 기능이나 성능이 향상되었지만, 오라클과 디비투(DB2)는 경쟁의 상대로는 빈약한 관계형 데이터베이스 관리 시스템이었다.[2]

특징

사이베이스(sybase)는 클라이언트서버 용으로 설계되어 성능과 분산처리 지원이 탁월하고, 타 데이터베이스에 비하여 데이터베이스 관리 시스템을 운영하기 위하여 적은 하드웨어 자원만으로도 충분하다. 그리고 3rd 파티(party) 지원 도구의 지원이 우수하고, 오픈 서버(Oper Server)와 다중문서 인터페이스 게이트웨이(Multiple Document Interface Gateway)를 지원한다. 또 파워빌더(PowerBuilder)와의 결합 및 지원이 우수하고, 레플리케이션 서버(Replication Server) 특성이 우수하다. 마지막으로 레코드 트래킹(Record Traking)이 우수하다. 사이베이스 제품은 특히 상업, 산업 및 군사 통신 시스템에서 광범위한 응용 프로그램을 발견했다. 스페인 통신 사업자인 에어텔(Airtel)은 사이베이스 ASIQ (Adaptive Server IQ Multiplex)를 사용하여 비즈니스 정보를 표준화한다. 호주 통신 제공 업체인 텔스트라(Telstra)는 사이베이스 ASIQ 멀티플랙스(Multiplex)로 구동되는 데이터 시각화 소프트웨어를 사용하여 휴대폰을 최적화한다. 네트워크 관리 용량, 프리마크(Primark)는 사이베이스 엠큐시리즈 적분기(MQSeries Integrator)를 사용하여 트랜잭션 속도를 최대화하고 안정성을 최적화하며 입력 및 출력의 사용자 정의를 허용한다. 사이베이스는 엠큐시리즈 적분기를 사용하여 클라이언트의 요구 사항을 충족하고 클라이언트 위치에서 다양한 시스템 아키텍처를 수용하기 위해 새로운 데이터 형식을 추가 할 수 있다고 주장한다. 내장된 시스 베이스 에스큐엘 애니웨어는 군 지휘 본부와 현장 군인 간의 양방향 통신에 사용된다.[3]

사이베이스 어댑티브 서버 엔터프라이즈(ASE)는 에스에이피 애플리케이션과 넷웨이버(Netwaver) 제품에 최적화하며, 표준 에스에이피 도구(SAP tool)를 통해 애플리케이션과 데이터베이스를 통합 관리하여 가장 최적화된 데이터베이스를 만들고, 라이선스 및 지원 비용, 유지보수 지원 노력 등이 낮고 총소유비용(TCO) 예측이 가능하며, 데이터베이스를 위한 추가적인 지원 비용이 없어서 전체적인 애플리케이션 비용이 감소한다. 사이베이스 아이큐는 크게 3가지 특징이 있다. 먼저, 첫 번째 특징은 빅 데이터 설정인데 차세대 칼럼 저장 구조 개선을 통한 데이터 압축 성능과 질의 성능이 향상할 수 있는 페타바이트(Petabyte) 이상의 데이터 저장능력, 차세대 에프피(FP) 인덱스 대신 엔 비츠 에프피 인덱스(N-Bits FP Index)의 사용으로 향상된 데이터 압축 그리고 향상된 병렬 데이터 적재 기능도 한다. 데이터 적재 성능이 개선되면 자원 사용 시 병렬 처리가 강화되어 자원을 무제한으로 이용할 수 있고, 비트리 에이치지(B-tree HG) 인덱스 개선이 되면 백그라운드 인덱스 갱신 변경을 할 수 있다. 그리고 컬럼 저장 시 기존 바이트 데이터 대신 다양한 엔 비츠 데이터 저장 구조 방식을 채택한다. 작은 배치처리 방식(Small Batch Load) 성능이 향상되면 빈번한 테이블 업데이트를 모아 일정 주기마다 한 번에 테이블에 합병(Merge)하는 방식으로 빈번한 디스크를 방지하고 백그라운드로 합병을 수행하여 성능을 향상하고 온라인 트랜잭션 처리(OLTP) 성의 삽입을 하나로 모아 대량적재(Bulk Loading)으로 테이블에 적재한다. 또한, 대량적제 성능이 향상되면 서버에 존재하는 사용 가능한 CPU(central processing unit) 자원을 효율적으로 할당하여 로드 성능을 극적으로 향상시칸다. 기존에는 인덱스 타입에 따른 paetially 데이터 로딩으로 스레드 할당이 복잡하였으나 수평의 가득 찬 대량적재(Fully Parallel Bulk Load)로 효율적인 스레드 할당이 가능해진다.

두 번째 특징은 높은 식견인데 열별(Row by row) 동시 적재, 삽입, 변경, 삭제와 열 수준 버저닝(Row level versioning) 레코드 단위 처리와 기억 속 재사용발사체 보관소(RLV Store), 델타 보관소(Delta Store)를 통해 리얼타임 처리 강화를 한다. 리얼타임 처리 강화를 하기 위해서는 두 가지 처리가 있는데 칼럼 스토어와 로우 스토아이다. 칼럼 스토어는 디스크 기반이며 대용량 데이터 압축 저장을 하고 로우 스토어는 인 메모리 기반이며 데이터 삽입, 삭제, 변경, 적재를 동시 처리한다. 해시 파티션은 해시(Hash), 범위(Range), 복합 파티션 성능과 강력한 전문처리 프로그램(MPP, message processing program) 분산 병렬 질의 성능을 가지고 있는데 전문처리 프로그램과 해시 파티션을 복합시키면 대용량 데이터 처리 성능이 더 향상되고, 자원 할당 및 이동의 자원 가상화가 구현되고, 에스피엠(SPM)과 전문처리 프로그램 혼용으로 향산된 성능, 유휴 자원 적극 활용, 로드 밸런싱이 자동화가 된다. 또한, R하둡(Hadoop)과 같은 솔루션과 결합해 빅데이터 분석 강화를 할 수 있다. 마지막 특징은 앤터프라이즈 클래스인데 서버 장애 발생 시 트랜잭션 작업 보강을 통해 탄력적인 서버 및 네트워크 장애 대응을 할 수 있고 웹 기반 관리 도구 지원을 통해 용이하고 편리한 관리 도구를 이용할 수 있고 역할 기반 접근 권한 지원을 통해 향상된 보안을 느낄 수 있다. 경량 디렉터리 액세스 프로토콜(LDAP) 인증기능 지원을 하면 최소의 총소유비용으로 보안기능을 구축할 수 있고 패스워드 복잡도와 같은 정책을 사용하여 보안성도 더 향상시킬 수 있다.[4]

데이터베이스 서버

사이베이스 데이터베이스 서버는 데이터 서버와 백업 서버로 구성된다. 사이베이스 데이터베이스 서버에는 두 가지 프로세스가 있지만 오라클 인스턴스에는 다섯 개의 필수 프로세스가 있다. 시스템 모니터, 프로세스 모니터, 로그 작성기, 데이터베이스 작성기 및 체크 포인트이다. 선택적 아카이브 프로세스는 채워진 리두 로그를 아카이브 로그 위치에 기록한다. 오라클 리얼(Oracle Real)에서 RAC(Application Cluster), 다양한 아카이브 프로세스를 활용하여 아카이브 된 인스턴스로 복구가 필요한 경우 RAC 설정의 다른 인스턴스에서 사용할 수 있다. 추가 오라클 백그라운드 프로세스에는 작업 큐 프로세서, 작업 큐 컨트롤러, 매핑 라이브러리, 잠금 관리자 및 자동작업량저장소(AWR)용 수집기가 포함된다. 이 두 데이터베이스 간의 서버 아키텍처 차이점을 이해하는 것이 좋다. 그러나, 이런 차이는 마이그레이션(Migration) 프로젝트 및 예상치에 부정적인 영향을 미치지는 않는다. 주요 차이점은 사이베이스 데이터 엔진이 하나의 엔진 내에 여러 데이터베이스를 가질 수 있다는 것이다. 반면 오라클은 전체 데이터 엔진에 대해 하나의 데이터베이스를 가지고 있다. 또한, 오라클은 스키마의 개념을 가지고 있어서 사이베이스 데이터베이스는 오라클 스키마에 매핑된다.[5]

종류

사이베이스 아이큐

사이베이스 아이큐(Sybase IQ)는 DM(Data Mart) 및 DW(Data Warehousing)의 목적으로 개발되어 국내외에서 현재 가장 많이 사용되는 데이터베이스(Database) 중에 하나이다. 타제품에서 많이 적용되는 칼럼(Columnar)기반의 저장 구조 및 비트맵(bit-map) 압축 기술을 업계 최초로 적용하여 DW 구축 시 가장 큰 문제 중에 하나인 데이터 폭발 및 성능 저하 문제를 근본적으로 해결하여 업계에서 독보적인 위치를 확보하고 있다. 최근 인메모리 기능 및 빅데이터 분석 기능이 강화된 아이큐 버전 16를 출시하였다. 사이베이스 아이큐 서버는 윈도우(windows), 리눅스(linux), 유닉스(unix) 등, 모든 시스템에서 운용이 가능하다.[6]

어댑티브 서버 엔터프라이즈

사이베이스 어댑티브 서버 엔터프라이즈(ASE)는 30여 년 전에 미국 사이베이스에서 기업의 가장 중요한 미션 크리티컬 업무 데이터를 효율적으로 관리하기 위하여 개발된 온라인 기반의 관계형 데이터베이스 관리 시스템으로 2012년 세계 최대 ERP(European Recovery Program) 회사인 독일의 에스에이피사로 인수되었고, 현재에는 에스에이피 사이베이스 어댑티브 서버 엔터프라이즈 브랜드로 판매되고 있다. 사이베이스 어댑티브 서버 엔터프라이즈는 관계형 데이터베이스 관리 시스템(RDBMS) 업계 최초로 Stored Procedure(SP), 트리거(Trigger) 그리고 분산 데이터베이스 환경에서의 이 단계 커밋(TWO-PHASE COMMIT) 개념을 최초로 적용한 관계형 데이터베이스 관리 시스템으로 유명하며, 현재 마이에스큐엘 서버(MSSQL Server)도 사이베이스 어댑티브 서버 엔터프라이즈를 소스를 기반으로 개발되었다. 사이베이스 어댑티브 서버 엔터프라이즈 역시 윈도우(windows), 리눅스(linux), 유닉스(unix) 등, 모든 시스템에서 운용이 가능하고 최적화된 클라이언트 및 서버 및 분산환경의 구조이며, 데이터베이스(Database) 구조는 업무 성격 및 사용 목적에 따라 복수의 사용자 데이터베이스(Database)의 구성이 가능하다. 사이베이스 어댑티브 서버 엔터프라이즈 버전 1에서 시작되어 최근에는 대용량 데이터베이스와 높은 트랜잭션 볼륨에 대응하는 에스에이피 어댑티브 서버 엔터프라이즈 버전 16을 출시했다. 타 데이터베이스 관리 시스템에 비해 비용대비 효율이 뛰어나고 온라인 처리 성능이 매우 뛰어난 것으로 평가받고 있다.[7]

어댑티브 서버 애니웨어

사이베이스 어댑티브 서버 애니웨어(ASA)는 사이베이스에서 개발한 관계형 데이터베이스 관리 시스템으로 다중 사용자 클라이언트, 서버 환경에서 독립형 또는 네트워크 서버로 사용된다. 특히 데스크톱, 작업 그룹 또는 모바일 환경을 위한 작은 풋 프린트(평균 데이터베이스 관리 시스템보다 적은 메모리 및 디스크 리소스 사용)와 광범위한 확장성을 갖도록 설계되었다. 어느 서버에 적응할 수 있는 사이베이스는 왓컴국제기업(Watcom International Corporation)에서 제조한 에스큐엘 데이터베이스 서버 제품인 왓컴에스큐엘로 시작되었다. 원래 1992년에 마이크로소프트 DOS(disk operating system) 및 큐엔 엑스(QNX)용으로 만들어졌다. 왓컴국제기업은 캐나다 온타리오주 워털루에 있는 워털루 대학의 컴퓨터 시스템 그룹의 연구에 따라 1981년에 설립되었다. 왓컴은 1988년에 도입된 잘 알려진 왓컴C 컴파일러를 포함하여 다양한 도구를 생산했다. 1994년에 왓컴은 파워 소프트(Powersoft)에 인수되었다. 1995년에 파워소프트는 사이베이스와 합병되었고 최신 버전의 왓컴 에스큐엘 5.0은 사이베이스 에스큐엘 애니웨어로 이름이 변경되었다. 1999 년 사이베이스는 모바일, 데스크톱 및 작업 그룹 사용을 위한 완전한 관계 데이터베이스 관리 시스템 인 에스큐엘 애니웨어 스튜디오 버전 6.0을 생산했다. 여기에는 어댑티브 서버 애니웨어(Adaptive Server Anywhere) 관계 데이터베이스 관리 시스템이 포함되었으며, 데이터베이스 설계 및 관리, 데이터베이스 보고서 및 양식 생성, 웹에서 데이터베이스 사용, 모바일 사용자에게 데이터베이스 복제를 위한 도구 세트가 추가되었다.

2000년 5월 사이베이스는 모바일 및 임베디드 컴퓨팅 사업부를 왓컴국제기업을 기반으로 설립된 자체 회사인 아이애니웨어솔루션(iAnywhere Solutions)으로 전환했다. 그 이후로 이 부서는 에스큐엘 애니웨어 스튜디오(SQL Anywhere Studio)의 지속적인 개발에 참여했다. 어댑티브 서버 애니웨어는 도스(DOS), 팜오에스(PalmOS), 윈도우(Windows), 유닉스(UNIX) 및 노벨 넷웨어(Novell NetWare)를 포함한 거의 모든 컴퓨팅 하드웨어에서 실행된다. 경량 버전은 휴대폰과 같은 장비에 사용된다. 에이에스에이는 트랜스 액트 에스큐엘(Transact-SQL) 및 왓컴에스큐엘(Watcom SQL) (ANSI 표준 SQL-92 전환)의 두 가지 표준을 지원한다. 트랜스 액트 에스큐엘(Transact-SQL)은 산업용 관계형 데이터베이스 관리 시스템 사이베이스 어댑티브 서버 앤터프라이즈(Sybase Adaptive Server Enterprise)의 에스큐엘 언어와 호환되므로 확장 성과 생산성 잠재력이 더 뛰어난다. 기존 소프트웨어를 수정하지 않고도 높은 수준의 플랫폼으로 마이그레이션 할 수 있다.[8]

파티션

  • 대용량 테이블을 파티셔닝(partitioning) : 하나의 테이블을 여러 개의 세그먼트로 나눈다는 의미이다. 즉, 하나의 테이블이나 인덱스가 동일한 논리적 속성을 가진 여러 개의 단위(partition)로 나누어져 저장하는 되는 것을 뜻한다. 특히, 관리해야 할 데이터가 늘어나면 성능과 운영의 관점에서 여러 가지 부작용을 만들 수 있는데 이를 해결할 수 있는 효율적인 방법 가운데 하나가 파티셔닝이다. 파티셔닝은 데이터 접근 시 범위를 줄여 성능을 향상 시키고, 물리적으로 여러 영역으로 파티셔닝해 전체 데이터의 훼손 가능성이 줄어들고 데이터 가용성이 향상되고 각 파티션 별로 유지보수 작업을 할 수 있고 마지막으로 테이블의 파티션 단위로 디스크를 분산해 부하를 줄일 수 있는 장점을 갖고 있다.[9]
  • 범위 파티션(Range Partition) : 어떤 특정 칼럼의 정렬 값을 기준으로 분할하는 것이다. 주로 순차적인(historical) 데이터를 관리하는 테이블에 많이 사용된다. 예를 들어, 몇 년 동안의 데이터를 테이블에 유지해야 하지만 실제로는 최근 수개월 혹은 수년의 데이터 접근이 일반적이라면 범위 파티션을 고려해 볼 필요가 있다. 위의 경우 이를 년도 별, 월별로 파티셔닝 하여 관리한다면 전체 데이터베이스의 성능을 향상시킬 수 있다. 범위 파티션은 특정키 값을 기준으로 순차적으로 나열 할 수 있는 대량의 데이터를 저장 할 테이블이나 수개월 혹은 수년간의 히스토리 데이터를 저장할 테이블 및 시계 열분석이 필요한 데이터를 저장 할 테이블일 때 사용한다.[9]
  • 해시 파티션(Hash Partition) : 특정 칼럼값에 해시 함수를 적용해 분할하는 방식으로, 데이터의 관리보다는 성능 향상에 초점을 맞춘 파티션 기법이다. 레인지 파티셔닝은 각 범위에 따라 데이터양이 달라 분포도가 일정치 않은 단점이 있는데, 해시 파티셔닝은 이런 단점을 보완해 일정한 분포를 가진 파티션으로 나누고, 균등한 분포도를 가질 수 있도록 한다. 실제로 분포도를 정의하기 어려운 테이블을 파티션할 때 많이 이용하고 2 의 배수 개수로 파티셔닝 하는 것이 일반적이다. 범위 파티션과는 달리 각 파티션에 지정된 값들을 데이터베이스 관리 시스템(DBMS)이 결정하므로 각 파티션에 어떤 값들이 들어 있는지 알 수 없다. 해시 파티션은 빠른 성능이 필요로 하는 테이블, 응용프로그램에서 자주 오더링(ordering) 또는 그루핑(grouping) 되는 칼럼이 특별한 순차가 정해져 있지 않은 큰 테이블이나 각 파티션 별로 데이터를 고르게 분산할 때 데이터 일그러짐이 발생하지 않는 키 값을 가진 데이터가 있을 때 사용한다.[9]
  • 리스트 파티션(List Partition) : 특정 칼럼의 특정 값을 기준으로 파티션을 하는 방식이다. 각 파티션에 적어도 한 값이 적용되면서, 각 값은 한 파티션에 속해야 한다. 만약 삽입(insert) 시 그 값이 어느 파티션에도 속하지 않는다면, 삽입 되지 않는다. 한 파티션에서 값들의 순서는 없다. 리스트 파티션은 주로 이질적인(distinct) 값이 많이 않고 분포도가 비슷하며 다양한 에스큐엘에서 해당 칼럼의 조건이 많이 들어오는 경우나 중복이 많은 일정 키 값을 갖는 경우에 사용한다.[9]
  • 라운드로빈 파티션(Round Robin Partition) : 파티션과 관련해 어떤 정의나 키가 존재하지 않으며 어댑티브 서버 엔터프라이즈 엔진이 일정한 규칙에 의해서 자동으로 각 파티션에 데이터를 일정하게 분배하는 방식의 파티션을 이야기한다. 라운드로빈 파티션은 해시 파티션과 마찬가지로 데이터베이스 성능을 위한 것이다. 또한, 핫스팟(Hot spot) 방지를 위해서 삽입이 많은 테이블일 때 사용된다.[9]

백업 서버

전체 데이터베이스 백업

데이터베이스 백업은 데이터베이스 전체의 백업을 만든다. 모든 데이터베이스를 백업하지만, 그 의미는 데이터가 들어 있는 부분만 백업한다는 것을 의미한다. 백업 안에는 데이터 페이지 부분과 트랜잭션 로그 페이지 부분을 포함한다. 데이터베이스 백업은 데이터베이스를 재생성할 때 사용한다. 만약, 데이터베이스 백업이 있다면 데이터베이스가 깨지기 직전의 마지막 데이터베이스 백업을 가지고 복구를 실행할 수 있다.[10]

트랜잭션 로그 백업

어댑티브 서버 엔터프라이즈는 각 데이터베이스별로 트랜잭션 로그를 가지고 있다. 트랜잭션 로그는 백업을 하거나 잘라낼(truncate) 때까지 차오른다. 기본적으로 어댑티브 서버 엔터프라이즈는 트랜잭션 로그의 스페이스가 허용하는 한 계속차 오른다. 트랜잭션 로그가 가득 찰 경우 트랜잭션 로그 백업이나 자르는 작업이 일어나기 전까지 더 이상 데이터 수정이 일어나지 못하도록 막고 에러 메시지를 뿌린다. 물론 다른 데이터베이스에는 영향을 주지 않는다.[10]

백업 관련 기능

그 외 백업 관련 기능으로는 데이터 복구 시 페이지 단위로 결함 된 부분을 고립 시킴으로 서 데이터 베이스 가용성을 증가 시켜주는 복구 불가 고립(Recovery Fault Isolation), 사용자의 실수 혹은 장애 발생으로 손실을 입은 데이터를 특정 시간에 시점까지 복구하고자 할 경우에 사용할 수 있는 시점 복구(Point-in-Time Recovery), 데이터베이스의 변경을 일시적으로 막고자 할 경우에 사용할 수 있는 명령인 정지된 데이터베이스(Quiesce Database) 등이 있다. 또한, 압축된 백업(Compressed Backup)은 백업 이미지를 작게 하고자 할 경우에 압축 옵션을 지정하여 백업을 수행할 수 있는데 최대 6배 압축하며, 복구 레벨 객체(Object Level Recovery)는 사용자의 실수나 데이터베이스 부패에 의해서 손상된 특정 테이블에 대해서 덤프 이미지를 이용한 복구 기능이다.[10]

관련 용어

  • 멀티플렉스(Multiplex) : 다음을 통해 애플리케이션 확장성을 제공하는 사이베이스 아이큐의 강력한 기능이자 클러스터 된 서버 구성이다. 사이베이스 아이큐 멀티플렉스는 동시 데이터로드 및 공유 데이터 소스에 연결된 독립적인 데이터 처리 노드를 통한 쿼리가 있고, 멀티플렉스 서버에는 자체 카탈로그 저장소와 아이큐 임시 저장소가 있다.[11]
  • 구성 요소 통합 서비스(CIS) : 사이베이스 아이큐 사용자에게 관계형 또는 비관계형 데이터베이스에 대해 직접 엑세스할 수 있는 메인 프레임, 유닉스(Unix) 또는 윈도우(Windows) 서버를 제공한다.[11]
  • 프록시 테이블(Proxy table) : 원격 서버의 테이블에 매핑되는 테이블 개체이다. 프록시 테이블을 사용하여 여러 에스큐엘 애니웨어(SQL Anywhere)서버, ASE(amplified spontaneous emission)에서 데이터를 검색 할 수 있다. 프록시 테이블을 만들 수도 있다.[11]
  • 아이큐 트랜잭션 로그(IQ transaction log) : 데이터베이스에 대한 변경 사항을 기록한다. 그만큼 트랜잭션 로그에는 버전 정보, 여유 공간 및 기타 정보가 포함된다. 그리고 시스템 장애에서 복구하는데에도 사용한다. 기본적으로 트랜잭션 로그는 동일한 위치에 생성된다.[11]
  • 아이큐 임시 저장소(IQ temporary store) : 임시 저장소를 지정하는 각 아이큐 데이터베이스의 일부이다. 데이터베이스 서버는 임시 데이터 구조를 사용하여 데이터를 정렬하고 처리한다. 이들의 데이터 테이블은 데이터베이스에 연결되어있는 동안에만 유지된다.[11]
  • 개체(Object) : 사용자가 만든 테이블, 인덱스 또는 조인 인덱스이다. 사용자 연결 해제 및 서버를 통해 데이터베이스에 남아있는 영구 개체로 재시작 및 임시 개체가 분할 된다. 현재 세션. 영구 테이블은 기본 테이블이라고도 한다.[11]
  • 논리적 데이터베이스 독립(Logical Database Independence) : 데이터베이스의 환경이나 업무의 변화가 발생하였을 때 데이터 사전만을 변경시켜 어플리케이션의 변경 없이 시스템을 그대로 사용할 수 있도록 하는 용이성을 말한다.[12]
  • (NULL) : 모르는 값 또는 적용할 수 없는 값을 의미한다.[12]
  •  개념적 설계(Conceptual Design) : 다른 사람과 통신하기 위하여 현실 세계에 대한 인식을 추상적 개념으로 표현하는 일반화 과정이다.[12]
  • 에스큐엘(SQL, Structured Query Language) : 표준 관계형 데이터베이스 언어이며, 관계 대수와 관계 해석을 기초로 한 혼합 데이터 언어이다.[12]

명령어

아이에스큐엘 접속

사이베이스는 오라클의 에스큐엘 플러스와 같은 기능을 하는 프로그램이 아이 에스큐엘이다. 아이 에스큐엘을 이용하여 사이베이스 테이터베이스 서버(Sybase Database Server)의 상태를 모니터링하고 쿼리를 수행할 수 있으며 서버 파라미터를 수정할 수도 있다. 아이에스 큐엘에 접속하는 방법은 간단하다. isql -U[username] -P[password]로 접속이 가능하다. 서버의 파라미터를 변경하기 위해서는 sa권한으로 접속을 할 수 있어야 한다.

 # su - sybase
 $ isql -Usa -Pdba
사용자 연결 사용 개수 확인

사용하고 있는 사용자 연결의 개수를 확인하기 위해서 아이에스큐엘에서 다음과 같이 입력해 준다. Num_free는 남아있는 사용자 연결 수이고, Num_active는 사용중인 사용자 연결 수, Max_Used는 사이베이스가 기동된 이후 가장 많이 사용한 사용자 연결 수 이다.

 1> sp_monitorconfig "number of user connections"
 2> go
 Usage information at date and time: Dec 13 2007 10:41AM.

 Name                      Num_free    Num_active  Pct_act Max_Used         Num_Reuse  
 ------------------------- ----------- ----------- ------- -----------      -----------
 number of user connection         183         217  54.25          237                0
설정되어 있는 사용자 연결 개수 확인

설정되어 있는 사용자 연결 개수를 확인하기 위해서는 다음과 같이 입력해 준다. Default는 기본 값 이고, Memory Used는 사용자 연결이 사용하는 메모리 사용률이고, Config Value는 설정된 값, Run Value는 사용할 수 있는 값 이다. 4. User Connection 개수 설정 User Connection 개수는 다음과 같이 설정한다.

 1> sp_configure "number of user connections"
 2> go
 Parameter Name                 Default     Memory Used Config Value         Run Value   Unit                 Type       
 ------------------------------ ----------- ----------- ------------         ----------- -------------------- ----------
 number of user connections              25       94119         400                  400 number               dynamic
문자열함수
 ------------------------------------------------------------------------------
    함 수 이 름                        예   제              설   명
 ------------------------------------------------------------------------------
    upper(칼럼명)                 Upper("aa'")=AA        대문자로 바꾸기
    Lower(칼럼명)                 Lower("AA")=aa         소문자로 바꾸기
    Convert(변경될타입,칼럼명)    Convert(char(4),price) 타입을 변경
    Substring(문자,시작,길이)     Substring("abc",2,1)=b 문자열 잘라내기 
    Right(문자,길이)              Right("abc",2)=ab      왼쪽에서 잘라내기
    Charindex(찾는문자,문자)      Charindex("b","abc")=2 특정문자위치 찾기
    ascii(글자)                   ascii("T")=84          아스키값구하기
    Char(숫자)                    Char(84)=T             아스키값으로 문자구하기
    Ltrim(문자)                   Ltrim("   abc")=abc    왼쪽의 공백제거하기
    Str(숫자,길이,소수점이하자리) Str(45.26, 1)="45.3"   실수를 문자열로변환하기
    Soundex(문자)                 Soundex("green")
 ------------------------------------------------------------------------------
날짜 함수
 --------------------------------------------------------------------------------------
   함 수 이 름                         예   제                    설   명
 --------------------------------------------------------------------------------------
    Convert(변경될타입,날짜,타입)  Convert(char(10),date,111)   날짜를 다른 타입으로 변경
    Getdate()                                                   오늘날짜구하기
    Datename(날짜타입,날짜)        Datename(mm,getdate())       해당 날짜의 이름값
    Datepart(날짜타입,날짜)        Datepart(mm,getdate())       해당 날짜의 숫자값
    Dateadd(날짜타입,간격,날짜)    Dateadd(dd,3,getdate())      날짜에 간격만큼 더하기
    Datediff(날짜타입,날짜1,날짜2) Datediff(dd,date,getdate())  날짜1,2의 간격
 --------------------------------------------------------------------------------------
숫자 함수
 ------------------------------------------------------------------------------
  함 수 이 름                    예   제              설   명
 ------------------------------------------------------------------------------
    Abs(숫자)                 Abs(-99)=99           절대값
    Ceiling(숫자)             Ceiling(123.5)=124    정수로 반올림
    floor(숫자)               Floor(123.5)=123      정수로 자름
    round(숫자,소수점자리수)  Round(2.460,2)=2.460  소수점 자리수 표시
    exp(실수)                 Exp(0)=1
    rand(정수)                Rand(39)=.49234563..  랜덤함수
    log(실수)                 Log(1)=0              로그
    pi()                      Pi()=3.141592…        파이
    Power(숫자,몇승인지)      Power(10,3)=1000      제곱승구하기
    Sqrt(숫자)                Sqrt(100)=10          제곱근구하기
    Sin,cos,tan               Cos(0)=1              사인,코사인,탄젠트구하기
 ------------------------------------------------------------------------------
기타 함수
 ------------------------------------------------------------------------------
  함 수 이 름                 예   제               설   명
 ------------------------------------------------------------------------------
    Count(칼럼/*)           Count(*)             레코드의 개수
    Max Max(price)          최대값
    Min Min(price)          최소값
    Sum Sum(price)          합계
    Avg Avg(price)          평균
    Isnull(칼럼명,변환할값) Isnull(price,$0.00)  널일경우 값지정하기
    Suser_name()                                 지금 현재 접속한 유저명
 ------------------------------------------------------------------------------

문제점

수십 년 동안, 사이베이스 및 관련 제품은 인기 있는 관계형 기업 데이터베이스 관리 시스템이다. 사용자들은 빠른 트랜잭션 처리, 높은 가용성, 비즈니스 연속성과 데이터 보안 기능, 배포 옵션, 및 낮은 총 소유 비용(TCO)의 가치를 인정한다. 그러나, 주로 하나(HANA)와 에스에이피의 전반적인 클라우드 전략으로 인해, 사이베이스에 대한 에스에이피의 투자 속도가 떨어졌다. 에스에이피는 2014년에 16.0 배포 이후, 사이베이스가 미래 지향적인 제품 로드맵의 주요 구성 요소라는 것을 보여주는 행동을 거의 하지 않았다. 이 주장을 뒷바침 해줄 5가지 이유가 있다. 첫 번째, 에스에이피가 어댑티브 서버 엔터프라이즈의 주요 유지보수 종료(EoMM)를 선언했다. 2018년 11월 29일에, 에스에이피는 노트 1922006- "EoMM Dates for Adaptive Server Enterprise 15.0.3, 15.5, 15.7, 및 16.0– 에스에이피 ASE”를 발간했다. 여기에 SE 15.7의 유지보수는 2020년 12월 31일에 종료했으며, 어댑티브 서버 엔터프라이즈 16.0의 경우에는 2025년 까지라고 명시되어 있다. 이 노트는 지원 자체의 종료가 아니라, 유지보수 종료를 모든 패치와 개선 사항의 종료로 정의한다. 두 번째, 에스에이피는 고객에게 제공할 실질적인 사이베이스 혁신이 없다. 사이베이스의 주요 배포(16.0)가 이루어진 지는 5년이 넘었다. 6월에 에스에이피는 에스에이피 어댑티브 서버 엔터프라이즈 및 에스에이피 레플리케이션 서버(SAP Replication Server)에 대한 로드맵을 조용히 배포했으며, 로드맵이 없어진 지는 반 년 후이다. 사이베이스 제품에 대해 계획된 새로운 혁신도 보여 주지 못했고, 단지 기존 기능에 대한 점증적인 개선뿐이었다. 대신에, 에스에이피는 고객에게 사이베이스를 떠나서 하나, 클라우드, 모두 마이그레이션 하는 것에 대해 이야기하면서 디지털 변환을 안내하는 도구로 에스에이피 변환 방향성(SAP Transformation Navigator)을 추진했다. 세 번째, 에스에이피는 개발자와 지원 직원을 감원하고 있다. 에스에이피가 구조조정을 통해 약 4,400명의 직원, 캘리포니아 거주 중인 직원을 거의 450명을 감원했다는 것은 공공연한 사실이다.

분석가와 해설가들은 이것이 에스에이피의 클라우드 전략과 연결되어 있음을 언급했다. 그 이유는 선택된 많은 전략이 고급 하나 데이터베이스 개발과 ABAP(Advanced Business Application Programming) 프로그래밍 언어와 관련되어 있었다. 공개적으로 알려져 있지 않은 사실은 감원된 인력 중 많은 수가 사이베이스 관련 역할을 맡고 있었다. 사용자가 선호하는 사이베이스 전문가에게 연락하는 데 문제가 있었다면, 감원되었을 가능성이 있다. 네 번째, 에스에이피는 시장에서 사이베이스를 홍보하지 않고 있다. 전략적 책임감을 가지고 있는지를 나타내는 주요 지표는 기업이 제품 라인에 투자하는 리소스와 마케팅의 양이다. 2018년에 워싱턴디씨에서 한 번의 콘퍼런스를 개최한 것 외에는 사이베이스 및 어댑티브 서버 엔터프라이즈 제품을 홍보하거나 지속하려는 노력을 했다는 증거가 없다. '2019 SAPPHIRE NOW'에서도 어댑티브 서버 엔터프라이즈에 대한 연설은 없었으며, 가을 테크에드(TechEd)프로그램에도 계획된 것이 없었다. 에스에이피 블로그 사이트를 검색하면, 1년 이상 아무도 자료를 작성한 기록이 없다. 새로운 동영상, 웹캐스트, 논문도 없어 '무선 침묵'이라고 불린다. 마지막으로, 사이베이스 논의에 대한 대중의 관심이 줄었다. 기존의 진행 중인 사이베이스 개발이 수천 건 있음에도 불구하고, 깊이 있게 구글 검색을 해도 1년 이상 사이베이스에 대한 새로운 활동은 없었다. 국제 사이베이스 사용자 그룹(ISUG-TECH) 및 아메리카 에스에이피 사용자 그룹(ASUG)과 같은 더 큰 규모의 커뮤니티 역시 활동이 없었다.[13]

사례

  • 하나손해보험(Hana Insurance) : 하나금융그룹(Hana Financial Group)의 자회사로 지금은 더 케이 손해보험에서 하나손해보험으로 사명을 변경했다. 더 케이 손해보험은 금융기관의 특성상 반드시 갖추어야 하는 센터 구축과 24*365 체제에 대한 대비 그리고 보험 업무량 증가로 인한 시스템 용량 및 성능 개선을 위해 어댑티브 서버 엔터프라이즈(ASE)와 어댑티브 서버 엔터프라이즈 클러스터 에디션(ASE CE)과 복제서버(RS)를 도입했다. 이후, 타사 대비 확실한 총소유비용(TCO) 절감효과가 있고 메인 서버에 어댑티브 서버 엔터프라이즈 클러스터 에디션을 활용하여 영업 현업이 무중단 서비스 요구에 충분한 대응 체계마련과 합리적인 우지보수비용, 상대적으로 저렴한 도입 비용과 적극적이고 충분한 기술 및 교육을 지원하는 효과를 보았다.[4]
  • 삼성화재(Samsung Fire & Marine Insurance) : 삼성의 금융 계열사로 대한민국의 손해보험사이다. 개인연금, 퇴직연금 등 다양한 금융 상품을 판매하고 있고, 자본시장과 금융투자업에 관한 법률에서 허용하는 사업도 하고 있다. 삼성화재는 기존 서비스 성능 저하 및 유지 비용 증가와 생산성 및 효율성 저하 등으로 인해 에스에이피 사업 객체(SAP Business Objects) BI, 2012.2 시스템 오픈(System open) 등을 도입 하였고, 도입 후 다양한 분석 마트 통합, 요구 대응, 동시 작업 처리 능력 등의 효과를 보았다.[4]

각주

  1. 1.0 1.1 데이터넷,〈DBMS의 탄생과 발전, 그리고 역사〉, 《데이터넷 뉴스》, 2017-09-06
  2. SQL서버역사〉, 《개인 사이트》
  3. 마가렛 라 우즈,〈Sybase〉, 《와티스》
  4. 4.0 4.1 4.2 SAP Sybase IQ 16 Product Overview〉, 《에스에이피》
  5. Tom Laszewski , Prakash Nauduri,〈Sybase Database〉, 《사이언스다이렉트》, 2012
  6. SAP Sybase IQ〉, 《데이터워크》
  7. SAP Sybase ASE〉, 《데이터워크》
  8. Ispirer SQLWays Database Migration Software〉, 《아이스피어》
  9. 9.0 9.1 9.2 9.3 9.4 한상욱, 〈ASE Programming Guide for Oracle programmers〉, 《사이베이스》, 2006-08-22
  10. 10.0 10.1 10.2 Sybase Presales, 〈Oracle to Sybase ASE Migration Guide〉, 《사이베이스》, 2004-01-14
  11. 11.0 11.1 11.2 11.3 11.4 11.5 Sybase, 〈Introduction to Sybase IQ Sybase IQ 15.3〉, 《에스에이피》, 2011-05
  12. 12.0 12.1 12.2 12.3 쌀식, 〈DB스터디〉, 《티스토리》, 2013-01-29
  13. Larry Goldman, 〈SAP ASE / Sybase의 미래는?〉, 《스핀네이커 서포트》, 2019-07-25

참고자료

같이 보기


  검수요청.png검수요청.png 이 사이베이스 문서는 데이터에 관한 글로서 검토가 필요합니다. 위키 문서는 누구든지 자유롭게 편집할 수 있습니다. [편집]을 눌러 문서 내용을 검토·수정해 주세요.