MS FoxPro potreboval, aby se dostal k technologii Rushmore, protoze potrebovali zrychlit sve legendarne pomale DB vypotky. Vic nez to se MS o FoxPro nezajimal a tak to postupne znicili - nejdrive vydali FoxPro Lan, ze ktereho odstranili transakcni knihovnu pro Novel, pak zabugovane FoxPro pro Widle a nasledne Visual FoxPro, ze ktereho asi dodnes nekteri maji nocni mury. Ani s Rushmore se jim ale asi nepovedlo dosahnout rychlosti FoxPro.
Napsal jsem ke zrychleni jejich databazi, ne? Na detaily se zeptej v MS, jestli tam mas zname. Oni se verejne nesiri, kde vsude a jak to pouzili. Jinak tehdy nemeli jen Access, ale uz i SQL. Zajdi nekam do blazince, kde dodnes leci adminy, kteri to spravovali a zeptej se jich, jake to bylo. Ale pozor na zurive typy!
Zadny starsi nebyly. MS SQL byl zalozenej na Sybase od zacatku. Prvni MS SQL Server vysel 1989, pricemz Microsoft spolupracoval se Sybase od roku 1986.
https://en.wikipedia.org/wiki/Sybase#History
"Vykradeny" nemusi znamenat, ze to Microsoft ziskal nelegalne. "Vykradeny" casto muze znamenat treba postaveni produktu na funkcnosti prevzaty z produktu jineho vyrobce. Ostatne s tim ma Microsoft velky zkusenosti (MS DOS, Windows, Windows NT,...), lepit dohromady kusy z ruznych produktu... pak taky jeho SW podle toho vypada...
Jenže u MS SQL Serveru to zrovna není tenhle případ.
Pokud mluvíte o "postaveni produktu na funkcnosti prevzaty z produktu jineho výrobce", vašimi slovy vykradení, tak bych na prvním místě zmínil Linux. Kernel je vykradený klasický Unix, totéž platí o glibc, X11, a skoro všem ostatním na čem Linux stojí.
Ad lepit dohromady kusy z ruznych produktu... pak taky jeho SW podle toho vypada... - Tady bylo dobré opět zmínit distra Linuxu, která jsou slepená z kusů od tisíců autorů... a podle toho to taky vypadá.
To si pletes pojmy s dojmy. Linux, glibc, X11 je postavenej na ideach UNIXu, ne na kodu UNIXu. Kod samotnej je psanej kompletne z nuly.
MS SQL Server pouziva (nebo minimalne pouzival) primo kod napsanej Sybase.
Je taky treba rozlisovat mezi modularni konstrukci jakou maji Linuxove distribuce, kde kazdou cast systemu jde nahradit jinou od nekoho jinyho a monolitickou konstrukci kde v jedny binarce je naplacanej kod od ruznych vyrobcu puvodne urcenej pro uplne jinej produkt.
Ad Linux, glibc, X11 je postavenej na ideach UNIXu, ne na kodu UNIXu. Kod samotnej je psanej kompletne z nuly. - Podobně jako MS DOS byl postavený na převzaté funkčnosti (idejích) CP/M, a Windows NT mají ideově některé věci společné s VMS (i když jde hlavně o názvosloví a obecné principy). Jestli " postaveni produktu na funkcnosti prevzaty z produktu jineho vyrobce" považujete za vykradení, tak budiž, ale pak by to chtělo měřit všem stejně. Mimochodem do Linuxu se dostal i kód jiných Unixů, vizte soud SCO vs IBM. Šlo o poměrně malé kusy kódu, a společnost SCO nebyla schopná doložit jejich vlastnictví, takže to vyšumělo.
Ano, MS SQL Server pouziva (nebo minimalne pouzival) primo kod napsanej Sybase, protože to byl jejich společný projekt.
Modulární konstrukcí máte na mysli to že se distra liší vším od kernelu, přes poskytované API a jména adresářů až po GUI? :) A pokud máte aplikace postavené nad GTK+, čímže to GTK+ můžete nahradit?
To že se v jedné binárce kombinuje kód různých týmů, a často různých jednotlivých autorů, je naprosto běžné. Koukněte se jak se vyvíjely Unixy. Třeba solaris je založený na System V R4, MacOS X je dokonce sešitý z Mach mikrokernelu, BSD 4.3, NetBSD 1.3, API NeXTSTEPu a "Classic Mac OS". Projekty na Linuxu, včetně kernelu, jsou snad každý řádek od jiného člověka :). Samotná distra jsou sešitá z kernelu - vašimi slovy vykradeného - z komerčních Unixů, glibc a utilit od GNU, a hromady open source freewaru. Jistě se shodneme, že to podle toho také vypadá: všechno se vyvíjí v mnoha různých skupinkách které dělají skoro totéž, ale každá jinak, a házejí po sobě hnůj. Buďme rádi, že funkce pro file I/O existovaly před vznikem Linuxu, protože jinak bychom vyjma desítek konkurujících si FS měli i desítky API pro práce se soubory :/. Uživatel pak dostane slepenec bez jakéhokoliv konzistence, kde se mezi aplikacemi liší styl UI, widgety, a dokonce rastrování písma. Proti tomu jsou Windows pěstěnou zahradou, a MacOS (i když ho nemusím) je pak zenovou zahradou.
No tak pobavil :). Windows s jejich mixem 16-bitovych, 32-bitovych a 64- bitovych API a GUI toolkitama z ruznych desetileti vcetne absolutne nesmyslnyho Metra, kteryho se Microsoft i pres jeho neuspech na vsech platformach porad nechce zbavit, je skutecne "pestenou zahradou" :D. Nehlede na to ze vetsina tech GUI tookitu, ktery sou podle tebe takovej problem Linuxu se bezne pouziva i na Windows kvuli tomu, ze sou multiplatformni...
Nehlede na to ze vetsina tech GUI tookitu, ktery sou podle tebe takovej problem Linuxu se bezne pouziva i na Windows kvuli tomu, ze sou multiplatformni...
Tak tyhle toolkity puvodem z Linuxu, jako Qt a GTK, nejsou zdaleka jedine z pestre sbirky toolkitu pouzivanych ve Widlich. Vysledkem je, ze GUI SW ve Widlich zdaleka nevypada tak jednotne, jak se nekteri pokouseji tvrdit a system je zasrany dll vseho mozneho puvodu.
Tak Foxka vznikla jako klon dBase, tedy male databaze, kterou mohl mitkazdy doma. Nemel to byt konkurent Oracle a podobnych. A posledni verze FoxPro toho zvladaly docela dost, ovsem dnes by byly dost k nicemu. Transakce choily jen na Novelu o server/client architekture se jen mluvilo, ale niky neprisla a kvanta sat, jaka se zpracovavaji dnes, jsou take nekde jinde.
Ovsem otazka je, co by bylo, kdyby Fox Inc. nezkrachovala. FoxPro treba jiz melo par zarodku SQL, mohlo vzniknout client/server FoxPro a dnes to mohla byt uplme jina databaze, mozna SQL, mozna ne, mozna oboji. Ostatne tehdy to byla skvela vec, celkem bez konkurence. Nic na tehdejsi PC a tak rychleho snad nebylo, mozna snad MUMPS.
DB založené na sdílených souborech byly v roce 1992, kdy MS koupil Fox Software, přežitý koncept mířící ke svému konci. MS nejspíš měl zájem primárně o front-end k MS SQL Serveru. Nakonec proto MS společně se Sybase a Ashton-Tate stavěli SQL Server: Ashton-Tate byli autoři dBase, a měli dodat front-end. Poté co nastala katastrofa jménem Ashton-Tate dBase IV a firma z projektu odstoupila, bylo logické koupit Fox Software. A nakonec to přece vyšlo. Z FoxPro se stalo 32-bitové objektově orientované Visual FoxPro, které fungovalo na trhu 15 let. Lekce z projektu Visual FoxPro (a lidé) byly použity na vývoji MS Accessu, což je projekt kombinující DB na sdílených souborech (styl dBase/FoxPro) s klientem pro MS SQL Server, grafický designer, OOP, COM a VisualBasic.
Nějak výrazněji jsem se nedíval a nezkoušel novinky v MySQL 8, krom rychlého prolítnutí oznámení k vydání. Nicméně před časem jsem si po delší době hrál s MariaDB (dělám primárně s Firebirdem) a byl jsem příjemně překvapený, co tam oproti starší MySQL 5 přibylo. Konkrétně např. CTE, window funkce a spousta drobných vylepšení atp. u 10.3 pak bude i rozumnější práce se sekvencemi. Dost toho bylo uvedeno v subverzích od 10.1 - 10.3, která je zatím v alfa verzi.
Což mi přišlo víceméně totéž jako u nové verze MySQL. Kde tam případně vidíte větší pokrok než u MariaDB?
Totálně překopaný planner. Systémový katalog. Možnost udělat ROLLBACK DDL. Monty se taky nefláká. Co určitě rozporuji, že by Oracle nějak MySQL dusil nebo nerozvíjel. Jinak popravdě řečeno moc netuším, jaký je aktuálně vztah, co se týče kódu mezi MySQL a MariaDB - na kolik jsou schopní kooperace. Jestli se tyhle věci všechny píšou a ladí 2x, tak potěš PánBůh.
Díky, teď jsem se na to mrknul líp a chvilku porovnával :) Fakt s tím pohnuli.
Jak jsem psal, tak mě zaujaly primárně ty změny v DML, co jsou víceméně v aktuálních verzích obou databází. Ale máte pravdu, že v MySQL je toho aktuálně rozhodně víc.. od těch zmíněných systémovějších změn (Data Dictionary v jednom InnoDB souboru s konzistentním přístupem a transakcí s DDL) přes např. desc. indexy., skryté indexy, užitečné přidané hinty pro optimizér atp.
S tím sdílením kódu mezi projekty taky nevím.. spousty přidaných fíčur do MariaDB víceméně dorovnávalo MySQL verze od toho forku dál a usnadňovalo interoperabilitu mezi už samostatnými RDBMS.. do jaké míry adaptovali přímo commity do MySQL nevím. Naopak pár věcí (např. zmíněné CTE) bylo dřív v MariaDB a pro určité typy projektů tam může být zajímavá flexibilita a kombinace InnoDB s různými dalšími typy enginů.
Taky mi to nepřijde, že by oba projekty nějak výrazně stagnovaly, nebo že by se Oracle snažil nechat MySQL "uhnít", jak tu někteří spekulovali. Nemyslím tím jen samotnou RDBMS, ale i vývoj a aktualizace ostatního software okolo ní.. jako třeba oficiální drivery (konektory) pro různé jazyky atp.
Jinak pro mě osobně je to spíš zvědavost.. kdy se sem tam podívám na ostatní databáze, například když mi kolega "webař" mezi řečí zmíní, jak dlouho se určitý úkon provádí v MariaDB. No mě to samozřejmě vrtá hlavou, a pak si pár dní "hraju" s její aktuální verzí a Firebirdem, abych se tomu přiblížil.. :)
Ale víceméně mám radost, že se postupně zlepšují oba projekty.. pár let zpátky bych si moc nedovedl představit, že bych některé projekty např. přesunul z FB na MySQL nebo MariaDB, aniž bych to musel úplně přeorat, předělat dotazy s CTE do spousty uložených procedur nebo přenést některé zpracování do vyšší vrstvy. S novými verzemi už by to bylo reálnější, kdyby z nějakého důvodu nastala ta potřeba.
Teď si udělám reklamu :). To, co bude v 8 MySQL, tak má Postgres roky odladěné.
Samozřejmě, že jsou a budou rozdíly mezi databázemi - dané už rozdílem designu InnoDB a PostgreSQL storage - což znamená, že některé operace zákonitě musí být rychlejší na MySQL a další na Postgresu - jelikož se preferovaly různé věci a na fyzickém uložišti může být jenom jeden formát. Hodně věcí ale konverguje - a co zůstane a stane se podstatnější jsou licence a přístup komunity.
Mě nepříjde smysluplné porovnávat lehkou DB jako je MySQL s těžším ORACLEM či PostgreSQL.
Svět nepotřebuje, databázi, která umí všechno, ale na všechno se hodí tak nějak.
Dnes je tohle typicky vidět na nástupu Big Data, kde se často použije nějaká DB jen jako storage metadat ke zbytku bez struktury. V podstatě jen navigátor. MySQL / Gallera Cluster relativně dobře operuje jako no-share prostředí. Nebo SQLite, kde je také naprosto jasné o čem to je.
Nikdy jsem nebyl velkým příznivcem ukládání logiky do databáze, většina těch aplikací nad tím je pak na vyhození.
Takže to je o úhlu pohledu, neustálá onanie nad tím, co všechno moje DB umí mi příjde nesmyslná.
Beztak to nikdo soudnej nebude používat v jednom stroji. Bude jich mít stovky, tisíce...
Typicky mnoho věcí se neimplementuje proto, že to nechcete mít v jednom stroji, ale rozprostřené mezi všemi.
Jen se podívejte na ten ORACLE, on sice umí skoro všechno, ale mnoho důležitých věcí zvládá jen tak, aby se neřeklo (je komplikované to implementovat do stávajícího prostředí).
Reklamu beru :)
Okolo Postgresu jsem se vždycky jen mihnul, když už to někde běželo nebo se to nainstalovalo jako závislost pro aplikaci, co to používá.. (takže jsem se seznámil s pg_dump, pg_upgrade a společně s kamarádem laboroval s jeho automatickou garbage collection - autovacuum na nějakém serveru), ale nic jsem v tom sám nedělal ani nezkoušel.
Určitě to vypadá lákavě, resp. je tam víceméně všechno, na co bych si pro moje potřeby dokázal vzpomenout (možná i mnoho věcí navíc, dělalo to na mě dojem, že bych šel tak trochu s kanónem na vrabce) a rozhodně by stálo za nějaké bližší seznámení.
Teď jsem se ještě díval, že jsou tam je docela elegantní a jednoduchá možnost jak notifikovat připojené klienty (jako eventy na FB nebo Query Notification v MSSQL), aby si vylily svou lokální cache, stáhli aktuální data atp. což je užitečné a třeba v MySQL/MariaDB nic takového přímo není (alespoň co vím).
Snad někdy bude víc času na pokusy :)
Firebird a SQLite jsou databáze, které se dají považovat za embedded (jeden file, jedna binárka). MySQL už je v podstatě plnohodnotná databáze a např. při srovnání zdrojáků je MySQL (3.5M řádků) výrazně větší než Postgres (918K řádků) .. nepátral jsem proč - může to být výsledkem C++ v MySQL a C v Postgresu. A když se dívám na Firebird, tak má 1.2M řádků - takže na velikost zdrojáku je PostgreSQL nejmenší databáze :) . Beru, že počet řádků kódu je orientační údaj a sám o sobě nemusí nic moc vypovídat.
Já bych řekl, že "embedded" jsou takové, které nevyžadují samostatně běžící server; jestli jsou data uložená v jednom velkém souboru (Firebird) nebo více menších (MySQL), je pro tyto účely jedno. Firebird lze provozovat jako embedded, ale jinak normálně funguje jako samostatná aplikace běžící někde na serveru a komunikující po síti s klienty.
Nepredpokladam, ze Oracle ma zaujem na tom, aby MySQL zabil. Z toho by nic nemal a projekty, ktore pouzivaju MySQL by si orakliu DB nekupili. Oracle skor zrejme ide po tom, aby mal pokryte vsetky typy roznych in the wild pouzivanych databaz. Takto pred rokmi kupil BerkeleyDB, ktoru tiez nenechal zakapat.
Kazda nova verze by mela byt lepsi, nez ta predesla. To je snad logicke. A pokud jde o ten pokrok, klidne se vsadim ze do roka Oracle posle MySQL k ledu, presne podle scenare s OpenOffice: nakou dobu to bude vyvijet (vicemene z trucu), pak kdyz temer vsichni prejdou na MariaDB, odnese to na hrbitov Apache foundation...
co potřeboval vykrást má dávno protože https://github.com/mariadb/server
MS za posledni 1-2 roky vyrazne stoupl v ocich nejen linux komunity. Dokonce frci i na ekologii.
https://www.zive.cz/clanky/microsoft-jeste-vic-zezelena-do-trinacti-let-snizi-emise-co2-na-ctvrtinu/sc-3-a-190512/default.aspx
Linuxaci jsme na tahu, jak znizime nase emise ?