Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Arquitecturas
Lgica
Presentacin
Tecnolgica
Fsica
java
Equipo
Aplicacin
java
Almacenamiento
Almacenamiento-BDRelacionales
BDRelacional
Access
My SQL
Almacenamiento-BDRelacionales
BDRelacional SQL
Access
MySQL
SQL
Structured Query Language
Es un lenguaje declarativo por medio del cual se puede establecer comunicacin con cualquier base de datos relacional. Un lenguaje declarativo indica el qu
Ejemplo Artculos
Dibuje el modelo conceptual de los artculos de un peridico , bsicamente un artculo puede ser escrito por varios autores y tratarse de varios temas o subtemas.
Ejemplo Artculos
Articulo
0..*
esEscritoPor v
seTrataDe v
Tema
0..*
1..* 0..1
1..*
Autor
PerteneceA >
seTrataDe v
esEscritoPor v
Tema 0..*
1..* 0..1
1..*
Autor
PerteneceA >
Modelo Relacional
Artculo
codigo : Entero nombre : Cadena fecha : Fecha resumen : Cadena
0..*
0..* 1..*
-temas
-autores
Autor
codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Tema
codigo : Cadena nombre : Cadena
1..* 0..*
0..1 -temaPadre
De Aplicacin a Almacenamiento
ManejadorMantenerArticulos inicieMantenerArticulos() seleccioneArticulo(nombre) adicioneArticulo(nombre, fecha, resumen, autores, temas) termineMantenerArticulo()
Artculo codigo : Entero nombre : Cadena fecha : Fecha resumen : Cadena 0..* 0..* 1..* -temas -autores Tema codigo : Cadena nombre : Cadena 0..1 -temaPadre 1..* 0..*
?
Autor codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Patrones de Diseo
Almacenamiento
Identificador de Objetos
Representar Objetos como Tablas
De Aplicacin a Almacenamiento
ManejadorMantenerArticulos inicieMantenerArticulos() seleccioneArticulo(nombre) adicioneArticulo(nombre, fecha, resumen, autores, temas) termineMantenerArticulo()
0..*
0..* 1..*
?
Autor codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Patrones de Diseo
Almacenamiento
Identificador de Objetos
Representar Objetos como Tablas
Identificador de Objetos
Nombre : Identificador de Objeto
Object Identifier
Referencia : [Brown,1996]
Problema : Cmo relacionar adecudamente los objetos con los registros ?
Solucin
:?
Identificador de Objetos
Nombre : Identificador de Objeto
Object Identifier
Referencia : [Brown,1996]
Problema : Cmo relacionar adecudamente los objetos con los registros ?
Solucin
: Asignar un identificador de objetos OID a cada objeto (o proxy de un objeto) y a registro correspondiente.
Artculo
codigo : Entero nombre : Cadena fecha : Fecha resumen : Cadena
0..*
0..* 1..*
-temas
-autores
Autor
codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Tema
codigo : Cadena nombre : Cadena
1..* 0..*
0..1 -temaPadre
Solucin
:?
Solucin
: Definir una tabla para cada clase de objetos persistente. Los atributos de la clase que son tipos primitivos deben ser las columnas de la tabla.
Artculo
codigo : Entero nombre : Cadena f echa : Fecha resumen : Cadena
0..*
0..* 1..*
-temas
-autores
Autor
codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Tema
codigo : Cadena nombre : Cadena
1..* 0..*
0..1 -temaPadre
Artculos Diseo-Almacenamiento
Identificador de Objeto
Articulo
TemaXArticulo
temaPadre
Solucin
:?
Solucin
: Para las relaciones uno a uno Colocar una clave ajena en una de las tablas para representar la relacin entre los objetos. O, crear una tabla asociativa para registrar los identificadores de cada uno de los objetos de la relacin
Solucin
: Para las relaciones uno a muchos Colocar una clave ajena en la tabla de cardinalidad uno, para representar la relacin entre los objetos. O, crear una tabla asociativa para registrar los identificadores de cada uno de los objetos de la relacin
Solucin
: Para las relaciones muchos a muchos Crear una tabla asociativa para registrar los identificadores de cada uno de los objetos de la relacin
Artculo
codigo : Entero nombre : Cadena fecha : Fecha resumen : Cadena
0..*
0..* 1..*
-temas
-autores
Autor
codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Tema
codigo : Cadena nombre : Cadena
1..* 0..*
0..1 -temaPadre
CODIGO = CODIGO
CODIGOT = TEM_CODIGOT
CODIGOA = AUT_CODIGOA
TEMA
CODIGOT = TEM_CODIGOT
De Aplicacin a Almacenamiento
ManejadorMantenerArticulos inicieMantenerArticulos() seleccioneArticulo(nombre) adicioneArticulo(nombre, fecha, resumen, autores, temas) termineMantenerArticulo()
0..*
0..* 1..*
De Aplicacin a Almacenamiento
Materializar Desmaterializar
ManejadorMantenerArticulos inicieMantenerArticulos() seleccioneArticulo(nombre) adicioneArticulo(nombre, fecha, resumen, autores, temas) termineMantenerArticulo()
TEMAXARTICULO CODIGO Tex t(5) TEM_CODIGOT Tex t(5) ARTICULO CODIGO Tex t(5) NOMBRE Tex t(30) FECHA DateTime RESUMEN Tex t(60) AUTORXARTICULO CODIGO Tex t(5) AUT_CODIGOA Tex t(5)
0..*
0..* 1..*
Autor
AUTOR CODIGOA NOMBREA APELLIDOA NACIONALIDAD Tex t(5) Tex t(20) Tex t(20) Tex t(20)
CODIGOT = T EM_CODIGOT
Database Broker
Referencia : [Brown,1996]
Problema : Quin debe ser responsable por la presistencia de un objeto?
Solucin
:?
Database Broker
Referencia : [Brown,1996]
Problema : Quin debe ser responsable por la presistencia de un objeto?
Solucin
: Se debe construir una clase que sea responsable de la materializacin y desmaterializacin de los objetos persistentes.
Gestin de Cach
Nombre : Manejador de cache
Cache Management
Referencia : [Brown,1996]
Problema : Cmo mejorar la eficiencia de los objetos persistentes ?
Solucin
:?
Gestin de Cach
Nombre : Manejador de cache
Cache Management
Referencia : [Brown,1996]
Problema : Cmo mejorar la eficiencia de los objetos persistentes ?
Solucin
: Responsabilizar a las clases intermediarias de Bases de Datos del manejo de la memoria cach de los objetos persistentes a su cargo. Cada broker debe tener su propia cache.
Aplicacin
ManejadorMantenerArticulos
iniciarMantenerArticulos() seleccionarArticulo(nombre) adicionarArticulo(nombre, f echa, resumen, autores, temas) terminarMantenerArticulo()
Artculo
codigo : Entero nombre : Cadena f echa : Fecha resumen : Cadena
0..*
0..* 1..*
-temas
-autores
Autor
codigo : Cadena nombre : Cadena apellido : Cadena nacionalidad : Cadena
Tema
codigo : Cadena nombre : Cadena
1..* 0..*
0..1 -temaPadre
CatalogoTemas
CatalogoArtculos
CatalogoAutores
Aplicacin
Catalogos
Catalogo
CatalogoTemas
CatalogoArtculos
CatalogoAutores
jav a.sql
Arquitectura Bsica
Aplicacin
Componente Java
JDBC Runtime
Almacenamiento
Motor de BD
BD
JDBC Bsico
DriverManager <<clase>> getConnection(url : String, user : String, password : String) : Connection
Connection
createStatement() : Statement close()
ResultSet first() : boolean next() : boolean close() get<Tipo>(colIndex : int) : <Tipo> get<Tipo>(colName : String) : <Tipo>
JDBC Tipos
tipo SQL BIT DATE DOUBLE INTEGER/INT NUMERIC TIME TIMESTAMP TINYINT BIGINT BINARY CHAR DECIMAL FLOAT REAL SMALLINT LONGVARBINARY VARBINARY LONGVARCHAR VARCHAR tipo Java boolean java.sql.Date double int java.sql.Numeric java.sql.Time java.sql.Timestamp byte long byte[] String Numeric Double float short byte[] byte[] String String mtodo getBoolean getDate getInt
getString getFloat
getString
Excepciones
Exception getMessage() : String
JDBC Bsico
DriverManager <<clase>> getConnection(url : String, user : String, password : String) : Connection
ResultSet first() : boolean next() : boolean close() get<Tipo>(colIndex : int) : <Tipo> get<Tipo>(colName : String) : <Tipo>
Connection, Statement y ResultSet tienen el mtodo getWarnings():SQLWarning Todas las operaciones lanzan SQLException
Drivers
Las clases correspondientes a los drivers pueden cargarse explcitamente en cualquier momento.
JDBC - ODBC
Class.forname(sun.jdbc.odbc.JdbcOdbcDriver);
MySQL Driver
Class.forname(my.sql.Driver);
URL
jdbc:<subprotocolo>:<subnombre> JDBC - ODBC
jdbc:odbc:fuente
refirindose a una fuente registrada bajo ODBC
Aplicacin
<<solitario>>
CatoalogosRev ista
<<solitario>>
CatalogoTemas
<<solitario>>
CatalogoArticulos
<<solitario>>
CatalogoAutores