Advertisement
Guest User

Untitled

a guest
May 21st, 2018
208
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. -- High Distinction, Autumn 2018
  2. --Created by Zachary Francis, zachary.francis@student.uts.edu.au
  3. --The following is a database which describes Scouts Australia.
  4. --It enables tracking of membership details for individual members including badges earnt and attendance to camps.
  5. --Scout camp, Scout group and Scout Hall details are also tracked within.
  6. --This database was inspired by https://scouts.com.au/
  7. --All information provided is real, except for human details which was populated randomly.
  8.  
  9. DROP table Scout_Halls CASCADE;
  10. DROP table Groups CASCADE;
  11. DROP table Members CASCADE;
  12. DROP table Camps CASCADE;
  13. DROP table Camp_Participants CASCADE;
  14. DROP table Badge_List CASCADE;
  15. DROP table Badges_Earnt CASCADE;
  16. DROP table Patrol_Group CASCADE;
  17.  
  18. Create table Scout_Halls
  19. (
  20.     Location        TEXT,
  21.     Size            integer,
  22.     CONSTRAINT Scout_HallsPK PRIMARY KEY (Location),
  23.     CONSTRAINT di_table_Scout_Halls_Size CHECK
  24.         (Size > 0)
  25. );
  26.  
  27. Create table Groups
  28. (
  29.     GroupID     integer,
  30.     GroupName   TEXT    NOT NULL,
  31.     Location    TEXT,
  32.  
  33.     CONSTRAINT GroupsPK PRIMARY KEY (GroupID),
  34.  
  35.     CONSTRAINT GroupsFK FOREIGN KEY
  36.             (Location) REFERENCES Scout_Halls
  37. );
  38.  
  39. Create table Members
  40. (
  41.     MemberID    integer     NOT NULL,
  42.     Name        TEXT        NOT NULL,
  43.     Gender      TEXT,
  44.     BirthYear   integer     NOT NULL,
  45.     BirthMonth  integer     NOT NULL,
  46.     BirthDay    integer     NOT NULL,
  47.     division    TEXT,
  48.     GroupID     integer,
  49.  
  50.         CONSTRAINT MembersPK PRIMARY KEY (MemberID),
  51.        
  52.         CONSTRAINT MembersFK FOREIGN KEY
  53.             (GroupID) REFERENCES Groups,
  54.  
  55.         CONSTRAINT di_table_Members_MemberID CHECK
  56.                     (MemberID >= 1),
  57.  
  58.         CONSTRAINT di_table_Members_BirthYear CHECK
  59.                     (BirthYear >= 1900 AND BirthYear <= 2018),
  60.  
  61.         CONSTRAINT di_table_Members_BirthMonth CHECK
  62.                     (BirthMonth >= 1 AND BirthMonth <= 12),
  63.  
  64.         CONSTRAINT di_table_Members_BirthDay CHECK
  65.                     (BirthDay >= 1 AND BirthDay <= 31),
  66.  
  67.         CONSTRAINT di_table_Members_division CHECK(division IN(
  68.                     'Joey',
  69.                     'Cub',
  70.                     'Scout',
  71.                     'Venturer',
  72.                     'Rover',
  73.                     'Leader'))
  74. );
  75.  
  76.  
  77. Create table Camps
  78. (
  79.     CampID      integer,
  80.     CampName    TEXT,
  81.     CampDate        DATE,
  82.     CampLocation    TEXT,
  83.  
  84.    CONSTRAINT CampsPK PRIMARY KEY (CampID)
  85. );
  86.  
  87. Create table Camp_Participants
  88. (
  89.     CampID      integer     NOT NULL,
  90.     MemberID    integer     NOT NULL,
  91.  
  92.   CONSTRAINT Camp_ParticipantsPK PRIMARY KEY (CampID,MemberID),
  93.  
  94.   CONSTRAINT Camp_ParticipantsFK FOREIGN KEY
  95.             (CampID) REFERENCES Camps,
  96.  
  97.   CONSTRAINT Camp_ParticipantsFK2 FOREIGN KEY
  98.             (MemberID) REFERENCES Members
  99. );
  100.  
  101. Create table Badge_List
  102. (
  103.     BadgeID     integer,
  104.     BadgeName   TEXT,
  105.    
  106.     CONSTRAINT Badge_ListPK PRIMARY KEY (BadgeID)    
  107. );
  108.  
  109. Create table Badges_Earnt
  110. (
  111.     BadgeID     integer     NOT NULL,
  112.     MemberID    integer     NOT NULL,
  113.    
  114.     CONSTRAINT Badges_EarntPK PRIMARY KEY (BadgeID, MemberID),
  115.    
  116.     CONSTRAINT Badges_EarntFK FOREIGN KEY
  117.                 (BadgeID) REFERENCES Badge_List,
  118.                
  119.     CONSTRAINT Badges_EarntFK2 FOREIGN KEY
  120.                 (MemberID) REFERENCES Members
  121. );
  122.  
  123. Create table Patrol_Group
  124. (
  125.     MemberIDA   integer     NOT NULL,
  126.     MemberIDB   integer     NOT NULL,
  127.     Patrol_Name TEXT        NOT NULL,
  128.  
  129.     CONSTRAINT Patrol_GroupPK PRIMARY KEY (MemberIDA, MemberIDB),
  130.    
  131.     CONSTRAINT Patrol_GroupFK FOREIGN KEY
  132.                 (MemberIDA) REFERENCES Members(MemberID),
  133.     CONSTRAINT Patrol_GroupFK2 FOREIGN KEY
  134.                 (MemberIDB) REFERENCES Members(MemberID)
  135. );
  136.  
  137. INSERT INTO Scout_Halls VALUES('Panorama Parade, Berkeley Vale NSW 2261', 100);
  138. INSERT INTO Scout_Halls VALUES('Baden Powell Park, Nirvana St, Long Jetty NSW 2261', 90);
  139. INSERT INTO Scout_Halls VALUES('145 Maidens Brush Rd, Wyoming NSW 2250', 140);
  140. INSERT INTO Scout_Halls VALUES('Willoughby Rd & Terrigal Drive, Terrigal NSW 2260', 122);
  141. INSERT INTO Scout_Halls VALUES('Levitt St, Wyong NSW 2259', 70);
  142. INSERT INTO Scout_Halls VALUES('5 Centenary Dr, Mosman NSW 2088', 170);
  143. INSERT INTO Scout_Halls VALUES('Adelaide St, Tumbi Umbi NSW 2261', 165);
  144. INSERT INTO Scout_Halls VALUES('3C Avenue Rd, Mosman NSW 2088', 125);
  145.  
  146.  
  147. INSERT INTO Groups VALUES(1,'1st Berkeley Vale Scout Group','Panorama Parade, Berkeley Vale NSW 2261');
  148. INSERT INTO Groups VALUES(2,'1st Tumbi Scout Group','Adelaide St, Tumbi Umbi NSW 2261');
  149. INSERT INTO Groups VALUES(3,'1st Tuggerah Lakes Scouts','Baden Powell Park, Nirvana St, Long Jetty NSW 2261');
  150. INSERT INTO Groups VALUES(4,'2nd Tuggerah Lakes Sea Scouts','Baden Powell Park, Nirvana St, Long Jetty NSW 2261');
  151. INSERT INTO Groups VALUES(5,'1st Wyong Scout Group','Levitt St, Wyong NSW 2259');
  152. INSERT INTO Groups VALUES(6,'Wyoming Scouts','145 Maidens Brush Rd, Wyoming NSW 2250');
  153. INSERT INTO Groups VALUES(7,'1st Mosman Scout Group','3C Avenue Rd, Mosman NSW 2088');
  154. INSERT INTO Groups VALUES(8,'3rd Mosman Sea Scouts','5 Centenary Dr, Mosman NSW 2088');
  155.  
  156.  
  157. INSERT INTO Members VALUES(1,'Austin Irwin','Male',1990,2,7,'Leader',1);
  158. INSERT INTO Members VALUES(2,'Debbie Silvester','Female',2009,3,,'Cub',1);
  159. INSERT INTO Members VALUES(3,'Horace Monette','Male',2010,7,30,'Cub',1);
  160. INSERT INTO Members VALUES(4,'Hector Deschamps','Male',2009,6,24,'Cub',1);
  161. INSERT INTO Members VALUES(5,'Newt Bryce','Male',2009,10,26,'Cub',1);
  162. INSERT INTO Members VALUES(6,'Bentley Pearce','Male',2009,3,13,'Cub',1);
  163. INSERT INTO Members VALUES(7,'Kelly Maynard','Female',2011,1,5,'Cub',1);
  164. INSERT INTO Members VALUES(8,'Clarinda Garrett','Female',2005,10,4,'Scout',1);
  165. INSERT INTO Members VALUES(9,'Blaine Howland','Male',2006,2,3,'Scout',1);
  166. INSERT INTO Members VALUES(10,'Erma Whittle','Female',2006,4,8,'Scout',1);
  167. INSERT INTO Members VALUES(11,'Imogen Huff','Female',2004,7,28,'Scout',1);
  168. INSERT INTO Members VALUES(12,'Libby Ansel','Female',2004,9,25,'Scout',1);
  169. INSERT INTO Members VALUES(13,'Rebecca Parish','Female',2005,12,1,'Scout',1);
  170. INSERT INTO Members VALUES(14,'Chadwick Ross','Male',2007,2,21,'Scout',1);
  171. INSERT INTO Members VALUES(15,'Millie Roy','Female',2007,3,26,'Scout',1);
  172. INSERT INTO Members VALUES(16,'Estella Fabron','Female',2006,1,4,'Scout',1);
  173. INSERT INTO Members VALUES(17,'Quinton Garrard','Male',1974,4,27,'Leader',1);
  174. INSERT INTO Members VALUES(18,'Tristan Edison','Male',1969,7,18,'Leader',2);
  175. INSERT INTO Members VALUES(19,'Jeannie Morris','Female',1947,3,17,'Leader',3);
  176. INSERT INTO Members VALUES(20,'Phillip Eaton','Male',1975,5,8,'Leader',4);
  177. INSERT INTO Members VALUES(21,'Katey Bonney','Female',1994,1,5,'Leader',5);
  178. INSERT INTO Members VALUES(22,'Prosper Bourdillon','Male',1991,8,8,'Leader',6);
  179. INSERT INTO Members VALUES(23,'Colleen Durant','Female',1958,6,7,'Leader',7);
  180. INSERT INTO Members VALUES(24,'Richard Evered','Male',1959,11,30,'Leader',8);
  181.  
  182.  
  183.  
  184.  
  185. INSERT INTO Camps VALUES(1, 'Jamboree 2018', 2018-09-30, 'Newington Armory, Sydney Olympic Park');
  186. INSERT INTO Camps VALUES(2, 'Beginners Abseiling', 2018-07-13, 'Heaton - Watagan State Forest');
  187.  
  188.  
  189. INSERT INTO Camp_Participants VALUES(1,1);
  190. INSERT INTO Camp_Participants VALUES(2,1);
  191. INSERT INTO Camp_Participants VALUES(3,1);
  192. INSERT INTO Camp_Participants VALUES(4,1);
  193. INSERT INTO Camp_Participants VALUES(5,1);
  194. INSERT INTO Camp_Participants VALUES(20,1);
  195. INSERT INTO Camp_Participants VALUES(9,1);
  196. INSERT INTO Camp_Participants VALUES(10,1);
  197. INSERT INTO Camp_Participants VALUES(11,1);
  198. INSERT INTO Camp_Participants VALUES(12,1);
  199. INSERT INTO Camp_Participants VALUES(14,1);
  200.  
  201.  
  202. INSERT INTO Badge_List VALUES(1,'Outdoors');
  203. INSERT INTO Badge_List VALUES(2,'Initiative');
  204. INSERT INTO Badge_List VALUES(3,'Leadership');
  205. INSERT INTO Badge_List VALUES(4,'Environment');
  206. INSERT INTO Badge_List VALUES(5,'Expedition');
  207. INSERT INTO Badge_List VALUES(6,'Citizenship');
  208. INSERT INTO Badge_List VALUES(7,'Expressions');
  209.  
  210.  
  211. INSERT INTO Badges_Earnt VALUES(1,2);
  212. INSERT INTO Badges_Earnt VALUES(4,2);
  213. INSERT INTO Badges_Earnt VALUES(5,2);
  214. INSERT INTO Badges_Earnt VALUES(6,2);
  215. INSERT INTO Badges_Earnt VALUES(7,2);
  216.  
  217.  
  218. INSERT INTO Patrol_Group VALUES(2,2,'Eagle');
  219. INSERT INTO Patrol_Group VALUES(2,3,'Eagle');
  220. INSERT INTO Patrol_Group VALUES(2,4,'Eagle');
  221. INSERT INTO Patrol_Group VALUES(2,5,'Eagle');
  222. INSERT INTO Patrol_Group VALUES(2,6,'Eagle');
  223. INSERT INTO Patrol_Group VALUES(8,8,'Emu');
  224. INSERT INTO Patrol_Group VALUES(8,9,'Emu');
  225. INSERT INTO Patrol_Group VALUES(8,10,'Emu');
  226. INSERT INTO Patrol_Group VALUES(8,11,'Emu');
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement