En informática , un nombre de fuente de datos ( DSN , a veces conocido como nombre de fuente de base de datos , aunque las " fuentes de datos " pueden comprender otros repositorios además de las bases de datos ) es una cadena que tiene una estructura de datos asociada que se utiliza para describir una conexión a una fuente de datos. Se usa con mayor frecuencia en conexión con ODBC , pero también existen DSN para JDBC y otros mecanismos de acceso a datos. El término a menudo se superpone con " cadena de conexión ". La mayoría de los sistemas no distinguen entre DSN y cadenas de conexión, y el término a menudo se puede usar indistintamente. [ 1 ]
Los atributos DSN pueden incluir, entre otros: [ 2 ]
- el nombre de la fuente de datos
- la ubicación de la fuente de datos
- el nombre de un controlador de base de datos que puede acceder a la fuente de datos
- un ID de usuario para acceder a los datos (si es necesario)
- una contraseña de usuario para acceder a los datos (si es necesario)
Por lo general, el administrador del sistema de una máquina cliente crea un DSN independiente para cada fuente de datos relevante.
La estandarización de los DSN ofrece un nivel de indirección ; diversas aplicaciones (por ejemplo: Apache / PHP e IIS / ASP ) pueden aprovechar esto para acceder a fuentes de datos compartidas.
Tipos de nombres de fuentes de datos
Existen dos tipos de DSN:
- DSN de máquina : almacenados en archivos de configuración colectiva (por ejemplo,
/etc/odbc.ini,~/.odbc.ini) y/o recursos del sistema (por ejemplo, Registro de WindowsHKLM\Software\ODBC\odbc.ini). - DSN de archivo : se almacenan en el sistema de archivos con un DSN por archivo.
Estos se subdividen en
- DSN del sistema : accesibles por todos y cada uno de los procesos y usuarios del sistema, almacenados en una ubicación centralizada (por ejemplo,
/etc/odbc.ini,/etc/odbc_file_dsns/<filename>). - DSN de usuario : accesibles solo por el usuario que creó el DSN, almacenados en una ubicación específica del usuario (por ejemplo,
~/.odbc.ini,~/odbc_file_dsns/<filename>).
Ejemplo de uso
Los usuarios de software (por ejemplo, Crystal Reports, Microsoft Excel, PHP, Perl, Python, Ruby) pueden enviar consultas CRUD (Crear, Leer, Actualizar, Eliminar) a una fuente de datos estableciendo una conexión con el DSN.
El código ASP ( VBScript ) para abrir una conexión DSN podría tener el siguiente aspecto:
Dim DatabaseObject1 Set DatabaseObject1 = Server . CreateObject ( "ADODB.Connection" ) DatabaseObject1 . Open ( "DSN=example;" )En PHP, al usar el paquete PEAR::DB para abrir una conexión sin un DSN externo (una "conexión sin DSN", es decir, usando una cadena de conexión) , el código podría ser similar al siguiente:
require_once ( "DB.php" ); //$dsn = "<driver>://<username>:<password>@<host>:<port>/<database>"; $dsn = "mysql://john:pass@localhost:3306/my_db" ; $db = DB :: connect ( $dsn );PHP con PDO: [ 3 ]
$dsn = "mysql:host=localhost;dbname=example" ; $dbh = new PDO ( $dsn , $username , $password );En Perl , utilizando el módulo Perl DBI , cada controlador tiene su propia sintaxis para los atributos DSN. El único requisito de DBI es que toda la información, excepto el nombre de usuario y la contraseña, se proporcione en un único argumento de cadena.
mi $dsn = "DBI:Pg:database=finance;host=db.example.com;port=$port" ; $dsn = "DBI:mysql:database=$database;host=$hostname;port=$port" ; $dsn = "DBI:Oracle:host=$host;sid=$sid;port=$port" ; $dsn = "DBI:SQLite:dbname=$dbfilename" ;mi $dbh = DBI -> connect ( $dsn , 'username' , 'password' );Véase también
Referencias
- Tecnologías de acceso a datos