You are on page 1of 18

Tipos de usuarios

Usuarios normales. Son usuarios no sofisticados que interactan con el sistema mediante un
programa de aplicacin con una interfaz de formularios, donde puede rellenar los campos apropiados
del formulario. Estos usarios pueden tambin simplemente leer informes generados de la base de
datos.
Programadores de aplicaciones. Son profesionales informticos que escriben los programas de
aplicacin, utilizando herramientas para desarrollar interfaces de usuario, como las herramientas
de desarrollo rpido de aplicaciones (DRA), que facilitan crear los formularios e informes sin
escribir directamente el programa.
Usuarios sofisticados. Interactan con el sistema sin programas escritos, usando el lenguaje de
consulta de base de datos para hacer sus consultas. Los analistas que envan las consultas para
explorar los datos en la base de datos entran en esta categora, usando ellos las herramientas
de procesamiento analtico en lnea (OLAP, OnLine Analytical Processing), o herramientas
de recopilacin de datos.
Usuarios especializados. Son usuarios sofisticados que escriben aplicaciones de bases de datos
especializadas y adecuadas para el procesamiento de datos tradicional. Entre estas aplicaciones estn
los sistemas de diseo asistido por computadora, sistemas de base de conocimientos y sistemas
expertos, sistemas que almacenan datos de tipos de datos complejos (como grficos y de audio) y
sistemas de modelado de entorno.
Administradores de la base de datos (ABD). Son las personas que tienen el control central del
SGBD. Entre las funciones del ABD se encuentran:

Definicin del esquema de la base de datos.

Definicin de la estructura y el mtodo de acceso.

Modificacin del esquema y la organizacin fsica.

Concensin de autorizacin para el acceso a los datos.

Mantenimiento rutinario.

Tipos de Usuarios en Base de Datos

Usuario Final: es la persona que utiliza los datos, esta persona ve datos convertidos en
informacin:

Desarrollador de Aplicaciones: es la persona que desarrolla los sistemas que


interactun con la Base de Datos.

DBA: es la persona que asegura integridad, consistencia, redundancia, seguridad este


es el Administrador de Base de Datos quien sed encarga de realizar el mantenimiento diario
o peridico de los datos.

Las personas tienen acceso DBMS se clasifican de la siguiente manera:


USUARIOS INGENUOS. Son aquellos que interactuan con el sistema por medio de
aplicaciones permanentes.
USUARIOS SOFISTICADOS.- son aquellos con la capacidad de acceder a la informacin
por medios de lenguajes de consulta.
PROGRAMADORES DE APLICACIN.- son aquellos con un amplio dominio del DML capaces
de generar nuevos mdulos o utilerias capaces de manejar nuevos datos en el sistema.
USUARIOS ESPECIALIZADOS.- son aquellos que desarrollan mdulos que no se refieren
precisamente al manejo de los datos, si no a aplicaciones avanzadas como sistemas expertos,
reconocimientos de imgenes, procesamiento de audio y dems.

Cmo funciona el sistema de privilegios


El sistema de privilegios de MySQL asegura que todos los usuarios pueden ejecutar slo la
operacin permitida a los mismos. Como usuario, cuando conecta a un servidor MySQL, su
identidad se determina mediante el equipo desde el que se conecta y el nombre de usuario
que especifique. Cuando efecte peticiones tras conectar, el sistema le otorga privilegios
acorde a su identidad y lo que quiera hacer.
MySQL considera tanto su nombre de usuario y su equipo a la hora de identificarle, ya que no
hay razn para asumir que un nombre de usuario pertenece a la misma persona en cualquier

sitio de Internet. Por ejemplo, el usuario joe que conecta desde office.com no tiene porqu
ser la misma persona que el usuario joe que conecta desde elsewhere.com. MySQL trata
esto permitiendole distinguir usuarios en diferentes equipos que tienen el mismo nombre.
Puede otorgar un conjunto de privilegios para conexiones de joe desde office.com, y un
conjunto distinto para conexiones de joe desde elsewhere.com.
El control de acceso de MySQL implica dos etapas:

Etapa 1: El servidor comprueba si debe permitirle conectarse.

Etapa 2: Asumiendo que se conecta, el servidor comprueba cada comando que


ejecuta para ver si tiene suficientes permisos para hacerlo. Por ejemplo, si intenta
seleccionar registros de una tabla en una base de datos o eliminar una tabla de la base de
datos, el servidor verifica que tenga el permiso SELECT para la tabla o el
permiso DROP para la base de datos.
Si sus permisos cambian (por usted mismo o alguien distinto) mientras est conectado, estos
cambios no tienen porqu tener efecto inmediatamente para el siguiente comando que
ejecute. Consulte Seccin 5.6.7, Cundo tienen efecto los camios de privilegios para ms
detalles.
El servidor guarda informacin de privilegios en las tablas de permisos de la base de
datos mysql (esto es, en la base de datos llamada mysql). El servidor MySQL lee el
contenido de dichas tablas en memoria cuando arranca y las vuelve a leer bajo las
circunstancias indicadas en Seccin 5.6.7, Cundo tienen efecto los camios de privilegios.
Las decisiones acerca de control de acceso se basan en las copias en memoria de las tablas
de permisos.
Normalmente, manipula los contenidos de las tablas de permisos indirectamente usando los
comandos GRANT yREVOKE para configurar cuentas y controlar los privilegios disponibles para
cada una. Consulte Seccin 13.5.1.3, Sintaxis de GRANT y REVOKE. La discusin aqu
describe la estructura subyacente de las tablas de permisos y cmo el servidor usa sus
contenidos cuando interacta con clientes.
El servidor usa las tablas user, db, y host en la base de datos mysql en ambas etapas de
control de acceso. Las columnas en estas tablas de permisos se muestran a continuacin:
Nombre
tabla

user

Alcance
columnas Host
User

db

host

Host

Host

Db

Db

Columna
s
privilegio
s

Password

User

Select_priv

Select_priv

Select_priv

Insert_priv

Insert_priv

Insert_priv

Update_priv

Update_priv

Update_priv

Delete_priv

Delete_priv

Delete_priv

Index_priv

Index_priv

Index_priv

Alter_priv

Alter_priv

Alter_priv

Create_priv

Create_priv

Create_priv

Drop_priv

Drop_priv

Drop_priv

Grant_priv

Grant_priv

Grant_priv

Create_view_priv

Create_view_priv

Create_view_priv

Show_view_priv

Show_view_priv

Show_view_priv

Create_routine_priv

Create_routine_priv

Alter_routine_priv

Alter_routine_priv

References_priv

References_priv

References_priv

Reload_priv
Shutdown_priv
Process_priv
File_priv
Show_db_priv
Super_priv
Create_tmp_table_pri Create_tmp_table_pri Create_tmp_table_pri
v
v
v
Lock_tables_priv
Execute_priv
Repl_slave_priv
Repl_client_priv
Columna
s
seguridad ssl_type
ssl_cipher
x509_issuer
x509_subject
Columna

max_questions

Lock_tables_priv

Lock_tables_priv

s
recursos
control
max_updates
max_connections
max_user_connections
Execute_priv se present en MySQL 5.0.0, pero no fue operacional hasta MySQL 5.0.3.

Las columnas Create_view_priv y Show_view_priv se aadieron en MySQL 5.0.1.


Las columnas Create_routine_priv, Alter_routine_priv,
y max_user_connections se aadieron en MySQL 5.0.3.
Durante la segunda etapa de control de acceso, el servidor efecta una verificacin de peticin
para asegurar que cada cliente tiene suficientes privilegios para cada peticin que recibe.
Adicionalmente las tablas de permisosuser, db, y host , el servidor puede consultar las
tablas tables_priv y columns_priv para peticiones que impliquen tablas. Las
tablas tables_priv y columns_priv proveen de un control de privilegios ms fino a nivel de
tabla y columna. Tienen las siguientes columnas:
Nombre tabla

tables_priv

columns_priv

Alcance de columnas

Host

Host

Db

Db

User

User

Table_name

Table_name
Column_name

Columnas privilegios

Table_priv

Column_priv

Column_priv
Otras columnas

Timestamp

Timestamp

Grantor

Las columnas Timestamp y Grantor actualmente no se usan y no se discuten ms en esta


seccin.
Para verificacin de peticiones que impliquen rutinas almacenadas, el servidor puede
consultar la tablaprocs_priv. Esta tabla tiene las siguientes columnas:
Nombre tabla

procs_priv

Alcance de columnas

Host
Db
User
Routine_name

Routine_type
Columnas privilegios

Proc_priv

Otras columnas

Timestamp
Grantor

La tabla procs_priv existe desde MySQL 5.0.3. La columna Routine_type se aadi en


MySQL 5.0.6. Hay una columna ENUM con valores de 'FUNCTION' o 'PROCEDURE' para
indicar el tipo de rutina a que se refiere el registro. Esta columna permite que los privilegios se
otorgen separadamente para una funcin y para un procedimiento con el mismo nombre.
Las columnas Timestamp y Grantor no se usan actualmente y no se discuten ms aqu.
Cada tabla de permisos contiene columnas de alcance y columnas de privilegios:
Las columnas de alcance determinan el alcance de cada entrada (registro) en las

tablas; esto es, el contexto en que el registro se aplica. Por ejemplo, un registro de la
tabla user con los valores Host y User de'thomas.loc.gov' y 'bob' se usaran para
autenticar conexiones hechas al servidor desde el equipothomas.loc.gov por un cliente
que especifique un nombre de usuario de bob. De forma similar, un registro de la
tabla db con las columnas Host, User, y Db con
valores 'thomas.loc.gov', 'bob' y 'reports' se usara cuando bob conectase desde
el equipo thomas.loc.gov para acceder a la base de datos reports . Las
tablastables_priv y columns_priv contienen columnas de alcance indicando tablas o
combinaciones de tabla/columna para las que cada registro se aplica. La columna de
alcance procs_priv indica la rutina de almacenamiento que se aplica a cada registro.
Las columnas de privilegios indican qu privilegios se otorgan a un registro de la

tabla; esto es, qu operaciones pueden ejecutarse. El servidor combina la informacin de


diversas tablas de permisos para tener una descripcin completa de los permisos de un
usuario. Las reglas usadas para ello se describen en Seccin 5.6.6, Control de acceso,
nivel 2: comprobacin de solicitudes.
Las columnas de alcance contienen cadenas de caracteres. Se declaran tal y como se
muestra a continuacin; el valor por defecto es la cadena de caracteres vaca:
Nombre de columna

Tipo

Host

CHAR(60)

User

CHAR(16)

Password

CHAR(16)

Db

CHAR(64)

Table_name

CHAR(64)

Column_name

CHAR(64)

Routine_name

CHAR(64)

Con propsito de chequeos de acceso, las comparaciones de los valores de Host no tienen
en cuenta maysculas y minsculas. Los valores de User, Password, Db, y Table_name son
sensibles a maysculas y minsuclas. Los valores de Column_name no son sensibles a
maysculas y minsculas.
En las tablas user, db, y host , cada privilegio se lista en una columna separada que se
declara comoENUM('N','Y') DEFAULT 'N'. En otras palabras, cada privilegio puede estar
desactivado o activado, estando desactivados por defecto.
En las tablas tables_priv, columns_priv, and procs_priv , las columnas de privilegios se
declaran como columnas de tipo SET. Los valores en estas columnas pueden contener
cualquier combinacin de los privilegios controlados por la tabla:
Nombre de
tabla

Nombre de
columna

Posible conjunto de elementos

tables_priv

Table_priv

'Select', 'Insert', 'Update', 'Delete',


'Create', 'Drop', 'Grant', 'References',
'Index', 'Alter'

tables_priv

Column_priv

'Select', 'Insert', 'Update', 'References'

columns_priv Column_priv

'Select', 'Insert', 'Update', 'References'

procs_priv

'Execute', 'Alter Routine', 'Grant'

Proc_priv

Brevemente, el servidor usa las tablas de permisos como sigue:

Las columnas de alcance de la tabla user determinan si se rechazan o permiten


conexiones entrantes. Para conexiones permitidas, cualquier privilegio otorgado en la
tabla user indica los privilegios globales del usuario (superusuario). Estos privilegios se
aplican a todas las bases de datos en el servidor.

Las columnas de alcance de la tabla db determinan qu usuarios pueden acceder a


qu bases de datos desde qu equipo. La columna de privilegios determina qu
operaciones se permiten. Un privilegio otorgado a nivel de base de datos se aplica a la
base de datos y a todas sus tablas.

La tabla host se usa en conjuncin con la tabla db cuando desea que un registro de
la tabla db se aplique a varios equipos. Por ejemplo, si queiere que un usuario sea capaz
de usar una base de datos desde varios equipos en su red, deje el valor Host vaco en el
registro de usuario de la tabladb , luego rellene la tabla hostcon un registro para cada uno
de estos equipos. Este mecanismo se describe con mayor detalle enSeccin 5.6.6, Control
de acceso, nivel 2: comprobacin de solicitudes.

Nota: La tabla host no se ve afectada por los comandos GRANT ni REVOKE . La mayora de
instalaciones MySQSL no necesitan usar esta tabla en absoluto.

Las tablas tables_priv y columns_priv son similares a la tabla db , pero son ms


detalladas: se aplican a nivel de tabla y de columna en lugar de a nivel de base de datos.
Un privilegio otorgado a nivel de tabla se aplica a la tabla y a todas sus columnas. Un
privilegio otorgado a nivel de columna se aplica slo a la columna especificada.

La tabla procs_priv se aplica a rutinas almacenadas. Un privilegio otorgado a nivel


de rutina se aplica slo a una nica rutina.
Permisos administrativos (tales como RELOAD o SHUTDOWN) se especifican slo en la
tabla user . Esto es debido a que las operaciones administrativas son operaciones del propio
servidor y no especficas de bases de datos, as que no hay ninguna razn para listar estos
privilegios en las otras tablas de permisos. De hecho, para determinar si puede realizar una
operacin administrativa, el servidor slo necesita consultar la tabla user.
El privilegio FILE tambin se especifica slo en la tabla user . No es un privilegio
administrativo como tal, pero la habilidad de leer o escribir archivos en el equipo servidor es
independiente de las bases de datos a las que acceda.
El servidor mysqld lee los contenidos de las tablas de permisos en memoria cuando arranca.
Puede decirle que las vuelva a leer mediante el comando FLUSH PRIVILEGES o ejecutando
los comandos mysqladmin flush-privileges o mysqladmin reload . Los cambios en las
tablas de permisos tienen efecto como se indica enSeccin 5.6.7, Cundo tienen efecto los
camios de privilegios.
Cuando modifica los contenidos de las tablas de permisos, es una buena idea asegurarse que
sus cambios configuran permisos tal y como desea. Para consultar los permisos de una
cuenta dada, use el comando SHOW GRANTS . Por ejemplo, para determinar los permisos que
se otorgan a una cuenta con valores Host y User depc84.example.com y bob, use este
comando:
mysql> SHOW GRANTS FOR 'bob'@'pc84.example.com';
Una herramienta de diagnstico til es el script mysqlaccess , proporcionado por Yves Carlier
para la distribucin MySQL. Invoque mysqlaccess con la opcin --help para ver cmo
funciona. Note quemysqlaccess chequea acceso usando slo las tablas user, db, y host .
No chequea los privilegios de tabla, columna, o rutina especificados en las
tablas tables_priv, columns_priv, o procs_priv.

Transacciones (motor de
la base de datos)
Una transaccin es una secuencia de operaciones realizadas como una sola unidad
lgica de trabajo. Una unidad lgica de trabajo debe exhibir cuatro propiedades,
conocidas como propiedades de atomicidad, coherencia, aislamiento y durabilidad
(ACID), para ser calificada como transaccin.
Atomicidad
Una transaccin debe ser una unidad atmica de trabajo, tanto si se realizan
todas sus modificaciones en los datos, como si no se realiza ninguna de ellas.
Coherencia
Cuando finaliza, una transaccin debe dejar todos los datos en un estado
coherente. En una base de datos relacional, se deben aplicar todas las reglas a
las modificaciones de la transaccin para mantener la integridad de todos los
datos. Todas las estructuras internas de datos, como ndices de rbol b o listas
doblemente vinculadas, deben estar correctas al final de la transaccin.
Aislamiento
Las modificaciones realizadas por transacciones simultneas se deben aislar de
las modificaciones llevadas a cabo por otras transacciones simultneas. Una
transaccin reconoce los datos en el estado en que estaban antes de que otra
transaccin simultnea los modificara o despus de que la segunda transaccin
haya concluido, pero no reconoce un estado intermedio. Esto se conoce como
seriabilidad, ya que deriva en la capacidad de volver a cargar los datos iniciales
y reproducir una serie de transacciones para finalizar con los datos en el mismo
estado en que estaban despus de realizar las transacciones originales.
Durabilidad
Una vez concluida una transaccin, sus efectos son permanentes en el sistema.
Las modificaciones persisten an en el caso de producirse un error del sistema.

Especificar y exigir transacciones


Los programadores de SQL son los responsables de iniciar y finalizar las transacciones
en puntos que exijan la coherencia lgica de los datos. El programador debe definir la
secuencia de modificaciones de datos que los dejan en un estado coherente en relacin
con las reglas de negocios de la organizacin. El programador incluye estas
instrucciones de modificacin en una sola transaccin de forma que SQL Server
Database Engine (Motor de base de datos de SQL Server) puede hacer cumplir la
integridad fsica de la misma.

Es responsabilidad de un sistema de base de datos corporativo, como una instancia de


Motor de base de datos, proporcionar los mecanismos que aseguren la integridad fsica
de cada transaccin. Motor de base de datos proporciona:
Servicios de bloqueo que preservan el aislamiento de la transaccin.
Servicios de registro que aseguran la durabilidad de la transaccin. Aunque se
produzca un error en el hardware del servidor, el sistema operativo o la
instancia de Motor de base de datos, la instancia utiliza registros de
transacciones, al reiniciar, para revertir automticamente las transacciones
incompletas al punto en que se produjo el error del sistema.
Caractersticas de administracin de transacciones que exigen la atomicidad y
coherencia de la transaccin. Una vez iniciada una transaccin, debe concluirse
correctamente; en caso contrario, la instancia de Motor de base de datos
deshar todas las modificaciones de datos realizadas desde que se inici la
transaccin.

Transacciones de la Base de datos


El servidor de Oracle garantiza la consistencia de los datos con base en
transacciones. Las transacciones proporcionan mayor flexibilidad y control
cuando los datos cambian y ello asegura la consistencia de los datos en el
caso de un fallo en el proceso del usuario o del sistema.
Las transacciones consisten de sentencias DML que componen un cambio
consistente en los datos. Por ejemplo, una transferencia de fondos entre dos
cuentas debe incluir el debito de una cuenta y el crdito a otra cuenta en la
misma cantidad. En su conjunto ambas acciones deben fallar o triunfar; el
crdito no se debe cometer sin el dbito.

Tipos de transacciones
Tipo Descripcin
Lenguaje de Manipulacin de
Datos (DML Data manipulation

Language)
Consiste de cualquier nmero de sentencias DML que el
servidor de Oracle trate como una sola entidad o una unidad
lgica de trabajo
Lenguaje de Definicin de datos
(DDL Data Definition Language)
Consiste de solo una sentencia DDL
Lenguaje de Control de Datos
(DCL Data Control Language)
Consiste de solo una sentencia DCL

Cuando inicia y finaliza una transaccin?


Una transaccin inicia cuando la primera sentencia DML es encontrada y
finaliza cuando ocurre alguno de los siguientes puntos:
Una sentencia COMMIT o ROLLBACK es usada
Una sentencia DDL, como CREATE es utilizada
Una sentencia DCL es usada
El usuario sale de iSQL*Plus
Una computadora falla o el sistema falla

Despus de que una transaccin finaliza, la siguiente sentencia SQL ejecutada


automticamente inicia la siguiente transaccin.
Una sentencia DDL o DCL es automticamente completada y por consiguiente
implcitamente finaliza una transaccin.

Qu es el ODBC?
Open Data Base Conectivity

O lo que es lo mismo, conectividad abierta de bases de datos. Si escribimos


una aplicacin para acceder a las tablas de una DB de Access, qu ocurrir si
despus queremos que la misma aplicacin, y sin reescribir nada, utilice tablas de
SQL Server u otra DB cualquiera? La respuesta es sencilla: no funcionar.
Nuestra aplicacin, diseada para un motor concreto, no sabr dialogar con el
otro. Evidentemente, si todas las DB funcionaran igual, no tendramos este
problema.... aunque eso no es probable que ocurra nunca.
Pero si hubiera un elemento que por un lado sea siempre igual, y por el otro sea
capaz de dialogar con una DB concreta, solo tendramos que ir cambiando este
elemento, y nuestra aplicacin siempre funcionara sin importar lo que hay al otro
lado... algo as como ir cambiando las boquillas de una manguera. A esas piezas
intercambiables las llamaremos orgenes de datos de ODBC
Casi todas las DB actuales tienen un ODBC. Debido a que este elemento impone
ciertas limitaciones, ya que no todo lo que la DB sabe hacer es compatible con la
aplicacin, como velocidad de proceso, tiempos de espera, mxima longitud de
registro, nmero mximo de registros, versin de SQL, etc., est cayendo en
desuso a cambio de otras tcnicas de programacin, pero an le quedan muchos
aos de buen servicio.
Todo lo referido aqu funciona con Windows NT Server 4.0 con el Service Pack 4
o superior instalado (el ltimo publicado es el 6). El Option Pack 4 para
actualizar el IIS y las extensiones ASP. SQL Server 6.5 y Access 97. Por
supuesto, tambin funciona con las versiones modernas de servidores como 2003
Server, y tambin XP PRO, que lleva un IIS 5.0 de serie. Igualmente es posible
utilizar bases de datos de Access 2000 o 2003.
Esas otras tcnicas de programacin antes mencionadas, se utilizan ya en el
nuevo Windows 2003, Office 2003 y SQL Server 2000, que adems de ODBC
pueden utilizar.... pero esa es otra historia.

Esta es la idea: por un lado el ODBC provee de unas caracteristicas siempre


homogneas, y por el otro permite distintos controladores que aseguran la
conectividad de la aplicacin con diferentes bases de datos.

Conectividad abierta de bases de datos (ODBC) es la interfaz estratgica de Microsoft


para obtener acceso a datos en un entorno heterogneo de relacional y norelacionales, sistemas de administracin de base de datos. Basado en la especificacin
de interfaz de nivel de llamada del grupo de acceso SQL, ODBC proporciona una forma
abierta, independiente del proveedor de acceso a datos almacenados en una variedad
de equipo propietario, minicomputadoras y bases de datos de mainframe.
ODBC alivia la necesidad de proveedores de software independientes y los
programadores corporativos a aprender mltiples interfaces de programacin de
aplicaciones. ODBC proporciona ahora una interfaz de acceso a datos universal. Con
ODBC, los desarrolladores de aplicaciones pueden permitir que una aplicacin para
obtener acceso al mismo tiempo, ver y modificar datos procedentes de varios diversas
bases de datos.
ODBC es un componente bsico de la arquitectura de servicios abiertos de Microsoft
Windows. Apple ha respaldado ODBC como clave de habilitacin de la tecnologa
anunciando soporte en System 7 en el futuro. Con soporte en la creciente industria,
ODBC es rpidamente como un sector importante estndar emergente para acceso a
datos para aplicaciones de Windows y Macintosh.

ADO.NET
ADO.NET es un conjunto de clases que exponen servicios de acceso a datos para
programadores de .NET Framework. ADO.NET ofrece abundancia de componentes para
la creacin de aplicaciones de uso compartido de datos distribuidas. Constituye una
parte integral de .NET Framework y proporciona acceso a datos relacionales, XML y de
aplicaciones. ADO.NET satisface diversas necesidades de desarrollo, como la creacin
de clientes de base de datos front-end y objetos empresariales de nivel medio que
utilizan aplicaciones, herramientas, lenguajes o exploradores de Internet.

ADO .NET y XML


XML se ha convertido en la piedra angular de la informtica distribuida de nuestros das. De
ah que mucho de la redefinicin del API de ADO se deba a la adaptacin de los objetos a un
modelo de procesos que se apoya en documentos XML, no en objetos especficos de cada
plataforma a partir de cursores. Esto permite que las clases de ADO .NET puedan implementar
mecanismos de conversin de datos entre plataformas, lectura de datos de cualquier origen,
habilitar mecanismos de persistencia en el mismo formato en el que se procesan., etc.
En esta redefinicin, Microsoft ha puesto como intermediario entre un cliente y sus datos, un
adaptador que transforma cada comando y cada dato enmodelos de documentos XML. Tanto
para consultas como para actualizaciones. Y esto es lo que posibilita la nueva filosofa de acceso
a datos desconectados de ADO .NET: primero se cargan en el cliente los documentos necesarios
almacenndolos en DataSet a partir de consultas a tablas, vistas, procedimientos, etc, se nos
da la posibilidad de trabajar con documentos sin necesidad de estar continuamente
consumiendo recursos de la red, y por ltimo se procesarn los cambios producidos
envindolos a la base de datos, el adaptador coger los cambios del documento, y los replicar
al servidor. En la Figura 2 se puede ver un esquema de la relacin entre ADO .NET y XML.

Una visin general de ADO .NET


Esta es la nueva versin del modelo de objetos ADO (ActiveX Data Objects), es decir, la
estrategia que ofrece Microsoft para el acceso a datos dentro de la plataforma .NET.
ADO .NET. al igual que suceda con ASP .NET, en las primeras versiones de la plataforma .NET
se denominaba ADO+.

ADO .NET ha sido ampliado para cubrir todas las necesidades que ADO no ofreca, ADO .NET
est diseado para trabajar con conjuntos de datos desconectados, lo que permite reducir el
trfico de red.
ADO .NET utiliza XML como formato universal de transmisin de los datos.
ADO .NET posee una serie de objetos que son los mismos que aparecen en la versin anterior
de ADO, como pueden ser el objeto Connection o Command, e introduce nuevos objetos tales
como el objeto DataReader, DataSet o DataView. A continuacin vamos a comentar
brevemente los objetos principales que posee ADO
NET.
Los espacios con nombre que utiliza ADO .NET principalmente
son System.Data y System.Data.OleDb o System.Data.SqlClient. System.Data ofrece
las facilidades de codificacin para el acceso y manejo de datos, y System.Data.OleDb y
System.Data.SqlClient contienen los proveedores, en el primer caso los proveedores genricos
de OLE DB y en el segundo los proveedores nativos de SQL Server que ofrece la plataforma
.NET.
El objeto Connection define como se establece la conexin con el almacn de datos, el .NET
Framework ofrece dos objetos Connection:SqlConnection y OleDbConnection, que se
corresponde con las dos posibilidades de proveedores que disponemos.
Otro objeto importante dentro del modelo de objetos de ADO .NET es el
objeto System.Data.DataSet (conjunto de datos), este nuevo objeto representa un conjunto
de datos de manera completa, pudiendo incluir mltiples tablas junto con sus relaciones. No
debemos confundir el nuevo objeto DataSet con el antiguo objeto Recordset, el objeto
DataSet contiene un conjunto de tablas y las relaciones entre las mismas, sin embargo el objeto
Recordset contiene nicamente una tabla. Para acceder a una tabla determinada el objeto
DataSet ofrece la coleccin Tables.
Para poder crear e inicializar las tablas del DataSet debemos hacer uso del objeto DataAdapter,
que posee las dos versiones, es decir, el objetoSqlDataAdapter para SQL Server
y OleDbDataAdapter genrico de OLE DB.
Al objeto DataAdapter le pasaremos por parmetro una cadena que representa la consulta que
se va a ejecutar y que va a rellenar de datos el DataSet. Del objeto DataAdapter utilizaremos
el mtodo Fill(), que posee dos parmetros, el primero es una cadena que identifica el
objeto DataTable (tabla)que se va a crear dentro del objeto DataSet como resultado de la
ejecucin de la consulta y el segundo parmetro es el objeto DataSet en el que vamos a recoger
los datos.
Un DataSet puede contener diversas tablas, que se representan mediante objetos DataTable.
Para mostrar el contenido de un DataSet, mediante Data Binding, por ejemplo, necesitamos el
objeto DataView. Un objeto DataView nos permite obtener un subconjunto personalizado de

los datos contenidos en un objeto DataTable. Cada objeto DataTable de un DataSet posee
la propiedad DefaultView que devuelve la vista de los datos por defecto de la tabla.
Otro objeto de ADO .NET es el objeto DataReader, que representa un cursor de slo lectura y
que slo permite movernos hacia adelante (read-only/forward-only), cada vez que existe un
nico registro en memoria, el objeto DataReader mantiene abierta la conexin con el origen de
los datos hasta que es cerrado. Al igual que ocurra con otros objetos de ADO .NET, de este
objeto tenemos dos versiones, y que son los objetos SqlDataReadery OleDbDataReader.

Las clases de ADO .NET


System.Data: clases genricas de datos de ADO .NET, integra la gran mayora de clases que
habilitan el acceso a los datos de la arquitectura .NET.
System.Data.SqlClient: clases del proveedor de datos de SQL Server, permiten el acceso a
proveedores
SQL Server en su versin 7.0 y superior.
System.Data.OleDb: clases del proveedor de datos de OleDB, permiten el acceso a
proveedores .NET que trabajan directamente contra controladores basados en los ActiveX de
Microsoft.
System.Data.SqlTypes: definicin de los tipos de datos de SQL Server, proporciona la
encapsulacin en clases de todos los tipos de datos nativos de SQL Server y sus funciones de
manejo de errores, ajuste y conversin de tipos, etc.
System.Data.Common: clases base, reutilizables de ADO .NET, proporcionan la coleccin
de clases necesarias para acceder a una fuente de datos (como por ejemplo una Base de Datos).
System.Data.Internal: integra el conjunto de clases internas de las que se componen los
proveedores de datos.
Dentro del espacio de nombres System.Data encontramos las clases compartidas que
constituyen el eje central de ADO.NET, y son las siguientes:
DataSet: almacn de datos por excelencia en ADO .NET. Representa una base de datos
desconectada del proveedor de datos. Almacena tablas y sus relaciones.
DataTable: un contenedor de datos. Estructurado como un conjunto de filas (DataRow) y
columnas
(DataColumn).
DataRow: registro que almacena n valores. Representacin en ADO .NET de una fila de una
tabla de la base de datos.

DataColumn: contiene la definicin de una columna. Metadatos y datos asociados a


su dominio.
DataRelation: enlace entre dos o ms columnas iguales de dos o ms tablas.
Constraint: reglas de validacin de las columnas de una tabla.
DataColumnMapping: vnculo lgico existente entre una columna de un objeto del DataSet
y la columna fsica de la tabla de la base de datos.
DataTableMapping: vnculo lgico existente entre una tabla del DataSet y la tabla fsica de la
base de datos.
Adems de estas clases, existe otro grupo de clases, las clases especficas de un proveedor de
datos. Estas clases forman parte de lo especfico de un fabricante de proveedores de datos
.NET. Tienen una sintaxis de la forma XxxClase donde "Xxx" es un prefijo que determina el
tipo de plataforma de conexin a datos. Se definen en dos
NameSpaces: System.Data.SqlClient y System.Data.OleDb.
En la siguiente tabla se ofrece una descripcin de las clases que podemos encontrar en estos
espacios de nombres.
Clase Descripcin SqlConnection Clase que representa la etapa de conexin a un proveedor
OleDbConnection de datos. Encapsula la seguridad, pooling de conexiones,
etc.
SqlCommand Clases que representan un comando SQL contra un
OleDbCommand sistema gestor de datos.
SqlCommandBuilder Generador de comandos SQL de insercin, modificacin y
OleDbCommandBuilder borrado desde una consulta SQL de seleccin de datos.
SqlDataReader Un lector de datos de slo avance, conectado a la base de
OleDbDataReader datos.
SqlDataAdapter Clase adaptadora entre un objeto DataSet y sus
OleDbDataAdapter operaciones fsicas en la base de datos (select,insert,update y delete).
SqlParameter Define los parmetros empleados en la llamada a
OleDbParameter procedimientos almacenados.
SqlTransaction Gestin de las transacciones a realizar en la base de datos. OleDbTransaction

Para aquellos conocedores de ADO en alguna de sus versiones anteriores podemos hacer una
analoga o comparacin entre las antiguas clases de ADO y las nuevas de ADO .NET, en la
Figura 3 se puede ver esta aproximacin.

Bibliografa
http://uvfdatabases.wordpress.com/2009/02/07/tipos-de-usuarios-de-la-basede-datos/

http://www.monografias.com/trabajos34/base-de-datos/base-dedatos.shtml#tipos

http://dev.mysql.com/doc/refman/5.0/es/privileges.html

http://technet.microsoft.com/es-es/library/ms190612(v=sql.105).aspx
http://www.itescam.edu.mx/principal/sylabus/fpdb/recursos/r23110.PDF
http://www.uv.es/jac/guia/gestion/gestion3.htm
http://support.microsoft.com/kb/110093/es
http://msdn.microsoft.com/es-es/library/e80y5yhx(v=vs.110).aspx
http://www.monografias.com/trabajos93/ado-net-idat/ado-netidat.shtml#adonetyxma