Kreiranje i podesavanje MySQL baze za testiranje


  Da bismo mogli vrsiti planirano testiranje odredjenih mogucnosti MySQL-a, potrebno je prvo kreirati i podesiti jednu bazu za testiranje. Preduslov je da imate instaliran MySQL na vasem racunaru ili da imate pristup MySQL-u na nekom serveru.
Ukoliko niste instalirali MySQL, pogledajte prvo ovaj tutorijal » MySQL 5.1.7. instalacija .

Za testiranje cemo koristiti jedan jednostavan real-life primjer online prodavnice (webshop), koji se sastoji od nekoliko tabela: kategorije (proizvoda/artikala), artikli (proizvodi), korpe (u korpama se nalaze pojedinacne narudzbe musterije), narudzbe i musterije.
  1. Podaci o testnoj bazi i korisniku
  2. Kreiranje baze
  3. Unos potrebnih podataka za testiranje

1. Podaci o testnoj bazi i korisniku

  Naziv servera: localhost
  Naziv baze: testDB
  Korisnicko ime: testUser
  Korisnicka lozinka: testPass

2. Kreiranje baze

  Otvorite komandni prompt i spojite se kao root:
D:\Documents and Settings\Dejan.Topalovic>mysql -u root -p
Enter password: *****
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1 to server version: 5.1.7-beta-max-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


  Kreirajte bazu za testiranje i pripadajuceg korisnika:
mysql> CREATE DATABASE IF NOT EXISTS testDB
    -> DEFAULT CHARACTER SET utf8
    -> DEFAULT COLLATE utf8_general_ci;
Query OK, 1 row affected (0.02 sec)


mysql> GRANT ALL ON testDB.* TO 'testUser'@'%' IDENTIFIED BY 'testPass';
Query OK, 0 rows affected (0.02 sec)


mysql> FLUSH PRIVILEGES;
Query OK, 0 rows affected (0.01 sec)

mysql>


  Otvorite novi komandni prompt i spojite se sa testnim korisnickom imenom i lozinkom:
D:\Documents and Settings\Dejan.Topalovic>mysql -u testUser -p
Enter password: ********
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 2 to server version: 5.1.7-beta-max-log

Type 'help;' or '\h' for help. Type '\c' to clear the buffer.

mysql>


  Kreirajte potrebne tabele (ako vam se ne da prepisivati slovo po slovo, pripremio sam gotovu "create table" skriptu za kreiranje tabela):
mysql> CREATE TABLE IF NOT EXISTS kategorije (
    -> id MEDIUMINT(8) UNSIGNED NOT NULL AUTO_INCREMENT,
    -> kategorija VARCHAR(50),
    -> opis VARCHAR(255),
    -> PRIMARY KEY(id))
    -> CHARACTER SET utf8
    -> COLLATE utf8_general_ci
    -> ENGINE=InnoDB;
Query OK, 0 rows affected (0.13 sec)

mysql> CREATE TABLE IF NOT EXISTS artikli (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> naziv VARCHAR(50),
    -> cijena DOUBLE(10,2) UNSIGNED,
    -> kategorija_id MEDIUMINT(8) UNSIGNED NOT NULL,
    -> PRIMARY KEY(id),
    -> INDEX (kategorija_id),
    -> FOREIGN KEY(kategorija_id) REFERENCES kategorije(id)
    -> ON DELETE RESTRICT)
    -> CHARACTER SET utf8
    -> COLLATE utf8_general_ci
    -> ENGINE=InnoDB;
Query OK, 0 rows affected (0.10 sec)

mysql> CREATE TABLE IF NOT EXISTS musterije (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> ime VARCHAR(50),
    -> prezime VARCHAR(100),
    -> email VARCHAR(100),
    -> adresa VARCHAR(255),
    -> grad VARCHAR(100),
    -> drzava VARCHAR(100),
    -> PRIMARY KEY(id),
    -> INDEX USING BTREE (ime),
    -> INDEX USING BTREE (prezime),
    -> UNIQUE INDEX USING BTREE (email))
    -> CHARACTER SET utf8
    -> COLLATE utf8_general_ci
    -> ENGINE=InnoDB;
Query OK, 0 rows affected (0.11 sec)

mysql> CREATE TABLE IF NOT EXISTS korpe (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> musterija_id INT UNSIGNED,
    -> PRIMARY KEY(id),
    -> INDEX (musterija_id),
    -> FOREIGN KEY (musterija_id) REFERENCES musterije(id)
    -> ON DELETE CASCADE)
    -> ENGINE=InnoDB;
Query OK, 0 rows affected (0.12 sec)

mysql> CREATE TABLE IF NOT EXISTS narudzbe (
    -> id INT UNSIGNED NOT NULL AUTO_INCREMENT,
    -> artikl_id INT UNSIGNED,
    -> korpa_id INT UNSIGNED,
    -> kolicina MEDIUMINT UNSIGNED,
    -> PRIMARY KEY(id),
    -> INDEX (artikl_id),
    -> INDEX (korpa_id),
    -> FOREIGN KEY (artikl_id) REFERENCES artikli(id)
    -> ON DELETE CASCADE,
    -> FOREIGN KEY (korpa_id) REFERENCES korpe (id)
    -> ON DELETE CASCADE)
    -> ENGINE=InnoDB;
Query OK, 0 rows affected (0.15 sec)

3. Unos potrebnih podataka za testiranje

  Za testiranje su nam potrebni i neki podaci u tabelama, a ja sam pripremio jednu "insert skriptu" za popunjavanje tabela: kategorije, artikli i musterije.
  Podatke mozete unijeti rucno (ukoliko ste mazohisti) ili mozete kao i ja koristiti npr. MySQL Query Browser, odnosno phpMyAdmin. Ako MySQL Query Browser nemate vec instaliran, onda skinite sa prilozene adrese i instalirajte. Proces instalacije nije potrebno objasnjavati, jer se sastoji od samo nekoliko klikova misem. :)

  Ako nemate iskustva sa MySQL Query Browserom, objasnicu vam kako da podesite konekciju sa testnom bazom i da izvrsite "insert script".

   3.1. Dodavanje konekcije
  Pokrenite MySQL Query Browser i odaberite "Tools" -> "Manage Connections...". Nakon sto se otvori prozor (dialog-window) za dodavanje konekcije, selektujte "Connections" i kliknite na "Add new Connection". Unesite potrebne podatke za testnu bazu i korisnika. Kada ste gotovi, kliknite na "Apply".

  Ukoliko zelite podesiti neke dodatne parametre za konekciju, kliknite na karticu (tab) "Advanced Parameters" i dodajte zeljene parametre, npr. parametar NAMES sa vrijednoscu 'UTF8'. Na kraju kliknite opet na "Apply".

  Kada ste gotovi sa dodavanjem konekcije, kliknite na "Close".


3.2. Spajanje pomocu podesene konekcije

  Da biste se spojili na MySQL server pomocu upravo podesene konekcije, kliknite na "File" -> "New Instance Connection..." , potom odaberite konekciju, koju ste upravo podesili i kliknite na "OK".


3.3. Izvrsavanje "insert skripte" (Execute insert script)

  Da biste izvrsili neku skriptu, kliknite na "File" -> "Open Script...", potom u dialog prozoru odaberite datoteku, koja sadrzi potrebne SQL izraze (u ovom slucaju INSERT) i kliknite na "Open".



Nakon sto ste otvorili "insert script", kliknite u gornjem desnom cosku na "Continue" (Execute the script and stops on errors) ili na "Execute" (Execute the script).
Da biste provjerili jesu li podaci ispravno uneseni, izlistajte sve podatke iz svake tabele.


Ukoliko je sve proslo bez problema, baza bi trebala biti spremna za testiranje.


Nazad na MySQL stranicuNazad na glavnu stranicu