Pràctica ASI-C6-ASGBD: Pràctica Recursos Humans

De wikijoan
Salta a la navegació Salta a la cerca

Objectius

  • Unitat Didàctica: UD 1. Introducció a Oracle

Dins de la instal.lació estàndard del servidor Oracle vénen uns esquemes i aplicacions d'exemple. Per exemple, en una instal.lació 10g XE (EXpress Edition) ve l'esquema HR (Human Resources), que és un usuari i un script per tal que els usuaris disposin d'un esquema i unes taules per fer proves.

Desenvolupament

HR example.gif

En aquesta pràctica se't facilitarà el script hr_main.sql (pots descarregar-lo a http://krypton.fhda.edu/~lmeade/CIS52B2.html), i hauràs de crear les taules en el teu esquema (asi2aXX). Per tant, no has d'executar tal qual el codi que se't facilita, sinó que l'hauràs d'adaptar a les teves necessitats.

1) El primer que hauràs de fer és detectar, si cal amb l'ajuda del professor, les diferents parts del script. Distingim:

  • capçalera i crèdits
  • introducció de forma interactiva diferents paràmetres.
  • eliminació i creació de l'usuari HR
  • connexió com a usuari HR i codificació de caràcters: NLS_LANGUAGE i NLS_TERRITORY
  • formatació de la sortida del sqlplus (SET FEEDBACK 1,...)
  • creació de l'estructura de les taules (CREATE TABLE...)
  • creació d'una vista
  • inserció de les dades
  • creació explícit dels index
  • creació de dos procediments emmagatzemats i un disparador (el professor farà una introducció dels procedures).
  • creació de comentaris (COMMENT)

2) Després d'estudiar detingudament el script, hauràs de modificar-lo per tal d'executar-lo dins el teu esquema (treu tota referència a l'usuari hr i als espais de taula. Recorda que l'espai de taula de l'usuari asi2aXX és USERS). Hauràs d'executar el script sense errors (ho podràs comprovar mirant el log). També hauràs de ficar els DROP TABLE abans dels CREATE TABLE per tal que puguis executar el script repetidament. L'ordre d'esborrar les taules (i la vista), tenint en compte les dependències entre les taules, és:

DROP VIEW emp_details_view;

DROP TABLE JOB_HISTORY;
DROP TABLE EMPLOYEES CASCADE CONSTRAINTS;
DROP TABLE JOBS;
REM DROP TABLE DEPARTMENTS;
DROP TABLE LOCATIONS;
DROP TABLE COUNTRIES;
DROP TABLE REGIONS;

Nota: hi ha una relació bidireccional entre EMPLOYEES i DEPARTMENTS (un empleat pertany a un departament; un departament té un jefe que és un empleat). Per tant, es fa necessari utilitzar CASCADE CONSTRAINTS (i, de fet, eliminem la taula DEPARTMENTS).

3) Fés les següents SELECTS (inclou-les en el script):

  • Llista alfabèticament tots els usuaris de la regió Europe
  • llista les regions i número d'empleats de cada regió.
  • llista els oficis i número d'empleats de cada ofici, ordenats per número.
  • si tens temps, se't pot ocórrer un centernar de consultes...

Entrega

Entrega el script i el log de creació del script, i contesta dins del script les següents preguntes:

  • Quines taules s'han creat? Quines vistes s'han creat?
  • Quines relacions entre les taules s'han creat? Aquesta pregunta es contesta sola mirant la gràfica que se't facilita. Escriu la sentència on es creen aquestes relacions. Pensa en la lògica que tenen aquestes relacions.
  • Per què serveix una seqüència (SEQUENCE)?
  • quina és la informació que emmagatzema la taula job_history?
  • Recupera el comentari sobre el camp employees.salary (cerca com fer-ho en el Google) (compte!! posar el nom de la taula i el camp en majúscules: EMPLOYEES i SALARI).

Recursos

Durarda

2 hores


creat per Joan Quintana Compte, novembre 2009