Adatbázis alkalmazás fejlesztés

Fórumok

Sziasztok!
Szeretnék magamnak egy adatbázis alkalmazást fejleszteni, lényegében egy redundanciát tartalmazó, vagy másképpen nem normalizált excel táblát váltanék ki vele.
Mindenféle előfeltétel nélkül ti mit ajánlanátok. Elkezdtem már python, perl, java, C++-al, illetve Qt-vel is ismerkedni, de mindig abbamaradt, mert változókkal, adattípusokkal, vezérlési szerkezetekkel ugyan már megismerkedtem, de nem jutottam el oda, hogyan is tudnám ezt egy ilyen alkalmazásban használni.
MS Lightswich vagy mi a neve a MS erre a célra szolgáló alkalmazásának, de erre sem találtam jó könyvet, csak egy devPortal-os videót, amin fényezik a rendszert, azzal sem lettem előrébb.
Szerk: még annyit, beszereztem pár könyvet, Hogyan tanuljuk meg a java, C++, C#, PHP használatát 24 óra alatt, Angster Erzsébet Java könyvét, valami Phythont tanulok vagy mi a címe, belekezdtem, de nem látom, hogy hogyan jutok el a végső célomhoz, mert ezt nagyon nagyolva tárgyalják.
Java lenne az a nyelv, amit preferálnék, de ehhez sem találtam olyat, hogyan tudnék szépen grafikus felületen adatbázist használó alkalmazást fejleszteni.

Hozzászólások

Ha kis projektnek szánod, akkor érdemes python/php/perl és sqlite párossal kezdeni. Az sqlite-nak vannak ugyan hiányosságai, de ha kevés adatot tárolsz és esetleg korlátozott az erőforrás, akkor nem nagyon van alternatívája.

Először meg kell tanulnod a kiválasztott nyelv alapjait. Ehhez tökéletesen elegendő a parancssor. Mondjuk a legalapvetőbb dolgokkal x idő alatt tisztába leszel. Az x 24 óránál sokkal több lesz, ha még egy nyelven sem tudsz programozni. Amíg az alapokkal nem vagy tisztában, addig semmi esélyed GUI-s programot írnod. Az alapok kb. annyira lesznek elegendőek, hogy megértsd a GUI programozás alapjait. Ha már az alapokkal tisztában vagy, akkor lehet nekiállni a grafikus program írásához szükséges ismeretek elsajátításának. Ehhez, ha még nincs ilyen tapasztalatod, legalább annyi idő kell, mint az alapok elsajátításához kellett.

Mikor ez is megvan, akkor nem árt, ha az adatbázis kezelőkben is elmerülsz egy kicsit. De ezt CLI-ben is meg lehet tanulni.

A folyamat végén már sejteni fogod, hogy hogyan tudod megvalósítani a programodat. Miközben írod a programot, közben rá fogsz jönni, hogy a kiválasztott nyelv alapjainál esetleg valamit félreértettél. Ez utóbbi a GUI programozás tanulása közben is bekövetkezhet. Az is ki fog derülni ekkora, hogy az alapok mellett a nyelv finomságait is meg kell tanulnod. Természetesen sorra elköveted azokat a hibákat, amiket a kezdő programozok el szoktak követni.

Az teljesen természetes, hogy most még nem látod, hogyan tudnál egy ilyen programot megírni. Először tűzz ki egyszerűbb feladatokat, amik néhány (10-100) sor programmal megvalósíthatóak.

Nem a programozásra mondták, de erre is igaz: „Nincs királyi út”.

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

- Tudjátok - állította Didaktülosz -, különféle módjai vannak a tanulásnak. Eszembe jutott az az idő, amikor a derék Lasgere, Tsort hercege megkérdezte tőlem, hogyan válhatna művelt emberré, különösen mivel nincs ideje arra az olvasósdi dologra. Azt mondtam neki "A tudáshoz nem vezet királyi út, felség", és ő azt mondta nekem "Akkor piszok gyorsan építs egyet vagy lecsapatom a lábad. Használj annyi rabszolgát, amennyit csak akarsz. " Üdítően közvetlen megközelítés, mindig is úgy véltem. Nem olyan férfi, aki fecsérelné a szavakat. Embereket igen. De szavakat nem.
- Miért nem csapatta le a lábad? - tudakolta Urna.
- Megépítettem neki az útját. Többé-kevésbé.
- Hogyan? Azt hittem, az csak metafora volt.
- Már okulsz, Urna. Szóval kerestem egy tucat rabszolgát, akik tudtak olvasni, és azok ott ültek a hálószobájában éjjel és válogatott részleteket suttogtak neki, míg aludt.
- Bevált?
- Nem tudom. A harmadik rabszolga egy hat hüvelykes tőrt döfött a herceg fülébe. Aztán a forradalom után az új uralkodó kiengedett a börtönből, és azt mondta, elhagyhatom az országot, ha megígérem, hogy nem gondolok semmire a határig vezető úton. De nem hiszem, hogy elviekben rossz lett volna az elgondolás.
(Pratchett, Kisistenek - Small Gods)

--
akkor most free tibet vagy delete tibet a jó?? - falu

Ha natív, akkor Qt jó választás lehet, jó az sql libje, több motort is támogat.
Persze megírhatod valamilyen script nyelv GUI támogatásával is, nekem a Qt erre bevált, jó pár MySQL-t alkalmazó programot összerittyentettem már benne.
Ha webes, akkor nincs sok alternatíva, PHP, Python.

Ne terjesszünk már rémhíreket a kopaszok között!

Képességektől és (csökkentett) igényektől függően bármilyen nyelv szóba jöhet, csak olvasson stdint, írjon stdoutot, kezeljen paramétereket és adjon hozzáférést a környezeti változókhoz.

Volt idő, amikor a perl feketelistán volt, a php még a csattogós lepkét tolta a homokozóban, de a gyárnak a szokásos (átgondolatlan, tervezhetetlen) riportigénye megvolt: hol db cli + awk, hol tcl (házilag írt drájverkezdeménnyel) adta nekik, sőt a legegyszerűbb esetekben db cli + sh, a komplexitástól és egyéb körülményektől függően.

Üdvös, hogy ma már a hátsónk ki van nyalva majd minden platformon és helyzetben, de attól még máshogy is lehet... a legrosszabb, ami történhet, hogy többet lát a novícius a történésekből, mint 1-2 léjer takarásából.

,,aja, bármilyen nyelven lehet Fortran programot, akarom mondani webes alkalmazást írni... :-)''

Feltéve, hogy az illető -- aki a kódot írja -- igazi programozó, hiszen az igazi programozó nem Pascal-ban dolgozik ...

Gábor
(aki inkább ,,hátulgombolósnak'' tartja magát)
============================================
"Share what you know. Learn what you don't."

Na úgy összefoglalóan válaszolok. Mivel Linux/Windows platformon is dolgozok, azt hiszem mégis a Java mellett tenném le a voksom, bár másik favoritom a .net+C# lett volna, könyvek/leírások/eszközök miatt.
Igazság szerint én valami LightSwitch szerű dologra vevő lennék, de nagyon új, kevés hozzá az irodalom.
Azt hiszem, megpróbálom ironcat javaslatait megfogadni, bár nehéz. Valahogy furcsa az, hogy a programban tároljam valahogy mondjuk az ügyfél név, cím adatokat, mikor tudom, hogy majd egyszer egy adatbázisban akarom tárolni. Mindenesetre mindenkinek köszönöm a hozzászólásokat.

Először felejtsd el az adatbázisokat és adatok tárolását. Ismerd meg a nyelv alapjait egyszerű programokon keresztül. Utána jöhet az adatbázis. Kezdésként akár az SQLite-ot is használhatod. Előnye, hogy viszonylag egyszerű, és majdnem minden nyelvhez elkészült az API. Például a Javahoz is. Kereséshez kulcsaszavak: SQLite Java (esetleg Python, C, C++, ...) Tutorial. Aztán ha tejesítmény, vagy egyéb okokból szükséges, akkor válthatsz „komolyabb” adatbázisra is. Az SQLite előnye, hogy az elején nem kell foglalkoznod az adatbázis szerver konfigurálásával.

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

A Java ismereteim elég szegényesek, így csak egy lehetséges módot javasoltam:
„Kezdésként akár az SQLite-ot is használhatod”. Az „akár” szóra hívnám fel a figyelmedet.

De nem ez volt a mondanivalóm lényege. Mivel az eddigiek alapján úgy tűnik számomra, hogy a téma felvetője gyakorlatilag nem tud semmilyen nyelven programozni, így egy lehetséges tanulási útvonalat adtam meg.

Egy lényegtelen(?) apróság: Azért mert valaki nem tud programozni, még erős túlzás szerencsétlennek titulálni.

-----
A kockás zakók és a mellészabások tekintetében kérdezze meg úri szabóját.

Nem azért szerencsétlen, mert nem tud programozni, azért, mert vagy 20 különböző megoldási
javaslatot kapott, amiből nem fogja tudni kitalálni, hogy most akkor neki
igazából melyik lenne a jó. Kapott itt cpp,java,c#,python,ruby lehetőségeket, azt senki
nem veszi figyelembe, hogy egy jórészt totál kezdőről van szó, aki eddig excel-ben oldotta
meg a problémáit, és most a kezébe vett egy rakás könyvet, de hát ebből ő nem fog megtanulni
programozni, max. a nyelveket, mert se a gyakorlatot nem fogja felszedni, se a tervezési
módszertant.

Amit én javasolnék, tekintve hogy kb. most kezdett el programozni tanulni, hogy egy MS ACCESS
jellegű megoldással (akár libre/openoffice-os variációval) csinálja meg, mert a jelenlegi tudásához
kb. ez áll a legközelebb. Ha lenne 3-4-5 év programozói tapasztalata, akkor nyilván teljesen
más ajánlanék.

Attol fugg mi a cel: viszonylag gyorsan kellene valami hasznalhato, vagy cel az is, hogy megtanulj programozni. Mint korabban utaltak ra az utobbi azert nem megy 24 ora alatt.

Ha viszont valami hasznalhato kell, viszonylag gyorsan, ami elorelepes az excelhez kepest, mert mar db-ben tarolja az adatokat, akkor vannak erre elore kesz eszkozok, mint a LibreOffice Base. Ami maga is tud db-t kezelni es ahogy latom, lehet benne formokat kesziteni az adatbevitelhez. Lehet ez vagy valami hasonlo kielegitene a te igenyeidet.
Ebben az esetben is van egy kis kihivas, mert azert a db-t meg kell tervezni (keves redundancia, PK az feltetlen legyen minden tablan, ha FK-ket is raksz, akkor meg koherens is lesz).

Igazad van, nálam a cél minél gyorsabban valami használható. LibreOffice, Ms Access adatbázis kezelésre elfogadható, boldogulnék is talán velük, csak az elkészíthető form-ok nagyon csúnyák. Meg főleg FK-el, meg vezérlőkkel nem boldogultam. Mindegy, akkor hallgatok rátok és türelem...

Harbour Project ... http://harbour-project.sourceforge.net/
Harbour MiniGUI Extended ... http://hmgextended.com/
Harbour MiniGUI ... http://www.hmgforum.com/
Marinas Harbour GUI,Multiplatform ... http://www.marinas-tools.com.ar/

MS
sql express 2012 ... T-SQL
Visual FoxPro

GCC

ect...

---------------------------
Az információ egysége a bit, nagyobb egysége a megabit, kisebb egysége a mikrobit.

Szia!
Az igazság az, hogy ahogy fentebb írtam, gyors megoldást akartam. Egyébként MSSQL Express 2008 alatt már összeraktam a táblákat. MS Access-el próbáltam alájuk valamiféle alkalmazást összevarázsolni, de elakadtam ott, hogy az űrlapra beírok nevet, majd a lakcím települését egy FK-el összekötött telepules táblából válasszam ki legördülő listával, akkor ne a PK-t hozza fel, meg hasonlók.
Amúgy GCC alatt mit értesz, nekem fordítóprogram jut eszembe?

Ha számodra az Access is kihívás, akkor minden más ennél csak bonyolultabb lesz. Vegyél egy access könyvet, vagy nézz egy két online tutorialt, és akkor 1 hét befektetéssel sikerrel fogsz járni, nem lesz túl szép, de a célnak meg fog felelni. Én szemly szerint utálom az Accesst, de el tudom fogadni, hogy van az a helyzet ahol van létjogosultsága.

GCC igy igaz, C++ fordito /2011-es ISO szabvany is implementalva van benne/; mint irtad "Elkezdtem már python, perl, java, C++-al,". Ezzel sem problema kikuldeni a adatbazisok fele a parancsokat, es feldolgozni. Nagyon sok pelda van fent az interneten.
A harbour* - ban megirt alkalmazasok is vegso soron c forditoval vannak leforditva nativ kodra, pl. gcc . Acces, *sql, excel etc -ben tarolt adatokhoz is hozzafersz vele. Eleg nagy a pelda konyvtaruk. Viszont ido mire az ember vegig nezi :)

---------------------------
Az információ egysége a bit, nagyobb egysége a megabit, kisebb egysége a mikrobit.

Itt a hup-on biztos megkoveznek, de:
* Access - meglepoen komplex dolgokat lehet vele gyorsan osszerakni. Ennel tobb neked szinte biztos, hogy nem kell.
* Excel (!) - mivel nem irtad, pontosan mit szeretnel csinalni, adodik a kerdes, miert nem jo az Excel. Lehet, hogy sokkal gyorsabb es celravezetobb megtanulnod peldaul az array formulak hasznalatat (pl. http://office.microsoft.com/en-gb/excel-help/introducing-array-formulas…), ezekkel es a szabvany fuggvenyekkel is sokmindent meg lehet csinalni, es ugye ott a teljes Visual Basic.

Google Spreadsheet + App Script: http://www.google.com/script/start/

Gyakorlatilag Javascriptben lehet makrókat "appokat" írni Google Spreadsheethez.
Van hozzá egy kényelmes IDE, debugger, pár nap alatt jó eredményt el lehet érni vele. Lehet vele relatíve egyszerű UI-t is gyártani.

És csak egy böngésző kell hozzá.

Üdv,
Gergely

Köszönöm a hozzászólásokat. A mostani megoldás nagyjából egy számlázóprogram Excel táblában megoldva. Tehát minden számlához tárolva van oszlopokban a számla címzettjének adatai, a számla kiállítójának adatai, a tétel adatai, mikor kéne fizetnie, be van-e fizetve.
Maradva a példánál, ebből a táblából (ami körlevél forrásadatbázisa) nyomtatok számlát, fizetési felszólítást, inkasszót, meg egy jelentést a pénzügynek, hogy be lett fizetve a számla.

Bocs, csak PÉLDAKÉNT hoztam ezt, egyáltalán nem lenne használható. Akkor inkább azt mondom, hogy követelés behajtó cégnél tartozásnyilvántartó. Egyébként önkormányzati adóhatóságnál nyilvántartott adók módjára behajtandó tartozásokról van szó, amit az adónyilvántartóban nem akarok felvenni (bár alkalmas lenne rá).

Ehhez a temahoz ajanlatos attanulmanyozni:
Halassy Béla : EMBER INFORMÁCIÓ RENDSZER / http://mek.oszk.hu/11100/11122/#
Idezetek
"T 1.3 Egy kisvállalkozó barátom 386-os gépen Excel-ben készítette és kezelte
a számláit és azzal vezette a különböző nyilvántartásait is. Mert ahhoz
értett. Máról-holnapra az egész dolog összeomlott. Nem is történhetett
másként: az Excel ugyanis nem adatbáziskezelő rendszer. A nyilvántartások kezeléséhez más eszközre, annak alkalmazásához pedig szakemberre lenne szükség. Ma már barátom belátja volt szereptévesztését. "

Az Excel és a valódi adatbáziskezelő ‘táblázat’ fogalma nem azonos. Ez a terminológiai
zavar egyáltalán nem az elméleti szintre tartozik. Ön azt fogja hinni - joggal -, hogy a
kétféle táblázat egymásba konvertálható. Nem az! Ön előbb-utóbb a zavaros fogalmak
gyakorlati áldozata lesz.

---------------------------
Az Excel az gyászos. Nagyon. Egy mérnök kezében úgy néz ki, mint a különleges alakulatoknál a vízipisztoly.

"Az Excel az gyászos. Nagyon. Egy mérnök kezében úgy néz ki, mint a különleges alakulatoknál a vízipisztoly."

Szerintem meg ez a hozzaszolas a gyaszos. Feladathoz az eszkozt. Egy csomo feladathoz az Excel a tokeletes megoldas.

Az eredeti kerdeshez visszaterve (szamlazoprogram): arra meg az Access tunik tokeletes megoldasnak, leszamitva, hogy a piacon valoszinuleg kismillio szamlazoprogramot lehet kapni, amelyek minimalis befektetessel (most csak tippelek, de nagysagrendileg egy programozo egynapi bereert) kesz megoldast nyujtanak. Ha tehat szamlazni szeretnel, vegyel kesztermeket. Nem is ertem, hogyan jott az otleted, hogy te majd csak ugy irsz magadnak egy ilyen programot (persze ha igazabol hobbiprogramozni szeretnel, es ez a szamlazos tortenet csak egy jo urugy, akkor nem szoltam).

Már bánom, hogy bedobtam ezt a számlázóprogramot. Csak hasonlít rá, feljebb írtam, nagyjából miről van szó. 150 000 Ft-ért lenne rá célprogram, most vagy 200 tétel van az Excel táblában. Ebből nagyjából 50 tétel ami befizetésre került. Jogszabályi változások miatt kb. évi 50 tétellel bővül.

"Szeretnék magamnak egy adatbázis alkalmazást fejleszteni...", innen indultunk. Az excel, lotus, supercalc, gnumeric nem gond mig magadnak csinalod. Az ilyen tablakban tarolt adatnak legalabb egy tulajdonsaggal van kevesebb mint az adatbazisban tarolt adatnak. Ezert ez nem is lehet adatbazis alkalmazas.
Mas a kep ha a hatterben adatbazis motort hasznalsz, es csak a megjelenitest csinalod az emlitett eszkozokkel. Viszont ha kesobb tobb helyre kihelyezed a programodat, akkor nagyon munkaigenyesse valik a fentartasa. De ez mar egy kulon mese :(
---------------------------
Az információ egysége a bit, nagyobb egysége a megabit, kisebb egysége a mikrobit.

Lehet hogy itt megkoveznek erte, de Visual Basic? Alap db-s dolgokat pik-pakk ossze lehet dobni benne, es bar a programozasi stilusodon es hosszutavu tudasodon tobbet ront mint javit, de mukodik.

A feleségem szénhidrát-számolóját .NET-es megoldással valósítottam meg:
* .NET 4 - úgyis installálva van Win7-en
* MS SQL Server 2012 Express - ingyen van, SQL Management Studioval pedig szépen kezelhető, a tárolt eljárások pedig ügyesen elkészíthetők
* a Visual Studio 2010 Express-t is ingyen lehet letölteni.

A neten végtelen sok WPF leírás van, igen kellemes, "windowsos" kinézetet ad.

Fuszenecker_Róbert

Azért a sok technikai tudnivaló mellett jó, hogy valakinek az is eszébe jutott, hogy talán az adatmodellezésről is meg kellene emlékezni. Halassy dr. három alapvető fontosságú könyve letölthető a http://bélapó.hu (igen, ékezetes) címről. Szvsz a Sárga könyvvel érdemes kezdeni a művelődést.

Üdv:
KEA.

Elnezest, hogy belekotyogok. Anno elobb tanultuk a modellezest, majd papirra vittuk, lelyukasztottuk, mikor gepidot kaptunk lefuttatuk. Ha nem sikerult a kovetkezo proba /debuggok/ kozott hetek is elteltek. Volt ido atgondolni ;)
Kulonosen erdekes volt, ha alairast kellett kapni a targybol.
------------------------------------------------------------------------
Az igazi programozó FORTRANban dolgozik. … Az igazi programozónak nincs szüksége ilyen absztrakt fogalmakra ahhoz, hagy elvégezze a munkáját - tökéletesen érzi magát egy kártyalyukasztóval, egy FORTRAN fordítóval, meg egy sörrel. … ??? eggyel !!!

AZ IGAZI PROGRAMOZÓ

Hm, az első "adatbázisomat" amikor csináltam boldogult ifjúkoromban Turbo Pascallal (volt hozzá valami "adatbázisos" toolbox), nemhogy adatmodellezést nem tanultam még, de relációs kezelést sem... Viszont később, jóval később, elmondhatatlanul sokat tanultam Halassytól. Az első lépés az, hogy tisztán lássuk, mit is akarunk (vö. fogalmi szintű modell), utána lehet ehhez keresni eszközt (piacról és/vagy saját hozzáértésünk szerint) stb. Ha pontosan tudod, mit akarsz (és nagyon akarod), meg fogod találni a számodra megfelelő, vagy legalább elfogadható eszközöket, megoldásokat. Annak idején Michelangelonak néhány különböző méretű kalapácsa meg néhány különböző hegyű vésője volt, amit egy mai rákosborzasztói sírköves lazán kiröhögne. Na de a végeredmény...

Üdv:
KEA.