You are on page 1of 18

-

: . .
:



` `

, 315
, 318
, 297



2012.
:

: -
:

:
: ()

: . .
:

: , . 315
: , . 318
: , . 297
/: 4/7

: 13.01.2012..

:
( 42)

:
( 12)


:
( 6)

:
( 60)

: /

:
/

~2~

.........................................4
.....................................................4
.........................................4
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 5
...............................................5
...............................................5
...............................................6
.....................................................6
.....................................................6
.....................................................7
..................................8
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 9
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 10
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 11
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 12
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
id_knjige . . . . . . . . . . . . . . . .13
. . . . . . . . . 13
. . . . . . . . . . . . . . . . 13
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 13
. . . . . . . . . . . . . . . . 13
. . . . . . . . . . . . . . . . 13
. . . . . . . . . . 14
. . 14
. .14
. . . . . . . . . . . . . . . . 14
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . 15
. . . . . . . . . . . . . . . . 16
. . . . 16
. . . . . . . . . . 16
( )16
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 17
. . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . 19

~3~


()
.
( ) ,
( ) ,
, .



.
:

:
1. .
2. .
3. .
4. .

:
1. .
2. .
3. .
4. .
5. .
6. .
7. .
8. .


.

.


.
.

~4~
:

1. .
2.


1.
.
2. ,
,
.
3.
.
4.
: 1. , 2.
, 3. .




.
.
.
.
.

,
. , ,
.
.
,
. ,
.

.


. ,
.

~5~
.
,
. ,
.

,
,
.
.


. ,

(, ).


.
.

. .

. ,
.

.


,
.
: .

.

.
. :
1.
,

~6~
2.
,
3.
.

Null.
, .
,
Null. ,
Null, .



, , ,
.
. ,
, ,
.
,
.

.
,
.
,
,
.
.

.
,
,
.


.
, .
.
.
, .
.
.
.
.

~7~
a
, .
.
,
, , ,
,
.

, .
.
, , .
, . Null.
,
. ,

. ,
,
. ,
Null.


Conceptual Data Modeling (CDM)



.
1. .
,
KNJIGE.
AUTORI.
AUTORI_KNJIGE (KNJIGE AUTORI).
() KOLICINA,

IZDATE_KNJIGE.

Autori utori_knjige
njige Kolicina Izdate_knjige
id_knjige id_autori id_knjige
id_knjige id_knjige
datum_izdavanja ime id_autori
naslov kolicina
datum_nabavke datum_vracanja prezime

1.

~8~

Logical Data Modeling (LDM)

,

.
.
2. .
MySQL Workbench .
.
- _ . KNJIGE
, id_knjige , naslov
, Autori_knjige. (Autori_knjige)
id_knjige id_autori
( ). KNJIGE
AUTORI. AUTORI id_autori , ime
, prezime .
KOLICINA IZDATE_KNJIGE. KOLICINA
id_knjige , kolicina
, datum_nabavke . IZDATE_KNJIGE
, id_knjige , datum_izdavanja
, datum_vracanja .

njige Kolicina Izdate_knjige


id_knjige integer id_knjige integer id_knjige integer
naslov varchar (100) kolicina integer datum_izdavanja date
datum_nabavke date datum_vracanja date

utori_knjige Autori
id_knjige integer id_autori integer
id_autori integer ime varchar (45)
prezime varchar (45)

2.

~9~

Physical Data Modeling (PDM)

,
.

MySQL.
3.
. MySQL
Workbench .
.

. KNJIGE. : id_knjige
naslov. Id_knjige integer ,

.
KOLICINA .
KNJIGE.
naslov : varchar 100 .

3.

~ 10 ~
1.
.
SQL -
.

Knjige Autori_knjiga Autori

Naziv Tip Naziv Tip Naziv Tip


Id_knige Integer, auto. Id_knjige (PK) Integer, auto. Id_autori (PK) Integer, auto.
Naslov Text, varchar (100) Id_autori (PK) Integer, auto Ime Text, varchar (45)
Prezime Text, varchar (45)

1.


SQL .

MySQL Workbench- SQL


. SQL
MySQL Workbench -.

CREATE TABLE Knjige


(
id_knjige INTEGER NOT NULL UNSIGNED AUTO_INCREMENT,
naslov VARCHAR (100),
PRIMARY KEY (id_knjige)
);

CREATE TABLE Autori_knjige


(
id_knjige INTEGER NOT NULL UNSIGNED,
id_autori INTEGER NOT NULL UNSIGNED,
PRIMARY KEY (id_knjige, id_ autori)
);

CREATE TABLE Kolicina


(
id_knjige INTEGER NOT NULL UNSIGNED AUTO_INCREMENT,
kolicina INTEGER,
datum_nabavke DATE,
PRIMARY KEY (id_knjige)
);

CREATE TABLE Izdate_knjige


(
id_knjige INTEGER NOT NULL UNSIGNED AUTO_INCREMENT,
datum_izdavanja DATE,
datum_vracanja DATE,

~ 11 ~
PRIMARY KEY (id_knjige)
);

CREATE TABLE Autori


(
id_knjige INTEGER NOT NULL UNSIGNED AUTO_INCREMENT,
ime VARCHAR (45),
prezime VARCHAR (45),
PRIMARY KEY (id_autori)
);


, , , .

,
.
.

1) ( )

SELECT * FROM Knjige WHERE naslov LIKE 'naslov%' ORDER BY naslov ASC;

2) ( )

- SELECT * FROM Autori WHERE ime = 'neko ime'


AND prezime = 'neko prezime'
ORTHER BY ime, prezime ASC;

- SELECT Knjige.naslov, Autori.ime, Autori.prezime


FROM Autori, Autori_knjige, Knjige
WHERE Autori.id_autori = Autori_knjige.id_autori
AND Autori_knjige.id_autori = Knjige.id_knjige
AND Autori.ime = 'neko ime'
AND Autori.prezime = 'neko prezime'
ORTHER BY Autori.ime ASC;

3)

SELECT SUM (id_knjige) AS brojknjiga FROM Kolicina;

4) id_knjige

SELECT id_knjige SUM Kolicina AS primeraka FROM Kolicina


GROUP BY id_knjige
ORTHER BY id_knjige ASC;

5) ( )

~ 12 ~
- SELECT SUM (id_knjige) AS brizdatprimeraka
FROM Izdate_knjige
WHERE datum_vracanja IS NULL;
- SELECT knjige.naslov AS naslovknjige
FROM Izdate_knjige, Knjige
WHERE Izdate_knjige.datum_vracanja IS NULL
AND Izdate_knjige.id_knjige = Knjige.id_knjige;

6) ( )

SELECT Knjige.naslov, Izdate_knjige.datum_vracanja


FROM Izdate_knjige, Knjige
WHERE Izdate_knjige.id_knjige = Knjige.id_knjige
AND Izdate_knjige.datum_vracanja IS NULL
AND Knjige.naslov = 'naslov';

1)

CREATE VIEW v_knjige1 AS


SELECT naslov FROM Knjige ORDER BY naslov ASC;

2) (
)

- CREATE VIEW v_knjige2


SELECT ime, prezime FROM Autori ORDER BY prezime ASC;
- CREATE VIEW v_knjige3
SELECT ime, prezime, naslov
FROM Autori, Knjige
WHERE Autori.id_autori = Autori_knjige.id_autori
AND Autori_knjige.id_knjige = knjige.id_knjige
ORDER BY Autori.prezime ASC;

3)

CREATE VIEW v_brknjiga AS


SELECT SUM (id_knjige) FROM Kolicina;

4)

CREATE VIEW v_brprimerak AS


SELECT SUM (id_knjige) FROM Kolicina
ORTHER BY id_knjige ASC;

5)

~ 13 ~
- CREATE VIEW v_izdknjige1 AS
SELECT SUM (id_knjige) FROM Izdate_knjige
WHERE datum_vracanja IS NULL;

- CREATE VIEW v_izdknjige2 AS


SELECT naslov, datum_vracanja
FROM Knjige, Izdate_knjige
WHERE datum_vracanja IS NULL
AND Izdate_knjige.id_knjige = Knjige.id_knjige;

6)

CREATE VIEW v_oizdknjizi AS


SELECT Knjige.naslov, Izdate_knjige.datum_vracanja
FROM Izdate_knjige, Knjige
WHERE Izdate_knjige.id_knjige = Knjige.id_knjige
AND Izdate_knjige.datum_vracanja IS NULL
AND Knjige.naslov = 'naziv';

1)

DELIMITER //
CREATE PROCEDURE p_knjige1
(IN in_naslov VARCHAR(100))
BEGIN
SELECT * FROM v_knjige1
WHERE naslov LIKE in_naslov
ORDER BY in_naslov ASC;
END;
// DELIMITER ;

2)
- DELIMITER //
CREATE PROCEDURE p_knjige2
(IN in_ime VARCHAR (45), in_prezime VARCHAR(45))
BEGIN
SELECT * FROM v_knjige2
WHERE ime LIKE in_ime, prezime LIKE in_prezime
ORDER BY in_prezime ASC;
END;
// DELIMITER ;

- DELIMITER //

~ 14 ~
CREATE PROCEDURE p_knjige3
(IN in_ime VARCHAR (45), in_prezime VARCHAR (45))
BEGIN
SELECT * FROM v_knjige3
WHERE ime LIKE in_ime, prezime LIKE in_prezime
AND Autori.id_autori = Autori_knjige.id_autori
AND Autori_knjige.id_knjige = knjige.id_knjige
ORDER BY in_prezime ASC;
END;
// DELIMITER ;

3)

DELIMITER //
CREATE PROCEDURE p_brojknjiga
(IN in_kolicina INTEGER)
BEGIN
SELECT * FROM v_brojknjiga
WHERE kolicina LIKE in_kolicina
AND SUM (id_knjige)
END;
// DELIMITER ;

4)

DELIMITER //
CREATE PROCEDURE p_brojprimeraka
(IN in_kolicina INTEGER)
BEGIN
SELECT * FROM v_brojprimeraka SUM (id_knjige)
WHERE kolicina LIKE in_kolicina
ORDER BY id_knjige ASC;
END;
// DELIMITER ;

5)

DELIMITER //
CREATE PROCEDURE p_izdknjige1
(IN in_datum_vracanja DATE)
BEGIN
SELECT * FROM v_izdknjige1 SUM (id_knjige)
WHERE datum_vracanja LIKE in_datum_vracanja
AND in_datum_vracanja IS NULL;
END;
// DELIMITER ;

6)

~ 15 ~
DELIMITER //
CREATE PROCEDURE p_oizdknjizi
(IN in_datum_vracanja DATE, in_naslov VARCHAR)
BEGIN
SELECT * FROM v_oizdknjizi
WHERE datum_vracanja LIKE in_datum_vracanja
AND in_datum_vracanja IS NULL;
AND Izdate_knjige.id_knjige = Knjige.id_knjige
AND Knjige.naslov = 'naziv%';
END;
// DELIMITER ;


MySQL Workbnch .
.

Knjige Autori Autori_knjiga


Id_knjige Naslov Id_autori Ime Prezime Id_knjige Id_autori
1 Od zlata jabuka 1 Ivo Andric 1 3
2 Koreni 2 Dobrica Cosic 2 2
3 Vreme smrti 3 Vuk Karadzic 3 2
4 Na Drini cuprija 4 1
5 Prokleta avlija 4 1

knjige .
autori_knjiga knjige autori. autori
.

, .
, ,
,
.

~ 16 ~
v_knjige3
Naslov Prezime Ime
Na Drini cuprija Andric Ivo
Prokleta avlija Andric Ivo
Koreni Cosic Dobrica
Vreme smrti Cosic Dobrica
Od zlata jabuka Karadzic Vuk


select * from view v_knjige3

~ 17 ~

1. http://dev.mysql.com/doc/
2. http://www.tizag.com/
3. http://www.roseindia.net/mysql/mysql5/
4. http://www.mysqltutorial.org/

~ 18 ~

You might also like