0
BASES DE DATOS CON JAVA

BASES DE DATOS CON JAVA

FUNDAMENTOS

CARNEL,JOHN

63,50 €
IVA incluido
No disponible, consultenos
Editorial:
ANAYA, COMERCIAL GRUPO
Año de edición:
2002
ISBN:
978-84-415-1362-4
Páginas:
960
Colección:
VARIAS
63,50 €
IVA incluido
No disponible, consultenos
Añadir a favoritos

Introducción

¿A quién va dirigido este libro?

¿De qué trata este libro?

Sección I: Java, SQL y Bases de datos

Sección II: Exploración de JDBC

Parte III: Paso de objetos a relaciones

Sección IV: Bases de datos y Java en la empresa

Sección V: Apéndices

Qué necesita para utilizar este libro

Convenciones empleadas

Cómo funciona

Obtener el código fuente

Díganos lo que piensa

Erratas

Configuración del entorno Java

Instalación del JDK

Definir la variable JAVA_HOME

Definir la variable PATH

Definir la variable CLASSPATH

Estructura de los directorios para los ejemplos





1. Bases de datos relacionales y Java



Datos persistentes

Persistencia en Java

Ficheros planos

Serialización de objetos

Bases de datos relacionales

Asociaciones relacionales

Structured Query Language

Cómo interactúa Java con bases de datos

JDBC

SQLJ

EJB

JDO

Características de un RDBMS

Transacciones

Acceso concurrente

Lenguajes propietarios

Elección del RDBMS para este libro

Cloudscape

Instalación de Cloudscape

Otros aspectos útiles de Cloudscape

Instalación de la base de datos de ejemplo

Oracle

Microsoft SQL Server

IBM

Bases de datos de código libre

Bases de datos personales

Resumen





2. JDBC: Técnicas básicas



Terminología y conceptos

SQL y JDBC

Relacionar JDBC con ODBC

El paquete JDBC

Versiones de JDBC

JDBC 1.x

JDBC 2.0

El núcleo del API JDBC 2.0

El paquete opcional del API JDBC 2.0

JDBC 3.0

Cómo funciona JDBC

Preparación

Cargar el driver

Establecer una conexión

URLs y JDBC

Conexión con otras bases de datos

Statements y ResultSets

Acceder a datos en un ResultSet

Obtener los metadatos de un resultado

El programa JDBC básico

Gestión de errores

SQLException

El Mensaje de la Excepción

El Estado SQL

Código de Error del Fabricante

Encadenar excepciones SQL

Advertencias SQL

Resumen





3. Consultas y manipulación de datos en SQL



Una sencilla historia de SQL

¿Qué es SQL?

SQL y la teoría de conjuntos

Acceso a datos mediante SELECT

Estructura básica del comando SELECT

Especificar las columnas

Seleccionar registros no repetidos

Dar formato a SQL

Cálculos

Construcción de fórmulas

Especificar los nombres de columna

Expresiones con funciones

Tipos de datos en SQL

Tipos de datos y cálculos

Ordenar datos

Obtener sólo los primeros n registros

Aplicar condiciones a una sentencia SELECT

Indicar varias condiciones

Búsquedas aproximadas

Consideraciones especiales sobre los valores Null

Gestionar los valores Null

Uso de grupos con funciones estadísticas

Restricciones de campos con GROUP BY

Uso de HAVING con GROUP BY

Realizar consultas con varias tablas

Sintaxis alternativa para las uniones internas

Cómo funcionan las uniones internas

Uniones cruzadas

Cómo funcionan las uniones cruzadas

Uniones externas

Unión externa izquierda

Unión externa derecha

Unión externa completa

Sintaxis alternativa para las uniones externas

Uso de tablas dinámicas

Resumen





4. Creación de tablas y modificación de datos con SQL



Crear y modificar tablas con SQL

Crear tablas

Limitación de clave principal

Limitación de clave externa

La limitación CHECK

Valores por defecto

Modificar tablas con SQL

Añadir nuevas columnas o eliminar columnas

Añadir limitaciones

Eliminar limitaciones

Eliminar tablas

Añadir, modificar y eliminar datos

Añadir datos a las tablas

Inserciones en varias filas

Eliminar datos de las tablas

DELETE frente a TRUNCATE

DELETE y las claves externas

Actualizar los datos de las tablas

Proceso transaccional

Resumen





5. Conceptos de diseño de bases de datos relacionales



Comprender cómo se hacen las cosas

El diseño conceptual

Entidades, atributos y valores

Desarrollo del diseño lógico

Interacciones y relaciones entre entidades

Entidades y relaciones en la base de datos

Definir las relaciones

Claves principales

Sobre el orden de las columnas

Claves externas

Relaciones uno a uno

Relaciones de uno a muchos

Integridad referencial

El proceso de normalización

Primera forma normal

Segunda forma normal

Tercera forma normal

Forma normal de Bryce-Codd

Cuarta forma normal

Quinta forma normal

¿Hasta dónde debe normalizar?

Integridad de datos

Diseño físico y ajuste

Uso de índices

Uso de vistas y procedimientos almacenados

Vistas

Procedimientos almacenados

Alarmas

Ajuste del rendimiento

Pruebas de carga

Optimización de consultas y procedimientos

Crear y mantener estadísticas

Resumen





6. Estudio de un caso: Diseñar la base de datos Music Store



El problema

Reunir los requisitos

Diseño de Music Store: el diseño de la lógica

Establecer interacciones entre entidades

Diseñar la base de datos Music Store: el diseño físico

¿Qué sistema de gestión de bases de datos (DBMS)?

Convenciones de nombres

Diseñar la base de datos

Los diagramas ERD

El área tipo pedidos de clientes

Tablas del modelo de datos

Las tablas del área tipo discos

Recordings

AudioStyles

Las tablas del área tipo tiendas

Tablas del área tipo cliente

Customers

Las tablas del área tipo pedidos

CustomerOrders

CustomerOrderItems

Poblar las tablas con datos de muestra

Insertar valores

Utilizar secuencias

Utilizar columnas auto numeradas

Actualizar valores

Eliminar valores

Construir soporte para consultas, vistas y procedimientos almacenados

Construir una vista de los inventarios

Un procedimiento almacenado para todos los valores del inventario

Utilizar un activador para generar valores secuenciados

Resumen





7. Desarrollo de una aplicación JDBC



Modelar objetos

Escenas de aplicación

Elegir un driver

Tipo 1: El driver puente JDBC-ODBC

Ventajas del driver puente

Desventajas del puente

Tipo 2: Driver API Nativo / parte java

Ventajas

Inconvenientes

Tipo 3: Driver protocolo de red/ todo Java

Ventajas

Inconvenientes

Tipo 4: Driver protocolo nativo/todo Java

Ventajas

Inconvenientes

Arquitecturas de aplicación

Protocolos de red para Windows NT y 98

Consideraciones en la selección de los driver JDBC

Utilizar datos relacionales en nuestra aplicación

¿Dónde se originan los datos?

Acceso directo a los datos

Crear una capa de persistencia de datos

Elegir nuestra aproximación

Utilizar un ResultSet

Ventajas

Limitaciones

Utilizar un RowSet

Ventajas

Limitaciones

Transformar un ResultSet en una representación de un objeto Java

Ventajas

Limitaciones

Transformar el ResultSet en una representación XML

Ventajas

Limitaciones

Tomando decisiones de un modo más sencillo

Integración de objetos y bases de datos relacionales

Integración entre los tipos de datos Java y SQL

Integrar datos relacionales en objetos Java

Una estrategia mejor de integración

Resumen





8. Conectar con una base de datos



La clase DriverManager

El método getConnection()

Asignar la desconexión por tiempo de registro (login timeout)

Identificar operaciones con el driver JDBC

Conexiones

La clase Store

Continuación de la clase Store

Problemas con la clase Store01

Cerrar recursos

Duplicar el código de Connection

Utilizar ConnectionFactory

Implementar la flexibilidad

DataSources

Un vistazo al directorio

Utilizar un DataSource

Resumen





9. Utilizar las interfaces Statement y ResulSet



Utilizar objetos Statement

Ejecutar un Statement

Modificar datos utilizando un objeto Statement

Mejoras

Actualizar varias columnas

Actualizar columnas selectivamente

Métodos findByXXX

Utilizar objetos ResultSet

Recuperar datos de las columnas de un tipo específico

Trabajar con valores null

Trabajar con tipos especiales de datos

Restricciones del ResultSet

Movimientos a través de un ResultSet

Crear un objeto ResultSet arrastrable

Modificar datos utilizando un ResultSet

Crear un ResultSet actualizable

Métodos para actualizar un ResultSet

Novedades en JDBC 3.0

Resumen





10. Uso de metadatos



¿Qué son los metadatos?

DatabaseMetaData

Obtener la lista de una tabla

Uso de metadatos para obtener el esquema

ResultSetMetaData

Resumen





11. Uso de RowSets



Introducción a los RowSets

La interfaz RowSet

La clase CachedRowSets

La clase JdbcRowSet

WebRowSet

Resumen





12. Sentencias Preparadas



La interfaz PrepareStatement

Novedades en JDBC 3.0. ParameterMetaData

Tipos de datos SQL-99

Tipos integrados (built-in)

Tipos definidos por usuario

Tipos estructurados

Tipo distinct

Tipos construidos

Tipos locator

Novedades en JDBC 3.0

Métodos de la interfaz PrepareStatement

Resumen





13. Sentencias de llamada y procedimientos almacenados



Procedimientos almacenados

Encapsulación y reutilización

Control de transacciones

Estandarización

Requisitos de los procedimientos

Nombres

Parámetros IN

Parámetros OUT

Parámetros INOUT

Utilización de los parámetros

Tipo de los parámetros

Ejemplos de procedimientos

Ejemplo: Función almacenada

Soporte de procedimientos almacenados en bases de datos

Sentencias de llamada

Crear una sentencia de llamada

Utilizar placeholders

Actualizaciones en bloque

Obtener un ResultSet

Novedades en JDBC 3.0

Resumen





14. Transacciones



¿Qué son las transacciones?

Tamaño de las transacciones

Requisitos de las transacciones

Concurrencia en la base de datos

Bloqueos exclusivos y compartidos

Bloqueos de lectura y bloqueos de escritura

El bloqueo a nivel de tabla frente al bloqueo a nivel de fila

Bloqueo optimista y pesimista

Bloqueos mortales

El impacto de los bloqueos sobre el rendimiento

Niveles de aislamiento de las transacciones

Lectura no confirmada

Lectura confirmada

Lectura repetible

Serializable

Resumen del aislamiento

¿Qué niveles de aislamiento están soportados?

Control de transacciones en JDBC

Métodos de conexión para el control de transacciones

Transacciones y procedimientos almacenados

Actualizaciones en bloque

Transacciones distribuidas

Nuevo en JDBC 3.0: los puntos de almacenamiento

Utilización de transacciones en Music Store

Resumen





15. Conceptos de integración de objetos y bases de datos relacionales



Aplicación de la base de datos Recording

Integración de objetos y bases de datos relacionales

Ejemplo de implementación de una integración

Usar la clase Recording con columnas autonumeradas en Cloudscape

Aumentar la aplicación Recording

Añadir relaciones

Añadir una jerarquía de clases de Java

Resumen





16. Arquitectura de integración de objetos y bases de datos relacionales



Un vistazo a la integración de datos con JLF

Objetos de datos integrados

Integradores de datos

Archivos de propiedad de localización de datos

Integración de la tabla Recordings

Esquema de la base de datos para la clase Recording

Implementación de la clase Recording

Archivo de propiedad de localización de datos

Una aplicación compleja de la integración de datos JLF

Añadir una relación uno con uno

Añadir una relación uno con muchos

Implementación de la clase CustomerTrackedRecording

Ampliación de la implementación de la clase Customer

Ampliación de la implementación de la clase Recording

Implementación de la clase CustomerTrackingType

Añadir una jerarquía de objetos

Implementación de la clase VolumeCustomer

Implementación de la clase FrecuentBuyer

Implementación de la clase Corporation

Implementación de la clase NonProfitCorporation

Prueba con TestCustomerTracking

Dónde ir desde aquí: Opciones de integración de objetos y bases de datos relacionales

Resumen





17. Depuración y registro



Depuración eficaz

Manejo de excepciones

Olvidarse de liberar los recursos

Problemas de rendimiento

Técnicas de depuración

Registrar en System.out y System.err

Registro de excepciones

Seguimiento de recursos

Registro de los cronometrajes del rendimiento

Ventajas del registro en System.out y System.err

Limitaciones del registro en System.out y System.err

Ejecución de un depurador interactivo local

Manejo de excepciones

Seguimiento de recursos

Registro de los cronometrajes del rendimiento

Ventajas de la depuración interactiva local

Limitaciones de la depuración interactiva local

Ejecución de un depurador interactivo remoto

Depuración remota de los problemas típicos de aplicaciones Java de bases de datos

Ventajas de la depuración interactiva remota

Limitaciones de la depuración interactiva remota

Instrumentación de las aplicaciones

Pasos para instrumentar una aplicación

Criticidades de los eventos del sistema

Granularidad del registro

Estándares de instrumentación

Implementación de un esquema de registro

Instrumentación con JLF

Registro de excepciones

Seguimiento de recursos

Registro de los cronometrajes del rendimiento

Ventajas de la instrumentación de las aplicaciones

Limitaciones de la instrumentación de las aplicaciones

Resumen





18. DataSources de JDBC



Conceptos y terminología del DataSource

DataSources

Tipos de DataSources

¿Cómo funciona un DataSource?

Utilización del DataSource

Descripción de los directorios

Creación y utilización de un DataSource

Adaptación a Cloudscape

Pool de conexiones

Pool de conexiones personalizado

El pool de conexiones en la empresa

¿Qué más podemos hacer con un DataSource?

Resumen





19. J2EE y aplicaciones Java de bases de datos



El entorno de desarrollo

Una introducción a J2EE

Introducción a los componentes de J2EE

Tecnologías componentes

Los API de servicio

Explotar las características de los contenedores J2EE

Aplicaciones de bases de datos en la Web

Utilizar servlets

Simplificar el desarrollo de una base de datos con JSP

Una ojeada a JSP

JavaBeans

Integrar JavaBean en JSP

La página search.html

El pool de conexión

Enterprise JavaBeans

Revisión de EJB

Clasificación de los EJB

Contenedores EJB

Gestión de transacciones

Estructura de EJB

Persistencia gestionada por contenedor

Persistencia gestionada por bean

Desplegar un bean

Los EJB en la aplicación Music Store

¿Cuál es el método de persistencia más apropiado?

Implementar la clase Recording como un EJB

La aplicación cliente

La interfaz remota

La interfaz local

La implementación del bean

El descriptor de despliegue

Resumen





20. Exportar datos relacionales a XML



Analizadores XML

Los distintos tipos de analizadores XML

Bajar el analizador Xerces

Instalación del analizador XML

Integrar XML con bases de datos relacionales

Teoría relacional revisada

Integrar una sola tabla con XML

Ejecutar el ejemplo SimpleXMLData

Integrar una relación uno con muchos con XML

Utilizar una estrategia basada en contenido

Integración de una relación muchos con muchos en XML

Utilizar una estrategia basada en enlace

Estrategia basada en contenido vs. basada en enlace

Elementos vs. Atributos

Resumen





21. Utilizar XSLT



Introducción a XSLT

¿Cómo funciona XSLT?

XSLT y SQL

XSLT, XML y la transformación

Procesadores XSLT

Bajar el procesador de XSLT Xalan

Instalar el procesador de XSLT Xalan

Ejemplo 1: Transformar XML en HTML

Ejemplo 2: Transformar XML en un archivo plano

Sintaxis básica de XSLT

Buscar en un documento XML utilizando XPath

Problemas habituales con las consultas XPath en XSLT

Realizar un bucle a través de un documento XML

Aplicar lógica condicional en XSLT

Aplicaciones prácticas de XSLT

La pantalla de resumen de los pedidos de clientes

OrderSummary.jsp

CustomerOrder.java

orderSummary.xsl

¿Cuál es la gran cosa?

Resumen





22. La arquitectura modelo-vista-controlador



Los defectos de una aplicación normal

Arquitecturas de aplicación visitadas

Arquitectura de 2 capas

Arquitectura de 3 capas

Arquitectura de n capas

Arquitectura de aplicaciones: lecciones aprendidas

Introducción a la arquitectura MCV

Detalles de la arquitectura MVC

Controlador

controller.jsp

RequestHandler.java

Modelo

Anatomía de un modelo

The CustomerList EJB

Vista

La hoja de estilo customerList.xsl

Construir pantallas mejores

Construir el EJB AddressMaintenance

EJB AddressMaintenance

Construir los bean de entidad Customer y PostalCodes

Desplegar el EJB de entidad Customers

Desplegar el EJB de entidad PostalCodes

PostalCodes ejb-jar.xml

Desplegar el EJB CustomerList

EJB AddressMaintenance

Construir addressMaintenance.xsl

Desplegar el archivo addressMaintenance.xsl

Ejecutar la aplicación MVC de mantenimiento de direcciones

Algunos pensamientos finales

Resumen





A. Conectar con la base de datos Music Store



Conectar con Oracle

Una breve nota sobre las versiones de Oracle

Bajar Personal Oracle 8i

Instalar Personal Oracle 8i 8.1.7.0.0

Establecer un escuchador

Probar la instalación de Personal Oracle

Bajar la base de datos Music Store

Los scripts de Oracle

The Oracle_Create.sql Script

Drivers JDBC de Oracle

El driver JDBC/OCI de Oracle

El driver JDBC Thin de Oracle

Utilizar el driver JDBC Thin

Conectar con Cloudscape utilizando el driver RMI-JDBC

Conectar con Access

Establecer la base de datos

Utilizar el Bridge JDBC-ODBC

Depurar





B. Instalación del servidor de aplicaciones JBoss y el contenedor Web Tomcat



Instalación del servidor de aplicaciones JBoss

Localización del programa de instalación de JBoss

Desempaquetar los archivos de JBoss

Ejecución de JBoss

Iniciar JBoss con Tomcat

Configuración del JDBC en JBoss

Instalación de un driver JDBC en JBoss

Creación de un pool de conexiones JBoss

Instalación de Tomcat como aplicación autónoma

Iniciar el Tomcat

Detener el Tomcat





C. Pequeño manual de XML



¿Qué es un lenguaje de marcas?

Etiquetas y elementos

Atributos

¿Qué es XML?

Cómo se procesan los documentos XML

Los bloques de construcción básicos de XML

La declaración XML

Elementos

Atributos

Datos de carácter

Sector CDATA

Referencias de entidad

Instrucciones de procesamiento

Comentarios

Contexto del nombre o namespaces

Documet Type Definition DTD

La declaración autónoma

Declaraciones de elementos

Contenido elemento

Ejemplo 1:

Ejemplo 2:

Ejemplo 3:

Contenido mixto

Contenido solo texto

El modelo de contenido EMPTY

Modelo de contenido ANY

Declaraciones de atributos

El atributo tipo CDATA

El atributo tipo ID

El atributo de tipo IDREF

El tipo de atributo IDREFS

El atributo tipo ENTITY

El atributo tipo ENTITIES

El atributo tipo NMTOKEN

El atributo tipo NMTOKENS

Conjunto enumerado de valores

Declaración de atributos de notación

#REQUIRED

#IMPLIED

Declaraciones de valores por defecto

Declaraciones de valores #FIXED

Declaraciones de notación

Declaración de entidades

Entidades internas

Entidades externas

Entidades de parámetros

Entidades no analizadas

Secciones condicionales

Pensando en árboles

Un vistazo a la tecnología

Esquemas XML

El Document Object Model (DOM)

Simple API para XML (SAX)

XPATH





D. Soporte, erratas y p2p.wrox.com



Los foros en línea de p2p.wrox.com

Cómo inscribirse para recibir soporte

Por qué ofrece este sistema el mejor soporte

Comprobar las erratas en línea en www.wrox.com

Encontrar una errata en el sitio Web

Añadir una errata

Soporte a clientes

Redacción

Los autores

Lo que no podemos contestar

Cómo decirnos exactamente lo que piensa





Índice alfabético

Java es un potente y versátil lenguaje de programación que puede trabajar en todo tipo de entornos, desde servidores de aplicaciones middle-tier hasta clientes Web. Independientemente del tipo de aplicación que usted desarrolle y del tipo de máquina en la que se ejecute el código, su aplicación seguramente tendrá que acceder a datos almacenados en algún tipo de base de datos. Las bases de datos relacionales son la elección obvia en la mayor parte de las empresas, y han evolucionado espectacularmente en los últimos años hasta convertirse en potentes sistemas de gestión de bases de datos.



Este libro pretende mostrar cómo funcionan las bases de datos relacionales, y cómo emplear la interfaz JDBC para utilizarlas en sus programas Java. Se recogen desde los fundamentos básicos de SQL y dichas bases, hasta el desarrollo de sofisticadas aplicaciones de bases de datos en Java con soporte para otras tecnologías como XML y XSLT, con las que podrá programar en entornos corporativos con calidad profesional.



Bases de datos con Java es ideal para el programador que tiene unos ciertos conocimientos de Java que quiera aplicar y mejorar sus capacidades para construir aplicaciones de bases de datos en Java, o la interfaz de programación JDBC. En el caso de conocer poco Java, las explicaciones del texto le permitirán comprender los conceptos que se tratan, especialmente si procede de otro lenguaje como C o C++.

Artículos relacionados

  • LA CASTANYADA
    LA CASTANYADA
    CANYELLES ROCA, ANNA
    QUIN FRED I QUINA OLORETA! ÉS LA CASTANYERA! Mentre els grans posen a taula panellets i torren castanyes, en Pau vol que l’avi li expliqui un conte. I ell li explica un conte molt especial. Vet aquí que l’avi, de nen, era molt entremaliat i tenia por que algun dia algú li clavés una castanya... (no sabia que les castanyes es menjaven!) ...
    Disponibilidad inmediata

    7,50 €

  • LOS ESCALONES
    LOS ESCALONES
    STALLONE, SYLVESTER
    Las descarnadas, inspiradoras y emocionantes memorias en las que Sylvester Stallone, icono del cine y legendario ganador de varios premios Oscar, narra su increíble camino al estrellato y la creación de Rocky, la mejor historia de superación jamás contada. En los cincuenta años transcurridos desde que Sylvester Stallone subió corriendo los escalones del Museo de Arte de Filadel...
    Disponibilidad inmediata

    22,90 €

  • ACTIVIDADES RELAJANTES PARA NO MATAR A NADIE EN EL TRABAJO
    ACTIVIDADES RELAJANTES PARA NO MATAR A NADIE EN EL TRABAJO
    TODAY, EL MUNDO TODAY
    Entretenimiento a prueba de compañeros pelotas, jefes incompetentes y oficinas tediosas. Cuando, en la redacción de El Mundo Today, supimos que el 90 por ciento de las personas dejarían su trabajo si pudieran, entendimos que no podíamos quedarnos parados como ese 10 por ciento restante. Era el momento de ponernos a buscar una solución. En un Estado de derecho, nadie debería obl...
    Disponibilidad inmediata

    15,90 €

  • UKETAMO. ABRAZAR LA VIDA TAL CUAL VIENE
    UKETAMO. ABRAZAR LA VIDA TAL CUAL VIENE
    GALEOTE FRONTELO, ANA
    Descubre el arte japonés de aceptar la vida tal cual viene para encontrar la paz y la felicidad: uketamo. En un mundo que exige rapidez, resultados y certezas, la aceptación es un acto de valentía. Pero ¿cómo podemos soltar el control, abrazar la imperfección y vivir en el ahora cuando parece ir contra nuestra naturaleza? A casi seis mil metros de altura, en el oscuro ascenso a...
    Disponibilidad inmediata

    20,95 €

  • GENERACIÓN 15-M
    GENERACIÓN 15-M
    URQUIZU, IGNACIO
    ¿Cómo son los jóvenes que (solo) han conocido la España democrática de después del 15-M? El 15 de mayo de 2011, miles de personas salieron a la calle al grito de "¡No nos representan!" en un movimiento que cambió nuestra democracia: pasamos del bipartidismo al multipartidismo y vimos caer un Gobierno por una moción de censura. Allí nació la generación 15-M, que entonces no podí...
    Disponibilidad inmediata

    13,90 €

  • LA SISENA FACCIÓ
    LA SISENA FACCIÓ
    ROTH, VERONICA
    Una reinterpretació alternativa de la saga Divergent per la mateixa autora. La Beatrice Prior està a punt de prendre una decisió a la qual tothom del seu entorn s’hi ha d’enfrontar: ha d’escollir una facció on pertànyer d’entre les cinc que hi ha. Ella té un pla: apostar per la valentia i deixar enrere Abnegació per unir-se als Intrèpids, encara que això signifiqui separar-se d...
    Disponibilidad inmediata

    21,95 €