Hola, porfavor Ayudenme con este problemita :( 
 
Tengo la base de datos, con sus tablas y atributos, que previamente debo llenar (ingresar registos) 
pero mi problema son los PROCEDIMIENTOS ALMACENADOS y un TRIGGER (que no se como hacerlos), los cuales deben cumplir los siguentes requisitos: 
Tengo que, mediante 2 Procedimientos Almacenados y 1 Trigger, Inscribir a un curso nuevo y asociarle todos los alumnos dados hasta cumplir con el total de vacantes que tiene el curso e indicar que se ha cumplido con esta restricción. (mi motor es ORACLE y conectarlo a PHP, pero eso PUEDO HACERLO Yo :) ) 
Entonces decidi que los procedimientos hagan estas funciones:  
Procedimiento Almacenado (1):Cada vez que se agregue un alumno al curso, el contador de current_alumnos deberá incrementarse.  
Procedimiento Almacenado (2): Cuando sea agregado un alumno al curso se actualizara la Lista dejando ordenados a los alumnos por Apellido (alfabéticamente).  
Triggers: Mostrará en Pantalla que el límite de alumnos por curso fue alcanzado y que no puede ingresar más.  
Si alguien entendido en Procedimientos Almacenados  y Triggers Porfavor puede ayudarme, le agradeceria mucho. Dejo las Tablas que llevo para que se entienda la idea. Desde ya muchas gracias y acepto cualquier sugerencia. 
Ojala se entienda, pongo todo por si alguien se confunde.... Solo necesito ayuda con los procedimientos y el trigger.... Ojala alguien sepa, gracias. 
   
//Las tablas aca Abajao // 
CREATE SEQUENCE student_sequence
  START WITH 10000
  INCREMENT BY 1; 
CREATE TABLE students (
  id               NUMBER(5) PRIMARY KEY,
  first_name       VARCHAR2(20),
  last_name        VARCHAR2(20),
  major            VARCHAR2(30),
  current_credits  NUMBER(3)
  ); 
INSERT INTO students (id, first_name, last_name, major,
                      current_credits)
  VALUES (student_sequence.NEXTVAL, 'Scott', 'Smith',
          'Computer Science', 11); 
INSERT INTO students (id, first_name, last_name, major,
                      current_credits)
  VALUES (student_sequence.NEXTVAL, 'Margaret', 'Mason',
          'History', 4); 
INSERT INTO students (id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Joanne', 'Junebug',
           'Computer Science', 8); 
INSERT INTO students (id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Manish', 'Murgatroid',
           'Economics', 8); 
INSERT INTO students(id, first_name, last_name, major,
                       current_credits)
  VALUES(student_sequence.NEXTVAL, 'Patrick', 'Poll',
           'History', 4); 
INSERT INTO students(id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Timothy', 'Taller',
           'History', 4); 
INSERT INTO students(id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Barbara', 'Blues',
           'Economics', 7); 
INSERT INTO students(id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'David', 'Dinsmore',
           'Music', 4); 
INSERT INTO students(id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Ester', 'Elegant',
           'Nutrition', 8); 
INSERT INTO students(id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Rose', 'Riznit',
           'Music', 7); 
INSERT INTO STUDENTS(id, first_name, last_name, major,
                       current_credits)
  VALUES (student_sequence.NEXTVAL, 'Rita', 'Razmataz',
           'Nutrition', 8); 
INSERT INTO students(id, first_name, last_name, major,
                        current_credits)
  VALUES (student_sequence.NEXTVAL, 'Shay', 'Shariatpanahy',
           'Computer Science', 3);  
CREATE TABLE classes (
  department       CHAR(3),
  course           NUMBER(3),
  description      VARCHAR2(2000),
  max_students     NUMBER(3),
  current_students NUMBER(3),
  num_credits      NUMBER(1),
  room_id          NUMBER(5),
  CONSTRAINT classes_department_course
    PRIMARY KEY (department, course)
   ); 
INSERT INTO classes(department, course, description, max_students,
                     current_students, num_credits, room_id)
  VALUES ('HIS', 101, 'History 101', 30, 11, 4, 20000);   
CREATE TABLE registered_students (
  student_id NUMBER(5) NOT NULL,
  department CHAR(3)   NOT NULL,
  course     NUMBER(3) NOT NULL,
  grade      CHAR(1),
  CONSTRAINT rs_grade
    CHECK (grade IN ('A', 'B', 'C', 'D', 'E')),
  CONSTRAINT rs_student_id
    FOREIGN KEY (student_id) REFERENCES students (id),
  CONSTRAINT rs_department_course
    FOREIGN KEY (department, course)
    REFERENCES classes (department, course)
  ); 
INSERT INTO registered_students (student_id, department, course,
                                 grade)
  VALUES (10000, 'CS', 102, 'A');