TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya...
-
Upload
nguyencong -
Category
Documents
-
view
220 -
download
0
Transcript of TEMA 5. BASES DE DATOS 5.1. INTRODUCCIÓN Y CONCEPTOS … · INTRODUCCIÓN Y CONCEPTOS BÁSICOS Ya...
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.
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.
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.
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.
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
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
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')
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'
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.
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
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.
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.
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.
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”.
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.