Upload
jose-antonio-sandoval-acosta
View
177
Download
7
Embed Size (px)
Citation preview
TECNOLÓGICO NACIONAL DE MÉXICOIngeniería en Sistemas Computacionales
Programación de Base de DatosUnidad I: Conexión a la base de datos con un lenguaje de
programación actualizado
Material de clase desarrollado para la asignatura de Programación de Base de Datospara Ingeniería en Sistemas Computacionales
PROGRAMACIÓN DE BASE DE DATOS
PROGRAMACIÓN DE BASE DE DATOS
Competencia:• Desarrollar una base de datos con un lenguaje de programación.
Introducción
• En la actualidad los lenguajes de programación no traen incorporada una base de datos, por tal motivo es necesario conectar el lenguaje de programación con Sistema Gestor de Base de Batos.
PROGRAMACIÓN DE BASE DE DATOS
String de Conexión
• Es una cadena de texto que conecta al lenguaje de programación con el gestor de base de datos seleccionado.
PROGRAMACIÓN DE BASE DE DATOS
Elementos de la cadena de conexión
Provider: Establece el nombre del proveedor para la conexión (sólo aplica para OleDBConnection).Connection Timeout: Establece el tiempo en segundos para esperar a una conexión antes de terminar el intento y generar una excepción, por omisión es 15.Initial Catalog: El nombre de la base de datos, si se omite se utiliza la predeterminada del usuario.
PROGRAMACIÓN DE BASE DE DATOS
PRO
GRAM
ACIÓ
N D
E BA
SE D
E DA
TOS
Password: El password del usuario.
User ID: El login del usuario.
Integrated Security: Establece el mecanismo de autenticación con el servidor, los valores posibles son TRUE y FALSE, sólo aplica para SqlConnection.
Persist Security: Cuando se establece a FALSE, la información sensitiva a la seguridad como la contraseña no es mostrada una vez que se ha establecido la conexión, por omisión es FALSE.
Elementos de la cadena de conexión
Ejemplo:
data source = HP\SQLserver; initial catalog = BaseDatos; user id = Usuario; password = “123456”
PROGRAMACIÓN DE BASE DE DATOS
La cadena de conexión puede ser diferente dependiendo del sistema gestor de BD con el que debamos interactuar
Ejemplos:data source = “server\bd_itsg”; initial catalog = “escolares”; user id = “admin”; password = “123456”;
data source = (local)\bd_itsg; initial catalog = “escolares”; user id = “admin”; password = “123456”;
data source = 127.0.0.1\bd_itsg; initial catalog = “escolares”; user id = “admin”; password = “123456”;
data source = .\bd_itsg; initial catalog = “escolares”; user id = “admin”; password = “123456”;
PROGRAMACIÓN DE BASE DE DATOS
Objetos y Controles de las Bases de Datos
• Los objetos de una base de datos son aquellos con los que podemos realizar operaciones o nos basamos en ellos para agrupar información necesaria para nuestros procesos, los objetos más comunes son tablas, vistas e índices.
PROGRAMACIÓN DE BASE DE DATOS
Tablas
• Las tablas son instancias u objetos que contienen los datos, una tabla está formada por registros y cada registro contiene campos, los campos a su vez tienen características que son distintas entre ellos.
PROGRAMACIÓN DE BASE DE DATOS
Índices
• Los índices son objetos que están relacionados a una o varias tablas de la base de datos, estos contienen la secuencia de datos de los campos llave de la tabla o bien una secuencia en particular que se requiere por cada proceso. Sirven para mejorar la velocidad de acceso a la información contenida en las tablas.
PROGRAMACIÓN DE BASE DE DATOS
Vistas
• Las vistas son tablas virtuales resultado de una consulta a la base de datos, pueden contener información obtenida desde una o varias tablas, y también desde una o múltiples bases de datos que pueden estar ubicadas en distintos servidores.
PROGRAMACIÓN DE BASE DE DATOS
Esquema General
Base de datos
Tabla 1 Tabla 2 Tabla n
índices VistasUna vista puede contener info de
varias tablas
Una tabla puede contener
múltiples índices
PROGRAMACIÓN DE BASE DE DATOS
Controles de la Base de Datos
• Los controles de la base de datos son una serie de comandos o métodos que sirven para realizar la conexión con la BD y el intercambio de información con la misma
PROGRAMACIÓN DE BASE DE DATOS
Listado de Controles
• String: Tipo de dato que representa una cadena (no es propiamente un control, se utiliza para generar la estructura de una consulta)
• SqlConnection: Representa una conexión abierta a una base de datos de SQL Server :
Propiedades y métodos: open(), close()Ejemplo:
String cadena = “data source = (local); initial catalog = ‘escolares’; user id = ‘admin’; password = ‘123456’”;SqlConnection conectar = new SqlConnection(cadena);conectar.Open();
PROGRAMACIÓN DE BASE DE DATOS
•SqlCommand: Representa un procedimiento almacenado o una instrucción de Transact-SQL que se ejecuta en una base de datos de SQL Server.
Propiedades y métodos: • CommandText• CommandType• Connection,• Parameters• ExecuteReader()
PROGRAMACIÓN DE BASE DE DATOS
String consulta = "SELECT OrderID, CustomerID FROM Orders;"SqlCommand commando = new SqlCommand(consulta, conectar);connectar.Open();
Ejemplo
• SqlDataReader: Proporciona una forma de leer una secuencia de filas sólo hacia delante en una base de datos de SQL Server
Propiedades y métodos: Read(), GetValue();
PROGRAMACIÓN DE BASE DE DATOS
SqlDataReader reader = command.ExecuteReader();try { while (reader.Read()) { Console.WriteLine(String.Format("{0}, {1}", reader[0], reader[1])); }} finally { reader.Close();}
Ejemplo
• SqlDataAdapter: Representa un conjunto de comandos de datos y una conexión de base de datos que se utilizan para rellenar un DataSet y actualizar una base de datos de SQL Server.
Propiedades y métodos: Fill();
• DataSet: Representa una memoria caché de datos en memoria.
PROGRAMACIÓN DE BASE DE DATOS
PROGRAMACIÓN DE BASE DE DATOStry {
SqlConnection conectar = new SqlConnection(connectar));conectar.Open();SqlDataAdapter adaptador = new SqlDataAdapter();adaptador.SelectCommand = new SqlCommand(consulta, conectar);DataSet ds = new DataSet();adaptador.Fill(ds);conectar.Close();for (i = 0; i <= ds.Tables[0].Rows.Count - 1; i++) {
MessageBox.Show(ds.Tables[0].Rows[i].ItemArray[0] + " -- " + ds.Tables[0].Rows[i].ItemArray[1]);
}} catch (Exception ex) { MessageBox.Show(“Falla en conexión");}
Ejemplo
Tarea: instalar en su laptop o PC lo siguiente: • Manejador Microsoft SQL Server• Base de Datos NORTHWND• Microsoft Visual Studio
Práctica:• Realice una aplicación en C# la cual se conecte al servidor local de su PC, a la
BD NORTHWND y extraiga de la tabla Employees el nombre, apellido, fecha de nacimiento y teléfono de todos registros.
• Debe descargar la información recuperada con la consulta de la tabla completa en un archivo de texto que posteriormente será abierto para comprobar su funcionamiento.
PROGRAMACIÓN DE BASE DE DATOS
Interacción con la Base de datos
• La “interacción” consiste en la influencia reciproca de dos o más cosas. En el caso de la base de datos la interacción se da por el intercambio de información e instrucciones entre el usuario, la aplicación y la propia base de datos.
PROGRAMACIÓN DE BASE DE DATOS
• En un caso práctico utilizaremos el lenguaje SQL (Structured Query Language) como ejemplo. El lenguaje aporta los elementos para realizar la interacción, es decir 3 lenguajes o secciones básicas:
DDL: Data Definition LanguageDCL: Data Control LanguageDML: Data Manipulation Language
PROGRAMACIÓN DE BASE DE DATOS
Data Definition Language (DDL)
• Se utiliza para añadir, modificar o eliminar cualquier objeto de la BD (tablas, vistas, índices).
• Incluye las sentencias Create, Alter, y Drop con sus respectivas sintaxis, las cuales se ejecutan directamente sobre los objetos.
• Antes de poder almacenar información se debe crear el lugar para ello, así como sus especificaciones.
PROGRAMACIÓN DE BASE DE DATOS
Data Control Language (DCL)
• Cuando creamos cuentas de usuarios podemos dar permisos por medio de Grant y/o quitárselos con Revoke.
• Permisos de Sistema: Permiten al usuario crear una acción sobre la base de datos.
• Permisos de Objeto: Se a un objeto en particular de una base de datos.
PROGRAMACIÓN DE BASE DE DATOS
Data Manipulation Language (DML)
• Contiene aquellas sentencias que sirven para realizar la consulta, modificación, inserción y borrado de la información, es decir todas las transacciones posibles de la BD (Select, Insert, Update, Delete)
• Incluye también las sentencias para control de transacciones como lo son: Commit, Rollback
PROGRAMACIÓN DE BASE DE DATOS
TECNOLOGÍAS PARA LA CONECTIVIDAD A BASES DE DATOS
• ODBC• JDBC• ADO• ADO.NET• OTROS (RDO, DAO, OLE-DB)
PROGRAMACIÓN DE BASE DE DATOS
ODBC (Open Database Connectivity)
• Es un estándar de acceso a las bases de datos cuyo objetivo es hacer posible el acceder a cualquier dato desde cualquier aplicación, sin importar qué sistema de gestión de bases de datos.
• ODBC alivia la necesidad de aprender múltiples interfaces de programación de aplicaciones para los programadores corporativos y fabricantes independientes de software.
PROGRAMACIÓN DE BASE DE DATOS
JDBC
• Es ODBC extendido para toda la plataforma Java. Mientras que ODBC es una interfaz escrita en lenguaje C, que tiene que ser instalado manualmente en cada maquina, JDBC, al estar escrito en Java, posee todas las propiedades y ventajas del mismo.
• JDBC es capaz de trabajar con MS Windows y otras plataformas.
PROGRAMACIÓN DE BASE DE DATOS
¿Qué necesitamos ?
El API JDBC con dos paquetes principales: java.sql y javax.sql• Un controlador de acceso a una base de datos; El controlador servirá para
conectar la aplicación con la API JDBC, proporcionando comunicación con la base de datos.
En definitiva, lo que el estándar JDBC hace posible es:• Establecer una conexión.• Lanzar sentencias SQL.• Capturar conjuntos resultado (resulset) de las consultas.• Capturar información de la base de datos.• Manipular los datos.
PROGRAMACIÓN DE BASE DE DATOS
ADO y ADO.NET
• Es un conjunto de clases de la librería de clases del .NET Framework que nos permiten interactuar con cualquier tipo de base de datos desde cualquier tipo de aplicación.
PROGRAMACIÓN DE BASE DE DATOS
ADO
• La tecnología ADO (ActiveX Data Objects) es una capa de COM sobre la tecnología OLE DB, de tal manera que utilizan esta tecnología no requieren conocer la tecnología OLE DB.
• Fue desarrollado por Microsoft y es usado en ambientes Windows por lenguajes de programación como Visual Basic, C++, Delphi entre otros, como también en la Web mediante el uso de Active Server Pages (ASP) y el lenguaje VBScript.
PROGRAMACIÓN DE BASE DE DATOS
• ADO.NET es un conjunto de componentes del software que pueden ser usados para acceder a datos y a servicios de datos. Es una parte de la biblioteca de clases base que están incluidas en el Microsoft .NET Framework.
• Es a veces considerado como una evolución de la tecnología ActiveX Data Objects (ADO).
Características de ADO. NETTrabaja desconectado del origen de datosFuerte integración con XML y ASP. NETEs independiente del lenguaje de programación que se
utiliceGran velocidad en transferencia de información utilizando
XML
PROGRAMACIÓN DE BASE DE DATOS
Visión general de las clases de ADO.NET
PROGRAMACIÓN DE BASE DE DATOS
Visión general de las clases de ADO.NET
PROGRAMACIÓN DE BASE DE DATOS
Ejemplo de una conexión con una BD de Microsoft Accessusing System.Data.OleDb; // Para uso de la base de datos en Access.OleDbConnection Conexion; // Declaración de la conexión
Declaración de la cadena de conexiónstring CadenaConexion = @"Provider=Microsoft.ACE.OLEDB.12.0; Data Source=C:\DATOS\BDAlumnos.accdb";Conexion = new OleDbConnection(CadenaConexion);
PROGRAMACIÓN DE BASE DE DATOS
El objeto Command de ODBC
Después de establecer la conexión con la BD, se usa el objeto Command para ejecutar sentencias SQL y devolver los resultados.
OleDbCommand: Datos compatibles con OleDb OdbcCommand: Datos compatibles con Odbc SqlCommand: Datos compatibles con SQL Server OracleCommand: Datos compatibles con Oracle
Ejemplo: OleDbCommand Comando = new OleDbCommand(“SELECT NoCtrl, Nombre FROM TablaAlumnos WHERE Semestre=8”,Conexion);
PROGRAMACIÓN DE BASE DE DATOS
El objeto DataReader
Se usa solamente para leer datos de una BD: OleDbDataReader; Datos compatibles con OleDB SqlDataReader; Datos compatibles con SQL Server
Ejemplo de conexión usando ODBCConexion.Open();OleDbDataReader Lector = Comando.ExecuteReader(); // Ejecutar el comandowhile (Lector.Read()) {Console.WriteLine(Lector.GetString(0) + " " +Lector.GetString(1)+" "+Lector.GetValue(2).ToString());}Lector.Close(); // Cerrar lectura
PROGRAMACIÓN DE BASE DE DATOS
Insertar Datos (procedimiento)
PROGRAMACIÓN DE BASE DE DATOS
Formación de la cadena de inserción:string strInsertar = "INSERT INTO TablaAlumnos VALUES (@clave, @nombre, @semestre, @promedio)";
Establecer el comando para insertar los datos en la DB:OleDbCommand miComando = new OleDbCommand( strInsertar, miConexion);miComando.Parameters.AddWithValue("@clave", CampoClave);miComando.Parameters.AddWithValue("@nombre", CampoNombre);miComando.Parameters.AddWithValue("@semestre", CampoSemestre);miComando.Parameters.AddWithValue("@promedio", CampoPromedio);miComando.ExecuteNonQuery(); // Ejecuta el comandomiConexion.Close();
PROGRAMACIÓN DE BASE DE DATOS
Practica con ODBC
1. Crear en Access una BD que se llame Materias y contenga los campos: nombre, area, horasT, horasP, horasT, Semanas.
2. El campo horasT es resultado de la suma de horasT y horasP.3. Desarrolle una pantalla donde pueda capturar estos campos, para que
puedan ser guardados en la BD de Access.4. Debe incluir la posibilidad de consultar registros existentes y eliminarlos.
PROGRAMACIÓN DE BASE DE DATOS
Proyecto1. Instalar en PC local el sistema gestor de
bases de datos SQL.2. Crear un programa en Visual Studio C# que
se conecte al SGBD por medio de una cadena de conexión guardada en un archivo de texto local (conectarse a NORTHWND).
3. Desde dicho programa ejecutar las sentencias que se escriban en un textbox.
4. Mostrar los resultados por medio de un query en el SMBD.
PROGRAMACIÓN DE BASE DE DATOS
Bibliografía
• Patrick LeBlanc. 2015. Microsoft Visual C# 2013 Step by Step. EE. UU. Octal Publishing, Inc. ISBN: 978-0-7356-8183-5.
• John Sharp. 2013. Microsoft SQL Server 2012 Step by Step PrePress. EE. UU. Sevastopol, CA. O’Reilly Media, Inc.
PROGRAMACIÓN DE BASE DE DATOS