BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
Microsoft SQL Server
NexusDB
CA-IDMS
SGBD NO LIBRES - GRATUITOS
Oracle Express Edition 9g, 10g, 11g (slo corre en un servidor,
capacidad limitada)
Microsoft SQL Server Express Edition (Es una edicin gratis de SQL Server
ideal para desarrollo y pequeas aplicaciones)
Microsoft SQL Server Compact Edition Bsica
Sybase ASE Express Edition para Linux (edicin gratuita para Linux)
DB2 Express-C
1.2. SISTEMA GESTOR DE BASE DE DATOS ORACLE:
Oracle es un SGBD orientado a la administracin de bases de datos tipo objeto-relacionales, sus
principales caractersticas son:
Entorno cliente/servidor.
Gestin de grandes bases de datos.
Usuarios concurrentes.
Alto rendimiento en transacciones.
Sistemas de alta disponibilidad.
Disponibilidad controlada de los datos de las aplicaciones.
Adaptacin a estndares de la industria, como SQL-92.
Gestin de la seguridad.
Autogestin de la integridad de los datos.
Opcin distribuida.
Portabilidad.
Compatibilidad.
Conectabilidad.
Replicacin de entornos.
@DJCV | Material de Apoyo
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
1.2.1. TIPOS DE DATOS EN ORACLE:
TIPO
CARACTERSTICAS
CHAR
Cadena de caracteres (alfanumricos) de longitud fija
VARCHAR2
Cadena de caracteres de longitud variable
VARCHAR
Cadena de caracteres de longitud variable
NCHAR
Cadena de caracteres de longitud fija que slo almacena
caracteres Unicode.
NVARCHAR2
Cadena de caracteres de longitud variable que slo
almacena caracteres Unicode
LONG
Cadena de caracteres de longitud variable
LONG RAW
Almacenan cadenas binarias de ancho variable
RAW
Almacenan cadenas binarias de ancho variable
LOB (BLOG, CLOB,
NCLOB, BFILE)
Permiten almacenar y manipular bloques grandes de datos
no estructurados (tales como texto, imgenes, videos,
sonidos, etc.) en formato binario o del carcter
BLOB
Permite almacenar datos binarios no estructurados
CLOB
Almacena datos de tipo carcter
NCLOB
Almacena datos de tipo carcter
BFILE
Almacena datos binarios no estructurados en archivos del
sistema operativo, fuera de la base de datos. Una columna
BFILE almacena un localizador del archivo a uno externo
que contiene los datos
ROWID
Almacenar la direccin nica de cada fila de la tabla de la
base de datos
UROWID
ROWID universal
NUMBER
Almacena nmeros fijos y en punto flotante
FLOAT
Almacena tipos de datos numricos en punto flotante
DATE
Almacena un punto en el tiempo (fecha y hora)
TIMESTAMP
Almacena datos de tipo hora, fraccionando los segundos
TIMESTAMP WITH
TIME ZONE
Almacena datos de tipo hora incluyendo la zona horaria
(explcita), fraccionando los segundos
TIMESTAMP WITH
LOCAL TIME ZONE
Almacena datos de tipo hora incluyendo la zona horaria
local (relativa), fraccionando los segundos
XMLType
Tipo de datos abstracto. En realidad se trata de un CLOB.
Tabla 1: Tipos de datos en Oracle
@DJCV | Material de Apoyo
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
LABORATORIO DIRIGIDO
1. OBSERVE EL SIGUIENTE MODELO DE BASE DE DATOS: MATRCULA:
FACULTAD
codigo_facultad
nombre_facultad
descripcion_facultad
CARRERA_PROFESIONAL
codigo_carrera
nombre_carrera
descripcion_carrera
codigo_facultad (FK)
DETALLE_MATRICULA
num_matricula (FK)
codigo_curso (FK)
estado_curso
promedio
REGULAR
codigo_alumno (FK)
obs_regular
EGRESADO
codigo_alumno (FK)
anio_egreso
ALUMNO
CURSO
codigo_curso
nombre_curso
creditos_curso
horas_teoria
horas_practica
ciclo_curso
codigo_alumno
nombre_alu
apellido_pat_alu
apellido_mat_alu
direccion_alu
telefono_alu
sexo_alu
codigo_carrera (FK)
MATRICULA
num_matricula
fecha_matricula
codigo_alumno (FK)
periodo_academico
2. DEFINA EL TIPO DE DATO QUE LE CORRESPONDA A CADA ATRIBUTO DE LAS TABLAS Y
MUESTRE UN EJEMPLO PARA CADA UNO:
A. Alumno
B. Matrcula
C. Detalle matrcula
D. Curso
@DJCV | Material de Apoyo
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
II.
SGBD ORACLE 11 G
En este acpite conoceremos el entorno de trabajo y algunas funcionalidades de Oracle
11g, como administracin de usuarios y creacin de una base de datos.
2.1. DESCRIPCIN DE ORACLE 11G:
2.1.1.
INGRESAR AL SGBD ORACLE 11G:
La primera forma para acceder ORACLE 11g EXPRESS
EDITION haga doble clic sobre el cono ubicado en su
escritorio.
La segunda forma se realiza a travs del
Men INICIO:
Clic en Oracle Database 11g Express
Edition
Clic sobre la opcin GET STARTED
Se le mostrar la ventana de administracin de Oracle 11g:
Para iniciar su trabajo como administrador de base de datos debe hacer clic sobre
el botn SESSIONS, se le direccionar a la siguiente ventana:
@DJCV | Material de Apoyo
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
Inicialmente deber ingresar
con el usuario SYSTEM, que
tiene el rol de DBA y privilegios
de SYSDBA, a travs del cual
puede
crear
usuarios,
esquemas,
modificar
parmetros, etc.
Registre los siguientes datos:
USERNAME: SYSTEM
PASSWORD: (el mismo que utiliz al
momento de la instalacin del producto)
2.1.2.
Ingresar al panel principal de administracin de Oracle 11g.
CREACIN DE USUARIOS:
Para acceder al panel de administracin de usuarios deber concectarse con el
usuario SYSTEM y hacer clic en la pestaa APPLICATION EXPRESS.
En la ventana que se le muestra deber ingresar los datos que se solicitan para la
creacin de usuarios. Existen dos tipos de usuarios que se pueden
ADMINISTRAR: NUEVOS y habilitar los USUARIOS EXISTENTES.
Para nuestras prcticas habilitaremos el usuario HR y crearemos al usuario
ADMINISTRATOR.
@DJCV | Material de Apoyo
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
A. CREAR UN USUARIO EXISTENTE: HR
El usuario existente HR est incluido dentro del paquete de instalacin del producto.
Este usuario es propietario de la base de datos de Recursos Humanos, la misma que
se podr visualizar cuando creemos al usuario.
Para su creacin haremos clic sobre la opcin USE EXISTING, luego aparecer una
ventana adicional que muestra los usuarios existentes, en la que elegiremos el usuario
HR, luego registrar los siguientes datos:
Database Username: HR
Application Express Username:
hr
Password: hr
Confirm Password: hr
Si el usuario ha sido creado con xito, le aparecer un mensaje de operacin realizada
satisfactoriamente. Invitndolo a loguearse con el usuario creado.
B. CREAR UN NUEVO USUARIO:
El nuevo usuario que crearemos nos servir para administrar la base de datos
MATRCULA.
Para su creacin deber conectarse con el usuario SYSTEM y hacer clic sobre la
pestaa APPLICATION EXPRESS (Tal como se indic en el literal A).
Luego deber elegir la opcin CREATE NEW, Y registrar los siguientes datos:
Database Username: ADMINISTRATOR
Application Express Username: administrator
Password: administrator
Confirm Password: administrator
Si el usuario ha sido creado con xito, se le mostrar el siguiente mensaje, que le indica
que puede loguearse con el usuario ADMINISTRATOR.
@DJCV | Material de Apoyo
10
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
2.2. CONEXIN Y MIGRACIN DE TABLAS DE ERWIN A ORACLE 11 G:
2.2.1.
CONEXIN Y MIGRACIN DE TABLAS DESDE ERWIN:
Para nuestro ejemplo crearemos la base de datos relacional MATRCULA, utilizando
la herramienta CASE ERWIN 7.3, en ella modelaremos las entidades, atributos y
relaciones; adems de establecer sus respectivas especificaciones. Tal como se
muestra a continuacin.
FACULTAD
CARRERA_PROFESIONAL
codigo_facultad
codigo_carrera
nombre_facultad
descripcion_facultad
nombre_carrera
descripcion_carrera
codigo_facultad (FK)
DETALLE_MATRICULA
num_matricula (FK)
codigo_curso (FK)
estado_curso
promedio
REGULAR
codigo_alumno (FK)
obs_regular
ALUMNO
CURSO
codigo_curso
nombre_curso
creditos_curso
horas_teoria
horas_practica
ciclo_curso
codigo_alumno
EGRESADO
nombre_alu
apellido_pat_alu
apellido_mat_alu
direccion_alu
telefono_alu
sexo_alu
codigo_carrera (FK)
codigo_alumno (FK)
anio_egreso
MATRICULA
num_matricula
fecha_matricula
codigo_alumno (FK)
periodo_academico
Para conectar y migrar nuestra base de datos desde ERWIN hacia Oracle 10g
deber ubicarse en la VISTA FSICA de su modelo relacional, desde all generar
su conexin a ORACLE, tal como se indica:
EN ERWIN:
Ir al men DATABASE.
Elegir la opcin DATABASE CONECCTION
@DJCV | Material de Apoyo
11
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
Se le mostrar la ventana de
autenticacin
con
los
requerimientos de informacin
que presenta el grfico.
El User Name representa el
usuario creado en Oracle y que
administrar la base de datos a
generar.
Complete los siguientes datos:
Database: Oracle 10g/11g
Authentication: Database Authentication
User Name: administrator
Password: ******
Connection String: XE
Para finalizar su conexin haga clic sobre el botn CONNECT.
Si la conexin no fue exitosa se le mostrarn mensajes de error que deber leer y
corregir, para luego volver a intentar la conexin.
@DJCV | Material de Apoyo
12
BASE DE DATOS I - II
2.2.2.
[GUA PRCTICA CON ORACLE 10G - 11G]
VERIFICACIN DE TABL AS MIGRADAS A ORACLE 11 G:
Para verificar las tablas migradas a ORACLE, deber acceder a su SGBD ORACLE
10g, ingresando con el usuario ADMINISTRATOR.
Una vez logueado, debe ubicarse en el explorador de objetos del usuario. Haga clic
sobre la opcin Object Browser.
Ahora, podr apreciar todas las tablas que model en Erwin y han sido generadas
en el SGBD ORACLE. Cada tabla se mostrar con sus respectivos atributos y
especificaciones:
@DJCV | Material de Apoyo
13
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
2.3. CREANDO UNA BASE DE DATOS EN ORACLE 11G A PARTIR DE UN SCRIPT
SQL E IMPORTANDO REGISTROS DESDE ARCHIVOS *.TXT:
2.3.1.
CREANDO UNA BD A TRAVS DE UN SRIPT SQL:
Para la creacin de la base de datos NORTHWIND utilizaremos el archivo
NorthwindOracle.sql, exportado del SGBD SQL. El mismo que administraremos con
el usuario ADMINISTRATOR.
Ingrese al SGBD Oracle 11g, loguendose con el usuario ADMINISTRATOR,
considerando los datos registrados al momento de su creacin:
Utilizando un editor de texto, abra el archivo NorthwindOracle.sql, en el se
mostrar el cdigo SQL para la creacin de las diferentes tablas contenidas en la
base de datos NORTHWIND. Copie todo su contenido utilizando los comando Ctrl
+ C:
CREATE TABLE "CATEGORIES"
(
"CATEGORYID" NUMBER(6,0),
"CATEGORYNAME" VARCHAR2(15),
CONSTRAINT "PK_CATEGORIES" PRIMARY KEY ("CATEGORYID") ENABLE
)
/
CREATE TABLE "CUSTOMERS"
(
"CUSTOMERID" CHAR(5),
"COMPANYNAME" VARCHAR2(40),
"CONTACTNAME" VARCHAR2(30),
"CONTACTTITLE" VARCHAR2(30),
"ADDRESS" VARCHAR2(60),
"CITY" VARCHAR2(15),
"REGION" VARCHAR2(15),
"POSTALCODE" VARCHAR2(10),
"COUNTRY" VARCHAR2(15),
"PHONE" VARCHAR2(24),
"FAX" VARCHAR2(24),
CONSTRAINT "PK_CUSTOMERS" PRIMARY KEY ("CUSTOMERID") ENABLE
)
/
CREATE TABLE "EMPLOYEES"
(
"EMPLOYEEID" NUMBER(6,0),
"LASTNAME" VARCHAR2(20),
"FIRSTNAME" VARCHAR2(10),
"TITLE" VARCHAR2(30),
"TITLEOFCOURTESY" VARCHAR2(25),
"BIRTHDATE" DATE,
"HIREDATE" DATE,
"ADDRESS" VARCHAR2(60),
"CITY" VARCHAR2(15),
"REGION" VARCHAR2(15),
@DJCV | Material de Apoyo
14
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
"POSTALCODE" VARCHAR2(10),
"COUNTRY" VARCHAR2(15),
"HOMEPHONE" VARCHAR2(24),
"EXTENSION" VARCHAR2(4),
"REPORTSTO" NUMBER(6,0),
"PHOTOPATH" VARCHAR2(255),
CONSTRAINT "PK_EMPLOYEES" PRIMARY KEY ("EMPLOYEEID") ENABLE,
CONSTRAINT "FK_EMPLOYEES_EMPLOYEES" FOREIGN KEY ("REPORTSTO")
REFERENCES "EMPLOYEES" ("EMPLOYEEID") ENABLE
)
/
CREATE TABLE "EMPLOYEETERRITORIES"
(
"EMPLOYEEID" NUMBER(6,0),
"TERRITORYID" VARCHAR2(20)
)
/
CREATE TABLE "SHIPPERS"
(
"SHIPPERID" NUMBER(6,0),
"COMPANYNAME" VARCHAR2(40),
"PHONE" VARCHAR2(24),
CONSTRAINT "PK_SHIPPERS" PRIMARY KEY ("SHIPPERID") ENABLE
)
/
CREATE TABLE "ORDERS"
(
"ORDERID" NUMBER(6,0),
"CUSTOMERID" CHAR(5),
"EMPLOYEEID" NUMBER(6,0),
"ORDERDATE" DATE,
"REQUIREDDATE" DATE,
"SHIPPEDDATE" DATE,
"SHIPVIA" NUMBER(6,0),
"FREIGHT" NUMBER(8,2),
"SHIPNAME" VARCHAR2(40),
"SHIPADDRESS" VARCHAR2(60),
"SHIPCITY" VARCHAR2(15),
"SHIPREGION" VARCHAR2(15),
"SHIPPOSTALCODE" VARCHAR2(10),
"SHIPCOUNTRY" VARCHAR2(15),
CONSTRAINT "PK_ORDERS" PRIMARY KEY ("ORDERID") ENABLE,
CONSTRAINT "FK_ORDERS_CUSTOMERS" FOREIGN KEY ("CUSTOMERID")
REFERENCES "CUSTOMERS" ("CUSTOMERID") ENABLE,
CONSTRAINT "FK_ORDERS_EMPLOYEES" FOREIGN KEY ("EMPLOYEEID")
REFERENCES "EMPLOYEES" ("EMPLOYEEID") ENABLE,
CONSTRAINT "FK_ORDERS_SHIPPERS" FOREIGN KEY ("SHIPVIA")
REFERENCES "SHIPPERS" ("SHIPPERID") ENABLE
)
/
CREATE TABLE "SUPPLIERS"
(
"SUPPLIERID" NUMBER(6,0),
"COMPANYNAME" VARCHAR2(40),
"CONTACTNAME" VARCHAR2(30),
"CONTACTTITLE" VARCHAR2(30),
"ADDRESS" VARCHAR2(60),
"CITY" VARCHAR2(15),
"REGION" VARCHAR2(15),
"POSTALCODE" VARCHAR2(10),
"COUNTRY" VARCHAR2(15),
"PHONE" VARCHAR2(24),
"FAX" VARCHAR2(24),
CONSTRAINT "PK_SUPPLIERS" PRIMARY KEY ("SUPPLIERID") ENABLE
)
/
CREATE TABLE "PRODUCTS"
(
"PRODUCTID" NUMBER(6,0),
"PRODUCTNAME" VARCHAR2(40),
"SUPPLIERID" NUMBER(6,0),
"CATEGORYID" NUMBER(6,0),
"QUANTITYPERUNIT" VARCHAR2(20),
"UNITPRICE" NUMBER(8,2),
@DJCV | Material de Apoyo
15
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
"UNITSINSTOCK" NUMBER(6,0),
"UNITSONORDER" NUMBER(6,0),
"REORDERLEVEL" NUMBER(6,0),
CONSTRAINT "CK_PRODUCTS_UNITPRICE" CHECK (UnitPrice >= 0)
ENABLE,
CONSTRAINT "CK_REORDERLEVEL" CHECK (ReorderLevel >= 0) ENABLE,
CONSTRAINT "CK_UNITSINSTOCK" CHECK (UnitsInStock >= 0) ENABLE,
CONSTRAINT "CK_UNITSONORDER" CHECK (UnitsOnOrder >= 0) ENABLE,
CONSTRAINT "PK_PRODUCTS" PRIMARY KEY ("PRODUCTID") ENABLE,
CONSTRAINT "FK_PRODUCTS_CATEGORIES" FOREIGN KEY ("CATEGORYID")
REFERENCES "CATEGORIES" ("CATEGORYID") ENABLE,
CONSTRAINT "FK_PRODUCTS_SUPPLIERS" FOREIGN KEY ("SUPPLIERID")
REFERENCES "SUPPLIERS" ("SUPPLIERID") ENABLE
)
/
CREATE TABLE "ORDER_DETAILS"
(
"ORDERID" NUMBER(6,0),
"PRODUCTID" NUMBER(6,0),
"UNITPRICE" NUMBER(8,2),
"QUANTITY" NUMBER(6,0),
"DISCOUNT" NUMBER(7,2),
CONSTRAINT "CK_DISCOUNT" CHECK (Discount >= 0 and (Discount <=
1)) ENABLE,
CONSTRAINT "CK_QUANTITY" CHECK (Quantity > 0) ENABLE,
CONSTRAINT "CK_UNITPRICE" CHECK (UnitPrice >= 0) ENABLE,
CONSTRAINT "PK_ORDER_DETAILS" PRIMARY KEY ("ORDERID",
"PRODUCTID") ENABLE,
CONSTRAINT "FK_ORDER_DETAILS_ORDERS" FOREIGN KEY ("ORDERID")
REFERENCES "ORDERS" ("ORDERID") ENABLE,
CONSTRAINT "FK_ORDER_DETAILS_PRODUCTS" FOREIGN KEY ("PRODUCTID")
REFERENCES "PRODUCTS" ("PRODUCTID") ENABLE
)
/
CREATE TABLE "REGION"
(
"REGIONID" NUMBER(6,0),
"REGIONDESCRIPTION" CHAR(50)
)
/
CREATE TABLE "TERRITORIES"
(
"TERRITORYID" VARCHAR2(20),
"TERRITORYDESCRIPTION" CHAR(50),
"REGIONID" NUMBER(6,0)
)
/
Ahora, acceda a la opcin SQL
Script y haga clic en el botn
CREATE.
Se le mostrar una ventana SCRIPT EDITOR, en la que pegar (Ctrl + V) el script
copiado anteriormente, adems es necesario asignar un nombre al SCRIPT,
utilizaremos NORTHWIND.
@DJCV | Material de Apoyo
16
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
Haga clic en el botn RUN.
Aparecer una ventana de
confirmacin, haga clic en el
botn RUN NOW.
Si su script no tuvo problemas en la ejecucin, se le mostrar la ventana:
Ahora, si usted revisa su
almacn de objetos podr ver las
tablas que han sido creadas, las
mismas que an no tienen
ningn dato registrado.
Para ello procederemos con la
importacin de datos.
2.3.2.
IMPORTANDO REGISTROS DESDE ARCHIVOS *.TXT:
Si la importacin de datos fue exitosa, se le mostrar el repositorio indicando cero
(0) fallos y la cantidad de registros importados, tal como se muestra:
Para importar los datos de las tablas pendientes,
deber repetir el mismo procedimiento con los
dems archivos.
No olvide tener en cuenta las reglas de integridad
de datos y los formatos del texto de exportacin e
importacin.
@DJCV | Material de Apoyo
17
BASE DE DATOS I - II
[GUA PRCTICA CON ORACLE 10G - 11G]
2.4. MIGRANDO UNA BASE DE DATOS DESDE UN ARCHIVO DMP:
Para la creacin de la base de datos NORTHWIND utilizaremos el archivo northwind.dmp.
Luego debe seguir los siguientes pasos:
Crear un nuevo usuario a travs de la interfaz del SGBD Oracle.
Copiar el archivo northwind.dmp en la raz del disco C:/.
Ir al men principal y acceder a SQL PLUS:
En la ventana de comandos que aparece deber digitar la siguiente lnea de cdigo:
$IMP usuario/contrasea FILE=C:/northwind.dmp FULL=YES
Si la migracin fue exitosa se le mostrar la siguiente ventana, que detalla las tablas y
registros migrados.
Ahora podr visualizar en la interfaz del SGBD Oracle, las tablas y registros importados.
@DJCV | Material de Apoyo
18