Кіріспе

Java негізіндегі деректер қоры HSQLDB (Hyper SQL Database) – Java тілінде жазылған реляциялық деректерді басқару жүйесі. Ол JDBC драйверімен жабдықталған және SQL 92, SQL:2008, SQL:2011 және SQL:2016 стандарттарының үлкен бөлігін қолдайды. Бұл жылдам, кішкентай (2.2 нұсқасында шамамен 1300 килобайт) деректер қоры, жадта және дискідегі кестелерді ұсынады. Онда енгізілген және серверлік режимдер бар. Сонымен қатар, минималды веб-сервер, командалық жол және графикалық интерфейсті басқару құралдары (аплеттер ретінде іске қосылуы мүмкін), сондай-ақ көптеген демонстрациялық мысалдар кіреді. HSQLDB Java 1.1 нұсқасынан бастап, Kaffe сияқты ақысыз Java орындалыстарымен қоса, Java ортасында жұмыс істей алады. HSQLDB BSD лицензиясымен таратылады. Ол OpenOffice.org базасының (мысалы, Apache OpenOffice Base, LibreOffice Base және т.б.) және Jitsi VoIP бейнеконференция клиентінің 2.6 нұсқасынан бастап көптеген ашық кодты бағдарламалық жобаларда деректер қоры және деректерді сақтау механизмі ретінде қолданылады. Mathematica және InstallAnywhere (8.0 нұсқасынан бастап) сияқты коммерциялық өнімдерде де пайдаланылады.

Транзакцияларды қолдау

HSQLDB 2.0 нұсқасында транзакцияларды басқарудың үш режимі бар. Ол кесте деңгейіндегі құлыптаулармен немесе көп нұсқалы бір мезгілде басқару (MVCC), немесе құлыптаулар мен MVCC комбинациясы арқылы оқылатын және серияландырылатын транзакцияларды оқшаулау деңгейлерін қолдайды. 1.8.1 нұсқасы тек транзакцияларды оқшаулау деңгейі 0 (оқылмаған деректер) деңгейін ғана қолдайды.

Деректерді сақтау

HSQLDB тұрақты оқу-жазу деректерін сақтау үшін екі негізгі кесте түрін пайдаланады, яғни транзакция сәтті аяқталса, деректер жүйелік қатеден аман қалады және олардың толықтығы сақталады деп кепілдік беріледі. MEMORY түрі бойынша барлық дерек өзгерістері SQL скрипті түрінде дискіге сақталады. Қозғалтқыш іске қосылғанда, бұл командалар орындалады және деректер жадқа қайта құрастырылады. Тағы бір кесте түрі – CACHED, ол өнімділіктің төмендеуіне баға реті, көбірек деректерді сақтауға мүмкіндік береді. HSQLDB қозғалтқышы оларды тек ішінара жүктейді және транзакция аяқталғанда деректерді дискіге синхрондандырады. Дегенмен, қозғалтқыш жаңарту кезінде әсер еткен барлық қатарларды жадқа жүктейді. Бұл жұмысты кішірек бөліктерге бөлмей, өте үлкен жаңартуларды жүзеге асыру мүмкін емес етеді. Басқа кесте түрлері үтірмен бөлінген мәндері бар (CSV) файлдарға қол жеткізуге мүмкіндік береді. Бұл кестелер, мысалы, JOIN сұраныстарына қатыса алады, электрондық кестелерді өңдеуді жеңілдетеді және жадта уақытша деректерді оқу-жазуға мүмкіндік береді.

SQL ерекшеліктері

HSQLDB 2.0 SQL:2008 стандартының негізгі мүмкіндіктерінің барлығын және көптеген қосымша мүмкіндіктерін қолдайды. Күрделі мүмкіндіктерге пайдаланушы анықтаған SQL процедуралары мен функциялары, схемалар, уақыт аралықтары, жаңартылатын көріністер, массивтер, лобтар, толық және бүйірлік біріктірулер, сондай-ақ жиынтық амалдар кіреді. TO CHAR және DECODE сияқты көптеген стандартты емес функциялар да қолдау көрсетіледі. Стандартты SQL-ге енгізілген кеңейтімдерге пайдаланушы анықтаған жиынтық функциялар жатады.

Шығарылымдар

HSQLDB-нің бірнеше нұсқасы 2001 жылдан бері жарық көрді. Алғашқы нұсқалары қолданыстан тоқтатылған HypersonicSQL дерекқорының қозғалтқышына негізделген. 2010 жылы шыққан 2.0 нұсқасы көбінесе жаңа кодтан тұрады және Стандартты SQL мен JDBC 4 талаптарына сәйкес жазылған. 2.3.2 нұсқасы (2014 жылы шығарылды) толыққанды көп жіпті және жоғары өнімділікті екі кезеңді құлыптау мен MVCC (көп нұсқалы бірмезгілді басқару) транзакциялық басқару модельдерін қолдайды.