Professional Documents
Culture Documents
1
CI3315 Enero-Abril 2002 Oracle y SQL
De todas estas herramientas, en el taller del curso se hará uso del servidor de datos y del
entorno de edición y procesamiento SQL*PLUS.
Página 1 de 9
Sistemas de Bases de Datos I - Taller Prof. Nunzio N. Savino V. Tema Nro. 1
CI3315 Enero-Abril 2002 Oracle y SQL
que se ejecutan los procesos del DBMS. En nuestro caso particular, para hacer la conexión a
SQL*Plus será necesario conectarse al servidor de bases de datos (sholem.ldc.usb.ve).
ORACLE permite asociar a cada usuario una cuenta diferente a que éste utiliza para acceder
a los servicios del sistema de operación, aún cuando dependiendo de las políticas de
administración de la base de datos se puede configurar el DBMS para que se utilicen sólo las
cuentas del sistema de operación (autenticación basada en el sistema de operación). En
nuestro caso particular Ud. poseerá una cuenta de usuario distinta a la cuenta que Ud. posee
para acceder a los servicios del Laboratorio Docente.
Para establecer una sesión con SQL*PLUS se ejecuta el programa sqlplus. Entre sus formas
de invocación, el programa admite las siguientes:
• sqlplus, que accede al programa para solicitar servicios al DBMS. Al ejecutar este
comando se le pedirá el nombre del usuario que desea conectarse y su contraseña.
• sqlplus <loginname>, que permite conectar al usuario <loginname> a SQL*PLUS, para así
acceder a los servicios del DBMS. Al ejecutar este comando se le pedirá la contraseña
del usuario ORACLE (aquella cuyo nombre de usuario es <loginname>).
• sqlplus <loginname>/<password>, que permite conectar al usuario <loginname> con
contraseña <password> a SQL*PLUS, para así acceder a los servicios del DBMS.
SQL>
Todo usuario que posee una cuenta en ORACLE que no se gestiona a través de los servicios
de seguridad del sistema de operación puede cambiar su contraseña. El comando del lenguaje
de control de datos que permite realizar esta operación es
SQL> quit;
Página 2 de 9
Sistemas de Bases de Datos I - Taller Prof. Nunzio N. Savino V. Tema Nro. 1
CI3315 Enero-Abril 2002 Oracle y SQL
le permitirá salir del intérprete de SQL y regresar al intérprete de comandos del sistema
de operación.
¿Qué puede hacerse con SQL*Plus?
SQL*PLUS puede ser utilizado para ejecutar cualquier comando del lenguaje de definición,
manipulación o control de datos de SQL. La versión que Ud. utilizará la permitirá ejecutar
cualquier instrucción definida en el estándar SQL2 (las que utilizaremos en este curso) más
todas aquellas operaciones específicas de PL/SQL.
Los sistemas manejadores de bases de datos que implementan el modelo de datos relacional
efectúan operaciones de creación de estructuras, consulta, inserción, eliminación y control
de datos utilizando un lenguaje llamado SQL ( Lenguaje Estructurado de Consultas –
“Structured Query Language” -). Este lenguaje se basa en dos de los formalismos que se han
descrito para especificar operaciones del modelo relacional (álgebra relacional y cálculo
relacional de tuplas).
SQL, como lenguaje de programación, posee diferentes dialectos o variaciones. Sin embargo
existen dos grandes estándares a los que se ciñen los manejadores de bases de datos. Estos
estándares son:
• ANSI SQL, que fue propuesto por el Instituto de estándares nacionales americanos
(ANSI).
• Una actualización del estándar ANSI SQL propuesto en 1992 y conocido como SQL-92 o
SQL2.
Con la evolución del modelo relacional para manejar características propias del paradigma de
orientación por objeto (conocido como enfoque post-relacional u objeto-relacional), así como
para la descripción de condiciones dinámicas que rigen la evolución de los datos y el
almacenamiento de programas; hoy en día existe un esfuerzo de consolidación y adopción de
un nuevo estándar conocido como SQL3. Sin embargo, las herramientas comerciales ofrecen
algunas de las características novedosas incluidas en este estándar.
Página 3 de 9
Sistemas de Bases de Datos I - Taller Prof. Nunzio N. Savino V. Tema Nro. 1
CI3315 Enero-Abril 2002 Oracle y SQL
Desde un punto de vista netamente relacional, ORACLE implementa una versión de SQL
totalmente compatible con el estándar ANSI SQL, pero agrega algunas características
propias de otros estándares como SQL2 e inclusive SQL3. En realidad el DBMS posee
características propias de otros modelos de datos (en particular del modelo objeto-
relacional o post-relacional) que no se discuten en este curso.
Entre los diferentes tipos de objetos que ORACLE permite definir y manipular son:
• Tablas: Implementan el concepto de relación del modelo relacional. Toda tabla está
conformada por una serie de columnas (implementan el concepto de atributo). Cada
columna posee un nombre, un tipo de datos y dependiendo del tipo de datos una longitud.
Dos diferencias fundamentales entre el modelo relacional y la implantación de éste en
ORACLE son:
o Si no se definen restricciones de integridad de identidad, en una tabla pueden
existir filas (tuplas) con los mismos valores para todas sus columnas.
o A pesar de que físicamente se establece un orden entre las tuplas, a nivel lógico el
usuario no es capaz de determinar tal orden.
• Vistas: Constituyen una especie de “tablas virtuales”, es decir tablas que no existen
físicamente sino que son generadas automáticamente cuando se accede a ellas. Una vista
puede ser definida a través de una operación de consulta sobre una o más tablas o vistas
de la base de datos.
Página 4 de 9
Sistemas de Bases de Datos I - Taller Prof. Nunzio N. Savino V. Tema Nro. 1
CI3315 Enero-Abril 2002 Oracle y SQL
paquetes (“packages”). Toda unidad de programa puede ser escrita utilizando SQL y
PL/SQL (constituye la forma más común).
Tanto las funciones y los procedimientos suelen utilizarse como parte de la definición de
un esquema relacional para implementar restricciones de integridad, reglas del negocio o
políticas determinadas a ser garantizadas por la base de datos.
Los “triggers” son un tipo especial de procedimientos almacenados que se aplican en una
o más tablas, siguiendo la teoría de reglas ECA (reglas Event-Condition-Action) propias
de un paradigma de modelado de bases de datos conocido como Bases de Datos Activas.
En tal sentido, y adicionalmente a la especificación de las acciones a realizar, un
“trigger” indica:
• El evento a partir del cuál automáticamente se ejecutará la acción indicada. Los
eventos que pueden ser especificados pueden resultan de la composición de un tipo
de operación (inserción de una fila, modificación de una fila o eliminación de una fila)
y un instante de tiempo (previo a la ejecución de la operación que se solicita,
posterior a la operación que se solicita o en lugar de la operación que se solicita).
• La condición que establece cuando se aplicarán la acciones indicada en el “trigger”.
Por otra parte, los “packages” proveen un mecanismo sencillo para encapsular y
almacenar un grupo de operaciones (funciones y stored procedures) que se encuentran
relacionados. En tal sentido pueden ser considerados como construcciones que permiten
definir, de alguna forma, la noción de tipos abstractos de datos en la implantación del
modelo relacional que hace ORACLE.
• Enlaces: Son construcciones que permiten asignar nombres a bases de datos diferentes
con el fin de proveer la inter-operabilidad entre éstas. Este tipo construcciones se
utilizan en los diferentes enfoques de inter-operación de bases de datos (bases de datos
federadas, bases de datos distribuidas, etc.) y se escapan de los objetivos de este
curso.
Para el primer taller nos ocuparemos de los objetos básicos para almacenar datos (tablas) y
de las restricciones definibles a través de objetos CONSTRAINT. Los comandos que provee
ORACLE para realizar estas operaciones son:
• CREATE TABLE
• DROP TABLE
• ALTER TABLE
Dado que los “constraints” son objetos que dependen estrictamente de la existencia de una
tabla, no existe un comando específico que crear o eliminar un “constraint”, sino que estos
comandos deben formar parte de lo que se indica en un comando CREATE TABLE o ALTER
TABLE.
la misma utilizando el comando ALTER TABLE. Ud. deberá consultar el manual de referencia
de SQL para estudiar todas las potencialidades del comando ALTER TABLE.
Este comando permite crear una tabla en la base de datos. Una forma particular del comando
CREATE TABLE para una tabla basada en el modelo relacional, y que se crea sin requerir de
datos ya existentes en otras tablas es:
donde:
La forma del comando CREATE TABLE permite diferenciar las estructuras de las
restricciones implícitas y hacer más sencilla la lectura del comando. Sin embargo, en el
manual de referencia de SQL Ud. podrá encontrar todas las variaciones sintácticas de este
comando.
Este comando permite eliminar una tabla (borrar las filas e inclusive eliminar la estructura)
de la base de datos. La forma general de este comando es
DEFINICIÓN DE CONSTRAINTS
De acuerdo con la forma de especificación del comando CREATE TABLE dada anteriormente,
la cláusula <table_constraint> puede entonces tener las siguientes formas:
Donde:
Página 7 de 9
Sistemas de Bases de Datos I - Taller Prof. Nunzio N. Savino V. Tema Nro. 1
CI3315 Enero-Abril 2002 Oracle y SQL
En el manual de referencia de SQL Ud. podrá encontrar información sobre las reglas de
formación de expresiones lógicas de SQL.
Los “constraints” pueden ser agregados a una tabla previamente creada, o eliminados de una
tabla existente. Para tal fin se pueden utilizar dos variaciones del comando ALTER TABLE,
cuya sintaxis a continuación se indica:
Página 8 de 9
Sistemas de Bases de Datos I - Taller Prof. Nunzio N. Savino V. Tema Nro. 1
CI3315 Enero-Abril 2002 Oracle y SQL
SOBRE LÍMITES
ORACLE impone los siguientes límites en lo que respecta a los objetos descritos en esta
sección:
• La longitud de cualquier identificador (nombre de tabla, nombre de columna, nombre de
“constraints”, entre otros) se limita a un máximo de 30 caracteres.
• El número máximo de columnas que puede tener una tabla es de 1000.
• El número máximo de columnas que pueden constituir una clave primaria, una clave
alterna o una clave foránea es de 16.
Página 9 de 9