Melyik adatbázist?
2015-02-09T17:23:25+01:00
2015-02-11T13:19:27+01:00
2022-07-22T12:26:23+02:00
  • Jó, és hogyan kényszerítesz rá engem arra, hogy ki ne rakjam csak azt a részt dll-be, amit futás időben utólag töltök be a programomba?
    Mutasd a teljes hozzászólást!
  • Csatlakozom LC -hez. 12 éve használok Firebird-öt, és valóban voltak vele apróbb macerák, aminek kicsit utána kellett olvasni, de a mai (2.5.3) verziónak KUTYA baja !!! Sőőőt. A küszöbön a 3.0, amit már androidra is portolnak.

    Előnyök:
    - TOTÁL ingyenes. Nem csak GPL
    - Több platformon is natív módon fut stabilan. (próbált már valaki MSSQL-t linuxon? :D )
    - hálózatban is stabilan működik, jó a tranzakció-izoláció kezelése ( nem úgy, mint az SQLight)
    - egyszerű kis 14Mb telepítő (de működik Embedded módban is telepítő nélkül)
    - alig fogyaszt memóriát (1+6MB) ... persze ez is skálázható
    - egyetlen (*.FDB) fájlban van az adatbázis, amit (leállított szerver mellett) akár simán másolhatunk is máshová
    - tud shadow-fájlt, increment backupot, online backupot, ...
    - nagyon profi a tárolt-eljárás és trigger rendszere. (jó, azért nem egy oracle, de ha egyszer megírod, akkor onnantól egy életre elfelejtheted és működik)
    -Több Admin-kezelő program van hozzá, melyekkel szinte már Access egyszerűségével tudod szerkeszteni. Köztük több ingyenes.

    A szintaxisa nem volt teljesen szabványos,

    .. azóta mindennek csináltak ISO-kompatibilis alias-t, azaz ugyanazt a parancsot többféle szintaktikával is elérheted. SET GENERATOR = ALTER SEQUENCE, stb.

    a szerver módban időnként eldobálta a klienseket, két-három kliens felett néha értelmezhetetlen válaszokat dobált,

    Talán ha nem állítod "Read-Commited" -re a tranzakciót, hanem dirty-read/write-on hagyod, akkor tudok ilyesmit elképzelni. Kezdőként én is belefutottam egyszer ebbe a hibába. Után soha többet.

    nem tudta kihasználni a többmagos/többprocesszoros rendszerek előnyeit,

    - természetesen többmagos processzort is kihasznál (csak a conf fájlban be kell állítani :P )

    véletlenszerűen "elhíztak" az adatbázisok amiket azután csak a saját menedzsment felületéből lehetett visszafogyasztani (adattörléssel nem).

    Véletlenszerűen?? SOHA nem találkoztam ilyesmivel. Még a 0.9 verziónál sem 10 éve ...
    Teljesen normális dolog, hogy ha egy adatbázist telepakolsz adatokkal, akkor lefoglal helyet a merevlemezen. Mindig az aktuális méret +50%-át. (De ez a lépték is állítható.) Ha azután azokat az adatokat TÖRLÖD, akkor attól még a lefoglalt fájl méret "magától" nem csökken. Főleg nem, ha közben dolgoznak a fájllal. Lásd Garbage collection...

    SZVSZ az, aki azt az adatbázist használta / felépítette valamit nagyon rosszul csinálhatott.
    .. és IGEN, kicsit elfogult vagyok, mert dolgoztam már MÁS DB motorokkal is, (Access, MSSQL, MySQL) és ennél maradtam. Tudnék vagy 20 sztorit mesélni, hogyan sz**tam meg a többivel. :D
    Mutasd a teljes hozzászólást!
  • mi lenne az a "lib", amit hozzászerkesztesz a mysql szerverhez?


    Csak a forráskódban szerepeljen: #include <mysql.h>
    a Makefile-ban:
    gcc -shared -fPIC -o lib_mysql_xxxx.so lib_mysql_xxxx.c \ $(mysql_config --cflags) -lm -DMYSQL_DYNAMIC_PLUGIN
    és regisztráld a funkciót:
    CREATE FUNCTION xxxx RETURNS REAL SONAME 'lib_mysql_xxxx.so';

    Mutasd a teljes hozzászólást!
  • És egészen pontosan mi lenne az a "lib", amit hozzászerkesztesz a mysql szerverhez? A jelek szerint hiába írtam direkt példát is rá, további tisztításra szorul a "hozzászerkesztett lib" fogalma.
    Mutasd a teljes hozzászólást!
  • Én még az Oracle előtti időkben nézegettem.
    Mutasd a teljes hozzászólást!
  • Rossz hírem van: ha egy GPL-es libhez linkeled a programodat, akkor a programodnak is GPL-esnek kell lennie. Pont ezért létezik LGPL. Anno a Qt-nak is megvolt a GPL-es verziója, de a fizetős verzió drágább volt mint a Visual Studio + a windows. És miért kellett megvenni ? Azért, mert az opensource verzió GPL-es volt. Amíg a te progid is az, addig nincs gond. De ha a te progid zárt forráskódú, akkor GPL-es libet nem linkelhetsz hozzá. Na most, a MySQL összes kliens könyvtára GPL-es. Ráadásul Pl. kimondottan tiltja, hogy a MySQL-t beépítsd Pl. egy dobozos szoftver telepítőjébe, hacsak nem vetted meg. Egy kivétel van: a linux disztribek. És talán ha jól emlékszem a PHP-re is van ilyen kitétel hogy nem kell GPL-esnek lenni a proginak ami használja, de erre nem igazán emlékszem.
    Mutasd a teljes hozzászólást!
  • Én éveken át használtam dobozos szoftverhez Kylix alól, pár helyen a mai napig is működik, és nem volt vele baj. Az tény, hogy az SQL-je, különösen a tárolt eljárások nyelvjárása picit egzotikus, különösen akkor volt az amikor én fejlesztettem a programomat vele (azóta azért fejlődött ha jól láttam). Nekem inkább teljesítmény problémáim voltak vele, de amúgy elég megbízható volt.
    Mutasd a teljes hozzászólást!
  • A mysql-nek van community edition-je, ami ingyenes, és csak azért, mert az gpl, nem kell a programodnak is gpl-nek lennie. A gpl azt mondja neked, hogy minden olyan eszközre kell tovább örökíteni a gpl kötelezettségeit, ami nem különálló műalkotás. Példa. Egy linux kernel modult belefordítasz a kernelbe, az kötelezően gpl. Ha azt a modult utólag is betölthetőre építed (modprob, insmod), hiába ugyan úgy kernel modul, hiába működésképtelen önálló formájában, jogilag az különálló szoftveres műalkotás, és kerülhet bármilyen licence alá - üzleti licence alá is. Mindaz nem jelenti, hogy ne használhatnál fel hozzá gpl eszközt még üzleti célra is. Ami üzleti licence van mysql-hez az egy teljesen külön történet, azt ne keverd össze a community editionnel. Az egy másik edition.
    Mutasd a teljes hozzászólást!
  • Mutasd a teljes hozzászólást!
  • Anno (5-6 éve talán) nekem is volt dolgom Firebird-del, de én csak a rossz tapasztalatokra emlékszem. A szintaxisa nem volt teljesen szabványos, a szerver módban időnként eldobálta a klienseket, két-három kliens felett néha értelmezhetetlen válaszokat dobált, nem tudta kihasználni a többmagos/többprocesszoros rendszerek előnyeit, véletlenszerűen "elhíztak" az adatbázisok amiket azután csak a saját menedzsment felületéből lehetett visszafogyasztani (adattörléssel nem). Nem állítom, hogy a helyzet most is ez (annyira örültem, hogy megszabadultam tőle, hogy azóta sem néztem mi a helyzet manapság), de hogy évekkel ezelőtt így volt, abban teljesen biztos vagyok.
    Mutasd a teljes hozzászólást!
  • Tanulni átlag úgy lehet, hogy ásol lefelé nyers alapok irányába. Akkor tudsz elboldogulni alap szintűbb eszközökkel, ha a többit magad is fel tudod építeni, és akkor bármit is esz meg a fene a válságban, részedről letojhatod, mert te elvagy mással is - valami úgyis mindig lesz helyette. Azért csak személyi preferencia kérdése, és tényleg nem számít semmi más. Amennyi időd van, azt szánd rá alapok tanulására. Ha sorolsz párat az eddigi ismereteidből, akkor tudunk tippet adni, merre legyen az előre.

    Pld ha sql szint fölött maradnál, akkor is lehet hibrid alkalmazást építeni, előjöhetnek service / daemon, konkurrens adat kezelés, adat normalizálás - ezekből mennyi van meg?
    Mutasd a teljes hozzászólást!
  • Legkényelmesebb az MS SQL Express, vagy ha csak saját magad használod akkor LocalDB. Igen jó manager van hozzá, az SQL Management Studió, sokat tud és az átlagpolgár elég nehezen jut el arra a pontra, ahol a képességei véget érnek. Aki igen, annak viszont általában nem gond a nagyobb verziók licenszdíja, illetve ott már szokták igényelni a supportot is.

    Szintén jó cucc a postgresql is, bár én ezt anno csak C++-szal használtam, .NET alól még nem, de ha minden igaz elég jó .NET data providere van neki is, régebben sokat olvastam róla a mono-s oldalakon.

    Eggyel lejjebb ott a Firebird. Neki az az előnye hogy pici, egy setup esetén ma sem mindegy hogy az adatbáziskezelő 3 mega vagy 300. Tud szerverként is működni, de beágyazottként is. Anno a data providerével még ado.net-tel játszottam, elvben EF kompatibilis de nem tudom hogy az EF6-ot támogatja-e. Annyira persze nem okos és gyors mint a fenti kettő, de sok feladatra bőven elég, és a méretéhez képest azért elég sokat tud, Pl. tárolt eljárást, triggert is írhatsz benne.

    Ha csak egyfelhasználós a rendszered, akkor az SQLite is jó választás lehet. Szintén elég ügyes kis ado.net providere van, még tárolt eljárást is írhatsz benne C# nyelven ha akarsz.

    MySQL-t túl sokat nem használtam, pont a licenszelési problémák miatt. Ha nem opensource a programod, akkor fizetned kell, és igazából amikor néztem soha nem volt kiírva egy árlista hogy mennyit. És őszintén szólva, mivel van bőven ingyenes és jó alternatíva, nem is igazán éreztem szükségét a használatának.
    Mutasd a teljes hozzászólást!
  • Az is GPL licensz alatt van a konnektorjaival egyetemben.
    Mutasd a teljes hozzászólást!
  • 1. A mysql még kis méretben is bizonyos feltételek mellett ingyenes csak.

    Helyette MariaDB?
    Mutasd a teljes hozzászólást!
  •  A mysql ingyenes nagyobb méretben is, de készülnöd kell hibákra, a feature-ök javarészére a helyedben inkább nem számítanék

    1. A mysql még kis méretben is bizonyos feltételek mellett ingyenes csak. Otthoni tesztelgetésre persze az, de ha később kezdeni is akar vmit a programjaival, akkor kellemetlen meglepetések érhetik.
    2. A mysql nem bugosabb a többi elterjedt db kezelőnél. Igaz, kevésbé sem...

    mysql script motorja kritikán aluli

    Volt vmikor az 5.0 környék&#279;n, amikor bejött a tárolt eljárás a mysql-be. 5.5-től kezdve nincs vele gond.
    Mutasd a teljes hozzászólást!
  • Köszönöm a válaszaitokat (top_sli, neked külön is, hogy ennyire kifejtetted).

    Én elsőként az SQLite-re gondoltam, mert desktop programokat csak a munkámat megkönnyítendő tákolgatok, de ezek jellemzően apróbb okosságok, most viszont elérkeztem oda, hogy kicsit több adatot kéne tárolni, keresni bennük, stb. Az SQLite meg ahogy a nevében is benne van, lite, halál egyszerű használni, hordozható is marad a program, ezekhez bármelyik komolyabb adatbázis-kezelő ágyúval verébre lenne.

    De ettől függetlenül azért valami komolyabbal is megismerkednék és tulajdonképpen itt akadtam el, mert azt látom, amit matt383 is írt, vagyis hogy egyéni preferencia kérdése. Alapvetően persze az MS SQL Express (a 10GB-os limittől nem igen kell tartanom) lenne a legnyilvánvalóbb választás, de a gyakorlatban úgy vettem észre nem ennyire egyértelmű a dolog.

    Azt hiszem az MS SQL Express-el folytatom majd az SQLite után, de belekóstolok a többibe is.

    Ugye nem remélted, hogy egy nap alatt átrághatod majd magad rajta?

    Bár a programozást nem ma kezdtem és a C# sem ismeretlen, de persze nem. Ahogy írtam is, saját célra tákolgatok, tehát igazából nem is sürget semmi, ráérek kísérletezni, viszont annyira azért nem érek rá, hogy tévúton járjak már az elején, ezért ez a téma is.
    Mutasd a teljes hozzászólást!
  • a postgre-nek meg az admin felülete egy katasztrófa


    Akor még nem láttad a teampostgresql.com
    online: TeamPostgreSQL

    Kezdésnek, ismerkedésre a pg-vel, ez jó. Később meg úgy is pure SQL
    Mutasd a teljes hozzászólást!
  • Ezen nem sokat gondolkodnék, C#-hoz tökéletes a beépített MSSQL támogatás, akár Code First oldalról nézve, akár DB oldalról nézve, ráadásul ingyenes. 10GB adatbázist meg nehéz telirakni, ráadásul könnyen lehet Azure szerverre deployolni. Egyébként vannak "alapértelmezett" párosítások : Java-Oracle, PHP-MySQL, .NET-MSSQL.
    Mutasd a teljes hozzászólást!
  • a postgre-nek meg az admin felülete egy katasztrófa

    Pl. a PHPMyAdmin is nagyon gyászos szerintem, de technikailag bármit el lehet érni pure SQL segítségével mindkettőben, nem? Akkor ez nem lesz probléma.
    Mutasd a teljes hozzászólást!
  • Ismerkedési célra teljesen csak egyéni preferencia kérdése. A teljesség igénye nélkül pár gondolat, hogy eligazodni segítsen. Az sqlite nem igényel külön service réteget, de a hátránya is az, egyszerre csak egy alkalmazáshoz rendelheted hozzá a db-t. Mini alkalmazások saját nyilvántartásához célszerű használni. Az ms sql a microsoft platform saját "versenyzője", a legtöbb kiforrott support ahhoz van, viszont ha később nagyobb cuccot akarsz építeni, az üzleti licenc csont kegyetlenül drága - az express edition ingyenessége 10 gigáig tart. A mysql ingyenes nagyobb méretben is, de készülnöd kell hibákra, a feature-ök javarészére a helyedben inkább nem számítanék, és alkalmazásba illesztésre az a legjobb, ha van elég tapasztalatod magadnak csiszolni a handy class-okat, mert amik vannak közkézen, hát.. ..majd meglátod. Van még postgre sql is arra az esetre, ha mindenképpen szükséged van tárolt eljárásokra is (a mysql script motorja kritikán aluli), mert scriptes cucc alatt a lehető legtöbb teljesítményt akarod kisajtolni belőle. Az érem másik oldala, hogy szerény véleményem szerint a postgre-nek meg az admin felülete egy katasztrófa. Gyors körkép gyanánt talán ennyi.

    Ugye nem remélted, hogy egy nap alatt átrághatod majd magad rajta?
    Mutasd a teljes hozzászólást!
  • Ezek bármelyike megfelelő. Egyéni preferencia kérdése, hogy melyiket választod.
    Mutasd a teljes hozzászólást!
  • Ha most először szeretnék C#-al adatbázist használni (az ingyenes Visual Studio-val), akkor melyik az ajánlott adatbázis-kezelő? Kisebb programokhoz jónak tűnik az SQLite, de mit szokás használni manapság komplexebb, több adatot használó programok esetén? Többektől hallottam a MySQL-t, de kézenfekvőnek tűnik az MS SQL Express. Vagy ha nem ezek, akkor mi?
    Mutasd a teljes hozzászólást!
Tetszett amit olvastál? Szeretnél a jövőben is értesülni a hasonló érdekességekről?
abcd