인터베이스
인터베이스(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년 노동절에 그로튼 데이터베이스 시스템즈를 결성하고 결국 인터베이스로 출시될 것에 대한 작업을 시작했다.[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]
- 로그 없는 복제
- 인터베이스의 Change Views는 로그 테이블 및 시간 스탬프 필드와 관련된 일반적인 확장성 문제를 제거한다.
- 보안 데이터 변경 구독
- 장치에 권한이 부여되고 특정 테이블 또는 데이터 열에 가입되면 해당 가입에 대한 현장 수준에서 무엇이 변경되고 있는지 추적한다. 이 단순한 모델은 데이터 변경에 대한 액세스를 안전하게 관리하고 개발, 리팩터링, 빌드 및 테스트할 수 있는 코드를 적게 사용하여 쉽게 확장할 수 있다.
- 시장에서 가장 안전한 변경 추적 기능
- Change Views는 무엇이 변경되었는지 쉽게 식별할 수 있을 뿐만 아니라, 누가 변경 사항을 추적할 수 있는지 제어하며, 다른 사람이 데이터 변경에 대해 추측하는 것을 방지한다.
- 쉬운 데이터 델타 가져오기
- Change Views는 변경된 내용에 대한 현장 수준의 델타만 제공하므로 개발자는 데이터 이동 비용을 낮추면서 최종 사용자에게 상세 분석을 제공할 수 있다. Change Views 데이터는 동기화하기 전에 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 산업 표준을 엄격히 준수한다. 유니코드를 지원하고 전 세계 어떤 문자 집합에도 이상적이며 다중 결합 유니코드, 실시간 이벤트 알림, 특허 출원 중인 Change Views의 SQL 기반 변경 추적 기능을 제공한다. Change Views는 데이터베이스에 대한 변경사항만 식별하고 가져와 응용프로그램 속도를 높이고 네트워크 트래픽과 비용을 절감한다. 생성기를 사용하면 일반적으로 기본 키에 사용되는 일련 번호를 가져올 수 있다. 인터베이스는 중복 키를 할당하지 않는다. 생성기는 InterBase를 사용하여 데이터베이스에서 중앙에서 키 값을 생성할 수 있다.[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 인터페이스는 기존 데이터에 대한 간단한 변경이나 데이터베이스 쿼리 및 결과 표시에 편리할 수 있다. 당신은 또한 대화형 인터페이스를 학습 도구로 사용할 수 있다. 하나 이상의 샘플 데이터베이스를 생성하면 InterBase에 빠르게 익숙해질 수 있다.
- 데이터 정의 파일 사용
- 데이터 정의 파일에는 데이터베이스 또는 다른 SQL 문을 생성, 변경 또는 삭제하는 문이 포함될 수 있다. 데이터 정의 파일을 통해 SQL 문을 발급하려면 텍스트 편집기를 사용하여 데이터 정의 파일을 생성한다. 데이터 정의 파일의 모든 후속 DDL 문장에 대한 가시성을 보장하기 위해 각 DDL 문을 COMPT에 따라야 한다. 파일을 저장하고 파일을 isql에 입력한다.
각주
- ↑ 〈InterBase〉, 《Database of Databases》
- ↑ InterBase Wikipedia - https://en.wikipedia.org/wiki/InterBase
- ↑ 〈Welcome〉, 《embarcadero docwiki》
- ↑ 4.0 4.1 4.2 4.3 4.4 4.5 InterBase 2020 embarcadero - https://www.embarcadero.com/products/interbase
- ↑ What is Data Definition embarcadero docwiki - http://docwiki.embarcadero.com/InterBase/2020/en/What_is_Data_Definition%3F
참고자료
- 〈InterBase〉, 《Database of Databases》
- 〈Welcome〉, 《embarcadero docwiki》
- embarcadero - https://www.embarcadero.com/products/interbase
- What is Data Definition embarcadero docwiki - http://docwiki.embarcadero.com/InterBase/2020/en/What_is_Data_Definition%3F
같이 보기
- 데이터베이스 관리 시스템(DBMS)
- 관계형 데이터베이스 관리 시스템(RDBMS)
- 엠바카데로 테크놀로지스
- 파이어버드