UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Milan Derlink Testiranje primernosti uporabe NoSQL v okviru računovodske aplikacije DIP

Velikost: px
Začni prikazovanje s strani:

Download "UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Milan Derlink Testiranje primernosti uporabe NoSQL v okviru računovodske aplikacije DIP"

Transkripcija

1 UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Milan Derlink Testiranje primernosti uporabe NoSQL v okviru računovodske aplikacije DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Ljubljana, 2014

2

3 UNIVERZA V LJUBLJANI FAKULTETA ZA RAČUNALNIŠTVO IN INFORMATIKO Milan Derlink Testiranje primernosti uporabe NoSQL v okviru računovodske aplikacije DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA MENTOR: viš. pred. dr. Aljaž Zrnec Ljubljana, 2014

4 Fakulteta za računalništvo in informatiko izdaja naslednjo nalogo: Testiranje primernosti uporabe NoSQL rešitev v okviru računovodske aplikacije Tematika naloge: NoSQL podatkovne baze so v zadnjem času vedno bolj popularne, zaradi česar se v mnogih podjetjih brez premisleka odločajo za zamenjavo obstoječih relacijskih podatkovnih baz z novimi NoSQL rešitvami. V številnih situacijah je njihova učinkovitost sicer veliko višja kot pri relacijskih podatkovnih bazah, vendar to ne pomeni, da so te podatkovne baze primerne za reševanje kateregakoli problema. V diplomski nalogi primerjajte uporabo klasične - relacijske in NoSQL podatkovne baze v okviru aplikacije za računovodstvo. Osredotočite se predvsem na performančne lastnosti in podporo transakcijam. Ugotovite, ali je v takem tipu aplikacij, ki zahtevajo ACID transakcije, smiselno in sploh mogoče uporabiti podatkovno bazo MongoDB.

5 IZJAVA O AVTORSTVU DIPLOMSKEGA DELA Spodaj podpisani Milan Derlink, z vpisno številko , sem avtor diplomskega dela z naslovom: Testiranje primernosti uporabe NoSQL rešitev v okviru računovodske aplikacije S svojim podpisom zagotavljam, da: sem diplomsko delo izdelal samostojno pod mentorstvom viš. pred. dr. Aljaža Zrneca, so elektronska oblika diplomskega dela, naslov (slov., angl.), povzetek (slov., angl.) ter ključne besede (slov., angl.) identični s tiskano obliko diplomskega dela, soglašam z javno objavo elektronske oblike diplomskega dela na svetovnem spletu preko univerzitetnega spletnega arhiva. V Ljubljani, dne 15. septembra 2014 Podpis avtorja:

6

7 Rad bi se zahvalil vsem, ki ste mi pomagali na poti do moje diplome. Posebej bi se zahvalil mojemu mentorju, moji partnerici in Tomažu ter vsem na katere sem se lahko zanesel za pomoč v času študija.

8

9 Moji Manci, ki mi je stala ob strani tudi ob najtežjih trenutkih.

10

11 Kazalo Povzetek Abstract 1. Uvod Podatkovne baze Splošno o podatkovnih bazah Definicija Zgodovina podatkovnih baz Relacijska baza Poizvedovalni jezik SQL Relacijska baza MySQL NoSQL baza podatkov Dokumentni model MongoDB Razvoj relacijske in dokumentne baze Spletni strežnik in relacijska baza Razvoj baze MySQL Konceptualno načrtovanje Fizično načrtovanje Razvoj podatkovne baze MongoDB Performančna analiza Preprosta internetna aplikacija za testiranje Testne poizvedbe za testiranje podatkovne baze MySQL Poišči vse izdane račune za določenega partnerja (Epsilon d.o.o.) Poišči vse prejete račune za določenega partnerja (Omega d.o.o.)... 26

12 4.2.3 Kateri partnerji so kupili določeno blago (kava) Kateri računi so bili izdani od - do ( in ) Katero blago je bilo prodano za izbrani mesec ( in ) Poišči vse prejete račune Poišči vse izdane račune Poišči vso blago Poizvedbe za testiranje baze MongoDB Poišči vse izdane račune za določenega partnerja (Epsilon d.o.o.) Poišči vse prejete račune za določenega partnerja (Omega d.o.o.) Kateri partnerji so kupili določeno blago (kava) Kateri računi so bili izdani od - do ( in ) Katero blago je bilo prodano za izbrani mesec ( in ) Poišči vse prejete račune Poišči vse izdane račune Poišči vso blago Predstavitev in razlaga rezultatov testiranja Predstavitev rezultatov testiranja Razlaga rezultatov testiranja in sklepne ugotovitve Zaključek... 45

13 Seznam uporabljenih kratic kratica angleško slovensko NoSQL Not Only SQL ne-relacijske baze SQL Structured Query Language Strukturirani poizvedovalni jezik ACID Atomicity, Consistency, Isolation, Durability Atomarnost, Konsistentnost, Izolacija, Trajnost SUPB database management system sistem za upravljanje podatkovnih baz PHP Hypertext Preprocessor skriptni jezik XML EXtensible Markup Language razširljiv označevalni jezik BSON Binary JSON binarni JSON JSON JavaScript Object Notation opis JavaScript objekta HTTP HyperText Transfer Protocol protokol za prenos podatkov HTML Hyper Text Markup Language jezik za označevanje nadbesedila

14

15 Povzetek Relacijske baze obstajajo že od začetka sedemdesetih let prejšnjega stoletja. V tem času so se aplikacije, ki uporabljajo podatke shranjene v bazah, zelo spremenile. Postale so kompleksnejše, povečalo se je število sočasnih uporabnikov, povečala se je količina podatkov. V poznih devetdesetih letih se je pojavil internet. Z razmahom interneta, se je povečalo število sočasnih dostopov do podatkovnih baz in obseg podatkov, ki jih je potrebno hraniti in imeti na voljo, je zelo narasel. V diplomskem delu bomo predstavili relacijske baze, prednosti in slabosti. Predstavili bomo tudi baze NoSQL (Not Only SQL), ki so se pojavile kot odgovor na slabosti relacijskih baz in se pojavljajo v sodobnih internetnih aplikacijah. Kljub prednosti baz NoSQL pri uporabi v okviru sodobnih internetnih aplikacijah, bomo pokazali, da baze NoSQL niso primerne za vse sodobne internetne aplikacije. Ena izmed njih je internetna aplikacija za računovodski program. V diplomskem delu bomo pokazali, da so v tem primeru relacijske baze bolj primerne od NoSQL podatkovnih baz. Za testiranje primernosti NoSQL baze za uporabo v okviru računovodske aplikaciji bomo ustvarili enostavno aplikacijo, ki bo uporabljala podatke iz relacijske in NoSQL podatkovne baze. Merili bomo hitrost dostopa do podatkov z različnimi poizvedbami. Ne-relacijske baze so zaradi odsotnosti sheme bolj fleksibilne pri kasnejšem dodajanju atributov (novih vrst podatkov, ki jih v načrtovanju baze nismo predvideli) in omogočajo pa tudi enostavno razširjanje pomnilnega in diskovnega prostora z dodajanjem novih vozlišč v gručo. Relacijske baze so v tem pogledu bolj toge. Kljub temu, da veljajo ne-relacijske baze za hitrejše od relacijskih baz, bomo pokazali, da v primeru, ki ga predstavimo v diplomskem delu, to ne drži. V ta namen smo uporabili relacijsko podatkovno bazo MySQL in dokumentno NoSQL podatkovno bazo - MongoDB. Obe bazi vsebujeta enake podatke, in sicer podatke, ki so značilni za računovodsko področje. Za ugotavljanje učinkovitosti smo nad obema bazama izvajali iste transakcije. Vsaka od transakcij se je izvedla večkrat, na podlagi česar smo lahko izračunali povprečni čas njenega izvajanja. Računovodski programi so v osnovi namenjeni večinoma poizvedovanju. V diplomskem delu smo se osredotočili na poizvedbe, ki so del transakcij. Pripravili smo generator podatkov, ki smo jih vnesli v bazo. Pripravili smo tudi preprosto internetno računovodsko aplikacijo preko katere lahko vnašamo podatke. V računovodskem svetu se vneseni podatki ne smejo brisati oziroma popravljati. V tem duhu se torej nismo posvečali brisanju in popravljanju podatkov v bazi.

16 Ključne besede: SQL, NoSQL, MySQL, relacijska baza, dokumentna baza, računovodstvo, html, php, MongoDB, BSON, JSON.

17 Abstract Relational databases have existed since the beginning of the seventies of the last century. In the meantime, applications that use data stored in databases have changed. They have become more complex, an increasing number of concurrent users, increase the amount of data. In the late nineties, the internet emerged. With the expansion of the Internet, the number of concurrent accesses to databases and the volume of data that need to be kept and be made available have increased. In the thesis we present a relational database, strengths and weaknesses. We will present the database NoSQL which emerged as a response to the weaknesses of relational databases in modern Internet applications. Despite the advantages of NoSQL databases when used in the context of modern Internet applications, we show that NoSQL databases are not suitable for all modern Internet applications. One of them is an Internet application for the accounting program. In the thesis we show that in this case the relational database is more suitable than NoSQL databases. To test the suitability of NoSQL databases for use within the accounting application, we will create a simple application that will use data from relational and NoSQL databases. We shall measure the speed of access to data with different queries. Non-relational databases due to the absence of the scheme are more flexible for subsequent addition of attributes (new types of data that in the planning of database we did not predict) and allow easy dissemination of storage and disk space by adding new nodes in the cluster. Relational databases are in this respect more rigid. Despite that nonrelational database should be faster than relational databases, we show that in the case presented by the thesis, this is not true. To this end, we used a relational database MySQL and NoSQL document database - MongoDB. Both databases contain the same information, namely information that is specific for accounting. To determine the effectiveness of the two bases, we performed the same transactions. All transactions are carried out repeatedly, on the basis of which we can calculate the average time of its implementation. Accounting programs are basically designed mainly for searching data from database. In the thesis we focus on the queries that are part of the transaction. We have prepared a data generator for data that we have entered into the database. We have also prepared a simple internet accounting application through which we can enter data. In the financial world, the entered data may not be deleted or repaired. In this spirit, therefore we did not delete and update data in the database.

18 Keywords: SQL, NoSQL, MySQL, relational database, document database, accounting, html, php, MongoDB, BSON, JSON.

19 1. Uvod Podatkovne baze tipa NoSQL so v zadnjem času zelo popularne. Zaradi svoje popularnosti se v marsikaterem podjetju prehitro in nepremišljeno odločajo za zamenjavo relacijskih baz z bazami NoSQL. Zamenjujejo jih tudi tam, kjer ne bi bilo potrebno oziroma še slabše, zamenjujejo jih tam, kjer se obnesejo slabše kot, že obstoječe relacijske baze. Cilj diplomskega dela je pokazati, da je uporaba relacijskih baz v določenih aplikacijah primernejša kot pa sodobnejše baze NoSQL. Diplomsko delo je razdeljeno na šest poglavij. V drugem poglavju bomo predstavili NoSQL podatkovno bazo MongoDB in relacijsko podatkovno bazo MySQL. Navedli bomo prednosti in slabosti obeh tipov podatkovnih baz. V tretjem poglavju bomo predstavili razvoj podatkovne baze MySQL. Opisali bomo razvoj NoSQL podatkovne baze MongoDB. Pokazali bomo tudi, da je relativno lahko prenesti podatke iz podatkovne baze MySQL v MongoDB. V četrtem poglavju bomo predstavili transakcije s katerimi bomo testirali hitrost obeh baz. Razvili bomo preprosto internetno aplikacijo s pomočjo katere bomo testirali hitrosti obeh baz. Predstavili bomo tudi rezultate testiranja V petem poglavju bomo predstavili in obrazložili rezultate testiranja. V zaključku bomo podali sklepne ugotovitve. 1

20

21 2. Podatkovne baze 2.1 Splošno o podatkovnih bazah Definicija Obstaja več definicij podatkovnih baz. Omenili bomo tri. Podatkovna baza je zbirka povezanih podatkov. Podatki so dejstva, so shranjena na nekem računalniškem trajnem pomnilniku, ki se jim lahko pripiše pomen (ki implicitno imajo pomen). (Elmasri and Navathe)[5]. Podatkovna baza je upravljana zbirka povezanih podatkov, shranjena na računalniškem sistemu, deljena med več uporabniki, zaščitena z varnostnimi mehanizmi in shranjena z nadzorovano redundantnostjo. (Stamper and Price [5]. Podatkovna baza je organizirana zbirka logično povezanih podatkov in opisov le teh, načrtovana tako, da zadovoljuje informacijske potrebe organizacije. (Connolly and Begg)[5] Zgodovina podatkovnih baz V šestdesetih letih prejšnjega stoletja Charles Bachman predstavi prvi mrežni podatkovni model. V istem desetletju IBM razvije hierarhični podatkovni model. Hierarhični model podatke organizira v drevesni strukturi. Ti podatki se lahko povezujejo z razmerji tipa 1:N, kjer ima en. Imamo sistem starš, ki ima lahko več potomcev. Podatki so shranjeni v zapisih, ki so med seboj povezani. Vsak zapis v hierarhičnem modelu je ekvivalenten vrstici v relacijski bazi, tip podatka, pa stolpcu v relacijski bazi. IBM (International Business Machines) predstavi IMS (Information Management System), ki je uporabljal ta podatkovni model. Slika 2.1 prikazuje primer hierarhičnega podatkovnega modela. 3

22 4 2 PODATKOVNE BAZE Pločnik Rekonstrukcija Vzdrževanje Rehabilitacija Rutinsko Popravilo Preventiva Slika 2.1: Primer hierarhičnega modela[6]. Mrežni model, ki je nastal istočasno kot hierarhični model, je omogočal podatke povezovati z uporabo razmerij tipa mnogo proti mnogo M:N. Do podatka v mrežnem modelu dostopamo neposredno, poznati moramo ključe oziroma kazalce. S kazalcem izračunavamo lokacije nekega drugega podatka. Slika 2.2 prikazuje primer mrežnega podatkovnega modela. Preventivno vzdrževanje Trdni pločnik Fleksibilni pločnik Drobna popravila Tesnilo za stike Tesnilo za razpo. Krpanje pločnika Silikonsko tesnilo Tesnilo za asfalt Slika 2.2: Primer mrežnega modela[11].

23 2. PODATKOVNE BAZE 5 Relacijski podatkovni model, ki se pojavi leta 1970, bomo podrobneje predstavili v naslednjem poglavju. V osemdesetih letih prejšnjega stoletja se razvije tudi poizvedovalni jezik SQL. Uporablja se za poizvedovanje v relacijskih bazah. Z razmahom internetnih uporabnikov na začetku 21. stoletja, pa so relacijske baze, ki niso bile namenjene servisiranju tako velikega števila uporabnikov, počasi postajale vedno težje uporabne. Kot odgovor na težave, ki so jih imele relacijske podatkovne baze s porazdeljeno zasnovo Interneta, se pojavijo se tako imenovane NoSQL podatkovne baze. Te so sposobne servisirati ogromno uporabnikov istočasno. Trenutno največji svetovni ponudniki internetnih storitev uporabljajo za svoje delovanje eno ali več izmed NoSQL rešitev. 2.2 Relacijska baza Relacijski podatkovni model se pojavi leta Model predstavlja množico med seboj povezanih relacij. Vsaka relacija predstavlja množico resničnih trditev. Lastnosti relacijskega podatkovnega modela so naslednje: Vrednosti v relacijah so atomarne[3]. Vsaka vrstica je unikatna[3]. Vrednosti v stolpcu so istega tipa[3]. Vrstni red stolpca ni pomemben[3]. Vrstni red v vrstici ni pomemben[3]. Vsak stolpec ima unikatno ime[3]. Za zanesljivost pri transakcijah v relacijskih bazah skrbi tako imenovani ACID (Atomicity, Consistency, Isolation, Durability). Atomarnost (Atomicity) Vsaka transakcija je sestavljena iz več operacij. Če se vse operacije izvedejo uspešno, je transakcija uspela. SUPB zagotovi atomarnost. Kadar transakcija ni uspela, vse

24 6 2 PODATKOVNE BAZE operacije se ne izvedejo, SUPB (sistem za upravljanje podatkovnih baz) razveljavi transakcijo. Vrne se v prvotno stanje (Rollback). Konsistentnost (Consistency) Podatkovna baza pri izvajanju transakcije prehaja iz enega stanja v drugega. Pri kršitvah se vse spremembe razveljavijo. Izolacija (Isolation) Ker bi lahko transakcije med izvajanjem vplivale na druge transakcije, ne smejo biti vidne. Šele ko so potrjene postanejo vidne. Trajnost (Durability) Da bi preprečili izgubo podatkov pri odpovedi sistema, se spremembe zapišejo na disk preden je transakcija potrjena. Relacijska podatkovna baza je sestavljena iz relacij. Relacijo predstavlja enolična tabela. V tabeli so atributi oziroma stolpci in zapisi oziroma vrstice. Vsakemu stolpcu je določen podatkovni tip. S primarnim ključem določimo vsako vrstico v tabeli. Tabele se med sabo povezujejo s tujimi ključi. Podrejena tabela vsebuje tuji ključ, ki je primarni ključ v nadrejeni tabeli. Normalizacija je proces s katerim odstranimo podvojitev podatkov. Če se podatki podvajajo stolpce premestimo v nove tabele. Bolj ko so podatki normalizirani počasnejša je baza. Denormalizacija pohitri bazo. Slaba stran je, da obstajajo podvojeni podatki. Slika 2.3 prikazuje relacijski podatkovni model. Slika 2.3: Relacijski podatkovni model[17].

25 2. PODATKOVNE BAZE Poizvedovalni jezik SQL SQL ali strukturirani povpraševalni jezik za delo s podatkovnimi bazami je najbolj razširjen in standardiziran povpraševalni jezik za delo s podatkovnimi zbirkami, s programskimi stavki, ki posnemajo ukaze v naravnem jeziku. Določen je z ANSI/ISO SQL standardom. SQL standard se je razvijal od leta 1986 in danes obstaja več različic. Oznaka SQL-92 se navezuje na standard izdan v letu 1992, SQL:1999 se navezuje na standard izdan leta 1999, SQL:2003 se navezuje na različico iz leta 2003 in tako naprej. Izraz SQL standard uporabljamo za poimenovanje trenutne različice SQL standarda v vsakem časovnem obdobju[19]. Najbolj pogosta operacija v SQL-u je poizvedba, ki se izvrši s SELECT stavkom. SELECT stavek vrne podatke iz ene ali več tabel. Standardni SELECT stavek nima nobenega vpliva na podatke v podatkovni bazi in jih ne spreminja. Poizvedba omogoča uporabniku, da opiše strukturo želenih podatkov. SUPB je odgovoren za planiranje, optimiziranje in izvajanje fizičnih operacij, potrebnih za izpis želenega rezultata. Optimizacija SQL stavkov lahko znatno pohitri izvajanje poizvedb[19]. Struktura SELECT stavka: SELECT stavku lahko sledi znak *, ki pomeni, da se bodo izpisala vsa polja iz tabele oziroma tabel v FROM stavku. Namesto zvezdice lahko napišemo imena polj, FROM stavku sledijo imena tabel, iz katerih bomo vzeli podatke, WHERE stavek vsebuje pogoje, ki jih bo upoštevala poizvedba, GROUP BY projicira vrstice z istimi vrednostmi v manjšo množico vrstic, HAVING stavek filtrira vrstice, ORDER BY stavek sortira rezultat poizvedbe. Stavku ORDER BY lahko sledi eno ali več polj. Sortiranje je lahko naraščajoče (ASC) ali padajoče (DESC)[1]. Zaradi svojih značilnosti in enostavnega poizvedovalnega jezika SQL, postanejo relacijske podatkovne baze vse bolj razširjene.

26 8 2 PODATKOVNE BAZE Relacijska baza MySQL Ena izmed relacijskih baz je tudi odprtokodna relacijska baza MySQL. To relacijsko podatkovno bazo bomo uporabili za naše namene testiranja. Baza MySQL streže podatke s strežniške strani. Za transakcije uporabljamo SQL. Ima zelo dobro podporo PHP (Hypertext Preprocessor). Podatki v bazi so strukturirani. Podatkovno bazo je mogoče upravljati preko konzole z uporabo ukazov SQL ali pa za ta namen uporabimo orodje phpmyadmin, ki predstavlja spletni odjemalec za to podatkovno bazo. Slika 2.4 prikazuje grafični vmesnik phpmyadmin. Slika 2.4: Grafični vmesnik phpmyadmin. 2.3 NoSQL baza podatkov NoSQL baze podatkov so uporabne v porazdeljenem okolju. V primerjavi z relacijskimi bazami imajo manjši nabor funkcij. Tudi ACID princip ni popolnoma podprt. V primerjavi z relacijskimi bazami nimamo stikov, bolj kompleksnih filtrov in agregacije. Vse to moramo implementirati v aplikaciji, ki smo jo ustvarili za testiranje naše baze Dokumentni model Dokumentno orientirana baza podatkov je računalniški program namenjena za shranjevanje, vračanje in upravljanje dokumentno orientiranih podatkov. Dokumentne baze so v zadnjem

27 2. PODATKOVNE BAZE 9 času zelo popularne. Od relacijskih baz se v največji meri razlikujejo v tem, da podatki nimajo v naprej opredeljene podatkovne sheme. Podatkovno enoto v podatkovno orientirani podatkovni bazi predstavlja dokument[4]. Dokument lahko vsebuje veliko različnih podatkov. En dokument v dokumentno orientirani bazi je primerljiv z vrstico v relacijski bazi. Razlika je, da je tip podatkov v relacijski bazi določen že na samem začetku pri razvoju baze. Lahko se zgodi, da kasneje, ko že dalj časa uporabljamo relacijsko bazo, pride potreba, da želimo shranjevati še kak atribut, ki ga v razvoju relacijske baze nismo upoštevali in implementirali. Naknadno dodajanje atributov je zahtevno in zamudno. Teh problemov v dokumentno orientirani bazi nimamo. Dokument nima omejitve koliko in kakšne vrste podatkov vsebuje dokument. Standardi, ki se uporabljajo so XML (EXtensible Markup Language), BSON (Binary JSON), JSON (JavaScript Object Notation) MongoDB MongoDB je odprtokodna podatkovna baza NoSQL. Baza je dokumentnega tipa. Napisana je v programskem jeziku C++. Razširitev navzven je sorazmeroma enostavna, omogoča pa tudi funkcionalnosti, ki so značilne za relacijske baze. Sortiranje, sekundarno indeksiranje[8]. Bazo lahko upravljamo preko konzole mongo shell, lahko pa uporabimo programe z grafičnim vmesnikom. V nadaljevanju so navedene nekatere značilnosti: Dokumentni model Podatki so shranjeni v dokumentih tipa BSON (Binary JSON). V relacijskih bazah je to ekvivalent vrstici v tabeli. Dokument je shranjen v zbirki. Vsak dokument vsebuje polja, kar predstavlja en podatek. Polja lahko gnezdimo znotraj dokumenta. Dokument predstavlja množico dvojic»ime atributa : vrednost«[2]. Agregacija MongoDB ponuja več agregacijskih orodij. Count, ki prešteje število dokumentov v zbirki. Distinct poišče določene vrednosti, ki smo jih določili s ključem. MapReduce omogoča iskanje dokumentov na več različnih strežnikih. Slaba stran tega orodja je, da je počasno in naj se ga ne bi uporabljalo za iskanje v realnem času[2]. Regularni izrazi So zelo uporabni pri primerjanju nizov. Indeksiranje

28 10 2 PODATKOVNE BAZE Z indeksiranjem pohitrimo iskanje podatkov v dokumentih. Replikacija MongoDB uporablja replikacijo tipa gospodar suženj. To je zelo uporabno pri varnostnih kopijah, izpadih, povečanem dostopu za branje podatkov[2]. Porazdeljevanje obremenitve. Pri zelo velikih bazah je priporočljivo porazdeliti podatke na več strežnikov. V tabeli 2.1 bomo predstavili terminologijo baze MongoDB in njene ekvivalente v bazi MySQL. MongoDB terminologija MySQL terminologija baza podatkov zbirka dokument ali BSON dokument polje indeks gnezdeni dokumenti primarni ključ baza podatkov tabela vrstica stolpec indeks stiki tabel primarni ključ Tabela 2.1: Terminologija baze MongoDB in baze MySQL. V tabeli 2.2 bomo predstavili nekaj ukazov, ki so značilni za SQL in kako se uporabljajo v lupini MongoDB. MongoDB terminologija MySQL terminologija INSERT INTO USERS VALUES(3,5) SELECT a,b FROM users SELECT * FROM users SELECT * FROM users WHERE age>33 AND age<=40 db.users.insert({a:3,b:5}) db.users.find({}, {a:1,b:1}) db.users.find() db.users.find({'age':{$gt:33,$lte:40}})

29 2. PODATKOVNE BAZE 11 SELECT DISTINCT last_name FROM users SELECT COUNT(*y) FROM users CREATE INDEX myindexname ON users(name) db.users.distinct('last_name') db.users.count() db.users.ensureindex({name:1}) Tabela 2.2: Primerjava SQL in MongoDB ukazov.

30

31 3. Razvoj relacijske in dokumentne baze 3.1 Spletni strežnik in relacijska baza Za namene testiranja baz smo ustvarili preprosto spletno stran, preko katere se poizvedbe pošiljajo na podatkovne strežnike. Uporabili smo odprtokodno distribucijo strežnika Apache XAMPP. Distribucija vsebuje Apache HTTP (HyperText Transfer Protocol) strežnik, relacijsko bazo MySQL, PHP in Pearl. Je zelo enostavna za namestitev, namestimo jo lahko na različne operacijske sisteme. Po namestitvi imamo takoj na razpolago http strežnik, relacijsko bazo in PHP. Apache je spletni strežnik, ki igra ključno vlogo pri širjenju spleta. Bil je prva alternativa Netscapeovemu spletnemu strežniku, trenutno znanemu kot spletni strežnik Sun Java System. Od aprila 1996 je Apache najbolj popularen HTTP strežnik na celem spletu. Od oktobra 2007 pa je bilo na Apachijevih strežnikih postavljenih približno 48 % vseh spletnih strani[18]. Sam Apache strežnik smo namestili na lokalni računalnik. V našem primeru smo se odločili, da bomo testirali baze preko preproste internetne strani. Ker je strežnik na lokalnem računalniku, bosta tako odjemalec klient in strežnik na istem računalniku. PHP je skriptni jezik za razvoj internetnih strani, ki deluje na strežniku. Uporablja se tudi kot splošni programski jezik. Ustvaril ga je leta 1994 Rasmus Lerdorf. Ime PHP je na začetku pomenil Personal Home Page, danes pa pomeni Hypertext Preprocessor. PHP koda se lahko integrira v HTML (Hyper Text Markup Language) kodo. MySQL je sistem za upravljanje s podatkovnimi bazami. MySQL je odprtokodna implementacija relacijske podatkovne baze, ki za delo s podatki uporablja jezik SQL. MySQL deluje na principu odjemalec - strežnik, pri čemer lahko strežnik namestimo kot sistem, porazdeljen na več strežnikov. Obstaja veliko število odjemalcev, zbirk ukazov in programskih vmesnikov za dostop do podatkovne baze MySQL[10]. 13

32 14 3 RAZVOJ RELACIJSKE IN DOKUMENTNE BAZE 3.2 Razvoj baze MySQL Za potrebe testiranja smo razvili relacijsko bazo MySQL, ki vsebuje podatke o prejetih računih, ki jih podjetje prejema od svojih poslovnih partnerjev. Relacijska baza MySQL vsebuje tudi podatke o izdanih računih, ki jih podjetje izdaja svojim poslovnim partnerjem. Podatki na prejetih računih so: podatki o izdajatelju računa (naziv, naslov, davčna številka), podatki o prejetem računu (številka računa, datum prejetega računa, rok plačila, datum opravljene storitve), podatki o blagu oziroma storitve, ki so na računu (ime blaga, merska enota, količina, cena, DDV stopnja). Podatki na izdanih računih, ki jih izda podjetje pa so: podatki o izdajatelju računa (naziv, naslov, davčna številka), podatki o izdanem računu (številka računa, datum izdanega računa, rok plačila, datum opravljene storitve), podatki o blagu oziroma storitve, ki so na računu (ime blaga, merska enota, količina, cena, DDV stopnja). Relacijsko bazo MySQL smo kreirali s pomočjo orodja za načrtovanje in ustvarjanje relacijskih baz Sybase PowerDesigner[20]. Bazo smo načrtovali in kreirali v dveh korakih, konceptualno in fizično načrtovanje Konceptualno načrtovanje Najprej smo identificirali entitetne tipe ki smo jih potrebovali. V našem primeru so to: partner, naslov, posta, izdani_racun,

33 3. RAZVOJ RELACIJSKE IN DOKUMENTNE BAZE 15 prejeti_racun, izdana_postavka, prejeta_postavka, blago. Izdana_postavka in prejeta postavka sta vmesni entiteti. Vpeljali smo jih, ker sta povezavi med entitetnim tipom izdani_racun in blago ter prejeti_racun in blago, povezave mnogo proti mnogo. Ko smo identificirali entitetne tipe, smo identificirali povezave med entitetnimi tipi. V našem primeru je osem povezav med tipi: več partnerjev se nahaja na enem naslovu, oziroma na enem naslovu se nahaja več partnerjev, več naslovov se nahaja na eni pošti, oziroma ena pošta ima več naslovov, en partner prejme več naših izdanih računov, oziroma več naših izdanih računov prejme en partner, en izdani račun vsebuje več izdanih postavk, oziroma več izdanih postavk vsebuje en izdani račun, eno blago je lahko na več izdanih postavkah, oziroma na več izdanih postavkah je eno blago, en partner izda več naših prejetih računov, oziroma več naših prejetih računov izda en partner, en prejeti račun vsebuje več prejetih postavk, oziroma več prejetih postavk vsebuje en prejeti račun, eno blago je lahko na večih prejetih postavkah, oziroma na večih prejetih postavkah je eno blago.

34 16 3 RAZVOJ RELACIJSKE IN DOKUMENTNE BAZE Slika 3.1 prikazuje konceptualni podatkovni model. Slika 3.1: Model konceptualnega načrtovanja Fizično načrtovanje Pri fizičnem načrtovanju smo podatkovni model, ki smo ga izdelali v okviru konceptualnega načrtovanja, pretvorili v fizični model, ki je namenjen točno dolečenemu SUPB. V našem primeru za MySQL. Za pretvorbo smo uporabili orodje Sybase PowerDesigner. S tem orodjem smo določili na kakšen način bodo v ciljnem SUPB, osnovne relacije predstavljene. Za vsako relacijo se opredelijo naziv in seznam osnovnih atributov, primarni ključ, tuji ključ in omejitve povezav. Slika 3.2 prikazuje fizični podatkovni model:

35 3. RAZVOJ RELACIJSKE IN DOKUMENTNE BAZE 17 Slika 3.2: Model fizičnega načrtovanja. S pomočjo orodja za načrtovanje baz Sybase PowerDesigner generiramo SQL skripto, ki smo jo uporabili za ustvarjanje baze na MySQL strežniku. Slika 3.3 prikazuje del SQL skripte, ki ustvari bazo na MySQL strežniku.

36 18 3 RAZVOJ RELACIJSKE IN DOKUMENTNE BAZE Slika 3.3: SQL skripta. 3.3 Razvoj podatkovne baze MongoDB MongoDB smo namestili na lokalni računalniku (localhost). Usposobitev dokumentne baze MongoDB je relativno enostavna. V sami fazi testiranja smo najprej ustvarili relacijsko bazo MySQL. To bazo smo napolnili s testnimi podatki. Da bi bili obe bazi čim bolj primerljivi med seboj, smo podatke iz relacijske baze uvozili v MongoDB. V bazi MySQL imamo možnost, da lahko podatke izvažamo v JSON formatu. JSON je odprti standard, ki vsebuje človeku prijazen tekst za branje. Vsebuje objekte, ki so sestavljeni iz parov atribut vrednost[7]. V dokumentni bazi MongoDB smo ustvarili tri zbirke (collection), vsaka zbirka pa ima različno število polj (field) v katerih so shranjeni podatki: partner, v zbirki je osem polj (_id, ID_partnerja,, naziv, davcna_stevilka, ulica, hisna_stevilka, postna_stevilka, kraj),

37 3. RAZVOJ RELACIJSKE IN DOKUMENTNE BAZE 19 nakupi, v zbirki je enajst polj (_id, cena_blaga, DDV_stopnja, ID_blaga, ime_blaga, merska_enota, kolicina_pr, datum_pr_op_storitve, datum_pr_racuna, ID_pr_racuna, ID_partnerja), prodaja, v zbirki je enajst polj ((_id, cena_blaga, DDV_stopnja, ID_blaga, ime_blaga, merska_enota, kolicina_iz, datum_iz_op_storitve, datum_iz_racuna, ID_iz_racuna, ID_partnerja). Slika 3.4 prikazuje grafični vmesnik za nadzor podatkovne bazemongodb. Slika 3.4: Grafični prikaz baze MongoDB. Podatke smo prenesli iz MySQL baze s pomočjo JSON datoteke. Uporabili smo obliko JSON, ker ima dokumentna baza MongoDB možnost uvoza v tej obliki. Ker so bile JSON datoteke večje od 16MB smo datoteke razdelil na več manjših datotek. To je bilo potrebno zaradi omejitve dokumentne baze MongoDB, ki ne dovoli uvoza datotek, ki so večje od 16MB. Baza vsebuje program mongoimport.exe s pomočjo katerega uvozimo podatke. Ukaz je sestavljen iz imena programa, imena zbirke (collection), ki naj bo ustvarjena in poti kjer se nahajajo JSON datoteka s podatki za uvoz.

38

39 4. Performančna analiza 4.1 Preprosta internetna aplikacija za testiranje Aplikacija je sestavljena iz treh delov. Prvi del se uporablja za generiranje podatkov, ki se nato zapišejo v bazo MySQL. Imamo možnost polnjenja vsake tabele posebej in nam tudi kaže koliko podatkov je v vsaki tabeli. Drugi del se uporablja za shranjevanje podatkov v bazi MySQL in MongoDB. Tretji del pa pošlje poizvedbe bazi MySQL in MongoDB, ter izpiše podatke koliko časa v milisekundah sta potrebovali obe bazi za vsako poizvedbo. Podatki se generirajo s pomočjo PHP skripte, ki naključno pobira podatke iz naprej določenih seznamov. S SQL stavkom INSERT INTO vnesemo podatke v MySQL bazo. Slika 4.1 prikazuje ta del aplikacije. Slika 4.1: Generiranje podatkov. 21

40 22 4 PERFORMANČNA ANALIZA Vnos računa v MySQL bazo je razdeljen na tri korake. Vsi podatki iz računa morajo biti vneseni v pravilnem vrstnem redu. To je potrebno zaradi odvisnosti tabel v bazi. Slike 4.2, 4.3 in 4.4 prikazujejo te korake. S SQL stavkom INSERT INTO vnesemo podatke v MySQL bazo. Slika 4.2: Vnos v MySQL bazo 1. korak. Slika 4.3: Vnos v MySQL bazo 2. korak.

41 4. PERFORMANČNA ANALIZA 23 Slika 4.4: Vnos v MySQL bazo 3. korak. Pri vnašanju računa v bazo MongoDB ni potrebno vnašati v več korakih. Zbirke v bazi niso med seboj odvisne. V bazo vnesemo podatke z ukazom insert(). Slika 4.5: Vnos računa v bazo MongoDB.

42 24 4 PERFORMANČNA ANALIZA 4.2 Testne poizvedbe za testiranje podatkovne baze MySQL V tem poglavju bomo opisali poizvedbe, ki so napisane v SQL jeziku za povpraševanje po podatkih v podatkovni bazi MySQL. PHP programsko kodo, ki se ponavlja, bomo opisali samo prvič. Za potrebe testiranja smo ustvarili preprosto internetno aplikacijo preko katere smo pošiljali poizvedbe obema testiranima bazama. Za razvoj smo uporabili skriptni jezik PHP. Za skriptni jezik PHP smo se odločili, ker nudi zelo dobro podporo, tako za relacijsko bazo MySQL in dokumentno bazo MongoDB Poišči vse izdane račune za določenega partnerja (Epsilon d.o.o.) SQL SELECT stavek izbere podatke iz baze MySQL. Izbere vse podatke iz tabele izdani_racun. Za izbiro uporabi tabeli izdani_racun in partner. To pa zato, ker tabela izbrani_racun ne vsebuje stolpca naziv, po katerem sprašujemo. Ta stolpec ima tabela partner. Povežemo obe tabeli s ključem in na koncu dodamo pogoj naziv partnerja. $Sql = "SELECT izdani_racun.* FROM izdani_racun, partner WHERE izdani_racun.id_partnerja = partner.id_partnerja AND partner.naziv = 'Epsilon d.o.o.'"; SQL SELECT stavek php skripta posreduje MySQL bazi. <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); Funkcija mysqli_connect() odpre novo povezavo do MySQL strežnika in shrani povezavo v spremenljivko $dbc. V funkcijo mysqli_connect() dodamo parametre: host (navedemo ime gostitelja ali njegov IP naslov), username (navedemo ime uporabnika baze MySQL), password (navedemo geslo do dostop baze MySQL), dbname (navedemo ime baze MySQL, do katere želimo dostopati)[13].

43 4. PERFORMANČNA ANALIZA 25 Funkcija mysqli_connect_error(), pa nas obvesti, o napaki, če nismo mogli odpreti nove povezave do MySQL strežnika[14]. $start = microtime(true); Funkcija microtime(true) vrne število mikrosekund, ki pretekle od 1. Januarja Parameter v funkciji nastavimo na true, tako da dobimo namesto niza, število s plavajočo vejico. Število shranimo v spremenljivko $start. $Sql = "SELECT izdani_racun.* FROM izdani_racun, partner WHERE izdani_racun.id_partnerja = partner.id_partnerja AND partner.naziv = 'Epsilon d.o.o.'"; $result = mysqli_query($dbc, $Sql); Funkcija mysqli_query() izvede povpraševanje po bazi. Rezultat shranimo v spremenljivko $result. Funkcija zahteva dva parametra: connection (določi MySQL povezavo do baze), query (določi kateri SQL stavek se izvede)[16]. if($result === FALSE) { die(mysql_error()); } Funkcija mysql_error() vrne opis napake, ki se je zgodila[15]. while ($row = mysqli_fetch_row($result)) {} Funkcija mysqli_fetch_row() vrne vrstico, ki smo jo iskali. Funkcija zahteva en parameter:

44 26 4 PERFORMANČNA ANALIZA result (določimo vrednost, ki nam jo je vrnila funkcija mysqli_query()). $end = microtime(true); Funkcija microtime(true) vrne število mikrosekund, ki pretekle od 1. Januarja Parameter v funkciji nastavimo na true, tako da dobimo namesto niza, število s plavajočo vejico. Število shranimo v spremenljivko $end. $total = $end - $start; V spremenljivko $total shranimo vrednost, ki smo jih dobili z odštevanjem spremenljivk $end in $start. Dobili smo vrednost v mikrosekundah. echo round(($total)*1000)." ms"; Funkcija echo() izpiše v brskalniku kar smo ji določili. Funkcija round() pa zaokroži podatek, ki je v obliki plavajoče vejice na celo število. mysqli_close($dbc);?> Funkcija mysqli_close() prekine obstoječo povezavo do baze MySQL. Funkcija zahteva en parameter: connection (določi povezavo do baze MySQL, ki naj se prekine)[12] Poišči vse prejete račune za določenega partnerja (Omega d.o.o.) SQL SELECT stavek izbere podatke iz baze MySQL. Izbere vse podatke iz tabele prejeti_racun. Za izbiro uporabi tabeli prejeti_racun in partner. To pa zato, ker

45 4. PERFORMANČNA ANALIZA 27 tabela prejeti_racun ne vsebuje stolpca naziv, po katerem sprašujemo. Ta stolpec ima tabela partner. Povežemo obe tabeli s ključem in na koncu dodamo pogoj naziv partnerja. $Sql = "SELECT prejeti_racun.* FROM prejeti_racun, partner WHERE prejeti_racun.id_partnerja = partner.id_partnerja AND partner.naziv = 'Omega d.o.o.'"; SQL SELECT stavek se pošlje preko PHP skripte bazi. <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT prejeti_racun.* FROM prejeti_racun, partner WHERE prejeti_racun.id_partnerja = partner.id_partnerja AND partner.naziv = 'Omega d.o.o.'"; $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {} $end = microtime(true); $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?> Kateri partnerji so kupili določeno blago (kava) SQL SELECT stavek izbere podatke iz baze MySQL. Izbere podatke iz tabele partner. V tabeli partner pa stolpec naziv. Za izbiro uporabi tabele blago,izdana_postavka, izdani_racun in partner. To pa zato, ker tabela partner ne vsebuje stolpca ime_blaga, po katerem sprašujemo. Ta stolpec ima tabela blago. Povežemo vse tabele s ključi. Dodamo pogoj ime blaga je kava. $Sql = "SELECT partner.naziv FROM blago, izdana_postavka, izdani_racun, partner WHERE ime_blaga = 'kava' AND blago.id_blaga = izdana_postavka.id_blaga AND izdana_postavka.id_iz_racuna = izdani_racun.id_iz_racuna AND izdani_racun.id_partnerja = partner.id_partnerja"; SQL SELECT stavek se pošlje preko PHP skripte bazi.

46 28 4 PERFORMANČNA ANALIZA <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT partner.naziv FROM blago, izdana_postavka, izdani_racun, partner WHERE ime_blaga = 'kava' AND blago.id_blaga = izdana_postavka.id_blaga AND izdana_postavka.id_iz_racuna = izdani_racun.id_iz_racuna AND izdani_racun.id_partnerja = partner.id_partnerja";. $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {} $end = microtime(true); $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?> Kateri računi so bili izdani od - do ( in ) SQL SELECT stavek izbere podatke iz baze MySQL. Izbere vse podatke iz tabele izdani_racun, ki ustrezajo pogoju, ki je podan. Za izbiro uporabi tabelo izdani_racun. $Sql = "SELECT * FROM izdani_racun WHERE datum_iz_racuna >= ' ' AND datum_iz_racuna <= ' '"; SQL SELECT stavek se pošlje preko PHP skripte bazi. <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT * FROM izdani_racun WHERE datum_iz_racuna >= ' ' AND datum_iz_racuna <= ' '"; $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {} $end = microtime(true);

47 4. PERFORMANČNA ANALIZA 29 $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?> Katero blago je bilo prodano za izbrani mesec ( in ) SQL SELECT stavek izbere podatke iz baze MySQL. Izbere podatke iz tabele blago. V tabeli blago pa stolpec ime_blaga. Za izbiro uporabi tabele blago, izdana_postavka, izdani_racun. To pa zato, ker tabela blago ne vsebuje stolpca datum_iz_racuna, po katerem pogojujemo. Ta stolpec ima tabela izdani_racun. Povežemo vse tabele s ključi. Dodamo pogoj po katerem filtriramo iskanje. $Sql = "SELECT blago.ime_blaga, FROM izdani_racun,blago, izdana_postavka WHERE datum_iz_racuna >= ' ' AND datum_iz_racuna <= ' ' AND izdani_racun.id_iz_racuna = izdana_postavka.id_iz_racuna AND izdana_postavka.id_blaga = blago.id_blaga"; SQL SELECT stavek se pošlje preko PHP skripte bazi. <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT blago.ime_blaga, FROM izdani_racun,blago, izdana_postavka WHERE datum_iz_racuna >= ' ' AND datum_iz_racuna <= ' ' AND izdani_racun.id_iz_racuna = izdana_postavka.id_iz_racuna AND izdana_postavka.id_blaga = blago.id_blaga"; $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {} $end = microtime(true); $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?>

48 30 4 PERFORMANČNA ANALIZA Poišči vse prejete račune Ta SQL stavek je zelo enostaven. Izpišemo vse iz tabele prejeti_racuni. $Sql = "SELECT * FROM prejeti_racun"; SQL SELECT stavek se pošlje preko PHP skripte bazi. <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT * FROM prejeti_racun"; $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {} $end = microtime(true); $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?> Poišči vse izdane račune Ta SQL stavek je tudi zelo enostaven. Izpišemo vse iz tabele izdani_racuni. $Sql = "SELECT * FROM izdani_racun"; <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT * FROM izdani_racun"; SQL SELECT stavek se pošlje preko PHP skripte bazi. $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {}

49 4. PERFORMANČNA ANALIZA 31 $end = microtime(true); $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?> Poišči vso blago SQL stavek izpiše vse iz tabele blago. $Sql = "SELECT * FROM blago"; SQL SELECT stavek se pošlje preko PHP skripte bazi. <?php $dbc = mysqli_connect('localhost', 'dev', '**********', 'diploma') OR die('napaka:'. mysqli_connect_error()); $start = microtime(true); $Sql = "SELECT * FROM blago"; $result = mysqli_query($dbc, $Sql); if($result === FALSE) { die(mysql_error()); } while ($row = mysqli_fetch_row($result)) {} $end = microtime(true); $total = $end - $start; echo round(($total)*1000)." ms"; mysqli_close($dbc);?> 4.3 Poizvedbe za testiranje baze MongoDB Opisali bomo zahtevke, ki smo jih uporabili za testiranje baze MongoDB. Zahtevki so enaki, kot smo jih uporabili za testiranje baze MySQL. Baza MongoDB shranjuje dokumente v BSON formatu. BSON je sestavljenka iz besed binarno in JSON. JSON je okrajšava za JavaScript Object Notation. PHP programsko kodo, ki se ponavlja, bomo opisali samo prvič. Zaradi manjšega nabora funkcij, ki jih premore dokumentna baza, smo določene operacije izvajali v PHP skripti in ne v bazi sami.

50 32 4 PERFORMANČNA ANALIZA Poišči vse izdane račune za določenega partnerja (Epsilon d.o.o.) <?php $m = new MongoClient(); Funkcija new MongoClient() omogoči povezavo do baze MongoDB. $db = $m->selectdb('diploma'); Funkcija selectdb() določi katera podatkovna baza v MongoDB se bo uporabljala. $partnerji = new MongoCollection($db, 'partnerji'); $prodaja = new MongoCollection($db, 'prodaja'); Funkcija new MongoCollection() določi katera zbirka se bo uporabljala. $start = microtime(true); $partnerquery = array('naziv' => 'Epsilon d.o.o.'); $cursor = $partnerji->find($partnerquery, array('id_partnerja' => 1, '_id' => 0)); Funkcija find() izvede zgornjo poizvedbo $partnerquery in vrne stolpec 'ID_partnerja'. $partner = iterator_to_array($cursor); Funkcija iterator_to_array() je PHP funkcija, ki spremeni rezultat poizvedbe v seznam. $prodajaquery = array('id_partnerja' => (string) partner[0]['id_partnerja']); Sestavimo novo poizvedbo z uporabo rezultata prejšnje. $cursor = $prodaja->distinct('id_iz_racuna', $prodajaquery); V seznam $cursor vrne vse vrstice iz zbirke prodaja z unikatno vrednostjo iz stolpca 'ID_iz_racuna', katerih vrednost 'ID_partnerja' se nahaja v zgornji poizvedbi.

51 4. PERFORMANČNA ANALIZA 33 $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?> Poišči vse prejete račune za določenega partnerja (Omega d.o.o.) Izvede se poizvedba, ki išče naziv, ki ima vrednost Omega d.o.o. in vrne stolpec 'ID_partnerja'. $cursor=$partnerji->find($partnerquery, array('id_partnerja' => 1, '_id' => 0)); V seznam $cursor vrne vse vrstice iz zbirke 'nakupi' z unikatno vrednostjo iz stolpca 'ID_pr_racuna', katerih vrednost 'ID_partnerja' se nahaja v zgornji poizvedbi. $cursor = $nakupi->distinct('id_pr_racuna', $nakupquery); <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $partnerji = new MongoCollection($db, 'partnerji'); $nakupi = new MongoCollection($db, 'nakupi'); $start = microtime(true); $partnerquery = array('naziv' => 'Omega d.o.o.'); $cursor = $partnerji->find($partnerquery, array('id_partnerja' => 1, '_id' => 0)); $partner = iterator_to_array($cursor); $nakupquery = array('id_partnerja' => (string) $partner[0]['id_partnerja']); PHP skripta sestavi novo poizvedbo z uporabo rezultata prejšnje. $cursor = $nakupi->distinct('id_pr_racuna', $nakupquery); $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?>

52 34 4 PERFORMANČNA ANALIZA Kateri partnerji so kupili določeno blago (kava) Izvede se poizvedba $blagoquery in vrne stolpec 'ID_partnerja'. $cursor = $prodaja->find($blagoquery, array('id_partnerja' => 1, '_id' => 0)); Sestavi novo poizvedbo z uporabo seznama vrednosti 'ID_partnerja'. $partnerquery = array('id_partnerja' => array('$in' => $partneridarray)); Izvede zgornjo poizvedbo in vrne stolpec 'naziv'. $cursor = $partnerji->find($partnerquery, array('naziv' => 1, '_id' => 0)); <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $partnerji = new MongoCollection($db, 'partnerji'); $prodaja = new MongoCollection($db, 'prodaja'); $start = microtime(true); $blagoquery = array('ime_blaga' => 'kava'); $cursor = $prodaja->find($blagoquery, array('id_partnerja' => 1, '_id' => 0)); $partnerarray = iterator_to_array($cursor); $partneridarray = array(); Funkcija array() je PHP funkcija in ustvari nov prazen seznam. foreach ($partnerarray as $key => $value) { Sprehod po seznamu $partnerarray. if (!array_search($value['id_partnerja'], $partneridarray)) { Pogoj, ki preverja, če seznam $partneridarray že vsebuje vrstico $value['id_partnerja']. $partneridarray[] = $value['id_partnerja']; Če vrstice ni, jo doda.

53 4. PERFORMANČNA ANALIZA 35 }}$partnerquery = array('id_partnerja' => array('$in' => $partneridarray)); $cursor = $partnerji->find($partnerquery, array('naziv' => 1, '_id' => 0)); foreach ($cursor as $row) {} $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?> Kateri računi so bili izdani od - do ( in ) Sestavimo poizvedbo, ki v zbirki poišče vse dokumente, ki imajo 'datum_iz_racuna' med in $prodajaquery = array("datum_iz_racuna" =>array('$gte' => " ",'$lte' => ' ')); Vrnemo seznam vrednosti iz zbirke prodaja, kjer vrednosti izpolnjujejo pogoj, ki je podan. $cursor=$prodaja->distinct('id_iz_racuna', $prodajaquery); <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $prodaja = new MongoCollection($db, 'prodaja'); $start = microtime(true); $prodajaquery = array("datum_iz_racuna" =>array('$gte' => " ",'$lte' => ' ')); $cursor = $prodaja->distinct('id_iz_racuna', $prodajaquery); $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?>

54 36 4 PERFORMANČNA ANALIZA Katero blago je bilo prodano za izbrani mesec ( in ) Sestavimo poizvedbo, ki v zbirki poišče vse dokumente, ki imajo 'datum_iz_racuna' med in $prodajaquery = array("datum_iz_racuna" =>array('$gte' => " ",'$lte' => ' ')); Izvede zgornjo poizvedbo in vrne stolpec 'ime_blaga'. $cursor = $prodaja->find($prodajaquery, array('ime_blaga' => 1, '_id' => 0)); <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $prodaja = new MongoCollection($db, 'prodaja'); $start = microtime(true); $prodajaquery = array("datum_iz_racuna" =>array('$gte' => " ",'$lte' => ' ')); $cursor = $prodaja->find($prodajaquery, array('ime_blaga' => 1, '_id' => 0)); foreach ($cursor as $row) {}; $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?> Poišči vse prejete račune V seznam $cursor vrne vse vrstice iz zbirke nakupi z unikatno vrednostjo iz stolpca 'ID_pr_racuna'. $cursor = $nakupi->distinct('id_pr_racuna');. <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $nakupi = new MongoCollection($db, 'nakupi'); $start = microtime(true); $cursor = $nakupi->distinct('id_pr_racuna'); $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";

55 4. PERFORMANČNA ANALIZA 37?> Poišči vse izdane račune V seznam $cursor vrne vse vrstice iz zbirke prodaja z unikatno vrednostjo iz stolpca 'ID_iz_racuna'. $cursor = $prodaja->distinct('id_iz_racuna'); <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $prodaja = new MongoCollection($db, 'prodaja'); $start = microtime(true); $cursor = $prodaja->distinct('id_iz_racuna'); $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?> Poišči vso blago V seznam $seznamblaga vrne vse vrstice iz zbirke prodaja z unikatno vrednostjo iz stolpca 'ID_blaga'. $seznamblaga = $prodaja->distinct('id_blaga'); <?php $m = new MongoClient(); $db = $m->selectdb('diploma'); $prodaja = new MongoCollection($db, 'prodaja'); $start = microtime(true); $seznamblaga = $prodaja->distinct('id_blaga'); $end = microtime(true); $total = $end - $start; echo "<p style='color:red;'>".round(($total)*1000)." ms";?>

56 38 4 PERFORMANČNA ANALIZA

57 5. Predstavitev in razlaga rezultatov testiranja 5.1 Predstavitev rezultatov testiranja Bazi smo testirali s pomočjo osmih poizvedb. Poizvedbe so take, da potrebujejo podatke iz ene ali več tabel iz baze MySQL, oziroma zbirk iz baze MongoDB. Poizvedbe smo petkrat ponovili, najhitrejši in najpočasnejši čas smo izločili. Iz ostalih treh časov, pa smo izračunali povprečje. Velikost tabel v MySQL bazi je predstavljena v spodnji Tabeli 5.1. Ime tabele Število vrstic v tabeli blago 110 izdana_postavka izdani_racun naslov 7 partner 24 posta 9 prejeta_postavka prejeti_racun Tabela 5.1: Število vrstic v posameznih tabelah. 39

Chapter 1

Chapter 1 - 1 - Poglavje 1 Uvod v podatkovne baze - 2 - Poglavje 1 Cilji (Teme).. Nekatere domene, kjer se uporabljajo podatkovne baze Značilnosti datotečnih sistemov Problemi vezani na datotečne sisteme Pomen izraza

Prikaži več

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA

PRIPOROČILA ZA OBLIKOVANJE KATALOGOV ZNANJA ZA MODULE V PROGRAMIH VIŠJEGA STROKOVNEGA IZOBRAŽEVANJA KATALOG ZNANJA 1. IME PREDMETA ZBIRKE PODATKOV I ZBIRKE PODATKOV II 2. SPLOŠNI CILJI Splošni cilji predmeta so: razvijanje sposobnosti za uporabo znanstvenih metod in sredstev, razvijanje odgovornosti

Prikaži več

Diapozitiv 1

Diapozitiv 1 Računalništvo in informatika Program: Mehatronika dr. Hubert Fröhlich, univ. dipl. el. Podatkovne baze 2 Podatkovne baze Podatki osnova za odločanje in izvajanje akcij tiskana oblika elektronska oblika

Prikaži več

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk

1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatk 1 MMK - Spletne tehnologije Vaja 5: Spletni obrazci Vaja 5 : Spletni obrazci 1. Element form Spletni obrazci so namenjeni zbiranju uporabniških podatkov in njihov prenos med spletnimi mesti. Obrazec v

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : ržavni izpitni center *M15178112* SPOMLNSKI IZPITNI ROK Izpitna pola 2 Četrtek, 4. junij 2015 / 90 minut ovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero ali

Prikaži več

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov

Document ID / Revision : 0519/1.3 ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov ID Issuer System (sistem izdajatelja identifikacijskih oznak) Navodila za registracijo gospodarskih subjektov Gospodarski subjekti Definicija: V skladu z 2. členom Izvedbene uredbe Komisije (EU) 2018/574

Prikaži več

SQL doc. dr. Evelin Krmac RELACIJSKE PODATKOVNE BAZE Relacijski model organizacije podatkov podatki predstavljeni preko relacij 2D tabel operacije se

SQL doc. dr. Evelin Krmac RELACIJSKE PODATKOVNE BAZE Relacijski model organizacije podatkov podatki predstavljeni preko relacij 2D tabel operacije se SQL RELACIJSKE PODATKOVNE BAZE Relacijski model organizacije podatkov podatki predstavljeni preko relacij 2D tabel operacije se izvajajo preko enega jezika (npr. SQL) omogoča izvajanje osnovnih relacijskih

Prikaži več

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada

IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko Projekt delno financira Evropska unija, in sicer iz Evropskega socialnega sklada IZGRADNJA PREDSTAVITVENE SPLETNE STRANI GLUCOWATCH Avtor: Marko Zajko UPORABLJENE TEHNOLOGIJE Za izdelavo predstavitvene spletne strani smo izbrali tehnologije, ki zagotavljajo: Hitro delovanje spletne

Prikaži več

Strojna oprema

Strojna oprema Asistenta: Mira Trebar, Miha Moškon UIKTNT 2 Uvod v programiranje Začeti moramo razmišljati algoritmično sestaviti recept = napisati algoritem Algoritem za uporabo poljubnega okenskega programa. UIKTNT

Prikaži več

Podatkovni model ER

Podatkovni model ER Podatkovni model Entiteta- Razmerje Iztok Savnik, FAMNIT 2018/19 Pregled: Načrtovanje podatkovnih baz Konceptualno načtrovanje: (ER Model) Kaj so entite in razmerja v aplikacijskem okolju? Katere podatke

Prikaži več

LAMP, MEAN, ANNE – kaj izbrati za razvoj spletne aplikacije?

LAMP, MEAN, ANNE – kaj izbrati za razvoj spletne aplikacije? Univerza v Ljubljani Fakulteta za računalništvo in informatiko Tim Cestnik LAMP, MEAN, ANNE kaj izbrati za razvoj spletne aplikacije? DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO

Prikaži več

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadz

Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadz Univerza v Ljubljani Fakulteta za računalništvo in informatiko Rok Erjavec Aplikacija za upravljanje identifikatorjev in podatkov v sistemu z NFC nadzorom temperatur DIPLOMSKO DELO VISOKOŠOLSKI STROKOVNI

Prikaži več

Microsoft Word - M _mod..docx

Microsoft Word - M _mod..docx Državni izpitni center *M17278113* JESENSKI IZPITNI ROK NAVODILA ZA OCENJEVANJE Ponedeljek, 28. avgust 2017 SPLOŠNA MATURA Državni izpitni center Vse pravice pridržane. M172-781-1-3 2 IZPITNA POLA 1 1

Prikaži več

Delavnica Načrtovanje digitalnih vezij

Delavnica Načrtovanje digitalnih vezij Laboratorij za načrtovanje integriranih vezij Univerza v Ljubljani Fakulteta za elektrotehniko Digitalni Elektronski Sistemi Osnove jezika VHDL Strukturno načrtovanje in testiranje Struktura vezja s komponentami

Prikaži več

David Zakelšek SPLETNA PODPORA UČENJU MATEMATIKE Diplomsko delo Maribor, september 2013

David Zakelšek SPLETNA PODPORA UČENJU MATEMATIKE Diplomsko delo Maribor, september 2013 David Zakelšek Diplomsko delo Maribor, september 2013 Diplomsko delo Študent: Študijski program: Smer: Mentor: Lektorica: David Zakelšek Univerzitetni študijski program Informatika in tehnologije komuniciranja

Prikaži več

Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga

Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga Šolski center Celje Srednja šola za kemijo, elektrotehniko in računalništvo ELEKTRONSKA REDOVALNICA RAZISKOVALNA NALOGA AVTORJI Aleš Budna Jure Ulaga Nik Perčič MENTOR Dušan Fugina, prof. Celje, marec

Prikaži več

Microsoft PowerPoint - Sequi_SecDAy.ppt

Microsoft PowerPoint - Sequi_SecDAy.ppt Sistem za zagotavljanje revizijske sledi zbirk podatkov Marko Hočevar Premisa d.o.o. Iztok Lasič Hic Salta d.o.o. O revizijski sledi Namen revizijske sledi Znane težave pri zajemanju revizijske sledi Zakaj

Prikaži več

Orodje za izvoz podatkov

Orodje za izvoz podatkov Pomoč uporabnikom -NA-SI-200, V6.13-00 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod... 1 2 Predstavitev orodja za izvoz podatkov...

Prikaži več

COBISS3/Medknjižnična izposoja

COBISS3/Medknjižnična izposoja 3/Medknjižnična izposoja 2.2 KATALOG Katalog nam omogoča: iskanje gradiva prikaz izbranih bibliografskih zapisov ali pripadajočih podatkov o zalogi iz lokalne baze podatkov v formatu COMARC vpogled v stanje

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC

VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC VPELJAVA MDM V DRŽAVEM ZBORU MATJAŽ ZADRAVEC Državni zbor v številkah 90 poslancev 9 + 1 poslanska skupina 150+ mobilnih naprav (OS Android, ios) 500+ internih uporabnikov, 650+ osebnih računalnikov, 1100+

Prikaži več

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje:

Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: Zbornica zdravstvene in babiške nege Slovenije Zveza strokovnih društev medicinskih sester, babic in zdravstvenih tehnikov Slovenije Stanje: 17.07.2013 Ver. 2.9.1.2 Spletni portal članov uporabniška navodila

Prikaži več

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas

Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nas Vaja 2 Virtualizacija fizičnih strežnikov in virtualni PC A. Strežnik Vmware ESX 3.5 1. Namestitev strežnika VMware ESX 3.5 na fizični strežnik 2. Nastavitve strežnika ESX 3. Namestitev in nastavitve VM

Prikaži več

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo

Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefo Poročilo za 1. del seminarske naloge- igrica Kača Opis igrice Kača (Snake) je klasična igrica, pogosto prednaložena na malce starejših mobilnih telefonih. Obstaja precej različic, sam pa sem sestavil meni

Prikaži več

Navodila Trgovina iCenter

Navodila Trgovina iCenter Napredovanja v plačne razrede javnih uslužbencev 2019 S pomočjo SAOP programa Kadrovska evidenca lahko ob dokupljeni kodi vodimo napredovanja javnih uslužbencev. Za napredovanja v letu 2019 je potrebno

Prikaži več

Obračun storitev v vrtcu in šoli

Obračun storitev v vrtcu in šoli Obračun storitev v vrtcu in šoli mag. Jana Trbižan Pripravili: mag. Jana Trbižan, Nuša Peternelj, Mitja Živko Podpora uporabnikom Dnevni red 1. Pogoste napake pri obračunu v vrtcu in šoli 2. Kaj pomeni

Prikaži več

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir

MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje prir MATLAB programiranje MATLAB... programski jezik in programersko okolje Zakaj Matlab? tipičen proceduralni jezik enostaven za uporabo hitro učenje priročno programsko okolje tolmač interpreter (ne prevajalnik)

Prikaži več

DSI 2019

DSI 2019 SINERGIJA PROTOKOLA IPFS IN TEHNOLOGIJE VERIŽENJA BLOKOV Aida Kamišalić Latifić, Muhamed Turkanović, Blaž Podgorelec, Marjan Heričko TEHNOLOGIJA VERIŽENJA BLOKOV in IPFS Porazdeljena & decentralizirana

Prikaži več

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA

ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA ŠTEVCI PROMETA IN NJIHOVA UPORABA ZA NAMENE STATISTIK ČRT GRAHONJA Navdih Poizvedovanje po BD podatkovnih virih, ki imajo časovno dimenzijo in so dostopni. Večji promet pomeni večje število dobrin in močnejšo

Prikaži več

Microsoft Word - CNC obdelava kazalo vsebine.doc

Microsoft Word - CNC obdelava kazalo vsebine.doc ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo mesto, april 2008 Ime in priimek študenta ŠOLSKI CENTER NOVO MESTO VIŠJA STROKOVNA ŠOLA STROJNIŠTVO DIPLOMSKA NALOGA Novo

Prikaži več

Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki

Uporaba informacijsko komunikacijske tehnologije v naravoslovju in tehniki Predavatelj: izr. prof. Uroš Lotrič Asistent: Davor Sluga Vsebina 5 x V Problemi velikih podatkov Apache Hadoop kot rešitev Kaj je Hadoop HDFS YARN MapReduce Hadoop ekosistem VVVVV Volume (Količina) Količina

Prikaži več

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega)

GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) GHOSTBUSTERS navodila za učitelje O PROJEKTU S tem projektom se učenci sami naučijo izdelati igro. Ustvariti morajo več ikon (duhcov ali kaj drugega) in za vsako napisati svojo kodo. Dve ikoni imata isto

Prikaži več

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n

Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj n Nove različice programske opreme GE Podjetje GE Digital, vodilni svetovni proizvajalec programske opreme za področje avtomatike, je izdalo kar nekaj novosti na področju SCADA sistemov (ifix Productivity

Prikaži več

Elektronska pošta

Elektronska pošta Elektronska pošta ZGODOVINA Prvo sporočilo je bilo poslano leta 1971. Besedilo, ki ga je vsebovalo, je bilo QWERTYUIOP. Pošiljatelj je bil Ray Tomlinson, računalnika med katerima je bilo sporočilo poslano

Prikaži več

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str

Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna str Navodila za programsko opremo FeriX Namestitev na trdi disk Avtor navodil: Martin Terbuc Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski naslov: podpora@coks.si

Prikaži več

Diplomsko delo visokošolskega strokovnega študija Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ M

Diplomsko delo visokošolskega strokovnega študija Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ M Informatika v organizaciji in managementu SPLETNA REŠITEV ZA ISKANJE TERMINOV IN LOKACIJ PREDAVANJ Mentor: doc. dr. Borut Werber Kandidat: Boštjan Koželj Somentor: viš. pred. dr. Gregor Lenart Kranj, September

Prikaži več

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij

Kazalo 1 DVOMESTNE RELACIJE Operacije z dvomestnimi relacijami Predstavitev relacij Kazalo 1 DVOMESTNE RELACIJE 1 1.1 Operacije z dvomestnimi relacijami...................... 2 1.2 Predstavitev relacij............................... 3 1.3 Lastnosti relacij na dani množici (R X X)................

Prikaži več

Microsoft Word - ARRS-MS-BR-07-A-2009.doc

Microsoft Word - ARRS-MS-BR-07-A-2009.doc RAZPIS: Javni razpis za sofinanciranje znanstvenoraziskovalnega sodelovanja med Republiko Slovenijo in Federativno Republiko Brazilijo v letih 2010 2012 (Uradni list RS št. 53/2009) Splošna opomba: Vnosna

Prikaži več

NAVODILA ZA IZPOLNJEVANJE OBRAZCA

NAVODILA ZA IZPOLNJEVANJE OBRAZCA NAVODILO ZA UPORABO PRIPOMOČKA ZA PRIPRAVO STROŠKOVNEGA NAČRTA PROJEKTA»Piano finanziario Stroskovni nacrt«dokument»piano finanziario Stroskovni nacrt«v Microsoft Excel obliki lahko uporabite kot pripomoček

Prikaži več

Microsoft PowerPoint - PIS_2005_03_02.ppt

Microsoft PowerPoint - PIS_2005_03_02.ppt Utišajmo mobilne telefone! 1 Vsebina predmeta Osnove poslovnih informacijskih sistemov Modeliranje poslovnih procesov Podatkovne baze in modeliranje podatkov 2. del Osnove jezika SQL Življenjski cikel

Prikaži več

Diapozitiv 1

Diapozitiv 1 Pogojni stavek Pogojni (if) stavek Tip bool Primerjanje Uranič Srečo If stavek Vsi dosedanji programi so se izvajali zaporedoma, ni bilo nobenih vejitev Program razvejimo na osnovi odločitev pogojnega

Prikaži več

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in

NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: Faks.: in NEVTRIN d.o.o. Podjetje za razvoj elektronike, Podgorje 42a, 1241 Kamnik, Slovenia Telefon: +386 1 729 6 460 Faks.: +386 1 729 6 466 www.nevtrin.si info@elektrina.si USB RFID READER Navodila za uporabo?

Prikaži več

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte

Navodila za uporabo programske opreme OTRS verzija Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte Navodila za uporabo programske opreme OTRS verzija 2.2.3 Administracijska navodila Avtor navodil: Sebastijan Šilec Datum: December 2007 Center odprte kode Slovenije Spletna stran: http://www.coks.si/ Elektronski

Prikaži več

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Podatkovne baze 1 Course title: Data bases 1 Študijski program in stopnja Study programme and level Vis

UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Podatkovne baze 1 Course title: Data bases 1 Študijski program in stopnja Study programme and level Vis UČNI NAČRT PREDMETA / COURSE SYLLABUS Predmet: Podatkovne baze 1 Course title: Data bases 1 Študijski program in stopnja Study programme and level Visokošolski strokovni študijski program Praktična matematika

Prikaži več

APS1

APS1 Algoritmi in podatkovne strukture 1 Visokošolski strokovni študij Računalništvo in informatika Abstraktni podatkovni tipi Jurij Mihelič, UniLj, FRI Podatkovni tipi Razvil Pascal, Oberon itd. Software is

Prikaži več

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni

RAM stroj Nataša Naglič 4. junij RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni RAM stroj Nataša Naglič 4. junij 2009 1 RAM RAM - random access machine Bralno pisalni, eno akumulatorski računalnik. Sestavljajo ga bralni in pisalni trak, pomnilnik ter program. Bralni trak- zaporedje

Prikaži več

Microsoft Word - NAVODILA ZA UPORABO.docx

Microsoft Word - NAVODILA ZA UPORABO.docx NAVODILA ZA UPORABO VODILO CCM-18A/N-E (K02-MODBUS) Hvala ker ste se odločili za nakup našega izdelka. Pred uporabo enote skrbno preberite ta Navodila za uporabo in jih shranite za prihodnjo rabo. Vsebina

Prikaži več

PowerPoint Presentation

PowerPoint Presentation Novosti Državnega centra za storitve zaupanja SI-TRUST Mag. Aleš Pelan, Ministrstvo za javno upravo 11.12.2018 ... 2000 2001 2015 2018 Overitelj na MJU Državni center za storitve zaupanja Novosti v letu

Prikaži več

Microsoft Word - M docx

Microsoft Word - M docx Š i f r a k a n d i d a t a : Državni izpitni center *M17178111* SPOMLADANSKI IZPITNI ROK Izpitna pola 1 Četrtek, 1. junij 2017 / 90 minut Dovoljeno gradivo in pripomočki: Kandidat prinese nalivno pero

Prikaži več

Diapozitiv 1

Diapozitiv 1 9. Funkcije 1 9. 1. F U N K C I J A m a i n () 9.2. D E F I N I C I J A F U N K C I J E 9.3. S T A V E K r e t u r n 9.4. K L I C F U N K C I J E I N P R E N O S P A R A M E T R O V 9.5. P R E K R I V

Prikaži več

Style Sample for C&N Word Style Sheet

Style Sample for C&N Word Style Sheet IBM-ovi pogoji uporabe pogoji posebne ponudbe SaaS IBM BigInsights on Cloud Pogoje uporabe ("pogoji uporabe") sestavljajo ti IBM-ovi pogoji uporabe pogoji posebne ponudbe SaaS ("pogoji posebne ponudbe

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev IZKUŠNJE PRI PRILAGODITVI E-STORITEV AJPES ZAHTEVAM EIDAS ZA ČEZMEJNO PRIZNAVANJE MARJAN BABIČ, AJPES Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije s SI-PASS

Prikaži več

Nameščanje Adopt Open Java Development Kit 8

Nameščanje Adopt Open Java Development Kit 8 Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev Izkušnje pri prilagoditvi e-storitev AJPES zahtevam eidas za čezmejno priznavanje Marjan Babič, AJPES 11. 12. 2018 Vsebina Razlogi za vključitev v projekt CEF Telecom Izvajalno okolje AJPES in način integracije

Prikaži več

PowerPoint Presentation

PowerPoint Presentation INFORMACIJSKI SISTEM MFERAC - LETA 2022 mag. Andreja Sladoje Jemec, Sanja Štumberger Kovačič Ministrstvo za finance 10.12.2018 Vsebina predstavitve 1. Projekt MFERAC05 in izhodišča prenove 2. Izvajanje

Prikaži več

Nameščanje Adopt Open Java Development Kit 8

Nameščanje Adopt Open Java Development Kit 8 Nameščanje Adopt Open Java Development Kit 8 za Windows x64 IZUM, 2019 IZUM, COBISS, COMARC, COBIB, COLIB, CONOR, SICRIS, E-CRIS so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Uvod...

Prikaži več

Microsoft Word - UP_Lekcija04_2014.docx

Microsoft Word - UP_Lekcija04_2014.docx 4. Zanka while Zanke pri programiranju uporabljamo, kadar moramo stavek ali skupino stavkov izvršiti večkrat zaporedoma. Namesto, da iste (ali podobne) stavke pišemo n-krat, jih napišemo samo enkrat in

Prikaži več

INFORMATOR BIROKRAT 1/2011

INFORMATOR BIROKRAT 1/2011 ta Veleprodaja Maloprodaja Storitve Računovodstvo Proizvodnja Gostinstvo Turizem Hotelirstvo Ticketing CRM Internetna trgovina Izdelava internetnih strani Grafično oblikovanje NOVOSTI IN NASVETI ZA DELO

Prikaži več

Poročanje izdanih računov pri gotovinskem poslovanju

Poročanje izdanih računov pri gotovinskem poslovanju Poročanje izdanih računov pri gotovinskem poslovanju Vrsta dokumenta: Uporabniška navodila Pripravil/i: Za: Naviservice +386 1 548 3999 naviservice@adacta.si Adacta d.o.o. Verovškova 55a, 1000 Ljubljana

Prikaži več

Slajd 1

Slajd 1 REPUBLIKA SLOVENIJA MINISTRSTVO ZA JAVNO UPRAVO 1 EU ENOTNI DIGITALNI PORTAL: PRIHAJA NOVA EU UREDBA Alenka Žužek Nemec, Tina Kuliš DNEVI SLOVENSKE INFORMATIKE 18. april 2018 Ko podjetja ali državljani

Prikaži več

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij.

Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli v računalniškem komuniciranju TCP, IP, nivojski model, paket informacij. Protokoli - uvod Protokol je pravilo ali zbirka pravil, ki določajo načine transporta sporočil po računalniškem omrežju

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, Verzija 1.0 TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM POGOSTA VPRAŠANJA IN ODGOVORI Ljubljana, 12.11.2018 Verzija 1.0 KAZALO 1 REGISTRACIJA... 3 1.1 Katere podatke potrebujem za registracijo/kreiranje

Prikaži več

Cenik ES_spremembe_marec2013_ČISTOPIS_Sprememba_

Cenik ES_spremembe_marec2013_ČISTOPIS_Sprememba_ Cenik elektronskih storitev Na podlagi 332. člena Zakona o trgu finančnih instrumentov in 34. člena Statuta Ljubljanske borze vrednostnih papirjev, d. d., Ljubljana z dne 27.5.1997, z zadnjimi spremembami

Prikaži več

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n

EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino JB za DCTA, (Final 1.2) Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se n EU-TPD 1 PODROBNOSTI KODIRANJA Informacije za trgovino Obveznost kodiranja izdelka, urejena s predpisom EU-TPD se nanaša na tobačne izdelke na trgu EU in na tobačne izdelke, izdelane v EU, vključno s tistimi

Prikaži več

Aplikacija za beleženje casa

Aplikacija za beleženje casa Univerza v Ljubljani Fakulteta za računalništvo in informatiko Peter Povirk Aplikacija za beleženje časa DIPLOMSKO DELO UNIVERZITETNI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA Mentor:

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev TIK terminal nima povezave s strežnikom Ob vpisu v TIK Admin se pojavi napis ni povezave s strežnikom Na terminalu je ikona 1. preverimo ali je pravilno nastavljen IP strežnika 1. Preverimo datoteko TIKSAdmin.INI

Prikaži več

ARRS-BI-FR-PROTEUS-JR-Prijava/2011 Stran 1 od 7 Oznaka prijave: Javni razpis za sofinanciranje znanstvenoraziskovalnega sodelovanja med Republiko Slov

ARRS-BI-FR-PROTEUS-JR-Prijava/2011 Stran 1 od 7 Oznaka prijave: Javni razpis za sofinanciranje znanstvenoraziskovalnega sodelovanja med Republiko Slov Stran 1 od 7 Oznaka prijave: Javni razpis za sofinanciranje znanstvenoraziskovalnega sodelovanja med Republiko Slovenijo in Francosko republiko Program PROTEUS v letih 2012-2013 (Uradni list RS, št. 10/2011,

Prikaži več

Spoznajmo PowerPoint 2013

Spoznajmo PowerPoint 2013 Spoznajmo PowerPoint 2013 13 Nova predstavitev Besedilo v predstavitvi Besedilo, ki se pojavlja v predstavitvah lahko premaknemo kamorkoli v diapozitivu. Kadar izdelamo diapozitiv z že ustvarjenimi okvirji

Prikaži več

Microsoft Exchange 2013

Microsoft Exchange 2013 Cumulative update 1 (CU1) for Exchange Server 2013 - izdan včeraj 2.4.2013. Get-AdminAuditLogConfig Get-SendConnector "Internet" Remove- ADPermission -AccessRight ExtendedRight - ExtendedRights "ms-exch-send-headers-

Prikaži več

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje

Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX Dodajanje uporabnikov vajexx v skupino Vaje Vaja 3 Kopiranje VM in namestitev aplikacij - strežnik SQL 2000 SP3a A. Lokalni strežnik Vmware ESX 3.5 1. Dodajanje uporabnikov vajexx v skupino Vaje 2. Kopiranje Win2003 strežnika in registracija na

Prikaži več

DODATEK_F8

DODATEK_F8 COMARC/B F.8 F.8 Tabela polj/podpolj s stopnjo obveznosti za posamezen bibliografski nivo V tabeli je podana obveznost polj/podpolj (o - obvezen podatek, p - obvezen podatek, če obstaja, in n - neobvezen

Prikaži več

Interaktivni atlas slovenskih narecnih besed

Interaktivni atlas slovenskih narecnih besed Univerza v Ljubljani Fakulteta za računalništvo in informatiko Gregor Šajn Interaktivni atlas slovenskih narečnih besed DIPLOMSKO DELO VISOKOŠOLSKI ŠTUDIJSKI PROGRAM PRVE STOPNJE RAČUNALNIŠTVO IN INFORMATIKA

Prikaži več

OSNOVNE INFORMACIJE O TRGOSKOPU Kaj je Trgoskop? TRGOSKOP je orodje za pregled podatkov o sklenjenih poslih z nepremičninami, nepogrešljivo za investi

OSNOVNE INFORMACIJE O TRGOSKOPU Kaj je Trgoskop? TRGOSKOP je orodje za pregled podatkov o sklenjenih poslih z nepremičninami, nepogrešljivo za investi OSNOVNE INFORMACIJE O TRGOSKOPU Kaj je Trgoskop? TRGOSKOP je orodje za pregled podatkov o sklenjenih poslih z nepremičninami, nepogrešljivo za investitorje, cenilce, banke, zavarovalnice, nepremičninske

Prikaži več

PowerPoint Presentation

PowerPoint Presentation Uporaba storitve Office 365 v napravi iphone ali ipad Priročnik za hiter začetek dela Ogled e-pošte Nastavite napravo iphone ali ipad tako, da boste lahko pošiljali in prejemali e-pošto iz računa v storitvi

Prikaži več

Uradni list RS - 12(71)/2005, Mednarodne pogodbe

Uradni list RS - 12(71)/2005, Mednarodne pogodbe PRILOGA 3 Osnovne značilnosti, ki se sporočajo za usklajevanje 1. Zgradba podatkovne zbirke Podatkovno zbirko sestavljajo zapisi, ločeni po znakovnih parih "pomik na začetek vrstice pomik v novo vrstico"

Prikaži več

Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov

Uporaba  podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Smetanova ulica 17 2000 Maribor, Slovenija Rajko Bunderl Uporaba podatkovnih baz NewSQL pri obdelavi velikih količin podatkov Diplomsko delo Maribor, september 2015 II Uporaba podatkovnih baz NewSQL pri

Prikaži več

Arjan Topolovec PROFILIRANJE SPLETNIH APLIKACIJ Diplomsko delo Maribor, september 2010

Arjan Topolovec PROFILIRANJE SPLETNIH APLIKACIJ Diplomsko delo Maribor, september 2010 Arjan Topolovec PROFILIRANJE SPLETNIH APLIKACIJ Diplomsko delo Maribor, september 2010 I Diplomsko delo univerzitetnega študijskega programa PROFILIRANJE SPLETNIH APLIKACIJ Študent: Študijski program:

Prikaži več

11/21/2017 SQL-ODBC Povezava do podatkovne baze modul pyodbc povezovalni niz (eksplicitno, ali z uporabo DSN) In [6]: import pyodbc from future import

11/21/2017 SQL-ODBC Povezava do podatkovne baze modul pyodbc povezovalni niz (eksplicitno, ali z uporabo DSN) In [6]: import pyodbc from future import Povezava do podatkovne baze modul pyodbc povezovalni niz (eksplicitno, ali z uporabo DSN) In [6]: import pyodbc from future import print_function # Kompatibilnost s Pythonom 2.7 in 3.x # Eksplicitna prijava

Prikaži več

PowerApps

PowerApps ko tehnologija postane brezmejna strast Microsoft PowerApps Uporabniška navodila Avtorji Brina Gomboc, Lucija Kos, Damjana Krampač Mentorici dr. Simona Sternad Zabukovšek Sara Cokan, mag. ekon. in posl.

Prikaži več

CODEKS IP KAMERA

CODEKS IP KAMERA CODEKS IP KAMERA uporabniška navodila Vse pravice pridržane. Noben del uporabniških navodil se ne sme reproducirati v kakršnikoli obliki ali na kakršen koli način - grafični, elektronski ali mehanski,

Prikaži več

2. Model multiple regresije

2. Model multiple regresije 2. Model multiple regresije doc. dr. Miroslav Verbič miroslav.verbic@ef.uni-lj.si www.miroslav-verbic.si Ljubljana, februar 2014 2.1 Populacijski regresijski model in regresijski model vzorčnih podatkov

Prikaži več

Microsoft Word - avd_vaje_ars1_1.doc

Microsoft Word - avd_vaje_ars1_1.doc ARS I Avditorne vaje Pri nekem programu je potrebno izvršiti N=1620 ukazov. Pogostost in trajanje posameznih vrst ukazov računalnika sta naslednja: Vrsta ukaza Štev. urinih period Pogostost Prenosi podatkov

Prikaži več

Microsoft Word - ARRS-MS-CEA-03-A-2009.doc

Microsoft Word - ARRS-MS-CEA-03-A-2009.doc RAZPIS: Javni razpis za sofinanciranje znanstvenoraziskovalnega sodelovanja med Republiko Slovenijo in Komisariatom za atomsko energijo (CEA) Francoske republike v letih 2009-2011 Splošna opomba: Vnosna

Prikaži več

POROČILO

POROČILO UVOD Delovanje knjižnice Fakultete za kemijo in kemijsko tehnologijo v Ljubljani (UL FKKT), ki je sedaj že 17 let funkcionalno združena s Centralno tehniško knjižnico (CTK), lahko ocenimo kot uspešno kar

Prikaži več

Slide 1

Slide 1 Projektno vodenje PREDAVANJE 7 doc. dr. M. Zajc matej.zajc@fe.uni-lj.si Projektno vodenje z orodjem Excel Predstavitev Najbolj razširjeno orodje za delo s preglednicami Dva sklopa funkcij: Obdelava številk

Prikaži več

Vedno pod nadzorom, kjerkoli že ste

Vedno pod nadzorom, kjerkoli že ste Vedno pod nadzorom, kjerkoli že ste 02 Vedno pod nadzorom, kjerkoli že ste Daikin zagotavlja novo rešitev za nadzorovanje in krmiljenje glavnih funkcij stanovanjskih notranjih enot. Sistem deluje na uporabniku

Prikaži več

NETGEAR R6100 WiFi Router Installation Guide

NETGEAR R6100 WiFi Router Installation Guide Blagovne znamke NETGEAR, logotip NETGEAR in Connect with Innovation so blagovne znamke in/ali registrirane blagovne znamke družbe NETGEAR, Inc. in/ali njenih povezanih družb v ZDA in/ali drugih državah.

Prikaži več

Navodila za uporabo Mini snemalnik

Navodila za uporabo Mini snemalnik Navodila za uporabo Mini snemalnik www.spyshop.eu Pred vami so navodila za pravilno uporabo mini snemalnika in opis funkcionalnosti. Lastnosti snemalnika: Naziv Mere Teža Kapaciteta spomina Snemanje Format

Prikaži več

Microsoft PowerPoint - Java_spremenljivke

Microsoft PowerPoint - Java_spremenljivke Java Spremenljivke, prireditveni stavek Spremenljivke Prostor, kjer hranimo vrednosti Ime Znak, števka, _ Presledkov v imenu ne sme biti! Tip spremenljivke int (cela števila) Vse spremenljivke napovemo

Prikaži več

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika

Gimnazija Bežigrad Peričeva Ljubljana OPERACIJSKI SISTEM Predmet: informatika Gimnazija Bežigrad Peričeva 4 1000 Ljubljana OPERACIJSKI SISTEM Predmet: informatika KAZALO 1. Uvod...3 2. Predstavitev programa Windows 98...5 3. Raziskovanje računalnika...5 4. Raziskovanje Interneta...6

Prikaži več

Macoma katalog copy

Macoma katalog copy POSLOVNE APLIKACIJE PO ŽELJAH NAROČNIKA Poročilni sistem Finance in kontroling Poprodaja Podatkovna skladišča Prodaja Proizvodnja Obstoječi ERP Partnerji Implementacija rešitev prilagojena po željah naročnika

Prikaži več

EVROPSKA PRAVNA FAKULTETA V NOVI GORICI

EVROPSKA PRAVNA FAKULTETA V NOVI GORICI NOVA UNIVERZA, EVROPSKA PRAVNA FAKULTETA - Delpinova ulica 18b, 5000 Nova Gorica - tel: (05) 338-44-00, fax: (05) 338-44-01 - e-pošta: info@evro-pf.si Informativno mesto: - Referat za študijske zadeve,

Prikaži več

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1,

TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, Verzija 1.1, TRGOVSKI PORTAL SPLETNA APLIKACIJA NAMENJENA TRGOVCEM NAVODILA ZA REGISTRACIJO IN PRIJAVO Ljubljana, 14. 03. 2019 KAZALO 1 Namen...3 2 Registracija...4 3 Vnos gesla in aktivacija računa...6 4 Prijava...7

Prikaži več

Programska sprememba oddelka šole

Programska sprememba oddelka šole Pomoč uporabnikom Programska sprememba oddelka šole -NA-SI-355, V1.0 IZUM, 2018 COBISS, COMARC, COBIB, COLIB, IZUM so zaščitene znamke v lasti javnega zavoda IZUM. KAZALO VSEBINE 1 Navodila... 1 2 Postopek...

Prikaži več

Diapozitiv 1

Diapozitiv 1 REPUBLIKA SLOVENIJA MINISTRSTVO ZA JAVNO UPRAVO Dnevi slovenske informatike 2019 NOVOSTI NA PODROČJU STORTEV ZAUPANJA DRŽAVNEGA CENTRA SI-TRUST Dr. Alenka Žužek Nemec 16. april 2019 e-identitete v Sloveniji

Prikaži več

Microsoft Word - SI_vaja1.doc

Microsoft Word - SI_vaja1.doc Univerza v Ljubljani, Zdravstvena fakulteta Sanitarno inženirstvo Statistika Inštitut za biostatistiko in medicinsko informatiko Š.l. 2011/2012, 3. letnik (1. stopnja), Vaja 1 Naloge 1. del: Opisna statistika

Prikaži več

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc)

(Microsoft Word - MSDN AA Navodila za \232tudente FS.doc) 1. Pogoji uporabe programske opreme Pred uporabo programske opreme iz programa MSDNAA morate prebrati in se strinjati s pogoji in določili Licenčne pogodbe za končnega uporabnika programske opreme MSDN

Prikaži več

PowerPointova predstavitev

PowerPointova predstavitev INTRANET - DETEKTIV Detektivska zbornica Republike Slovenije Pozdravljeni, v kratki predstaviti in navodilih za delo z intranet sistemom Detektiv. Intranet članom Detektivske zbornice RS omogoča, da: -

Prikaži več

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl

Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica nasl Na podlagi 24. in 25. člena Zakona o varstvu osebnih podatkov (Ur. list RS, št. 94/07), sprejema ravnatelj javnega zavoda Dijaški dom Nova Gorica naslednji P RAVILNIK o izvajanju videonadzora I. SPLOŠNE

Prikaži več