Está en la página 1de 20

Unidad 2 / Escenario 4

Lectura fundamental

Interface de programación de aplicaciones


y gestión de bases de datos

Contenido

1 Tipos de API's

2 Sistema de gestión de bases de datos

Palabras clave: base de datos, sgbd, usuario, role, api, ado, pojo, dao, sax, jdbc.
¿Qué es una API?
Una API (Application Programming Interface), se define como una Interfaz de Programación de
Aplicaciones. Es una herramienta para que los programadores puedan desarrollar aplicaciones e
integrar la API a un respectivo código. El lenguaje Java es rico en API´s, razón por la cual es más fácil
desarrollar grandes aplicaciones en Java, porque provee muchas clases, que en otros lenguajes se
llaman rutinas o comúnmente llamadas librerías, que tienen código reutilizable y un buen programador
las sabe integrar a su código.

La arquitectura dirigida por modelos (Model Driven Arquitecture – MDA), propone, para el desarrollo
de software de manera rápida, utilizando modelos, una metodología a tres capas, que consta de
modelos principales, como se puede apreciar en la figura 1.

Figura 1. Arquitectura dirigida por modelos


Fuente: Politécnico Grancolombiano (2018)

POLITÉCNICO GRANCOLOMBIANO 2
1. Tipos de API´s

1.1. API SAX

Este API se basa en eventos y se usa para programar en XML, que utiliza el analizador SAX, para
reportar los eventos que se suceden dentro del documento XML. El analizador recorre el documento
y va reportando los eventos y así se minimiza el proceso de búsqueda de eventos futuros porque ya
están indexados por SAX. Muy útil para grandes documentos XML.

Para poder trabajar con una base de datos, es necesario mapear las tablas de la base de datos dentro
del documento XML. Ejemplo:

<!ELEMENT table rows*>


<!ELEMENT rows (column1, column2,
...)>
<!ELEMENT column1 #PCDATA>
<!ELEMENT column2 #PCDATA>

Con esto se busca que la estructura de la base de datos se parezca a un documento XML.

1.2. API DOM

(Document Object Model). Este API trabaja bajo el concepto de árbol, utilizando la jerarquía padre-
hijo para establecer las relaciones. Este modelo permite que la aplicación haga accesos aleatorios,
pero requiere de bastante memoria. El analizador DOM, barre todo el documento XML y crea los
objetos DOM correspondientes. Veamos un ejemplo:
<PruebasiorBenchmark>

<titulo>Usando IOR para analizar el rendimiento de la E/S en HPC</titulo>

<autor>Hongzhang Han</autor>

<laboratorio>NERSC</laboratorio>

</PruebasiorBenchmark>

POLITÉCNICO GRANCOLOMBIANO 3
Figura 2. Ejemplo de estructura de árbol api DOM
Fuente: Elaboración propia (2018)

1.3. API DAO

(Data Access Objects). Objetos de Acceso a los datos. Los DAOs, son objetos que encapsulan el
acceso a los datos de una base de datos. Dicho de otra manera, un DAO, es un patrón de diseño que
se usa para acceder a los datos a través de la capa de persistencia. La capa de persistencia es la que
permite la independencia de los datos de las plataformas tanto de hardware como de software, así,
una aplicación desarrollada en Oracle, puede fácilmente cambiarse a DB2 u otro motor de base de
datos, sin tener que cambiar el esquema de bases de datos. Solo se tendrán que realizar pequeños
cambios en la capa de persistencia.

Como DAO encapsula el acceso a la base de datos, el acceso a los datos de una tabla de la base de
datos se hace con base en el AIPI de DAO. Este api consta de métodos que contienen el select, el
update, el detele y el insert. Así, se queremos insertar registros en una tabla de la base de datos, se
creará un método llamado crear_dato (). Es conveniente crear una clase DAO, en el caso de usar java
como lenguaje que contenga los diferentes métodos para manipular los datos.

1.4. API DTO

(Data Transfer Objects). Objetos de trasferencia de datos. Los DTO son empleados por DAO, para
trasferir datos desde la capa de aplicación (capa lógica o de reglas del negocio) hacia la base de datos
y en sentido inverso para extraer datos como se puede apreciar en la Figura 3.

POLITÉCNICO GRANCOLOMBIANO 4
Un ejemplo para este caso se da cuando la capa de reglas del negocio requiere hacer un update en los
BD, llama al método update (), entonces DAO modifica el dato en cuestión que DTO le ha indicado
como parámetro desde la capa lógica.

Figura 3. Diseño de capas de aplicación


Fuente: elaboración propia

1.5. API POJO

Un api POJO es un objeto java simple, mientras que un DAO es una fachada para acceder a la base
de datos, pero pasando objetos en ella y el api DAO tiene que manejar la persistencia por sí mismo. La
clase POJO tiene todos getters y setters para cada atributo. DAO gestiona el acceso a los datos y la
modificación. Un DAO puede usar el objeto POJO para guardar u obtener uno.

POLITÉCNICO GRANCOLOMBIANO 5
1.6. API ODBC

ODBC es un API de software libre que sirve para acceder a las BD y se conoce como Open
Database Connectivity (ODBC). Esta API hace posible acceder a cualquier dato desde cualquier
aplicativo sin tener en cuenta qué manejador de base de datos (DBMS) es el encargado de almacenar
los datos.

Conceptos importantes de ODBC. ODBC -> Corresponde a las fuentes de datos configuradas
por el usuario. Dicha configuración es obligatoria para que los controladores (drivers) tengan los
parámetros y la información correspondiente para poderse conectar a la base de datos.

Cualquier motor de base de datos se puede acceder con ODBC, pero deben respetarse los
siguientes pasos:

• Conexión. En este paso se especifican los datos y se procede a conectar

• Operación. Paso para realizar las operaciones DML y operar con los datos

• Desconexión. Siempre se debe desconectar de la base de datos.

El método estándar de conexión es odbc_connect.

Un ejemplo de conexión a una base de datos con PHP, sería:

Figura 4. Conexión ODBC


Fuente: elaboración propia

POLITÉCNICO GRANCOLOMBIANO 6
1.7. API JDBC.(Java Database Conectivity)

JDBC es una API que permite la conexión entre los programas java y las bases de datos. Viene en el
paquete java.sql.*.

El JBDC permite realizar consultas, inserción, actualizaciones y borres de datos o registros dentro
de una tabla de una base de datos. Igualmente se pueden invocar procedimientos y funciones que
afectan a una BD.

JDBC, está diseñado con base en interfases, las cuales definen la manera de establecer la conexión y
realizar las operaciones DML, para lo cual se requiere desarrollar las respectivas clases que se
denominan “driver”.

Figura 5. Diagrama de dependencias de paquetes de java.sql.*


Fuente: elaboración propia

POLITÉCNICO GRANCOLOMBIANO 7
El diagrama de la figura 5, muestra al programa que está en el paquete denominado “nuestro.paquete”,
utiliza las interfases de java.sql.*, que fueron implementadas por Oracle, Hsql y otros constructores
de drives, para que las aplicaciones no dependan de un motor de base de datos en particular, lo que
asegura que un programa java con JDBC, pueda conectarse con cualquier motor de base de datos,
siempre que se tenga en driver apropiado, es decir, un driver de Oracle, DB2, Hsql, etc.

Para el ejemplo, se usará hsqlDB que es un motor de base de datos libre, creado por Java.

Se crea la base de datos y se establece la conexión con una línea parecida a esta ruta. Depende del
directorio donde se piense crear la bd.

Figura 6. Conexión con la bd desde NetBeans


Fuente: elaboración propia

POLITÉCNICO GRANCOLOMBIANO 8
A continuación, se transcribe el código ejecutado para establecer la conexión:

import java.sql.DriverManager;

import java.sql.PreparedStatement;

import java.sql.ResultSet;

import javax.swing.JOptionPane;

import java.lang.ClassCastException;

import java.sql.SQLException;

/* @author alexis rojas

*/

public class conexion {

public Connection conectar() {

Connection con = nuy;

try {

Class.forName(“org.hsqldb.jdbc.JDBCDriver”);// conectar el driver

con = DriverManager.getConnection(“jdbc:hsqldb:file:D:\\
AAAPERSISTENCIA Y TRANSACCIONALIDAD\\Unidad-2-maqueteo\\ESCENARIO-4\\hsqldb\\base\\
taller”,”poli1234”,””);

System.out.println(“conexion establecida O.K”);

} catch (Exception ex) {

System.out.println(“error. No se conecto” + ex);

return con;

POLITÉCNICO GRANCOLOMBIANO 9
public static void main(String[] args) {

conexion con = new conexion();

con.conectar();

public ResultSet consultar() {

Connection con = conectar();

ResultSet rs = null;

try {

PreparedStatement ps = con.prepareStatement(“selct * from dpto”);

rs = ps.executeQuery();

System.out.println(“Consulta O.K”);

} catch (Exception ex) {

System.err.println(“error. No se pudo leer” + ex);

} final {

try {

con. Lose();

} catch (Exception ex) {

return rs;

POLITÉCNICO GRANCOLOMBIANO 10
public static void main(String[] args) toros SQLException {

conexion con = new conexion();

ResultSet rs = con. Consultar();

try {

while (rs.next()) { // la tabla dpto tiene 3 columnas que se imprimen con


otion panel

JOptionPane.showMessageDialog(null, rs.getString(1) + “, “ +
rs.getString(2) + “, “ + rs.getString(3));

} catch (Exception ex) {

Figura 7. Consulta a la base de la tabla dpto


Fuente: elaboración propia

POLITÉCNICO GRANCOLOMBIANO 11
El mismo procedimiento se desarrolla para hacer un insert, un update o un delete.

Veamos cómo quedaría la fracción de código para cambiar el nombre de sistemas por “Departamento
de Sistemas” en la tabla dpto.
public ResultSet actualizar() {

Connection con = conectar();

ResultSet rs = null;

try {

PreparedStatement ps = con.prepareStatement(“”UPDATE dpto

SET dpto._nombre = Departamento de Sistemas’ WHERE dtpo_id = 101”);”);

rs = ps.executeQuery();

System.out.println(“update O.K”);

} catch (Exception ex) {

System.err.println(“error. No se pudo actualizar” + ex);

} finally {

try {

con.close();

} catch (Exception ex) {

return rs;

Nota: La operación del método connection (), ejecuta los métodos commit, rollback y AutoCommit,
razón por la cual, cada operación que se realiza desde un programa java hace que los resultados
queden registrados en la base de datos de manera automática.

POLITÉCNICO GRANCOLOMBIANO 12
2. Sistema de gestión de bases de datos – SGBD
Un sistema de gestión de base de datos (SGBD), se define como una colección de datos relacionados
entre sí, de manera estructurada y organizada, además de un conjunto de programas que se usan para
acceder y gestionar los datos.

Antes de 1970, la información de administraba utilizando una técnica de archivos indexados de


acceso secuencial, relativo o aleatorio, soportados por el sistema operacional y los programas de las
aplicaciones manejaban la información de estos archivos.

Cuando los archivos eran muy grandes, su administración se volvía muy compleja y es cuando se
opta por independizar la administración de los datos de los programas que los manipulan, dicho de
otra manera, la estructura de un archivo se puede modificar sin que por ello se tenga que modificar
un programa.

2.1. Arquitectura de las bases de datos

La arquitectura de las bases de datos se describe con tres niveles de abstracción diferentes, con el
objetivo de separar los programas de la aplicación, de los datos de la base de datos física, como se ve
en la figura 8.

Este modelo arquitectónico viene dado por el nivel físico y el nivel de tipo lógico, que se compone de
los niveles de visión y conceptual.

Nivel Físico. Corresponde a la representación misma de los datos dentro del computador. Describe
la composición de las tablas, sus atributos, tipos de atributos y tamaños de los mismos, al igual que
describe las llaves primarias, únicas, foráneas y las relaciones foreign key.

POLITÉCNICO GRANCOLOMBIANO 13
Figura 8. Niveles de abstracción de la arquitectura ANSI (American National Standard Institute)
Fuente: Politécnico Grancolombiano (2018)

Nivel conceptual. En este nivel, se describen las entidades, sus relaciones, operaciones de los usuarios
y restricciones, ocultando los detalles de las estructuras físicas del almacenamiento.

Nivel de visión. También conocido como Font-end. Es la capa que está de frente al usuario, también
conocida como vistas de usuario. Cada esquema describe la parte de la base de datos que le interesa a
un usuario o grupo de usuarios.

Este modelo arquitectónico, hace que los datos estén independizados de la lógica del negocio y, a su
vez, de la capa de visualización.

POLITÉCNICO GRANCOLOMBIANO 14
2.2. Componentes de un sistema de gestión

Data Definition Language – DDL. Lenguaje de definición de datos Es un lenguaje proporcionado por el
sistema de gestión de base de datos que permite a los programadores llevar a cabo las tareas de definición
de las estructuras que almacenarán los datos, así como de los procedimientos o funciones que permitan
consultarlos. Los operadores son: CREATE, DROP, TRUNCATE, ALTER, RENAME y COMMENT.

Data Manipulation Language – DML. Es un lenguaje proporcionado por los sistemas gestores de
bases de datos que permite a los usuarios llevar a cabo las tareas de consulta o modificación de los
datos contenidos en las bases de datos del sistema gestor de bases de datos. Los operadores son:
SELECT, INSERT, UPDATE, DELETE, MERGE.

Data Control Language – DCL. Es un lenguaje proporcionado por los sistemas gestores de bases
de datos que permite administrar el proceso de permisos sobre los objetos de la base de datos. Los
operadores son el GRANT, REMOVE.

Control Transaction – CT. La integridad de la información y la transaccionalidad se garantiza. Los


operadores son el COMMIT, ROLLBACK, SAVEPOINT.

Seguridad de las bases de datos. El SGBD, se encarga de garantizar la seguridad e integridad de los
datos, mediante un conjunto de utilidades tales como:

• Garantiza la seguridad de los datos restringiendo los accesos no autorizados

• Maneja el sistema de restricciones para que la información guarde consistencia

• Proporciona herramientas para la elaboración de copias

• Proporciona herramientas de recuperación de datos y acceso concurrente.

Procedimientos de administración. Dentro de estos procedimientos, que se realizan en los motores


de bases de datos para grandes aplicaciones, se deben tener en cuenta los siguientes:

Creación de espacios de trabajo (tablespaces). Los espacios de trabajo son áreas físicas de disco
que se reservan para crear las instancias de las aplicaciones. Allí deben quedar las tablas de datos, los
índices, el diccionario de datos de la aplicación.

POLITÉCNICO GRANCOLOMBIANO 15
Un ejemplo de cómo crear un espacio de trabajo en Oracle:

Crear usuarios. Primero se crean los tablespaces, luego se crean los roles, después se crean los
usuarios y por último se les asignan los privilegios, según los roles.

Creación de roles. Los roles son conjuntos de privilegios que podemos otorgárselos a los usuarios
para ahorrar tiempo si queremos añadir los mismos privilegios a muchos usuarios. Desde la línea
de comandos, se crean los roles con “CREATE ROLE nombre_rol” y después se les asignan los
permisos, para poder otorgar esos roles a los propios usuarios.

Los roles básicos son RESOURCE Y CONNECT, sirven para que el usuario, pueda conectarse a
la base de datos y usar los recursos, el rol puede dar privilegios, es decir, permisos para hacer otras
operaciones como create table, select, etc.

POLITÉCNICO GRANCOLOMBIANO 16
A un usuario común no se le debe dar el rol DBA, porque puede ocasionar daños a toda la base de datos.

Sintaxis para creación de usuarios en Oracle:


CREATE USER username

IDENTIFIED {BY password | EXTERNALLY |

GLOBALLY AS ‘external_name’}

options; Donde options es:

DEFAULT TABLESPACE tablespace

TEMPORARY TABLESPACE tablespace

QUOTA int {K | M} ON tablespace

QUOTA UNLIMITED ON tablespace

PROFILE profile_name

PASSWORD EXPIRE

ACCOUNT {LOCK|UNLOCK}

Un ejemplo de creación de usuarios en Oracle es:

CREATE USER POLI02 IDENTIFIED BY Poli1234

DEFAULT TABLESPACE datos

TEMPORARY TABLESPACE temp

QUOTA UNLIMITED ON users;

CREATE ROLE programador;  Crea el rol

POLITÉCNICO GRANCOLOMBIANO 17
Asignación de roles

GRANT CREATE SESSION, ALTER SESSION, CREATE DATABASE LINK, CREATE MATERIALIZED
VIEW, CREATE PROCEDURE, CREATE PUBLIC SYNONYM, CREATE ROLE, SELECT ANY
table, INSERT ANY table, UPDATE ANY table, DELETE ANY table, CREATE SEQUENCE, CREATE
SYNONYM, CREATE TABLE, CREATE TRIGGER, CREATE TYPE, CREATE VIEW, UNLIMITED
TABLESPACE to programador;

Asignación del rol al usuario:

GRANT programador TO poli02;

Revocar permisos a un usuario. Cuando un usuario se retira de la empresa o se le deben suspender los
permisos, el administrador de la base de datos, debe proceder a revocar los privilegios.

Sintaxis. Revoque role from {user | role |public}. Ejemplo:

REVOQUE ALL FROM programador FROM poli02;

POLITÉCNICO GRANCOLOMBIANO 18
Referencias
Cebrián Marín, D. (2014). Sistemas de almacenamiento: administración de bases de datos.
Recuperado el 2017, de Páginas 7 - 60: http://site.ebrary.com.loginbiblio.poligran.edu.co:2048/lib/
bibliopoligransp/reader.action?docID=11126445&ppg=11

Sudarshan, S. (s.f.). Fundamento de base de datos. (I. I. ofTechnology, Editor) Obtenido de Professor
of Computer Science: https://scholar.google.es/citations?user=KtP9-zYAAAAJ&hl=es&oi=sra

POLITÉCNICO GRANCOLOMBIANO 19
INFORMACIÓN TÉCNICA

Módulo: Conceptos fundamentales de la Transaccionalidad


Unidad 2: Conceptos fundamentales de persistencia
Escenario 4: API -SGBD - Interface de programación de
aplicaciones y gestión de bases de datos

Autor: Alexis Rojas Cordero

Asesor Pedagógico: Juan Pablo Sierra


Diseñador Gráfico: Felipe Puentes
Asistente: Ginna Quiroga

Este material pertenece al Politécnico Grancolombiano. Por


ende, es de uso exclusivo de las Instituciones adscritas a la Red
Ilumno. Prohibida su reproducción total o parcial.

POLITÉCNICO GRANCOLOMBIANO
POLITÉCNICO GRANCOLOMBIANO 20

También podría gustarte