CUBRID - CUBRID - Wikipedia
Vývojáři | CUBRID Corp. |
---|---|
První vydání | 20. listopadu 2008 |
Stabilní uvolnění | 10.2 / prosinec 2019[1] |
Úložiště | github |
Napsáno | C, C ++, Jáva |
Operační systém | Linux, Okna |
K dispozici v | Angličtina, korejština |
Typ | RDBMS |
Licence | GNU General Public License pro Server Engine a BSD licence pro API a nástroje GUI |
webová stránka | kubický |
CUBRID (/ˈkjuːbrɪd/ "cube-rid") je open-source Založené na SQL systém správy relačních databází (RDBMS) s příponami objektů vyvinutými společností CUBRID Corp. pro OLTP. Název CUBRID je kombinací obou slov krychle a most, krychle znamená prostor pro data a most stojící za datový most.[Citace je zapotřebí ]
Licenční politika
CUBRID má samostatnou licenci pro svůj serverový modul a jeho rozhraní. Serverový server přijímá GPL v2.0 nebo novější licence, která umožňuje distribuci, úpravy a získání zdrojového kódu. CUBRID API a GUI nástroje mají Distribuce softwaru Berkeley licence, ve které není povinnost otevírat odvozená díla. Důvodem přijetí dvou samostatných licenčních systémů je poskytnout úplnou svobodu Nezávislí prodejci softwaru (ISV) vyvíjet a distribuovat aplikace založené na CUBRID.[2]
Architektura
Funkce, která odlišuje databázi CUBRID od ostatních systémů relačních databází, je její třívrstvá architektura klient-server, která se skládá z databázového serveru, zprostředkovatele připojení a aplikační vrstvy.
Databázový server
Databázový server je součástí systému správy databází CUBRID, který je odpovědný za operace úložiště a provádění příkazů. Instance databázového serveru CUBRID může připojit a používat jednu databázi, což znemožňuje dotazy mezi databázemi. Na počítači však může běžet více než jedna instance.
Na rozdíl od jiných řešení databázový server sám nezkompiluje dotazy, ale spouští dotazy předkompilované v jazyce specifikací vlastního přístupu.[Citace je zapotřebí ]
Zprostředkovatel připojení
Hlavní role zprostředkovatele připojení CUBRID jsou:
- správa připojení klientských aplikací
- ukládání do mezipaměti a předávání informací (např. výsledky dotazu)
- analýza syntaxe dotazu, optimalizace a generování plánu provádění
Místní fond objektů také umožňuje odložit některé části provádění z databázového serveru (např. Vložení a odstranění n-tice, příkazy DDL), čímž se sníží zatížení databázového serveru.
Vzhledem k tomu, že zprostředkovatel připojení není vázán na stejný stroj jako databázový server, může CUBRID při zpracování dotazů v jedné databázi využít hardwarové prostředky několika strojů.
Aplikační vrstva
Aplikace mohou používat jednu z dostupných možností API k připojení ke zprostředkovateli připojení CUBRID.
Funkce
Vysoká dostupnost
CUBRID High Availability poskytuje vyváženou zátěž, odolnost proti chybám a nepřetržitou dostupnost služeb prostřednictvím klastrování sdíleného ničeho, automatizovaného selhání a manuálních mechanismů zpětného selhání.
Třívrstvá architektura CUBRID umožňuje nativní podporu vysoké dostupnosti s dvouúrovňovým automatickým převzetím služeb při selhání: převzetí služeb při selhání zprostředkovatele a převzetí služeb při selhání serveru.[3]
Převzetí služeb při selhání makléře
Při připojování ke zprostředkovateli prostřednictvím klientského rozhraní API mohou uživatelé v adrese URL připojení zadat seznam alternativních hostitelů, kde zprostředkovatelé poslouchají příchozí požadavky. V případě hardwaru, sítě, operační systém nebo selhání softwaru na jednom z hostitelů, základní rozhraní API klienta automaticky selže na dalším hostiteli, který uživatel poskytl.
Failover serveru
Prostředí High Availability lze vytvořit s uzly serveru Master-Slave 1: N. Každý podřízený uzel komunikuje s nadřízeným prostřednictvím protokolu CUBRID Heartbeat. Když hlavní uzel nereaguje, první z podřízených uzlů bude povýšen na hlavní roli. Replikace mezi uzly lze dosáhnout v jednom ze dvou režimů: synchronní a asynchronní.
Správci mohou určit seznam hostitelů serverů, ke kterým se každý zprostředkovatel může připojit, a v případě selhání hlavního uzlu bude použit jiný.
Škálovatelnost a udržovatelnost
Záloha
CUBRID podporuje online, offline a přírůstkové zálohování.
Výkon
Vyrovnávání zatížení na úrovni API
Protože zprostředkovatele připojení lze konfigurovat ve čtyřech různých režimech (čtení-zápis, jen pro čtení, pouze pro otroky, preferovaný hostitel pouze pro čtení), lze jako metodu použít seznam alternativních hostitelů, které uživatel poskytl prostřednictvím adresy URL připojení k vyvážení zátěže. Když Vyrovnávání zatížení Je-li použito, klientské rozhraní API náhodně vybere hostitele z těch, kteří jsou uvedeni v adrese URL připojení, kromě toho, který byl použit pro připojení k poslední době. Pokud vybraný hostitel není k dispozici, bude výběr pokračovat, dokud nebudou všichni hostitelé určeni jako nedostupní. V takovém případě řidič ohlásí chybu.
Ukládání plánu dotazu do mezipaměti
A plán provedení dotazu mezipaměti je implementována na makléři za účelem přeskočení většiny kroků kompilace u často používaných dotazů. Protože dotazy jsou parametrizováno během analýzy dva dotazy, které se liší pouze hodnotami doslovné konstanty sdílet stejnou položku v mezipaměti.[4]
Úložný prostor
Rejstříky
CUBRID má podporu pro Strom B + indexy, jednosloupcové i vícesloupcové. Lze vytvořit následující typy indexů:
- Indexy a obrácené indexy
- Unikátní indexy a reverzní jedinečné indexy
- Funkční indexy
- Filtrované indexy
The optimalizátor dotazů pomocí indexů lze vytvářet rychlejší plány provádění pomocí metod, jako například:
- Identifikace krycí indexy
- Klesající indexové skenování
- OBJEDNAT PŘESKOČIT
- SKUPINA PODLE přeskočení
- Optimalizace limitu více rozsahů[Citace je zapotřebí ]
- Index Loose Scan
- Skenování indexu
Rozdělení tabulky
CUBRID podporuje horizontální rozdělení podle rozsahu, hodnot hash a hodnot, s maximálně 1024 oddíly na tabulku. K oddílům lze přistupovat nezávisle a podporují většinu operací, které jsou platné v normální tabulce.
Od verze 9.0 implementuje CUBRID oddíl pro provádění prořezávání.
Podpora SQL
CUBRID implementuje velkou podmnožinu ANSI SQL: 1999 standard, rozšířený o funkce z pozdějších standardů SQL a vlastní funkce.[Citace je zapotřebí ]
Funkce okna
CUBRID poskytuje podporu pro funkce okna jak je definováno v SQL: 2003 Standard. Implementované funkce jsou ROW_NUMBER, POČET, MIN, MAX, SOUČET, AVG, STDDEV_POP, STDDEV_SAMP, VAR_POP, VAR_SAMP, HODNOST, DENSE_RANK, VÉST, ZPOŽDĚNÍ a ÚNIK.
Hierarchické dotazy
Hierarchické dotazy pomocí nestandardního ZAČNĚTE S ... PŘIPOJIT SE Věštec syntaxe jsou podporovány v CUBRID. K řízení chování provádění dotazu je k dispozici řada specializovaných pseudosloupců a operátorů.
Integrovaný čítač kliknutí
CUBRID optimalizuje běžný scénář ve webových aplikacích, kde je třeba při určitých událostech (např. Zobrazení stránky) zvýšit databázová pole. Na rozdíl od obvyklého přístupu při použití kombinace příkazů SELECT / UPDATE může CUBRID zvyšovat pole v rámci provádění příkazu SELECT, obcházet některé nákladné náklady na kompilaci, provádění a zamykání spojené s příkazem UPDATE.[5]
Uložené procedury Java
Jediný uložené procedury jazyk podporovaný v CUBRID je Jáva, vyžadující a Virtuální stroj Java k instalaci do systému.[6]Virtuální stroj je spuštěn a spravován serverem a slouží k provádění kódu.
Kód uložené procedury, který vyžaduje přístup k databázi, musí používat JDBC ovladač, a to buď pomocí nadřazené transakce, nebo vystavením nové.
Regulární výraz
Kromě operátora LIKE poskytuje CUBRID operátor REGEXP pro regulární výraz porovnávání vzorů. Ve výchozím nastavení operátor provede a malá a velká písmena shoda na vstupním řetězci, ale lze použít modifikátor BINARY citlivý na velká písmena scénáře. Volitelný alias REGEXP je RLIKE.[7]
V současné době CUBRID nepodporuje REGEXP Unicode struny.[Citace je zapotřebí ]
Typy dat
Různé typy dat jsou podporovány programem CUBRID:
- Pro číselné hodnoty:
- celé číslo: SMALLINT (16 bitů), CELÉ ČÍSLO (32 bitů), VELKÝ (64 bitů)
- plovoucí bod numerické: PLOVÁK (32 bitů), DVOJNÁSOBEK (64 bitů)
- libovolná přesnost numerické: NUMERICKÉ
- peněžní hodnoty: MĚNOVÝ (dvojnásobná přesnost plovoucí bod)
- Pro hodnoty řetězce:
- znak pevné délky a bitové řetězce: CHAR, BIT
- znak s proměnnou délkou a bitové řetězce: ZMĚNA CHAR, BITOVÉ RŮZNÉ
- Pro hodnoty data a času:
- hodnoty data: DATUM
- časové hodnoty: ČAS
- hodnoty data a času: ČAS SCHŮZKY, TIMESTAMP (interně uloženo jako Unix časové razítko )
- Pro sbírky: SOUBOR, MULTISET, SEZNAM
- Definováno uživatelem výčty: ENUM
- Pro velké objekty: KAPKA, CLOB
- Pro JavaScript Object Notation: JSON
Podporované platformy
CUBRID je k dispozici pro Microsoft Windows a Linux (většina distribucí), pro 32bitové a 64bitové architektury.
Rozhraní
Příkazový řádek
CUBRID je dodáván s vestavěným rozhraním příkazového řádku s názvem csql které lze použít k provádění příkazů SQL na serveru CUBRID.[8]Nástroj lze použít v jednom ze dvou režimů:
- CS (klient-server), který umožňuje připojení k místním nebo vzdáleným serverům CUBRID
- SA (samostatný), používaný hlavně pro administrativní účely, který připojuje lokální databázi emulací instance serveru
CUBRID csql také implementuje některé interní příkazy související s informacemi o schématu, generováním plánu, laděním, kontrolou transakcí, časováním dotazů a dalšími.
Programování
CUBRID poskytuje řadu jazykových specifik aplikační programovací rozhraní:[9] C řidič (také volal CCI, Nativní ovladač CUBRID), JDBC, PHP / Ovladač PDO, ODBC, OLEDB, ADO.NET, Rubín Řidič, Krajta Řidič, Node.js řidič a Perl Řidič.
Grafický
Několik grafické uživatelské prostředí pro CUBRID byly vyvinuty nástroje:
- Správce CUBRID[10] je prohlížeč dotazů a nástroj pro správu databáze distribuovaný pod Licence BSD v systémech macOS a Linux.
- CUBRID Admin je administrační nástroj distribuovaný pod Licence BSD ve Windows.
- SQLGate je nástroj prohlížeče dotazů vyvinutý společností CHECKER ve Windows.
- Sada nástrojů pro migraci CUBRID[11] je nástroj, který umožňuje migraci dat z Oracle, MS-SQL, MySQL a předchozích verzí databází CUBRID na nejnovější databázový server CUBRID.
Historie vydání
Verze | Datum vydání | Datum vydání beta | Dodatky |
---|---|---|---|
10.2 | Prosince 2019 | Nový datový typ: JSON (JavaScript Object Notation) a další.[12] | |
10.1 | Července 2017 | Zahrnuje užitečná rozšíření SQL: CTE (Common Table Expressions) a další.[13] | |
10.0 | Únor 2016 | Poskytuje izolace snímků na základě protokolu MVCC. Zahrnuje mnoho rozšíření SQL a funkcí / operátorů. | |
9.3 | Květen 2014 | Nové funkce SQL, podpora zámku schématu, podpora různých syntaxí SHOW, zlepšení výkonu. | |
9.2 | Září 2013 | Profilování SQL, Nová podpora SQL, Několik vylepšení | |
9.1 | Březen 2013 | Nové funkce SQL a nápověda indexu, vylepšení výkonu a optimalizace. | |
9.0 | Říjen 2012 | Podpora internacionalizace, index funkcí, index filtru, skenování přeskočení indexu, příkaz SLOUČENÍ, funkce okna. | |
8.4.3 | 20. listopadu 2012 | Shardování databáze, Vyrovnávání zátěže na úrovni API, vestavěný webový manažer s podporou monitorování | |
8.4.1 | 24. února 2012 | 1. února 2012 | Důležité optimalizace výkonu, rozšíření SQL, operátor REGEXP. |
8.4.0 | 1. července 2011 | 12. května 2011 | Vylepšení vysoké dostupnosti, vylepšení API CUBRID C, pozoruhodné optimalizace výkonu, krycí index[14][15] |
3.1 | 31. prosince 2010 | 12. listopadu 2010 | KAPKA a CLOB podpora, podpora monitorování vysoké dostupnosti, vylepšení ovladačů (JDBC, ODBC a CUBRID C API)[16] |
3.0 | 4. října 2010 | 19. července 2010 | Rozšíření SQL, vylepšení vysoké dostupnosti[17][18] |
2.2 | 30.dubna 2010 | Vylepšení vysoké dostupnosti, vylepšení API CUBRID C, některá vylepšení výkonu[19] | |
2.1 | Prosince 2009 | ||
2.0 | Srpna 2009 | ||
1.4 | Březen 2009 | ||
1.3 | Února 2009 | ||
1.2 | Ledna 2009 | ||
1.1 | Listopad 2008 | CUBRID se stal projektem s otevřeným zdrojovým kódem | |
1.0 | Říjen 2008 | První stabilní vydání |
Aplikace
Některé aplikace a weby, které přidaly podporu CUBRID nebo používají technologii CUBRID:
- JOOQ[20]
- Statistiky SOFA[21]
- SIDU[22]
- UMĚNÍ[23]
- Scriptella
- JWhoisServer[24]
- Yii2 PHP Framework[25]
- RedBeanPHP[26]
- DBeaver[27]
Viz také
- Porovnání systémů správy relačních databází
- Porovnání objektově-relačních systémů pro správu databází
- Seznam systémů správy relačních databází
Reference
- ^ „CUBRID Release“. Citováno 21. května 2020.
- ^ „Licence CUBRID“. Archivovány od originál dne 16. ledna 2013. Citováno 8. února 2013.
- ^ „CUBRIDHA“. Citováno 2020-05-27.
- ^ „Sdílené mezipaměti plánu dotazů v CUBRID“. Archivovány od originál dne 22. června 2014. Citováno 9. února 2013.
- ^ „CUBRID Manual - CUBRID Click Counter“. Archivovány od originál dne 14. února 2013. Citováno 11. února 2013.
- ^ „CUBRID Java Stored Procedures“. Archivovány od originál dne 14. února 2013. Citováno 11. února 2013.
- ^ „Manuál CUBRID - podmíněné výrazy REGEXP / RLIKE“. Archivovány od originál dne 4. června 2013. Citováno 11. února 2013.
- ^ „Jak používat nástroje CSQL“. Archivovány od originál dne 14. února 2013. Citováno 8. února 2013.
- ^ „CUBRID APIs Wiki“. Archivovány od originál dne 26. června 2014. Citováno 8. února 2013.
- ^ „Správce CUBRID“. Archivovány od originál dne 16. ledna 2013. Citováno 8. února 2013.
- ^ „CUBRID Migration Toolkit“. Archivovány od originál dne 10. února 2013. Citováno 8. února 2013.
- ^ „Byla vydána CUBRID 10.2“. Citováno 2020-05-21.
- ^ „Je vydán CUBRID 10.1“. Citováno 2020-05-21.
- ^ „CUBRID 8.4.0 dorazil s rychlejším databázovým strojem x2!“. Archivovány od originál dne 2011-05-20. Citováno 2011-05-17.
- ^ „CUBRID 8.4.0 GA je nyní k dispozici ke stažení“. Archivovány od originál dne 25. 8. 2011. Citováno 2011-07-14.
- ^ „Stabilní CUBRID 3.1 je nyní k dispozici!“. Archivovány od originál dne 01.01.2011. Citováno 2011-01-03.
- ^ „CUBRID 3.0 Stable dorazil!“. Archivovány od originál dne 10. 10. 2010. Citováno 2010-10-05.
- ^ „Byla vydána nová verze CUBRID 2008 R3.0 Beta“. Archivovány od originál dne 27. 8. 2011. Citováno 2010-07-21.
- ^ „Nová verze - CUBRID 2008 R2.2“. Archivovány od originál dne 25. 07. 2011. Citováno 2010-05-07.
- ^ „Jak simulovat rozšíření příkazů MySQL INSERT“. Lukáš Eder. 15. 5. 2012. Citováno 2013-02-04.
- ^ „SOFA Statistics“. sofastatistics.com. 2012-11-20. Citováno 2010-11-17.
- ^ „SIDU neuvěřitelně jednoduchý, intuitivní webový klient SQL“. SIDU. 25. 05. 2012. Citováno 2013-02-04.
- ^ „ART Jednoduchý, ale účinný nástroj pro hlášení otevřeného zdroje“. art.sourceforge.net. 10. 06. 2012. Citováno 2013-02-04.
- ^ "Spusťte svůj vlastní server Whois pomocí JWhoisServeru". Klaus Zerwes. 06.07.2012. Citováno 2013-02-04.
- ^ „Cubrid Query Builder“. yii.com. Citováno 2015-03-20.
- ^ „RedBeanPHP Super snadné použití PHP ORM“. Archivovány od originál dne 2013-03-29. Citováno 2013-02-04.
- ^ „DBeaver 4.2.5“. Citováno 2020-05-27.