programacion de base de datos - unidad 1: conexion a la base de datos con un lenguaje de...

45
TECNOLÓGICO NACIONAL DE MÉXICO Ingeniería en Sistemas Computacionales Programación de Base de Datos Unidad 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 Datos para Ingeniería en Sistemas Computacionales PROGRAMACIÓN DE BASE DE DATOS

Upload: jose-antonio-sandoval-acosta

Post on 13-Apr-2017

177 views

Category:

Engineering


7 download

TRANSCRIPT

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

Ejemplo de código C#

PROGRAMACIÓN DE BASE DE DATOS

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

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