Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Oracle 10g
Oracle 10g
UML
T_Empleado
nombres: string
direccion:string
telefono: string
fechaIngreso: date
antigedad(): int
SQL
ORACLE 10g
Una vez definidos los tipos, stos pueden utilizarse para definir
nuevos tipos, tablas que almacenen objetos de esos tipos, o
para definir el tipo de los atributos de una tabla. Una tabla de
objetos es una clase especial de tabla que almacena un objeto
en cada fila y que facilita el acceso a los atributos de esos
objetos como si fueran columnas de la tabla. Por ejemplo, se
puede definir una tabla para almacenar los Alumnos egresados
y otra para almacenar los que estn inscritos actualmente en
algn semestre de la siguiente manera:
La clave externa del modelo relacional expresa asociaciones uno-avarios con la clave primaria. El modelo de objetos de Oracle
proporciona una forma ms eficaz para expresar asociaciones uno-avarios. Oracle asigna un identificador nico a cada objeto en una fila
llamado OID. El OID hace posible que otros objetos referencien
objetos filas existentes en la BD. Oracle guarda estas referencias en el
tipo de dato llamado REF.
Un atributo de tipo REF almacena una referencia a un objeto del tipo
definido, e implementa una relacin de asociacin entre los dos tipos
de objetos. Estas referencias se pueden utilizar para acceder a los
objetos referenciados y para modificarlos; sin embargo, no es posible
operar sobre ellas directamente. Para asignar o actualizar una
referencia se debe utilizar siempre REF o NULL.
T_Empleado
Genera
1
nombres: string
direccion:string
telefono: string
fechaIngreso: date
T_Nomina
0..*
fechaPago: Date
Periodo: string
empleado: T_EMPLEADO
importe: NUMBER (10,2)
Periodo
Empleado
Importe
30/11/09
15/11/200930/11/2009
0000220208FC5E867B31A841D3827BC350C07AC2
8470401219E57C4740B27616E8D7AE5B52
3200
30/12/08
15/12/200830/12/2008
000022020860F0C29AA39D4B0C9F130A46C9E426
B170401219E57C4740B27616E8D7AE5B52
6200
fechaPago
Importe
30/11/09
3200
30/12/08
6200
T_Persona
nombres: string
direccion:string
telefono: string
curp: string
sexo: string
T_Profesor
cedula: string
nivelAcademico:string
especialidad: string
sueldo: float
T_Alumno
nocontrol: string
carrera:string
semestre: Int
grupo: string
T_Persona
nombres: string
direccion:string
telefono: string
curp: string
sexo: string
T_Profesor
cedula: string
nivelAcademico:string
especialidad: string
sueldo: float
T_Alumno
nocontrol: string
carrera:string
semestre: Int
grupo: string
T_Persona
NOTA:
nombres: string
direccion:string
telefono: string
curp: string
sexo: string
T_Profesor
cedula: string
nivelAcademico:string
especialidad: string
sueldo: float
T_Alumno
nocontrol: string
carrera:string
semestre: Int
grupo: string
Primera Forma
DIRECION TELEFONO
CURP
Laureles 121
9515706918
Benito Juarez 121
9515123456
Alamos 11
9515123456
Emiliano Zapata 66
95151654321
CAJA751207HOCRMM06
MERA781209HTCRMM09
MUGP600303HOCRMM06
AMWL800303HACRXX86
SEXO
M
F
M
M
Segunda Forma
SELECT VALUE (p) FROM persona p WHERE VALUE (p) IS OF (ONLY t_Alumno);
VALUE(P)(NOMBRES, DIRECCION, TELEFONO, CURP, SEXO)
--------------------------------------------------------------------------------
2
SELECT TREAT (VALUE (P) AS T_Profesor ).cedula,
TREAT (VALUE (P) AS T_Profesor ).nivelAcademico
FROM persona p;
3
SELECT nombres, TREAT (VALUE (P) AS
T_Profesor).nivelAcademico,
TREAT (VALUE (P) AS T_Profesor ).sueldo
FROM persona p WHERE VALUE (p) IS OF (ONLY t_Profesor);
4
SELECT VALUE (P)
FROM persona p WHERE VALUE (p) IS OF (ONLY
t_Alumno) AND sexo='F';
Adicionalmente pruebe estas instrucciones y comente los resultados
UPDATE persona P
SET VALUE(P) = T_ALUMNO('Wilches Ramiro Amado Miguel', 'Emiliano Zapata
66', '95151654321', 'AMWL800303HACRXX86', 'M', '68456', 'Maestria en Tec.
Informacion', 5, U')
WHERE TREAT(VALUE(P) AS T_Alumno).nocontrol = '68456';
T_Pedido
UML
idPedido: int
fecha: date
proveedor : string
T_DetallePedido
1..*
articulo: string
cantidad: int
precio : double
SQL
T_Pedido
idPedido: int
fecha: date
proveedor : string
<<multiset>> detalle: {T_DetallePedido}
T_DetallePedido
articulo: string
cantidad: int
precio : double
T_Pedido
idPedido: int
fecha: date
proveedor : string
<<multiset>> detalle: {T_DetallePedido}
T_DetallePedido
articulo: string
cantidad: int
precio : double
Oracle 10g
CREATE TYPE t_Detallepedidos AS OBJECT
(articulo VARCHAR2 (50), cantidad NUMBER, precio NUMBER (10,2));
idPedido
fecha
01/11/2009 Proveedora
escolar
proveedor
10/11/2009 La Balanza
Detalle
Articulo
cantidad
precio
C# avanzado
1234
Oracle 10 g Expert
790
999
Articulo
cantidad
precio
Resistol 870
45
Borrador
15
Considere lo siguiente:
INSERT INTO pedidos VALUES
(3,SYSDATE,Editorial trillas,NULL);
Intentamos agregar los elementos
Tabla anidada
nula