You are on page 1of 96

BASE DE DATOS

INDICE

SISTEMA MANEJADOR DE BASE DE DATOS.................................................6


NIVELES DE DESCRIPCION DE DATOS...................................................................................8

ESQUEMA DE BASE DE DATOS...............................................................................................9


Ejemplo de Esquemas........................................................................................................... 10
Agencia de Viajes.................................................................................................................. 10

FACTURACIN.............................................................................................12

RENTA CAR................................................................................................13

BIBLIOTECA..................................................................................................14

VENTA DE COMPUTADORAS......................................................................14

ALIMENTACIN............................................................................................15
INFORMACION.......................................................................................................................... 19

DEFINICIN DE REGISTRO..................................................................................................... 19

MODELO ENTIDAD RELACION............................................................................................ 19

ENTIDAD................................................................................................................................... 19

TIPO DE ENTIDAD.................................................................................................................... 20
OCURRENCIA DE UNA ENTIDAD........................................................................................ 20
CONJUNTO DE ENTIDADES................................................................................................ 20
NOTACIN Y REPRESENTACIN GRAFICA......................................................................21

CONCEPTO DE RELACIN..................................................................................................... 21

TIPOS DE RELACION............................................................................................................... 21

OCURRENCIA DE UN TIPO DE RELACION............................................................................21

CONJUNTO DE RELACIONES................................................................................................. 22

TIPOS DE RELACIONES.......................................................................................................... 23
Relacin 1:1........................................................................................................................... 23
Relacin 1: Muchos................................................................................................................ 23
Relacin Muchos: Muchos..................................................................................................... 24
Relacin 0: Muchos................................................................................................................ 24

Atributo:.................................................................................................................................... 25

1
BASE DE DATOS

PROPIEDADES DE UN ATRIBUTO.......................................................................................... 25
Atributo Simple o Repetitivo................................................................................................... 25
Atributo Elemental o compuesto............................................................................................ 25
Atributo Obligatorio o Facultativo.......................................................................................... 26

RESTRICCIONES DE INTEGRIDAD......................................................................................... 27
Restricciones de Integridad Esttica.....................................................................................27
Restricciones de Integridad Dinmica....................................................................................27

Tipos de Conjuntos.................................................................................................................. 27

OTRAS DEFINICIONES IMPORTANTES..................................................................................28

Diseo Lgico........................................................................................................................... 28

Tabla.......................................................................................................................................... 28

Clave Principal.......................................................................................................................... 28

Clave Fornea........................................................................................................................... 28

CONCEPTO DE NORMALIZACIN.............................................................28
Formas normales..................................................................................................................... 28
1ra Forma Normal.................................................................................................................. 28
2da Forma Normal................................................................................................................. 30

EJEMPLOS MODELOS ENTIDAD-RELACIN...........................................33


NOMINA................................................................................................................................. 35
RECAUDACION..................................................................................................................... 37
Modelo de una clnica............................................................................................................ 38
CORRECCION DE LA PRUEBA............................................................................................ 39

SEGUNDO TRIMESTRE..............................................................................40

SQL................................................................................................................40
Create table nombre_tabla.............................................................Error! Marcador no definido.

Select............................................................................................... Error! Marcador no definido.

Consultas........................................................................................ Error! Marcador no definido.


Select........................................................................................ Error! Marcador no definido.

SALIDA............................................................................................ Error! Marcador no definido.


Distinct......................................................................................Error! Marcador no definido.
Where.......................................................................................Error! Marcador no definido.

EXPRESIONES ARITMTICAS....................................................................43
CONDICIONES MULTIPLES..................................................................................................... 43

AND........................................................................................................................................... 43

OR.............................................................................................................................................. 43

2
BASE DE DATOS

IN................................................................................................................................................ 44

BETWEEN................................................................................................................................. 44

VALORES NULL........................................................................................................................ 44

ORDER BY................................................................................................................................ 45

FUNCIONES.............................................................................................................................. 46

FUNCIONES DE CARACTERES:............................................................................................. 46

CHR........................................................................................................................................... 46

INITCAP..................................................................................................................................... 46

LOWER...................................................................................................................................... 46

LPAD.......................................................................................................................................... 47

LTRIM......................................................................................................................................... 47

RPAQ......................................................................................................................................... 47

RTRIM.............................................................................................. Error! Marcador no definido.

SUBSTR..................................................................................................................................... 48

UPPER....................................................................................................................................... 48

FUNCIONES DE CARACTERES QUE RETORNAN NUMEROS.............................................48

INSTR......................................................................................................................................... 48

LENGTN..................................................................................................................................... 49

FUNCIONES ARITMTICAS.........................................................................49
GREATEST.............................................................................................................50

ARITMTICA DE FECHA.......................................................................................................... 51

FUNCIONES DE AGRUPACION:..................................................................52
SUM........................................................................................................................................... 52

AVG............................................................................................................................................ 52

MIN............................................................................................................................................. 52

COUNT:...................................................................................................................................... 53

STDDEV..................................................................................................................................... 53

VARIANCE:................................................................................................................................ 53

GROUP BY................................................................................................................................. 53

3
BASE DE DATOS

HAVING...................................................................................................................................... 54

UNION DE DOS O MAS TABLAS.................................................................55

OUTER JOINS...............................................................................................57
OPERADORES DE CONJUNTOS............................................................................................. 58

INTERSECT............................................................................................................................... 59

MINUS........................................................................................................................................ 59

ROLLBACK:.............................................................................................................................. 60

COMMIT..................................................................................................................................... 60

UPDATE..................................................................................................................................... 60

TRUNCATE................................................................................................................................ 60

VISTAS....................................................................................................................................... 61
INDICES................................................................................................................................ 61
REPORTE:............................................................................................................................. 61

ANEXOS.........................................................................................................89

4
BASE DE DATOS

CONCEPTOS BASICOS DE UN SISTEMA MANEJADOR


DE BASE DE DATOS

El desarrollo de los sistemas administradores de bases de datos se debi en


gran parte a los problemas presentados con los sistemas de procesamiento de
archivos convencionales.

PROGRAMAS
SISTEMA SISTEMA
SISTEMA DE DE
DE AYUDA NOMINA
REGISTRO ECONOMICA

ARCHIVOS

El uso de sistemas independientes del procesamiento de archivos, ocasiona


una gran redundancia de datos implica duplicacin de los elementos de datos
en diferentes archivos. Por ejemplo el nmero de cursos en los que esta
inscrito un estudiante puede almacenarse en uno de los archivos del sistema
de registro en un archivo del Sistema de Ayuda Econmica. Si un estudiante
es empleado de la Universidad y beneficiario de una beca su nombre y
direccin podra estar apareciendo en tres lugares distintos, la desventaja ms
obvia de la redundancia de datos, es el espacio de almacenamiento adicional
que se requiere sin embargo hay problemas graves pues la misma informacin
se almacena varias veces y por lo tanto debe actualizar varias veces lo que
requiere uso de recurso humano para controles, mayor tiempo de computo ms
operaciones de entrada-salida.

Damos una solucin:

REGISTRO AYUDA NOMINA ASESORIA


PROGRAMAS ECONOMICA

BASE DE
DATOS
INTEGRADA

5
BASE DE DATOS

En esta figura se muestra un problema sobre redundancia de datos la


informacin de todos los sistemas de archivos se agrupan en una sola base de
datos integrada para toda la universidad que contiene solo una copia de cada
elemento de datos lgicos de tal manera que se elimina la redundancia.

La base de datos en si consta de un conjunto de archivos las diferentes


aplicaciones que requieren el mismo elemento de datos pueden compartir el
archivo que contenga la informacin necesaria.

Los programas de aplicacin que trata directamente con los archivos fsicos
son dependientes de los datos, es decir dependen de caractersticas como el
formato de registros y la organizacin de los archivos, siempre que estas
caractersticas se cambian los programas deben modificarse.

Problemas semejantes a los descritos pueden evitarse haciendo que los


programas de aplicacin sean independientes de detalles como la organizacin
del archivo y el formato de registros.

6
BASE DE DATOS

REGISTRO AYUDA NOMINA


ECONOMICA

SOLICITUD DESCRIPCION
DE UN REGISTRO
LOGICO SMBD DE LAS
CORRESPOND
ECIA
DE LOS DATOS

E/S FISICA

Los programas de usuario no tratan directamente con los archivos de la base


de datos sino que tiene acceso a los datos por medio de solicitudes al sistema
manejador de base de datos.
Los programas de aplicacin solicitan datos en un nivel lgico con
independencia de cmo estn realmente almacenados en los archivos por
ejemplo:
Un programa puede solicitar informacin de la inscripcin actual de un
estudiante en particular al SISTEMA MANEJADOR DE BASE DE DATOS
determina que archivos fsicos esta implicado y como acceder a ellos haciendo
referencia a un descripcin de la correspondencia de los datos almacenados, la
independencia de los datos proporcionados por este enfoque significa que las
estructuras de los archivos se pueden cambiar sin afectar a los programas de
aplicacin.

NIVELES DE DESCRIPCION DE DATOS

7
BASE DE DATOS

El uso de un sistema administrador de base de datos hace que los programas


de aplicacin sean independientes de la forma de almacenar fsicamente los
datos. Con los sistemas de archivos convencionales el programador se
encargaba de la descripcin de la organizacin y en general de la tcnica de
indexacin de archivos. La informacin que almacena un sistema manejador de
base de datos SMBD puede considerarse de distintas formas segn las
necesidades del usuario, la ms general de dichas formas es una descripcin
completa de la BASE DE DATOS llamada ESQUEMA

ESQUEMA DE BASE DE DATOS

Ejemplo de Subesquema de estudiantes universidad.

requisito
ESPECIALIDAD DESCRIPCIO DEPTO NUMERO
D N

especializado en

Estu
ID NOMBRE DIRECCIO ID NOMBRE DEPTO OFICINA
N
Estudiante Profesor asesor

Beneficiario Estudiante-empleado Profesor-empleado

TIPO CANTIDAD ID EMPLEO SUELDO

Ayuda Econmica Nmina

8
BASE DE DATOS

Ejemplo de Esquemas

Grado Profesor

Especialidad ID Nombre Asignatura

Profesor Alumno
Profesor Ocupacin

Alumno

ID Nombre Lug_Trab Telef. ID Ocupacin

Alumno Representante
Representante

ID Nombre Lug. Trab Telef.


Representante - Ocupacin

Agencia de Viajes

Cliente

CI Nombre Apell Direcc Telef. Cod. Ag.

Tipo - transporte Empleado

Cod Nombre Lugares Transporte Cod. Nombre Sueldo

9
BASE DE DATOS

Rol de Pagos

Empleado
Empleado tiene carga Cargos

Dept. RD Nombre Dir Telef. Fecha Ini Cargo Cod Nombre

Jornada de Trabajo

Horario Departamento

Cod Hora In Hora Sal Cod Nombre

Concepto Rol

Cod Tipo Nombre Aporte Imp Fond Ses


I E

Movimien. rol

Cod Fecha Valor Cod


Concepto Id

Trans Variables

Cod Fecha Cant Valor

10
BASE DE DATOS

Consultorio Mdico

Paciente

N Nombre C.I. Sexo Est.


Ficha Ciul

Paciente Mdico
Mdico

Cod C.I. Sexo Esp

Mdico Empleado Historial

C.I. Espec Sueldo Deduccin N Fecha Enferm Trat Med


Ficha Trat

Facturacin

Cliente Proveedores

Id Cliente Nombre Dire Telef Mail Cod Nombre Dir Telef

Producto Cab. Fact

Cod Nombre Precio F.E. Stock Id Cliente Fecha RUC


F.O

Detalle Factura

Id Cod Cant Precio


Cliente Prod Detalle Prov Prod

Codigo Codigo
Hist - Prec Producto Producto

Cod Fecha Precio


Prod
11
BASE DE DATOS

Renta Car

Vehculo

Cod Chasis N Marca Color Matr Placas


Matri

Factura

N Cant Descripcin Tiempo Precio Total


Fact

Mantenimiento

Cod Servicios Telfono

Cliente
Cliente

C.I. Nombre Direc Telef.

Cliente empleado

Empleado Garanta

ID C.I. Nombre Direc Tipo Costo

12
BASE DE DATOS

Biblioteca

Libro

Cod Nombre Materia Autor Edit


Libro

Usuario Prstamos

C.I. Nombre Direccin Telef. Curso Esp Cod Fecha Fecha Usuario
Prest Entrega

Empleado

Nombre Direcc Telef

Venta de Computadoras

Proveedor Prod. Proveedor

Cod Nombre Direccin Telef. Mail Cod - Prod Cod - Proveedor

Cliente Producto

Cod Nombre Direccin Telef. Mail Cod Nombre Descripcin Precio

Cabecera Factura Detalle Factura

Id. Cliente Fecha Fact RUC N Fact Cod Emp Cod Id. Cliente Cant
Prod

Empleado que emite la factura Historial Precio

Cod Nombre Direccin Telef Cargo Cod Precio Fecha 13


Prod
BASE DE DATOS

Alimentacin

Paciente

N Ficha Nombre Direccin Telef.

Enfermedades
del Paciente Enfermedad

Cod. Fact. Cod. Enfer Fecha Inicio Cod Enf Nombre Status

Cod Kit Cod Enf Descripcin

14
BASE DE DATOS

Renta Car
Cab Fact

Cod. Fecha RUC Cod ID


Prod Cliente

Vehculo

Cod. N Chasis Placas Matricula Color Modelo Descuento


Motor

Cliente Mantenimiento

ID Nombre Telef. Direc Mail Cod Servicio Tiempo


Ven

Vendedor Garanta

Cod C.I. Nombre Dir Cargo Tipo Valor


Ven Vehculo

Tiempo
Detalle
Horas Das Km/h
Cod Valor Id
Ven Cliente Historial - Precio

Cod Valor Fecha


Ven

15
BASE DE DATOS

BANCO

Cliente
Pertenece al banco
CI Nombre Apellido Direccin Telef.
Banco
COD Nombre Direccin RUC Tipo Tiene la cuenta
Cuenta
Nomina Saldo CI Tipo cuenta
Trabajo
en
Empleado
Prstamo
CI Nombre Dep. Cargo Cod.
Nmero Valor

Cargo Ocupa el cargo

Cod Descripcin

HOJA DE CONTROL DE DOCUMENTOS

Empleado
Cod Nombre Direccin Tlf. Sueldo paso

Empleado trabaja

Departamento Empresa Tipo Condicin

Cod Nombre Cod Nombre Cod Nombre Cod Nombre

Dto. de la empresa

Cod Nombre Asunto Tipo documento Fecha Empleado enva Tipo condicin

N Empleado Fecha Accin


Dpto responsable. Total 16
.
BASE DE DATOS

BOLETOS DE TRANPORTES

Historial/precio

Cliente
Cod Ruta Precio Fecha
Cod. Nombre CI Telf. Direccin Compra de
boletos Precio de
Ruta cada ruta
N
N. Cod. Cod. Cod. Cod. Descripcin Tiempo
Empleado . Cliente Empleado Ruta Ruta

Cod. Nombre Direccin Telf. CI.


En el que
Vehculo viaja
Cargo
Cod Placa #Mad #chasis color
Cod. Direccin
Tipo de servicio

Cod. Tipo de
vehculo vehculos

17
BASE DE DATOS

INFORMACION

Designamos con la palabra informacin una pareja de elementos de los cuales


el primero constituye el nombre de la informacin y el segundo su valor tambin
llamado dato.

La informacin es un procesamiento de datos que cumplen con ciertas


caractersticas.

DEFINICIN DE REGISTRO

Se designa generalmente como registro de informaciones elementales


expresadas por su valor con una caracterstica comn.

Ejemplo:

PRODUCTO

COD NOMBRE PRECIO


1 COLAS 1.00

MODELO ENTIDAD RELACION

Conceptos Bsicos

ENTIDAD

Es una cosa concreta o abstracta perteneciente a la realidad de la cual


queremos grabar informacin. Una entidad existe nicamente si est
relacionada a un individuo o un grupo que le considere como un todo. Le
confiere una existencia autnoma y la distingue de otras entidades y de su
medio ambiente.

Ejemplo

PAIS REGIONES PRODUCTOS

CLIENTES DE UNA RED ELECTRICA

Generalmente en un proceso de descripcin no interesa a cada elemento


individual real o potencial ms se considera las clases de elementos as
hablando de pas lo definiremos como un territorio que tiene una autonoma

18
BASE DE DATOS

poltica y un nombre especfico para este caso diremos que pas es un tipo de
entidad.

Ejemplo
Pas TIPO DE ENTIDAD

La clase de todas las entidades posibles de este tipo es decir todas las
entidades posibles que verifiquen la definicin de pas.

TIPO DE ENTIDAD

Se clasifica todas las entidades posibles del mundo real que verifican la
definicin constitutiva del tipo.

Ejemplo: Pas

OCURRENCIA DE UNA ENTIDAD

Es una entidad individual de un tipo dado, es decir un elemento de una clase


constituida por este tipo. Las expresiones de entidad y ocurrencia de una
entidad son equivalentes.

Ejemplo de Ocurrencia de Entidad

PAIS
ECUADOR
COLOMBIA
BELGICA
EEUU.

CONJUNTO DE ENTIDADES

Clasifica las entidades del mismo tipo que existe en un instante particular

Pases Bolivarianos

Pases Arca Andina

Unin Europea

Pases de la OPEP

19
BASE DE DATOS

NOTACIN Y REPRESENTACIN GRAFICA

Se representa los nombres de los tipos de entidades con letras maysculas y


las ocurrencias de las entidades con letras minsculas

CONCEPTO DE RELACIN
Una relacin est definida por una correspondencia entre 2 o varias entidades
no necesariamente distintas en donde cada una asume un rol dado si
quisiramos registrar la informacin relativa a est correspondencia una
relacin puede tener uno o varios atributos.

Ejemplo: La afectacin econmica de la regin o un pas especifico.

TIPOS DE RELACION
Clasifica todas las relaciones posibles de la realidad que verifica la definicin
constitutiva del tipo.

Utilizaremos la expresin R(E1,E2,..................En) para designar un tipo de


relacin definida en los tipos de entidades desde E1,E2.......En no
necesariamente distintos

Como para el tipo de entidad tambin utilizaremos las letras maysculas para
representar el nombre del tipo de relacin llamaremos grado de tipo de relacin
al nmero del tipo de entidad no necesariamente distintos entre los cuales el
tipo de relacin es definida.

Ejemplo

El TR de la relacin REGION PAIS es de grado 2

OCURRENCIA DE UN TIPO DE RELACION

Es la relacin de un tipo dado es decir un elemento de la clase constituida por


este tipo.

20
BASE DE DATOS

CONJUNTO DE RELACIONES

Clasifica las relaciones del mismo tipo que existen en un instante particular

PROPIEDADES BASICAS DE UN TIPO DE RELACION Todo tipo de relacin


es caracterizado por dos propiedades la existencia y la multiplicidad de
ocurrencias estas dos propiedades distintas pueden ser generalizadas por la
propiedad global de conectividad.

Ejemplos PAIS
RELACION REGION

P1R1 R1
P1 P1R2 R2
P2 P2R3 R3
P3 P2R4 R4

Existencia
Pas: Es considerado como pas toda unidad de territorio con autonoma
poltica.

Regin: Constituye una parte dentro del conjunto de la unidad geogrfica


que constituye un pas

Relacin: Expresa la propiedad o pertenencia de una regin dada a un pas


dado.

De este ejemplo se puede concluir que una ocurrencia de pas puede existir sin
dar lugar a una divisin de regiones.

Toda ocurrencia de Regin implica la existencia de una relacin con Pas

EMPLEADO RELACION DEPARTAMENTO

E1 E1D1 D1
E2 E2D1 D2
E3 E3D2 D3
E4 E4D3 D4

21
BASE DE DATOS

PRODUCTO RELACION CLIENTE

P1 P1C1 C1
P2 P1C2 C2
P3 P3C3 C3

TIPOS DE RELACIONES

Bsicamente 3 tipos:

Relacin 1:1 Una ocurrencia de una entidad se relaciona con una ocurrencia
de otra entidad.

Relacin 1: Muchos Una ocurrencia de una entidad se relaciona con varias


ocurrencias de otra entidad

22
BASE DE DATOS

Relacin Muchos: Muchos Varias ocurrencias de una entidad se relaciona


con varias ocurrencias de otra entidad

Relacin 0: Muchos

23
BASE DE DATOS

Atributo: Caracterstica o cualidad de una entidad, puede tomar una o varios


valores o grupo de valores

Ejemplo

Entidades Atributos Valor


Pas Nombre del Pas Ecuador
Superficie 283.561 KMZ
Poblacin 8540.000 HB
Nombre-Provincias Pichincha, Guayas, Esmeraldas

Valor: Es una cadena de caracteres.

Tipo de Valor.- Clasifica a todos los valores posibles que verifiquen la


definicin del tipo. Esta definicin puede ser dada por la lista de elementos de
las clases, o por la propiedad que los miembros de la clase deben cumplirla.

Conjunto de Valores.- Es la clase de valores del mismo tipo que existen en


un instante particular

PROPIEDADES DE UN ATRIBUTO

Atributo Simple o Repetitivo.

Un atributo es simple si para una ocurrencia de un tipo de entidad o de


relacin, el no puede tomar ms que un solo valor.

Es repetitivo, si para una ocurrencia de un tipo de entidad o relacin el puede


tomar varios valores de un mismo tipo.

Ejemplo: Cdigo de una tabla de referencia como sexo, tipo de sangre, etc.

Atributo Elemental o compuesto.

Un Atributo es compuesto si para una ocurrencia de un tipo de entidad o


relacin, le corresponde un grupo de valores de tipos diferentes y puede ser
descompuesto en otros atributos, de tipo diferente en el grupo de valores.

Un atributo que no se le puede descomponer es llamado elemental.

Ejemplo: Un atributo DIRECCIN Puede ser descompuesto en 4 atributos:

NOMBRE CALLE
NUMERO EN LA CALLE

24
BASE DE DATOS

NOMBRE INTERSECCION
NOMBRE CIUDAD

Atributo Obligatorio o Facultativo.

Todo atributo de un tipo de entidad en principio es considerado como


obligatorio, est unido por definicin al sujeto que el describe. Se puede hacer
sin embargo que el atributo no tenga significado en el caso de ciertas
ocurrencias del tipo de entidad. Hablaremos entonces de valor inexistente.

Notacin: Se utilizan las letras maysculas para representar el nombre de un


atributo o valor y letras minsculas para representar el nombre de valores de
un tipo dado.
Para designar un tipo de entidad o un tipo de relacin con sus atributos
empleamos las siguientes expresiones:

PARA UN TIPO DE ENTIDAD: E(A1,A2,...........AN)

PARA UN TIPO DE RELACION. R(E1,E2...............EN; A11,A12,...........A1N, A21...)

Sntesis de los Objetivos Conceptuales

El modelo Entidad_Relacin es un modelo general no especfico a un problema


particular que el analista utilizar para clasificar y estructurar la informacin
contenida en las aplicaciones escritas por los usuarios.

Este modelo se basa en cuatro objetos conceptuales: tipo de entidad, tipo de


relacin, atributo y valor

El anlisis conceptual de la informacin tendr por objetivo definir el mximo


significado de la informacin contenida en una situacin dada, poniendo en
evidencia:

Los tipos de entidad significativos y los atributos que les caracteriza.

Los tipos de relacin que existen entre estos tipos de entidad y los
atributos que los caracteriza.

Los tipos de valor relacionadas a los atributos

25
BASE DE DATOS

RESTRICCIONES DE INTEGRIDAD

DEFINICION
Una estriccin de integridad (C.I.) es una propiedad, no representada por los
conceptos bsicos del modelo que deben satisfacer las informaciones
pertenecientes a la base de datos.

Se distingue las restricciones estticas y las restricciones dinmicas.

Restricciones de Integridad Esttica

Propiedad que debe ser verificada a todo momento; es decir independiente de


cambios de estado de la base de datos.

Ejemplos

Poblacin >0

Restricciones de Integridad Dinmica

Propiedad que define la validez de cambios de estado de la base de datos. Es


una regla de transicin que define las secuencias posibles de cambios de
estado de la base de datos.

Ejemplos

La poblacin de un pas no puede decrecer, ms la poblacin de una regin


puede disminuir.
Empleado activoinactivo
Estados de pago de emp elec

Tipos de Conjuntos.- Hace la representacin de una asociacin de las


entidades que ella relaciona, una definicin de rol de cada entidad y de la
clase funcional de la relacin, as como tambin las restricciones de
existencias que le afectan.

Para cada tipo de conjuntos es necesario precisar al momento de una


definicin de una base de datos las siguientes caractersticas:

El nombre del tipo de conjuntos (obligatorio)


La clase funcional de la relacin (obligatorio).
La condicin de mantenimiento de la relacin (opcional)
Un titulo (opcional)
Un sinnimo (opcional).

26
BASE DE DATOS

OTRAS DEFINICIONES IMPORTANTES

Diseo Lgico

Es el manejo eficiente de un arreglo de datos

Tabla

Un conjunto de filas relacionadas con registros, columnas relacionadas con


atributos y claves que identifican un registro.

Clave Principal.- Es el atributo o atributos que identifica de manera nica a un


registro.

Clave Fornea.- Es el atributo o conjuntos de atributos que identifica un grupo


de registros.

Ejemplo: ENTIDAD DEPARTAMENTO

Columnas

Dep. Dep. MGR

No Name No

CO1 Informtica 030

E11 Operacin 090


Fila Tabla

Concepto de Normalizacin

Podemos decir que es la gua para desarrollar un diseo lgico aceptable para
una correcta organizacin del modelo entidad relacin

Formas normales

1ra Forma Normal Se dice que una relacin esta en primera forma
normal si se ha eliminado campos repetitivos

Dep Dep. EMP Last Job

27
BASE DE DATOS

No Name No. Name Code

Col Info 0.30 Kwan 60

EMP Last Job MGR

No. Name Code No

130 Quintana 55 030

Depart. Empleados

Contable Emp 11 Emp 12 Emp 13 Emp 14

Sistema Emp 21 Emp 22 Emp 23

Persona Emp 31

Bodega Emp 41 Emp 42

Despacho Emp 51

PROBLEMA: El nmero de campos de un registro varia con el numero de


empleados de un departamento.

SOLUCION: Ubicar los campos repetitivos en una tabla separada identificando


las relaciones entre las tablas separadas.

28
BASE DE DATOS

Departamento KP Empleados KF

KP
No. Nombres Cod No.

Emp Trabajo Depar


030 KWan 60 C01
040 Henderson 54 E11
130 Quintana 55 C05
290 Parken 42 E45
300 Smitt 48 C01
310 Sergio 43 E11

2da Forma Normal Una relacin se encuentra en 2da forma normal si


primeramente se encuentran en 1ra forma normal y adicionalmente no existe
redundancia de datos.

Problema: 1) Un cambio simple causa mltiples actualizaciones del registro


2) Hay redundancia de datos en los nombre de departamento

No Cod No
Emp Nombre Trab Depat
030 Kwan 60 C01 No. Dept MGM
090 Henders 54 E11 Dept Nombre No.
130 Quintana 55 C11 C01 Infor 030
290 Parker 42 E11 E11 Oper 090
Smith 48 E11
300 Setrigh 43 E11
30

Problema: 1) Un cambio simple causa mltiples actualizaciones del registro


2) Hay redundancia de datos en los nombre de departamento

Solucin: Ubicar
los datos
No. Nombre Cod Depat Dep. MGM redundantes en una
tabla separada
Emp. Trab No. Nombre No.

030 Kwan 60 C01 Info 030


090 Henders 54 E11 Oper 090
130 Quintana 55 C01 Info 030
210 Parker 42 E11 Oper 090
300 Smith 48 E11 Oper 090
30 Setrigh 43 E11 Oper 090
29
BASE DE DATOS

Tercera Forma Normal

Una relacin se encuentra en tercera forma normal si previamente se


encuentra el 2da forma norma y adicionalmente no existen atributos no
dependientes de la clave principal.

Ejemplo

Empleado

No. Cargo Extensin


Emp Nombre Oficina Escritorio Telefnica
1 Smith 1002 AD1 412
2 Jones 1009 AD2 4156
4 Smith 1009 BD1 4134
5 Brown 1002 BD2 4184

PROBLEMA:

Existen atributos que no deben depender de la clave principal como son: Ofiina,
Escritorio, Telfono.
Que pasa si se elimina fsicamente un empleado?

SOLUCION

En este caso estos atributos deben ubicarse en otra tabla, por lo tanto se
tendra dos tablas Empleado y Utilitarios de oficina.

Empleado

No.
Emp Nombre
1 Smith
2 Jones
4 Smith
5 Brown

Utilitarios de Oficina

Secuencial No. Cargo Extensin


Emp Oficina Escritorio Telefnica
1 1 1002 AD1 412
2 2 1009 AD2 4156
3 4 1009 BD1 4134
4 5 1002 BD2 4184

30
BASE DE DATOS

La clave principal de la tabla Utilitarios de Oficina es un secuencial.

Resultados del Proceso de Normalizacin

Formato uniforme de filas (toda tabla tiene una longitud de registro fija)
Menor actividad de actualizacin.
No dependencia de atributos de la clave principal
En cuanto al costo va a permitir muchas accesos a las diferentes
aplicaciones computacionales.

EJEMPLO

PROBLEMA

EMP LAST PROJ PROJ PER


No. NAME NAME NAME CNT
1 SMITH C1 SUPPORT 25
1 SMITH C3 WORKSHOP 25
1 SMITH C4 DESIGH 50
2 JONES C3 WORKSHOP 50
2 JONES C4 DESIGH 50
5 BROWN C1 SUPPORT 70
5 BROWN C3 WORKSHOP 30

SOLUCION

EMP N LAST Proj N PROJ


NAME NAME

EMP N PROJ N PER


CNT

31
BASE DE DATOS

Conclusiones:

Se ha definido una tabla para cada entidad


Se agrega una tabla relacional por cuanto existe una relacin de muchos
a muchos.
La tabla relacional hereda las claves principales de las entidades de
relacin de tipo m:m.

Ejemplos Modelos Entidad-Relacin

Realizar un modelo de E-R que realice un sistema de control de documentos


conforme siguientes caractersticas:

- El sistema ser instlado en la secretaria general de la empresa


- Debe considerar toda la documentacin que ingresa a la empresa y
aquella que se entrega a los departamentos o personas internamente.
- Cada documento tiene un plazo para ser transferido.

La informacin que los usuarios necesitan es la siguiente:

- Impresin individual de una hoja de control


- Control de documentacin procesada a su debido tiempo
- Toda la documentacin enviada a un departamento en especial
- Los tipos de documentacin enviada pueden ser los siguientes.

Memo
Carta
Oficio
Comunicacin
Fax

El documento tiene el nivel que puede ser:

Normal
Secreta
Confidencial

- Responsable de donde se ha enviado y cargo que ocupa esa persona.

32
BASE DE DATOS

DOCUMENTACION
Numero_doc: decimal(8)
Ccod_personal: numeric(2)
Cod_cargo: numeric(4)
Cod_dep: numeric(4) PERSONAL
Cod_tipo: numeric(4) Ccod_personal: numeric(2)
Cod_motivo: numeric(4) CARGO
Cod_cargo: numeric(4)
Cod_cargo: numeric(4)
Receptor: numeric(5) Cedula_identidad: numeric(10)
Fecha_ingreso: datetime Cargo: numeric(10) Descripcion: char(30)
Motivo: numeric(2) Nombre: char(30)
Tema: char(80)
Departamento: numeric(2)
Feha_fin: datetime MOTIVOS
Estado: char(1) Cod_motivo: numeric(4)
tipo_doc: char(1)
Descripcion: char(30)

ACCIONES
DEPARTAMMENTO
Secuencial: numeric(1)
Cod_dep: numeric(4)
Numero_doc: decimal(8)
Nombre: char(30) Ccod_personal: numeric(2)
Descripcion: char(30) TIPO_DOCUMENTO Cod_cargo: numeric(4)
Cod_dep: numeric(4)
Cod_tipo: numeric(4)
Cod_tipo: numeric(4)
Descripcion: char(30) Cod_motivo: numeric(4)
Fecha_inicio: datetime
Responsable: char(30)
Departamento: numeric(2)
Accion_Dada: ntext

33
BASE DE DATOS

NOMINA

34
BASE DE DATOS

EMPLEADO
PROVINCIA PROFESION
Cedula: decimal(10)
Cod_Prov: numeric(2) Cod_Prov: numeric(2) Cod_profesion: numeric(2)
Cod_canton: numeric(1) Descripcion: char(30) Descripcion: char(30)
Cod_parroq: numeric(2)
Cod_est_civ: numeric(1)
Cod_profesion: numeric(2)
Cod_puesto: numeric(1)
Cod_estado: numeric(1)
Cod_sex: numeric(1)
Nombre: char(30) ESTADO_CIVIL
Fecha_Nacimiento: datetime
Cod_est_civ: numeric(1)
Direccion: char(30)
Provincia: decimal(2) Descripcion: char(30)
Canton: decimal(1)
Parroquia: decimal(2)
CANTON
Profesion: decimal(2)
Numero_patronal: decimal(10) Cod_Prov: numeric(2)
Estado_Civil: decimal(1) Cod_canton: numeric(1) PUESTO
Puesto: decimal(1) Cod_puesto: numeric(1)
Descripcion: char(30)
Fecha_ingreso: datetime descripcion: char(30)
Fecha_Salida: datetime
Sueldo_base: decimal(12,2)
Estado: decimal(1) ESTADO
Sexo: char(1) Cod_estado: numeric(1)
Descripcion: char(30)

TRANSACCIONES_FIJAS
PARROQUIAS
Cod_concepto: numeric(2)
Cod_Prov: numeric(2) Cedula: decimal(10)
Cod_canton: numeric(1) Cod_Prov: numeric(2)
Cod_parroq: numeric(2) Cod_canton: numeric(1)
Descripcion: char(30) Cod_parroq: numeric(2)
Cod_est_civ: numeric(1)
Cod_profesion: numeric(2)
OTRAS_TRANSACCIONES Cod_puesto: numeric(1)
Cod_ot_transac: numeric(2) Cod_estado: numeric(1)
Cedula: decimal(10) Cod_sex: numeric(1)
Cod_Prov: numeric(2) cantidad: numeric(5)
TIPO_CARGAS__FAMILIARES Cod_canton: numeric(1)
Codigo_tipo_carga_f: numeric(1) Cod_parroq: numeric(2)
Cod_est_civ: numeric(1)
Descripcion: char(30)
Cod_profesion: numeric(2)
Cod_puesto: numeric(1)
Cod_estado: numeric(1)
Cod_sex: numeric(1)
valor: numeric(12,2)

CONCEPTOS_ROL
CARGAS_FAMILIARES codigo_concepto: numeric(2)
Cod_carga_familiar: numeric(1)
Descripcion: char(30)
Codigo_tipo_carga_f: numeric(1)
tipo_concepto: char(1)
Correlativos: numeric(2) aportable: char(1)
Nombre_carga_fam: char(30) tributable: char(1)
Fecha_nacimiento: datetime valor1: numeric(12,2)
Estado: char(1) valor2: numeric(12,2)
Cedula: decimal(10) estado: char(1)
Cod_Prov: numeric(2)
Cod_canton: numeric(1)
Cod_parroq: numeric(2)
Cod_est_civ: numeric(1)
Cod_profesion: numeric(2)
Cod_puesto: numeric(1)
Cod_estado: numeric(1)
Cod_sex: numeric(1) SEXO
Cod_sex: numeric(1)

FORMACION Descripcion: char(10)


MOVIMIENTOS_ROL
Cod_formacion: numeric(2) codigo_concepto: numeric(2)
cod_ti_for: numeric(2) Cedula: decimal(10)
fecha_opt: datetime Cod_Prov: numeric(2)
Observacion: char(20) Cod_canton: numeric(1)
Cedula: decimal(10) Cod_parroq: numeric(2)
Cod_Prov: numeric(2) Cod_est_civ: numeric(1)
Cod_canton: numeric(1) Cod_profesion: numeric(2)
Cod_parroq: numeric(2) Cod_puesto: numeric(1)
Cod_est_civ: numeric(1) Cod_estado: numeric(1)
Cod_sex: numeric(1) VACACIONES
Cod_profesion: numeric(2)
Cod_puesto: numeric(1) cod_vacaciones: char(4)
Fecha: datetime
Cod_estado: numeric(1) Ao_responde: numeric(4)
Cod_sex: numeric(1) Numero_dias: numeric(2)
Fecha_inicio: datetime
Fecha_hasta: datetime
Cobrado: char(1)
Cedula: decimal(10)
Cod_Prov: numeric(2)
TIPOS_DE_FORMACION Cod_canton: numeric(1)
cod_ti_for: numeric(2) Cod_parroq: numeric(2)
Cod_est_civ: numeric(1)
Descripcion: char(20)
Cod_profesion: numeric(2)
Cod_puesto: numeric(1)
Cod_estado: numeric(1)
Cod_sex: numeric(1)

35
BASE DE DATOS

RECAUDACION

36
BASE DE DATOS

Modelo de una clnica


PACIENTE CANTON
PROVINCIA PARROQUIAS
Num_historia: numeric(5) Cod_Prov: numeric(2)
Cod_Prov: numeric(2) Cod_Prov: numeric(2)
Cod_est_civ: numeric(1) Cod_canton: numeric(1)
Cod_canton: numeric(1)
Cod_Prov: numeric(2) Descripcion: char(30) Descripcion: char(30) Cod_parroq: numeric(2)
Cod_canton: numeric(1)
Cod_parroq: numeric(2) Descripcion: char(30)

Nombre: char(30)
Direccion: char(30) ESTADO_CIVIL
Telefono: numeric(10)
Cod_est_civ: numeric(1)
Estado_Civil: char(1)
Lugar_nacimiento: char(20) Descripcion: char(30)
Cedula: numeric(10)
Fecha_nacimiento: datetime

CONSULTA_EXTERNA
cod_consulta_externa: numeric(4)
Cod_medico: numeric(4) MEDICOS
Cod_Especiali: numeric(4)
Cod_estado: numeric(1) Cod_medico: numeric(4)
Cod_Especiali: numeric(4) ESPECIALIDAD
Fecha_consulta: datetime Cod_Especiali: numeric(4)
Hora_consulta: d Cedula_identidad: numeric(10)
estatus: char(10) Nombre: char(30) Descripcion: char(30)
Num_historia: numeric(5) Direccion: char(20)
Cod_est_civ: numeric(1) Telefono: numeric(10)
Cod_Prov: numeric(2) Mail: varchar(20)
Cod_canton: numeric(1)
Cod_parroq: numeric(2)

INTERNOS HABITACIONES
cod_internos: numeric(4) Cod_habitacion: numeric(4)
Fecha_ingreso: datetime Cod_tip_habi: numeric(2)
hora_ingreso: datetime Ala: numeric(1)
ESTADOS_ATENCION Cod_cama: numeric(4) Piso: numeric(3)
Cod_estado: numeric(1) Cod_habitacion: numeric(4)
Cod_tip_habi: numeric(2)
Descripcion: char(30)
cod_consulta_externa: numeric(4)
Cod_medico: numeric(4)
Cod_Especiali: numeric(4)
Cod_estado: numeric(1)

ENFERMEDAD
Cod_enfermedad: numeric(3)
Descripcion: char(30)
TIPO_HABITACION
Cod_tip_habi: numeric(2)
Descripcion: char(30)

INTERNOS_ENFERMEDAD
cod_internos: numeric(4)
Cod_enfermedad: numeric(3) CAMAS
Diagnostico: char(50) Cod_cama: numeric(4)
Cod_habitacion: numeric(4)
Cod_tip_habi: numeric(2)
Descripcion: char(30)
estado: char(15)

NACIDOS
cod_nacido: numeric(4)
cod_sexo_nacido: numeric(2)
Cedula_madre: numeric(10)
hora: datetime Sexo_nacido
Sexo: char(2) cod_sexo_nacido: numeric(2)
fecha: datetime
Peso: numeric(3,3) Descripcion: char(30)
Talla: numeric(2,3)
Observacion: char(30)
cod_internos: numeric(4)
Cod_enfermedad: numeric(3)

37
BASE DE DATOS

CORRECCION DE LA PRUEBA

38
BASE DE DATOS

SEGUNDO TRIMESTRE

SQL

Visualizar la estructura de una tabla

DESCRIBE nombre tabla

Describe como esta la estructura de la tabla

Name: Nombre de la columna


Null: permite si la columna tiene o no valores nulos
Tipo: Se refiere al tipo de dato o longitud

Creacin de una tabla

Create table nombre_tabla

Create table Departamento(

Depto Number(2) Not null,


Nombre Varchar 2 (30)
Localizacin Varchar2 (30))
;

Todo comando en SQL se ejecuta digitando al fin del comando el carcter ;

Clusulas de almacenamiento

STORAGE( Initial 50
Next 10
Pct free 0
Maxextents 100 )
Tablespace nombre del tablespace

Ejemplo

Create table clientes(

Cod_Cuenta Number(8) Not Null


Nombre Number(20);
Provincia Varchar(2);
Canton Number(2);

39
BASE DE DATOS

Parroquia Number(2);
Estado_Suscriptor Varchar(2);
Cicio Number(2)
Tarifa Number(3)

800.000 registro

kilobytes x registro x 800.000=32 Mb

Storage

Initial 40M
Next 4M
Potfree 0
Maxextents 100)
Tablespace User;

Create table estudiantes(

Cod_estudiante Number(8) not nell


Nombre Varchar(2) (20);
Cargo Number (2)
Direccin Varchar(2) (20);
Telefono Number (7);
Email ;

STORAGE (INITIAL 1M
NEXT 1M
PCTFREE 0
MAXEXTENTS 100)
TABLESPACE USER;

BASE DE REFERENCIA

Todas las tablas auxiliares que tienen cdigo y descripcin se llama Base de
referencia.

Ejemplo

Tabla de Contabilidad
Cuentas
Cdigo Contable C(30)
Nombre Cuenta C(30)

Consultas

40
BASE DE DATOS

Select Se utiliza para consultar datos de la base de datos debe estar


acompaado del From

Sintaxis

Select columna1[alias], columna2[alias]


From Nombre_tabla1, (alias), nombre_tabla2 (alias)

Caso especial

Select *

From nombre tabla;

Ejemplo

Select *

From Departament

SALIDA

Dept. Nombre Local zacion


10 Contabilizado Quito
20 Sistemas Guayas
30 Compras Quito
40 Inventario Cuenca

OPERADORES DE LA CLAUSULA WHERE

Las columnas especificadas en las clusulas where deben ser parte de las
tablas de la clusula from
Las comparaciones de cadenas de caracteres especificadas en la clusula
where requieren de un apostrofe al comienzo y final, comparaciones numricas
no lo requieren. Los operadores binarios ms sencillos para comparar 2 valores
columnas o constantes son

= igual
where depto =10

|= diferente
where deptno |= 10

> mayor que


where deptno>10

< menor que

41
BASE DE DATOS

where deptno < 10

>= mayor igual


where depto >=10

< = menor o igual


where depto <=igual

Ejemplo

Select CI cdula, nombre, fecha_nacimiento


From empleado
Where provincia=17;

EXPRESIONES ARITMTICAS

Pueden adicionarse en una clusula select, una expresin que puede


componerse de nombres de columnas y constantes numricas conocidas
como una de las siguientes expresiones aritmticas , (+) Suma, (*)
Multiplicacin; (/) Divisin; (-) Resta; cabe indicar que la multiplicacin y divisin
tienen igual procedencia de manera que las columnas utilizan parntesis para
controlar el orden de la evaluacin.

Sintaxis
Select Col1, Col2, .Coln
From Table
Where Column2 Operador Expresin
And Column2 Operador Expresin

La Expresin puede ubicarse en cualquier parte.

Ejemplo:

Consultar empleados activos, de la provincia del Guayas que su sueldo por una
ao sea mayor que 10.000

Select CI cdula, Nombre


From Empleado
Where Estado =1
And Provincia = 4
And SueldoBsico*12>10000 ;

CONDICIONES MULTIPLES

AND, OR, IN, BETWEEN

42
BASE DE DATOS

AND: Se ocupa cuando ambas condiciones deben cumplirse.


OR: Se ocupa cuando cualquiera o ambas condiciones se cumplen.

Ejemplo:

Empleando activo que sea de la provincia del Guayas o sueldo bsico mayor
que 10.000

Select CI Cdula, Nombre


From: Empleado
Where Estado = 1
And (Provincia = 4 or sueldobsico * 12 > 10.000)

IN: Cuando una columna debe coincidir con un tem de una columna dada,.
Funciona tambin con NOT IN.

Select CI Cedula, Nombre


From: Empleado
Where Estado = 1
And Provincia in (4,17);
And puesto in (contador, ingenieros);1

BETWEEN: Es utilizado para seleccionar valores que estn a fuera o dentro de


ese rango. Si el mximo o mnimo son encontradas se incluyen estos
valores. Funciona tambin con el NOT
Sintaxis

Between rango - mnimo and rango mximo

Select CI Cdula, Nombre


From Empleado
Where Estado = 1
And provincia Between 4 and 17
And puesto in ( contador, ingeniero );

VALORES NULL
El null implica ausencia de datos es diferente de ceros o de espacios el
operador IS es utilizado con la expresin NULL o tambin NOT NULL.

Ejemplo:

Select CI Cdula, Nombre


From empleado
Where estado=1
And Provincia between 4 and 17
And Puesto IN (Contador, Ingeniero)

43
BASE DE DATOS

And Sueldo is NULL

like Permite buscar una cadena de caracteres especificada en el campo de una


tabla. Funciona tambin la negacin con la clausula NOT LIKE

Ejemplo
Se necesita un reporte con todos aquellos empleados que se llaman Juan.

Select Nombre
From Empleado
Where Nombre Like % Juan %

Comodines
Se utiliza: El carcter _ para 1 carcter y el % para uno o varios
caracteres.

Ejemplo
Listar los nombres de los empleados que termina con las letras s
Select Nombre
From Empleado
Where Nombre Like % s

Los nombres que tengan una O seguida de una C.


Select Nombre
From Empleado
Where Nombre Like %OC%

Seleccione los nombres de los empleados cuya longitud sea = 10

Select Nombre
From Empleado
Where Nombre Like __________

ORDER BY: Permite que ORACLE ordene los registros seleccionados antes de
desplegar. Por DEFAULT despliega en orden ascendente.

Select Columna 1 o Expresiones


From Tabla
Where Condicion cierta
Order By column Asc/Desc

Select Departamento, Nombre ,Localizacin


From Departamento
Order by nombre

Salida:
20 compras Quito
10 contables Quito
40 inventarios Guayaquil
30 sistemas

44
BASE DE DATOS

Select CI cdula, nombre


From Empleado
Where Estado = 1
And Provincia between 1 and 17
And Puesto IN ( Contador ,Ingeniero )
And Sueldo is NULL

FUNCIONES.- Las funciones de caracteres, numricos y de fechas pueden


incluirse en las clausulas select, order by, where

FUNCIONES DE CARACTERES

Concatenacin Nos permite unir cadenas de caracteres.


Select deptnoIInombre
From Departamento;

Salida:
10Contabilidad
20Compras
30Sistemas
40Inventarios

CHR(n): Es el carcter de un valor ascii.


Select CHR(100)
From dual;

Salida:
CHR
d
INITCAP (cad).- convierte en mayscula la primera letra de una cadena de
caracteres.
Select initcap (localizacin), dpto
From Departamento;

Salida:
Quito 10
Quito 20
Cuenca 40
Sistemas 30

LOWER (cadena) Convierte a minsculas la cadena de caracteres.

Select( LOWER (NOMBRE))


From Departamento;

Salida:
contabilidad
compras

45
BASE DE DATOS

sistemas
inventario

LPAD(cadena,M,{carcter}): Rellena la cadena especificada hacia la izquierda


con caracteres (por default van espacios en blanco) hasta que la longitud
total de la cadena sea M.
Select LPAD (nombre, 32, ww)
From Departamento;

Salida:
w.w Contabilidad ..=32
w w Compras
w w Sistemas
w w Inventarios

NOTA: Nombre est definido como char(30).

LTRIM(Cadena, conjunto): Quita los caracteres indicados especificados en


conjunto de la cadena empezando por la izquierda.

Select LTRIM (nombre,Co)


From Departamento;

Salida:
ntabilidad
mpras
Sistemas
Inventarios

RPAD(Cadena,m,{carcter})

Rellena la cadena especificada hacia la derecha con caracteres (por default


van espacios en blanco) hasta que la longitud total de la cadena sea M.

Select RPAD (nombre, 32, ww)


From Departamento;

Salida:

Contabilidad. ww
Compras ww
Sistemas.ww
Inventarios. ww

NOTA: Pone las posiciones 31 y 32 ww

RTRIM(Cadena, conjunto): Quita los caracteres indicados especificados en


conjunto de la cadena empezando por la derecha.

Select RTRIM (nombre,s)

46
BASE DE DATOS

From Departamento;

Compra
Contabilidad
Inventario
Sistema

NOTA: la columna NOMBRE est definida como carcter de 30 posiciones.


Luego en el SELECT tomo la letra S con los siguientes espacios en blanco.

SUBSTR(Cadena,inicio,longitud) despliega una subcadena que va desde


inicio hasta el nmero de caracteres que esta definido en longitud.

Select Substr(Nombre, 1, 3)
From departamento;

Salida:

Com
Con
Inv
Sis

UPPER(cadena) Convierte la cadena a maysculas.

FUNCIONES DE CARACTERES QUE RETORNAN NUMEROS

ASCII (carcter) Valor ASCII del primer carcter de la cadena

Select ASCII (C)


From dual;

Salida:
67

INSTR(CADENA, SUBCADENA, POSICIN), Busca la subcadena en cadena


comenzando en posicin. Si la subcadena es encontrada retorna su
posicin caso contrario retorna a 0.

Select INSTR(Nombre, Com, 1)

Salida:

1
0
0
0

47
BASE DE DATOS

LENGTH: (Cadena) Encuentra la longitud de una cadena.

Select Length(Substr(nombre, 1,7))


From Departamento;

Salida:

7
7
7
7

TO_NUMBER(cadena) Transforma una cadena a numero

SELECT TO_NUMBER(ROL)
FROM empleado
Where rol =20514

Salida:

---------------------------
20514
NOTA: La columna ROL de la tabla empleados es de tipo carcter.

FUNCIONES ARITMTICAS

ROUND(nmero, {d}) Aproxima el numero a d dgitos del punto decimal.


Si d es negativo, la aproximacin ocurre hacia la izquierda del punto
decimal.

Ejemplos

ROUND ( 6,1793, 2) = 6,18


ROUND(16,1793, -1) = 17

TRUNC ( nmero, {d}) Trunca el nmero a d dgitos, comenzando en el punto


decimal, d puede ser positivo o negativo.

TRUNC ( 5.1793,2)=5.17
TRUNC( 236, -1) = 230
TRUNC ( 236, -2) = 200
TRUNC ( 236, -3) = 0

ABS (nmero) Encuentra el valor absoluto de un nmero.

SIGN(nmero) es + 1 si el numero > 0


0 si el numero = 0

48
BASE DE DATOS

-1 si el numero es < 0

MOD (num1, num2) Retorna el residuo de dividir num1 para num2

SQRT(numero) Raz cuadrada de nmero.

POWER( nmero,n ) Eleva el nmero a la n-sima potencia

DECODE( str, cs1, rst1..dft) Permite evaluar valores


// es parecido al if//

EJEMPLOS
Select Cdula, nombre, sueldo, DECODE (sexo, m, masculino, femenino)
From empleado

Se desea saber sexo y estado civil

Select Cdula, nombre, sueldo, DECODE (sexo, m, masculino, femenino)


Decode(estado_civil,s,soltero,c,casado,d,divorciado,v,viudo)
From empleado

GREATEST(expr1, . exprn)
Retorna el mayor de una lista de valores
Ejemplo:
Select cdigo_cuenta, nombre, GREATEST(demada-oh, demanda ot)
demanda_ contratada demanda
From Clientes;

Select GREATEST ( 10,5,1,20.99)


From Dual

Salida:
: 99

LEAST (exp1expn)
Retorna el valor menor de una lista

NVL (expresin, nuevo valor)


Si la expresin es nula retorma nuevo valor, caso contrario retorna expresin.

Ejemplo

Select NVL (sueldo base,0), NVL(represent, 0) , NVL (residencia, 0)


NVL ( sueldo_ base,0) + NVL(represent, 0) + NVL (residencia, 0)
total

// un ejemplo de NVL con caracteres


// Supongamos que tenga primer nombre, primer apellido, 2 apellido, como
campos diferentes se quiere

49
BASE DE DATOS

Select NVL(Nombre, VACANTE)


From empleados;

ARITMTICA DE FECHA

El formato de default es dd-mes-aa


El tipo de date DATE almacena siglo, ao, mes , da, hora, min, segundos.
El dato SYSDATE se utiliza para retornar la fecha, hora del sistema

Ejemplo

SELECT SYSDATE FROM Dual;

Salida:

01 Feb_06

EXPRESIN DEFINICIN
Date + n Suma n das
Date + n/24 Suma n horas
Date + n/ (24 * 60) Suma n minutos
Date + n / ( 24* 60*60) Suman n segundos
Date n resta n das
Date n/ 24 Restan n das
Date n / (24 * 60)) Resta n minutos
Date n/ (24 * 60 * 60) Resta n segundos
Date Date Diferencia en das (resultado nmeros)
(date date) * 24 Diferencia de horas (resultado nmero)

to _date(carater)
Convierte un caracter a fecha

Ejemplo:

to_date (01, Febr 06)

Quiero que el sistema calcule la edad de una persona en aos

Select to_date(01, Feb, 06) to_date(16 , oct, 05))/365 Edad


from Dual

FORMATOS DE FECHA
FORMATO RESULTADO
dd month y 21 Jun 95
day month dd, yyyy` Saturday January 21, 1995
dy dd mon yyy Sat 21 Jan 1995
Day ddth Month yyyy Saturday 03 rd January 1995
fm Month dd, yyyy hh: miam January 21, 1995 12.03 am

// que pasa si la fecha de nacimiento es number (Formato Juliano) entonces/

50
BASE DE DATOS

Select substr (to_char(to_date (fecha_nacimiento, j ), dd/mm/yyyy ),1,10)

EJEMPLO:
- Sumatoria sueldo, clasificado por nombre, empleados con nombre
Pedro, sueldos no nulos.

Select NVL(sueldo1_base,0), NVL(sueldo2_base,0), NVL(sueldo3_base,0),


NVL(sueldo1_base,0)+ NVL(sueldo2_base,0)+ NVL(sueldo3_base,0)
From empleados
Where nombre like %Pedro%
Order by nombre;

- Seleccione todos los empleados nacidos en 1985 si el camp Fecha de


nacimiento es tipo number.

Select nombre, substr(to_char(to_date(fecha_nacimiento,j),dd/mm yyyy),


1,10) fecha
From Empleado
Where substr (to_char(to_date(fecha_nacimiento,j),yyyy)1,4)=1985

FUNCIONES DE AGRUPACION:

Las funciones de agrupacin trabajan sobre un conjunto de registros y retorna


un valor con la informacin resumen del conjunto

SUM: Calcula la sumatoria de un grupo

SELECT SUM (NVL(SALARIOS,0)


FROM EMPLEADO;

Salida:

4800000

AVG: PROMEDIO
SELEC AVG(SALARIOS, 0)
FROM EMPLEADO:

Salida:

1200

MIN: Devuelve el mnimo de un conjunto de valores contenidos en un campo


especfico de un consulta

SELECT MIN (SAL)


FROM EMP
WHERE DEPTNO=10;

51
BASE DE DATOS

Salida:

250

MAX: Devuelve el mximo de un conjunto de valores contenidos en un campo


especfico de un consulta

SELECT MIN (SAL)


FROM EMP
WHERE DEPTNO=10;

COUNT: Calcula el nmero de registros por una consulta.


SELECT Count (*)
FROM EMP
--------------
Count (*)
14

STDDEV
Calcula la desviacin estndar.

VARIANCE: Calcula la varianza

GROUP BY: Es utilizado para definir mltiples grupos de registros en una


sentencia SQL, un grupo es definido por registros que tengan un valor
comn en una o ms columnas esas columnas deben listarse en la
instruccin group by.
Su sintaxis es:

SELECT Atributos de dimensin, agrupaciones


FROM Nombre de tabla
WHERE Condiciones De Seleccin
GROUP BY Atributos de dimensin

Ejemplos:

Se requiere un reporte que haga una seleccin de departamentos y el total de


empleados y salarios que se han pagado en cada departamento

SELECT cod_departamento DEPARTAMENTO,


count(*) EMPLEADOS,
sum(sal) SUELDOS
FROM empleados
GROUP BY cod_departamento;

Salida:

DEPARTAMENTO EMPLEADOS SUELDOS


1 7 12450
2 5 10600

52
BASE DE DATOS

3 1 9200

Se requiere un reporte que despliegue el total de empleados por cantn y


provincia.

Select provincia, canton, count(*) numero


From empleado
Group by provincia, cantn

Salida:

Provincia cantn numero


01 2 1.0
01 3 5
01 4 3
02 1 8

Se requiere un reporte que despliegue el numero de clientes por tarifa.

Select tarifa, count(*) clientes


From facturacin
Group by tarifa

Salida:

Tarifa clientes
201 15000
715 47000

HAVING: Es similar a where, determina qu registros se seleccionan una vez


que los registros se han agrupado utilizando GROUP BY.
HAVING determina cuales de ellos se van a mostrar.

SELECT cod_departamento DEPARTAMENTO,


count(*) EMPLEADOS,
sum(sal) SUELDOS
FROM empleados
GROUP BY cod_departamento;
HAVING sum(sal) > 10000

Salida:

DEPARTAMENTO EMPLEADOS SUELDOS


1 7 12450
2 5 10600

Seleccionar todos los departamentos que tengan ms de 40 empleados y que


sean hombres

53
BASE DE DATOS

Select cod_departamento DEPARTAMENTO,count(*) EMPLEADOS


From empleados
Where sexo =H
Group by cod_departamento
HAVING count(*)>40

Salida:

DEPARTAMENTO EMPLEADOS
5 56
6 67

UNION DE DOS O MAS TABLAS

Es una forma del comando select que combina informacin de dos o ms


tablas. Adems de las columnas a mostrar y de las tablas a combinarse, se
debe indicar un condicin de combinacin entre tablas. Dicha condicin de
combinacin se incluye en la clusula WHERE principalmente.

Tipos de joins
- Simples(equijoin/non-equijoin):
-
Select columnas de las tablas referenciadas
From tabla1[alias], tabla2[alias],..................
Ejemplo:

PROVINCIA EMPLEADO

CODIGO N(2) C.C


DESCRIPCION NOMBRE
Cod_prov

Select a.descripcion, provincia


From provincia a, empleado b
Where a.codigo_provincia=b.codigo_provincia
And order by provincia

Salida:

PROVINCIA C.I NOMBRE SUELDO


AZUAY 171542080-6 Juan Prez 1234

EJERCICIOS:
Generar un reporte que determine el nmero de clientes de la Empresa
Elctrica Quito por tarifa. Adicionalmente seleccionar aquellas tarifas que
tengan ms de 100 clientes.

54
BASE DE DATOS

Select b.desctarifa TARIFA, count (*) CLIENTES


From clientes a, tarifas b.
Group by b.desctarifa
Having count (*)>100

Salida:

TARIFA CLIENTES
Residencial 450.000
Comerial 75.000
Industrial 65.000

Generar un reporte estadstico de empleados por estado del empleado.


(Activos, Inactivos, En liquidacin), y por provincia, para todos los empleados
de los departamento de sistemas e inventarios

spool Reporte
set pagesize 64
set linesize 80
ttitle ESTADISTICA DE EMPLEADOS POR ESTADO Y PROVINCIA
break on report on estado nodup
compute sum of EMPLEADOS on ESTADO
compute sum of EMPLEADOS on report
SELECT a.descripcion ESTADO,
b.descripcion PROVINCIA,
count(*) EMPLEADOS
FROM estados a, provincias b, empleados c
Where c.coddepartamento in (SISTEMAS,INVENTARIOS)
and c.estado=a.estadoemple
and c.provincia=b.codprov
GROUP BY a.descripcion,b.descripcion

Salida:

ESTADISTICA DE EMPLEADOS POR ESTADO Y PROVINCIA


ESTADO PROVINCIA EMPLEADOS

Activos Azuay 10
Guayas 5
Pichincha 25
-------------
Sum 40
Inactivos Azuay 5
Guayas 3
Pichincha 6
-------------
Sum 14
En liquidacin Azuay 1
Guayas 1
Pichincha 1

55
BASE DE DATOS

-------------
Sum 3
-------------
Sum 57

OUTER JOINS

El operador OUTER JOINS(+), obliga a que un registro que contenga valores


nulos en uno de los criterios del JOIN coincida con cada valor de la segunda
tabla sobre la cual ordinariamente no existira esa coincidencia.
EMPLEADOS PROVINCIA

DESCRIPCION
Rol nombre Co AZUAY
prov ASOGUEZ
xxxxx 03
yyyyy 04
05
17
17 PICHINCHA
124 17

SELECT a.rol Rol, a.nombre Nombre, b.descripcin


FROM empleados a,provincia b
WHERE a.co_prov=b.codigo

Salida:

Rol Nombre Descripcin

3. xxxxx AZUAY
4. yyyyy ASOGUEZ
87. zzzzz
88. aaaaa PICHINCHA
124. bbbbb PIHINCHA

NON EQUIJOINS

<=

>=

BETWEEN

56
BASE DE DATOS

OPERADORES DE CONJUNTOS: Los operadores de conjuntos


combinan dos o ms tablas para obtener un resultado.

UNION: No se repite los registros. Combina los resultados de las selecciones


eliminando las filas duplicadas.

Sintaxis:
Select columnas
From tabla
Where condiciones1
Union
Select columnas
From tabla1
Where condiciones1

Las columnas deben ser lgicamente las mismas

Ejemplo:
Spool reporte
Set linesize 80
Set pagesize 64
Ttitle CLIENTES EEQ
Select codigo_cuenta CLIENTE, nombre NOMBRE
From clientes_cm
Where estado_cliente=0
Union
Select codigo_convenido CLIENTE , nombre_convenido NOMBRE
From clients_sm
Were num_servicios>0
/
Spool off

SENTENCIAS PARA GENERAR UN REPORTE

SPOOL REPORTE Genera un archivo


SET LINES 80 Tamao de la lnea
SET PAGESIZE 64Tamao de la pgina
SET TERMOUT OFF (para que los registros no se desplieguen en pantalla)

TITLE CLIENTES EEQ


SET NEW PAG PAR PONER TITULO, ENUMERAR PAGINA

57
BASE DE DATOS

Salida:

CLIENTES EEQ
PAG 1
CLIENTE NOMBRE
1101 Juan Prez
2105 Jose Leiva
1407 Paul Salas
1521 Ricardo Daz
1521 Luis Aguas

INTERSECT

Combina los resultados devolviendo slo las filas que devuelven ambas
selecciones

CLIENTES ASIME
1101 JUAN PEREZ 1101 111
2105 222

Ejemplo:

Spool on

Select codigo_cuenta CLIENTE


From clientes
Where estado_cliente=0
INTERSECT
Select codigo_asime CLIENTE
From asime
/

Salida:

CLIENTE
1101

MINUS: Los registros de la primera tablas menos los registros de la segunda


tabla

Ejemplo:

Generar un reporte que despliegue los empleados de la EEQ que no tienen


medidor, es decir con servicio convenido

58
BASE DE DATOS

Select codigo_cuenta SUM


From clientes
Where estado_cliente=0
MINUS
Select codigo_asime SUM
From asime
/

- TRANSACCIONES

ROLLBACK: Deshace los cambios en la base de datos que realice desde el


ltimo COMMIT;

COMMIT: Hace cambios hechos por algn sistema permanente de base de


datos (desde el ltimo COMMIT; conocido como transaccin)

Ejercicios:

UPDATE

Crea una consulta de actualizacin que cambia los valores de los campos de
una tabla especificada basndose en un criterio especfico.

Su sintaxis:

UPDATE Tabla
Set Campo1=Valor1, Campo2=Valor2,............. CampoN=ValorN
Where Criterio;
Ejemplo:

1.- Actualizar la tabla de empleados, con sueldo =1000 y depto=15

UPDATE EMPLEADO
SET SUELDO=10000
WHERE DPTO=15;

TRUNCATE

Elimina todos los registros de la tablas manteniendo la estructura.

Ejemplo:

TRUNCATE TABLE EMPLEADOS

ALTER TABLE

Aade nuevos campos a la tabla


Ejemplo:

59
BASE DE DATOS

ALTER TABLE EMPLEADO


MODIFY (Nombre varchar2 (35) not null;

VISTAS

Nos permite el acceso mucho ms rpido para una consulta. Se lo puede


realizar con un select a una o varias tablas juntadas.

CREATE VIEW EMPVISTA AS


SELECT CED_IDENT, APELLIDO || || , NOMBRE
FROM EMPLEADO
WHERE

SELECT * FROM EMPVISTA

INDICES

Nos permiten un acceso rpido a la tabla, se crean cuando las tablas son muy
grandes

CREATE [UNIQUE] INDEX nombre_ndice


On tabla (columnas indexadas)
TABLESPACE Nombre tablespace;

Ejemplo

CREATE UNIQUE INDEX ICONTAB1


ON CONTAB (fecha_generacion,cuenta_debe,cuenta_haber)
TABLESPACE SIDECOM_IDX
STORAGE( INITIAL 100M
NEXT 5M
PCTINCREASE 0
MAXEXTENTS 149);
EJERCICIOS:

REPORTES:

Generar un reporte que despliegue la siguiente informacin:


CEDULA_IDENTIDAD, NOMBRE, PROFESION, DEPARTAMENTO ordenado
por departamento y nombre

SELECT a.cedula_identidad, a.nombre,b.descripcin, c.descripcin


FROM empleados a,profesion b, departamentos c
Where a.codigo_profesin=b.codigo_profesin
AND c.cod_departamento=a.codigo_departamento
Order by c. descripcin, a.nombre;

60
BASE DE DATOS

Generar un reporte de todos los empleados de la EEQ, es decir empleados con


nombramiento y empleados mercerizados. La informacin de los primeros est
en la tabla EMPLEADO y la de los mercerizados en TERCERIZADO Se conoce
que las dos tablas son iguales en cuanto a su estructura y se requiere toda la
informacin almacenada en estas tablas.

Select *
From empleado
UNION
Select *
From tercerizado

Se requiere que se despliegue nicamente el nombre y en orden alfabtico.

Select nombre
From empleado
UNION
Select nom_tercerizado
From tercerizado
Order by 1

Crear una vista de empleados de planta y tercerizados.

Create view tablas as


Select *
From empleado
UNION
Select *
From tercerizado

Empleados , tercerizados, quiero saber que deptos no tiene empleados


tercerizdos
Select descripcin
From departamento_EQ
Minus
Select descripcin
From departamento_terc

Todos los nombre de empleados nacidos menores a 1975


Select nombre
From empleados
Where substr(to_char(to_date(fech,j,yyyy)1,10)<1975

Actualizar los empleados de sistemas=10000


Updte empleado
Set (sueldo:base=10000)
Where dep=sistemas

61
BASE DE DATOS

JOIN sofi

Es una instruccin SELECT anidada dentro de una instruccin SELECT,


SELECT...INTO, INSERT...INTO, DELETE, o UPDATE o dentro de otra
subconsulta.

Puede utilizar tres formas de sintaxis para crear una subconsulta:


comparacin [ANY | ALL | SOME] (instruccin sql)
expresin [NOT] IN (instruccin sql)
[NOT] EXISTS (instruccin sql)
En donde:

comparacin

Es una expresin y un operador de comparacin que compara la expresin con


el resultado de la subconsulta.

expresin

Es una expresin por la que se busca el conjunto resultante de la subconsulta.

instruccin sql

Es una instruccin SELECT, que sigue el mismo formato y reglas que cualquier
otra instruccin SELECT. Debe ir entre parntesis.

Se puede utilizar una subconsulta en lugar de una expresin en la lista de


campos de una instruccin SELECT o en una clusula WHERE o HAVING. En
una subconsulta, se utiliza una instruccin SELECT para proporcionar un
conjunto de uno o ms valores especificados para evaluar en la expresin de la
clusula WHERE o HAVING.

Se puede utilizar el predicado ANY o SOME, los cuales son sinnimos, para
recuperar registros de la consulta principal, que satisfagan la comparacin con
cualquier otro registro recuperado en la subconsulta.

Ejemplos:

El ejemplo siguiente devuelve todos los productos cuyo precio unitario es


mayor que el de cualquier producto vendido con un descuento igual o mayor al
25 por ciento.:

SELECT *
FROM Productos
WHERE PrecioUnidad ANY
(SELECT PrecioUnidad FROM DetallePedido WHERE Descuento = 0 .25);

El predicado ALL se utiliza para recuperar nicamente aquellos registros de la


consulta principal que satisfacen la comparacin con todos los registros
recuperados en la subconsulta. Si se cambia ANY por ALL en el ejemplo

62
BASE DE DATOS

anterior, la consulta devolver nicamente aquellos productos cuyo precio


unitario sea mayor que el de todos los productos vendidos con un descuento
igual o mayor al 25 por ciento. Esto es mucho ms restrictivo.

select *
from productos
where PrecioUnidad > all (select PrecioUnidad from DetallePedido where
descuento>=0.25)

El predicado IN se emplea para recuperar nicamente aquellos registros de la


consulta principal para los que algunos registros de la subconsulta contienen
un valor igual. El ejemplo siguiente devuelve todos los productos vendidos con
un descuento igual o mayor al 25 por ciento.:

SELECT *
FROM Productos
WHERE IDProducto IN (SELECT IDProducto FROM DetallePedido
WHERE Descuento = 0.25);

Inversamente se puede utilizar NOT IN para recuperar nicamente aquellos


registros de la consulta principal para los que no hay ningn registro de la
subconsulta que contenga un valor igual.

select *
from productos
where idproducto not in (select idproducto from DetallePedido where
descuento>=0.25)

El predicado EXISTS (con la palabra reservada NOT opcional) se utiliza en


comparaciones de verdad/falso para determinar si la subconsulta devuelve
algn registro.
select nombre_producto, preciounidad
from Productos as p
where exists (select * from detallepedido d where
d.idproducto=p.idproducto)

Selecciona el nombre de todos los productos que se han comprado al menos


una ves

REPORTES CON PARAMETROS

El siguiente ejemplo despliega todos los registros cuyo numero de


departamento sea 10, el mismo que es ingresado parametricamente cuando
se ejecuta el sql.

Select cedula, nombre


from empleados
where Dep_No = &Depar;

La ejecucin de este reporte despliega lo siguiente:

63
BASE DE DATOS

Enter Value for Depar: 10

Ejemplo con prompt

Accept depar prompt Digite Codigo de departamento


Select cedula, nombre
from empleados
where Dep_No = &Depar;

Al ejecutar este sql se despliega el siguiente mensaje:

Digite Codigo de departamento: 10

ALTER TABLE

Aade nuevos campos a la tabla


Ejemplo:
ALTER TABLE Empleados ADD (nombre_columna tipo(longitud) not null;

Modifica el diseo de una tabla ya existente


Ejemplo:
ALTER TABLE Empleados MODIFY (nombre VARCHAR2(35) ;

Renombrar el campo de una tabla


Ejemplo:
ALTER TABLE Empleados RENAME nombre TO nombres ;

DROP TABLE

Se utiliza para eliminar tablas


Todos los registros son eliminados sin advertencia alguna No se puede hacer
un Rollback para un DROP TABLE Solo el dueo de la tabla puede hacer un
DROP TABLE

Sintaxis:
DROP TABLE Nombre_Tabla;

DELETE

Elimina los registros de una o ms de las tablas listadas en la clusula FROM


que satisfagan la clusula WHERE

Sintaxis:

DELETE FROM Nombre_Tabla WHERE Condiciones;


Ejemplo:
DELETE FROM Empleados WHERE Estado=0;

RENAME
Renombra u na Tabla

64
BASE DE DATOS

Sintaxis:
RENAME Nombre_Tabla TO Nuevo_Nombre;

Ejemplo:

RENAME Empleado TO EmpleadosFijos;

INSERT INTO

Agrega un registro en una tabla. Se la conoce como una consulta de datos


aadidos.

Sintaxis:
INSERT INTO Tabla (campo1, campo2, .., campoN)
VALUES (valor1, valor2, ..., valorN)
Ejemplo:
INSERT INTO Empleados (Nombre, Apellido, Cargo)
VALUES ('Luis', 'Snchez', 'Becario');

UPDATE

Crea una consulta de actualizacin que cambia los valores de los campos de
una tabla especificada basndose en un criterio especfico.

Sintaxis:
UPDATE Tabla SET Campo1=Valor1, Campo2=Valor2, ... CampoN=ValorN
WHERE Criterio;
Criterios
Update para actualizar valores en los campos en registros existentes
Actualiza los registros que cumplen con el criterio de WHERE
Si se omite la clausula WHERE todos los registros son actualizados
Se puede actualizar una columna con null si la definicion de la tabla lo permite
Ejemplo:
Set col =null
Se puede actulizar una fila numeriaca utilizando los opreadores aritmeticos
+,-,*,/
Ejemplo:
UPDATE Empleados SET Grado = 5 WHERE Grado = 2;

UPDATE Pedidos SET Pedido = Pedidos * 1.1, Transporte = Transporte * 1.03


WHERE PaisEnvo = 'ES';

VISTAS

Es una ventana a los datos que permte visualizar de diferentes maneras los
mismos datos como las vistas son ventanas a los datos, todos los cambios a
los datos, atraves de una vista son refjejadas a la tabla base y viseversa
Sintaxis:
CREATE VIEW Nombre_Vista AS sentencia SQL;
Ejemplo:

65
BASE DE DATOS

CREATE VIEW Vista_Empleados AS SELECT b.Nombre, a.Cedula, a.Nombre


FROM Empleados a, Departamento b WHERE a.Cod_Dep = b.Cod_Dep;

66
BASE DE DATOS

TERCER TRIMESTRE

BUSNESS INTELIGENT

I
N NIVEL
F ESTRATEGICO
O INDICES
DE
R GESTION
M
A
NIVEL DE
C DATAMAR
DATAWAREHOUSE GESTION
I
O
N
NIVEL
OPERATIVO
SIST, ECONOM, FINAC, FACT, NOMINA

FACT
TECNICO

ECONOM
FINANC

BODEGA RECURSOS
HUMANOS

CONCEPTO DE DATAWARE HOUSE

Es un conjunto de datos integrados, orientados a una materia que varan con el


tiempo y que no son transitorios, los cuales soportan el proceso de toma de
decisiones de una administracin.

67
BASE DE DATOS

La esencia del Datawarehouse no es un producto, es una tcnica de ensamblar


y gestionar los datos procedentes de distinta fuentes de forma adecuada con el
objeto de tener un visin nica de los mismos para toda la empresa.

POR QUE ES IMPORTANTE EL DATAWARE HOUSE


1.- Soporte de acciones a un costo eficaz.
Los DatawareHouse producen reportes y consultas en el nivel de gestin.
2.- Rearquitectura de un sistema de aplicaciones
La separacin de los sistemas de produccin (Nivel Operativo) con los del
DatawareHouse, ofrece al rea de Sistemas una oportunidad nica para
depurar los sistemas de herencia (originales) conforme avanza la arquitectura
del sistema de la empresa
3.- Reingeniera de procesos empresariales
DatawareHouse proporcionan a la empresa y la organizacin las medidas
requeridas para medir la posicin competitiva.

BENEFICIOS

DatawareHouse no es ni un producto de software ni una mquina o tecnologa


de base de datos particular, es una serie de componentes y proceso que de un
conjunto forman la arquitectura del DatawareHouse, y de la manera como
generemos nuestro DatawareHouse, sern los beneficios obtenidos.
Los sistemas operacionales de la cual se transfiere la informacin seleccionada
puede ser manejadores de datos relacionales (Mod E-R), jerrquicos, de
archivos (cobol), planos o de otros generadores.

La idea principal es el soporte de las decisiones, poder analizar los datos


relacionados y aportar elementos valiosos de la toma de decisiones del
personal encargado de las mismas las cuales pueden ser analistas, directores,
de forma inmediata o en lnea realizar consultas sin necesidad de esperar un
proceso batch- proceso de generacin de informacin 1/2 noche proceso en
lnea- son las transacciones, pero que se actualiza en lnea con el sistema
informtico(volver a facturar ese momento) transaccin por transaccin.
Batch- todos las transacciones.
Un DatawareHouse, no se compra, DatawareHouse, se construye porque
es ah donde se coloca el conocimiento del negocio.

JUSTIFICACION

Las razones fundamentales que permite generar un DatawareHouse, son de


dos tipos:

1) EL NEGOCIO: Por calidad de servicio, por mayor cultura y exigencia del


cliente, como consecuencia de la inadecuada gestin de la informacin, por
competencia, por la globalizacin, por la liberacin.
2) TECNOLOGIA: Abaratamiento, madurez, nueva generacin de
herramientas(Discoverer, MBO; OLAP, Dinamyc cube) adicionalmente, para el
cliente, gestin y tratamiento integral del cliente desde cualquier dependencia

68
BASE DE DATOS

de la organizacin, diversificacin de los riesgos de la identificacin por


concentracin de la informacin.

DIFERENCIAS ENTRE DATAWARE HOUSE Y BASE DE DATOS


DATAWARE HOUSE OLAP (Procesamiento Analtico en Lnea)
TABLAS M/ER OLTP (Procesamiento de transacciones en lnea)

CARACTERISTICAS DEL DATAWAREHOUSE

Esta orientado a una materia ya que organiza y orienta los datos desde
la perspectiva del usuario final.
Administra gran cantidad de informacin, los datawarehouse contienen
informacin histrica que nacen de los sistemas transaccionales.
Guarda informacin en diferentes medios de almacenamiento.
Comprende mltiples versiones de un esquema de base de datos en
que debido a que el datawarehouse almacena informacin histrica que
potencialmente puede generarse en varias versiones de base de datos.
Condensa y agrega informacin: con frecuencia los sistemas
operacionales o transaccionales guardan mucha informacin el
datawarehouse condensa la informacin y lo presenta amigable al
usuario.
Ingresa y acoge informacin de muchas fuentes ya que la informacin se
encuentra en mltiples aplicaciones en mltiples bases de datos se
requiere el datawarehouse recopilar y organizar la informacin en solo
lugar la informacin.

TEMA SIST. OPERACIONALES SISTEMA DE SOPORTE DE

DECISION
Contenido de Valores concurrentes Archivos de datos, resumen de
Datos datos calculados
Organizacin Aplicacin por Aplicacin Sujeto a reas de la empresa
de datos (datamart comercial, datamart
empresarial)
Naturaleza de Dinmico El datawarehouse es esttico
datos hasta ser actualizado
Estructura de Complejo adecuado para Simples adecuado para el
los Datos computacin operacional anlisis de negocios.
(Formato)
Probabilidad Alta probabilidad de acceso Moderada o baja
de acceso
Actualizacin Actualizacin en la base Acceso y manipulacin no se
de datos campo por campo actualiza directamente
Uso Altamente estructurado No estructurado proceso
procesos repetitivos analtico

69
BASE DE DATOS

Tiempo de Milisegundo Segundos a minutos


respuesta
Las bases de datos relacionales almacenan informacin y tablas como
registros con llaves y los datos se accedan mediante un lenguaje en comn,
SQL otra parte los depsitos de datos multidimensionales almacenan los datos
de manera lgica en arreglos.

TECNICA PARA CONSTRUIR UNA BASE DE DATOS


La razn de la complejidad del datawarehouse es el rango de tcnicas que se
requieren para formular desarrollar implementar y explotar un datawarehouse.

TECNICAS EMPRESARIALES. Se relacionan con la comprensin de los


datos que contienen un datawarehouse, se relaciona con determinar los
requerimientos corporativos y traducirlos a consultas que pueden satisfacer
el datawarehouse.
1. TECNICAS RELACIONADAS CON LA TECNOLOGIA. Junto con las
complejidades de implementar un datawarehouse est la necesidad de
que el proceso conserve el mismo ritmo de la curva de aprendizaje de
los usuarios y la demanda de la organizacin para absorber la
tecnologa.
2. TECNICAS DE ADMINISTRACION DEL PROGRAMA. Los datos
extrados deben ser uniformes para poder combinar los datos de
diferentes fuentes dentro del datawarehouse este proceso se llama
transformacin.
El software de transformacin convierte los datos durante el traslado
para asegurar que la informacin sea compatible con la base de datos
que la recibe.
Desarrollar, seleccionar e integrar estas piezas de Software requieren
tcnicas de administracin de datos y administracin de bases de datos,
tambin se requiere tcnicas de refinamiento o tunning en el ejecucin
de consultas en la base de datos para obtener un rendimiento aceptable
en la solucin del datawarehouse.

70
BASE DE DATOS

ARQUITECTURA LOGICA DEL DATAWARE HOUSE

- ALERTAS CARGA AUTOMATIZADA


EXPLORACION DE
Z - AGREGACION/ DESAGREGACION CORRELACION
DESCONOCIDAS
zona

HERRAMIENTAS
DE EXTRACCION t
DE
INFORMACION ANALISIS CONSULTAS Y
MULTIDIMENSIONAL REPORTES DATAMINING
COMPLEJOS

CONTROL DE CALIDAD
DICCIONARIO DE DATOS DE DATOS

DATAWARE HOUSE

BASE DE
DATOS

INTEGRACION
DE DATOS

FUENTES HISTORICA ARCHIVOS BD. BD. GEO BD. TEXTO


REFERENCIAL

DATAWAREHOUSE. Es una base de datos que incluye datos relevantes para la


toma de decisiones en un rea de negocios es globalmente en la empresa(rea
de negocios datamar)
Los datos almacenados en el Datawarehouse son fundamentalmente
agrupamientos y totalizadores de los datos relevantes que se encuentran en la
base de produccin, un comportamiento importante del datawarehouse es el
diccionario de datos llamado tambin metadatos describe los datos
almacenados con el objetivo de facilitar el acceso a los mismos a travs de las
herramientas OLAP(Procesamiento Analtico en Lnea)

Ejemplo:
Master Businnes

71
BASE DE DATOS

INTERFACES ORIENTADAS A USUARIOS


Extraen informacin para la toma de decisiones las clsicas son el anlisis
multidimensional, las consultas y reportes y el Datamining este es el bloque de
valor importante de toda la implementacin del Dataware House, una
consideracin importante es el rango de consultas predefinida repetitiva para
profundizar y estas consultas tienen acceso a cantidades de datos pequeos o
grandes el componente de anlisis y reporte es responsable de la familia de
herramientas y aplicaciones necesarias para aprovechar el datawarehouse
estos se clasifican en herramientas de reporte anlisis y de soporte de
decisiones de modelado empresarial y procesamiento analtico y de minera de
datos las herramientas y ayuda a Consultas del sistema y al personal de
mantenimiento a comprender, vigilar y administrar la informacin del
datawarehouse.
En la actualidad existen herramientas de diseo construccin y explotacin
administracin de repositorios de informacin mediante base de datos
multidimensionales orientadas a la implementacin del datawarehouse.
Para escoger las herramientas debemos tomar en cuenta lo siguiente:

Tiempo que toma en cargar el datawarehouse


Tiempo de construccin y curva de aprendizaje
Disponibilidad de las herramientas DISCOVER CAGNUS, POWER
DESIGNER 2000, DISEADOR PLANET
Portabilidad y escalabilidad (se mejora las versiones)
Facilidad para la administracin.
Organizacin de datawarhouse y los metadatos

Los requerimiento mnimos que debe contemplar una herramienta de


consulta para DatawareHouse son las siguientes:
Facilidades para acceso manejo y presentacin de datos
Manejo de dimensiones
Capacidad de manejo de detalles en caso de anlisis
multidimensionales (drill down)
Manejo de totales en el caso de anlisis multidimensional
Reportes gerenciales, etc

INFRAESTRUCTURA
La funcionalidad de dataware house se divide en 5 grades grupos, cada uno de
los cuales es responsable de un proceso especfico:

Acceso a Fuentes
Carga de
Almacenamiento
Consultas
Metadatos

La funcionalidad de acceso a fuentes incluyen proceso que se aplican en las


bases de datos fuentes a los que sern transferidos los datos pueden transferir
de fuentes muy diversas el determinar la mayor fuente de datos evitando
redundancias es una de las tareas ms largas y difciles desafortunadamente
automatizar estas tareas no nada fcil.

72
BASE DE DATOS

CARGA: La funcionalidad de carga comprende procesos asociados con la


liberacin de datos desde los aplicativos fuentes a las bases del
datawarehouse.
ALMACENAMIENTO: Esta funcionalidad comprende la arquitectura necesaria
para integrar varia vistas al datawarehouse aunque por lo general cuando
hablamos de datawarehouse consideramos un nico almacenamiento de datos
potencialmente sus datos pueden estar distribuidos en mltiples bases.
Llamamos al datawarehouse a la base integrada y datamart a las vistas
multidimensionales de cada rea la separacin entre el datawarehouse
corporativo y el datamart satlites introduce la necesidad de una estrategia que
coordinen la distribucin de los datos hacia los datamart.
CONSULTAS: Este ambiente permite a los usuarios conducir el anlisis y
producir reportes a travs de sus herramientas o lazos multidimensional.
Ejem.
La herramientas del DATAMINING analizan los datos para identificar con
relaciones inesperados entre ellos.
Una de las principales roles de esta tecnologa chequear la efectividad de las
reglas de la empresa.

El arquitecto del DATAWARHOUSE debe determinar como totalizar los datos.


Existen varios enfoques viables la suma puede realizar durante la carga y
almacenamiento del WATAWORHOUSE la suma puede realizacin durante la
duplicacin de las determinar durante las herramientas de consulta y
simulacin.
METADATOS El conocimiento de los METADATOS es tan importante como el
conocimiento de los datos de DATAWAREHOUSE deben incluir el dominio,
reglas de validacin duracin y transformacin de los datos extrados.
Tambin describen las bases de datos del DATAWAREHOUSE incluyendo
reglas de distribucin y control de la migracin hasta las DATAMAR.
Existen 5 grandes grupos provienen una marco del trabajo para controlar la
arquitectura de los componentes o sea este marco describe las
transformaciones de los datos desde un ambiente OLTP a un ambiente OLAP
(Proceso de anlisis en lnea).

Es el rango de consultas predefinida repetitiva para profundizar y estas


consultas tienen acceso a cantidad de datos pequeos o grandes. El
componente de anlisis y reporte es responsable de la familia de herramientas
y aplicaciones necesarias para aprovechar al DATAWAREHOUSE esta se
clasifica en herramientas de reparte de anlisis y de soporte de drasions de
modelado empresarial y procesamiento analtico y en minera de datos las
herramientas ayudan a consultar de sistema y al personal de mantenimiento a
comprende vigilar y administrar la informacin

DISEO DE CONSTRUCCION
El Datawarehouse tiene un ciclo de vida similar a los sistemas de tipo
transaccin oral. Las fases que comprende el ciclo de vida del Datawarehouse
son los siguientes.
1. Planeacin
2. Requerimientos
3. Anlisis

73
BASE DE DATOS

4. Diseo
5. Construccin
6. Despliegue o Pruebas
7. Expansin o Desarrollo

1. PLANEACION: Es el proceso ms importante donde se establecer el tipo


de solucin de la empresa. Existen tres factores a considerar a la hora de
establecer un Data Warehouse:

1.- Alcance del Data Warehouse

2.- Redundancia de datos


El concepto de data warehouses centrales es el concepto inicial que se tiene
del data warehouse. Es una nica base de datos fsica, que contiene todos los
datos para un rea funcional especfica, departamento, divisin o empresa.
3.- Usuario Final: Existen tres grandes categoras:
Ejecutivos y gerentes
"Power users" o "Buzo de Informacin" (analistas financieros y de negocios,
ingenieros, etc.)
Usuarios de soporte (de oficina, administrativos, etc.).
Cada una de estas categoras diferentes de usuario tienen su propio conjunto
de requerimientos para los datos, acceso, flexibilidad y facilidad de uso.

Los paso para implementar un Data Warehouse

1.1.1 Seleccin de estrategias de implementacin: Tiene mucho que ver con la


cultura de la organizacin y se basan en como se llevan a cabo las
tareas dentro de la organizacin
1.1.2 Seleccin de metodologas de desarrollo: Consiste en desarrollar un a
lista de objetivos empresariales que la empresa debe satisfacer

74
BASE DE DATOS

1.1.3 Seleccin del mbito de implementacin : una primera implementacin


es la motivacin del proyecto, despus de definir los objetivos se hace
necesario derivar con rapidez un mbito ilimitado, el mbito puede
restringirse en dos categoras: a. mbito determinado a partir de la
perspectiva del usuario y determinacin del mbito con base en
consideraciones tecnolgicas
1.1.4 Seleccin de enfoque arquitectnico: se dispone de las siguientes
opciones
Almacenamiento operacional en comparacin con el uso de copias de
datos operaciona
operacionales
Solo Data Warehouse
Solo mercado de datos
Data Warehouse y mercado de datos
Separacin de plataforma e infraestructura
Arquitectura cliente/servidor de dos hileras
Arquitectura cliente/servidor de tres hileras
1.1.5 Desarrollo del programa y presupuesto del proyecto:
Articular un plan de programa es decir una visn, su funcin de vida
diaria y semanal
de la organizacin
Reservar un presupuesto al tiempo que se compromete el gasto para el
proyecto y se
basa en dos enfoques:
Proporcionar medidas para la estimacin de la retribucin
1.1.6 Desarrollo de escenarios de uso empresarial: Un factor de xito es hacer
que los usuarios finales se involucren en el establecimiento de las
expectativas de lo que ofrece el data warehouse
1.1.7 Recopilacin de metadatos: los cuales se utilizan para construir Data
Warehouse los cuales proviene de muchas fuentes como:
Los modelos empresariales construidos por la organizacin
Los depsitos y diccionarios
Las fuentes externas de datos

2. REQUERIMIENTOS: describieran con claridad el ambiente operativo en el


que se entregara el Datawarehouse. Los pasos son:

1.2.1. Requerimientos del propietario: Algunas de las cuestiones: Porqu


construir??Cuales son los objetivos??Cuantos costara?? Cuando estar
listo??
Para ampliar un negocio, se necesita que la informacin sea
comprensible. Para muchas compaas, sto significa un gran data
warehouse que muestre, junto a los datos no filtrados y dispersos, nuevas
formas creativas de presentacin.
1.2.2. Requerimientos del arquitecto El arquitecto es la persona responsable de
disear los diferentes componentes, la calidad el esfuerzo determina: el rango
de funciones y
caractersticas a ofrecer, el rango de plataformas, el uso de estndares e
Interfaces la flexibilidad

75
BASE DE DATOS

1.2.3. Requerimientos del Desarrollador: el desarrollador requiere que la


arquitectura de datos, de aplicacin y tecnologa se subdividan y necesitan
de los siguientes requerimientos: de tecnologa, despliegue, de disposicin
para el desarrollo y despliegue del personal y sus habilidades
1.2.4. Requerimientos del usuario final: podran ubicarse en una o ms de las
siguientes
categoras:
Flujo de trabajo
Requerimientos de consultas
Requerimientos de reporte

3. ANLISIS: significa convertir los requerimientos acopiados en la fase


anterior en un conjunto de especificaciones que puedan apoyar al diseo y
hay tres especificaciones principales de entrada:

1.3.1 Requerimientos de enfoque empresarial: El enfoque empresarial


determinara la audiencia y sus requerimientos de informacin, la informaciones
se clasifica en categoras que permiten establecer prioridades y un ejemplo
seria clasificar la informacin en categora de costos e ingresos
1.3.2 Especificaciones de requerimientos de fuentes de datos: El data
warehouse toma informacin de los datos existentes en la empresa los cuales
conforman los cimientos de una base de conocimientos que sirven para
determinar la salud de la empresa
1.3.3 Especificaciones de requerimientos de usuario final de acceso: Definen
como se utilizara la informacin del Data Warehouse y junto con estas se
encuentran las especificaciones de los tipos de herramientas tcnicas
El proceso de anlisis consiste en derivar modelos fsicos y lgicos de datos
para el Data Warehouse y los mercados de datos y definir los procesos
necesarios para conectar la fuente de datos

4. DISEO: En la fase de diseo los modelos lgicos se convierten en modelos


fsicos los procesos identificados en la fase de anlisis para conectar con las
fuentes de datos con el
Data Warehouse y este con los mercados de datos y este Data
Warehouse/mercados con las herramientas de trabajo del usuario final, se
convierten en diseos para programas que realizaran las tareas requeridas.
Las aplicaciones que tienen un buen rendimiento y estn disponibles para el
procesamiento de transacciones, deben llevar una cantidad mnima de datos si
tienen cualquier grado de flexibilidad. Por ello, las aplicaciones operacionales
tienen un corto horizonte de tiempo, debido al diseo de aplicaciones rgidas
Las fases de diseo son:
1.- Diseo detallado de la arquitectura de datos.- Se refiere al desarrollo de los
modelos fsicos de datos donde se almacenar el DWH
2.- Diseo detallado de la arquitectura de la aplicacin.-

ESTRATEGIAS PARA EL DISEO DE UN DATA WAREHOUSE

El diseo de los data warehouses es muy diferente al diseo de los sistemas


operacionales tradicionales. Se pueden considerar los siguientes puntos:

76
BASE DE DATOS

1ra. : Los usuarios de los data warehouses usualmente no conocen mucho


sobre sus requerimientos y necesidades como los usuarios operacionales.
2da.: El diseo de un data warehouse, con frecuencia involucra lo que se
piensa en trminos ms amplios y con conceptos del negocio ms difciles de
definir que en el diseo de un sistema operacional. Al respecto, un data
warehouse est bastante cerca a Reingeniera de los Procesos del Negocio
(Business Process Reengineering).
3ra.: Finalmente, la estrategia de diseo ideal para un data warehousing es
generalmente de afuera hacia adentro (outside-in) a diferencia de arriba hacia
abajo (top-down).

A pesar que el diseo del data warehouse es diferente al usado en los diseos
tradicionales, no es menos importante. El hecho que los usuarios finales tengan
dificultad en definir lo que ellos necesitan, no lo hace menos necesario. En la
prctica, los diseadores de data warehouses tienen que usar muchos "trucos"
para ayudar a sus usuarios a "visualizar" sus requerimientos. Por ello, son
esenciales los prototipos de trabajo.

5.- Construccin La fase de construccin es responsable de implementar


fsicamente los diseos de la fase anterior.
La construccin del DataWarehouse es similar a la construccin de un sistema
de base de datos relacional grande, la mayora de las aplicaciones que se
necesita construir son las siguientes:

Programas que creen y modifiquen las bases de datos para el Data


Warehouse
Programas que extraigan datos de fuentes de base de datos relacionales y
no relacionales.
Programas que realicen transformaciones de datos, tales como integracin,
resumen y adicin.
Programas que realicen actualizaciones de base de datos relacionales
Programas que efecten bsquedas en bases de datos muy grandes

Esquema Estrella

Como el nombre sugiere, el esquema estrella es un paradigma de modelado


que tiene un solo objeto en medio conectado con varios objetos de manera
radial. El esquema estrella refleja la visin del usuario final de una consulta
empresarial: hechos tales como ventas, compensacin, pago y facturas, se
califican por una o ms dimensiones (Por mes, por producto, por regin
grfica). El objeto en el centro de la estrella se denomina tabla de hechos y los
objetos conectados a ella se denomina tablas de dimensin.

77
BASE DE DATOS

ESQUEMA COPO DE NIEVE

Este es una extensin del esquema estrella en donde cada uno de los puntos
de la estrella se divide en ms puntos. En esta forma de esquema, las tablas
de dimensin del esquema estrella contienen ms normas.

Las ventajas que proporciona el esquema copo de nieve son mejorar el


desempeo de consultas debido a un mnimo almacenamiento en disco para
los datos y mejorar el desempeo mediante la unin de tablas ms pequeas
con normas, en vez de las grandes tablas sin normas. Asimismo, el esquema
copo de nieve incrementa la flexibilidad de las aplicaciones debido a la
aplicacin de normas y, por lo tanto, disminuye la granularidad de las
dimensiones.

78
BASE DE DATOS

Esquema Mixto

El esquema mixto es un convenio entre el esquema estrella, basado en tablas


de hechos y tablas de dimensin de normas, y el esquema copo de nieve, en
donde todas las tablas de dimensin tienen normas. En el esquema mixto solo
se aplican normas a las tablas de dimensin ms grandes.

Aplicacin Planeacin Datamar


Matricula Tcnicas empresariales
Facturacin Requerimientos corporativos
Recaudacin Resumen Cartera Vencida
Mensual, trimestral, semestral, Anual
Por sector
Por zona
Por tipo de servicio

79
BASE DE DATOS

Ejemplo
PRESTAMOS DE CDs
DISEO DEL DATA MART

CATEGORIA

Cod_categoria
descripcion

PRODUCTO
Fecha _ prstamo TIPOS
Cod_producto Cod_producto
Cod_cliente Cod_categoria Cod_tipo
Cod_tipo
Cantidad Descripcin
Valor

CLIENTE

Cod_cliente
nombre

META DATOS

Nombre del Campo: FECHA_PRESTAMO


Descripcin: Fecha que se realiza el prestmo
Tipo: datatime
Longitud: 8
Archivo Fuente:
Archivo Destino en tabla D.W: PRESTAMO
Frmula:
Nombre del script: DMPCDs.sql
Unidad de Medida:

Nombre del Campo: Cod_producto

80
BASE DE DATOS

Descripcin: Es el codigo del cd


Tipo: numeric
Longitud: 5
Archivo Fuente:
Archivo Destino en tabla D.W: PRESTAMO
Frmula:
Nombre del script: DMPCDs.sql
Unidad de Medida:

Nombre del Campo: COD_CLIENTE


Descripcin: Es el codigo que tiene la tabla de cliente
Tipo: numeric
Longitud: 5
Archivo Fuente:
Archivo Destino en tabla D.W: PRESTAMO
Frmula:
Nombre del script: DMPCDs.sql
Unidad de Medida:

Nombre del Campo: CANTIDAD


Descripcin: Cantidad de CDs prestados
Tipo: numeric
Longitud: 5
Archivo Fuente:
Archivo Destino en tabla D.W: PRESTAMO
Frmula:
Nombre del script: DMPCDs.sql
Unidad de Medida:

Nombre del Campo: VALOR


Descripcin: Valor que tiene el prstamo por cada cd
Tipo: numeric
Longitud: 5
Archivo Fuente:
Archivo Destino en tabla D.W: PRESTAMO
Frmula:
Nombre del script: DMPCDs.sql
Unidad de Medida:

81
BASE DE DATOS

BASE DE DATOS ORIENTADO A OBJETOS


ORACLE VERSION ENTERPRISE

Oracle es un sistema de administracin de Base de Datos Relacionales


(RDBMS).

La opcion de Objetos disponible en la version empresarial de Oracle 8 hace de


Oracle un sistema de administracin de Base de Datos Objeto.

Con la Opcion de Objetos, Oracle almacena y acccesa a los datos


estructurados del negocio en forma natural a traves de tipos de datos
complejos definidos por el usuario.

Trabaja en forma eficiente con aplicaciones desarrolladas utilizando tecnicas de


programacin orientadas a objetos utilizando tales como C++.

Tipos de datos de Usuario

Los tipo de Objeto son plantillas que corresponden a abstracciones del mundo
real definidas a partir de los tipos de datos propios de Oracle y otros tipos de
datos de usuario, la estructura de datos que se ajusta a la plantilla se llama
objeto.

El tipo Objeto esta compuesto por:

Un nombre: Que identifica en forma nica al tipo objeto.

Atributos: Definen la Estructura y estado de la entidad del mundo real pueden


ser tipos de datos propios de Oracle y otros tipos de datos de usuario.

Mtodos: Son funciones o procedimientos escritos en Pl/SQL y almacenados


en Base de Datos o escritos en un lenguaje como C y almacenados
externamente. Los mtodos implementan operaciones que pueden ser
ejecutadas por las entidades del mundo real.

Tipo Coleccin

Cada tipo coleccin describe una unidad de datos constituida por un


indeterminado nmero de elementos, todos del mismo tipo, ya sea tipos
predefinidos de oracle o tipo objeto, sirven para definir atributos multivaluados.

Los tipos coleccin pueden ser tipo arreglo/VARRAY o tipo tabla /TABLA
ANIDADA.

Los tipos coleccin tienen de construccin. El nombre del mtodo constructor


es el nombre del tipo, y sus argumentos son los elementos de la coleccin
separados por comas. El mtodo constructor es una funcin que retorna como
valor resultante una nueva coleccin.

82
BASE DE DATOS

Veamos un ejemplo extendido.

Un ejemplo Extendido

Ordenes de Compra.- Este ejemplo se basa en una actividad simple de


negocio: modelo de datos para el tratamiento de ordenes de compra de
clientes. El ejemplo se presenta en tres partes, cada parte implementa un
esquema para soportar la actividad bsica.

La primera parte implementa el esquema utilizando solamente los tipos de


datos propios de ORACLE, es decir la solucin puramente relacional

La segunda y tercera parte utilizan los tipos definidos por el usuario (UDTs)
para trasladar las entidades y relaciones directamente a un esquema de
objetos.

En la segunda parte del ejemplo se crea el esquema de objetos para


almacenar los datos en contraste con el esquema puramente relacional de la
primera parte.

En la tercera parte del ejemplo se utiliza el esquema relacional creado en la


primera parte, los tipos objeto creados en la segunda parte y aplica vistas
objeto para representar un esquema virtual de objetos.

Primera Parte del Ejemplo- Implementacin Relacional

Las entidades bsicas de ejemplo son:

Los Clientes/Customers, Los productos en venta / Stock y Las Ordenes


de Compra/ Purchase Orders

La Entidad Cliente tiene una relacin uno a muchos con las Ordenes de
Compra, puesto que un cliente puede poner varias ordenes de Compra pero
una orden de compra corresponde solamente a un cliente.

La Entidad Ordenes de compra tiene una relacin de muchos a muchos con


la entidad Productos, puesto que una orden puede contener varios productos
y un producto puede estar incluido en varias ordenes. La forma de romper esta
relacin de muchos a muchos es introducir una nueva entidad que la
llamaremos lneas de la lista de tems/Line Item List, de manera que una
orden de compra pueda tener un numero arbitrario de lneas de tems, pero
cada lnea de item pertenece a una sola orden de Compra.

Un producto puede aparecer en muchas lneas de tems, pero cada lnea de


productos se refiere a un solo producto. Las relaciones serian las siguientes:

Customer(custno, custname, informacin de ubicacin)

83
BASE DE DATOS

Stock(itemid, cost, cdigo de impuesto)


Parchase Order(purchaseno, custno, fechas, direccin de envo)
Line Item List(LineItemId, purchaseno, Itemid, cantidad, precio, descuento)

La implementacin relacional normaliza las entidades y sus atributos,


estructurando las entidades cliente, orden de compra y producto en tablas.

Segunda parte del Ejemplo: Implementacin con Objetos

El problema es que las entidades del mundo real son complejas, por lo que
requieren un conjunto complejo de atributos que representan su estructura de
datos. Una direccin contiene atributos tales como calle, ciudad, estado, y
cdigo postal. Un cliente puede tener varios nmeros telefnicos. La entidad de
lnea de la lista de tems es una entidad en su propio derecho pero adems es
un atributo de la entidad orden de compra. Los tipos de datos propios de oracle
no pueden representar estos atributos en forma directa. La opcin de objetos
hace posible manejar estas estructuras complejas.

Definicin de Tipos

Las siguientes sentencias inician la definicin:


CREATE TYPE line_items_t;
CREATE TYPE putcharse_order_t;
CREATE TYPE stock_info_t;

Las sentencias precedentes definen en forma incompleta los tipos. Las


definiciones incompletas notifican a Oracle que las definiciones completas
vendrn a continuacin. Oracle permite que las definiciones hagan referencia a
tipos incompletos a fin de facilitar su construccin y compilacin.

La siguiente sentencia define un tipo de arreglo.

CREATE TYPE phone_list_t AS VARRAY(10) OF VARCHAR2(20);


Esta sentencia define el tipo llamado PHONE_LIST_T. Cualquier atributo
multivaluado de este tipo es un arreglo VARRAY de hasta 10 nmeros
telefnicos, cada uno del tipo de dato VARCHAR propio de oracle.

Una lista de Nmeros de telfono puede ser un arreglo o una tabla anidada, en
este caso la mejor opcin es un arreglo, por las razones siguientes:

El orden de los nmeros puede ser importante. Los VARRAYs estn


ordenados, las tablas anidadas no tienen orden.
La cantidad de nmeros de telfono para un cliente es pequeo. Los
VARRAYs forsn la especificacin de un nmero mximo de elementos
(10 en este caso). Estos utilizan el almacenamiento mas eficientemente
que las tablas anidada las cuales no tiene limitaciones especiales de
tamao.
No existe razn para realizar querys sobre la lista de nmeros de
telfono, de tal manera que el formato de tabla anidada no ofrece ningn
beneficio en este caso.

84
BASE DE DATOS

En general, si el orden y la cantidad no son consideraciones importantes del


diseo la regla sera la siguiente: Si se requiere realizar querys sobre la
coleccin, utilizar tablas anidadas, si se pretende acceder la coleccin como un
todo, utilizar VARRYs.

CREATE TYPE address_t AS OBJECT (


street VARCHAR2(200),
city VARCHAR2(200),
state CHAR(2),
zip VARCHAR2(20)

);

Esta sentencia define el tipo Objeto address_t. Los atributos multivaluados de


este tipo representan direcciones compuestas por atributos tipo cadena de
caracteres.
La sentencia siguiente define un tipo objeto que utiliza otros tipos de datos
tambin cuenta con un mtodo de comparacin.

CREATE TYPE customer_info_t AS OBJECT (


custno NUMBER,
custname VARCHAR2(200),
address address_t
phone_list phone_list_t,
ORDER MEMBER FUNCTION
Cust_order(x IN customer_info:_t)RETURN INTEGER,
PRAGMA RESTRICT_REFERENCES (
Cust_order, WNDS;WNPS;RNPS;RNDS)
);

Cada objeto de este tipo tiene asociado un mtodo de orden, unos de los dos
tipos de mtodos de comparacin. Siempre que ORACLE requiere comparar
dos Objetos del tipo CUSTOR_INFO_T, invoca el metodo CUST_ORDER para
hacerlo.

La siguiente sentencia completa la definicin del tipo objeto LINE_ITEM_T ,


que ya lo declaramos.

CREATE TYPE line_items_t AS OBJECT (


line item no NUMBER,
STOCKREF REF stock_info_t,
Quantity NUMBER,
disco unt NUMBER
);

STOCKREF es una referencia al tipo objeto Stock_ info_ t que representa los
productos.

85
BASE DE DATOS

CREATE TYPE line_item_list_t AS TABLE OF line_item_t;


Esta sentencia define la tabla anidada LINE_ITEM_LIST_T donde cada tupla
de la tabla contiene un objeto del tipo LINE_ITEM_T.

En este caso la tabla anidada es una mejor opcin para representar la lista de
tems de la orden que un arreglo VARRAY de objetos del tipo LINE_ITEM_T,
por las razones siguientes.

Realizan querys sobre el contenido de la lista de tems de la orden de


compra es una necesidad prioritaria.
El indexamiento para el acceso eficiente es necesario, los VARRAY no
pueden ser indexados.
El Ordenamiento para los items de la lista puede ser resuelto por el
nmero de lneas.
No existen limite a lis tems de la lista de la orden de compra, los
VARRAY requieren que se especifiquen un nmero mximo de
elementos.
La sentencia siguiente completa la definicin de tipo objeto

PURCHASE_ORDER_T
CREATE TYPE purchase_order_t AS OBJECT (
pono NUMBER,
custref REF customer_info_t,
orderdate DATE,
shipdate DATE,
line_item_list line_items_list_t,
shiptoaddr address_t,

MAP MEMBER FUNCTION


ret_value RETURN NUMBER,
PRAGMA RESTRICT_REFERENCES (
Ret_value, WNDS;WNPS;RNPS;RNDS),

MEMBER FUNCTION
Total_value RETURN NUMBER,
PRAGMA RESTRICT_REFERENCES (total_valu, WNPS)
);

La sentencia siguiente completa de STOCK_INFO_T, el ltimo de los tres tipos


objeto, declarados al inicio:

CREATE TYPE stock_info_t AS OBJECT (


stockno NUMBER,
cost NUMBER,
tax_code NUMBER,
);

86
BASE DE DATOS

Creacin de las tablas Objeto

En general, pensamos en la relacin entre Objetos y tablas de la manera


siguiente.

Clases, que se representen entidades, definidas como tablas.


Atributos representados como columnas, y
Objetos representados por tuplas o filas de registro.

Visto de esta manera cada tabla es un tipo implcito cuyos objetos (tuplas
especificas) tienen los mismos atributos (Columnas). La creacin de tipos
explcitos de datos abstractos y de tablas objeto nos introducen en un nuevo
nivel de funcionalidad.

Tablas Objeto con objetos embebidos.

Examinamos la definicin observamos que la columna ADDRES contiene del


tipo ADDRES_T. Puesto de otra manera: un tipo de datos abstracto puede
tener atributos que son por si mismos tipos de datos abstractos. Cuando estos
tipos son instanciados como objetos sus objetos incluidos son instanciados al
mismo tiempo. Los Objetos de ADDDRES_T contienen atributos de tipo propio
de oracle, lo que significa que son atributos terminales de
CUSTOMER_INFO_T.- Oracle crea columnas para los objetos ADDRES_T y
sus atributos en la tabla objeto CUSTOMER_TAB. Se pueden referenciar estas
columnas usando la notacin punto, por ejemplo podemos referenciar como
ADDRES.ZIP si deseamos crear un ndice sobre esta columna.

Las columnas PHONE_LIST contiene un arreglo VARRY del tipo


PHONE_LIST_T que fuera definido como.

CREATE TYPE phone_list_t AS VARRAY(10) OF VARCHAR2(20);


Pusesto que cada arreglo VARRAY de este tipo puede contener hasta 200
caracteres (10 x 20).

La tabla objeto STOCK_TAB se drea a partir del tipo objeto stock_info_t:


(stockno PRIMARY KEY):

La tabla se crea con los 3 atributos numricos del tipo:


stockno NUMBER,
cost NUMBER,
tax_code NUMBER

87
BASE DE DATOS

ANEXOS
Ejercicios de esquema de bases de datos

88
BASE DE DATOS

89
BASE DE DATOS

90
BASE DE DATOS

91
BASE DE DATOS

92
BASE DE DATOS

93
BASE DE DATOS

94
BASE DE DATOS

95
BASE DE DATOS

96

You might also like