source: xssim/branches/tpiontek/db/example/schema.sql @ 104

Revision 104, 17.7 KB checked in by wojtekp, 13 years ago (diff)
Line 
1SET @OLD_UNIQUE_CHECKS=@@UNIQUE_CHECKS, UNIQUE_CHECKS=0;
2SET @OLD_FOREIGN_KEY_CHECKS=@@FOREIGN_KEY_CHECKS, FOREIGN_KEY_CHECKS=0;
3SET @OLD_SQL_MODE=@@SQL_MODE, SQL_MODE='TRADITIONAL';
4
5DROP SCHEMA IF EXISTS `gssim_results` ;
6CREATE SCHEMA IF NOT EXISTS `gssim_results` DEFAULT CHARACTER SET latin1 ;
7USE `gssim_results` ;
8
9-- -----------------------------------------------------
10-- Table `gssim_results`.`user`
11-- -----------------------------------------------------
12DROP TABLE IF EXISTS `gssim_results`.`user` ;
13
14CREATE  TABLE IF NOT EXISTS `gssim_results`.`user` (
15  `id` INT NOT NULL AUTO_INCREMENT ,
16  `dn` VARCHAR(60) NULL ,
17  PRIMARY KEY (`id`) )
18ENGINE = InnoDB;
19
20
21-- -----------------------------------------------------
22-- Table `gssim_results`.`configuration`
23-- -----------------------------------------------------
24DROP TABLE IF EXISTS `gssim_results`.`configuration` ;
25
26CREATE  TABLE IF NOT EXISTS `gssim_results`.`configuration` (
27  `id` INT NOT NULL AUTO_INCREMENT ,
28  PRIMARY KEY (`id`) )
29ENGINE = InnoDB;
30
31
32-- -----------------------------------------------------
33-- Table `gssim_results`.`metaexperiment`
34-- -----------------------------------------------------
35DROP TABLE IF EXISTS `gssim_results`.`metaexperiment` ;
36
37CREATE  TABLE IF NOT EXISTS `gssim_results`.`metaexperiment` (
38  `id` INT NOT NULL AUTO_INCREMENT ,
39  `name` VARCHAR(45) NOT NULL ,
40  `description` VARCHAR(511) NULL ,
41  PRIMARY KEY (`id`) )
42ENGINE = InnoDB;
43
44
45-- -----------------------------------------------------
46-- Table `gssim_results`.`experiment`
47-- -----------------------------------------------------
48DROP TABLE IF EXISTS `gssim_results`.`experiment` ;
49
50CREATE  TABLE IF NOT EXISTS `gssim_results`.`experiment` (
51  `PK` INT NOT NULL AUTO_INCREMENT ,
52  `user_id` INT NOT NULL ,
53  `config_id` INT NOT NULL ,
54  `commission_date` DATETIME NULL COMMENT 'decide whether experiment results can be available to the public or should remain private.' ,
55  `name` VARCHAR(45) NULL COMMENT 'Current experiment status in text and/or percent of performed job.' ,
56  `description` VARCHAR(45) NULL ,
57  `status` VARCHAR(45) NULL ,
58  `metaexp_id` INT NULL ,
59  PRIMARY KEY (`PK`) ,
60  CONSTRAINT `fk_exp_user`
61    FOREIGN KEY (`user_id` )
62    REFERENCES `gssim_results`.`user` (`id` )
63    ON DELETE CASCADE
64    ON UPDATE NO ACTION,
65  CONSTRAINT `fk_exp_config`
66    FOREIGN KEY (`config_id` )
67    REFERENCES `gssim_results`.`configuration` (`id` )
68    ON DELETE CASCADE
69    ON UPDATE NO ACTION,
70  CONSTRAINT `fk_metaexp`
71    FOREIGN KEY (`metaexp_id` )
72    REFERENCES `gssim_results`.`metaexperiment` (`id` )
73    ON DELETE CASCADE
74    ON UPDATE NO ACTION)
75ENGINE = InnoDB;
76
77CREATE INDEX `fk_exp_user` ON `gssim_results`.`experiment` (`user_id` ASC) ;
78
79CREATE INDEX `fk_exp_config` ON `gssim_results`.`experiment` (`config_id` ASC) ;
80
81CREATE INDEX `fk_metaexp` ON `gssim_results`.`experiment` (`metaexp_id` ASC) ;
82
83
84-- -----------------------------------------------------
85-- Table `gssim_results`.`experiment_stats`
86-- -----------------------------------------------------
87DROP TABLE IF EXISTS `gssim_results`.`experiment_stats` ;
88
89CREATE  TABLE IF NOT EXISTS `gssim_results`.`experiment_stats` (
90  `id` INT NOT NULL AUTO_INCREMENT ,
91  `name` VARCHAR(60) NOT NULL ,
92  `value` DOUBLE NOT NULL ,
93  CONSTRAINT `fk_exp_stats_exp`
94    FOREIGN KEY (`id` )
95    REFERENCES `gssim_results`.`experiment` (`PK` )
96    ON DELETE CASCADE
97    ON UPDATE NO ACTION)
98ENGINE = InnoDB;
99
100CREATE INDEX `fk_exp_stats_exp` ON `gssim_results`.`experiment_stats` (`id` ASC) ;
101
102
103-- -----------------------------------------------------
104-- Table `gssim_results`.`resource`
105-- -----------------------------------------------------
106DROP TABLE IF EXISTS `gssim_results`.`resource` ;
107
108CREATE  TABLE IF NOT EXISTS `gssim_results`.`resource` (
109  `PK` INT NOT NULL AUTO_INCREMENT ,
110  `exp_id` INT NOT NULL ,
111  `name` VARCHAR(45) NOT NULL ,
112  `type` VARCHAR(45) NOT NULL ,
113  `allocation_load` DOUBLE NULL COMMENT 'resource load generated by executed tasks - used allocations' ,
114  `reservation_load` DOUBLE NULL COMMENT 'resource load generated by reservations' ,
115  PRIMARY KEY (`PK`) ,
116  CONSTRAINT `fk_resource_exp`
117    FOREIGN KEY (`exp_id` )
118    REFERENCES `gssim_results`.`experiment` (`PK` )
119    ON DELETE CASCADE
120    ON UPDATE NO ACTION)
121ENGINE = InnoDB;
122
123CREATE INDEX `fk_resource_exp` ON `gssim_results`.`resource` (`exp_id` ASC) ;
124
125
126-- -----------------------------------------------------
127-- Table `gssim_results`.`unit`
128-- -----------------------------------------------------
129DROP TABLE IF EXISTS `gssim_results`.`unit` ;
130
131CREATE  TABLE IF NOT EXISTS `gssim_results`.`unit` (
132  `PK` INT NOT NULL AUTO_INCREMENT ,
133  `resource_id` INT NOT NULL ,
134  `type` VARCHAR(45) NOT NULL ,
135  `name` VARCHAR(45) NOT NULL ,
136  `amount` INT NOT NULL ,
137  `allocation_load` DOUBLE NOT NULL ,
138  `reservation_load` DOUBLE NOT NULL ,
139  PRIMARY KEY (`PK`) ,
140  CONSTRAINT `fk_unit_resource`
141    FOREIGN KEY (`resource_id` )
142    REFERENCES `gssim_results`.`resource` (`PK` )
143    ON DELETE CASCADE
144    ON UPDATE NO ACTION)
145ENGINE = InnoDB;
146
147CREATE INDEX `fk_unit_resource` ON `gssim_results`.`unit` (`resource_id` ASC) ;
148
149
150-- -----------------------------------------------------
151-- Table `gssim_results`.`unit_energy_timeline`
152-- -----------------------------------------------------
153DROP TABLE IF EXISTS `gssim_results`.`unit_energy_timeline` ;
154
155CREATE  TABLE IF NOT EXISTS `gssim_results`.`unit_energy_timeline` (
156  `fk_unit_id` INT NOT NULL ,
157  `timestamp` DATETIME NOT NULL ,
158  `usage` FLOAT NOT NULL ,
159  CONSTRAINT `fk_en_timeline_unit`
160    FOREIGN KEY (`fk_unit_id` )
161    REFERENCES `gssim_results`.`unit` (`PK` )
162    ON DELETE CASCADE
163    ON UPDATE NO ACTION)
164ENGINE = InnoDB;
165
166CREATE INDEX `fk_en_timeline_unit` ON `gssim_results`.`unit_energy_timeline` (`fk_unit_id` ASC) ;
167
168
169-- -----------------------------------------------------
170-- Table `gssim_results`.`unit_allocation_timeline`
171-- -----------------------------------------------------
172DROP TABLE IF EXISTS `gssim_results`.`unit_allocation_timeline` ;
173
174CREATE  TABLE IF NOT EXISTS `gssim_results`.`unit_allocation_timeline` (
175  `fk_unit_id` INT NOT NULL ,
176  `timestamp` DATETIME NOT NULL ,
177  `usage` FLOAT NOT NULL ,
178  CONSTRAINT `fk_al_timeline_unit`
179    FOREIGN KEY (`fk_unit_id` )
180    REFERENCES `gssim_results`.`unit` (`PK` )
181    ON DELETE CASCADE
182    ON UPDATE NO ACTION)
183ENGINE = InnoDB;
184
185CREATE INDEX `fk_al_timeline_unit` ON `gssim_results`.`unit_allocation_timeline` (`fk_unit_id` ASC) ;
186
187
188-- -----------------------------------------------------
189-- Table `gssim_results`.`task`
190-- -----------------------------------------------------
191DROP TABLE IF EXISTS `gssim_results`.`task` ;
192
193CREATE  TABLE IF NOT EXISTS `gssim_results`.`task` (
194  `PK` INT NOT NULL AUTO_INCREMENT ,
195  `exp_id` INT NOT NULL ,
196  `job_id` INT NOT NULL ,
197  `task_id` INT NULL ,
198  `proc_set_id` INT NULL ,
199  `parent_id` INT NULL ,
200  `exec_start_date` DATETIME NOT NULL ,
201  `exec_finish_date` DATETIME NOT NULL COMMENT 'time when task execution is finshed' ,
202  `exec_end_date` DATETIME NOT NULL COMMENT 'The latest date when the execution of task must be ended. If the value is not defined in the task description it equals exec_finish_date' ,
203  `gb_submit_date` DATETIME NULL COMMENT 'grid/global broker submission date' ,
204  `lb_submit_date` DATETIME NULL COMMENT 'the submission or arrival date of task from the latest GridResource (local broker)' ,
205  `completion_time` INT NOT NULL COMMENT 'exec_finish_date - simulationStartDate' ,
206  `exec_start_time` INT NULL COMMENT 'number of sconds between simulation start time and the beginning of task execution;\n\nexec_start_date -\nsimulationStartDate' ,
207  `execution_time` INT NOT NULL COMMENT 'number of seconds between exec_finish_date and exec_start_date;\n\ncompletion_time - exec_start_time' ,
208  `start_time` INT NOT NULL COMMENT 'difference in seconds between time in which task execution starts and time when task is delivered to grid/global broker;\n\nexec_start_time - (gb_submit_date - simulationStartDate)' ,
209  `ready_time` INT NULL COMMENT 'the earliest time when the execution of task can be started (if ready time is not specified it is assumed to be equal to submission time) ' ,
210  `flow_time` INT NOT NULL COMMENT 'completion_time - ready_time' ,
211  `waiting_time` INT NOT NULL COMMENT 'exec_start_time - (lb_submit_date - simulationStartDate)' ,
212  `gq_waiting_time` INT NOT NULL COMMENT 'lb_submit_date - gb_submit_date' ,
213  `lateness` INT NOT NULL COMMENT 'completion_time - (exec_end_date - simulationStartDate)      ' ,
214  `tardiness` INT NOT NULL COMMENT 'max(lateness)' ,
215  `makespan` INT NULL ,
216  PRIMARY KEY (`PK`) ,
217  CONSTRAINT `fk_task_exp`
218    FOREIGN KEY (`exp_id` )
219    REFERENCES `gssim_results`.`experiment` (`PK` )
220    ON DELETE CASCADE
221    ON UPDATE NO ACTION,
222  CONSTRAINT `fk_child_parent`
223    FOREIGN KEY (`parent_id` )
224    REFERENCES `gssim_results`.`task` (`PK` )
225    ON DELETE CASCADE
226    ON UPDATE NO ACTION)
227ENGINE = InnoDB;
228
229CREATE INDEX `fk_task_exp` ON `gssim_results`.`task` (`exp_id` ASC) ;
230
231CREATE INDEX `idx_job_id` ON `gssim_results`.`task` (`job_id` ASC) ;
232
233CREATE INDEX `idx_task_id` ON `gssim_results`.`task` (`task_id` ASC) ;
234
235CREATE INDEX `idx_proc_set_id` ON `gssim_results`.`task` (`proc_set_id` ASC) ;
236
237CREATE INDEX `fk_child_parent` ON `gssim_results`.`task` (`parent_id` ASC) ;
238
239
240-- -----------------------------------------------------
241-- Table `gssim_results`.`reservation`
242-- -----------------------------------------------------
243DROP TABLE IF EXISTS `gssim_results`.`reservation` ;
244
245CREATE  TABLE IF NOT EXISTS `gssim_results`.`reservation` (
246  `PK` INT NOT NULL AUTO_INCREMENT ,
247  `task_id` INT NULL ,
248  `unit_id` INT NOT NULL ,
249  `begin` DATETIME NOT NULL ,
250  `end` DATETIME NOT NULL ,
251  PRIMARY KEY (`PK`) ,
252  CONSTRAINT `fk_reserv_task`
253    FOREIGN KEY (`task_id` )
254    REFERENCES `gssim_results`.`task` (`PK` )
255    ON DELETE CASCADE
256    ON UPDATE NO ACTION,
257  CONSTRAINT `fk_reserv_unit`
258    FOREIGN KEY (`unit_id` )
259    REFERENCES `gssim_results`.`unit` (`PK` )
260    ON DELETE CASCADE
261    ON UPDATE NO ACTION)
262ENGINE = InnoDB;
263
264CREATE INDEX `fk_reserv_task` ON `gssim_results`.`reservation` (`task_id` ASC) ;
265
266CREATE INDEX `fk_reserv_unit` ON `gssim_results`.`reservation` (`unit_id` ASC) ;
267
268
269-- -----------------------------------------------------
270-- Table `gssim_results`.`allocation`
271-- -----------------------------------------------------
272DROP TABLE IF EXISTS `gssim_results`.`allocation` ;
273
274CREATE  TABLE IF NOT EXISTS `gssim_results`.`allocation` (
275  `PK` INT NOT NULL AUTO_INCREMENT ,
276  `task_id` INT NOT NULL ,
277  `unit_id` INT NOT NULL ,
278  `begin` DATETIME NOT NULL ,
279  `end` DATETIME NOT NULL ,
280  PRIMARY KEY (`PK`) ,
281  CONSTRAINT `fk_alloc_task`
282    FOREIGN KEY (`task_id` )
283    REFERENCES `gssim_results`.`task` (`PK` )
284    ON DELETE CASCADE
285    ON UPDATE NO ACTION,
286  CONSTRAINT `fk_alloc_unit`
287    FOREIGN KEY (`unit_id` )
288    REFERENCES `gssim_results`.`unit` (`PK` )
289    ON DELETE CASCADE
290    ON UPDATE NO ACTION)
291ENGINE = InnoDB;
292
293CREATE INDEX `fk_alloc_task` ON `gssim_results`.`allocation` (`task_id` ASC) ;
294
295CREATE INDEX `fk_alloc_unit` ON `gssim_results`.`allocation` (`unit_id` ASC) ;
296
297
298-- -----------------------------------------------------
299-- Table `gssim_results`.`queues`
300-- -----------------------------------------------------
301DROP TABLE IF EXISTS `gssim_results`.`queues` ;
302
303CREATE  TABLE IF NOT EXISTS `gssim_results`.`queues` (
304  `fk_resource_id` INT NOT NULL ,
305  `name` VARCHAR(45) NOT NULL ,
306  `avg_length` FLOAT NULL ,
307  CONSTRAINT `fk_queues_resource`
308    FOREIGN KEY (`fk_resource_id` )
309    REFERENCES `gssim_results`.`resource` (`PK` )
310    ON DELETE CASCADE
311    ON UPDATE NO ACTION)
312ENGINE = InnoDB;
313
314CREATE INDEX `fk_queues_resource` ON `gssim_results`.`queues` (`fk_resource_id` ASC) ;
315
316
317-- -----------------------------------------------------
318-- Table `gssim_results`.`unit_details`
319-- -----------------------------------------------------
320DROP TABLE IF EXISTS `gssim_results`.`unit_details` ;
321
322CREATE  TABLE IF NOT EXISTS `gssim_results`.`unit_details` (
323  `fk_unit_id` INT NOT NULL ,
324  `name` VARCHAR(45) NOT NULL ,
325  `value` VARCHAR(45) NOT NULL ,
326  CONSTRAINT `fk_udetails_unit`
327    FOREIGN KEY (`fk_unit_id` )
328    REFERENCES `gssim_results`.`unit` (`PK` )
329    ON DELETE CASCADE
330    ON UPDATE NO ACTION)
331ENGINE = InnoDB;
332
333CREATE INDEX `fk_udetails_unit` ON `gssim_results`.`unit_details` (`fk_unit_id` ASC) ;
334
335
336-- -----------------------------------------------------
337-- Table `gssim_results`.`resource_allocation_timeline`
338-- -----------------------------------------------------
339DROP TABLE IF EXISTS `gssim_results`.`resource_allocation_timeline` ;
340
341CREATE  TABLE IF NOT EXISTS `gssim_results`.`resource_allocation_timeline` (
342  `fk_resource_id` INT NOT NULL ,
343  `timestamp` DATETIME NOT NULL ,
344  `usage` FLOAT NOT NULL ,
345  CONSTRAINT `fk_al_timeline_resource`
346    FOREIGN KEY (`fk_resource_id` )
347    REFERENCES `gssim_results`.`resource` (`PK` )
348    ON DELETE CASCADE
349    ON UPDATE NO ACTION)
350ENGINE = InnoDB;
351
352CREATE INDEX `fk_al_timeline_resource` ON `gssim_results`.`resource_allocation_timeline` (`fk_resource_id` ASC) ;
353
354
355-- -----------------------------------------------------
356-- Table `gssim_results`.`resource_energy_timeline`
357-- -----------------------------------------------------
358DROP TABLE IF EXISTS `gssim_results`.`resource_energy_timeline` ;
359
360CREATE  TABLE IF NOT EXISTS `gssim_results`.`resource_energy_timeline` (
361  `fk_resource_id` INT NOT NULL ,
362  `timestamp` DATETIME NOT NULL ,
363  `usage` FLOAT NOT NULL ,
364  CONSTRAINT `fk_en_timeline_resource`
365    FOREIGN KEY (`fk_resource_id` )
366    REFERENCES `gssim_results`.`resource` (`PK` )
367    ON DELETE CASCADE
368    ON UPDATE NO ACTION)
369ENGINE = InnoDB;
370
371CREATE INDEX `fk_en_timeline_resource` ON `gssim_results`.`resource_energy_timeline` (`fk_resource_id` ASC) ;
372
373
374-- -----------------------------------------------------
375-- Table `gssim_results`.`text_property`
376-- -----------------------------------------------------
377DROP TABLE IF EXISTS `gssim_results`.`text_property` ;
378
379CREATE  TABLE IF NOT EXISTS `gssim_results`.`text_property` (
380  `config_id` INT NOT NULL ,
381  `name` VARCHAR(90) NOT NULL ,
382  `value` VARCHAR(90) NOT NULL ,
383  CONSTRAINT `fk_text_property_configuration1`
384    FOREIGN KEY (`config_id` )
385    REFERENCES `gssim_results`.`configuration` (`id` )
386    ON DELETE CASCADE
387    ON UPDATE NO ACTION)
388ENGINE = InnoDB;
389
390CREATE INDEX `fk_text_property_configuration1` ON `gssim_results`.`text_property` (`config_id` ASC) ;
391
392
393-- -----------------------------------------------------
394-- Table `gssim_results`.`blob_property`
395-- -----------------------------------------------------
396DROP TABLE IF EXISTS `gssim_results`.`blob_property` ;
397
398CREATE  TABLE IF NOT EXISTS `gssim_results`.`blob_property` (
399  `config_id` INT NOT NULL ,
400  `name` VARCHAR(45) NOT NULL ,
401  `value` BLOB NOT NULL ,
402  CONSTRAINT `fk_text_property_configuration10`
403    FOREIGN KEY (`config_id` )
404    REFERENCES `gssim_results`.`configuration` (`id` )
405    ON DELETE CASCADE
406    ON UPDATE NO ACTION)
407ENGINE = InnoDB;
408
409CREATE INDEX `fk_text_property_configuration1` ON `gssim_results`.`blob_property` (`config_id` ASC) ;
410
411
412-- -----------------------------------------------------
413-- Table `gssim_results`.`reservation_details`
414-- -----------------------------------------------------
415DROP TABLE IF EXISTS `gssim_results`.`reservation_details` ;
416
417CREATE  TABLE IF NOT EXISTS `gssim_results`.`reservation_details` (
418  `fk_reservation_id` INT NOT NULL ,
419  `name` VARCHAR(45) NULL ,
420  `value` VARCHAR(45) NULL ,
421  CONSTRAINT `fk_reservation_details_1`
422    FOREIGN KEY (`fk_reservation_id` )
423    REFERENCES `gssim_results`.`reservation` (`PK` )
424    ON DELETE CASCADE
425    ON UPDATE NO ACTION)
426ENGINE = InnoDB;
427
428CREATE INDEX `fk_reservation_details_1` ON `gssim_results`.`reservation_details` (`fk_reservation_id` ASC) ;
429
430
431-- -----------------------------------------------------
432-- Table `gssim_results`.`allocation_details`
433-- -----------------------------------------------------
434DROP TABLE IF EXISTS `gssim_results`.`allocation_details` ;
435
436CREATE  TABLE IF NOT EXISTS `gssim_results`.`allocation_details` (
437  `fk_allocation_id` INT NOT NULL ,
438  `name` VARCHAR(45) NULL ,
439  `value` VARCHAR(45) NULL ,
440  CONSTRAINT `fk_allocation_details_1`
441    FOREIGN KEY (`fk_allocation_id` )
442    REFERENCES `gssim_results`.`allocation` (`PK` )
443    ON DELETE CASCADE
444    ON UPDATE NO ACTION)
445ENGINE = InnoDB;
446
447CREATE INDEX `fk_allocation_details_1` ON `gssim_results`.`allocation_details` (`fk_allocation_id` ASC) ;
448
449
450-- -----------------------------------------------------
451-- Table `gssim_results`.`plugin`
452-- -----------------------------------------------------
453DROP TABLE IF EXISTS `gssim_results`.`plugin` ;
454
455CREATE  TABLE IF NOT EXISTS `gssim_results`.`plugin` (
456  `id` INT NOT NULL AUTO_INCREMENT ,
457  `name` VARCHAR(45) NOT NULL ,
458  `is_global` TINYINT(1)  NOT NULL ,
459  `description` VARCHAR(2000) NULL ,
460  `input` VARCHAR(500) NULL ,
461  PRIMARY KEY (`id`) )
462ENGINE = InnoDB;
463
464
465-- -----------------------------------------------------
466-- Table `gssim_results`.`plugin_compatibility`
467-- -----------------------------------------------------
468DROP TABLE IF EXISTS `gssim_results`.`plugin_compatibility` ;
469
470CREATE  TABLE IF NOT EXISTS `gssim_results`.`plugin_compatibility` (
471  `parent_id` INT NOT NULL ,
472  `child_id` INT NOT NULL ,
473  PRIMARY KEY (`parent_id`, `child_id`) ,
474  CONSTRAINT `fk_plugin_compatibility_1`
475    FOREIGN KEY (`parent_id` )
476    REFERENCES `gssim_results`.`plugin` (`id` )
477    ON DELETE CASCADE
478    ON UPDATE NO ACTION,
479  CONSTRAINT `fk_plugin_compatibility_2`
480    FOREIGN KEY (`child_id` )
481    REFERENCES `gssim_results`.`plugin` (`id` )
482    ON DELETE CASCADE
483    ON UPDATE NO ACTION)
484ENGINE = InnoDB;
485
486CREATE INDEX `fk_plugin_compatibility_1` ON `gssim_results`.`plugin_compatibility` (`parent_id` ASC) ;
487
488CREATE INDEX `fk_plugin_compatibility_2` ON `gssim_results`.`plugin_compatibility` (`child_id` ASC) ;
489
490
491
492SET SQL_MODE=@OLD_SQL_MODE;
493SET FOREIGN_KEY_CHECKS=@OLD_FOREIGN_KEY_CHECKS;
494SET UNIQUE_CHECKS=@OLD_UNIQUE_CHECKS;
Note: See TracBrowser for help on using the repository browser.