Administrare baze de date in devenire

databases

(andrei pacala) #1

salutare sunt elev in cls 11,cu o baza in programare destul de buna(c++ destul de bine,ma refer la cel procedural) si pe viitor as vrea sa dau la informatica economica CSIE bucuresti. Ca si viziune de viitor pot spune ca ma intereseaza bazele de date,in principiu meseria de administrator baze de date. Stiu cate ceva gen read ,delete sau alte joinuri dar doar atat. As avea si eu cateva intrebari:

  1. Stiti cumva cateva ide uri si servere pe care sa fac practica cu sql?
  2. Stiti cateva resurse online de unde as putea sa invat baze de date(aprofundare)?

15 ani si un vis
(cosmos) #2

pt sql server ai SQL server management studio
pt mysql ai mysql workbench
pt PostgreSQL ai pgadmin

heidisql suporta mai multe baze de date


(cosmos) #3

resurse online
sqlzoo
Microsoft virtual academy


(IstvƔn F.) #4

Bazele de date implica o gramada de teorie si proiectare pe hartie.
Pana acum probabil ai avut deaface cu baze de date relationale care folosesc limbajul SQL.

Administrarea unei baze de date e o nisa interesanta, dar riscanta.

Exista si baze de date nosql gen mongodb care au ca idee stocarea de documente JSON :

https://university.mongodb.com/


(Adrian Tufă ) #5

Poti sa te joci online pe SQL Fiddle cu diverse dialecte de SQL.


(Horia Coman) #6

Cea mai buna idee e sa-ti instalezi tu un Postgres/MariaDB/(MSSQL/Oracle in masura in care au variante free) si sa te joci cu ele. Cel mai bun joc e sa incerci sa faci o aplicatie simpluta cum ar fi un todo-list pentru mai multi utilizatori, sau un mic blog/magazin online ca sa vezi cum arata proiectarea si interactiunea cu o baza de date dpdv al construirii de aplicati. Ai sa inveti o tona din treaba asta si o sa devi un IT-ist mai rotund. Daca vrei, aici poti interactiona si cu alt gen de baze de date: Redis, sisteme NoSql, ElasticSearch etc.

Pentru mine, sa aprofundez ceva la inceput, doar de dragul de a aprofunda nu a functionat niciodata. Deabia cand am un context, niste repere si un overview al domeniului pot sa zic ca merita (sau nu), sa aprofundez ceva.


Paralel, daca sti si te consideri OK cu programarea, de ce nu mergi pe partea asta? E mai fun/rewarding/banos IMO decat retelistica, baze de date, administrare de sistem etc :smiley: Si intr-o anumita masura inglobeaza domeniile respective. Bazele de date, switch-urile si protocoalele lor, sistemele de operare etc. sunt facute de programatori pana la urma.


(Remus) #7

Iti recomand o carte in limba romana (tiparita): Modelarea Datelor, Ghidul Incepatorului (Andy Oppel). Teoria este explicata foarte bine, are multe exemple: http://www.libris.ro/modelarea-datelor-ghidul-incepatorului-andy-ROS973-7881-63-2--p370349.html .


(George Calianu) #8

VSCode are de asemenea pluginuri pentru MySql si MSSQL.


(PƮrvan Marian) #9

Eu cand eram student, era la ofera treehouse la 9$ , reducere pentru studenti daca faceai o poza cu carnetul, cred ca se aplica si pentru cei de liceu.
Eu de acolo am invatat bione sql, din cauza ca combina teoretic cu practica(si da urasca teoretia dar cand ajuta, invat(las mofturile deoparte).


#10

M-ar interesa daca ai detalia putin ce intelegi prin riscanta? Multumesc.


(IstvƔn F.) #11

Buna,
Ma bucur ca intrebi.

In primul rand, in majoritatea cazurilor, datele stocate intr-o baza de date sunt extrem de valoroase, nu vrei sa puna mana oricine pe ele. Trebuie sa ai mare grija la securitate, daca se scurg datele din cauza ta ai ce plati dupa.

In al doilea rand nici un sistem nu va functiona fara baza de date. Orice faci trebuie sa ai mare grija sa nu pierzi datele clientului, trebuie sa ai mereu backup-uri, trebuie sa lucrezi cand ai afecta cat mai putin posibil clientul daca tot ai avea o problema fiindca un backup nu se pune de pe un minut pe altul, in special cand ai cateva sute de Gb. De multe ori vei putea lucra doar direct pe productie fiindca nu va fi viabil sa ai o baza de date de testare/development sau problemele oricum nu se vor reproduce.

In al treilea rand la proiectarea unei baze de date trebuie sa oferi o garantie in ziua de azi ca ceea ce faci e scalabil, redundant si ai o performanta in parametrii necesari la un anumit cost. Daca vor fi probleme in viitor mai mult ca sigur baza de date va fi prima care va fi verificata.

In al patrulea rand nu o poti schimba asa usor, o data ce ai o structura tot backend-ul se va baza pe aceea structura. Daca trebuie sa faci o schimbare trebuie sa ai mare grija sa nu scoti ceva ce ar afecta codul existent.

Practic toate deciziile luate la nivelul unei baze de date sunt foarte importante pentru aplicatia in sine. Multi aleg o baza de date NOSQL din acest motiv, practic iti iei datele dupa tag-uri sau referinte dintr-un document in altul. Ceea ce poate fi si o problema majora daca ai nevoie de relatii dupa.


#12

Salutare Istvan si merci pt raspuns.
Ceea ce ai scris este perfect valabil in termeni generali, pt toata lumea. Motiv pt care in programele complexe, cu date sensibile, lucrezi cu oameni care au un grad ridicat de specializare/expertiza in baze de date.
Dar in context mai trebuie tinut cont si de specificatiile initiale ale produsului, ca daca vrei sa faci avion si peste 6 luni de fapt trebuie sa fie elicopter, poate nu mai e dezvoltatorul de vina pt eventualul deranj din bd.
Eu nu sunt in masura sa emit pareri decisive aici pt ca skill-urile mele sunt mai strong la front-end, ma servesc de php pt bucataria programului iar mysql-ul este doar frigiderul/camara, si partea unde sunt cel mai slab, in sensul ca pe de o parte nu reusesc inca sa fiu foarte eficient si compensez unele task-uri prin prelucrari php (cel mai probabil ineficiente) pt ca nu stiu sa fac tot ce imi doresc bazandu-ma pe mysql si pe de alta parte, am simtit pe propria piele ce inseamna sa gandesti nefericit structura tabelelor, si sa trebuiasca sa modifici multe fisiere.
Dar cred totusi ca nu doar expertiza in lucrul cu bd este purtatoare de riscuri; poti avea belele si de la front-end si de la ceea ce programezi in general.


(Catalin Banu) #13

Eu sunt fan produse intellij asa ca iti recomand DbGrid.