Grupo Conforsa

Transcription

TEMA 5. BASES DE DATOS5.1. INTRODUCCIÓN Y CONCEPTOS BÁSICOSYa sabes cómo acceder a datos en archivos desde una aplicación, ahora vamosa aprender a acceder y manipular datos almacenados en bases de datos.Las bases de datos contienen información relacionada o pertenecientea un mismo contexto.Esta información se guarda clasificada y estructurada, y, aunque puedaestar distribuída en varios archivos, accederemos a ella como si se tratara deuno solo.Programación .NET (II). Bases de datos5.1

Conceptos básicosPara crear y administrar bases de datos, almacenar información o consultarlade forma rápida y lógica, existen los programas conocidos comoSistemas gestores de bases de datos (SGBD). Estos programas sirven deinterfaz entre la base de datos, el usuario y las aplicaciones que acceden a ella.Cada SGBD será apropiado para cierto tipo o tipos de bases de datos. Algunosejemplos de SGBD son Microsoft SQL Server, MySQL, PostgreSQL, IBM DB2,Oracle En este curso trabajaremos con Microsoft SQL Server, en su versión“Express”, proporcionada en la instalación de Visual Basic 2008. Además, esmuy recomendable la instalación de la herramienta SQL Server 2008Management Studio, que ofrece un entorno gráfico para obtener acceso,configurar, controlar y administrar nuestras bases de datos SQL Server, asícomo herramientas para la edición de scripts para interactuar con el motor dela base de datos.5.2Programación .NET (II). Bases de datos

Las bases de datos pueden clasificarse atendiendo a la forma en que sealmacenan y la forma en que se consultan los datos, esto es, el modelo de labase de datos.Algunos de estos modelos son los siguientes: Bases de datos jerárquicas.La información se organiza jerárquicamente. Bases de datos transaccionales.Su finalidad es el manejo de los datos con la mayor rapidez posible. Bases de datos relacionales.La información se organiza atendiendo a las relaciones existentes entrelos datos. Es el más utilizado actualmente para el modelado de datosreales. Bases de datos multidimensionales.Este modelo básicamente no difiere mucho del modelo relacional. Supeculiaridad es su capacidad para representar como un “cubo” de datoslas diferentes dimensiones de la información. Bases de datos orientadas a objetos.Este modelo es utilizado en el ámbito de aplicaciones orientadas aobjetos. Representa los datos como objetos completos.Para acceder a la información contenida en una base de datos realizamosconsultas al SGBD. El lenguaje empleado para realizar estas consultasdependerá del lenguaje soportado por el SGDB.El lenguaje más extendido para realizar consultas a bases de datosrelacionales es el lenguaje SQL (Structured Query Language). Este es ellenguaje que utilizaremos durante el curso, más concretamente su extensiónTransact-SQL usada con SQL Server.A continuación trataremos unas nociones básicas sobre el lenguaje SQL.Programación .NET (II). Bases de datos5.3

5.2. SQLEl lenguaje SQL es un estándar ampliamente extendido y utilizado paraimplementar bases de datos relacionales en una amplia mayoría de los SGBD.Los puntos fuertes de este lenguaje son, además de lo anteriormente dicho, susencillez de uso y aprendizaje.La organización lógica de los datos con SQL se basa en tres conceptos básicos:tablas, filas y columnas. Las tablas permiten relacionar los datos que la componen. Las columnas representarán un conjunto de valores de cierto tipo. Habráuno de estos valores por cada fila de la tabla. Las filas, o registros, representan una entrada en la tabla. La forman unconjunto de valores, uno por cada campo de la tabla.5.4Programación .NET (II). Bases de datos

Operaciones más comunesVeamos ahora la sintaxis empleada para realizar las tareas más comunes ennuestras bases de datos.Hay que hacer constar que la mayoría de estas operaciones se podrán realizara través de las herramientas ofrecidas por la interfaz de SQL Server sinnecesidad de emplear consultas SQL. Crear una base de datosPara crear una base de datos empleamos el comando CREATE DATABASE.Con este comando se creará una base de datos vacía.Sintaxis:CREATE DATABASE nombre baseEjemplo:CREATE DATABASE ClientesPara eliminar una base de datos usaremos:DROP DATABASE nombre base Crear una tablaPara crear una tabla usamos CREATE TABLE. Esta sentencia especifica elnombre de la tabla, los nombres y tipos de las columnas que la formarán, asícomo las columnas que serán claves de la misma.Programación .NET (II). Bases de datos5.5

Sintaxis:CREATE TABLE nombre tabla (nombre columna tipo columna [DEFAULT expresión][cláusula1 [cláusula2] ],[nombre columna2 ] )Los tipos de datos más comunes son:INTEGEREntero largoREALNúmero simpleFLOATNúmero dobleNVARCHAR(nro cars)BINARYDATETIMETexto de nro cars caracteresDatos binariosFecha/horaCon DEFAULT podremos especificar un valor por defecto para lacolumna.Otras cláusulas con las que podemos caracterizar la columna son NOTNULL (No se permiten valores nulos en la columna), UNIQUE (no sepermiten valores repetidos) o PRIMARY KEY (la columna será la claveprincipal de la tabla. Implica UNIQUE y NOT NULL).Ejemplo:CREATE TABLE Agenda (NIF NVARCHAR(9) PRIMARY KEY,Nombre NVARCHAR(50) NOT NULL,Apellidos NVARCHAR(150) NOT NULL,Telefono NVARCHAR(9) UNIQUE)Para eliminar una tabla de la base de datos usaremos:DROP TABLE nombre tabla5.6Programación .NET (II). Bases de datos

Insertar datos en una tablaA la hora de escribir datos en una tabla recurriremos al comando INSERT. Conél podremos añadir unos o más registros a una tabla.Sintaxis:Se admiten varios formatos:INSERT INTO nombre tabla VALUES (valor1, valor2, valor3 )INSERT INTO nombre tabla (campo1, campo2, campo3 )VALUES (valor1,valor2,valor3 )INSERT INTO nombre tabla SELECT FROM Con el primer método especificamos directamente los valores a insertaren cada columna de la tabla. Si no queremos escribir valores en todas lascolumnas o simplemente queremos especificar las columnas de la tabla,optaremos por el segundo método.El tercer método introduce datos en una tabla procedentes del resultadode la instrucción SELECT, que veremos más adelante.Ejemplos:INSERT INTO Agenda VALUES ('1000000A', 'Carlos','López Peña','912222222')INSERT INTO Agenda (NIF, Nombre, Apellidos, Telefono)VALUES ('2000000B', 'Juan','Pared Pequeña','913333333')Programación .NET (II). Bases de datos5.7

Modificar datos de una tablaCon el comando UPDATE vamos a poder modificar total o parcialmente uno ovarios registros de una tabla. La modificación afectará a aquellos registros quesatisfagan la condición que se indique. Si no se especifica una condición lamodificación afectará a todos los registros de la tabla.Para expresar condiciones podremos usar operadores lógicos como , , , , , , AND, OR, NOT, IS NULL, LIKE, BETWEEN, IN Sintaxis:UPDATE nombre tabla SETcolumna1 valor1,columna2 valor2, [WHERE condiciones ]Ejemplo: actualizar el valor del campo “apellidos” a “Murillo” y del campo“telefono” a nulo en aquellos registros cuyo campo nif sea “2000000B”.UPDATE Agenda SETApellidos 'Murillo',Telefono nullWHERE nif '2000000B' Borrar datos de una tablaEs posible eliminar registros de una tabla con DELETE. Se eliminarán aquellosregistros que cumplan la condición especificada. Si no se especifica ningunase eliminarán todos los registros de la tabla.Sintaxis:DELETE FROM nombre tabla [WHERE condiciones ]Ejemplo:DELETE FROM Agenda WHERE apellidos 'Pérez'5.8Programación .NET (II). Bases de datos

Seleccionar datos de una tablaCon la sentencia SELECT podremos recuperar filas de la base de datos yseleccionar una o varias filas o columnas de una o varias tablas. Sin duda esla instrucción SQL que más vamos a utilizar. Por sí misma esta instrucción nomodifica ningún dato de la base de datos.Sintaxis resumida:SELECT [ALL DISTINCT] lista de columnas FROM lista de tablas [WHERE condiciones ][ORDER BY columna orden1 [ASC DESC] [,columna orden2 [ASC DESC]] ]La lista de columnas constaría de aquellas columnas cuyos valoresdeseamos recuperar, separados por comas. Si queremos obtener latotalidad de las columnas podemos usar la expresión *. AnteponiendoDISTINCT nos aseguramos de que no se muestren filas repetidas,mientras que con ALL lo permitimos (por defecto).A continuación de la cláusula FROM pondremos las tablas de las quedeseamos obtener datos separadas por comas.Las condiciones especificadas en WHERE nos ayudarán a limitar los datosque deseamos seleccionar y con ORDER BY podremos ordenar la salida porel campo o campos deseados, especificando un orden ascendente (pordefecto) o descendente mediante ASC o DESC.La sintaxis aquí expuesta sólo muestra la funcionalidad más básica deSELECT. Existen más opciones para dar lugar a consultas más complejas.Consultas en las que, por ejemplo, sea necesaria la intervención desubconsultas, relaciones entre varias tablas o agrupaciones condicionalesde registros, etc.Programación .NET (II). Bases de datos5.9

Ejemplos:Seleccionar los registros con NIF “3000000C”:SELECT * FROM Agenda WHERE NIF '3000000C'Seleccionar todos los registros de “Agenda” ordenados por apellidos:SELECT * FROM Agenda ORDER BY apellidosSeleccionar aquellos registros de “Agenda” con apellidos que comiencenpor “P” y cuyo teléfono no sea nulo, ordenados por el nombre:SELECT * FROM AgendaWHERE apellidos like 'P%' AND telefono IS NOT NULLORDER BY nombre5.10Programación .NET (II). Bases de datos

5.3. INTEGRANDO DATOS CON VISUAL BASICCuando trabajamos con datos desde Visual Basic 2008 Express disponemos dela herramienta Explorador de bases de datos, accesible desde el menú Ver,en la opción Explorador de bases de datos.Si accedes a esta opción verás, en la parte izquierda del entorno de desarrollo,una ventana en la que aparece inicialmente un nodo raíz denominadoConexiones de datos.El explorador de bases de datos nos ayudará a administrar nuestras conexionesmás habituales, pudiendo además definir nuevas conexiones de forma sencilla.Las conexiones creadas se mostrarán como nodos de los que colgarán losdiferentes objetos que forman la estructura de la base de datos (tablas,procedimientos, vistas ).Todos los objetos que contiene el explorador cuentan con su correspondientemenú contextual con diversas opciones adecuadas para su administración. Paraconocerlas, lo mejor que podemos hacer es empezar creando una nuevaconexión que nos sirva de ejemplo.Programación .NET (II). Bases de datos5.11

Vamos a crear una base de datos SQL Server desde el explorador de base dedatos de Visual Basic. Usamos el botón "Conectar con base de datos".Elegimos un origen de datos en el cuadro de diálogo que aparece. La versiónExpress de Visual Basic sólo nos va a permitir crear o conectar con bases dedatos que estén en un fichero. Versiones superiores nos permitirán conectarcon bases de datos alojadas en servidores SQL Server, Oracle.Creamos una base de datos SQL Server en un archivo.A continuación especificamos un nombre para la base de datos, en esta caso“nueva”. Si el archivo no existe se nos pedirá confirmación para crearla.5.12Programación .NET (II). Bases de datos

La base de datos está creada. En la ventana del explorador podemos ver quese ha añadido nuesta base "nueva" y podemos desplegar toda su estructura.Programación .NET (II). Bases de datos5.13

Si pulsamos con el botón derecho del ratón sobre “Tablas” podremos ver unmenú contextual. Si ahora pulsamos “Agregar nueva tabla.” pasaremos a crearuna nueva tabla desde la vista de diseño.Aquí podemos definir cada columna de la tabla, su tipo de datos y siadmite o no valores nulos.Definimos la columna “NIF” como clave principal de la tabla:Finalmente, si cerramos la tabla, se nos pedirá un nombre para guardarla. Lallamamos “Agenda”.5.14Programación .NET (II). Bases de datos

Siempre podremos acceder a los datos contenidos en la tabla desde su menúcontextual, en la opción “Mostrar datos de tabla”.Desde esta vista podremos añadir, modificar y eliminar registros de la tabla.Además tendremos acceso al diagrama, criterios y panel SQL de la tabla.Una vez que heos realizado una pequeña aproximación a las bases de datos,pasaremos, en los próximos temas, a conocer el manejo de datos desde laarquitectura .Net.Programación .NET (II). Bases de datos5.15

Bases de datos Vamos a crear una base de datos SQL Server desde el explorador de base de datos de Visual Basic. Usamos el botón "Conectar con base de datos". Elegimos un origen de datos en el cuadro de diálogo que aparece. La versión Express de Visual Basic sólo nos va a permitir crear o conectar con bases de datos que estén en un fichero.