Anda di halaman 1dari 22

ACTIVIDAD 3 CONCEPTOS AVANZADOS DE BASES DE DATOS

PRESENTADO POR:
DANIEL SANTIAGO GUZMAN ROMERO
MARLON STEVEN TORRES PULIDO
ORLANDO SOLANO
JUAN SEBASTIAN BARRERA SIABATO
MIGUEL ANGEL LIEVANO

PRESENTADO A:
FRANK CASTILLO PADILLA

ADSI

CENTRO DE DISEO Y METROLOGIA


ADSI- 576038
BOGOTA .DC

TIPOS DE BLOQUEO EN BD
BLOQUEO PESIMISTA
El bloqueo pesimista es la tcnica por la cual los datos son bloqueados previos a
su modificacin para evitar que nadie los modifique. Una vez que los datos a
actualizar han sido bloqueados la aplicacin puede acometer los cambios, con
commit o rollback, en ese caso el bloqueo es automticamente eliminado. Si alguien
intenta adquirir un bloqueo de los mismos datos durante el proceso ser obligado a
esperar hasta que la primera transaccin finalice.
Esta tcnica es muy simple pero tiene dos problemas fundamentales:
Bloqueo: un usuario selecciona un registro para actualizar, y entonces abandona
la operacin. Todos los usuarios que necesitan actualizar ese registro tienen que
esperar hasta que se complete la transaccin, o hasta que se mate y finalice el
bloqueo.
Deadlock: Si los usuarios A y B estn ambos actualizando la base de datos a la
vez y A bloqueo un registro e intenta adquirir un bloqueo mantenido por B, que a su
vez est esperando a adquirir un bloqueo mantenido por A ambas transacciones
quedaran en espera indefinidamente, dando lugar a un Deadlock.
En general los Sistemas RDBMS ofrecen clusulas para este bloqueo. Oracle
soporta bloqueo pesimista a nivel de fila. La sentencia estndar para el bloqueo es
SELECT FOR UPDATE que hace que todas las sentencias UPDATE o SELECT
FOR UPDATE de otras conexiones se bloqueen hasta que un commit, rollback o
deadlock se produzca. Se produce un deadlock cuando un usuario que tiene la fila
A bloqueada intenta bloquear la fila B, mientras que otro usuario tiene la fila B
bloqueada e intenta bloquear la A. En este caso Oracle deshabilita uno de los
bloqueos del usuario permitiendo al otro usuario bloquear ambas filas.
Oracle adems tiene el bloqueo SELECT FOR UPDATE NO WAIT, de modo que
Oracle causar una excepcin cuando una fila bloqueada es seleccionada. Esto
puede ser til si no se quiere bloquear un usuario para un tiempo indefinido.

BLOQUEO OPTIMISTA
El bloqueo optimista no bloquea los registros que se van a actualizar y asume que
los datos que estn siendo actualizados no van a cambiar desde que se han ledo.
Puesto que en nuestro caso no se puede asumir esto es necesario un control de
la concurrencia, de esta manera el bloqueo optimista con control de
concurrencia asegura que los datos que estn siendo escritos son consistentes
con los ledos en primera instancia, es decir que ninguna otra transaccin ha
actualizado los datos despus de la lectura. El procedimiento para asegurar la
consistencia es muy sencillo: se leer un valor junto al registro, se actualizar ese
valor a la BD cuando el registro es actualizado.
Existen varios mecanismos asegurar el control de la concurrencia, el ms comn es
el uso de un timestamp modificado. Este mecanismo slo ofrece una resolucin de
un segundo.

CONTROL DE CONCURRENCIA OPTIMISTA


El control de concurrencia optimista (en ingls Optimistic concurrency
control o OCC) es un mtodo de control de concurrencia que se aplica a sistemas
transaccionales, tales comosistemas de gestin de bases de datos
relacionales y memoria transaccional de software. El OCC asume que mltiples
transacciones se pueden completar frecuentemente sin interferir entre s. Mientras
se ejecutan, las transacciones utilizan recursos de datos sin adquirir bloqueos en
esos recursos. Antes de hacer el commit, cada transaccin verifica que ninguna otra
transaccin ha modificado los datos que ha ledo. Si la comprobacin revela
modificaciones en conflicto, la transaccin que iba a hacer commit hace un rollback y
se puede reiniciar.1 El control de concurrencia optimista fue propuesto por primera
vez por H. T. Kung.2
El OCC se utiliza generalmente en entornos con baja contencin de datos. Cuando
los conflictos son poco frecuentes, las transacciones se pueden completar sin el
coste de la gestin de bloqueos y sin tener transacciones esperando a que se borren
los bloqueos de otras transacciones, dando lugar a un mayor rendimiento que otros
mtodos de control de concurrencia. Sin embargo, si la contencin de recursos de
datos es frecuente, el coste de reiniciar las transacciones repetidamente perjudica
el rendimiento de manera significativa; comnmente se piensa que otros mtodos
de control de concurrencia tienen un mejor rendimiento en estas condiciones. Sin
embargo, los mtodos basados en bloqueos ("pesimistas") tambin pueden ofrecer
un rendimiento pobre porque los bloqueos pueden limitar drsticamente la
concurrencia efectiva incluso cuando se evitan los deadlocks.

FASES DEL OCC


Ms en concreto, las transacciones del OCC implican estas fases:

Inicio: Grabar un timestamp que marca el inicio de la transaccin.


Modificar: Leer los valores de la base de datos y tentativamente escribir
cambios.
Validar: Comprobar si otras transacciones han modificado datos que esta
transaccin ha utilizado (ledo o escrito). Esto incluye las transacciones que
se han completado con posterioridad al tiempo de inicio de esta transaccin
y, opcionalmente, las transacciones que an estn activas en el momento de
la validacin.

Commit/Rollback: Si no hay conflicto, hacer que todos los cambios surtan efecto. Si
hay un conflicto, resolverlo, tpicamente abortando la transaccin, aunque otros
sistemas de resolucin son posibles. Se debe tener cuidado para evitar un
bug TOCTTOU, especialmente si esta fase y la anterior no se realizan como una
nica operacin atmica.

Tipo
Bloqueo pesimista

V Descripcin

No todas las Bases de Datos lo soportan y


cada una lo soporta de una manera
Previene a los usuarios y aplicaciones de leer
datos que estn siendo modificados
Los usuarios se enteran inmediatamente si no
pueden acceder a una fila
o Es fcil de usar

No todas las Bases de Datos lo soportan y


cada una lo soporta de una manera.
Necesita tener abierta la transaccin, el
bloqueo slo es efectivo si la transaccin est
abierta.
Mengua la escalabilidad.
Utiliza recursos extra en la base de datos.
Impide a otros usuarios de tener acceso de
lectura a los datos.
Puede producir deadlocks.
o Puede producir excesivos bloqueos.

Bloqueo optimista con


control de concurrencia

Lo soportan todas las bases de datos


Es fcil de usar
No consume recursos extra en la BD.
o No crea bloqueos ni deadlocks.

Es necesario crear triggers en la BD.


Requiere un pequeo trabajo extra.
Retrasa las actualizaciones.
o Todas las aplicaciones que actualizan una
base de datos deben conocer el mecanismo de
consistencia.

Bloqueo y Motores ORM


Hibernate, y en general los motores de persistencia, y por supuesto JPA soportan
el bloqueo optimista simplificando su uso. Algunos motores como Hibernate o JPA
2 soportan incluso el bloqueo pesimista.

PROCEDIMIENTO ALMACENADO

Un procedimiento almacenado es un subprograma disponible para las


aplicaciones que tienen acceso a un relacional sistema de base de datos. Un
procedimiento
almacenado
(a
veces
llamado
un
(proc, sproc, STOPRO, StoredProc, StoreProc, sp o SP) se almacena en la base
de datos del diccionario de datos.
Los procedimientos almacenados son similares a las funciones definidas por el
usuario (UDF). La principal diferencia es que las UDF se pueden utilizar como
cualquier otra expresin dentro de sentencias SQL, mientras que los procedimientos
almacenados deben ser invocados usando la llamada comunicado.

Llamado de procedimiento () o
Ejecutar procedimiento ()

Los procedimientos almacenados pueden devolver conjuntos de resultados, es


decir, los resultados de un SELECT comunicado. Tales conjuntos de resultados
pueden procesarse utilizando los cursores, por otros procedimientos almacenados,
mediante la asociacin de un conjunto localizador resultado, o por las aplicaciones.
Los procedimientos almacenados tambin pueden contener variables para el
procesamiento de datos y cursores que permiten a recorrer varias filas en una tabla
declarada. Sentencias de control de flujo de los procedimientos almacenados
suelen incluir (SI, MIENTRAS, LAZO, REPEAT, y CASE) declaraciones, y ms.
Los procedimientos almacenados pueden recibir las variables, devolver resultados
o modificar las variables y volver ellos, dependiendo de cmo y dnde se declara la
variable.

IMPLEMENTACION
La implementacin exacta y correcta de los procedimientos almacenados vara de
un sistema de base de datos a otro. La mayora de los proveedores de bases de
datos principales que apoyan de alguna forma. En funcin del sistema de base de
datos, procedimientos almacenados se pueden implementar en una variedad
de lenguajes de programacin, por ejemplo, SQL, Java, C o C ++.
Los procedimientos almacenados escritos en lenguajes de programacin no son de
SQL pueden o no ejecutar sentencias SQL mismos.

EJEMPLO DE PROCEDIMIENTOS DE ALMACENAMIENTO EN MYSQL


los procedimientos almacenados empezaron a ser soportados, como suele suceder
en MySQL las sentencias se ejecutan luego de escribir el signo punto y coma (;),
por esta razn antes de escribir el procedimiento almacenado la funcin del punto y
coma se asigna a otros caracteres usando la sentencia DELIMITER seguida de un
carcter tal como |, de esta manera el procedimiento puede ser escrito usando los
punto y comas sin que se ejecute mientras se escribe; despus de escrito el
procedimiento, se escribe nuevamente la sentencia DELIMITER ; para asignar al
punto y coma su funcin habitual.
El siguiente es un ejemplo de procedimiento almacenado en MySQL:

TRIGGERS
Triggers= (disparadores, gatilladores, gatillos)
CREATE
[DEFINER = {usuario | CURRENT_USER}]
GATILLO trigger_name
momento_disp evento_disp
EN nombre_tabla FOR EACH ROW
Cuerpo_Del_Trigger
momento_disp: {ANTES | DESPUS}
evento_disp: {INSERT | ACTUALIZACIN | DELETE}

Row Triggers (o Disparadores de fila): son aquellas que se ejecutaran cada vez
que se llama al disparador desde la tabla asociada al trigger.
row level triggers se pueden identificar por FOR EACH ROW se declara en el
gatillo a nivel de fila declaracin gatillo se dispara internamente cuando cualquier
operacin DML ocurre en cualquier objeto como mesa que se activar para cada
fila. Ejemplo: si se produjo cualquier instruccin delete por 30 registros se
disparar durante 30 veces.

CREATE OR REPLACE TRIGGER Print_salary_changes


ANTES DE ELIMINAR O INSERT O ACTUALIZACIN SOBRE Emp_tab
PARA CADA FILA
CUANDO (new.Empno> 0)
DECLARAR
Nmero sal_diff;
Comenzar
sal_diff: =: new.sal -: old.sal;
dbms_output.put ('salario Antiguo:' ||: old.sal);
dbms_output.put ('Nueva sueldo:' ||: new.sal);
dbms_output.put_line ('Diferencia' || sal_diff);
Fin;

Statement Triggers (o Disparadores de secuencia): son aquellos que sin


importar la cantidad de veces que se cumpla con la condicin, su ejecucin es
nica.

Statement level triggers sin declaracin de FOR EACH ROW se dispara para
cada terminacin. Ejemplo: la declaracin delete est producido por 30 registros
que se dispararn despus de que los 30 registros se han realizado

CREATE TRIGGER TriggerName


{DESPUS | NO CASCADE ANTES}
{INSERT | DELETE | ACTUALIZACIN [OF nombre-columna [, columnaNombre] *]}
EN mesa-Nombre
[ ReferencingClause ]
[PARA CADA {ROW | DECLARACIN}] [MODO DB2SQL]
Activadas-sentencia-SQL

TRANSACCION

Transactions (BEGIN TRAN, COMMIT TRAN, ROLLBACK TRAN)

Transaccin:
Una transaccin en un Sistema de Gestin de Bases de Datos (SGBD), es un
conjunto de rdenes que se ejecutan formando una unidad de trabajo, es decir, en
forma indivisible o atmica.

Un SGBD se dice transaccional, si es capaz de mantener la integridad de los datos,


haciendo que estas transacciones no puedan finalizar en un estado intermedio.
Cuando por alguna causa el sistema debe cancelar la transaccin, empieza a
deshacer las rdenes ejecutadas hasta dejar la base de datos en su estado inicial
(llamado punto de integridad), como si la orden de la transaccin nunca se hubiese
realizado. Una transaccin debe contar con ACID (un acrnimo ingls) que quiere
decir: Atomicidad, Consistencia, Durabilidad y Aislamiento. Entonces para que un
Sistema de Gestin de Bases de Datos sea considerado Transaccional, debe
cumplir con estos criterios (ACID).

Para esto, el lenguaje de consulta de datos SQL (Structured Query Language),


provee los mecanismos para especificar que un conjunto de acciones deben
constituir una transaccin.

BEGIN TRAN: Especifica que va a empezar una transaccin:

Marca el punto de inicio de una transaccin local explcita. La instruccin BEGIN


TRANSACTION incrementa @@TRANCOUNT en 1
Sintaxis
BEGIN {TRAN | TRANSACTION}
[ {transaction_name | @tran_name_variable }
[WITH MARK [description] ]
]
[;]
transaction_name
Es el nombre asignado a la transaccin. transaction_name debe cumplir las reglas
de los identificadores, pero no se admiten identificadores de ms de 32 caracteres.
Utilice nombres de transacciones solamente en la pareja ms externa de
instrucciones
BEGINCOMMIT
o
BEGINROLLBACK
anidadas.
transaction_name siempre distingue maysculas de minsculas, incluso cuando la
instancia de SQL Server no distingue maysculas de minsculas.
@tran_name_variable
Nombre de una variable definida por el usuario que contiene un nombre de
transaccin vlido. La variable debe declararse con un tipo de datos char, varchar,
nchar o nvarchar. Si se pasan ms de 32 caracteres a la variable, solo se utilizarn
los primeros 32; el resto de caracteres se truncar.
WITH MARK [description]
Especifica que la transaccin est marcada en el registro. Description es un valor
de tipo string que describe la marca. Un valor de description superior a 128
caracteres se trunca a 128 caracteres antes de almacenarse en la tabla
msdb.dbo.logmarkhistory.
Si utiliza WITH MARK, debe especificar un nombre de transaccin. WITH MARK
permite restaurar un registro de transacciones hasta una marca con nombre.
BEGIN TRANSACTION representa un punto en el que los datos a los que hace
referencia una conexin son lgica y fsicamente coherentes. Si se producen
errores, se pueden revertir todas las modificaciones realizadas en los datos despus

de BEGIN TRANSACTION para devolver los datos al estado conocido de


coherencia. Cada transaccin dura hasta que se completa sin errores y se emite
COMMIT TRANSACTION para hacer que las modificaciones sean una parte
permanente de la base de datos, o hasta que se produzcan errores y se borren
todas las modificaciones con la instruccin ROLLBACK TRANSACTION.
BEGIN TRANSACTION inicia una transaccin local para la conexin que emite la
instruccin. Segn la configuracin del nivel de aislamiento de la transaccin actual,
la transaccin bloquea muchos recursos adquiridos para aceptar las instrucciones
Transact-SQL emitidas por la conexin hasta que la misma finaliza con una
instruccin COMMIT TRANSACTION o ROLLBACK TRANSACTION. Las
transacciones que quedan pendientes durante mucho tiempo pueden impedir que
otros usuarios tengan acceso a estos recursos bloqueados y pueden impedir
tambin el truncamiento del registro.

COMMIT TRANSACTION

Marca el final de una transaccin correcta, implcita o explcita. Si


@@TRANCOUNT es 1, COMMIT TRANSACTION hace que todas las
modificaciones efectuadas sobre los datos desde el inicio de la transaccin sean
parte permanente de la base de datos, libera los recursos mantenidos por la
transaccin y reduce @@TRANCOUNT a 0. Si @@TRANCOUNT es mayor que 1,
COMMIT TRANSACTION solo reduce @@TRANCOUNT en 1 y la transaccin
sigue activa.

Sintaxis
COMMIT [ { TRAN | TRANSACTION } [ transaction_name | @tran_name_variable ]
] [ WITH ( DELAYED_DURABILITY = { OFF | ON } ) ]
[;]
transaction_name
Motor de base de datos de SQL Server lo omite. transaction_name especifica un
nombre de transaccin asignado a una instruccin BEGIN TRANSACTION anterior.
transaction_name debe cumplir con las reglas para identificadores, pero no puede
superar los 32 caracteres. transaction_name se puede usar como una ayuda de
legibilidad, ya que indica a los programadores a qu instruccin BEGIN
TRANSACTION anidada est asociada la instruccin COMMIT TRANSACTION.
@tran_name_variable

Se trata del nombre de una variable definida por el usuario que contiene un nombre
de transaccin vlido. La variable debe declararse con un tipo de datos char,
varchar, nchar o nvarchar. Si se pasan ms de 32 caracteres a la variable, solo se
usarn 32 caracteres; el resto de los caracteres se truncarn.
DELAYED_DURABILITY
La opcin que solicita esta transaccin se confirma con la durabilidad diferida. Se
omitir la solicitud si la base de datos se ha modificado con
DELAYED_DURABILITY = DISABLED o DELAYED_DURABILITY = FORCED. Vea
el tema Controlar la durabilidad de las transacciones para obtener ms informacin.

ROLLBACK TRANSACTION
Revierte una transaccin explcita o implcita hasta el inicio de la transaccin o hasta
un punto

de retorno

dentro de la transaccin. Puede usar ROLLBACK

TRANSACTION para borrar todas las modificaciones de datos realizadas desde el


inicio de la transaccin o hasta un punto de retorno. Tambin libera los recursos que
mantiene la transaccin.
Sintaxis
ROLLBACK {TRAN | TRANSACTION}
[transaction_name | @tran_name_variable
| savepoint_name | @savepoint_variable]
[;]
transaction_name
Es

el

nombre

asignado

la

transaccin

en

BEGIN

TRANSACTION.

transaction_name debe ajustarse a las reglas para los identificadores, pero solo se
usan los 32 primeros caracteres del nombre de la transaccin. Cuando se anidan
transacciones, transaction_name debe ser el nombre de la instruccin BEGIN
TRANSACTION ms externa. transaction_name siempre distingue maysculas de
minsculas, incluso cuando la instancia de SQL Server no distingue maysculas de
minsculas.
@ tran_name_variable

Nombre de una variable definida por el usuario que contiene un nombre de


transaccin vlido. La variable se debe declarar con un tipo de datos char, varchar,
nchar o nvarchar.
savepoint_name
Es savepoint_name de una instruccin SAVE TRANSACTION. savepoint_name
debe ajustarse a las reglas para los identificadores. Utilice savepoint_name cuando
una operacin de reversin condicional solo deba afectar a parte de la transaccin.
@ savepoint_variable
Es el nombre de una variable definida por el usuario que contiene un nombre de
punto de retorno vlido. La variable debe declararse con un tipo de datos char,
varchar, nchar o nvarchar.
ROLLBACK TRANSACTION sin savepoint_name o transaction_name revierte
todas las instrucciones hasta el principio de la transaccin. Cuando se trata de
transacciones anidadas, esta misma instruccin revierte todas las transacciones
internas hasta la instruccin BEGIN TRANSACTION ms externa. En ambos casos,
ROLLBACK TRANSACTION disminuye la funcin del sistema @@TRANCOUNT a
0. ROLLBACK TRANSACTION savepoint_name no disminuye el valor de
@@TRANCOUNT.
ROLLBACK TRANSACTION no puede hacer referencia a un argumento
savepoint_name en transacciones distribuidas que se inician de forma explcita con
BEGIN DISTRIBUTED TRANSACTION o que se extienden desde una transaccin
local.

END TRANSACTION (Comando)


Finaliza la transaccin actual y guarda todos los cambios realizados a las tablas, a
los archivos memos de tablas o a los archivos de ndice incluido en una transaccin.
Sintaxis
END TRANSACTION

Las actualizaciones de la base de datos realizadas entre el BEGIN TRANSACTION


anterior y el END TRANSACTION se graban. Si la transaccin es la primera o la
nica (es decir, si no est anidada), los cambios se escriben el disco.
Si una transaccin est anidada, END TRANSACTION hace que se plieguen todas
las actualizaciones almacenadas en cach en el siguiente nivel superior de
transaccin. Anidar transacciones hace que sea posible sobrescribir los cambios
realizados en datos en un nivel superior de transaccin.
Si END TRANSACTION genera un error (por ejemplo, no hay espacio en disco
suficiente para escribir las modificaciones en el disco), los cambios realizados
durante la transaccin se cancelan y se termina la transaccin.

CONECTIVIDAD A LA BASE DE DATOS

Uno de los objetivos fundamentales de un sistema de informacin es contar


no slo con recursos de informacin, sino tambin con los mecanismos
necesarios para poder encontrar y recuperar estos recursos. De esta forma,
las bases de datos se han convertido en un elemento indispensable no slo
para el funcionamiento de los grandes motores de bsqueda y la recuperacin
de informacin a lo largo y ancho de la Web, sino tambin para la creacin de
sedes web, Intranets y otros sistemas de informacin en los que se precisa
manejar grandes o pequeos volmenes de informacin. La creacin de una
base de datos a la que puedan acudir los usuarios para hacer consultas y
acceder a la informacin que les interese es, pues, una herramienta
imprescindible de cualquier sistema informativo sea en red o fuera de ella.
Una base de datos es una coleccin de datos organizados y estructurados
segn un determinado modelo de informacin que refleja no slo los datos en
s mismos, sino tambin las relaciones que existen entre ellos. Una base de
datos se disea con un propsito especfico y debe ser organizada con una
lgica coherente. Los datos podrn ser compartidos por distintos usuarios y
aplicaciones, pero deben conservar su integridad y seguridad al margen de las
interacciones de ambos. La definicin y descripcin de los datos han de ser
nicas para minimizar la redundancia y maximizar la independencia en su
utilizacin.
En una base de datos, las entidades y atributos del mundo real, se convierten en registros y
campos. Estas entidades pueden ser tanto objetos materiales como libros o fotografas, pero

tambin personas e, incluso, conceptos e ideas abstractas. Las entidades poseen atributos y
mantienen relaciones entre ellas.

Los modelos clsicos de tratamiento de los datos son:


jerrquico: puede representar dos tipos de relaciones entre los datos: relaciones de uno a uno y
relaciones de uno a muchos. Este modelo tiene forma de rbol invertido en el que una rama
puede tener varios hijos, pero cada hijo slo puede tener un padre.
en red: Este modelo permite la representacin de muchos a muchos, de tal forma que cualquier
registro dentro de la base de datos puede tener varias ocurrencias superiores a l. El modelo de
red evita redundancia en la informacin, a travs de la incorporacin de un tipo de registro
denominado el conector. En el modelo en red se representa el mundo real mediante registros
lgicos que representan a una entidad y que se relacionan entre s por medio de flechas
relacional: Desde los aos 80 es el modelo ms utilizado, ya que permite una mayor eficacia,
flexibilidad y confianza en el tratamiento de los datos. La mayor parte de las bases de datos y
sistemas de informacin actuales se basan en el modelo relacional ya que ofrece numerosas
ventajas sobre los 2 modelos anteriores, como es el rpido aprendizaje por parte de usuarios
que no tienen conocimientos profundos sobre sistemas de bases de dados. En el modelo
relacional se representa el mundo real mediante tablas relacionadas entre s por columnas
comunes. Las bases de datos que pertenecen a esta categora se basan en el modelo
relaciones, cuya estructura principal es la relacin, es decir una tabla bidimensional compuesta
por lneas y columnas. Cada lnea, que en terminologa relacional se llama tupla, representa una
entidad que nosotros queremos memorizar en la base de datos. las caractersticas de cada
entidad estn definidas por las columnas de las relaciones, que se llaman atributos. Entidades
con caractersticas comunes, es decir descritas por el mismo conjunto de atributos, formarn
parte de la misma relacin.

Ejemplo de base de datos relacional


La arquitectura de un sistema de base de datos se basa en 3 niveles distintos:
nivel fsico: es el nivel ms bajo de abstraccin y el nivel real de los datos almacenados. Este
nivel define cmo se almacenan los datos en el soporte fsico, ya sea en registros o de
cualquier otra forma, as como los mtodos de acceso. Este nivel lleva asociada una
representacin de los datos, que es lo que denominamos Esquema Fsico.
nivel conceptual: es el correspondiente a una visin de la base de datos desde el punto de visto
del mundo real. Es decir se trata con la entidad u objeto representado, sin importar como est
representado o almacenado ste. Es la representacin de los datos realizada por la
organizacin, que recoge los datos parciales de los requerimientos de los diferentes usuarios y
aplicaciones parciales. Incluye la definicin de los datos y las relaciones entre ellos. Este nivel
lleva asociado un Esquema Conceptual.
nivel de visin: son partes del esquema conceptual. El nivel conceptual presenta toda la base
de datos, mientras que los usuarios, por lo general, slo tienen acceso a pequeas parcelas de
sta. El nivel visin es el encargado de dividir estas parcelas. Un ejemplo sera el caso del
empleado de una organizacin que tiene acceso a la visin de su nmina, pero no a la de sus
compaeros. El esquema asociado a ste nivel es el Esquema de Visin.

Niveles de la arquitectura de un sistema de base de datos


Este modelo de arquitectura permite establecer el principio de independencia de los datos, ya
se trate de una independencia lgica o fsica. La independencia lgica significa que los cambios
en el esquema lgico no deben afectar a los esquemas externos que no utilicen los datos
modificados; la independencia fsica significa que el esquema lgico no se va a ver afectado por
los cambios realizados en el esquema interno, correspondientes a modos de acceso, etc.

Fuente: Taller de Base de Datos.


Cada uno de los objetos anteriores contiene una coleccin de objetos Property. El
objeto Property permite a ADO mostrar dinmicamente las capacidades de un objeto especfico.
ADO permite disear sitios web que pueden acceder repetidamente a la misma base de datos
usando una misma bsqueda u otra similar. Se pueden compartir conexiones y esto significa
una menor carga de trabajo para el servidor de la base de datos, un tiempo de respuesta ms
rpida y ms accesos a pgina con xito.

Existe un componente llamado RDS (Remote Data Service) que ofrece el ambiente de Acceso
Universal a Datos, ya sea desde Internet o la Word Wide Web, creando un marco de trabajo que
permite una interaccin fcil y eficiente con los datos fuente OLE DB tanto en Intranets
corporativas o en Internet. RDS ofrece la ventaja de obtener por el lado del cliente resultados de
datos, actualizacin y soporte para controles ADO y ofrece el modelo de programacin OLE
DB/ADO para manipular datos de las aplicaciones del cliente.
JDBC
JDBC o Java Data Base Connectivity, creado por la empresa Sun, es la API estndar de acceso
a bases de datos con Java. Sun opt por crear una nueva API en lugar de utilizar ODBC,
porque esta ltima presentaba algunos problemas desde ciertas aplicaciones Java. ODBC es
una interfaz escrita en lenguaje C, que al no ser un lenguaje portable, haca que las
aplicaciones Java tambin perdiesen la portabilidad. Adems, ODBC ha de instalarse
manualmente en cada mquina, mientras que los controladores (drivers) JDBC que estn
escritos en Java son automticamente instalables y portables. El nivel de abstraccin al que
trabaja JDBC es ms alto que el de ODBC y, de esta forma, se pueden crear libreras de ms
alto nivel,
Para trabajar con JDBC es necesario tener controladores que permitan acceder a las distintas
bases de datos. Sin embargo, ODBC sigue siendo hoy en da la API ms popular para acceso a
Bases de Datos, por lo que: Sun se ha visto obligada a disear un puente que permite utilizar la
API de JDBC en combinacin con controladores ODBC.

Fuente: Taller de Base de Datos.


Las tecnologas que se emplea para la conectividad entre los datos y la aplicacin, se ha
convertido en un factor muy importante a la hora de desarrollar un proyecto web que cuente con
funcionalidad de acceso a datos. A continuacin se muestra un cuadro comparativo de las dos

tecnologas ms importantes en este sentido: ActiveX Data Objects (ADO) y Java Data Base
Connectivity (JDBC).

ADO

JDBC

Tecnologa elaborada por Microsoft


Tecnologa hecha por Sun Microsistems.
Tiene la principal funcin de realizar la
solicitud de los datos a la base de datos.

Tiene la funcin de ser un gestor para la


aplicacin con respecto a la base de datos.

Esta solicitud la realizar mediante la


tecnologa OLE DB, la cual estar en contacto Por primera vez el JDBC fue empleado,
tomando como intermediario entre l y la base
de manera directa con la base de datos.
de datos al ODBC.
La tecnologa OLE DB slo se emplear
cuando el DBMS pertenece de igual manera a Como modelo cliente/servidor, el JDBC se
encontrar trabajando en el equipo cliente,
Microsoft, como es SQL Server.
conectndose directamente con la base de
ADO encapsular a ciertos objetos de OLE
datos.
DB, para que de sta manera se realice la
Como modelo de tres capas, el JDBC se
conexin con la base de datos.
encontrar en una capa intermedia, donde
Para realizar la gestin de acceso a bases de todos los usuarios pasarn por l para poder
datos heterogneas por parte de ADO, ste
accesar a la base de datos.
har uso de ciertos objetos de la tecnologa
Existen mdulos JDBC que son propios de los
RDO (Remote Data Objects).
fabricantes de DBMS, que son utilizados para
RDO depender de los ODBCs para poder
el rpido acceso a la informacin de las bases
efectuar la conexin a la base de datos y con de datos de los mismos.
esto el acceso a la informacin.

ADO podr encontrarse trabajando en una


JDBC no se encontrar ligado a trabajar con
pgina web en conjunto con cdigo HTML;
alguna tecnologa en especfica, ya que se
esto ser posible mediante un mecanismo de elabor con la finalidad de ser portable.
introduccin de instrucciones como es el
En aplicaciones Web, JDBC se encontrar
VBScript.
laborando en conjunto con cdigo HTML,
Los objetos que conforman al ADO, no son
mediante el mecanismo del Java script.
compatibles con otros lenguajes, solo por
JDBC se elabor con la finalidad de poder ser
aquellos que pertenecen a la empresa
compatible y portable para poder ser empleado
Microsoft como son: Visual C++, Visual Basic,
en aplicaciones y para la conexin con bases
Visual Java, etc.
de datos.

Por ltimo, hay que destacar tambin una tecnologa llamada Web DB utilizada por algunos
servidores de bases de datos, con la cual, un usuario puede solicitar la informacin que requiera
y visualizarla a modo de respuesta en una pgina Web, que ser creada y elaborada por el
propio servidor de base de datos.
El proceso que comprende desde la solicitud a la visualizacin de la informacin, puede ser
representado de la siguiente manera:

CONTROLADORES ODBC
Open DataBase Connectivity (ODBC) es un estndar de acceso a las bases de
datos desarrollado por SQL Access Group en 1992. El objetivo de ODBC es hacer
posible el acceder a cualquier dato desde cualquier aplicacin, sin importar
qu sistema de gestin de bases de datos (DBMS) almacene los datos. ODBC logra

esto al insertar una capa intermedia (CLI) denominada nivel de Interfaz de Cliente
SQL, entre la aplicacin y el DBMS. El propsito de esta capa es traducir las
consultas de datos de la aplicacin en comandos que el DBMS entienda. Para que
esto funcione tanto la aplicacin como el DBMS deben ser compatibles con ODBC,
esto es que la aplicacin debe ser capaz de producir comandos ODBC y el DBMS
debe ser capaz de responder a ellos. Desde la versin 2.0 el estndar
soporta SAG y SQL.
El software funciona de dos modos, con un software manejador en el cliente, o una
filosofa cliente-servidor. En el primer modo, el driver interpreta las conexiones y
llamadas SQL y las traduce desde el API ODBC hacia el DBMS. En el segundo
modo para conectarse a la base de datos se crea una DSN dentro del ODBC que
define los parmetros, ruta y caractersticas de la conexin segn los datos que
solicite el creador o fabricante.
Java Database Connectivity (JDBC) es un derivado inspirado en el mismo,
una interfaz de programacin de aplicaciones que permite la ejecucin de
operaciones sobre bases de datos desde el lenguaje de programacin
Java independientemente del sistema operativo 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.

Anda mungkin juga menyukai