» »

[baze podatkov] - Kako začeti?

[baze podatkov] - Kako začeti?

bazar44 ::

Zdravo,

individualno se lotevam učenja dela s podatki. Vse kar trenutni znam je neka povprečna raba Excela. Tu bom nadaljeval z učenjem še dodatnih funkcij in kasneje VBA. Bolj pa bi se rad usmeril v delo z SQL-om. Po navadi ima tak tečaj že vključen določen service (MySql, MSSQL...). Kaseje bom to verjetno navezal na Pythona, ki je menda najlažji in bodo najhitreje prišli rezultati. Ta programski jezik gre menda najbolj z roko v roki z PostgreSQL. Menda pa so si precej podobni in to ni tako pomembno.
Na Udemy so to tile tečaji. Kaj menite, kateri bi bil najbolj primeren? Verjetno napačen ni noben.

Pred časom sem na pol predelal course od Colt Steel Web Development Bootcamp (mislim da 2020). Razlaga na dolgo in široko, je pa vmes kar nekaj vaje, ki je ključna, da pišeš kodo sam. Tako sem se naučil HTMl, CSS, Bootstrap pri Javascript pa mi ni šlo.
Course se nadaljuje z DOM, API, AJAX, Node JS, REST, Mongo... Web Development Bootcamp 2021
Ali bi te zadeve potreboval, ali pa lahko grem direktno na baze?

Enako bi potreboval kakšen dober Udemy tečaj za Excel in VBA. Tak, ki je uporabne tudi v praksi. Pri Excelu poznam osnove - vrtilne tabele in tistih par funkcij, ki jih venomer uporabljamo. Znam posneti makro, ne znam pa ga napisati. Potem pa se mi počasi ustavi.
Mi lahko predlagate kakšen tečaj, ki bi bil uporaben?

Hvala za odgovore in mnenja.

kuall ::

noben tečaj ni uporaben. raje se uči izključno s prakso. tečaj vzameš po potrebi, če ti res ne gre drugače (če si posebej bukov :) )

Zgodovina sprememb…

  • spremenilo: kuall ()

WhiteAngel ::

@bazar44 Kateri problem pa sploh rešuješ? Kar tako malo na pamet delati neke sql course je preč vržen čas. Jaz bi ti predlagal osnove podatkovnih baz na FRIju... ker prav pride tudi nekaj relacijske algebre in v prvi vrsti načrtovanje ter performanse.

Aja, django v pythonu ima za moje pojme enega lepših ORMjev. Podpira večino baz. Vedno pa rabiš seveda sql, ko se kaj zalomi.

Invictus ::

@OP

V svoj post si nametal cel kup tehnologij, ki niso najbolj združljive. Mešaš open source in Microsoft...

Nauči se osnovni SQL, na zastonj bazi. Vzemi Postgres. Pozabi na MySQL, ker ima nek svoj dialekt in se ne drži standardov.

Ostani v okolju, kjer si domač in se nauči eno stvar naenkrat.

Zglede na post ne znaš ne baz, ne SQL, ne programirati...

Hitrih bližnjic pri tem ni...
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

Tody ::

A to si se prijavil na delovno mesto superheroja, pa si se mal zlagal v cv?

Pojdi od izziva do izziva. Vse kar si nastel je uporabno ampak ce ne bos tega uporabljal v realnem svetu je isto kot ce se bi naučil latinščine.

bazar44 ::

Seveda ne znam programirati. Tudi baz ne znam. Rad pa bi se naučil.
Ne vem, kako je to mišljeno "najdi si dejanski primer", jaz pa sploh ne vem, kaj je to Join?

@Invictus...morda tole https://www.udemy.com/course/the-comple...

@WhiteAngel....ja, kako pa pridem do tega?

@Tody...planiram delovno mesto nekega analitika oz. nekoga, ki dela s podatki in ni tisti "klasični" programer, ki razvija aplikacije.

Kayzon ::

Naj bi bili vsi zastonj:

https://sqlzoo.net/wiki/SQL_Tutorial
http://studybyyourself.com/seminar/sql/...
https://mode.com/sql-tutorial/introduct...
https://pgexercises.com/
https://www.w3schools.com/sql/
https://www.codecademy.com/learn/learn-...

Najvec se bos pa itak naucil ko bos probal narediti nekaj s SQL-om,vmes googlal zakaj kej ne stima in poslusal feedback ljudi s foruma,kjer se ukvarjajo s tem.

pegasus ::

bazar44 je izjavil:

Ne vem, kako je to mišljeno "najdi si dejanski primer",
SQLite in prebrskaj bazo tvojega browserja. In se čudi, kaj vse najdeš notri ;)

Tody ::

Bazar44

Analitik je fajn da ve kaj je sql ampak, ce ne bos imel lih ful pasjega šefa bos mel dost časa poguglat stvari. Če mislis da programerji se manj analitiki vse vedo na pamet... Več velja da znas inditificirat problem in najti rešitev kot pa izvajanje. Programirat zna kar nekaj ljudi ce ves kaj hoces. Ze tukaj lahko dobis ljudi ali pa odgovor ce ves kaj hoces. Kuall ti bo naredil resitev v enem dnevu, za katero bos rabil ti en teden. Cetudi ti vzame 500 eur si ti resil problem. Ce ti le ta prnese 1000 eur si zmagal

Kayzon ::

Pa ne se ustrasit ce ti ne bo slo takoj,ker je to normalno k se ucis nekaj novega. IT sektor je znan po hudem "gate keeping-u" ker se bojijo za svoje riti.

kuall ::

Tody je izjavil:

A to si se prijavil na delovno mesto superheroja, pa si se mal zlagal v cv?

Full stack web developer je ta superheroj. Ti in programerji igric najbolj najebejo.
SQL je težji, kot izgleda. Rabil boš par intenzivnih mesecev ozirom celo let, da ga obvladaš. Se pa splača to učiti, če kaj potem SQL. Po moje najbolj uporaben jezik od vseh.

kuall ::

Tody je izjavil:

Bazar44

Analitik je fajn da ve kaj je sql ampak, ce ne bos imel lih ful pasjega šefa bos mel dost časa poguglat stvari. Če mislis da programerji se manj analitiki vse vedo na pamet... Več velja da znas inditificirat problem in najti rešitev kot pa izvajanje. Programirat zna kar nekaj ljudi ce ves kaj hoces. Ze tukaj lahko dobis ljudi ali pa odgovor ce ves kaj hoces. Kuall ti bo naredil resitev v enem dnevu, za katero bos rabil ti en teden. Cetudi ti vzame 500 eur si ti resil problem. Ce ti le ta prnese 1000 eur si zmagal


Tale post nima ne repa ne glave. Kaj je njegov point? Da se ne splača učit programiranja niti SQL? Wrong.
Programerjev zelo primanjkuje in še bolj jih bo, navkljub trditvam nekaterih, ki nimajo pojma, da ta poklic nima prihodnosti ali da bo AI prevzel to delo, tako da OP se je že prav odločil.
Itak, da se google stalno uporablja, to delajo VSI. Jaz uporabljam iskalnik po arhivu svoje kode še bolj kot Google, ker čeprav sem nekaj sprogramiral nekoč si ne zapomnim vsega do črke seveda in znova uporabim staro kodo v novem projektu, ne pišem vsega od začetka. Še vedno pa moraš vedeti, kaj delaš, da tako kodo zlimaš skupaj in jo modificiraš za potrebe projekta.

mr_chai ::

bazar44 je izjavil:

Seveda ne znam programirati. Tudi baz ne znam. Rad pa bi se naučil.
Ne vem, kako je to mišljeno "najdi si dejanski primer", jaz pa sploh ne vem, kaj je to Join?


Konceptualno relacijske baze shranjujejo podatke v tabele. V računalništvu je zelo pomembena abstrakcija, se pravi, da si znaš stvari bolj abstraktno predstavljati. In tukaj je en primer abstrakcija ravno ta tabela. In kot tabelo si lepo predstavljaš niz podatkov v neki tabeli (excelu ali na papirju), kjer imaš stolpce in vrstice. In na tem nivoju dela z bazami, se pravi uporaba SQL jezika, ti ne rabiš vedeti kako so pa dejansko implementirane te tabele v programskem jeziku in v katerih podatkovnih strukturah se hranijo na disku itd. itd..(For the most part!)

Tvoj cilj je očitno znanje razvijanja spletnih aplikacij. Problem tega cilja je, da je na tem področju ogromno enih baznih znanj in enih tehnologij na katerih ves internet sloni.

- Napredna uporaba Linux OS-a ( osnovno razumevanje operacijskih sistemov, ukazi v konzoli, containers? (docker?), kubernetes?)
- Networking (OSI model, TCP/IP - how does interetes workes?, web servers? proxy servers? load balancers ? HTTP ,was ist das?)
- Version control ? (Git?)) -- ok to še ne rabiš
- ..In še mnogo ostalega znanja...---
- In vsa ta znanja, so nujna dodatna znanja, ki jih potrebuješ še predno pridemo do programiranja..

Jaz bi ti svetoval, da si najdeš kakšen univerzitetni course, npr tale je top, evo tle maš vsa predavanja in pejt čez to in poglej kateri učbenik imajo, katere vaje imajo, naredi vse. Najboljši nasvet kar sem ga kdaj dal, resno! Pa mislim, da se tudi python uporablja.



Potem imaš še knjigo How to design programs, kjer se naučiš Racket (lisp), ampak znanje ki ga dobiš tle, se prenaša na vse jezike, tudi python. https://htdp.org/


In, da še odgovorim na tvoje vprašanje. Join je združevanje dveh ali več tabel v eno po nekem ključu. Razlago najdeš na googlu, sploh pa se ne rabiš učit zdej SQL full podrobno. Nauči se najprej samo minimalne osnove. Sploh pa noben programer ne obvlada v nulo SQL ;) Včasih tudi kdaj pozabimo kako se napiše en simpl JOIN, ker je narava dela taka, da se lahko enkrat 3 mesce samo z SQL-om ukvarjaš in probavaš optimizirati poizvedbe, pišeš nove sql queryje itd, enkrat se pa tud po pol leta ne dotakneš SQL-a in potem marsikaj pozabiš, imaš pa še vedno prednost pred začetnikom, ker imaš osnovne koncepte v glavi, tako da hitreje razumeš dokumentacijo.

Zgodovina sprememb…

  • spremenilo: mr_chai ()

Tody ::

kuall je izjavil:

Tody je izjavil:

Bazar44

Analitik je fajn da ve kaj je sql ampak, ce ne bos imel lih ful pasjega šefa bos mel dost časa poguglat stvari. Če mislis da programerji se manj analitiki vse vedo na pamet... Več velja da znas inditificirat problem in najti rešitev kot pa izvajanje. Programirat zna kar nekaj ljudi ce ves kaj hoces. Ze tukaj lahko dobis ljudi ali pa odgovor ce ves kaj hoces. Kuall ti bo naredil resitev v enem dnevu, za katero bos rabil ti en teden. Cetudi ti vzame 500 eur si ti resil problem. Ce ti le ta prnese 1000 eur si zmagal




Tale post nima ne repa ne glave. Kaj je njegov point? Da se ne splača učit programiranja niti SQL? Wrong.

Programerjev zelo primanjkuje in še bolj jih bo, navkljub trditvam nekaterih, ki nimajo pojma, da ta poklic nima prihodnosti ali da bo AI prevzel to delo, tako da OP se je že prav odločil.
Itak, da se google stalno uporablja, to delajo VSI. Jaz uporabljam iskalnik po arhivu svoje kode še bolj kot Google, ker čeprav sem nekaj sprogramiral nekoč si ne zapomnim vsega do črke seveda in znova uporabim staro kodo v novem projektu, ne pišem vsega od začetka. Še vedno pa moraš vedeti, kaj delaš, da tako kodo zlimaš skupaj in jo modificiraš za potrebe projekta.


Če ti nebi bil tako zagrenjen bi bilo tudi tebi lepše. Model je rekel da hoče bit analitik, in vem da obstajajo full stack programerji ampak noben od njih ni nastal kot big bang da je en dan se odločili drug dan pa vse znal. Leta in izkušnje jih naredijo in veliko projektov. Na zalogi se učit vse vrste tehnologije je brezveze.

Učenje je pa celo življenski projekt, ce ze znas vse tehnologije je se vedno veliko "mehkih" veščin

Moj point je bil da se da resevat stvari tudi izven dirketnega programiranja, kar sicer ti zaničujes ampak...

A110 ::

SQL je ena najlažjih stvari. Sploh če so ti osnove algebre jasne. Sama relacijske algebra je odzadaj. Sploh pri postgresql. Za analitika se čimbolj oddalji od excela. Python/R in power bi/tableau naj postanejo tvoji prijatelji.

Tody ::

A110 se strinjam!

kuall ::

A110 je izjavil:

SQL je ena najlažjih stvari.

SQL kot jezik je težji za človeške možgane kot klasični jeziki kot je C#.
Odvisno kaj programiraš. Če delaš samo enostavne select je lahek. Če pa rešuješ težje probleme z njim, kar je večinoma primer v večjih aplikacijah, pa je težak. Pri spletnih trgovinah in vseh web aplikacijah večino glavne zapletene logike vsebuje SQL koda. Tako baza vsebuje na tisoče SQL procedur (zdajle gledam program, ki ima 5000+ SQL procedur). Da se sprogramirati tudi drugače seveda ampak je manj učinkovito. Veliko se uporablja dinamičen SQL, CTEje in tmp tabele. Tudi triggerji niso preveč enostavna stvar, posebej ko moraš pazit, da bo vse skupaj teklo hitro in brez raznih deadlockov in podobnih pizdarij.

Tody je izjavil:

Moj point je bil da se da resevat stvari tudi izven dirketnega programiranja, kar sicer ti zaničujes ampak...

Tako, da zaposliš nekega programerja, da programira namesto tebe, ne? To že gre, če imaš ti kakšno dodano vrednst, bodisi si dober prodajalec ali kaj podobnega, da se s programerjem dopolnjujeta. Niso pa programerji poceni, tak da mora biti ta tvoja dodana vrednost kr konkretna.

Zgodovina sprememb…

  • spremenilo: kuall ()

bazar44 ::

Hvala za vse komentarje.
Jaz sem se sedaj lotil tegale coursa. Verjetno bo za štart ok. Nisem hotel takoj na 20+ urni course, da me vse ne mine. Na težje grem lahko še vedno, tule pa lahko rečem, da vsaj neke osnove pa že imam. Upam, da bom po koncu tegale coursa lahko že kaj naredil in dal na github. Pač karkoli...
Potem pa kakšen Python in pošiljanje podatkov preko API-ja na spletno stran in shranjevanje v bazi. Recimo...

Edino vidim, da predavatelj uporablja verzijo 11.6, sam pa sem naložil neko 12.x. PgAdmin 4 mu odpre v browserju, meni pa direktno v aplikaciji - link.

Ali je že kakšna nova rešitev za prt scr videov na Udemy? Tole me kar moti...

Zgodovina sprememb…

  • spremenilo: bazar44 ()

kuall ::

rešuj naloge. za začetek tole:
Izbriši vse vrstice razen ene, ki so podvojene v koloni "name".

drop table tabela

CREATE TABLE tabela
(
ID VARCHAR(400),
NAME VARCHAR(200)
);


INSERT INTO tabela (ID, NAME) VALUES ('1', 'vazelin');

INSERT INTO tabela (ID, NAME) VALUES ('2', 'invictus');

INSERT INTO tabela (ID, NAME) VALUES ('3', 'vazelin');

INSERT INTO tabela (ID, NAME) VALUES ('4', 'kuall');

ps rešitev obstaja v eni drugi slo tech temi, vsaj 2 sta. probaj najti obe rešitvi. :D

Zgodovina sprememb…

  • spremenilo: kuall ()

HotBurek ::

Top rešitev:
DELETE FROM tabela WHERE `id` = 1;
root@debian:/# iptraf-ng
fatal: This program requires a screen size of at least 80 columns by 24 lines
Please resize your window

Zgodovina sprememb…

  • spremenilo: HotBurek ()

no comment ::

A110 je izjavil:

SQL je ena najlažjih stvari. Sploh če so ti osnove algebre jasne. Sama relacijske algebra je odzadaj. Sploh pri postgresql. Za analitika se čimbolj oddalji od excela. Python/R in power bi/tableau naj postanejo tvoji prijatelji.

+1

Kot analitiku ti SQL ne bo škodil, ampak to je za fizične delavce. Ne rabiš si s tem mazat rok.

Analitik bo veliko več časa preživel v kakšni OLAP, Power BI... rešitvi in bo pisal MDX, DAX, R...

A110 ::

kuall je izjavil:

A110 je izjavil:

SQL je ena najlažjih stvari.

SQL kot jezik je težji za človeške možgane kot klasični jeziki kot je C#.
Odvisno kaj programiraš. Če delaš samo enostavne select je lahek. Če pa rešuješ težje probleme z njim, kar je večinoma primer v večjih aplikacijah, pa je težak. Pri spletnih trgovinah in vseh web aplikacijah večino glavne zapletene logike vsebuje SQL koda. Tako baza vsebuje na tisoče SQL procedur (zdajle gledam program, ki ima 5000+ SQL procedur). Da se sprogramirati tudi drugače seveda ampak je manj učinkovito. Veliko se uporablja dinamičen SQL, CTEje in tmp tabele. Tudi triggerji niso preveč enostavna stvar, posebej ko moraš pazit, da bo vse skupaj teklo hitro in brez raznih deadlockov in podobnih pizdarij.

Tody je izjavil:

Moj point je bil da se da resevat stvari tudi izven dirketnega programiranja, kar sicer ti zaničujes ampak...

Tako, da zaposliš nekega programerja, da programira namesto tebe, ne? To že gre, če imaš ti kakšno dodano vrednst, bodisi si dober prodajalec ali kaj podobnega, da se s programerjem dopolnjujeta. Niso pa programerji poceni, tak da mora biti ta tvoja dodana vrednost kr konkretna.



Jaz Neven kakšni so tvoji možgani a mojim je SQL (postgresql) veliko lažji ker res popolnoma temelji na relacijski algebri. Ampak takim kot si ti, ki mislite da matematike programer ne potrebuje je pa očitno to nekaj neznanega.

Lonsarg ::

Glavna rezlika med običnim programiranjem in SQL je, da pri običnim razmišljaš podatek po podatek, če jih je več pišeš algoritem za enega naenkrat v zankah, operacijo po operacijo (ok so izjeme kot recimo linq v C#, ampak pač govorim generalno). SQL pa te prisili v razmišljanje o množicah in unijah itd, o več podatkih naenkrat skratka, zahteva več "RAM-a" v možganih za prispodobo. In to marsikomu nikakor ne gre sem opazil.

Tako da ja SQL je težji kar se načina razmišljanja tiče. Ampak to je ob predpostavki, da izločimo poznavanja samega jezika kot faktor. Jasno da če enega manj poznaš, da ti bo že zaradi tega "težji", dokler ga ne spoznaš v nulo.

kuall ::

dober primer, zakaj je razmišljanje v sql težje je una moja naloga. uno bi znal rešit vsak noob v c#, v sql pa je veliko težja in je način reševanja čist ne intuitiven. in polno je takih primerov.

HotBurek je izjavil:

Top rešitev:
DELETE FROM tabela WHERE `id` = 1;

če si resen ali če se hecaš, mim si (kot ponavadi).
rešitve te naloge so vsaj 3. oziroma 5 se jih lahko spomnim zdele ampak ene so bolj exotic.

Zgodovina sprememb…

  • spremenilo: kuall ()

bazar44 ::

Začel sem s tem coursom in predelal nekaj poglavij. Zaenkrat nič posebnega, vendar bom nujno potreboval praktične primere.

Prvi, na katerega pomislim, je kar iz službe. Tam v kratkem pričakujemo naval novih strank, ki bodo svoje podatke vnašale v obrazec na spletni strani.
Gre za klasiko - ime, priimek, podjetje, davčna, paket... Nekaj od tega bo bržkone avtomatizirano, nekaj pa sigurno ne. Vprašanje, kaj bom sam znal in koliko se bom lahko igral s podatki.
Zanima me, kakšna je dobra praksa skladiščenja teh informacij? Princip po vnosu podatkov gre nekako tako, da stranka vpiše podatke, ti se bodo nekam zapisali (ne vem kam, ker bo vse na novo), potem pa sledi ročno posredovanje podatkov za vklop, povratna informacija o ureditvi in obveščanje stranke. Vse na roke. ?
Kako pa to delajo profiji oz. kaj bi tu bilo primerno za začetnika, kot sem jaz?

Tody ::

Ker mamo premalo info... Vse se da avtomatizirat. Idealno se podatke vpisuje v kak crm zadaj mas kako skladišče, ki je povezano z email sistemom. Drugače so lahko to trije poklici ..

Nekako tako da iz spleta gre v crm, kjer so označeni neobdelani podatki. Nekdo v crm oddelku zadevo uredi in postavi flag na obdelano. Email sistem enkrat na x casa pregleda ce je ze vse poslal in poslje. Ali pa to naredi crm kar takoj

Invictus ::

bazar44 je izjavil:


@Invictus...morda tole https://www.udemy.com/course/the-comple...

Ni slab za to kar si napisal. Izkoristi črni petek :D.
"Life is hard; it's even harder when you're stupid."

http://goo.gl/2YuS2x

bazar44 ::

Imam 1. težavo. V coursu ni prikazano shranjevanje skripte.
Sam sem skripte shranjeval s temle:
https://imgur.com/a/YemhKvt

Na disku imam samo tele, kjer pa file nima tipa:
https://imgur.com/a/iY6v2KZ

Nikjer drugje jih ne najdem, niti ne najdem mape, da bi to lahko nastavil.
Napisal sem enako skripto, ki že očitno obstaja, pa je ne morem najti. Run mi vrne error:

ERROR: relation "pets" already exists
SQL state: 42P07

Se pravi:
- rad bi videl, kako se tole dejansko pravilno shranjuje;
- rad bi našel svoje stare file in jih odprl.

Če mi kdo lahko pomaga, bi bil precej vesel. Na netu nisem našel.

Zgodovina sprememb…

  • spremenilo: bazar44 ()

6bt9hmDwY ::

Glede na to, kar si napisal v izhodiščnem sporočilu, ti je uspelo veliko prehitro obupati, ker bi se pričakovalo, da ti je delo z urejevalniki kode (s shranjevanjem in nalaganjem posnete) približno jasno: 1. Beri, kar piše na ekranu, 2. Išči na osnovi ključnega feedbacka, 3. Eksperimentiraj.

pegasus ::

Danes med linki: https://schemaverse.com/


Vredno ogleda ...

TemaSporočilaOglediZadnje sporočilo
TemaSporočilaOglediZadnje sporočilo
»

Regexp izraz za filtriranje imen datotek (strani: 1 2 3 )

Oddelek: Programiranje
11613204 (2757) GupeM
»

postavitev spletne strani in domene.com

Oddelek: Izdelava spletišč
283399 (304) FireSnake
»

Začetki programiranja

Oddelek: Pomoč in nasveti
233527 (2575) FTad
»

Učenje programiranja PHP

Oddelek: Programiranje
91484 (1025) Spura
»

Kje se kaj učite online?

Oddelek: Programiranje
486360 (4273) scipascapa

Več podobnih tem