Menú Cerrar

Introduccion a Bases de Datos PL/SQL.

Introduccion:

¿Qué es un lenguaje de programación?

Es la forma de entendernos con la computadora, ya que esta solo entiende código maquina y no humano. Aunque nos parece como si pudiera entendernos, internamente siempre esta interpretando nuestras entradas.

Los lenguajes de programación se ordenan por generaciones:

Primera generación: No solo había que decirle al computador qué hacer si no cómo hacerlo. Para ingresar datos al ordenador se usaba código binario.

Segunda generación: Se crean los lenguajes simbólicos (representación mas directa o cercana al lenguaje de maquina) de bajo nivel. Ejemplo: el archiconocido Assembler.

Tercera generación: Se originan los lenguajes de alto nivel, estos se parecen mas al lenguaje humano y son mas manejables, aunque no tan eficientes como los lenguajes de maquina.

Cuarta generación: Se utilizan en este nivel los IDE’s (Entornos de desarrollo), que proporcionan elementos gráficos prediseñados, tales como botones, checkboxes, formularios, comboboxes, áreas de texto, etc. Para usar estos componentes solo hay que arrastrar y soltarlos sobre el formulario (ventana) que se esta programando. Acto seguido se introduce el código que irá “debajo” de la misma.

Encontramos en esta categoría el lenguaje orientado a objetos, que representan mejor la realidad. Dichos lenguajes tienen capacidades de representación graficas, generar código automáticamente (autocompletado), y acceso a bases de datos.

Ejemplo: C++ Builder, WxDevC++, NetBeans, etc.

Quinta generación: Aquí están contenidos los lenguajes de inteligencia artificial.

¿Que es una Base de Datos?

Grupo de datos concernientes a un mismo entorno, acopiados de manera sistemática, para su utilización posterior.

Ejemplo: una biblioteca. Esta puede verse como si de una base de datos se tratara, ya que está constituida por documentos y textos impresos en papel e inventariados para su posterior consulta.

El desarrollo de ciencias como la Informática y la Electrónica digital han hecho que llevar estos registros sea mucho más fácil y cómodo, debido a que se puede acceder a ellos desde cualquier lugar del mundo.

¿Qué es un lenguaje declarativo?

Es aquel donde se indica que es lo que se desea obtener de forma que el resultado se pueda manipular a fin de presentarlo de manera más elegante, fiable y expresiva.

Existen lenguajes lógicos como Prolog, algebraicos como Maude y SQL y funcionales como Haskell.

 

¿Qué es SQL?

Es el lenguaje estructurado de consultas  a una base de datos (del inglés  Structured Query Language), aunque  tiene muchas más características que realizar solo simples consultas. Su campo de acción se encuentra en las bases de datos relacionales.

La principal característica de SQL es que es un tipo de lenguaje declarativo, y puede especificar diversas formas de operar sobre las bases de datos.

En este lenguaje se utiliza el algebra relacional así como el calculo referencial. Así pueden realizarse consultas a la base de datos, y de esta manera recuperar información guardada en ella y efectuar actualizaciones de la misma.

Es un lenguaje de cuarta generación.

 

¿Qué es PL/SQL?

Lenguaje procedural /Lenguaje de Consultas Estructurado, es propiedad de Oracle Corporation. Es, además una extensión de SQL, muy similar a la de Ada, y al igual que Ada y  otros compiladores de la década de los ochenta, usa  Diana como lenguaje  intermedio.

Este tipo de lenguaje intermedio o lenguaje maquina abstracta (posiblemente una capa sobre el hardware)  permite la optimización del código antes de ser compilado definitivamente en lenguaje maquina nativo.

La gran fortaleza de PL/SQL radica en su gran integración con la base de datos Oracle. Esta última contiene además  SQL nativo y Java.

Comparativa

No podríamos hablar de una comparación propiamente dicha, debido a que PL/SQL funciona sobre SQL, aumentando notablemente las posibilidades de este ultimo.

Sin embargo en términos generales se puede decir que SQL es un lenguaje destinado a manipulación y selección de un conjunto de datos usando el DML (del ingles Lenguaje de manipulación de datos). Mientras que PL/SQL es para crear aplicaciones que hagan uso de esos datos.

De lo que se podría hablar seria sobre las diferencias entre SQL (“a secas”) y SQL+PL/SQL.

Entre las ventajas que se encuentran al utilizar este tipo de tecnología se pueden nombrar:

Soporte para SQL: Debido al carácter no procedural de SQL, es el motor de bases de datos quien tiene que “preocuparse” cómo ejecutar de la mejor forma posible cierta acción requerida en una sentencia SQL. Gracias a PL/SQL no es necesario conectar varias sentencias ya que Oracle las vincula y ejecuta de una sola vez.

PL/SQL nos permite manipular completamente los datos almacenados en una base de datos Oracle, proporcionando comandos adicionales para transacciones y gracias a ellos poder usar las funciones operadores y pseudo-columnas.

Lo cual hace que el usuario pueda manipular los datos de una forma flexible, segura y potente. También incorpora una especie de traductor de tipos de datos SQL, reduciendo, por ende, la necesidad de convertir los datos al pasar de una a otra aplicación

EL soporte SQL Dinámico también esta presente en esta extensión, esto agrega aun mas flexibilidad  a las aplicaciones que se utilicen en las consultas.

 

Soporte para la programación orientada a objetos: La representación del mundo real por medio de objetos abstractos se ha convertido en un modelo muy utilizado últimamente en lo que a lenguajes de programación se refiere. Esto permite reducir costos y tiempos de construcción en aplicaciones de gran complejidad.

Otra ventaja de este sistema es la modularización en la codificación del proyecto, dado que pueden haber muchos programadores construyendo aplicaciones basadas en el mismo tipo de objetos, un ejemplo de este tipo de aplicaciones, aunque no sabemos si utiliza o no Oracle, es Facebook, debido a que este portal cuenta con una API definida, la que puede ser usada por  programadores que quieran aportar con nuevas aplicaciones para la red social.

La encapsulación del código permite implementar métodos asociados  a distintos tipos  de objetos construidos también, con PL/SQL.

Mayor rendimiento: Sin la extensión PL/SQL, Oracle se vería en la necesidad de procesar instrucciones una a una. Cada llamada produciría un periodo de espera considerable (Overhead), incluyendo el hecho del tráfico de las consultas a través de la red y la latencia adicional que conlleva.

Con la dicha extensión SQL, un bloque de sentencias  puede ser enviado  a Oracle en vez de usar sentencias individuales.

Los procedimientos almacenados escritos en PL/SQL, son compilados una vez  y almacenados en formato ejecutable, lo que produce que las llamadas sean más rápidas y eficientes.  Como valor adicional, ya que los procedimientos almacenados se ejecutan en el propio Server, el tráfico por la red se reduce a la simple llamada y el envío de los parámetros necesarios para su ejecución, de forma similar a lo que ocurre por ejemplo con php, lo que comúnmente se denomina en lenguaje técnico: server-side.

El código ejecutable se almacena en una caché y se comparte a todos los usuarios, redundando en mínimos requerimientos de memoria y disminuyendo el overhead al mínimo.

Alta productividad: Si se utilizan otros productos de Oracle como Oracle Forms y Oracle Reports, existe  una amplia integración de bloques completos de PL/SQL en un trigger de Oracle Forms, debido a que PL/SQL es el mismo en todos los ambientes.

 

Tabla de conversiones de tipo implícitas en la extensión.

Hasta

BIN_INT

CHAR

DATE

LONG

NUMBER

PLS_INT

RAW

ROWID

VARCHAR2

Desde

 

 

 

 

 

 

 

 

BIN_INT

 

X

 

X

X

X

 

 

X

CHAR

X

 

X

X

X

X

X

X

X

DATE

 

X

 

X

 

 

 

 

X

LONG

 

X

 

 

 

 

X

 

X

NUMBER

X

X

 

X

 

X

 

 

X

PLS_INT

X

X

 

X

X

 

 

 

X

RAW

 

X

 

X

 

 

 

 

X

ROWID

 

X

 

 

 

 

 

 

X

VARCHAR2

X

X

X

X

X

X

X

X

 

 

Conclusión:

PL/SQL es una extensión que facilita mucho la utilización de las bases de datos Oracle, sin embargo para acceder a esta ultima se debe desembolsar una cantidad considerable de dinero lo que no justifica su implementación en micro-empresas ya que esta pensado, tanto en codificación como en precio (implementación y licenciamiento), para empresas de mayor envergadura donde la seguridad de los datos sea imprenscindible.

Por todo ello concluimos que  si no se va a utilizar esta tecnologia convendria tomar mas resguardos para evitar posibles intrusiones en nuestro sistema, asi como tambien otras alternativas como MySQL que ya desde la version 5 incluye en su paquete de instalación, la posibilidad de realizar funciones, procedimientos almacenados y triggers que es  básicamente lo que realiza PL/SQL.

De todas formas no podemos aventurar que sucederá con esta alternativa (MySQL), dado que Oracle hace un tiempo compro esta aplicación.

Referencias:

http://en.wikipedia.org/wiki/Aida

http://en.wikipedia.org/wiki/DIANA

http://en.wikipedia.org/wiki/Sql

http://en.wikipedia.org/wiki/PL/SQL

http://dev.mysql.com/doc/refman/5.0/…rocedures.html
http://dev.mysql.com/doc/refman/5.0/es/triggers.html

Foto Squirrell SQL:

Motor de base de datos MySQL para Mac.

http://squirrel-sql.sourceforge.net/

Por: John González Rojo:


¿Has visitado nuestro canal de Youtube.com/@SpekRegg?

Ver los resultados

Cargando ... Cargando ...

 

🦋 Siguenos tambien en Bluesky, el nuevo Twitter de los creadores de Twitter




Publicado en Soporte Tecnico

Te puede interesar...

Deja una respuesta

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *