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

인터베이스

위키원
jh8983 (토론 | 기여)님의 2020년 8월 21일 (금) 11:16 판
이동: 둘러보기, 검색
인터베이스(InterBase)
인터베이스(InterBase)

인터베이스(InterBase)는 미국 엠바카데로 테크놀로지스(Embarcadero Technologies)가 관리하는 관계형 데이터베이스 관리 시스템(RDBMS)이다. 용량이 40MB로 매우 작고 관리자가 거의 필요 없는 편리한 관계형 데이터베이스 관리 시스템(RDBMS)이다. 리눅스(Linux), 윈도우(Windows), 안드로이드(Android), 아이오에스(iOS) 등 다양한 환경에서 작동한다. 인터베이스(InterBase)를 기반으로 오픈소스 무료 데이터베이스 관리 시스템(DBMS)인 파이어버드(Firebird)가 만들어졌다.

개요

인터베이스는 소프트웨어 개발자를 위한 완전한 기능을 갖춘 고성능 및 확장 가능한 관계형 데이터베이스다. 1984년, 짐 스타키(Jim Starkey)가 다세대 아키텍처를 활용한 RDBMS로 개발했다. 1991년 인터베이스는 볼랜드사에 인수되었고 2000년에 파이어버드라고 불리는 오픈 소스 DBMS가 인터베이스로부터 만들어졌다. 2008년에 인터베이스는 다른 개발 도구들과 함께 엠바카데로 테크놀로지스사에 의해 구매되었다.[1]

역사

그로튼 데이터베이스 시스템즈(Groton Database Systems)로 알려진 인터베이스 소프트웨어는 앤 해리슨의 예비실에서 탄생했다. 짐 스타키는 DATATRIEVE 4세대 언어 4GL 제품에 대해 DEC에서 일하고 있었는데, 많은 사용자의 동시 변경을 관리하는 시스템에 대한 아이디어를 생각해 냈다. 그 아이디어는 당시 개발되고 있던 새로운 관계형 데이터베이스 시스템에 심각한 문제가 되고 있던 기존의 잠금 문제를 극적으로 단순화시켰다. 그러나 스타키는 자신의 원래 관계형 데이터베이스 프로젝트를 다른 그룹으로 돌리고 영역 전쟁이 끝난 후 이 아이디어를 얻었다. 스타키는 RDB/ELN 제품의 첫 번째 버전을 출하한 후 회사를 떠났다. 비록 인터베이스의 구현은 당시 존재했던 다른 어떤 데이터베이스보다 리드가 MIT 논문에서 기술한 시스템과 훨씬 유사하지만 스타키는 미국의 컴퓨터 주식회사에서 그리고 후에 DEC에서 그의 이전 직책으로부터 번스타인을 알고 있었지만, 스타키는 다단계 동시성에 대한 생각에 도달했다고 진술했다.독립적으로 운영하다 같은 논평에서 스타키는 '다세대 동시성 제어에 대한 영감은 페이지 레벨 스냅샷을 지원하는 프라임이 수행한 데이터베이스 시스템이었다. 이 기능의 의도는 독자에게 작성자를 차단하지 않고 데이터베이스를 일관성 있게 볼 수 있도록 하는 것이었다. 그 아이디어는 데이터베이스 시스템의 매우 유용한 특징으로 나를 흥미롭게 했다'고 말했다. 짐 스타키는 지역 워크스테이션 벤더인 아폴로 컴퓨터가 유닉스 기계에서 데이터베이스 오퍼링을 찾고 있다는 소식을 듣고 개발 자금을 지원하기로 합의했다. 그들의 격려로 짐 스타키는 1984년 노동절에 그로튼 데이터베이스 시스템즈(DateBase Systems)를 결성하고 결국 인터베이스로 출시될 것에 대한 작업을 시작했다.[2]

특징

인터베이스는 저비용 제로 관리 경량 멀티 디바이스 데이터베이스로 안드로이드, iOS, 윈도우, OS X, 리눅스, 솔라리스(Solaris)의 애플리케이션에 내장할 수 있다. 인터베이스는 강력한 보안, 재해 복구, 저널링 및 널리 사용되는 데이터베이스 드라이버를 지원하여 구축 유연성을 향상했다. 인터베이스는 ISV, OEM 및 VAR에 적합하며, 메모리와 디스크 크기는 작지만, 비즈니스 크리티컬 애플리케이션을 지원하는 정교한 기능을 손상하지 않는 데이터베이스가 필요하다. 비용이 많이 드는 지원과 유지보수가 필요한 많은 데이터베이스와 달리, 인터베이스는 관리가 필요하지 않다. 간단한 설치와 작은 설치 공간을 통해 인터베이스는 애플리케이션에 내장할 수 있는 데이터베이스로 만들어졌다. IBLite는 독립 실행형 환경에서 실행되는 안드로이드 및 iOS를 위해 자유롭게 배포할 수 있고 내장 가능한 데이터베이스로, 인터베이스 엔진을 직접 활용하는 앱을 배포할 수 있다. IBLite는 Delphi XE7(Mobile 이상의 Professional)과 RAD Studio XE7(모든 에디션)과 독점적으로 이용할 수 있다. 인터베이스는 가장 빠른 네이티브 데이터베이스 중 하나이다. 내장된 대칭 다중 처리(SMP)를 사용하여 인터베이스는 오늘날의 멀티 코어 CPU와 멀티 CPU 시스템을 활용할 수 있다. 성능 향상 및 최적화는 데이터베이스 복원, 배치 업데이트 및 쿼리 등 여러 영역에서 추가되었다. 인터베이스는 트랜잭션 처리 및 의사결정 지원을 위해 높은 데이터 가용성을 제공하는 고유한 버전 관리 기능을 제공하는 다세대 아키텍처를 사용한다. 인터베이스는 자바(JAVA), C, C++, 를 포함한 모든 주요 개발 패러다임을 지원한다.넷, 델파이, PHP, 루비. C++Builder, RAD Studio, Delphi와 긴밀하게 통합되어 RAD 프로젝트를 어떤 플랫폼에든 배치하면 인터베이스가 자동으로 배치된다.[3]

기술

인터베이스는 시판된 최초의 AID 인증 데이터베이스 중 하나였으며, 이 파운데이션은 서버 충돌 후 매우 빠르게 복구되고 실행될 것임을 의미한다. 실제로 인터베이스는 어떤 시스템 재부팅에 따라 복구 시간이 중요한 전 세계적으로 탱크, 헬리콥터, 의료 장비에 배치되어 있다. 인터베이스는 또한 증분 백업, 저널, 시점 복구, 데이터베이스 섀도잉을 포함한 다양한 페일오버 기능을 제공한다. 이 외에도 여러가지 특징들이 존재한다.

보안

데이터베이스에 대한 사이버 공격과 데이터 손실은 비용이 많이 들고 고객의 신뢰(및 비즈니스), 규제 조치, 심지어 거액의 벌금까지 초래할 수 있다. 인터베이스는 무선 및 유휴 암호화, 별도의 보안 로그인 및 역할 기반 사용자 보안을 제공한다. 인터베이스 암호화는 완전한 온-디스크 암호화를 유지하면서 데이터베이스 속도와 성능에 오버헤드를 거의 추가하지 않는다.[4]

  • 교차 플랫폼 암호화
인터베이스는 서버와 클라이언트 간의 회선을 통한 암호화와 유휴 데이터(DES와 AES 256비트 암호화 모두)를 지원한다. 인터베이스 암호화는 크로스 플랫폼 단일 파일 형식의 일부로 내장되어 있다.
  • 별도의 보안 로그인
데이터 가시성은 개발자조차 중요한 데이터를 보고 검색하기 위해 암호화를 우회할 수 없도록 하는 컬럼 레벨 세분성을 갖춘 데이터베이스(SYSDSO)에 전문적으로 로그인함으로써 정의된다.
  • 위험 감소
내장된 세분화된 칼럼 레벨 암호화를 통해 요구사항 변경 및 데이터 계층(애플리케이션은 물론)이 데이터 가시성을 관리함에 따라 제품 리팩터링을 통해 데이터 침해 위험을 대폭 줄인다.
  • 역할 기반 사용자 보안
작업 역할(계정, 어카운트 매니저, 세일즈, HR 등)에 맞게 사용자 보안 역할을 정의하여 시스템 전체에서 데이터 및 데이터 변경 추적에 대한 액세스를 쉽게 추가하거나 제거할 수 있다.
  • 암호화된 백업
인터베이스는 암호화된 백업을 생성할 수 있도록 하는 백업별 암호화 키를 지원하며, 스케줄링을 통해 명령줄 백업을 실행해야 하는 이들의 요구에 부응한다.

가벼움

인터베이스는 작고 가벼운 설치 공간을 가진 가장 빠른 네이티브 데이터베이스 중 하나이다. 인터베이스는 고유한 버전 관리 접근 방식 및 고급 디스크 I/O 캐싱과 함께 오늘날의 멀티코어 CPU 및 멀티 CPU 시스템을 활용하여 데이터를 빠르게 검색하고 업데이트한다.[4]

  • 작은 용량
가장 작은 분포에서 인터베이스는 몇 메가바이트에 불과하다. 작은 디스크 설치 공간과 작은 메모리 요구 사항은 상업용 임베디드 데이터베이스 엔진을 필요로 하는 장치에 이상적이다.
  • 빠른 설치
인터베이스 서버는 서버 및 클라이언트 드라이버의 자동 설치를 허용하는 임베디드 설치 프로그램과 함께 몇 초 만에 완전히 설치된다. 인터베이스 ToGo에 관한 한, 설치가 필요 없다.
  • 빠른 데이터
인터베이스의 체인지 뷰(Change Views)는 데이터 이동량을 획기적으로 줄이고, 데이터 비용, 네트워크 트래픽, 서버 CPU 수요, 디스크 I/O를 줄임으로써 데이터 속도와 확장성을 향상시킨다.
  • 쓰기 자동 기록
저널링은 완전한 메모리 내 데이터베이스 시스템의 이점을 이용하여 디스크에 즉시 변경사항을 기록할 수 있는 보안을 제공한다.

재해복구

애플리케이션과 비즈니스는 데이터에서 실행되므로 데이터베이스 재해 복구가 매우 중요한 기능임 인터베이스는 실시간 백업, 증분 덤프, 다중 스레드 복원, 자동 쓰기 로깅 및 시점 복구를 통해 효과적인 재해 복구 계획을 지원한다. 데이터베이스는 명령 줄, 관리자 도구, 백업 API를 사용한 코드 또는 ODBC 드라이버 GUI를 통해 백업할 수 있다.[4]

  • 라이브 백업
인터베이스의 다중 제공 아키텍처는 사용자가 여전히 연결되어 있고 데이터베이스를 변경하는 동안 백업 스냅숏을 생성할 수 있도록 한다.
  • 고유 데이터 덤프
고유 데이터 덤프는 데이터베이스의 읽기 전용 복사본을 빠르게 생성한다. DR 시나리오에서 데이터베이스를 읽기/쓰기로 전환하는 것이 복원을 기다리는 것보다 빠르다. 처음 설치하면 데이터베이스의 전체 복사본이 생성되고 이후 실행은 기본 데이터베이스의 변경사항만 사용하여 복사본을 업데이트한다.
  • 빠른 복원
인터베이스는 데이터베이스와 인덱스를 최대한 빨리 복원할 수 있도록 여러 프로세서에 여러 스레드를 사용하여 복원한다.
  • 쓰기 자동 기록
인터베이스의 저널링은 완전한 메모리 내 데이터베이스 시스템의 이점을 이용하여 디스크에 즉시 변경 사항을 기록할 수 있는 보안을 제공한다.
  • 시점 복구
저널 아카이브를 사용하여 데이터베이스를 원하는 시점으로 신속하게 되돌릴 수 있다. 저널 아카이브는 백업이 실행되지 않았더라도 신속하게 복구할 수 있도록 장치에 저장할 수 있다.

복제

인터베이스의 변화, 뷰 개발 시간, 네트워크 운영 비용과 서버 CPU수요 기존 체인지-트래킹(change-tracking) 방법에 의존하는 다른 복제 방법과 관련된을 감소시킨다. 결과적으로, 개발 팀들 비용 절감, 시간 절약, 개선을 사용자 경험을 갖고 있다.[4]

  • 로그 없는 복제
인터베이스의 체인지 뷰는 로그 테이블 및 시간 스탬프 필드와 관련된 일반적인 확장성 문제를 제거한다.
  • 보안 데이터 변경 구독
장치에 권한이 부여되고 특정 테이블 또는 데이터 열에 가입되면 해당 가입에 대한 현장 수준에서 무엇이 변경되고 있는지 추적한다. 이 단순한 모델은 데이터 변경에 대한 액세스를 안전하게 관리하고 개발, 리팩터링, 빌드 및 테스트할 수 있는 코드를 적게 사용하여 쉽게 확장할 수 있다.
  • 시장에서 가장 안전한 변경 추적 기능
체인지 뷰는 무엇이 변경되었는지 쉽게 식별할 수 있을 뿐만 아니라, 누가 변경 사항을 추적할 수 있는지 제어하며, 다른 사람이 데이터 변경에 대해 추측하는 것을 방지한다.
  • 쉬운 데이터 델타 가져오기
체인지 뷰는 변경된 내용에 대한 현장 수준의 델타만 제공하므로 개발자는 데이터 이동 비용을 낮추면서 최종 사용자에게 상세 분석을 제공할 수 있다. 체인지 뷰 데이터는 동기화하기 전에 SQL을 통해 쿼리할 수 있으며, 이를 통해 데이터 청구서가 기습적으로 작성되지 않도록 보장할 수 있다.

신축성

인터베이스는 윈도우, 리눅스, 맥OS, 안드로이드 및 iOS에서 실행. 또한 인터베이스는 지원되는 모든 플랫폼에서 이기종 OS 연결을 지원한다.[4]

  • 교차 언어 지원
인터베이스는 자바, C, C++, 를 지원한다.NET, Delphi, PHP, Ruby와 긴밀하게 통합되며 RAD Studio IDE와 긴밀하게 통합된다. 비주얼 스튜디오 개발자는 ADO를 통해 인터베이스와 협력할 수 있다.NET 또는 ODBC 커넥터.
  • 서버 데이터 저장소
온라인 및 오프라인 애플리케이션 기능을 제공하는 서버와 클라이언트 모두의 상업용 데이터 스토리지. 설치된 서버에는 인터베이스 서버, Developer 및 Trial Edition이 적합하다.
  • 클라이언트 데이터 저장소
인터베이스 ToGo 및 IBLite 버전은 로컬 스토리지가 있는 독립 실행형 내장 데이터베이스로 사용할 수 있다. 로컬 스토리지는 네트워크 트래픽의 필요성을 줄여 비용을 절감하고 앱 속도와 사용자 경험을 개선한다.
  • 단일 On-Disk 형식
인터베이스의 단일 파일 형식을 통해 어디서나 애플리케이션을 배포할 수 있다. 유니파이드 온디스크 포맷을 통해 개발 머신에서 직접 신속하게 지원 및 테스트할 수 있다.

SQL 호환

인터베이스는 SQL 표준 호환 데이터베이스이다. 인터베이스는 SQL 산업 표준을 엄격히 준수한다. 유니코드를 지원하고 전 세계 어떤 문자 집합에도 이상적이며 다중 결합 유니코드, 실시간 이벤트 알림, 특허 출원 중인 체인지 뷰의 SQL 기반 변경 추적 기능을 제공한다. 체인지 뷰는 데이터베이스에 대한 변경사항만 식별하고 가져와 응용프로그램 속도를 높이고 네트워크 트래픽과 비용을 절감한다. 생성기를 사용하면 일반적으로 기본 키에 사용되는 일련번호를 가져올 수 있다. 인터베이스는 중복 키를 할당하지 않는다. 생성기는 인터베이스를 사용하여 데이터베이스에서 중앙에서 키값을 생성할 수 있다.[4]

  • 다세대 건축
일관된 데이터베이스 스냅샷과 연결되며, 독자가 작성자의 변경을 차단하지 않고 확장성을 높였다.
  • 이벤트 경고
인터베이스 이벤트는 변경이 커밋될 때 연결된 클라이언트에 대한 실시간 경고를 활성화한다. 이렇게 하면 CPU 집약적인 데이터베이스 폴링이 절약되고 데이터베이스 확장성이 향상된다.
  • 사용자 정의 가능
사용자 정의 필드 유형, 저장 프로시저, 사용자 정의 예외 및 트리거를 사용하여 인터베이스를 쉽게 사용자 정의 사용자 정의는 데이터베이스 로직, 데이터 변환 및 쉬운 유지보수를 자동화하는 데 도움이 된다.

데이터 정의

인터베이스 데이터베이스는 SQL 문을 사용하여 생성되고 채워지며, 이는 데이터 정의 언어(DDL) 문과 데이터 조작 언어(DML) 문 두 가지 주요 범주로 나눌 수 있다. 데이터베이스의 기본 구조(테이블, 뷰 및 인덱스)는 데이터 정의 언어 문을 사용하여 작성된다. 집합적으로 데이터 정의 언어 문으로 정의된 개체를 메타데이터라고 한다. 데이터 정의는 메타데이터를 생성, 수정, 삭제하는 과정이다. 반대로 데이터 조작 언어 문은 데이터로 데이터베이스를 채우고, 이전에 데이터 정의 언어 문으로 정의된 구조에 저장된 기존 데이터를 조작하는 데 사용된다. 메타데이터를 생성하는 데이터 정의 언어 문장은 CREAT 키워드로 시작하고, 메타데이터를 수정하는 문장은 ALTER라는 키워드로 시작하며, 메타데이터를 삭제하는 문장은 DROP이라는 키워드로 시작한다. 기본적인 데이터 정의 작업으로는 다음과 같은 것이 있다.

  • 데이터베이스 작성(CREATE DATABASE)
  • 테이블 만들기(CREATE TABLE)
  • 테이블 변경(ALTER TABLE)
  • 테이블 삭제(DROP TABLE)

인터베이스는 데이터베이스 메타데이터 및 그에 대한 기타 정보를 데이터베이스 생성 시 자동으로 생성되는 시스템 테이블에 저장한다. 모든 시스템 테이블 이름은 "RDB$"로 시작한다. 시스템 테이블의 예로는 데이터베이스의 각 테이블에 대한 정보를 가지고 있는 RDB$RAION과 데이터베이스의 도메인에 대한 정보를 가지고 있는 RDB$FEX가 있다. 충분한 지식 없이 이러한 시스템 테이블에 쓰는 것은 데이터베이스를 손상할 수 있다. 따라서, 공공 사용자들은 오직 그들 중에서 선택할 수 있다. 데이터베이스 소유자 및 SYSDBA 사용자는 전체 읽기 및 쓰기 권한을 가지고 있으며, 다른 사용자가 원할 경우 이러한 권한을 다른 사용자에게 할당할 수 있다. 권한이 있는 경우 시스템 테이블의 열을 직접 수정할 수 있지만, 시스템 테이블 간의 상호 관계를 모두 이해하지 않는 한 직접 수정하면 다른 시스템 테이블이 손상되고 데이터베이스가 손상될 수 있다.[5]

ISQL 사용

isql을 사용하여 메타데이터를 대화식으로 생성, 업데이트 및 삭제하거나 데이터 정의 문이 포함된 ISQL에 파일을 입력하면 사용자에게 묻지 않고 ISQL에 의해 실행된다. 일련의 개별 SQL 문을 다시 입력하는 것보다 파일을 수정하는 것이 더 쉽고, 파일은 데이터베이스에 대한 변경사항의 기록을 제공하기 때문에 일반적으로 데이터 정의 파일을 사용하는 것이 바람직하다. ISQL 인터페이스는 기존 데이터에 대한 간단한 변경이나 데이터베이스 쿼리 및 결과 표시에 편리할 수 있다. 당신은 또한 대화형 인터페이스를 학습 도구로 사용할 수 있다. 하나 이상의 샘플 데이터베이스를 생성하면 인터베이스에 빠르게 익숙해질 수 있다.[6]

데이터 정의 파일 사용

데이터 정의 파일에는 데이터베이스 또는 다른 SQL 문을 생성, 변경 또는 삭제하는 문이 포함될 수 있다. 데이터 정의 파일을 통해 SQL 문을 발급하려면 텍스트 편집기를 사용하여 데이터 정의 파일을 생성한다. 데이터 정의 파일의 모든 후속 DDL 문장에 대한 가시성을 보장하기 위해 각 DDL 문을 COMPT에 따라야 한다. 파일을 저장하고 파일을 ISQL에 입력한다.[7]

데이터베이스 설계

데이터베이스는 실제 조직과 그 프로세스를 설명하며, 상징적으로 실제 개체를 표와 다른 데이터베이스 개체로 표현한다. 일단 정보가 데이터베이스 객체로 정리되고 저장되면, 데스크톱 워크스테이션과 컴퓨터 단말기에 표시되는 애플리케이션이나 사용자 인터페이스에 의해 접속할 수 있다. 성능이 우수한 데이터베이스를 생산하는 데 있어 가장 중요한 요소는 우수한 데이터베이스 설계다. 논리적 데이터베이스 설계는 정보의 크고 이기종 적인 구조를 더 작고 동질적인 데이터 개체로 분해하는 것으로 구성된 반복 프로세스다. 이 과정을 정상화라고 한다. 정규화의 목표는 데이터베이스의 데이터 사이의 자연적인 관계를 결정하는 것이다. 이것은 한 테이블을 더 적은 수의 열이 있는 두 개 이상의 테이블로 분할함으로써 이루어진다. 정상화 과정에서 테이블이 분할되면 조인 연산과 함께 두 테이블을 다시 조립할 수 있기 때문에 데이터 손실이 없다. 이러한 방식으로 테이블을 단순화하면 가장 호환성이 높은 데이터 요소와 속성을 하나의 테이블로 그룹화할 수 있다.[8]

데이터베이스 대 데이터 모델

데이터베이스의 설명과 데이터베이스 자체를 구분하는 것이 중요하다. 데이터베이스에 대한 설명을 데이터 모델이라고 하며 설계 시간에 생성된다. 모델은 테이블과 열을 작성하기 위한 템플릿으로서, 테이블 또는 관련 데이터가 데이터베이스에 존재하기 전에 작성된다. 데이터 모델은 데이터 객체 또는 엔티티, 데이터 유형, 사용자 작업, 객체 간의 관계, 무결성 제약 등을 포함한 데이터베이스의 논리적 구조를 설명한다. 관계형 데이터베이스 모델에서 논리 설계에 대한 결정은 데이터베이스의 물리적 구조와 완전히 독립적이다. 이러한 분리는 매우 융통성이 있다.

  • 설계 시 데이터 개체 간의 물리적 액세스 경로를 정의할 필요가 없음으로, 데이터베이스에 존재하는 거의 모든 논리적 관계에 대해 데이터베이스에 질의할 수 있다.
  • 데이터베이스를 설명하는 논리적 구조는 기본 물리적 스토리지 구조의 변경에 영향을 받지 않는다. 이 기능은 교차 플랫폼 이동성을 보장한다. 데이터 모델에 의해 정의된 데이터베이스 액세스 메커니즘은 데이터 저장 방법과 관계없이 동일하게 유지되기 때문에 관계형 데이터베이스를 다른 하드웨어 플랫폼으로 쉽게 전송할 수 있다.
  • 데이터베이스의 논리적 구조도 최종 사용자가 보는 것과 무관하다. 설계자는 보기를 사용하여 기본 데이터베이스 테이블의 사용자 정의 버전을 작성할 수 있다. 보기는 데이터의 하위 집합이 지정된 사용자 또는 그룹에 표시한다. 보기는 중요한 데이터를 숨기거나 사용자가 관심이 없는 데이터를 필터링하는 데 사용할 수 있다.

디자인 목표

관계형 데이터베이스는 매우 유연하지만, 데이터 무결성과 만족스러운 데이터베이스 성능을 보장할 수 있는 유일한 방법은 견고한 데이터베이스 설계뿐이며, 이는 열악한 설계 결정에 대한 내장 보호는 없다. 우수한 데이터베이스 설계는 다음과 같다.

  • 데이터베이스에 대한 사용자의 콘텐츠 요구 사항 충족 데이터베이스를 설계하기 전에 사용자의 요구 사항과 데이터베이스 사용 방법에 대해 광범위한 조사를 수행해야 한다.
  • 데이터의 일관성 및 무결성 보장 테이블을 설계할 때 사용자나 응용 프로그램이 테이블과 해당 열에 입력할 수 있는 내용을 제한하는 특정 속성과 제약 조건을 정의하십시오. 표에 저장되기 전에 데이터를 검증함으로써 데이터베이스는 데이터 모델의 규칙을 적용하고 데이터 무결성을 보존한다.
  • 자연스럽고 이해하기 쉬운 정보 구조 제공. 좋은 설계는 쿼리를 이해하기 쉽게 하므로 사용자는 데이터에 불일치를 도입하거나 중복 데이터를 입력하도록 강요받을 가능성이 작다. 이것은 데이터베이스 업데이트와 유지보수를 용이하게 한다.
  • 사용자의 성능 요구 사항 충족 우수한 데이터베이스 설계로 더 나은 성능 보장 테이블이 너무 크도록 허용되거나 인덱스가 너무 많거나 적으면 긴 대기 시간이 발생할 수 있다. 데이터베이스가 매우 크고 거래량이 많을 경우 설계 불량으로 인한 성능 문제가 확대된다.

데이터 유형 정보

인터베이스 테이블에서 새 열을 생성할 때 정의해야 하는 기본 속성은 데이터 유형으로, 열에 포함할 수 있는 유효한 데이터 집합을 설정한다. 해당 데이터 유형으로 나타낼 수 있는 값만 허용된다. 열에 포함할 수 있는 유효한 데이터 집합을 설정하는 것 외에도 데이터 유형은 데이터에 대해 수행할 수 있는 작업 유형을 정의한다. 예를 들어, INTEGER 열의 숫자는 산술 연산으로 조작할 수 있지만, CHARACTER 열은 조작할 수 없다. 데이터 유형은 각 데이터 항목이 디스크에서 차지하는 공간도 정의한다. 특히 테이블이 매우 큰 경우 디스크 공간이 제한될 때 데이터 값에 대한 최적의 크기를 선택하는 것은 중요한 고려 사항이다. 인터베이스는 다음과 같은 데이터 유형을 지원한다.

  • INTEGERSMALLINT
  • FLOATDOUBLE PRECISION
  • NUMERICDECIMAL
  • DATE, TIMETIMESTAMP
  • CHARACTERVARYING CHARACTER
  • BOOLEAN
  • BLOB
인터베이스는 표준 SQL 데이터 유형 중 하나로 쉽게 저장할 수 없는 데이터를 저장할 수 있는 Blob 데이터 유형을 제공한다. BLOB는 비트맵 그래픽 이미지, 벡터 도면, 사운드 파일, 비디오 세그먼트, 장 또는 장, 장 또는 장, 기타 종류의 멀티미디어 정보와 같이 불확정하고 가변적인 크기의 데이터 객체를 저장하는 데 사용된다.

또한 인터베이스는 대부분의 데이터 유형의 어레이를 지원한다. 배열은 단일 인터베이스 데이터 유형으로 구성된 개별 항목의 행렬이다(BLOB 제외). 배열은 1에서 16차원을 가질 수 있다. 배열은 단일 엔터티로 처리하거나 항목별로 조작할 수 있다.

년, 월, 요일 및 시간에 대한 정보를 포함하는 TIMestamp 데이터 유형이 지원된다. TIMAPS 데이터 유형은 두 개의 긴 정수로 저장되며, 호스트 언어 프로그램에 입력하거나 조작할 때 인터베이스로 변환해야 한다. DATE 데이터 유형에는 해당 달의 연도, 월 및 요일에 대한 정보가 포함되어 있다. TIME 데이터 유형에는 시간, 분, 초 및 10분의 1초, 100분의 1초, 1000초의 시간 정보가 포함된다.

이름 크기 범위 / 정밀도 기술

BLOB

가변

  • 없음
  • Blob 세그먼트 크기가 64K로 제한된다.
  • 그래픽, 텍스트 및 디지털화된 음성과 같은 대용량 데이터를 저장하기 위해 동적으로 확장 가능한 데이터 유형이다.
  • 기본 구조 단위는 세그먼트이다.
  • Blob하위 유형은 Blob내용을 설명한다.

부울

16비트

  • TRUE
  • FALSE
  • UNKNOWN
  • 참 값을 나타낸다. TRUE, FALSE, 및 UNKNOWN
  • ODS 11 이상의 언어 필요

CHAR(<n>)

<n> 문자

  • 1~32,767 바이트
  • 문자 집합 문자 크기는 32K에 들어갈 수 있는 최대 문자 수를 결정한다.
  • 고정 길이 CHAR 또는 텍스트 문자열 유형
  • 대체 키워드: CHARACTER

DATE

32 비트

1 Jan 100 a.d.
to 29 Feb 32768 a.d.

  • 날짜를 32비트 단어로 저장

DECIMAL­(<정밀도>,<척도>)

Variable
(16, 32, 또는
64 비트)

  • <정밀도> = 1에서 18까지, 저장할 정밀도의 최소<정밀도>숫자를 지정한다.
  • <척도> = 0~18. 소수 자릿수가 <척도>보다 작거나 같아야 한다.
  • 오른쪽에서 소수 점<척도>자리 수
  • 예: DECIMAL(10,3)숫자는 ppppp.ss의 형태로 정확하게 유지된다.

DOUBLE ­PRECISION

64 bits1

2.225 x 10–308 to 1.797 x 10308

IEEE 이중 정밀도: 15자리

FLOAT

32 비트

1.175 x 10–38 to 3.402 x 1038

IEEE 단일 정밀도: 7자리

INTEGER

32 비트

–2,147,483,648~2,147,483,647

서명된 긴 단어(긴 단어)

NUMERIC(<정밀도>, <척도>)

변수 (16, 32, 또는
64 비트)

  • <정밀도> = 1에서 18까지, 저장할 정밀도의 최소<정밀도>숫자를 지정한다.
  • <척도> = 0~18. 소수 자릿수가 <척도>보다 작거나 같아야 한다.
  • 오른쪽에서 소수 점<척도>자리 수
  • 예: NUMERIC(10,3)숫자는 ppppp.ss의 형태로 정확하게 유지된다.

SMALLINT

16 비트

–32,768~32,767

짧게 서명됨(단어)

TIME

32 비트

오전 0:00-오후 23:59:59.9999

인터베이스 유형의 서명되지 않은 정수 ISC_TIME:하루 중 시간(자정 이후 0.0001초 단위)

TIMESTAMP

64 비트

1 Jan 100 a.d.
to 29 Feb 32768 a.d.

인터베이스 유형 ISC_TIMestamp; DATE 및 TIME 정보를 결합함

VARCHAR(<n>)

<n> characters

  • 1~32,765 바이트
  • 문자 집합 문자 크기는 32K에 들어갈 수 있는 최대 문자 수를 결정한다.
  • 변수 길이 CHAR 또는 텍스트 문자열 유형
  • 대체 키워드: CHAR VARYING, CHARACTER VARYING
[9]

비교

파이어버드

인터베이스(InterBase)의 속도와 확장성이 더 뛰어나며 특히 재해 복구 및 데이터 보호 규정 준수 기능이 매우 뛰어나다. 또한 체인지뷰(Change Views) 기능이 있어 비용은 적게 들면서도, 확장성 뛰어난 복제 엔진 API를 추가하여 가장 낮은 비용으로 데이터 이동과 복제 라이선스 비용을 크게 줄일 수 있다.

MySQL

오픈 소스가 항상 무료인 것은 아니다. 오라클 MySQL은 무료로 많이들 사용하는 오픈 소스 데이터베이스이지만, 배포 형식에 따라 연간 구독 서비스(서브스크립션)를 구매해야 한다. 인터베이스는 이와 비교해 더 많은 기능을 제공한다. 데이터를 보호하고 비즈니스 연속성을 보장하려면 데이터 백업과 데이터 암호화를 모두 신중하게 고려해야 한다. 이 기능은 MySQL의 경우 가장 비싼 MySQL 엔터프라이즈 버전에서만 사용할 수 있지만, 인터베이스는 모든 유료 버전에서 온라인 데이터 백업과 TDE (투명한 데이터 암호화)를 모두 지원한다. MySQL 아키텍처는 서버 간 복제를 중심으로 하며 모바일 데이터베이스를 제공하지 않는다. 인터베이스의 체인지 뷰 기능은 로컬 또는 분산 형식의 다양한 원격 장치 간의 데이터 이동을 쉽게 처리 할 수 있도록 만들어져 확장 가능한 최신 복제(응답) 요구 사항에 이상적이다.

MS SQL

MSSQL은 강력한 최고급 데이터베이스이지만 TDE (Transparent Data Encryption)와 같은 비즈니스 핵심 기능이 필요하다면 가장 가격이 높은 MSSQL 엔터프라이즈를 구매해야 한다. TDE는 기업이 데이터 보호법과 PCI / HIPPA 준수와 같은 표준을 준수할 수 있도록 해주는 기능입니다.TDE는 MSSQL의 경우, 엔터프라이즈에서만 사용할 수 있는 기능이지만 인터베이스는 어떤 버전이라도 라이선스 구매 시 사용할 수 있다. 재해 복구 서버 비용: 인터베이스에는 보조 재해 복구 서버에 대한 라이선스가 포함되어 있다. MSSQL이 추가 서버 라이선스를 구매해야 하는 것과는 대조적이다. 다시 말해, TDE와 재난 복구 기능을 갖춘 8개의 CPU 서버 관리 시, 인터베이스를 사용하면 1억 3천 만원 이상의 비용을 절감할 수 있다. MSSQL 복제 기술은 서버 간의 복제에 중점을 두고 있다. 인터베이스가 다양한 원격 장비들까지 지원하는 것과는 차이가 있다.

SAP SQL Anywhere

원래 Sybase SQL Anywhere는 2012년 SAP가 인수했다. SAP에 소속된 이후로는 SAP 제품 개발 및 기능 요구 사항에 중점을 두고 있다. SAP의 데이터베이스 플랫폼인 HANA가 앞으로 SAP 대표적인 제품이 될 것이라는 이야기가 있어, 많은 사람이 SQL Anywhere의 행방에 관심이 많다. 인터베이스와 SQL Anywhere 모두 강력한 모바일 오퍼링과 데이터 변경 추적 기능을 제공한다. 다만 변경 사항을 실시간으로 확인할 수 있는 인터베이스의 체인지 뷰(Change Views) 기능은 자체 내장되어 있지만, 이와 같은 기능을 하는 SQL Anywhere의 모빌링크(MobiLink)는 디바이스당 비용을 별도로 내고 구매해야 한다.

SQLite

인터베이스 IBLite와 SQLite 둘 다 무료 데이터베이스이다. SQLite에는 SQL92 에 대응하는 특정 기능, 특히 저장 프로시저가 없다. 모바일 용 비즈니스 데이터를 관리할 수 있는 인터베이스 ToGo는 재해 복구와 데이터 보호 준수 기능이 뛰어나다. 개발 주기 전반에 걸쳐 인터베이스는 보호 기능을 갖추고 있는데, 이 기능은 데이터를 손실했을 때 위험 부담(벌금, 규제 조치 등)을 크게 줄여준다. SQLite는 기본적으로 스테로이드의 플랫 파일이다. SQLite는 데이터 무결성을 보장하기 위해 동일한 수준의 데이터베이스 지원을 권장하며 동시성이 높지 않다. 이 때문에 ISV 개발에는 실제로 적합하지 않다.[10]

각주

  1. InterBase〉, 《Database of Databases》
  2. InterBase Wikipedia - https://en.wikipedia.org/wiki/InterBase
  3. Welcome〉, 《embarcadero docwiki》
  4. 4.0 4.1 4.2 4.3 4.4 4.5 InterBase 2020 embarcadero - https://www.embarcadero.com/products/interbase
  5. What is Data Definition〉, 《embarcadero docwiki》
  6. Using isql〉, 《embarcadero docwiki》
  7. Using a Data Definition File〉, 《embarcadero docwiki》
  8. , 〈Overview of Design Issues〉, 《embarcadero docwiki》
  9. About InterBase Data Types〉, 《embarcadero docwiki》
  10. 김원경, 〈인터베이스(InterBase)와 다른 데이터베이스 비교〉, 《데브기어》, 2020-02-20

참고자료

같이 보기


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