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

"인터베이스"의 두 판 사이의 차이

위키원
이동: 둘러보기, 검색
잔글 (같이 보기)
 
(사용자 4명의 중간 판 37개는 보이지 않습니다)
1번째 줄: 1번째 줄:
 +
[[파일:인터베이스 로고.png|썸네일|200픽셀|'''인터베이스'''(InterBase)]]
 +
[[파일:인터베이스 글자.png|썸네일|300픽셀|'''인터베이스'''(InterBase)]]
 +
 
'''인터베이스'''(InterBase)는 미국 [[엠바카데로 테크놀로지스]](Embarcadero Technologies)가 관리하는 [[관계형 데이터베이스 관리 시스템]](RDBMS)이다. 용량이 40MB로 매우 작고 관리자가 거의 필요 없는 편리한 관계형 데이터베이스 관리 시스템(RDBMS)이다. [[리눅스]](Linux), [[윈도우]](Windows), [[안드로이드]](Android), [[아이오에스]](iOS) 등 다양한 환경에서 작동한다. 인터베이스(InterBase)를 기반으로 [[오픈소스]] 무료 [[데이터베이스 관리 시스템]](DBMS)인 [[파이어버드]](Firebird)가 만들어졌다.
 
'''인터베이스'''(InterBase)는 미국 [[엠바카데로 테크놀로지스]](Embarcadero Technologies)가 관리하는 [[관계형 데이터베이스 관리 시스템]](RDBMS)이다. 용량이 40MB로 매우 작고 관리자가 거의 필요 없는 편리한 관계형 데이터베이스 관리 시스템(RDBMS)이다. [[리눅스]](Linux), [[윈도우]](Windows), [[안드로이드]](Android), [[아이오에스]](iOS) 등 다양한 환경에서 작동한다. 인터베이스(InterBase)를 기반으로 [[오픈소스]] 무료 [[데이터베이스 관리 시스템]](DBMS)인 [[파이어버드]](Firebird)가 만들어졌다.
 +
 +
== 개요 ==
 +
인터베이스는 소프트웨어 개발자를 위한 완전한 기능을 갖춘 고성능 및 확장 가능한 관계형 데이터베이스다. 1984년, 짐 스타키(Jim Starkey)가 다세대 아키텍처를 활용한 관계형 데이터베이스 관리 시스템(RDBMS, Relational Database Management System)으로 개발했다. 1991년 인터베이스는 볼랜드사에 인수되었고 2000년에 [[파이어버드]]라고 불리는 오픈 소스 데이터베이스 관리 시스템(DBMS, Database Management System)이 인터베이스로부터 만들어졌다. 2008년에 인터베이스는 다른 개발 도구들과 함께 엠바카데로 테크놀로지스사에 의해 구매되었다.<ref name="Database of Databases"> 〈[https://dbdb.io/db/interbase InterBase]〉, 《Database of Databases》</ref>
 +
 +
== 역사 ==
 +
그로튼 데이터베이스 시스템즈(Groton Database Systems)로 알려진 인터베이스 소프트웨어는 앤 해리슨의 예비실에서 탄생했다. 짐 스타키는 데이터트라이브(DATATRIEVE) 4세대 언어 4GL 제품에 대해 디지털 이큅먼트 코퍼레이션에서 일하고 있었는데, 많은 사용자의 동시 변경을 관리하는 시스템에 대한 아이디어를 생각해 냈다. 그 아이디어는 당시 개발되고 있던 새로운 관계형 데이터베이스 시스템에 심각한 문제가 되고 있던 기존의 잠금 문제를 극적으로 단순화시켰다. 그러나 스타키는 자신의 원래 관계형 데이터베이스 프로젝트를 다른 그룹으로 돌리고 영역 전쟁이 끝난 후 이 아이디어를 얻었다. 스타키는 RDB/ELN 제품의 첫 번째 버전을 출하한 후 회사를 떠났다. 비록 인터베이스의 구현은 당시 존재했던 다른 어떤 데이터베이스보다 리드가 MIT 논문에서 기술한 시스템과 훨씬 유사하지만 스타키는 미국의 컴퓨터 주식회사에서 그리고 후에 DEC에서 그의 이전 직책으로부터 번스타인을 알고 있었지만, 스타키는 다단계 동시성에 대한 생각에 도달했다고 진술했다.독립적으로 운영하다 같은 논평에서 스타키는 '다세대 동시성 제어에 대한 영감은 페이지 레벨 스냅샷을 지원하는 프라임이 수행한 데이터베이스 시스템이었다. 이 기능의 의도는 독자에게 작성자를 차단하지 않고 데이터베이스를 일관성 있게 볼 수 있도록 하는 것이었다. 그 아이디어는 데이터베이스 시스템의 매우 유용한 특징으로 나를 흥미롭게 했다'고 말했다. 짐 스타키는 지역 워크스테이션 벤더인 아폴로 컴퓨터가 유닉스 기계에서 데이터베이스 오퍼링을 찾고 있다는 소식을 듣고 개발 자금을 지원하기로 합의했다. 그들의 격려로 짐 스타키는 1984년 노동절에 그로튼 데이터베이스 시스템즈(DateBase Systems)를 결성하고 결국 인터베이스로 출시될 것에 대한 작업을 시작했다.<ref name="wiki interbase">InterBase Wikipedia - https://en.wikipedia.org/wiki/InterBase</ref>
 +
 +
== 특징 ==
 +
인터베이스는 저비용 제로 관리 경량 멀티 디바이스 데이터베이스로 안드로이드, iOS, 윈도우, OS X, 리눅스, 솔라리스(Solaris)의 애플리케이션에 내장할 수 있다. 인터베이스는 강력한 보안, 재해 복구, 저널링 및 널리 사용되는 데이터베이스 드라이버를 지원하여 구축 유연성을 향상했다. 인터베이스는 ISV, OEM 및 VAR에 적합하며, 메모리와 디스크 크기는 작지만, 비즈니스 크리티컬 애플리케이션을 지원하는 정교한 기능을 손상하지 않는 데이터베이스가 필요하다. 비용이 많이 드는 지원과 유지보수가 필요한 많은 데이터베이스와 달리, 인터베이스는 관리가 필요하지 않다. 간단한 설치와 작은 설치 공간을 통해 인터베이스는 애플리케이션에 내장할 수 있는 데이터베이스로 만들어졌다. 아이비라이트(IBLite)는 독립 실행형 환경에서 실행되는 안드로이드 및 iOS를 위해 자유롭게 배포할 수 있고 내장 가능한 데이터베이스로, 인터베이스 엔진을 직접 활용하는 앱을 배포할 수 있다. 아이비라이트는 델파이 XE7(Mobile 이상의 Professional)과  라드 스튜디오 XE7(모든 에디션)과 독점적으로 이용할 수 있다. 인터베이스는 가장 빠른 네이티브 데이터베이스 중 하나이다. 내장된 대칭 다중 처리(SMP)를 사용하여 인터베이스는 오늘날의 멀티 코어 CPU와 멀티 CPU 시스템을 활용할 수 있다. 성능 향상 및 최적화는 데이터베이스 복원, 배치 업데이트 및 쿼리 등 여러 영역에서 추가되었다. 인터베이스는 트랜잭션 처리 및 의사결정 지원을 위해 높은 데이터 가용성을 제공하는 고유한 버전 관리 기능을 제공하는 다세대 아키텍처를 사용한다. 인터베이스는 [[자바]](JAVA), [[C]], [[C++]], 를 포함한 모든 주요 개발 패러다임을 지원한다.넷, 델파이, PHP, 루비. C++빌더, 라드 스튜디오 델파이와 긴밀하게 통합되어 라드 프로젝트를 어떤 플랫폼에든 배치하면 인터베이스가 자동으로 배치된다.<ref name="embarcadero docwiki"> 〈[http://docwiki.embarcadero.com/InterBase/XE3/en/Welcome Welcome]〉, 《embarcadero docwiki》</ref>
 +
 +
== 기술 ==
 +
인터베이스는 시판된 최초의 AID 인증 데이터베이스 중 하나였으며, 이 파운데이션은 서버 충돌 후 매우 빠르게 복구되고 실행될 것임을 의미한다. 실제로 인터베이스는 어떤 시스템 재부팅에 따라 복구 시간이 중요한 전 세계적으로 탱크, 헬리콥터, 의료 장비에 배치되어 있다. 인터베이스는 또한 증분 백업, 저널, 시점 복구, 데이터베이스 섀도잉을 포함한 다양한 페일오버 기능을 제공한다. 이 외에도 여러가지 특징들이 존재한다.
 +
 +
=== 보안 ===
 +
데이터베이스에 대한 사이버 공격과 데이터 손실은 비용이 많이 들고 고객의 신뢰(및 비즈니스), 규제 조치, 심지어 거액의 벌금까지 초래할 수 있다. 인터베이스는 무선 및 유휴 암호화, 별도의 보안 로그인 및 역할 기반 사용자 보안을 제공한다. 인터베이스 암호화는 완전한 온-디스크 암호화를 유지하면서 데이터베이스 속도와 성능에 오버헤드를 거의 추가하지 않는다.<ref name="embarcadero">InterBase 2020 embarcadero - https://www.embarcadero.com/products/interbase</ref>
 +
 +
* '''교차 플랫폼 암호화''' : 인터베이스는 서버와 클라이언트 간의 회선을 통한 암호화와 유휴 데이터(DES와 AES 256비트 암호화 모두)를 지원한다. 인터베이스 암호화는 크로스 플랫폼 단일 파일 형식의 일부로 내장되어 있다.
 +
 +
* '''별도의 보안 로그인''' : 데이터 가시성은 개발자조차 중요한 데이터를 보고 검색하기 위해 암호화를 우회할 수 없도록 하는 칼럼 레벨 세분성을 갖춘 데이터베이스(SYSDSO)에 전문적으로 로그인함으로써 정의된다.
 +
 +
* '''위험 감소''' : 내장된 세분화된 칼럼 레벨 암호화를 통해 요구사항 변경 및 데이터 계층(애플리케이션은 물론)이 데이터 가시성을 관리함에 따라 제품 리팩터링을 통해 데이터 침해 위험을 대폭 줄인다.
 +
 +
* '''역할 기반 사용자 보안''' : 작업 역할(계정, 어카운트 매니저, 세일즈, HR 등)에 맞게 사용자 보안 역할을 정의하여 시스템 전체에서 데이터 및 데이터 변경 추적에 대한 액세스를 쉽게 추가하거나 제거할 수 있다.
 +
 +
* '''암호화된 백업''' : 인터베이스는 암호화된 백업을 생성할 수 있도록 하는 백업별 암호화 키를 지원하며, 스케줄링을 통해 명령줄 백업을 실행해야 하는 이들의 요구에 부응한다.
 +
 +
=== 가벼움 ===
 +
인터베이스는 작고 가벼운 설치 공간을 가진 가장 빠른 네이티브 데이터베이스 중 하나이다. 인터베이스는 고유한 버전 관리 접근 방식 및 고급 디스크 I/O 캐싱과 함께 오늘날의 멀티코어 CPU 및 멀티 CPU 시스템을 활용하여 데이터를 빠르게 검색하고 업데이트한다.<ref name="embarcadero"></ref>
 +
 +
* '''작은 용량''' : 가장 작은 분포에서 인터베이스는 몇 메가바이트에 불과하다. 작은 디스크 설치 공간과 작은 메모리 요구 사항은 상업용 임베디드 데이터베이스 엔진을 필요로 하는 장치에 이상적이다.
 +
 +
* '''빠른 설치''' : 인터베이스 서버는 서버 및 클라이언트 드라이버의 자동 설치를 허용하는 임베디드 설치 프로그램과 함께 몇 초 만에 완전히 설치된다. 인터베이스 ToGo에 관한 한, 설치가 필요 없다.
 +
 +
* '''빠른 데이터''' : 인터베이스의 체인지 뷰(Change Views)는 데이터 이동량을 획기적으로 줄이고, 데이터 비용, 네트워크 트래픽, 서버 CPU 수요, 디스크 I/O를 줄임으로써 데이터 속도와 확장성을 향상시킨다.
 +
 +
* '''쓰기 자동 기록''' : 저널링은 완전한 메모리 내 데이터베이스 시스템의 이점을 이용하여 디스크에 즉시 변경사항을 기록할 수 있는 보안을 제공한다.
 +
 +
=== 재해복구 ===
 +
애플리케이션과 비즈니스는 데이터에서 실행되므로 데이터베이스 재해 복구가 매우 중요한 기능임 인터베이스는 실시간 백업, 증분 덤프, 다중 스레드 복원, 자동 쓰기 로깅 및 시점 복구를 통해 효과적인 재해 복구 계획을 지원한다. 데이터베이스는 명령 줄, 관리자 도구, 백업 응용 프로그램 프로그래밍 인터페이스(API, Application Programming Interface)를 사용한 코드 또는 개방형 데이터베이스 접속성(ODBC) 드라이버 그래픽 유저 인터페이스를 통해 백업할 수 있다.<ref name="embarcadero"></ref>
 +
 +
* '''라이브 백업''' : 인터베이스의 다중 제공 아키텍처는 사용자가 여전히 연결되어 있고 데이터베이스를 변경하는 동안 백업 스냅숏을 생성할 수 있도록 한다.
 +
 +
* '''고유 데이터 덤프''' : 고유 데이터 덤프는 데이터베이스의 읽기 전용 복사본을 빠르게 생성한다. DR 시나리오에서 데이터베이스를 읽기/쓰기로 전환하는 것이 복원을 기다리는 것보다 빠르다. 처음 설치하면 데이터베이스의 전체 복사본이 생성되고 이후 실행은 기본 데이터베이스의 변경사항만 사용하여 복사본을 업데이트한다.
 +
 +
* '''빠른 복원''' : 인터베이스는 데이터베이스와 인덱스를 최대한 빨리 복원할 수 있도록 여러 프로세서에 여러 스레드를 사용하여 복원한다.
 +
 +
* '''쓰기 자동 기록''' : 인터베이스의 저널링은 완전한 메모리 내 데이터베이스 시스템의 이점을 이용하여 디스크에 즉시 변경 사항을 기록할 수 있는 보안을 제공한다.
 +
 +
* '''시점 복구''' : 저널 아카이브를 사용하여 데이터베이스를 원하는 시점으로 신속하게 되돌릴 수 있다. 저널 아카이브는 백업이 실행되지 않았더라도 신속하게 복구할 수 있도록 장치에 저장할 수 있다.
 +
 +
=== 복제 ===
 +
인터베이스의 변화, 뷰 개발 시간, 네트워크 운영 비용과 서버 CPU수요 기존 체인지-트래킹(change-tracking) 방법에 의존하는 다른 복제 방법과 관련된을 감소시킨다. 결과적으로, 개발 팀들 비용 절감, 시간 절약, 개선을 사용자 경험을 갖고 있다.<ref name="embarcadero"></ref>
 +
 +
* '''로그 없는 복제''' : 인터베이스의 체인지 뷰는 로그 테이블 및 시간 스탬프 필드와 관련된 일반적인 확장성 문제를 제거한다.
 +
 +
* '''보안 데이터 변경 구독''' : 장치에 권한이 부여되고 특정 테이블 또는 데이터 열에 가입되면 해당 가입에 대한 현장 수준에서 무엇이 변경되고 있는지 추적한다. 이 단순한 모델은 데이터 변경에 대한 액세스를 안전하게 관리하고 개발, 리팩터링, 빌드 및 테스트할 수 있는 코드를 적게 사용하여 쉽게 확장할 수 있다.
 +
 +
* '''시장에서 가장 안전한 변경 추적 기능''' : 체인지 뷰는 무엇이 변경되었는지 쉽게 식별할 수 있을 뿐만 아니라, 누가 변경 사항을 추적할 수 있는지 제어하며, 다른 사람이 데이터 변경에 대해 추측하는 것을 방지한다.
 +
 +
* '''쉬운 데이터 델타 가져오기''' : 체인지 뷰는 변경된 내용에 대한 현장 수준의 델타만 제공하므로 개발자는 데이터 이동 비용을 낮추면서 최종 사용자에게 상세 분석을 제공할 수 있다. 체인지 뷰 데이터는 동기화하기 전에 에스큐엘(SQL, structured query language)을 통해 쿼리할 수 있으며, 이를 통해 데이터 청구서가 기습적으로 작성되지 않도록 보장할 수 있다.
 +
 +
=== 신축성 ===
 +
인터베이스는 윈도우, 리눅스, 맥OS, 안드로이드 및 iOS에서 실행. 또한 인터베이스는 지원되는 모든 플랫폼에서 이기종 OS 연결을 지원한다.<ref name="embarcadero"></ref>
 +
 +
* '''교차 언어 지원''' : 인터베이스는 자바, C, C++, 를 지원한다. 닷넷, 델파이, PHP, 루비와 긴밀하게 통합되며 라드 스튜디오 통합 개발 환경(RAD Studio IDE)과 긴밀하게 통합된다. 비주얼 스튜디오 개발자는 액티브엑스 데이터 오브젝트(ADO, ActiveX Data Objects)를 통해 인터베이스와 협력할 수 있다.
 +
 +
* '''서버 데이터 저장소''' : 온라인 및 오프라인 애플리케이션 기능을 제공하는 서버와 클라이언트 모두의 상업용 데이터 스토리지. 설치된 서버에는 인터베이스 서버, 개발자 및 평가판이 적합하다.
 +
 +
* '''클라이언트 데이터 저장소'''  : 인터베이스 ToGo 및 아이비라이트 버전은 로컬 스토리지가 있는 독립 실행형 내장 데이터베이스로 사용할 수 있다. 로컬 스토리지는 네트워크 트래픽의 필요성을 줄여 비용을 절감하고 앱 속도와 사용자 경험을 개선한다.
 +
 +
* '''단일 온디스크 형식''' : 인터베이스의 단일 파일 형식을 통해 어디서나 애플리케이션을 배포할 수 있다. 유니파이드 온디스크 포맷을 통해 개발 머신에서 직접 신속하게 지원 및 테스트할 수 있다.
 +
 +
=== 에스큐엘 호환 ===
 +
인터베이스는 에스큐엘 표준 호환 데이터베이스이다. 인터베이스는 에스큐엘 산업 표준을 엄격히 준수한다. 유니코드를 지원하고 전 세계 어떤 문자 집합에도 이상적이며 다중 결합 유니코드, 실시간 이벤트 알림, 특허 출원 중인 체인지 뷰의 에스큐엘 기반 변경 추적 기능을 제공한다. 체인지 뷰는 데이터베이스에 대한 변경사항만 식별하고 가져와 응용프로그램 속도를 높이고 네트워크 트래픽과 비용을 절감한다. 생성기를 사용하면 일반적으로 기본 키에 사용되는 일련번호를 가져올 수 있다. 인터베이스는 중복 키를 할당하지 않는다. 생성기는 인터베이스를 사용하여 데이터베이스에서 중앙에서 키값을 생성할 수 있다.<ref name="embarcadero"></ref>
 +
 +
* '''다세대 건축''' : 일관된 데이터베이스 스냅샷과 연결되며, 독자가 작성자의 변경을 차단하지 않고 확장성을 높였다.
 +
 +
* '''이벤트 경고''' : 인터베이스 이벤트는 변경이 커밋될 때 연결된 클라이언트에 대한 실시간 경고를 활성화한다. 이렇게 하면 CPU 집약적인 데이터베이스 폴링이 절약되고 데이터베이스 확장성이 향상된다.
 +
 +
* '''사용자 정의 가능''' : 사용자 정의 필드 유형, 저장 프로시저, 사용자 정의 예외 및 트리거를 사용하여 인터베이스를 쉽게 사용자 정의 사용자 정의는 데이터베이스 로직, 데이터 변환 및 쉬운 유지보수를 자동화하는 데 도움이 된다.
 +
 +
== 데이터 정의 ==
 +
인터베이스 데이터베이스는 에스큐엘 문을 사용하여 생성되고 채워지며, 이는 데이터 정의 언어 문과 데이터 조작 언어(DML) 문 두 가지 주요 범주로 나눌 수 있다. 데이터베이스의 기본 구조(테이블, 뷰 및 인덱스)는 데이터 정의 언어 문을 사용하여 작성된다. 집합적으로 데이터 정의 언어 문으로 정의된 개체를 메타데이터라고 한다. 데이터 정의는 메타데이터를 생성, 수정, 삭제하는 과정이다. 반대로 데이터 조작 언어 문은 데이터로 데이터베이스를 채우고, 이전에 데이터 정의 언어 문으로 정의된 구조에 저장된 기존 데이터를 조작하는 데 사용된다. 메타데이터를 생성하는 데이터 정의 언어 문장은 <code><nowiki>CREAT</nowiki></code> 키워드로 시작하고, 메타데이터를 수정하는 문장은 <code><nowiki>ALTER</nowiki></code>라는 키워드로 시작하며, 메타데이터를 삭제하는 문장은 <code><nowiki>DROP</nowiki></code>이라는 키워드로 시작한다. 기본적인 데이터 정의 작업으로는 다음과 같은 것이 있다.
 +
{{다단2|
 +
* 데이터베이스 작성(<code><nowiki>CREATE DATABASE</nowiki></code>)
 +
* 테이블 만들기(<code><nowiki>CREATE TABLE</nowiki></code>)
 +
|
 +
* 테이블 변경(<code><nowiki>ALTER TABLE</nowiki></code>)
 +
* 테이블 삭제(<code><nowiki>DROP TABLE</nowiki></code>)
 +
|}}
 +
인터베이스는 데이터베이스 메타데이터 및 그에 대한 기타 정보를 데이터베이스 생성 시 자동으로 생성되는 시스템 테이블에 저장한다. 모든 시스템 테이블 이름은 "<code><nowiki>RDB$</nowiki></code>"로 시작한다. 시스템 테이블의 예로는 데이터베이스의 각 테이블에 대한 정보를 가지고 있는 <code><nowiki>RDB$RAION</nowiki></code>과 데이터베이스의 도메인에 대한 정보를 가지고 있는 <code><nowiki>RDB$FEX</nowiki></code>가 있다. 충분한 지식 없이 이러한 시스템 테이블에 쓰는 것은 데이터베이스를 손상할 수 있다. 따라서, 공공 사용자들은 오직 그들 중에서 선택할 수 있다. 데이터베이스 소유자 및 SYSDBA 사용자는 전체 읽기 및 쓰기 권한을 가지고 있으며, 다른 사용자가 원할 경우 이러한 권한을 다른 사용자에게 할당할 수 있다. 권한이 있는 경우 시스템 테이블의 열을 직접 수정할 수 있지만, 시스템 테이블 간의 상호 관계를 모두 이해하지 않는 한 직접 수정하면 다른 시스템 테이블이 손상되고 데이터베이스가 손상될 수 있다.<ref name="embarcadero 데이터 정의">〈[http://docwiki.embarcadero.com/InterBase/2020/en/What_is_Data_Definition%3F What is Data Definition]〉, 《embarcadero docwiki》</ref>
 +
 +
=== 아이에스큐엘 사용 ===
 +
<code><nowiki>isql</nowiki></code>을 사용하여 메타데이터를 대화식으로 생성, 업데이트 및 삭제하거나 데이터 정의 문이 포함된 아이에스큐엘에 파일을 입력하면 사용자에게 묻지 않고 아이에스큐엘에 의해 실행된다. 일련의 개별 에스큐엘 문을 다시 입력하는 것보다 파일을 수정하는 것이 더 쉽고, 파일은 데이터베이스에 대한 변경사항의 기록을 제공하기 때문에 일반적으로 데이터 정의 파일을 사용하는 것이 바람직하다. 아이에스큐엘 인터페이스는 기존 데이터에 대한 간단한 변경이나 데이터베이스 쿼리 및 결과 표시에 편리할 수 있다. 당신은 또한 대화형 인터페이스를 학습 도구로 사용할 수 있다. 하나 이상의 샘플 데이터베이스를 생성하면 인터베이스에 빠르게 익숙해질 수 있다.<ref name="using isql">〈[http://docwiki.embarcadero.com/InterBase/2020/en/Using_isql Using isql]〉, 《embarcadero docwiki》</ref>
 +
 +
=== 데이터 정의 파일 사용 ===
 +
데이터 정의 파일에는 데이터베이스 또는 다른 에스큐엘 문을 생성, 변경 또는 삭제하는 문이 포함될 수 있다. 데이터 정의 파일을 통해 에스큐엘 문을 발급하려면 텍스트 편집기를 사용하여 데이터 정의 파일을 생성한다. 데이터 정의 파일의 모든 후속 데이터 정의 언어(DDL, Data Definition Language)문장에 대한 가시성을 보장하기 위해 각 데이터 정의 언어 문을 COMPT에 따라야 한다. 파일을 저장하고 파일을 아이에스큐엘에 입력한다.<ref name="Using a Data Definition File">〈[http://docwiki.embarcadero.com/InterBase/2020/en/Using_a_Data_Definition_File Using a Data Definition File]〉, 《embarcadero docwiki》</ref>
 +
 +
== 데이터베이스 설계 ==
 +
데이터베이스는 실제 조직과 그 프로세스를 설명하며, 상징적으로 실제 개체를 표와 다른 데이터베이스 개체로 표현한다. 일단 정보가 데이터베이스 객체로 정리되고 저장되면, 데스크톱 워크스테이션과 컴퓨터 단말기에 표시되는 애플리케이션이나 사용자 인터페이스에 의해 접속할 수 있다. 성능이 우수한 데이터베이스를 생산하는 데 있어 가장 중요한 요소는 우수한 데이터베이스 설계다. 논리적 데이터베이스 설계는 정보의 크고 이기종 적인 구조를 더 작고 동질적인 데이터 개체로 분해하는 것으로 구성된 반복 프로세스다. 이 과정을 정상화라고 한다. 정규화의 목표는 데이터베이스의 데이터 사이의 자연적인 관계를 결정하는 것이다. 이것은 한 테이블을 더 적은 수의 열이 있는 두 개 이상의 테이블로 분할함으로써 이루어진다. 정상화 과정에서 테이블이 분할되면 조인 연산과 함께 두 테이블을 다시 조립할 수 있기 때문에 데이터 손실이 없다. 이러한 방식으로 테이블을 단순화하면 가장 호환성이 높은 데이터 요소와 속성을 하나의 테이블로 그룹화할 수 있다.<ref name="overview of design lssues"> , 〈[http://docwiki.embarcadero.com/InterBase/2020/en/Overview_of_Design_Issues Overview of Design Issues]〉, 《embarcadero docwiki》</ref>
 +
 +
=== 데이터베이스 대 데이터 모델 ===
 +
데이터베이스의 설명과 데이터베이스 자체를 구분하는 것이 중요하다. 데이터베이스에 대한 설명을 데이터 모델이라고 하며 설계 시간에 생성된다. 모델은 테이블과 열을 작성하기 위한 템플릿으로서, 테이블 또는 관련 데이터가 데이터베이스에 존재하기 전에 작성된다. 데이터 모델은 데이터 객체 또는 엔티티, 데이터 유형, 사용자 작업, 객체 간의 관계, 무결성 제약 등을 포함한 데이터베이스의 논리적 구조를 설명한다. 관계형 데이터베이스 모델에서 논리 설계에 대한 결정은 데이터베이스의 물리적 구조와 완전히 독립적이다. 이러한 분리는 매우 융통성이 있다.
 +
* 설계 시 데이터 개체 간의 물리적 액세스 경로를 정의할 필요가 없음으로, 데이터베이스에 존재하는 거의 모든 논리적 관계에 대해 데이터베이스에 질의할 수 있다.
 +
* 데이터베이스를 설명하는 논리적 구조는 기본 물리적 스토리지 구조의 변경에 영향을 받지 않는다. 이 기능은 교차 플랫폼 이동성을 보장한다. 데이터 모델에 의해 정의된 데이터베이스 액세스 메커니즘은 데이터 저장 방법과 관계없이 동일하게 유지되기 때문에 관계형 데이터베이스를 다른 하드웨어 플랫폼으로 쉽게 전송할 수 있다.
 +
* 데이터베이스의 논리적 구조도 최종 사용자가 보는 것과 무관하다. 설계자는 보기를 사용하여 기본 데이터베이스 테이블의 사용자 정의 버전을 작성할 수 있다. 보기는 데이터의 하위 집합이 지정된 사용자 또는 그룹에 표시한다. 보기는 중요한 데이터를 숨기거나 사용자가 관심이 없는 데이터를 필터링하는 데 사용할 수 있다.
 +
 +
=== 디자인 목표 ===
 +
관계형 데이터베이스는 매우 유연하지만, 데이터 무결성과 만족스러운 데이터베이스 성능을 보장할 수 있는 유일한 방법은 견고한 데이터베이스 설계뿐이며, 이는 열악한 설계 결정에 대한 내장 보호는 없다. 우수한 데이터베이스 설계는 다음과 같다.
 +
* 데이터베이스에 대한 사용자의 콘텐츠 요구 사항 충족 데이터베이스를 설계하기 전에 사용자의 요구 사항과 데이터베이스 사용 방법에 대해 광범위한 조사를 수행해야 한다.
 +
* 데이터의 일관성 및 무결성 보장 테이블을 설계할 때 사용자나 응용 프로그램이 테이블과 해당 열에 입력할 수 있는 내용을 제한하는 특정 속성과 제약 조건을 정의하십시오. 표에 저장되기 전에 데이터를 검증함으로써 데이터베이스는 데이터 모델의 규칙을 적용하고 데이터 무결성을 보존한다.
 +
* 자연스럽고 이해하기 쉬운 정보 구조 제공. 좋은 설계는 쿼리를 이해하기 쉽게 하므로 사용자는 데이터에 불일치를 도입하거나 중복 데이터를 입력하도록 강요받을 가능성이 작다. 이것은 데이터베이스 업데이트와 유지보수를 용이하게 한다.
 +
* 사용자의 성능 요구 사항 충족 우수한 데이터베이스 설계로 더 나은 성능 보장 테이블이 너무 크도록 허용되거나 인덱스가 너무 많거나 적으면 긴 대기 시간이 발생할 수 있다. 데이터베이스가 매우 크고 거래량이 많을 경우 설계 불량으로 인한 성능 문제가 확대된다.
 +
 +
== 데이터 유형 정보 ==
 +
인터베이스 테이블에서 새 열을 생성할 때 정의해야 하는 기본 속성은 데이터 유형으로, 열에 포함할 수 있는 유효한 데이터 집합을 설정한다. 해당 데이터 유형으로 나타낼 수 있는 값만 허용된다. 열에 포함할 수 있는 유효한 데이터 집합을 설정하는 것 외에도 데이터 유형은 데이터에 대해 수행할 수 있는 작업 유형을 정의한다. 예를 들어, <code><nowiki>INTEGER</nowiki></code> 열의 숫자는 산술 연산으로 조작할 수 있지만, <code><nowiki>CHARACTER</nowiki></code> 열은 조작할 수 없다. 데이터 유형은 각 데이터 항목이 디스크에서 차지하는 공간도 정의한다. 특히 테이블이 매우 큰 경우 디스크 공간이 제한될 때 데이터 값에 대한 최적의 크기를 선택하는 것은 중요한 고려 사항이다. 인터베이스는 다음과 같은 데이터 유형을 지원한다.
 +
{{다단4|
 +
*<code><nowiki>INTEGER</nowiki></code> 과 <code><nowiki>SMALLINT</nowiki></code>
 +
*<code><nowiki>FLOAT</nowiki></code> 과 <code><nowiki>DOUBLE PRECISION</nowiki></code>
 +
|
 +
*<code><nowiki>NUMERIC</nowiki></code> 과 <code><nowiki>DECIMAL</nowiki></code>
 +
*<code><nowiki>DATE, TIME</nowiki></code> 과 <code><nowiki>TIMESTAMP</nowiki></code>
 +
|
 +
*<code><nowiki>CHARACTER</nowiki></code> 과 <code><nowiki>VARYING CHARACTER</nowiki></code>
 +
*<code><nowiki>BOOLEAN</nowiki></code>
 +
|
 +
*<code><nowiki>BLOB</nowiki></code>
 +
|}}
 +
인터베이스는 표준 에스큐엘 데이터 유형 중 하나로 쉽게 저장할 수 없는 데이터를 저장할 수 있는 Blob 데이터 유형을 제공한다. BLOB는 비트맵 그래픽 이미지, 벡터 도면, 사운드 파일, 비디오 세그먼트, 장 또는 장, 장 또는 장, 기타 종류의 멀티미디어 정보와 같이 불확정하고 가변적인 크기의 데이터 객체를 저장하는 데 사용된다.
 +
또한 인터베이스는 대부분의 데이터 유형의 어레이를 지원한다. 배열은 단일 인터베이스 데이터 유형으로 구성된 개별 항목의 행렬이다(BLOB 제외). 배열은 1에서 16차원을 가질 수 있다. 배열은 단일 엔터티로 처리하거나 항목별로 조작할 수 있다.
 +
 +
년, 월, 요일 및 시간에 대한 정보를 포함하는 <code><nowiki>TIMestamp</nowiki></code> 데이터 유형이 지원된다. <code><nowiki>TIMAPS</nowiki></code> 데이터 유형은 두 개의 긴 정수로 저장되며, 호스트 언어 프로그램에 입력하거나 조작할 때 인터베이스로 변환해야 한다. <code><nowiki>DATE</nowiki></code> 데이터 유형에는 해당 달의 연도, 월 및 요일에 대한 정보가 포함되어 있다. <code><nowiki>TIME</nowiki></code> 데이터 유형에는 시간, 분, 초 및 10분의 1초, 100분의 1초, 1000초의 시간 정보가 포함된다.
 +
 +
{| class = wikitable
 +
! 이름
 +
! 크기
 +
! 범위 / 정밀도
 +
! 기술
 +
|- valign="top"
 +
|
 +
<code><nowiki>BLOB</nowiki></code>
 +
|
 +
가변
 +
|
 +
* 없음
 +
* Blob 세그먼트 크기가 64K로 제한된다.
 +
|
 +
* 그래픽, 텍스트 및 디지털화된 음성과 같은 대용량 데이터를 저장하기 위해 동적으로 확장 가능한 데이터 유형이다.
 +
* 기본 구조 단위는 세그먼트이다.
 +
* Blob하위 유형은 Blob내용을 설명한다.
 +
|- valign="top"
 +
|
 +
부울
 +
|
 +
16비트
 +
|
 +
* <code><nowiki>TRUE</nowiki></code>
 +
* <code><nowiki>FALSE</nowiki></code>
 +
* <code><nowiki>UNKNOWN</nowiki></code>
 +
|
 +
* 참 값을 나타낸다. <code><nowiki>TRUE</nowiki></code>, <code><nowiki>FALSE</nowiki></code>, 및 <code><nowiki>UNKNOWN</nowiki></code>
 +
* ODS 11 이상의 언어 필요
 +
|- valign="top"
 +
|
 +
<code><nowiki>CHAR</nowiki></code>(<n>)
 +
|
 +
<n> 문자
 +
|
 +
* 1~32,767 바이트
 +
* 문자 집합 문자 크기는 32K에 들어갈 수 있는 최대 문자 수를 결정한다.
 +
|
 +
* 고정 길이 <code><nowiki>CHAR</nowiki></code> 또는 텍스트 문자열 유형
 +
* 대체 키워드: <code><nowiki>CHARACTER</nowiki></code>
 +
|- valign="top"
 +
|
 +
<code><nowiki>DATE</nowiki></code>
 +
|
 +
32 비트
 +
|
 +
100년 1월 <br/> ~ 32768년 2월 29일
 +
|
 +
* 날짜를 32비트 단어로 저장
 +
|- valign="top"
 +
|
 +
<code><nowiki>DECIMAL</nowiki></code>­(<정밀도>,<척도>)
 +
|
 +
변수 <br/> (16, 32, 또는 <br/> 64 비트)
 +
|
 +
* <정밀도> = 1에서 18까지, 저장할 정밀도의 최소<정밀도>숫자를 지정한다.
 +
* <척도> = 0~18. 소수 자릿수가 <척도>보다 작거나 같아야 한다.
 +
|
 +
* 오른쪽에서 소수 점<척도>자리 수
 +
* 예: <code><nowiki>DECIMAL</nowiki></code>(10,3)숫자는 ppppp.ss의 형태로 정확하게 유지된다.
 +
|- valign="top"
 +
|
 +
<code><nowiki>DOUBLE ­PRECISION</nowiki></code>
 +
|
 +
64 bits<sup>1</sup>
 +
|
 +
2.225 <span class="CACallout">x</span> 10<sup>–308 </sup>to 1.797 <span class="CACallout">x</span> 10<sup>308</sup>
 +
|
 +
IEEE 이중 정밀도: 15자리
 +
|- valign="top"
 +
|
 +
<code><nowiki>FLOAT</nowiki></code>
 +
|
 +
32 비트
 +
|
 +
1.175 <span class="CACallout">x</span> 10<sup>–38</sup> to 3.402 <span class="CACallout">x</span> 10<sup>38</sup>
 +
|
 +
IEEE 단일 정밀도: 7자리
 +
|- valign="top"
 +
|
 +
<code><nowiki>INTEGER</nowiki></code>
 +
|
 +
32 비트
 +
|
 +
–2,147,483,648~2,147,483,647
 +
|
 +
서명된 긴 단어(긴 단어)
 +
|- valign="top"
 +
|
 +
<code><nowiki>NUMERIC</nowiki></code>(<정밀도>, <척도>)
 +
|
 +
변수 (16, 32, 또는 <br/> 64 비트)
 +
|
 +
* <정밀도> = 1에서 18까지, 저장할 정밀도의 최소<정밀도>숫자를 지정한다.
 +
* <척도> = 0~18. 소수 자릿수가 <척도>보다 작거나 같아야 한다.
 +
|
 +
* 오른쪽에서 소수 점<척도>자리 수
 +
* 예: <code><nowiki>NUMERIC</nowiki></code>(10,3)숫자는 ppppp.ss의 형태로 정확하게 유지된다.
 +
|- valign="top"
 +
|
 +
<code><nowiki>SMALLINT</nowiki></code>
 +
|
 +
16 비트
 +
|
 +
–32,768~32,767
 +
|
 +
짧게 서명됨(단어)
 +
|- valign="top"
 +
|
 +
시간
 +
|
 +
32 비트
 +
|
 +
오전 0:00-오후 23:59:59.9999
 +
|
 +
 +
인터베이스 유형의 서명되지 않은 정수 <code><nowiki>ISC_TIME</nowiki></code>:하루 중 시간(자정 이후 0.0001초 단위)
 +
|- valign="top"
 +
|
 +
타임스태프
 +
|
 +
64 비트
 +
|
 +
100년 1월 <br/> ~  32768년 2월 29일
 +
| 인터베이스 유형 <code><nowiki>ISC_TIMestamp;</nowiki></code> 날짜 및 시간 정보를 결합함
 +
|- valign="top"
 +
|
 +
<code><nowiki>VARCHAR</nowiki></code>(<n>)
 +
|
 +
<n> characters
 +
|
 +
* 1~32,765 바이트
 +
* 문자 집합 문자 크기는 32K에 들어갈 수 있는 최대 문자 수를 결정한다.
 +
|
 +
* 변수 길이 <code><nowiki>CHAR</nowiki></code> 또는 텍스트 문자열 유형
 +
* 대체 키워드: <code><nowiki>CHAR VARYING</nowiki></code>, <code><nowiki>CHARACTER VARYING</nowiki></code>
 +
|}<ref name="About InterBase Data Types"> 〈[http://docwiki.embarcadero.com/InterBase/2020/en/About_InterBase_Data_Types About InterBase Data Types]〉, 《embarcadero docwiki》</ref>
 +
 +
== 비교 ==
 +
 +
=== 파이어버드 ===
 +
인터베이스(InterBase)의 속도와 확장성이 더 뛰어나며 특히 재해 복구 및 데이터 보호 규정 준수 기능이 매우 뛰어나다. 또한 체인지뷰(Change Views) 기능이 있어 비용은 적게 들면서도, 확장성 뛰어난 복제 엔진 API를 추가하여 가장 낮은 비용으로 데이터 이동과 복제 라이선스 비용을 크게 줄일 수 있다.
 +
 +
=== 마이에스큐엘 ===
 +
오라클 마이에스큐엘(MySQL)은 무료로 많이들 사용하는 오픈 소스 데이터베이스이지만, 배포 형식에 따라 연간 구독 서비스(서브스크립션)를 구매해야 한다. 인터베이스는 이와 비교해 더 많은 기능을 제공한다. 데이터를 보호하고 비즈니스 연속성을 보장하려면 데이터 백업과 데이터 암호화를 모두 신중하게
 +
고려해야 한다. 이 기능은 마이에스큐엘의 경우 가장 비싼 마이에스큐엘 엔터프라이즈 버전에서만 사용할 수 있지만, 인터베이스는 모든 유료 버전에서 온라인 데이터 백업과 투명한 데이터 암호화를 모두 지원한다. 마이에스큐엘 아키텍처는 서버 간 복제를 중심으로 하며 모바일 데이터베이스를 제공하지 않는다. 인터베이스의 체인지 뷰 기능은 로컬 또는 분산 형식의 다양한 원격 장치 간의 데이터 이동을 쉽게 처리 할 수 있도록 만들어져 확장 가능한 최신 복제(응답) 요구 사항에 이상적이다.
 +
 +
=== 마이크로소프트 에스큐엘 ===
 +
마이크로소프트 에스큐엘은 강력한 최고급 데이터베이스이지만 (TDE, Transparent Data Encryption)와 같은 비즈니스 핵심 기능이 필요하다면 가장 가격이 높은 마이크로소프트 에스큐엘 엔터프라이즈를 구매해야 한다. 투명한 데이터 암호화(TDE, Transparent data encryption)는 기업이 데이터 보호법과 PCI / HIPAA 준수와 같은 표준을 준수할 수 있도록 해주는 기능이다.투명한 데이터 암호화는 마이크로소프트 에스큐엘의 경우, 엔터프라이즈에서만 사용할 수 있는 기능이지만 인터베이스는 어떤 버전이라도 라이선스 구매 시 사용할 수 있다. 재해 복구 서버 비용: 인터베이스에는 보조 재해 복구 서버에 대한 라이선스가 포함되어 있다. 마이크로소프트 에스큐엘이 추가 서버 라이선스를 구매해야 하는 것과는 대조적이다. 다시 말해, 투명한 데이터 암호화와 재난 복구 기능을 갖춘 8개의 CPU 서버 관리 시, 인터베이스를 사용하면 1억 3천 만원 이상의 비용을 절감할 수 있다. 마이크로소프트 에스큐엘 복제 기술은 서버 간의 복제에 중점을 두고 있다. 인터베이스가 다양한 원격 장비들까지 지원하는 것과는 차이가 있다.
 +
 +
=== 에스큐엘 애니웨어 ===
 +
원래 Sybase 에스큐엘 Anywhere는 2012년 SAP가 인수했다. SAP에 소속된 이후로는 SAP 제품 개발 및 기능 요구 사항에 중점을 두고 있다. SAP의 데이터베이스 플랫폼인 HANA가 앞으로 SAP 대표적인 제품이 될 것이라는 이야기가 있어, 많은 사람이 에스큐엘 애니웨어의 행방에 관심이 많다. 인터베이스와 에스큐엘 애니웨어 모두 강력한 모바일 오퍼링과 데이터 변경 추적 기능을 제공한다. 다만 변경 사항을 실시간으로 확인할 수 있는 인터베이스의 체인지 뷰(Change Views) 기능은 자체 내장되어 있지만, 이와 같은 기능을 하는 에스큐엘 애니웨어의 모빌링크(MobiLink)는 디바이스당 비용을 별도로 내고 구매해야 한다.
 +
 +
=== 에스큐라이트 ===
 +
인터베이스 아이비라이트와 에스큐라이트 둘 다 무료 데이터베이스이다. 에스큐라이트에는 SQL92 에 대응하는 특정 기능, 특히 저장 프로시저가 없다. 모바일 용 비즈니스 데이터를 관리할 수 있는 인터베이스 ToGo는 재해 복구와 데이터 보호 준수 기능이 뛰어나다. 개발 주기 전반에 걸쳐 인터베이스는 보호 기능을 갖추고 있는데, 이 기능은 데이터를 손실했을 때 위험 부담(벌금, 규제 조치 등)을 크게 줄여준다. SQLite는 기본적으로 스테로이드의 플랫 파일이다. SQLite는 데이터 무결성을 보장하기 위해 동일한 수준의 데이터베이스 지원을 권장하며 동시성이 높지 않다. 이 때문에 ISV 개발에는 실제로 적합하지 않다.<ref name="데브기어"> 김원경, 〈[https://tech.devgear.co.kr/index.php?mid=delphi_news&category=6388&document_srl=460809 인터베이스(InterBase)와 다른 데이터베이스 비교]〉, 《데브기어》, 2020-02-20</ref>
 +
 +
== 전망 ==
 +
인터베이스는 관계형 데이터베이스 제품들 중에서 숨겨진 보석 중 하나이다. 인터베이스는 1980 년대 초반부터 볼랜드의 주력 제품으로 업데이트를 통해 수십 년에 걸처, 때로는 다른 데이터베이스와 같은 표준에 맞춰 새로운 버전을 계속 출시하고 있다. 2008 년에 엠바카데로가 볼랜드 개발 포트폴리오를 인수하면서 인터베이스는 다시 최신 기술 발전에 발 맞추어 나가고 있다. 체인지 뷰와 같은 기능은 이러한 최신 기술을 능가한다. 엠바카데로가 인수한 이후 꾸준한 리팩토링과 업데이트 덕분에 급격한 성능 향상을 보였다. 인터베이스는 성능, 보안 및 플랫폼 다양성의 대명사인 최첨단 제품이다. 인터베이스가 차세대 데이터베이스가 되어야 하는 이유를 5가지 정도로 요약하면 다음과 같다.<ref name="5가지"> Jon Lennart Aasenden, 〈[https://community.idera.com/developer-tools/b/blog/posts/five-reasons-to-use-interbase-in-2020-and-beyond?utm_source=Eloqua&utm_medium=email&utm_content=Article-200407-InterBase2020IoT Five Reasons to use InterBase in 2020 and Beyond]〉, 《embarcadero》, 2020-01-17</ref>
 +
 +
=== 플랫폼 다양성 ===
 +
기술의 세계는 매우 짧은 시간 안에 극적으로 변한다. 소프트웨어나 하드웨어 등 기술이 발전하는 방식은 일반적으로 갑작스럽고, 예기치 않은 도약을 통해 이루어진다. 샌프란시스코에서 열린 애플 개발자 콘퍼런스에서 아이폰을 공개한 스티브 잡스(Steve Jobs)가 주도한 2007년의 모바일 혁명은 그러한 도약 중 하나였다. 하룻밤 사이에 소프트웨어 개발 기준이 결정적으로 바뀌었다. 2020년까지 빠르게 발전하여 지구 인구의 3분의 2가 주머니에 잠정적인 슈퍼컴퓨터를 가지고 다니고 있다. 각각은 애플리케이션으로 채워지고 복잡성이 계속 증가하며 안정적인 데이터 지속성이 필요하다. 오늘날 비즈니스는 점점 더 모바일 장치에서 수행되고 있으며, 그에 따라 다양한 플랫폼, 운영 체제 및 하드웨어에 소프트웨어를 배포 할 수 있는 기능이 필요하다. 멀티 플랫폼 컴퓨팅은 이제 프로그래밍 언어와 관계없이 모든 개발자가 전략을 기반으로 해야 하는 전제 조건이다. 다중 플랫폼 지원이 필요한 경우, 인터베이스는 선구자이다. 이미 80년대 후반부터, 인터베이스는 유닉스를 사용하는 크고 강력한 업무용 컴퓨터에서부터 아폴로 또는 코모도어 아미가와 같은 보다 작은 가정용 컴퓨터에 이르기까지 다양한 컴퓨터 시스템에서 사용 가능했다. 2020년의 목표는 매우 다르지만 인터베이스는 이전과 동일하고 플랫폼 독립적인 데이터베이스 시스템으로 남아 있다. 현재는 모든 주요 플랫폼 및 운영 체제에 배포 할 수 있다. 또한, 인터베이스는 지원되는 모든 플랫폼에서 이기종 OS 연결을 지원한다.
 +
 +
* '''사물 인터넷'''
 +
:사물 인터넷(IoT)의 출현으로 임베디드 컴퓨팅은 획기적인 변화를 거쳤다. 휴대폰 혁명과 밀접한 관련이 있으며 여기에서 우리가 다루는 주제 범위와 관련이 있다. 임베디드 컴퓨팅은 시장에서 특화된(전기 기술자가 어느 정도 지배하는) 틈새시장이었다. 그러나 휴대 전화 혁명으로 저렴한 CPU, 칩셋 및 SoC(system on a chip)의 대량 생산이 촉진되면서 누군가가 새로운 스타일의 임베디드 보드를 조립하기까지는 시간문제였다. 그리고 2012년에 드디어 35달러짜리 라즈베리 파이(Raspberry Pi) 미니컴퓨터가 현실화하였다. 이 새로운 종류의 임베디드 보드는 휴대폰 및 태블릿과 동일한 부품으로 만들어 졌기 때문에 소비자 시장에 흥미로운 성능을 제공한다. 동일한 CPU를 가지고 있으며 동일한 운영 체제를 실행한다. 즉, 동일한 소프트웨어를 실행할 수 있다. 이런 경우 인터베이스가 적격이다. 하드웨어를 포함하는 솔루션을 만드는 것은 소프트웨어 개발에서 가장 흥미로운 측면 중 하나이다. 인터베이스는 광범위한 임베디드 장치(ARM 및 x86)를 포괄한다. 사물 인터넷 보드와 휴대 전화는 궁극적으로 동일한 부품의 구성이 다르다. 그리고 이러한 소형 장치에서는 빠르고 안정적이며 안전한 데이터베이스가 매우 중요하다. 다행히도 인터베이스에서 이 부분을 커버하고 있다.
 +
 +
=== 체인지 뷰 ===
 +
인터베이스 고유의 기능 중 하나는 알림 및 피드백을 처리하는 방법이다. 인터베이스에는 의심할 여지없이 개발자에게 데이터 변경 사항을 알리는 몇 가지 메커니즘이 있다. 이 중 가장 강력한 기능은 체인지 뷰(변경 보기)이다. 일반적인 데이터베이스 보기와 달리 체인지 뷰는 데이터 구독 모델을 기반으로 한다. 네트워크 연결 및 페이 로드와 같은 것들에 대한 영향은 즉각적이다. 미들웨어의 캐싱에 의존하여 다른 대상 (예 : 웹 애플리케이션과 모바일 애플리케이션)에 대해 동일한 데이터를 제공하는 데이터베이스 클러스터로 작업할 때 특히 그렇다. 미들웨어의 가장 일반적인 기술인 캐시를 업데이트하기 위해 고정 행 세트를 수동으로 폴링하는 대신 체인지 뷰는 변경된 내용만 가져온다. 원하는 경우 키 프레임 인 전체 행 세트를 폴링하여 서비스를 시작한다. 서비스가 시작된 후에 변경 사항만 가져온다. 데이터 집약적 시스템에서 사용될 경우 체인지 뷰는 성능과 응답성에 막대한 영향을 미친다.
 +
 +
=== 테이블 스페이스 ===
 +
성숙한 데이터베이스 엔진의 가장 큰 장점은 생각하지 못한 시나리오에 사용할 수 있는 옵션이 있다는 것이다. 개발 환경에서 수십 년 동안 사용된 데이터베이스 엔진은 최종 사용자와 개발자에게 혜택을 줄 수 있는 풍부한 경험을 축적했다. 여기에는 일부 "더 규모가 큰" 데이터베이스 시스템이 제공하지 못하는 깊이와 내용이 있다. 테이블 스페이스는 개발자가 일반적으로 처리하는 테이블 구조 외부에 존재하는 데이터 관리 측면이다. 관리 및 고급 관리 범주에 속한다. 전반적인 개념은 특히 초기 계획보다 훨씬 더 크게 확장할 수 있는 소프트웨어를 만드는 경우 특히 이해하기 쉽고 충분히 확장하기가 쉽다. 데이터베이스 관리자는 테이블 스페이스를 통해 테이블과 인덱스가 실제로 데이터베이스 파일에 저장되는 위치를 재구성한다. 하루 24시간 연중무휴로 액세스할 수 있는 20TB의 데이터베이스를 4000명의 실사용자가 관리할 때 이것은 매우 흥미로워진다. 인증 데이터 (즉 사용자 이름, 비밀번호 해시 등의 필드)를 SSD 디스크에 위임 할 수 있으면 성능에 큰 장점이 있다. 이와 같은 기능은 웹 기반 스토어프런트로 운영되는 온라인 비즈니스에 매우 적합하다. 연구에 따르면 잠재 고객이 다른 곳으로 가기 전에 지연을 용인할 평균 시간은 초 단위로 측정된다. 파일 시스템 수준에서 데이터 성능을 조정할 수 있다는 것은 인상적이고 환영할 만한 일이다.
 +
 +
=== 사용자 정의 함수 기본 기능 ===
 +
사용자 정의 함수(UDF, User Define Function)는 개발자가 쿼리 기능을 확장 할 수 있는 간단하고 우아한 방법이다. 여러 가지 방법으로 사용자 정의 함수를 고유 플러그인 유형으로 볼 수 있다. 새로운 것은 아니지만 사용자 정의 함수는 오랫동안 인터베이스 응용 프로그램 프로그래밍 인터페이스 일부였다. 인터베이스를 매우 다양하고 대중적으로 만드는 데 도움이 되는 기능 중 하나이다. 사용자 정의 함수를 언급하지 않고 인터베이스에대한 글을 작성하는 것은 생각할 수 없다. 사용자 정의 함수는 개발자가 필요한 기능을 구현하는 일반적인 네이티브 라이브러리이다. 인터베이스에 로드되면 표준 호환 에스큐엘 함수와 함께 해당 기능을 사용할 수 있다. 이것은 흥미로운 데이터 처리 기회를 열어준다. Blob 데이터는 전송되기 전에 처리를 위해 기본 함수에 오프로드될 수 있다. 사용자 정의 함수와 웹 테크놀로지를 결합하여 개발자에게 오라클 피엘(PL) / 에스큐엘(SQL)과 유사한 시스템을 조립할 수 있는 빌딩 블록을 제공하는 방법을 이해하는 데 큰 도움이 되지는 않지만, 제한과 비용은 없다.
 +
 +
=== 보안 ===
 +
엠바카데로는 인터베이스 2009 릴리스와 함께 고급 암호화 표준(AES) 암호화를 도입했다. 대부분의 데이터베이스 엔진은 파일 수준에서 이진 읽기 / 쓰기 암호화로 작동한다. 즉,  읽고 쓸 때 데이터베이스 파일을 구성하는 데이터 페이지는 그대로 암호화되고 해독된다. 그러나 인터베이스는 레벨 2 수준의 보안도 지원한다. 또한 배포 전략에 하나 또는 둘 전부를 적용하도록 선택할 수 있다.
 +
 +
* '''데이터베이스 레벨 암호화''' : 간단히 말해서, 이것은 스토리지 파일을 구성하는 데이터 페이지에 암호를 적용하는 가장 일반적인 유형의 암호화이다.
 +
 +
* '''칼럼 레벨 암호화''' : 이름에서 알 수 있듯이 이것은 실제 데이터베이스 칼럼을 보호하기 위한 전략이다. 이 암호화 전략은 데이터베이스 레벨 암호화와 별개이며 추가 보안 계층을 추가한다는 점을 강조 해야 한다.
 +
 +
* '''암호 지원''' : 인터베이스는 두 개의 암호를 지원한다. 오래된 산업 표준 데이터 암호화 표준(DES, Data Encryption Standard) 알고리즘이 있다. 이것은 기밀이 아닌 데이터에 적합한 약한 형태의 암호화이다. 별도의 라이선스가 필요하지 않다는 장점이 있다. 고급 암호화 표준(AES, Advanced Encryption Standard)은 두 번째 암호화 유형이다. 2002 년에 미국 연방 표준으로 채택되었다. 고급 암호화 표준은 데이터 암호화 표준보다 더 많은 수의 데이터를 휘저을 수 있다. 미국은 그 강점 때문에 고급 암호화 표준의 수출을 규제하고 있다.
 +
 +
{{각주}}
 +
 +
== 참고자료 ==
 +
* 〈[https://dbdb.io/db/interbase InterBase]〉, 《Database of Databases》
 +
* 〈[http://docwiki.embarcadero.com/InterBase/XE3/en/Welcome Welcome]〉, 《embarcadero docwiki》
 +
* embarcadero - https://www.embarcadero.com/products/interbase
 +
* 〈[http://docwiki.embarcadero.com/InterBase/2020/en/What_is_Data_Definition%3F What is Data Definition]〉, 《embarcadero docwiki》
 +
* 〈[http://docwiki.embarcadero.com/InterBase/2020/en/Using_isql Using isql]〉, 《embarcadero docwiki》
 +
* 〈[http://docwiki.embarcadero.com/InterBase/2020/en/Using_a_Data_Definition_File Using a Data Definition File]〉, 《embarcadero docwiki》
 +
* 〈[http://docwiki.embarcadero.com/InterBase/2020/en/Overview_of_Design_Issues Overview of Design Issues]〉, 《embarcadero docwiki》
 +
* 김원경, 〈[https://tech.devgear.co.kr/index.php?mid=delphi_news&category=6388&document_srl=460809 인터베이스(InterBase)와 다른 데이터베이스 비교]〉, 《데브기어》, 2020-02-20
  
 
== 같이 보기 ==
 
== 같이 보기 ==
7번째 줄: 337번째 줄:
 
* [[파이어버드]]
 
* [[파이어버드]]
  
{{로고 필요}}
+
{{데이터베이스 관리 시스템|검토 필요}}
{{데이터베이스 관리 시스템|토막글}}
 

2020년 8월 21일 (금) 14:30 기준 최신판

인터베이스(InterBase)
인터베이스(InterBase)

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

개요[편집]

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

역사[편집]

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

특징[편집]

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

기술[편집]

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

보안[편집]

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

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

가벼움[편집]

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

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

재해복구[편집]

애플리케이션과 비즈니스는 데이터에서 실행되므로 데이터베이스 재해 복구가 매우 중요한 기능임 인터베이스는 실시간 백업, 증분 덤프, 다중 스레드 복원, 자동 쓰기 로깅 및 시점 복구를 통해 효과적인 재해 복구 계획을 지원한다. 데이터베이스는 명령 줄, 관리자 도구, 백업 응용 프로그램 프로그래밍 인터페이스(API, Application Programming Interface)를 사용한 코드 또는 개방형 데이터베이스 접속성(ODBC) 드라이버 그래픽 유저 인터페이스를 통해 백업할 수 있다.[4]

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

복제[편집]

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

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

신축성[편집]

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

  • 교차 언어 지원 : 인터베이스는 자바, C, C++, 를 지원한다. 닷넷, 델파이, PHP, 루비와 긴밀하게 통합되며 라드 스튜디오 통합 개발 환경(RAD Studio IDE)과 긴밀하게 통합된다. 비주얼 스튜디오 개발자는 액티브엑스 데이터 오브젝트(ADO, ActiveX Data Objects)를 통해 인터베이스와 협력할 수 있다.
  • 서버 데이터 저장소 : 온라인 및 오프라인 애플리케이션 기능을 제공하는 서버와 클라이언트 모두의 상업용 데이터 스토리지. 설치된 서버에는 인터베이스 서버, 개발자 및 평가판이 적합하다.
  • 클라이언트 데이터 저장소  : 인터베이스 ToGo 및 아이비라이트 버전은 로컬 스토리지가 있는 독립 실행형 내장 데이터베이스로 사용할 수 있다. 로컬 스토리지는 네트워크 트래픽의 필요성을 줄여 비용을 절감하고 앱 속도와 사용자 경험을 개선한다.
  • 단일 온디스크 형식 : 인터베이스의 단일 파일 형식을 통해 어디서나 애플리케이션을 배포할 수 있다. 유니파이드 온디스크 포맷을 통해 개발 머신에서 직접 신속하게 지원 및 테스트할 수 있다.

에스큐엘 호환[편집]

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

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

데이터 정의[편집]

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

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

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

아이에스큐엘 사용[편집]

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

데이터 정의 파일 사용[편집]

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

데이터베이스 설계[편집]

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

데이터베이스 대 데이터 모델[편집]

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

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

디자인 목표[편집]

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

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

데이터 유형 정보[편집]

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

  • INTEGERSMALLINT
  • FLOATDOUBLE PRECISION
  • NUMERICDECIMAL
  • DATE, TIMETIMESTAMP
  • CHARACTERVARYING CHARACTER
  • BOOLEAN
  • BLOB
인터베이스는 표준 에스큐엘 데이터 유형 중 하나로 쉽게 저장할 수 없는 데이터를 저장할 수 있는 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 비트

100년 1월
~ 32768년 2월 29일

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

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

변수
(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

짧게 서명됨(단어)

시간

32 비트

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

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

타임스태프

64 비트

100년 1월
~ 32768년 2월 29일

인터베이스 유형 ISC_TIMestamp; 날짜 및 시간 정보를 결합함

VARCHAR(<n>)

<n> characters

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

비교[편집]

파이어버드[편집]

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

마이에스큐엘[편집]

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

마이크로소프트 에스큐엘[편집]

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

에스큐엘 애니웨어[편집]

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

에스큐라이트[편집]

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

전망[편집]

인터베이스는 관계형 데이터베이스 제품들 중에서 숨겨진 보석 중 하나이다. 인터베이스는 1980 년대 초반부터 볼랜드의 주력 제품으로 업데이트를 통해 수십 년에 걸처, 때로는 다른 데이터베이스와 같은 표준에 맞춰 새로운 버전을 계속 출시하고 있다. 2008 년에 엠바카데로가 볼랜드 개발 포트폴리오를 인수하면서 인터베이스는 다시 최신 기술 발전에 발 맞추어 나가고 있다. 체인지 뷰와 같은 기능은 이러한 최신 기술을 능가한다. 엠바카데로가 인수한 이후 꾸준한 리팩토링과 업데이트 덕분에 급격한 성능 향상을 보였다. 인터베이스는 성능, 보안 및 플랫폼 다양성의 대명사인 최첨단 제품이다. 인터베이스가 차세대 데이터베이스가 되어야 하는 이유를 5가지 정도로 요약하면 다음과 같다.[11]

플랫폼 다양성[편집]

기술의 세계는 매우 짧은 시간 안에 극적으로 변한다. 소프트웨어나 하드웨어 등 기술이 발전하는 방식은 일반적으로 갑작스럽고, 예기치 않은 도약을 통해 이루어진다. 샌프란시스코에서 열린 애플 개발자 콘퍼런스에서 아이폰을 공개한 스티브 잡스(Steve Jobs)가 주도한 2007년의 모바일 혁명은 그러한 도약 중 하나였다. 하룻밤 사이에 소프트웨어 개발 기준이 결정적으로 바뀌었다. 2020년까지 빠르게 발전하여 지구 인구의 3분의 2가 주머니에 잠정적인 슈퍼컴퓨터를 가지고 다니고 있다. 각각은 애플리케이션으로 채워지고 복잡성이 계속 증가하며 안정적인 데이터 지속성이 필요하다. 오늘날 비즈니스는 점점 더 모바일 장치에서 수행되고 있으며, 그에 따라 다양한 플랫폼, 운영 체제 및 하드웨어에 소프트웨어를 배포 할 수 있는 기능이 필요하다. 멀티 플랫폼 컴퓨팅은 이제 프로그래밍 언어와 관계없이 모든 개발자가 전략을 기반으로 해야 하는 전제 조건이다. 다중 플랫폼 지원이 필요한 경우, 인터베이스는 선구자이다. 이미 80년대 후반부터, 인터베이스는 유닉스를 사용하는 크고 강력한 업무용 컴퓨터에서부터 아폴로 또는 코모도어 아미가와 같은 보다 작은 가정용 컴퓨터에 이르기까지 다양한 컴퓨터 시스템에서 사용 가능했다. 2020년의 목표는 매우 다르지만 인터베이스는 이전과 동일하고 플랫폼 독립적인 데이터베이스 시스템으로 남아 있다. 현재는 모든 주요 플랫폼 및 운영 체제에 배포 할 수 있다. 또한, 인터베이스는 지원되는 모든 플랫폼에서 이기종 OS 연결을 지원한다.

  • 사물 인터넷
사물 인터넷(IoT)의 출현으로 임베디드 컴퓨팅은 획기적인 변화를 거쳤다. 휴대폰 혁명과 밀접한 관련이 있으며 여기에서 우리가 다루는 주제 범위와 관련이 있다. 임베디드 컴퓨팅은 시장에서 특화된(전기 기술자가 어느 정도 지배하는) 틈새시장이었다. 그러나 휴대 전화 혁명으로 저렴한 CPU, 칩셋 및 SoC(system on a chip)의 대량 생산이 촉진되면서 누군가가 새로운 스타일의 임베디드 보드를 조립하기까지는 시간문제였다. 그리고 2012년에 드디어 35달러짜리 라즈베리 파이(Raspberry Pi) 미니컴퓨터가 현실화하였다. 이 새로운 종류의 임베디드 보드는 휴대폰 및 태블릿과 동일한 부품으로 만들어 졌기 때문에 소비자 시장에 흥미로운 성능을 제공한다. 동일한 CPU를 가지고 있으며 동일한 운영 체제를 실행한다. 즉, 동일한 소프트웨어를 실행할 수 있다. 이런 경우 인터베이스가 적격이다. 하드웨어를 포함하는 솔루션을 만드는 것은 소프트웨어 개발에서 가장 흥미로운 측면 중 하나이다. 인터베이스는 광범위한 임베디드 장치(ARM 및 x86)를 포괄한다. 사물 인터넷 보드와 휴대 전화는 궁극적으로 동일한 부품의 구성이 다르다. 그리고 이러한 소형 장치에서는 빠르고 안정적이며 안전한 데이터베이스가 매우 중요하다. 다행히도 인터베이스에서 이 부분을 커버하고 있다.

체인지 뷰[편집]

인터베이스 고유의 기능 중 하나는 알림 및 피드백을 처리하는 방법이다. 인터베이스에는 의심할 여지없이 개발자에게 데이터 변경 사항을 알리는 몇 가지 메커니즘이 있다. 이 중 가장 강력한 기능은 체인지 뷰(변경 보기)이다. 일반적인 데이터베이스 보기와 달리 체인지 뷰는 데이터 구독 모델을 기반으로 한다. 네트워크 연결 및 페이 로드와 같은 것들에 대한 영향은 즉각적이다. 미들웨어의 캐싱에 의존하여 다른 대상 (예 : 웹 애플리케이션과 모바일 애플리케이션)에 대해 동일한 데이터를 제공하는 데이터베이스 클러스터로 작업할 때 특히 그렇다. 미들웨어의 가장 일반적인 기술인 캐시를 업데이트하기 위해 고정 행 세트를 수동으로 폴링하는 대신 체인지 뷰는 변경된 내용만 가져온다. 원하는 경우 키 프레임 인 전체 행 세트를 폴링하여 서비스를 시작한다. 서비스가 시작된 후에 변경 사항만 가져온다. 데이터 집약적 시스템에서 사용될 경우 체인지 뷰는 성능과 응답성에 막대한 영향을 미친다.

테이블 스페이스[편집]

성숙한 데이터베이스 엔진의 가장 큰 장점은 생각하지 못한 시나리오에 사용할 수 있는 옵션이 있다는 것이다. 개발 환경에서 수십 년 동안 사용된 데이터베이스 엔진은 최종 사용자와 개발자에게 혜택을 줄 수 있는 풍부한 경험을 축적했다. 여기에는 일부 "더 규모가 큰" 데이터베이스 시스템이 제공하지 못하는 깊이와 내용이 있다. 테이블 스페이스는 개발자가 일반적으로 처리하는 테이블 구조 외부에 존재하는 데이터 관리 측면이다. 관리 및 고급 관리 범주에 속한다. 전반적인 개념은 특히 초기 계획보다 훨씬 더 크게 확장할 수 있는 소프트웨어를 만드는 경우 특히 이해하기 쉽고 충분히 확장하기가 쉽다. 데이터베이스 관리자는 테이블 스페이스를 통해 테이블과 인덱스가 실제로 데이터베이스 파일에 저장되는 위치를 재구성한다. 하루 24시간 연중무휴로 액세스할 수 있는 20TB의 데이터베이스를 4000명의 실사용자가 관리할 때 이것은 매우 흥미로워진다. 인증 데이터 (즉 사용자 이름, 비밀번호 해시 등의 필드)를 SSD 디스크에 위임 할 수 있으면 성능에 큰 장점이 있다. 이와 같은 기능은 웹 기반 스토어프런트로 운영되는 온라인 비즈니스에 매우 적합하다. 연구에 따르면 잠재 고객이 다른 곳으로 가기 전에 지연을 용인할 평균 시간은 초 단위로 측정된다. 파일 시스템 수준에서 데이터 성능을 조정할 수 있다는 것은 인상적이고 환영할 만한 일이다.

사용자 정의 함수 기본 기능[편집]

사용자 정의 함수(UDF, User Define Function)는 개발자가 쿼리 기능을 확장 할 수 있는 간단하고 우아한 방법이다. 여러 가지 방법으로 사용자 정의 함수를 고유 플러그인 유형으로 볼 수 있다. 새로운 것은 아니지만 사용자 정의 함수는 오랫동안 인터베이스 응용 프로그램 프로그래밍 인터페이스 일부였다. 인터베이스를 매우 다양하고 대중적으로 만드는 데 도움이 되는 기능 중 하나이다. 사용자 정의 함수를 언급하지 않고 인터베이스에대한 글을 작성하는 것은 생각할 수 없다. 사용자 정의 함수는 개발자가 필요한 기능을 구현하는 일반적인 네이티브 라이브러리이다. 인터베이스에 로드되면 표준 호환 에스큐엘 함수와 함께 해당 기능을 사용할 수 있다. 이것은 흥미로운 데이터 처리 기회를 열어준다. Blob 데이터는 전송되기 전에 처리를 위해 기본 함수에 오프로드될 수 있다. 사용자 정의 함수와 웹 테크놀로지를 결합하여 개발자에게 오라클 피엘(PL) / 에스큐엘(SQL)과 유사한 시스템을 조립할 수 있는 빌딩 블록을 제공하는 방법을 이해하는 데 큰 도움이 되지는 않지만, 제한과 비용은 없다.

보안[편집]

엠바카데로는 인터베이스 2009 릴리스와 함께 고급 암호화 표준(AES) 암호화를 도입했다. 대부분의 데이터베이스 엔진은 파일 수준에서 이진 읽기 / 쓰기 암호화로 작동한다. 즉, 읽고 쓸 때 데이터베이스 파일을 구성하는 데이터 페이지는 그대로 암호화되고 해독된다. 그러나 인터베이스는 레벨 2 수준의 보안도 지원한다. 또한 배포 전략에 하나 또는 둘 전부를 적용하도록 선택할 수 있다.

  • 데이터베이스 레벨 암호화 : 간단히 말해서, 이것은 스토리지 파일을 구성하는 데이터 페이지에 암호를 적용하는 가장 일반적인 유형의 암호화이다.
  • 칼럼 레벨 암호화 : 이름에서 알 수 있듯이 이것은 실제 데이터베이스 칼럼을 보호하기 위한 전략이다. 이 암호화 전략은 데이터베이스 레벨 암호화와 별개이며 추가 보안 계층을 추가한다는 점을 강조 해야 한다.
  • 암호 지원 : 인터베이스는 두 개의 암호를 지원한다. 오래된 산업 표준 데이터 암호화 표준(DES, Data Encryption Standard) 알고리즘이 있다. 이것은 기밀이 아닌 데이터에 적합한 약한 형태의 암호화이다. 별도의 라이선스가 필요하지 않다는 장점이 있다. 고급 암호화 표준(AES, Advanced Encryption Standard)은 두 번째 암호화 유형이다. 2002 년에 미국 연방 표준으로 채택되었다. 고급 암호화 표준은 데이터 암호화 표준보다 더 많은 수의 데이터를 휘저을 수 있다. 미국은 그 강점 때문에 고급 암호화 표준의 수출을 규제하고 있다.

각주[편집]

  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
  11. Jon Lennart Aasenden, 〈Five Reasons to use InterBase in 2020 and Beyond〉, 《embarcadero》, 2020-01-17

참고자료[편집]

같이 보기[편집]


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