Advertisement
Guest User

Untitled

a guest
Nov 28th, 2014
150
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 2.98 KB | None | 0 0
  1. drop table Matrícula;
  2. drop table Docencia;
  3. drop table Examens;
  4. drop table Assignatures;
  5. drop table Professor;
  6. drop table Alumnes;
  7.  
  8. Create table Assignatures(
  9. CodiAssignatura char(5) PRIMARY KEY,
  10. Nom varchar(30),
  11. Durada int,
  12. Cicle varchar(5),
  13. Curs smallint
  14. );
  15.  
  16. Create table Professor(
  17. CodiProfessor varchar(5) PRIMARY KEY,
  18. Nom varchar(15),
  19. Especialitat varchar(15),
  20. Departament varchar(15),
  21. Antiguetat varchar(15)
  22. );
  23.  
  24. Create table Alumnes(
  25. CodiAlumne varchar(5) PRIMARY KEY,
  26. Alumne varchar(40),
  27. DNI varchar(10),
  28. Telefon varchar(12),
  29. Email varchar(30),
  30. Direcció varchar(50)
  31. );
  32.  
  33. ALTER TABLE Alumnes
  34. ADD CHECK (Email like '*@*');
  35.  
  36. Create table Matrícula(
  37. Curs smallint,
  38. CodiAssignatura varchar(5),
  39. CodiAlumne varchar(5),
  40. Nota decimal,
  41. Aprovada boolean,
  42. Convalidada char,
  43. NotaFinal decimal,
  44. UNIQUE(Curs, CodiAssignatura,CodiAlumne)
  45. );
  46.  
  47. Alter Table Matrícula
  48. rename column Nota Notes
  49.  
  50. ALTER TABLE Matrícula
  51. modify Notes decimal[];
  52.  
  53. ALTER TABLE Matrícula
  54. ADD CHECK (Aprovada=true)
  55.  
  56.  
  57. create table Docencia(
  58. Curs smallint,
  59. CodiAssignatura varchar(5),
  60. Grup char,
  61. CodiProfessor varchar(5),
  62. Aula varchar(10)
  63. );
  64.  
  65. create table Examens(
  66. Curs smallint,
  67. CodiAssignatura varchar(5),
  68. Grup char,
  69. DataExamen date,
  70. CodiAlumne varchar(5),
  71. Trimestre char,
  72. UnitatFormativa varchar(5),
  73. Nota decimal
  74. );
  75.  
  76. ALTER TABLE Examens
  77. ADD CHECK (Trimestre in (1,2,3))
  78.  
  79.  
  80. --UNIQUES
  81. alter table Matrícula
  82. add UNIQUE(Curs, CodiAssignatura,CodiAlumne);
  83.  
  84. alter table Docencia
  85. add UNIQUE(Curs,CodiAssignatura,Grup);
  86.  
  87. alter Table Examens
  88. add UNIQUE (Curs,CodiAssignatura,Grup,DataExamen,CodiAlumne);
  89.  
  90. --foreings de Assignatures
  91. alter table Examens
  92. add FOREIGN KEY (CodiAssignatura) REFERENCES Assignatures (CodiAssignatura);
  93.  
  94. alter table Docencia
  95. add FOREIGN KEY (CodiAssignatura) REFERENCES Assignatures (CodiAssignatura);
  96.  
  97. --alter table Matrícula
  98. add FOREIGN KEY (CodiAssignatura) REFERENCES Assignatures (CodiAssignatura);
  99. --fin
  100.  
  101. --foreign de Professor
  102. alter table Docencia
  103. add FOREIGN KEY (CodiProfessor) REFERENCES Professor (CodiProfessor);
  104.  
  105. --Foreign de Alumnes
  106. alter table Matrícula
  107. add FOREIGN KEY (CodiAlumne) REFERENCES Alumnes (CodiAlumne);
  108.  
  109. --foreign de Docencia
  110. alter table Matrícula
  111. add FOREIGN KEY (CodiAssignatura) REFERENCES Docencia (CodiAssignatura),
  112. add FOREIGN KEY (Curs) REFERENCES Docencia (Curs),
  113.  
  114. --foreign de Matrícula
  115. alter table Examens
  116. add FOREIGN KEY (CodiAssignatura) REFERENCES Matrícula (CodiAssignatura),
  117. add FOREIGN KEY (Curs) REFERENCES Matrícula (Curs),
  118. add FOREIGN KEY (CodiAlumne) REFERENCES Matrícula (CodiAlumne);
  119.  
  120.  
  121.  
  122.  
  123. --INSERT INTO Matrícula (CodiAlumne, notes) VALUES ('asdf123', ARRAY[5,6,0])
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement