Docsity
Docsity

Prepara tus exámenes
Prepara tus exámenes

Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity


Consigue puntos base para descargar
Consigue puntos base para descargar

Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium


Orientación Universidad
Orientación Universidad


Bases de datos relacional en programación Socket, Guías, Proyectos, Investigaciones de Algoritmos y Programación

en el cual se hace una conexión cliente con servidor y se logra comunicación entre ambas partes a través de un chat en el cual ambas partes reciben y envían mensajes.

Tipo: Guías, Proyectos, Investigaciones

2022/2023

Subido el 27/03/2023

nixon-emiro-saldana-quintero-1
nixon-emiro-saldana-quintero-1 🇨🇴

6 documentos

1 / 18

Toggle sidebar

Esta página no es visible en la vista previa

¡No te pierdas las partes importantes!

bg1
Interface de programación de
aplicaciones y gestión de bases de datos
Unidad 2 / Escenario 4
Lectura fundamental
Contenido
1
2Sistema de gestión de bases de datos
Tipos de API's
Palabras clave: base de datos, sgbd, usuario, role, api, ado, pojo, dao, sax, jdbc.
pf3
pf4
pf5
pf8
pf9
pfa
pfd
pfe
pff
pf12

Vista previa parcial del texto

¡Descarga Bases de datos relacional en programación Socket y más Guías, Proyectos, Investigaciones en PDF de Algoritmos y Programación solo en Docsity!

Interface de programación de

aplicaciones y gestión de bases de datos

Unidad 2 / Escenario 4

Lectura fundamental

Contenido

2 Sistema de gestión de bases de datos

Tipos de API's

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)

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.

Figura 2. Ejemplo de estructura de árbol api DOM Fuente: Elaboración propia (2018)

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.

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.

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.

Figura 3. Diseño de capas de aplicación Fuente: Elaboración propia (2018)

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 (2018)

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 (2018)

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; }

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) { } } }

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 {

Figura 7. Consulta a la base de la tabla dpto. Fuente: Elaboración propia (2018)

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.

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.

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

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.

PROFILE profile_name PASSWORD EXPIRE ACCOUNT {LOCK|UNLOCK}

Un ejemplo de creación de usuarios en Oracle es: CREATE USER POLI02 IDENTIFIED BY Poli DEFAULT TABLESPACE datos TEMPORARY TABLESPACE temp QUOTA UNLIMITED ON users;

CREATE ROLE programador;  Crea el rol

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;

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=

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