Podaci se retko izgube odjednom. Prvo se razmnože po Excel tabelama, pa se ista informacija razlikuje na dva mesta, pa izveštaj počne da se čeka minutima, a onda se ispostavi da rezervnu kopiju niko nikada nije probao da vrati. Radim bazu koja to zaustavlja: strukturu, brzinu i oporavak.
Jedan podatak, jedno mesto
Kupac, artikal ili nalog upisuju se na jednom mestu i odatle se čitaju. Kada isti podatak stoji u tri tabele, pre ili kasnije se razlikuje u sve tri.
Brzina se meri, ne procenjuje
Pre zahvata se izmeri koliko traju najsporiji upiti, pa posle zahvata ponovo. Dobijate razliku u sekundama, a ne utisak da je „sada brže“.
Kopija koja se zaista vraća
Rezervna kopija vredi tek kada se jednom vrati na prazan server i izmeri koliko je to trajalo. Do tada je to samo datoteka za koju se nadate da valja.
Gde ovo ima smisla
Ovo su vrste poslova koje radim. Koji od njih je vaš i koliko traje, vidi se posle pregleda — tada dobijate rok i cenu, a ne procenu preko telefona.
Excel je prerastao sam sebe
Tabelu otvara više ljudi, kopije kruže mejlom, a niko ne zna koja je poslednja. Podaci se prebacuju u bazu, uz jednostavan ekran za unos i pretragu, tako da svako radi nad istim podacima i vidi ko je šta promenio. Kada ljudi ne žele da napuste Excel, unos ostaje u njemu preko Office dodatka, a baza stoji ispod.
Sistem je postao spor
Program je radio dok je podataka bilo malo, a sada se izveštaj čeka. Traže se najsporiji upiti, postavljaju indeksi koji nedostaju i prepravlja ono što baza ne može da ubrza sama. Program se pritom ne menja iznutra više nego što mora.
Nasleđena baza koju niko ne razume
Access, stari SQL Server ili baza čiji je autor odavno otišao. Struktura se popisuje i dokumentuje, a podaci se prenose u bazu koja se održava — sa spiskom onoga što je u prenosu ispravljeno i onoga što je moralo da ostane kako jeste.
Podaci u više programa
Prodaja u jednom sistemu, magacin u drugom, knjigovodstvo u trećem, a izveštaj neko sastavlja ručno. Podaci se povezuju preko zajedničkog ključa ili se prepisuju u jedno mesto za izveštavanje, pa se izveštaj dobija sam.
Sa čime radim
Radim sa relacionim bazama koje su mi svakodnevni alat. Izbor baze nije stvar ukusa nego onoga što već imate, koliko podataka ima i gde sistem stoji.
Microsoft SQL Server
Uobičajen u firmama koje rade na Windows serverima i u poslovnim programima. Tu radim i rezervne kopije log datoteke, planove izvršavanja i poslove koji se izvršavaju noću.
PostgreSQL
Kada su podaci složeniji nego što relacioni model lepo pokriva: JSON u tabeli, geografija, zahtevniji izveštaji. Ozbiljna baza otvorenog koda bez licence po korisniku.
SQLite i baza uz program
Kada baza treba da putuje zajedno sa programom, na jednom računaru i bez servera. Dovoljno za alatke i dodatke, a prelazak na pravi server ostaje moguć kasnije.
Baza retko stoji sama: podatke neko unosi i nekome trebaju. Zato uz nju radim i program preko koga se radi, sajt koji je koristi, vezu sa sistemom iz koga podaci dolaze i, kada ima smisla, AI funkcije nad tim podacima.
Cene
Cifre stoje javno da biste odmah znali red veličine. Kod zahvata je to donja granica, jer obim zavisi od zatečenog stanja — tačnu cenu i rok dobijate posle pregleda, koji se plaća posebno i poručuje se prvi. Vidite i šta nije obuhvaćeno.
Prvi korak
Pregled baze podataka
Dva radna dana, fiksna cena, pisani nalaz koji ostaje vama.
Pregled se plaća i poručuje prvi. Šta obuhvata i zašto se počinje njime.
Zahvati
Ubrzavanje baze i upita
Kada se izveštaj čeka, a program je nekada radio brzo.
- Merenje pre zahvata, da se zna od čega se polazi.
- Postavljanje indeksa koji nedostaju i uklanjanje onih koji samo usporavaju upis.
- Prepravka najskupljih upita i izveštaja.
- Podešavanje baze prema stvarnoj količini podataka i memoriji servera.
- Ponovno merenje i pisani prikaz razlike.
Rezervne kopije i oporavak
Da kopija ne bude datoteka za koju se nadate da valja.
- Dogovor o tome koliko sati rada smete da izgubite i koliko dugo smete da stojite.
- Automatsko snimanje po tom dogovoru, uz snimanje log datoteke kada baza to traži.
- Bar jedna kopija van servera na kome je baza.
- Provera vraćanja na prazan server, sa izmerenim vremenom oporavka.
- Obaveštenje kada snimanje otkaže, umesto tišine.
Prenos podataka u novu bazu
Iz Excel tabela, Access-a ili sistema koji se gasi.
- Popis i dokumentovanje zatečene strukture.
- Čišćenje podataka: isti kupac upisan na više načina, datumi kao tekst, prazna polja koja nešto znače.
- Skripte za prenos koje mogu da se puste više puta, do poslednjeg probnog prenosa.
- Provera: broj zapisa, zbirovi po ključnim kolonama i uzorak koji vi birate.
- Stara baza ostaje netaknuta dok ne potvrdite da je novo stanje ispravno.
Projektovanje i izrada nove baze
Kada posao tek kreće ili se radi iznova, po meri.
- Razgovor o poslu i popis onoga što se zaista evidentira.
- Šema sa vezama i pravilima koja sprečavaju pogrešan unos.
- Postavljanje baze na vaš server, sa pravima pristupa po ulogama.
- Rezervne kopije i nadzor od prvog dana.
- Dokumentacija šeme, tako da posao može da nastavi neko drugi.
Manje dorade na postojećoj bazi ne moraju da idu kroz zahvat: za njih postoji rad po satu, gde se plaća utrošeno vreme. Ceo cenovnik stoji na stranici cena.
Prvi korak: pregled baze
Ne dajem fiksnu cenu za bazu koju nisam video. Zato se počinje pregledom: dva radna dana, fiksna cena, i pisani nalaz koji ostaje vama bez obzira na to da li nastavljamo.
Nalaz odgovara na pet stvari:
- Struktura. Šta se gde čuva, gde je isti podatak upisan dvaput i gde nedostaje veza koja bi sprečila greške pri unosu.
- Brzina. Koji upiti troše najviše vremena, koji indeksi nedostaju i koliko se realno može dobiti — sa izmerenim vremenima pre zahvata.
- Rezervne kopije. Da li postoje, koliko su stare i, važnije, da li se vraćaju. Vraćanje se proba, a ne pretpostavlja.
- Pristup. Ko sve može da čita i menja podatke, da li se lozinke dele i šta se dešava kada neko ode iz firme.
- Šta prvo. Spisak zahvata po redosledu, sa procenom vremena za svaki, tako da možete da stanete posle bilo kog koraka.
Nalaz kaže i ono što se retko čuje u ponudi: ako se vaš problem rešava jednim indeksom, sređivanjem podataka ili izmenom u izveštaju — jeftinije nego novom bazom — to će u nalazu i pisati.
Pregled je zasebna stavka sa svojom cenom i poručuje se odmah, jer su mu obim i rok unapred poznati:
Pregled baze podataka
Dva radna dana, fiksna cena, pisani nalaz koji ostaje vama.
Ovaj iznos se odbija od cene zahvata ako nastavimo. Ako ne nastavimo, nalaz ostaje vama.
Na šta se obavezujem
- Pre svakog zahvata pravi se rezervna kopija i piše put za povratak na staro stanje.
- Zahvat se prvo izvodi nad kopijom, pa tek onda nad sistemom koji radi.
- Brzina se meri pre i posle zahvata, pa razliku dobijate u sekundama.
- Rezervna kopija se jednom stvarno vrati, da se zna da radi i koliko traje.
- Šema, skripte i dokumentacija ostaju vama, tako da posao može da nastavi neko drugi.
- Ako se problem rešava jeftinije nego što ste tražili, to piše u nalazu.
Šta nije obuhvaćeno cenom
Pišem ovo da biste cenu razumeli pre porudžbine, a ne posle. Sve sa spiska mogu da uradim, ali se dogovara i naplaćuje posebno.
- Licence za baze i serverski softver, kao i zakup servera ili hostinga.
- Program ili veb stranica preko koje se podaci unose i pretražuju — to je zaseban posao.
- Ručno prekucavanje podataka sa papira ili iz skeniranih dokumenata.
- Izmene u tuđem programu koji koristi bazu, kada je za njih potreban njegov autor.
- Dežurstvo van radnog vremena i garantovani rok izlaska.
- Oporavak podataka sa fizički oštećenog diska.
Šta da pripremite pre početka
- Pristup bazi ili njena rezervna kopija, sa dozvolom da se radi nad kopijom.
- Ime osobe koja poznaje posao — šta koja tabela znači u praksi, a ne samo kako se zove.
- Podatak o tome koliko sati rada smete da izgubite i koliko dugo sistem sme da stoji.
- Spisak programa i izveštaja koji čitaju iz te baze, da se ništa ne prekine u prolazu.
- Termin u kome je dozvoljen kratak zastoj, ako je za zahvat potreban.
Šta ovo nije
Pošteno je reći i gde su granice, da ne biste plaćali pregled za posao koji ne radim.
Nisam dežurni administrator
Ne držim stražu nad vašim serverom danonoćno i ne garantujem izlazak u roku od sat vremena. Postavljam nadzor koji javlja kada nešto pukne, a dogovoreni odziv je u radno vreme.
Ne radim Oracle i Db2
Držim se baza koje svakodnevno koristim. Za Oracle i IBM Db2 postoje ljudi koji ih rade bolje od mene, pa ću vas radije uputiti nego učiti o vašem trošku.
Ne prodajem novu bazu po svaku cenu
Zamena baze je skupa i rizična. Ako se vaš problem rešava indeksom, izveštajem ili čišćenjem podataka, u nalazu će pisati to — i posao će biti manji nego što ste očekivali.
Vlasništvo, pristup i podaci
- Baza, šema i skripte su vaši. Posle isporuke dobijate strukturu, skripte za migraciju i dokumentaciju, tako da posao može da nastavi neko drugi.
- Nalozi i server glase na vaše ime. Hosting i pristupni podaci su vaši; ja radim sa svojim nalogom koji možete ugasiti kada poželite.
- Radim nad kopijom dok god je moguće. Zahvati se prvo izvode na kopiji, pa tek onda na sistemu koji radi, i to u terminu koji vi odredite.
- Pre svakog zahvata ide rezervna kopija. I put za povratak na staro stanje, napisan pre nego što se krene.
- Vaše podatke ne iznosim. Ako je za rad potrebna kopija podataka, dogovara se unapred; osetljivi podaci se mogu zameniti izmišljenim pre nego što ih vidim.
Često postavljana pitanja
Niste sigurni šta vam je zapravo problem?
Opišite šta vas muči — sporost, duple podatke, strah od gubitka ili Excel koji je prerastao sam sebe. Odgovoriću da li se to rešava pregledom, manjom doradom ili uopšte ne treba da se dira.
Pošaljite upitUglavnom odgovaram isti dan.