Sei sulla pagina 1di 17

Introducción

Objetivos del capítulo


En este capítulo se describen los siguientes conceptos:
• Características de Oracle9i
• Aspectos teóricos y físicos de una base de datos relacional
• Implementación del sistema manejador de base de datos relacionales
RDBMS (relational database management system) y sistema
manejador de base de datos relacionales orientado a objetos ORDBMS
(object relational database management system)

Características de Oracle9i
Oracle ofrece una infraestructura de alto desempeño llamado Oracle9i, el cual
comprende cada una de las necesidades de desarrollo, mejoras y
administración de aplicaciones para Internet.

Entre sus ventajas se incluyen:


• Escalabilidad para los sitios de comercio electrónico
• Arquitectura robusta, confiable, accesible y segura
• Modelo de desarrollo, con fáciles opciones
• Cualidades en común a lo largo de la plataforma de Oracle (SQL,
PL/SQL, Java y XML)
• Interfaz de administración para todas las aplicaciones
• Tecnología estándar, no cerrada
Oracle9i
Existen dos productos, Oracle9i Application Server y Oracle9i Database, los
cuales proveen una completa y simple infraestructura para aplicaciones en
Internet.

Oracle9i Application Server


Oracle9i Application Server (Oracle9iAS) ejecuta todas tus aplicaciones.
Oracle9i Database almacena todos tus datos.

Oracle9i Application Server es la única aplicación que incluye servicios para


todas las diferentes aplicaciones que se deseen ejecutar. Con Oracle9iAS se
pueden ejecutar:
• Portales o sitios Web
• Aplicaciones de transacciones en Java
• Aplicaciones de inteligencia de negocios (Business intelligence)

Además provee integración entre los usuarios, aplicaciones y datos de la


organización
Oracle9i Database
Los papeles o funcionalidades de cada uno de los productos son muy precisos.
Oracle9i Database administra todos los datos. Esto no significa que sólo se
administren datos relacionales, también pueden ser administrados datos sin
una estructura como:
• Hojas de cálculo
• Documentos de Word
• Presentaciones de PowerPoint
• Información en el formato XML
• Información multimedia como MP3, gráficos, videos, entre otros

Los datos no tienen que estar necesariamente en la base de datos. Oracle9i


Database cuenta con un servicio que permite almacenar la localización de los
archivos en el sistema. De esta manera se puede usar el servidor de base de
datos para administrar y utilizar la información donde se encuentre localizada
sin necesidad de guardarla físicamente en la misma.

Acerca de Oracle Server


Oracle9i Server soporta el modelo relacional y el modelo de objetos
relacionales.

Oracle9i Server amplia la capacidad de modelado al soportar el modelo de


base de datos de objetos relacionados permitiendo la programación orientada a
objetos, tipos de datos complejos, objetos de negocio complejos y una
completa compatibilidad con el mundo relacional.

También se incluyen diversas mejoras en el desempeño y funcionalidad de las


aplicaciones de procesos de transacciones en línea (OLTP), como una mejor
compartición de las estructuras de datos en tiempo de ejecución, aumento en el
buffer del cache y restricciones postergables. Los datos de aplicaciones para
una base de datos del tipo warehouse (almacén) se ven beneficiados con la
ejecución en paralelo de operaciones de inserción, modificación y eliminación,
particionamiento y la optimización de consultas en paralelo. Oracle9i soporta
aplicaciones Web y Cliente servidor distribuidas y en multicapas.

Oracle9i puede aumentar de 10 a miles de usuarios concurrentes, soportando


mas de 512 petabytes (1 petabyte = 1,000 terabytes) de datos y puede
manejar todo tipo de datos, incluyendo texto, imágenes, sonido, video y
secuencias de tiempo como una estructura de datos tradicional.

Plataforma de Oracle en Internet


Oracle ofrece un alto desempeño en Internet para comercio electrónico y
manejos de almacén. Esta plataforma integrada incluye cada una de las
necesidades de desarrollo y administración de aplicaciones en Internet. La
plataforma de Oracle en Internet esta conformada de tres piezas
fundamentales:
• Un browser para presentar los procesos al cliente
• Un servidor de aplicaciones que ejecuta la lógica de negocios y la
presenta en un browser al cliente
• Bases de datos para ejecutar la lógica de negocios y presentar los datos
Ciclo de vida en el desarrollo de un sistema
Desde el concepto a la producción, se puede desarrollar una base de datos
usando el ciclo de vida en el desarrollo de un sistema, el cual contiene
múltiples fases para su desarrollo, transformando la información requerida a
una base de datos operacional.

Estrategia y análisis
• Estudia y analiza los requerimientos del negocio. Entrevista a los
usuarios y administradores para identificar los requerimientos. Incorpora
a la empresa y a la misión de las aplicaciones como especificaciones del
futuro sistema
• Construye modelos del sistema. Transfiere la narrativa del negocio a una
representación gráfica de la información del negocio y sus reglas.
Confirma y refina el modelo con analistas y expertos

Desarrollo
• Desarrolla la base de datos basado en el modelo desarrollado en el paso
anterior

Construcción y documentación
• Construye un prototipo del sistema. Escribe y ejecuta comandos para
crear las tablas y objetos de la base de datos
• Desarrolla la documentación para el usuario. Textos de ayuda y
manuales para el uso y operación del sistema
Transición
• Refina el prototipo. Se pone una aplicación en producción para que un
usuario lo verifique utilizando datos existentes de forma paralela. Se
hacen las modificaciones requeridas

Producción
• Se proporciona el sistema a los usuarios para ser usado. Se monitorea
su desempeño, afinando y refinando el sistema

Nota: Varios de los pasos del ciclo de vida en el desarrollo de sistemas pueden
realizarse repetidamente. Este curso solo se concentra en los pasos.

Almacenamiento de información
Toda organización tiene diversas necesidades de información. Una biblioteca
mantiene una lista de miembros, libros, fechas de vencimiento y tarifas. Una
compañía necesita guardar la información de sus empleados, departamentos y
salarios. Estas piezas de información son llamados datos.

Las organizaciones pueden almacenar sus datos en diversos medios y en


diferentes formatos, como una copia de documentos en archiveros o datos
almacenados en formato electrónico como hojas de cálculo o bases de datos.

Una base de datos es una colección organizada de información.

Para administrar bases de datos, es necesario contar con un sistema


manejador de bases de datos (DBMS data base management system). Un
DBMS es un programa que almacena, recupera y modifica información de una
base de datos. Existen 4 principales tipos de bases de datos: Jerárquica, de
Red, Relacional y más recientemente relacional orientada a objetos.

Modelo relacional
El principio del modelo relacional fue propuesto por el Dr. Edgar Frank Codd en
Junio de 1970 en su artículo llamado “A Relational Model of Data for Large
Shared Data Banks”. En este artículo el Dr. E.F. Codd propuso el modelo
relacional para sistemas de base de datos.

El más popular modelo usado en este tiempo después del jerárquico y de


redes. El sistema manejador de bases de datos relacional (RDBMS Relational
database management system) muy pronto se convirtió en el más popular,
especialmente por su fácil uso y flexibilidad en su estructura1.

Componentes del modelo relacional


• Una colección de objetos o relaciones que almacenan datos
• Un conjunto de operadores que pueden actuar sobre las relaciones para
producir otras
• Integridad en los datos para mantener precisión y consistencia

Definición de una Base de datos relacional


Una base de datos relacional usa relaciones o tablas de dos dimensiones para
almacenar información.

Por ejemplo, se puede querer almacenar información de todos los empleados


de una empresa. En una base de datos relacional, se pueden crear varias
1
Para más información, vea E. F. Codd, The Relational Model for Database Management
Version 2 (Reading, Mass.: Addison-Wesley, 1990)
tablas para almacenar diferentes piezas de información acerca de los
empleados, como una tabla de empleados, una de departamentos y una de
salarios.

Modelo de Datos
Este modelo es el punto principal del desarrollo. Los ingenieros construyen un
modelo de un auto para trabajar en sus detalles antes de producirlo. De la
misma forma, los desarrolladores de sistemas diseñan modelos para explorar
ideas y mejorar el entendimiento en el desarrollo de bases de datos.

Modelos propuestos
Los modelos ayudan a comunicar los conceptos de la gente. Ellos pueden ser
usados haciendo lo siguiente:
• Comunicando
• Categorizando
• Describiendo
• Especificando
• Investigando
• Evolucionando
• Analizando
• Emulando

El objetivo es producir un modelo que se adapte a los múltiples usuarios, sea


entendido por usuarios finales, y contenga suficiente detalle para que los
desarrolladores construyan el sistema de bases de datos.
Modelo de Entidad Relación
En un sistema eficiente, los datos están divididos en categorías discretas o
entidades. Un modelo de entidad relación (ER) es una ilustración de varias
entidades y sus relaciones entre ellos. Un modelo de ER es derivado de los
requerimientos o procesos del negocio y construido durante el paso de análisis
del ciclo de vida del sistema. Un modelo ER separa la información requerida
del negocio de las actividades desempeñadas. Aunque las empresas pueden
cambiar sus actividades, el tipo de información tiende a permanecer constante.
Por consiguiente, la estructura de los datos permanece.

Beneficios del Modelo Entidad Relación


• La información es clara y en un formato preciso
• Proporciona una vista clara del alcance de los requerimientos de
información
• Provee un fácil entendimiento del diseño de la base de datos
• Ofrece un efectivo soporte para integrar múltiples aplicaciones

Componentes clave
• Entidad: Es algo que nos da significado acerca de la información que
necesitamos conocer. Como ejemplo tenemos a los departamentos,
empleados y ordenes.
• Atributos: Es aquello que describe o cualifica a una Entidad. Por
ejemplo, para la entidad empleados, los atributos pueden ser el número
de empleado, nombre, puesto, fecha de contratación, departamento,
entre otros. Cada uno de los atributos puede ser requerido u opcional.
Esta característica es llamada optativa.
• Relación: Es el nombre de una asociación entre entidades que muestra
su opcionalidad y grado. Un ejemplo es empleados y departamentos u
Órdenes y artículos.

Entidades
Para representar una entidad en un modelo, se siguen las siguientes
convenciones:
• Una caja con orillas redondeadas
• Un nombre único, en singular y en mayúsculas
• Las entidades opcionales son llamadas sinónimos y deben estar escritas
en mayúsculas y entre paréntesis

Atributos
Para representar un atributo en un modelo, se siguen las siguientes
convenciones:
• Nombres en singular y minúsculas
• Los atributos obligatorios se identifican con un asterisco (*)
• Los atributos opcionales se identifican con la letra o
Relaciones
Una relación esta representada por una línea que conecta a dos entidades para
mostrar la asociación que existe entre ellas.

Símbolo Descripción
Línea punteada Indica que la asociación es opcional
“May be”
Línea continua Indica que la asociación es obligatoria
“Must be”
Línea con terminación en forma de pie Indica el grado de la asociación uno o
de gallo más “one or more”
Línea sencilla Indica el grado de la asociación uno a
uno “one and only one”

Cada dirección de una relación contiene:


• Una etiqueta, por ejemplo indicado por o asignado a (taught by or
assigned by)
• Una opcionalidad como must be o may be
• Un grado, como uno a uno o uno a muchos

Nota.- El termino cardinalidad es un sinónimo de grado

En una relación, la entidad origen representa la opcionalidad (may be o must


be) y la entidad destino el grado (uno a uno o uno a muchos).

Nota.- Por convención, la lectura se hace en sentido del reloj.

Identificadores únicos
Un identificador único (UID) es una combinación de atributos, relaciones o
ambas, que sirve para distinguir las ocurrencias de una entidad. Cada
ocurrencia debe ser identificada de forma única.

• Cada atributo identificado con el símbolo # forma parte del identificador


único primario
• Cada atributo identificado con el símbolo (#) entre paréntesis forma parte
del identificador único secundario
Relacionando múltiples tablas
Cada tabla contiene datos que describen exactamente a una entidad. Por
ejemplo, la tabla empleados contiene información acerca de los empleados.
Las categorías de los datos son listados en la parte superior de cada tabla, y en
casos individuales en la parte inferior. Al usar el formato de tablas, se puede
fácilmente ver, entender y usar la información.
Puesto que los datos de diferentes entidades son almacenados en diversas
tablas, se puede necesitar combinar dos o más tablas para responder una
pregunta en particular. Por ejemplo, se puede querer conocer la localización
de cada departamento en donde trabaja un empleado en particular. En este
escenario, se necesita información de la tabla empleados (la cual contiene la
información de los empleados) y la tabla de departamentos (que contiene
información de los departamentos). Con un RDBMS se puede relacionar los
datos de una tabla con los datos de la segunda por medio de las llaves
foráneas. Una llave foránea es una columna o conjunto de columnas que hacen
referencia a la llave primaria de la misma tabla u otra tabla.

Se puede usar la habilidad para relacionar los datos de una tabla con los datos
de otra, organizando la información por separado y manejándola en unidades.
Los datos del empleado pueden ser mantenidos lógicamente separados de los
datos del departamento y ser almacenados en tablas separadas.

Convenciones en el uso de llaves primarias y foráneas


• No se puede duplicar una llave primaria
• Las llaves primaria, generalmente no pueden ser cambiadas
• Las llaves foráneas están basados en datos puramente lógicos, no
físicos o apuntadores.
• El valor de una llave foránea debe corresponder al valor de una llave
primaria o única, o debe ser nulo.
• Una llave foránea debe referenciar a una llave primaria o única.

Terminología usada en una base de datos relacional


Una base de datos relacional puede contener una o más tablas. Una tabla es la
estructura básica de almacenamiento en un RDBMS. Una tabla contiene todos
los datos necesarios respecto a algo del mundo real, como empleados, facturas
o clientes.

La imagen anterior muestra el contenido de la tabla empleados. Cada uno de


los números indica lo siguiente:
1. Una fila de la tabla representa todos los datos requeridos para un
empleado en particular. Cada fila de la tabla puede ser identificada por
una llave primaria, que permite no duplicar filas. El orden de las filas es
insignificante ya que podemos especificar el orden en el que deseemos
recuperar los datos.
2. Una columna o atributo que contiene el número del empleado. El
número del empleado identifica a un único empleado de la tabla. En este
ejemplo, la columna número de empleado es identificada como llave
primaria. Una llave primaria debe contener un valor, y este debe ser
único.
3. Una columna que representa un tipo de dato en una tabla, en el ejemplo
representa el salario de todos los empleados. El orden de las columnas
no es significativo cuando se almacenan los datos, ya que al
recuperarlos se especifica el orden de las columnas.
4. Una columna conteniendo el número del departamento, el cual es
también una llave foránea. Una llave foránea es una columna que define
como las tablas se relacionan con otras. Una llave foránea hace
referencia a una llave primaria o única de la misma tabla u otra. En este
ejemplo, DEPARTMENT_ID únicamente identifica a un departamento de
la tabla departamentos.
5. Un campo puede o no tener un valor. Este es llamado valor nulo (null).
En la tabla de empleados, solo los empleados que tienen un papel de
ventas representativas tienen un valor en el campo COMMISSION_PCT
6. Un campo puede ser ubicado en la intersección de una fila y una
columna. Allí puede haber un único valor.

Propiedades de una base de datos relacional


En una base de datos relacional, no se especifica la ruta de acceso a las tablas
y no es necesario conocer como se encuentran los datos físicamente.
El acceso a la base de datos, se ejecuta por medio de sentencias en un
lenguaje de consulta estructurado (SQL Structured Query Language), que es el
lenguaje estándar del Instituto Nacional de estándares americano (ANSI) para
operar bases de datos relacionales.
El lenguaje contiene un gran conjunto de operaciones para particionar y
combinar relaciones. Las bases de datos pueden ser modificadas por medio del
uso de sentencias SQL.

Lenguaje de Consulta Estructurado


Usando SQL, se puede comunicar con un servidor Oracle. SQL tiene las
siguientes ventajas:
• Es eficiente
• Fácil de usar y aprender
• Consta de una funcionalidad completa (con SQL, se pueden definir,
recuperar y manipular datos de las tablas de una base de datos)
Sistema Manejador de Bases de Datos Relacionales (RDBMS)
Oracle provee un flexible RDBMS llamado Oracle9i. Usando estas
características, se pueden almacenar y administrar datos con todas las
ventajas de una estructura relacional como PL/SQL, un motor que proporciona
la habilidad de almacenar y ejecutar unidades de programa. Además Oracle9i
proporciona soporte para Java y XML. El servidor de Oracle ofrece opciones de
recuperación de datos basados en técnicas de optimización. Incluye
características de seguridad para controlar como es usada y acezada la base
de datos. Otra de sus características es la consistencia y protección de datos a
través de mecanismos de bloqueo.
Oracle9i proporciona un abierto, comprensivo e integrado aprovechamiento en
la administración de la información. Un servidor de Orcale consta de una base
de datos Oracle y una instancia del servidor de Oracle. Cada vez que una base
de datos es iniciada, esta es localizada en un área global del sistema (SGA
System Global Area) y los procesos de soporte de Oracle son iniciados. El área
global del sistema es una sección de memoria utilizada por la base de datos
con información compartida para los usuarios de la misma. La combinación de
los procesos de soporte y los buffers de memoria de Oracle son considerados
la Instancia.
Sentencias SQL
Sentencia Descripción
SELECT Recupera datos de una base de datos
INSERT Agrega nuevas filas, modifica datos
UPDATE existentes y remueve filas de las
DELETE tablas de una base de datos
MERGE respectivamente. Estas sentencias en
conjunto son conocidas como
Lenguaje de manipulación de datos
(DML Data manipulation lenguaje)
CREATE Establece, modifica y remueve
ALTER estructuras de las tablas. En su
DROP conjunto se conoce como Lenguaje de
RENAME definición de datos (DDL Data
TRUNCATE definition language)
COMMIT Administra los cambios realizados por
ROLLBACK sentencias DML. Los cambios
SAVEPOINT realizados a los datos, pueden ser
agrupados en transacciones lógicas
GRANT Otorga y quita el acceso a la base de
REVOKE datos o a sus estructuras. En su
conjunto estas sentencias son
conocidas como Lenguaje de control
de datos (DCL Data control
language)
Tablas usadas para este curso
Las siguientes tablas serán utilizadas durante el curso:
• EMPLOYEES, la cual contiene los detalles de todos los empleados
• DEPARTMENTS, que contiene los detalles de los departamentos
• JOB_GRADES, contiene los detalles de sueldos de acuerdo al puesto

Resumen
Un sistema manejador de bases de datos relacional esta compuesto por
objetos y relaciones. Estos son administrados por operaciones y controlados
por reglas de integridad en los datos.
Oracle proporciona productos y servicios apropiados para las necesidades de
los sistemas manejadores de base de datos relacionales. Entre los principales
productos esta el servidor de base de datos Oracle9i, con el cual se puede
almacenar y administrar información usando SQL y el servidor de aplicaciones
Oracle9i con el cual se pueden ejecutar las aplicaciones.

Oracle Server soporta el SQL estándar de ANSI y adiciones propias. SQL es el


lenguaje usado para comunicarse con el servidor para acceder, manipular y
controlar los datos.