geofox

ddl sql

Mar 25th, 2012
98
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
PL/SQL 8.12 KB | None | 0 0
  1.  
  2. CREATE TABLE ALUMNO(
  3. CODALUMNO INTEGER CONSTRAINT PK_CODALUMNO PRIMARY KEY,
  4. NOMBRE VARCHAR2(100),
  5. APELLIDO VARCHAR2(100),
  6. FECHA_NACIMIENTO DATE,
  7. SEXO VARCHAR2(1),
  8. DOMICILIO VARCHAR2(200),
  9. ENCARGADO VARCHAR2(100),
  10. TELEFONO INTEGER
  11. )
  12. /
  13.  
  14. CREATE TABLE GRADO(
  15. CODIGOGRADO INTEGER CONSTRAINT PK_CODGRADO PRIMARY KEY,
  16. NOMBRE VARCHAR2(50) NOT NULL
  17. )
  18. /
  19.  
  20. CREATE TABLE ESPECIALIDAD(
  21. CODESPECIALIDAD INTEGER CONSTRAINT PK_CODESPECIALIDAD PRIMARY KEY,
  22. NOMBRE VARCHAR(100) NOT NULL
  23. )
  24. /
  25.  
  26. CREATE TABLE SECCIONES(
  27. CODSECCION INTEGER CONSTRAINT PK_CODSECCION PRIMARY KEY,
  28. SECCION VARCHAR2(4) NOT NULL
  29. )
  30. /
  31.  
  32. CREATE TABLE MATRICULA(
  33. IDMATRICULA INTEGER CONSTRAINT PK_MATRICULA PRIMARY KEY,
  34. CODALUMNO INTEGER NOT NULL CONSTRAINT FK_CODALUMNO
  35. REFERENCES ALUMNO(CODALUMNO),
  36. CODIGOGRADO INTEGER NOT NULL CONSTRAINT FK_CODGRADO
  37. REFERENCES GRADO(CODIGOGRADO),
  38. CODSECCION INTEGER NOT NULL CONSTRAINT FK_CODSECCION
  39. REFERENCES SECCIONES(CODSECCION),
  40. CODESPECIALIDAD INTEGER NOT NULL CONSTRAINT FK_CODESPECIALIDAD
  41. REFERENCES ESPECIALIDAD(CODESPECIALIDAD),
  42. FECHA_MATRICULA DATE DEFAULT(SYSDATE)
  43. )
  44. /
  45.  
  46. CREATE TABLE MATERIAS(
  47. CODMATERIA INTEGER CONSTRAINT PK_CODMATERIA PRIMARY KEY,
  48. NOMBRE VARCHAR2(100) NOT NULL
  49. )
  50. /
  51.  
  52. CREATE TABLE DOCENTE(
  53. CODDOCENTE INTEGER CONSTRAINT PK_DOCENTE PRIMARY KEY,
  54. NOMBRE VARCHAR2(100) NOT NULL,
  55. APELLIDO VARCHAR2(100) NOT NULL,
  56. FECHA_NACIMIENTO DATE NOT NULL,
  57. SEXO VARCHAR2(100) NOT NULL,
  58. DOMICILIO VARCHAR2(200) NOT NULL,
  59. TELEFONO INTEGER NOT NULL
  60. )
  61. /
  62.  
  63. CREATE TABLE PERIODOS(
  64. CODPERIODO INTEGER CONSTRAINT PK_CODPERIODO PRIMARY KEY,
  65. PERIODOO VARCHAR(50)
  66. )
  67. /
  68.  
  69. CREATE TABLE CARGA_DOCENTE(
  70. ID INTEGER CONSTRAINT PK_ID_CARGAD PRIMARY KEY,
  71. CODDOCENTE INTEGER NOT NULL  CONSTRAINT FK_CODDOCENTE
  72. REFERENCES DOCENTE(CODDOCENTE),
  73. CODMATERIA INTEGER NOT NULL  CONSTRAINT FK_CODMATERIA
  74. REFERENCES MATERIAS(CODMATERIA),
  75. CODGRADO INTEGER NOT NULL CONSTRAINT FK_COD_GRADO
  76. REFERENCES GRADO(CODIGOGRADO),
  77. CODESPECIALIDAD INTEGER NOT NULL CONSTRAINT FK_COD_ESPECIALIDAD
  78. REFERENCES ESPECIALIDAD(CODESPECIALIDAD),
  79. CODSECCION INTEGER NOT NULL CONSTRAINT FK_COD_SECCION
  80. REFERENCES SECCIONES(CODSECCION),
  81. ANIO_ASIGNACION DATE DEFAULT(SYSDATE)
  82. )
  83. /
  84.  
  85. CREATE TABLE NOTAS(
  86. ID INTEGER CONSTRAINT PK_ID_NOTAS PRIMARY KEY,
  87. CODALUMNO INTEGER NOT NULL CONSTRAINT FK_COD_ALUMNO
  88. REFERENCES ALUMNO(CODALUMNO),
  89. CODMATERIA INTEGER NOT NULL CONSTRAINT FK_COD_MATERIANOTA
  90. REFERENCES MATERIAS(CODMATERIA),
  91. ACTIVIDAD NUMBER(8,2),
  92. LABORATORIO NUMBER(8,2),
  93. EXAMEN NUMBER(8,2),
  94. CODPERIODO INTEGER NOT NULL CONSTRAINT FK_CODPERIODO
  95. REFERENCES PERIODOS(CODPERIODO),
  96. ANIO_ASIGNACION DATE DEFAULT(SYSDATE)
  97. )
  98. /
  99.  
  100. CREATE TABLE ENCARGADOS_GRADO(
  101. ID INTEGER CONSTRAINT PK_ID_ENCARGADOG PRIMARY KEY,
  102. CODDOCENTE INTEGER NOT NULL  CONSTRAINT  FK_COD_DOCENTE_ENCARGADO
  103. REFERENCES DOCENTE(CODDOCENTE),
  104. CODGRADO INTEGER NOT NULL  CONSTRAINT  FK_COD_GRADO_ASIGNADO
  105. REFERENCES GRADO(CODIGOGRADO),
  106. CODSECCION INTEGER NOT NULL  CONSTRAINT  FK_COD_SECCIONES_GRADO
  107. REFERENCES SECCIONES(CODSECCION),
  108. CODESPECIALIDAD INTEGER NOT NULL CONSTRAINT FK_COD_ESPECIALIDAD_GRADO
  109. REFERENCES ESPECIALIDAD(CODESPECIALIDAD),
  110. ANIO_ENCARGO DATE DEFAULT(SYSDATE)
  111. )
  112. /
  113.  
  114. CREATE TABLE HISTORIAL_MATRICULA(
  115. ID_HM INTEGER CONSTRAINT PK_ID_HM PRIMARY KEY,
  116. USUARIO_SISTEMA VARCHAR2(100) NOT NULL,
  117. CODALUMNO INTEGER NOT NULL CONSTRAINT FK_CODA_HISTORIALM REFERENCES
  118. ALUMNO(CODALUMNO),
  119. ACCION VARCHAR2(100),
  120. FECHA DATE DEFAULT(SYSDATE)
  121. )
  122. /
  123.  
  124.  
  125. CREATE TABLE HISTORIAL_NOTAS(
  126. ID_HN INTEGER CONSTRAINT PK_ID_HN PRIMARY KEY,
  127. USUARIO_SISTEMA VARCHAR2(100) NOT NULL,
  128. CODALUMNO INTEGER NOT NULL CONSTRAINT FK_CODA_HISTORIALN REFERENCES
  129. ALUMNO(CODALUMNO),
  130. CODMATERIA INTEGER NOT NULL CONSTRAINT FK_CODM_HISTORIALN REFERENCES
  131. MATERIAS(CODMATERIA),
  132. ACTIVIDAD NUMBER(8,2) NOT NULL,
  133. LABORATORIO NUMBER(8,2) NOT NULL,
  134. EXAMEN NUMBER(8,2) NOT NULL,
  135. CODPERIODO INTEGER NOT NULL REFERENCES
  136. PERIODOS(CODPERIODO),
  137. ACCION VARCHAR2(100),
  138. FECHA DATE DEFAULT(SYSDATE)
  139. )
  140. /
  141.  
  142.  
  143.  
  144. CREATE SEQUENCE SQ_ALUMNO START WITH 1 INCREMENT BY 1
  145. /
  146.  
  147. CREATE SEQUENCE SQ_MATRICULA  START WITH 1 INCREMENT BY 1
  148. /
  149.  
  150. CREATE SEQUENCE SQ_DOCENTE   START WITH 1 INCREMENT BY 1
  151. /
  152.  
  153. CREATE SEQUENCE SQ_ESPECIALIDAD  START WITH 1 INCREMENT BY 1
  154. /
  155.  
  156. CREATE SEQUENCE SQ_MATERIAS  START WITH 1 INCREMENT BY 1
  157. /
  158.  
  159. CREATE SEQUENCE SQ_SECCIONES  START WITH 1 INCREMENT BY 1
  160. /
  161.  
  162. CREATE SEQUENCE SQ_GRADO  START WITH 1 INCREMENT BY 1
  163. /
  164.  
  165. CREATE SEQUENCE SQ_PERIODOS  START WITH 1 INCREMENT BY 1
  166. /
  167.  
  168. CREATE SEQUENCE SQ_HM START WITH 1 INCREMENT BY 1
  169. /
  170.  
  171. CREATE SEQUENCE SQ_HN START WITH 1 INCREMENT BY 1
  172.  
  173. /
  174.  
  175. CREATE SEQUENCE SQ_CARGAD START WITH 1 INCREMENT BY 1
  176.  
  177. /
  178.  
  179. CREATE SEQUENCE SQ_ENCARGADOG START WITH 1 INCREMENT BY 1
  180.  
  181. /
  182.  
  183. CREATE SEQUENCE SQ_IDNOTAS START WITH 1 INCREMENT BY 1
  184.  
  185. /
  186.  
  187.  
  188.  
  189. CREATE TRIGGER COD_ALUMNO  BEFORE INSERT ON ALUMNO
  190. FOR EACH ROW
  191. BEGIN
  192.       :NEW.CODALUMNO:=SQ_ALUMNO.NEXTVAL;
  193.  
  194. END;
  195. /
  196.  
  197. CREATE TRIGGER ID_MATRICULA  BEFORE INSERT ON MATRICULA
  198. FOR EACH ROW
  199. BEGIN
  200.       :NEW.IDMATRICULA:=SQ_MATRICULA.NEXTVAL;
  201.  
  202. END;
  203. /
  204.  
  205. CREATE TRIGGER COD_DOCENTE  BEFORE INSERT ON  DOCENTE
  206. FOR EACH ROW
  207. BEGIN
  208.       :NEW.CODDOCENTE:=SQ_DOCENTE.NEXTVAL;
  209.  
  210. END;
  211. /
  212.  
  213. CREATE TRIGGER COD_ESPECIALIDAD  BEFORE INSERT ON  ESPECIALIDAD
  214. FOR EACH ROW
  215. BEGIN
  216.       :NEW.CODESPECIALIDAD:=SQ_ESPECIALIDAD.NEXTVAL;
  217.  
  218. END;
  219. /
  220.  
  221. CREATE TRIGGER COD_MATERIA  BEFORE INSERT ON  MATERIAS
  222. FOR EACH ROW
  223. BEGIN
  224.       :NEW.CODMATERIA:=SQ_MATERIAS.NEXTVAL;
  225.  
  226. END;
  227. /
  228.  
  229. CREATE TRIGGER COD_SECCION  BEFORE INSERT ON  SECCIONES
  230. FOR EACH ROW
  231. BEGIN
  232.       :NEW.CODSECCION:=SQ_SECCIONES.NEXTVAL;
  233.  
  234. END;
  235. /
  236.  
  237. CREATE TRIGGER COD_GRADO   BEFORE INSERT ON  GRADO
  238. FOR EACH ROW
  239. BEGIN
  240.       :NEW.CODIGOGRADO:=SQ_GRADO.NEXTVAL;
  241.  
  242. END;
  243. /
  244.  
  245. CREATE TRIGGER COD_PERIODO   BEFORE INSERT ON  PERIODOS
  246. FOR EACH ROW
  247. BEGIN
  248.       :NEW.CODPERIODO:=SQ_PERIODOS.NEXTVAL;
  249.  
  250. END;
  251. /
  252.  
  253. CREATE OR REPLACE TRIGGER INC_ID_HM BEFORE INSERT ON HISTORIAL_MATRICULA
  254. FOR EACH ROW
  255. BEGIN
  256. :NEW.ID_HM:=SQ_HM.NEXTVAL;
  257.  
  258. END;
  259. /
  260.  
  261. CREATE OR REPLACE TRIGGER INC_ID_HN BEFORE INSERT ON HISTORIAL_NOTAS
  262. FOR EACH ROW
  263. BEGIN
  264. :NEW.ID_HN:=SQ_HN.NEXTVAL;
  265. END;
  266. /
  267.  
  268. CREATE TRIGGER ID_CARGADOCENTE  BEFORE INSERT ON CARGA_DOCENTE
  269. FOR EACH ROW
  270. BEGIN
  271.       :NEW.ID:=SQ_CARGAD.NEXTVAL;
  272.  
  273. END;
  274. /
  275.  
  276. CREATE TRIGGER ID_ENCARGADOG  BEFORE INSERT ON ENCARGADOS_GRADO
  277. FOR EACH ROW
  278. BEGIN
  279.       :NEW.ID:=SQ_ENCARGADOG.NEXTVAL;
  280.  
  281. END;
  282. /
  283.  
  284. CREATE TRIGGER ID_NOTASA  BEFORE INSERT ON NOTAS
  285. FOR EACH ROW
  286. BEGIN
  287.       :NEW.ID:=SQ_IDNOTAS.NEXTVAL;
  288.  
  289. END;
  290. /
  291.  
  292.  
  293. CREATE OR REPLACE TRIGGER AUDITORIA_MATRICULA AFTER INSERT OR UPDATE OR DELETE   ON MATRICULA
  294. FOR EACH ROW
  295. BEGIN
  296.  
  297.    IF INSERTING THEN
  298.            INSERT INTO HISTORIAL_MATRICULA(USUARIO_SISTEMA,CODALUMNO,ACCION)VALUES
  299.            (USER,:NEW.CODALUMNO,'INSERCION');
  300.            
  301.     ELSIF UPDATING THEN
  302.             INSERT INTO HISTORIAL_MATRICULA(USUARIO_SISTEMA,CODALUMNO,ACCION)VALUES
  303.            (USER,:OLD.CODALUMNO,'ACTUALIZACION');
  304.      
  305.     ELSIF DELETING THEN
  306.            INSERT INTO HISTORIAL_MATRICULA(USUARIO_SISTEMA,CODALUMNO,ACCION)VALUES
  307.            (USER,:OLD.CODALUMNO,'ELIMINACION');
  308.      
  309.    
  310.     END IF;
  311.  
  312. END;
  313. /
  314.  
  315.  
  316. CREATE OR REPLACE TRIGGER AUDITORIA_NOTAS AFTER INSERT OR UPDATE OR DELETE   ON NOTAS
  317. FOR EACH ROW
  318. BEGIN
  319.  
  320.    IF INSERTING THEN
  321.            INSERT INTO HISTORIAL_NOTAS(USUARIO_SISTEMA,CODALUMNO,CODMATERIA,ACTIVIDAD,
  322.            LABORATORIO,EXAMEN,CODPERIODO,ACCION)VALUES
  323.            (USER,:NEW.CODALUMNO,:NEW.CODMATERIA,:NEW.ACTIVIDAD,:NEW.LABORATORIO,:NEW.EXAMEN,
  324.            :NEW.CODPERIODO,'INSERCION');
  325.            
  326.     ELSIF UPDATING THEN
  327.              INSERT INTO HISTORIAL_NOTAS(USUARIO_SISTEMA,CODALUMNO,CODMATERIA,ACTIVIDAD,
  328.            LABORATORIO,EXAMEN,CODPERIODO,ACCION)VALUES
  329.            (USER,:OLD.CODALUMNO,:OLD.CODMATERIA,:NEW.ACTIVIDAD,:NEW.LABORATORIO,:NEW.EXAMEN,
  330.            :NEW.CODPERIODO,'ACTUALIZACION');
  331.      
  332.     ELSIF DELETING THEN
  333.            INSERT INTO HISTORIAL_NOTAS(USUARIO_SISTEMA,CODALUMNO,CODMATERIA,ACTIVIDAD,
  334.            LABORATORIO,EXAMEN,CODPERIODO,ACCION)VALUES
  335.            (USER,:OLD.CODALUMNO,:OLD.CODMATERIA,:OLD.ACTIVIDAD,:OLD.LABORATORIO,:OLD.EXAMEN,
  336.            :OLD.CODPERIODO,'ELIMINACION');
  337.      
  338.    
  339.     END IF;
  340.  
  341. END;
  342. /
Advertisement
Add Comment
Please, Sign In to add comment