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 incluir 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. Los DSN, que se utilizan con mayor frecuencia en relación con ODBC , también existen 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 o cadenas de conexión y, a menudo, el término se puede utilizar indistintamente. [1]
Los atributos DSN pueden incluir, entre otros: [2]
El administrador del sistema de una máquina cliente generalmente crea un DSN separado para cada fuente de datos relevante.
La estandarización de DSN ofrece un nivel de indirección ; varias aplicaciones (por ejemplo: Apache / PHP e IIS / ASP ) pueden aprovechar esto para acceder a fuentes de datos compartidas.
Existen dos tipos de DSN:
Estos se desglosan además en
/etc/odbc.ini
, //etc/odbc_file_dsns/<filename>
)/~/.odbc.ini
, /~/odbc_file_dsns/<filename>
)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 verse así:
Dim DatabaseObject1 Establezca 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 parecerse al siguiente
require_once ( "DB.php" ); //$dsn = "<controlador>://<nombre de usuario>:<contraseña>@<host>:<puerto>/<base de datos>"; $dsn = "mysql://john:contraseña@localhost:3306/mi_base_de_datos" ; $db = DB :: connect ( $dsn );
PHP con PDO.
$dsn = "mysql:host=localhost;dbname=ejemplo" ; $dbh = nuevo PDO ( $dsn , $nombreusuario , $contraseña );
En Perl , al utilizar el módulo Perl DBI , cada controlador tiene su propia sintaxis para los atributos DSN. El único requisito que establece 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=finanzas;host=db.example.com;puerto=$puerto" ; $dsn = "DBI:mysql:database=$basededatos;host=$nombrehost;puerto=$puerto" ; $dsn = "DBI:Oracle:host=$host;sid=$sid;puerto=$puerto" ; $dsn = "DBI:SQLite:dbname=$nombrearchivodb" ; mi $dbh = DBI -> connect ( $dsn , 'nombre de usuario' , 'contraseña' );