TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya...

15
5.1 Programación .NET (II). Bases de datos TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos a aprender a acceder y manipular datos almacenados en bases de datos. Las bases de datos contienen información relacionada o perteneciente a un mismo contexto. Esta información se guarda clasificada y estructurada, y, aunque pueda estar distribuída en varios archivos, accederemos a ella como si se tratara de uno solo.

Transcript of TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya...

Page 1: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.1Programación .NET (II). Bases de datos

TEMA 5. BASES DE DATOS

5.1. INTRODUCCIÓN Y CONCEPTOS BÁSICOS

Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos

a 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 pueda

estar distribuída en varios archivos, accederemos a ella como si se tratara de

uno solo.

Page 2: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.2

Conceptos básicos

Para crear y administrar bases de datos, almacenar información o consultarla

de forma rápida y lógica, existen los programas conocidos comoSistemas gestores de bases de datos (SGBD). Estos programas sirven de

interfaz 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. Algunos

ejemplos 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, es

muy 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 de

la base de datos.

Page 3: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.3Programación .NET (II). Bases de datos

Las bases de datos pueden clasificarse atendiendo a la forma en que se

almacenan 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 entre

los datos. Es el más utilizado actualmente para el modelado de datos

reales.

Bases de datos multidimensionales.

Este modelo básicamente no difiere mucho del modelo relacional. Su

peculiaridad es su capacidad para representar como un “cubo” de datos

las diferentes dimensiones de la información.

Bases de datos orientadas a objetos.

Este modelo es utilizado en el ámbito de aplicaciones orientadas a

objetos. Representa los datos como objetos completos.

Para acceder a la información contenida en una base de datos realizamos

consultas al SGBD. El lenguaje empleado para realizar estas consultas

dependerá 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 el

lenguaje que utilizaremos durante el curso, más concretamente su extensión

Transact-SQL usada con SQL Server.

A continuación trataremos unas nociones básicas sobre el lenguaje SQL.

Page 4: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.4

5.2. SQL

El lenguaje SQL es un estándar ampliamente extendido y utilizado para

implementar 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, su

sencillez 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 un

conjunto de valores, uno por cada campo de la tabla.

Page 5: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.5Programación .NET (II). Bases de datos

Operaciones más comunes

Veamos ahora la sintaxis empleada para realizar las tareas más comunes en

nuestras bases de datos.

Hay que hacer constar que la mayoría de estas operaciones se podrán realizar

a través de las herramientas ofrecidas por la interfaz de SQL Server sin

necesidad de emplear consultas SQL.

Crear una base de datos

Para crear una base de datos empleamos el comando CREATE DATABASE.

Con este comando se creará una base de datos vacía.

Crear una tabla

Para crear una tabla usamos CREATE TABLE. Esta sentencia especifica el

nombre 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.

Sintaxis:

CREATE DATABASE nombre_base

Ejemplo: CREATE DATABASE Clientes

Para eliminar una base de datos usaremos:

DROP DATABASE nombre_base

Page 6: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.6

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:

Con DEFAULT podremos especificar un valor por defecto para la

columna.

Otras cláusulas con las que podemos caracterizar la columna son NOTNULL (No se permiten valores nulos en la columna), UNIQUE (no se

permiten valores repetidos) o PRIMARY KEY (la columna será la clave

principal 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_tabla

INTEGER Entero largo

REAL Número simple

FLOAT Número doble

NVARCHAR(nro_cars) Texto de nro_cars caracteres

BINARY Datos binarios

DATETIME Fecha/hora

Page 7: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.7Programación .NET (II). Bases de datos

Insertar datos en una tabla

A 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 insertar

en cada columna de la tabla. Si no queremos escribir valores en todas las

columnas 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 resultado

de 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')

Page 8: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.8

Modificar datos de una tabla

Con el comando UPDATE vamos a poder modificar total o parcialmente uno o

varios registros de una tabla. La modificación afectará a aquellos registros que

satisfagan 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…

Borrar datos de una tabla

Es posible eliminar registros de una tabla con DELETE. Se eliminarán aquellos

registros que cumplan la condición especificada. Si no se especifica ningunase eliminarán todos los registros de la tabla.

Sintaxis:

UPDATE nombre_tabla SET

columna1 = 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 SET

Apellidos = 'Murillo',

Telefono = null

WHERE nif = '2000000B'

Sintaxis:

DELETE FROM nombre_tabla [WHERE <condiciones>]

Ejemplo:

DELETE FROM Agenda WHERE apellidos = 'Pérez'

Page 9: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.9Programación .NET (II). Bases de datos

Seleccionar datos de una tabla

Con la sentencia SELECT podremos recuperar filas de la base de datos y

seleccionar una o varias filas o columnas de una o varias tablas. Sin duda es

la instrucción SQL que más vamos a utilizar. Por sí misma esta instrucción no

modifica 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 valores

deseamos recuperar, separados por comas. Si queremos obtener la

totalidad de las columnas podemos usar la expresión *. Anteponiendo

DISTINCT 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 que

deseamos obtener datos separadas por comas.

Las condiciones especificadas en WHERE nos ayudarán a limitar los datos

que deseamos seleccionar y con ORDER BY podremos ordenar la salida por

el campo o campos deseados, especificando un orden ascendente (por

defecto) o descendente mediante ASC o DESC.

La sintaxis aquí expuesta sólo muestra la funcionalidad más básica de

SELECT. Existen más opciones para dar lugar a consultas más complejas.

Consultas en las que, por ejemplo, sea necesaria la intervención de

subconsultas, relaciones entre varias tablas o agrupaciones condicionales

de registros, etc.

Page 10: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.10

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 apellidos

Seleccionar aquellos registros de “Agenda” con apellidos que comiencen

por “P” y cuyo teléfono no sea nulo, ordenados por el nombre:

SELECT * FROM Agenda

WHERE apellidos like 'P%' AND telefono IS NOT NULL

ORDER BY nombre

Page 11: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.11Programación .NET (II). Bases de datos

5.3. INTEGRANDO DATOS CON VISUAL BASIC

Cuando trabajamos con datos desde Visual Basic 2008 Express disponemos de

la 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 denominado

Conexiones de datos.

El explorador de bases de datos nos ayudará a administrar nuestras conexiones

más habituales, pudiendo además definir nuevas conexiones de forma sencilla.

Las conexiones creadas se mostrarán como nodos de los que colgarán los

diferentes objetos que forman la estructura de la base de datos (tablas,

procedimientos, vistas…).

Todos los objetos que contiene el explorador cuentan con su correspondiente

menú contextual con diversas opciones adecuadas para su administración. Para

conocerlas, lo mejor que podemos hacer es empezar creando una nueva

conexión que nos sirva de ejemplo.

Page 12: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.12

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. Versiones superiores nos permitirán conectar

con 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.

Page 13: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.13Programación .NET (II). Bases de datos

La base de datos está creada. En la ventana del explorador podemos ver que

se ha añadido nuesta base "nueva" y podemos desplegar toda su estructura.

Page 14: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

Programación .NET (II). Bases de datos5.14

Si pulsamos con el botón derecho del ratón sobre “Tablas” podremos ver un

menú contextual. Si ahora pulsamos “Agregar nueva tabla...” pasaremos a crear

una 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. La

llamamos “Agenda”.

Page 15: TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya sabes cómo acceder a datos en archivos desde una aplicación, ahora vamos ... (SGBD).

5.15Programació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 la

arquitectura .Net.