uraharadono

DBMS II parc vjezbe

Sep 6th, 2015
195
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. --1.    Kreirati bazu podataka pod nazivom: BrojDosijea (npr. 2046) bez posebnog kreiranja data i log fajla.
  2. CREATE DATABASE [3020]
  3. ON PRIMARY
  4. (NAME='3020',FILENAME='D:\DBMS_Data\3020.mdf')
  5. GO
  6.  
  7. --2.    U Vašoj bazi podataka kreirati tabele sa sljedećim parametrima:
  8. --•   Studenti
  9. --•   StudentID, automatski generator vrijednosti i primarni ključ
  10. --•   BrojDosijea, polje za unos 10 UNICODE karaktera (obavezan unos), jedinstvena vrijednost
  11. --•   Ime, polje za unos 35 UNICODE karaktera (obavezan unos)
  12. --•   Prezime, polje za unos 35 UNICODE karaktera (obavezan unos)
  13. --•   Godina studija, polje za unos cijelog broja (obavezan unos)
  14. --•   NacinStudiranja, polje za unos 10 UNICODE karaktera (obavezan unos) DEFAULT je Redovan
  15. --•   Email, polje za unos 50 karaktera (nije obavezan)  
  16. --•   Nastava
  17. --•   NastavaID, automatski generator vrijednosti i primarni ključ
  18. --•   Datum, polje za unos datuma i vremana (obavezan unos)
  19. --•   Predmet, polje za unos 20 UNICODE karaktera (obavezan unos)
  20. --•   Nastavnik, polje za unos 50 UNICODE karaktera (obavezan unos)
  21. --•   Ucionica, polje za unos 20 UNICODE karaktera (obavezan unos)
  22. --•   Prisustvo
  23. --•   PrisustvoID, automatski generator vrijednosti i primarni ključ
  24. --•   StudentID, spoljni ključ prema tabeli Studenti
  25. --•   NastavaID, spoljni ključ prema tabeli Nastava
  26. USE [3020]
  27. CREATE TABLE Studenti
  28. (StudentID INT IDENTITY(1,1) PRIMARY KEY,
  29. BrojDosijea NVARCHAR(10) NOT NULL UNIQUE,
  30. Ime NVARCHAR(35) NOT NULL,
  31. Prezime NVARCHAR(35) NOT NULL,
  32. GodinaStudija INT NOT NULL,
  33. NacinStudiranja NVARCHAR(10) NOT NULL DEFAULT 'Redovan',
  34. Email VARCHAR(50)
  35. )
  36. GO
  37. CREATE TABLE Nastava
  38. (NastavaID INT IDENTITY(1,1) PRIMARY KEY,
  39. Datum DATETIME NOT NULL,
  40. Predmet NVARCHAR(20) NOT NULL,
  41. Nastavnik NVARCHAR(50) NOT NULL,
  42. Ucionica NVARCHAR(20) NOT NULL,
  43. )
  44. GO
  45. CREATE TABLE Prisustvo
  46. (PrisustvoID INT IDENTITY(1,1) PRIMARY KEY,
  47. StudentID INT FOREIGN KEY (StudentID) REFERENCES Studenti(StudentID),
  48. NastavaID INT FOREIGN KEY (NastavaID) REFERENCES Nastava(NastavaID)
  49. )
  50. GO
  51.  
  52. --3.    Kreirati tabelu Predmeti sa sljedećim parametrima:
  53. --•   PredmetID, automatski generator vrijednosti i primarni ključ
  54. --•   Naziv, polje za unos 30 UNICODE karaktera (obavezan unos), jedinstvena vrijednost
  55. --Modifikovati tabelu Nastava (ukloniti kolonu Predmet) i povezati je sa tabelom Predmeti. Koristeći INSERT komandu u tabelu Predmeti unijeti tri zapisa.
  56. CREATE TABLE Predmeti
  57. (PredmetID INT IDENTITY(1,1) PRIMARY KEY,
  58. Naziv NVARCHAR(30) UNIQUE
  59. )
  60. GO
  61.  
  62. ALTER TABLE Nastava
  63. DROP COLUMN Predmet
  64. GO
  65.  
  66. ALTER TABLE Nastava
  67. ADD PredmetID INT FOREIGN KEY (PredmetID) REFERENCES Predmeti(PredmetID)
  68. GO
  69.  
  70. INSERT INTO Predmeti
  71. VALUES ('Reporting'),
  72. ('Sociologija'),
  73. ('Komunikacijske tehnologije')
  74.  
  75. --4.    Koristeći bazu podataka AdventureWorksLT2012 i tabelu SalesLT.Customer, preko INSERT i SELECT komande importovati 10 zapisa u tabelu Studenti i to sljedeće kolone:
  76. --•   Prva tri karaktera kolone Phone -> BrojDosijea
  77. --•   FirstName -> Ime
  78. --•   LastName -> Prezime
  79. --•   2 -> GodinaStudija
  80. --•   DEFAULT -> NacinStudiranja
  81. --•   EmailAddress -> Email
  82. USE AdventureWorksLT2012
  83. INSERT INTO [3020].dbo.Studenti(BrojDosijea,Ime,Prezime,GodinaStudija,Email)
  84. SELECT TOP 10 LEFT(Phone,3),FirstName,LastName,2,EmailAddress
  85. FROM SalesLT.Customer
  86. GO
  87.  
  88. USE [3020]
  89. SELECT *
  90. FROM Studenti
  91. GO
  92.  
  93. --5.    U Vašoj bazi podataka kreirajte stored proceduru koja će na osnovu proslijeđenih parametara raditi izmjenu (UPDATE) podataka u tabeli Studenti. Proceduru pohranite pod nazivom usp_Studenti_Update.
  94. --Koristeći prethodno kreiranu proceduru izmijenite jedan zapis sa Vašim podacima.
  95. CREATE PROCEDURE usp_Studenti_Update
  96. @StudentID INT,
  97. @BrojDosijea NVARCHAR(10),
  98. @Ime NVARCHAR(35),
  99. @Prezime NVARCHAR(35),
  100. @GodinaStudija INT,
  101. @NacinStudiranja NVARCHAR(10),
  102. @Email VARCHAR(50)
  103. AS
  104. UPDATE Studenti
  105. SET BrojDosijea=@BrojDosijea, Ime=@Ime,Prezime=@Prezime,GodinaStudija=@GodinaStudija,NacinStudiranja=@NacinStudiranja,Email=@Email
  106. WHERE StudentID=@StudentID
  107. GO
  108.  
  109. SELECT *
  110. FROM Studenti
  111. GO
  112. SELECT *
  113. FROM Predmeti
  114. GO
  115. SELECT *
  116. FROM Nastava
  117. GO
  118. SELECT *
  119. FROM Prisustvo
  120. GO
  121.  
  122. EXEC usp_Studenti_Update 2,666,Mike,Smith,2,'Redovan','mike@aol.ba'
  123. GO
  124. --6.    U Vašoj bazi podataka kreirajte stored proceduru koja će raditi INSERT podataka u tabelu Nastava. Podaci se moraju unijeti preko parametara.
  125. --Također, u istoj proceduri dodati prisustvo na nastavi (koristeći INSERT SELECT komandu dodati prisustvo sve studente za prethodno dodanu nastavu). Proceduru pohranite pod nazivom usp_Nastava_Insert.
  126. CREATE PROCEDURE usp_Nastava_Insert
  127. @Datum DATETIME,
  128. @Nastavnik NVARCHAR(50),
  129. @Ucionica NVARCHAR(20),
  130. @PredmetID INT
  131. AS
  132. BEGIN
  133. INSERT INTO Nastava(Datum,Nastavnik,Ucionica,PredmetID)
  134. VALUES(@Datum,@Nastavnik,@Ucionica,@PredmetID)
  135. INSERT INTO Prisustvo
  136. SELECT StudentID,@@IDENTITY
  137. FROM Studenti
  138. END
  139. GO
  140.  
  141. EXEC usp_Nastava_Insert '6/27/2014',Sejfudin,AMF,2
  142. GO
  143.  
  144. --7.    Koristeći proceduru koju ste kreirali u prethodnom zadatku dodati novu nastavu. Za parametar @Datum proslijediti trenutni datum i vrijeme, a ostale parametre upisati ručno.
  145. DECLARE @sad DATETIME
  146. SET @sad=GETDATE()
  147. EXEC usp_Nastava_Insert @sad,Sejfudin,AMF,2
  148. GO
  149.  
  150. --8.    U Vašoj bazi podataka kreirajte stored proceduru koja ća na osnovu proslijeđenih parametara (@NastavaID i @StudentID) brisati prisustvo na nastavi. Proceduru pohranite pod nazivom usp_Prisustvo_Delete.
  151. CREATE PROCEDURE usp_Prisustvo_Delete
  152. @StudentID INT,
  153. @NastavaID INT
  154. AS
  155. DELETE FROM Prisustvo
  156. WHERE NastavaID=@NastavaID AND StudentID=@StudentID
  157. GO
  158. EXEC usp_Prisustvo_Delete 2,8
  159. GO
  160.  
  161. --9.    U Vašoj bazi podataka kreirajte view koji će sadržavati sljedeća polja: broj dosijea, ime i prezime studenta, datum nastave, učionicu, nastavnika i predmet. View pohranite pod nazivom view_Studenti_Nastava.
  162. CREATE VIEW view_Studenti_Nastava
  163. AS
  164. SELECT BrojDosijea'Broj dosijea',Ime,Prezime,Nastava.Datum,Nastava.Ucionica,Nastava.Nastavnik,Predmeti.Naziv
  165. FROM Studenti JOIN Prisustvo
  166. ON Studenti.StudentID=Prisustvo.PrisustvoID JOIN Nastava
  167. ON Nastava.NastavaID=Prisustvo.NastavaID JOIN Predmeti
  168. ON Predmeti.PredmetID=Nastava.PredmetID
  169. GO
  170.  
  171. SELECT *
  172. FROM view_Studenti_Nastava
Add Comment
Please, Sign In to add comment