Download Diapositiva 1 - Docencia FCA-UNAM

Document related concepts
no text concepts found
Transcript
UNIVERSIDAD LATINA (UNILA)
VI.- ARCHIVOS Y BASES DE DATOS
LE, EI, Profesor Ramón Castro Liceaga
Que son los archivos :
-En informática, un archivo es un grupo
de datos estructurados que son
almacenados en algún medio y pueden ser
usados por las aplicaciones.
Organización de los archivos :
-La Organización de un Archivo es la
colección de registros lógicos en el archivo
y la percepción que tiene el programador
acerca de la disposición lógica de los
registros almacenados en el archivo. Por
ejemplo : una organización secuencial.
Organización de los archivos :
En general existen dos tipos de archivos:
Archivos Secuenciales.- En este caso los datos se
almacenan en forma consecutiva y no es posible leer
(recuerdan que significa esta operación) ningun registro
(recuerdan la nota de arriba) directmente, es decir
para leer el registro n se deberá recorrer o accesar los
n-1 registros anteriores.
Archivos Directos o Random.- Para este caso si se
puede acceder o leer directamente un renglón n
cualquiera.
Operaciones fundamentales con archivos:
•ESCRIBIR O GRABAR: Operación mas elemental con
un archivo, consiste en tomar un o unos datos en
variables de cualquier tipo (escalar, mezcla de datos,
arreglos, estructuras) y almacenarlas en un archivo de
datos en disco.
•LEER: Operación consistente en sacar los datos del
archivo en disco y mandarlos (Ver los datos) o cargar la
variable respectiva
Almacenamiento de archivos
Modo Texto: en este caso los datos son almacenados
usando Ascii y por tanto son plenamente visibles usando
cualquier editor.
Modo Binario: en este caso los datos son almacenados
en notación hexadecimal y por tanto se ocupa un editor
binario para reconocerlos, sin embargo un archivo
binario es mas compacto que un archivo texto.
Operaciones básicas con los archivos
1.- Creación de Archivo.- En este proceso se pretende solamente crear un archivo
nuevo en disco con su nombre tipo y especialidad de almacenamiento de datos
apropiado.
2.- Apertura de Archivos.- En este caso se pretende abrir un archivo ya existente
en disco para procesarlo ya sea para cargar o grabar estructuras en sus registros o
leer algun registro en especial para mandarlo a una variable de cualquier tipo.
3.-Cierre de archivos: Es la operación mas importante en cualquier programa que
maneje archivos, o se cierra el archivo como ultima instrucción del pograma o se
vera el anuncio ABORT,RETRY,FAIL.
4.-Altas en archivo.- En este proceso se captura una estructura en memoria con
sus datos pertinentes y despues se graba la estructura al archivo en disco.
5.-Lectura de archivo.- En este proceso se abre el archivo, se manda el registro
de disco a una estructura en memoria para su procesamiento.
Operaciones básicas con los archivos
6.- Consulta de archivos: En este proceso se pretende desplegar todos los registros
del archivo en disco a la pantalla ya sea consola o mejor aún, a una pagina html
7.-Busqueda en archivos: Una de las operaciones mas comunes consiste en que el
usuario pide toda la información de algun renglon en disco porporcionando la
información de algun campo generalmente el campo clave de la estructura.
8.- Filtros.- En este proceso el usuario esta interesado en algun conjunto de
renglones con caracteristicas comunes (condición), por ejemplo todos los alumnos de
“sistemas” o todos los empleados que ganen mas de $500.00 pesos, o todos los
clientes que sean de “tijuana”, etc
9.-Modificaciones de registros o archivos: Problema muy comun, donde los datos
originales ya grabados se tienen que cambiar o actualizar, por ejemplo el nombre no
era “juan” es “juana”, o la calificación no es 100 es 20, etc.
10.- Bajas de registros: tambien muy comun este proceso,por ejemplo el alumno ya
egreso, el cliente huyo, etc. (baja fisica o baja logica)
Tratamiento de archivos con Java
Las clases que usaremos para el
tratamiento de archivos están
ubicadas en el paquete java.io por lo
que deben ser importadas.
Tratamiento de excepciones en archivos de Java
Practica : ARCH01
Hacer un programa en Java que crea
un archivo con los siguientes datos:
clave, nombre y edad.
Practica : ARCH02
Hacer un programa en Java que lea
un archivo con los siguientes datos:
clave, nombre y edad.
Interfáz JDBC
•JDBC (Java Database Connectivity), es un
API que permite la ejecución de operaciones
sobre bases de datos desde el lenguaje de
programación Java independientemente del
sistema de operación donde se ejecute o de
la base de datos a la cual se accede
utilizando el dialecto SQL del modelo de base
de datos que se utilice.
Elementos para la Conexión de Bases de Datos con Java
• Base de Datos
– Forma de almacenamiento de información
– Estructura y Datos
– Modelo Relacional
• Gestor de Base de Datos (SMBD)
– Aplicación para manipular bases de datos
– Oracle, Access, MySQL, PostgreSQL...
• SQL – Structured Query Language
– Lenguaje estándar para crear, examinar y manipular bases de
datos relacionales
– Permite manipular bases de datos en diferentes sistemas que
soporten el estándar
Modelo Relacional (Tablas)
Campo, Atributo, Columna
Registro, Fila
Modelo Relacional (Relaciones)
Tabla
Clave
Relación
Lenguaje a SQL
• Recuperar información
SELECT [ALL | DISTINCT] <seleccion> FROM <tablas>
WHERE <condiciones de seleccion> [ORDER BY <columna> [ASC | DESC]
[,<columna> [ASC | DESC]]...]
• Almacenar información
INSERT INTO <nombre tabla>
[(<nombre columna> [,<nombre columna>]...)]
VALUES (<expresion> [,<expresion>]...)
• Eliminar datos
DELETE FROM <nombre tabla> WHERE <condicion busqueda>
• Actualizar datos
UPDATE <nombre tabla>
SET <nombre columna> = ( <expresion> | NULL )
[, <nombre columna> = ( <expresion> | NULL )]... WHERE <condicion busqueda>
Conectividad - ODBC
• ODBC – Open DataBase Connectivity
– Interface de aplicaciones (API) para acceder a
datos en sistemas gestores de bases de datos
utilizando SQL
Aplicación Cliente
Data Source Name (DSN)
ODBC Driver Manager
ODBC Driver
ODBC Driver
ODBC Database
Conectividad - JDBC
• JDBC
– Marca registrada
– Java DataBase Connectivity
• API de Java para ejecutar sentencias SQL
• JDBC posibilita básicamente tres cosas:
– Establecer una conexión con una base de
datos desde Java
– Enviar sentencias SQL a través de dicha
conexión
– Procesar los resultados
JDBC vs. ODBC
• ¿Por qué no usar ODBC desde Java?
– Se puede usar ODBC desde Java
– Puente JDBC-ODBC
• ¿Por qué se necesita JDBC?
– ODBC no es apropiado para su uso directo
desde Java porque usa una interface en C
– Una traducción de la ODBC API en C a una API
en Java no sería deseable
– ODBC es duro de aprender
– Una API en Java como JDBC es necesaria para
conseguir una solución “puramente Java”
• JDBC API es una interface natural de Java
Controladores (Drivers) JDBC
Procedimiento para el JDBC
• La JDBC 3.0 API comprende 2 paquetes:
– java.sql
– javax.sql (añade capacidades de la parte servidor)
•
los pasos para la conexión con BD son:
– Registrar un driver:
• Clase DriverManager
– Establecer una conexión con la base de datos:
• Interface Connection
– Enviar sentencias SQL a la base de datos:
• Interface Statement
– Procesar los resultados de las consultas
• Interface ResultSet
Ejemplo de aplicación de JDBC en Java
Class.forName("sun.jdbc.odbc.JdbcOdbcDriver");
String url = ″jdbc:odbc:empresa″;
Connection con = DriverManager.getConnection(url);
Statement stmt = con.createStatement();
ResultSet rs =
stmt.executeQuery(″SELECT a, b, c FROM Table2″);
While(rs.next()){
int i = rs.getInt(a);
String s = rs.getString(b);
Float f = rs.getFloat(c);
System.out.println(ROW=  + i +   + s +   + f);
}
Diagrama para JDBC
Connection
createStatement
prepareStatement
subclasses
Statement
prepareCall
subclasses
PreparedStatement
CallableStatement
Data Types
executeQuery
executeQuery
executeQuery
getXXX
ResultSet
getMoreResults
getResultSet
Practica : jbd00
Hacer un programa en Java que cree
la estructura de la Base de Datos
empresa utilizando comandos SQL.
Modelo objeto-relacional de la Base de Datos: empresa
Objetos:
CREATE TABLE Asistencia
(id_empleado int not null,
fecha
date,
hora_llegada time,
hora_salida
time);
PK
PK
CREATE TABLE Nomina
(id_empleado int not null,
fecha_corte date,
percepciones numeric,
deducciones numeric);
FK
PK
CREATE TABLE Cat_puestos
PK (id_puesto int not null,
descripcion varchar(75),
sueldo_base numeric,
suedo_tope numeric);
CREATE TABLE Empleados
(id_empleado int not null,
a_paterno varchar(35),
a_materno varchar(35),
nombre
varchar(35),
domicilio varchar(75),
colonia varchar(50),
codpos
numeric,
telefono varchar(15),
id_puesto int,
FK
sueldo
numeric);
Empleados
Nomina
Cat_Conceptos
Cat_Puestos
Movimientos
Asistencia
CREATE TABLE Movimientos
(id_empleado int not null,
PK
id_concepto int,
importe numeric);
CREATE TABLE Cat_Conceptos
PK (id_concepto int not null,
descripcion varchar(100),
tipo_mov varchar(1));