Sei sulla pagina 1di 5

Capítulo 20 Bases de datos: SQL y ADO.

NET

Bases de datos relacionales


Una base de datos relacional es una representación lógica de datos, que permite acceder a los mismos de manera
independiente de su estructura física; además, organiza los datos en tablas.

Clave primaria:
una columna (o grupo de columnas), que requiere un valor único que no puede duplicarse en otras filas. Esto
garantiza que pueda usarse un valor de clave primaria para identificar a una fi la en forma única.

Una clave primaria que está compuesta de dos o más columnas se conoce como clave compuesta.

1 Generalidades acerca de las bases de datos relacionales: la base de datos Libros


Claves externas: Las claves externas pueden especificarse al momento de crear una tabla. Una clave externa
ayuda a mantener la Regla de integridad referencial; todo valor de clave externa debe aparecer como valor de
clave primaria de otra tabla.

Las claves externas también permiten seleccionar datos relacionados en varias tablas de esas tablas; esto se
conoce como unir los datos.

Diagrama de entidad relación para la base de datos Libros

Este diagrama muestra las tablas en la base de datos y las relaciones entre ellas. La clave primaria de una tabla
identifica en forma única a cada fi la de la misma. Cada fi la debe tener un valor en la columna de clave primaria, y
el valor de la clave debe ser único en la tabla. Esto se conoce como la Regla de integridad de entidades.

Errores que rompen la Regla de integridad de las entidades y el DBMS reporta un error.
• Si no se proporciona un valor para cada columna en una clave primaria.
• Si se proporciona el mismo valor para la clave primaria en varias filas.
• Si se proporciona un valor de clave externa que no aparezca como valor de clave primaria en otra tabla.

SQL
• Consulta SELECT básica
La mayoría de los programas no requieren todos los datos en una tabla. Para recuperar sólo columnas
específicas de una tabla, sustituya el asterisco (*) con una lista separada por comas de los nombres de las
columnas.
SELECT * FROM nombreTabla
SELECT IDAutor, ApellidoPaterno FROM Autores

• Cláusula WHERE:
Criterios de selección o predicados) sólo se seleccionan las filas que cumplen con esos criterios de selección.
SQL utiliza la cláusula WHERE opcional en una consulta para especificar los criterios de selección de la consulta.
SELECT nombreColumna1, nombreColumna2, … FROM nombreTabla WHERE criterios.

SELECT Titulo, NumeroEdicion, Copyright


FROM Titulos
WHERE Copyright > '2004'

El operador LIKE se utiliza para las coincidencias de patrones con los caracteres comodines:

• por ciento (%): busca cadenas que tengan cero o más caracteres en la posición del carácter de por ciento
en el patrón. Por ejemplo, la siguiente consulta localiza las filas de todos los autores cuyos apellidos
paternos empiecen con la letra D:

SELECT IDAutor, PrimerNombre, ApellidoPaterno


FROM Autores
WHERE ApellidoPaterno LIKE 'D%'

• Guion bajo (_): Indica un solo carácter comodín en esa posición en el patrón. Por ejemplo, la siguiente
consulta localiza las filas de todos los autores cuyo apellido paterno empiece con cualquier carácter
(especificado por _), seguido de la letra h, seguido de cualquier número de caracteres adicionales
(especificados por %):

SELECT IDAutor, PrimerNombre, ApellidoPaterno


FROM Autores
WHERE ApellidoPaterno LIKE '_h%'

• Cláusula ORDER BY
Las filas en el resultado de una consulta pueden almacenarse en orden ascendente o descendente, mediante
el uso
de la cláusula ORDER BY opcional. La forma básica de una consulta con una cláusula ORDER BY es:

SELECT nombreColumna1, nombreColumna2, … FROM nombreTabla ORDER BY columna ASC


SELECT nombreColumna1, nombreColumna2, … FROM nombreTabla ORDER BY columna DESC

Pueden usarse varias columnas para ordenar datos con una cláusula ORDER BY de la forma:

ORDER BY columna1 tipoOrden, columna2 tipoOrden, …

• Mezcla de datos de varias tablas: INNER JOIN


A menudo es conveniente mezclar los datos provenientes de varias tablas en un solo resultado. A este
proceso se le conoce como unir las tablas, y se especifica mediante un operador INNER JOIN en la
consulta.
Una operación INNER JOIN mezcla filas de dos tablas, relacionando los valores en una columna que sea común
para las tablas. La forma básica de una operación INNER JOIN es:

SELECT nombreColumna1, nombreColumna2, …


FROM tabla1 INNER JOIN tabla2
ON tabla1.nombreColumna = tabla2.nombreColumna

La cláusula ON de INNER JOIN especifica las columnas que se van a comparar de cada tabla, para determinar
cuáles filas se van a mezclar. Por ejemplo, la siguiente consulta produce una lista de autores, acompañada de los
ISBNs para los libros escritos por cada autor:

SELECT PrimerNombre, ApellidoPaterno, ISBN


FROM Autores INNER JOIN ISBNAutor
ON Autores.IDAutor = ISBNAutor.IDAutor
ORDER BY ApellidoPaterno, PrimerNombre

Observe el uso de la sintaxis nombreTabla.nombreColumna en la cláusula ON. Esta sintaxis (conocida como nombre
calificado) especifica las columnas de cada tabla que deben compararse para unir las tablas.

• Instrucción INSERT
La instrucción INSERT inserta una fi la en una tabla. La forma básica de esta instrucción es

INSERT INTO nombreTabla ( nombreColumna1, nombreColumna2, …, nombreColumnaN )


VALUES ( valor1, valor2, …, valorN )

Los valores que se especifican aquí deben coincidir con las columnas especificadas después del nombre de la
tabla, tanto en orden como en tipo (por ejemplo, si se supone que nombreColumna1 es la columna
PrimerNombre, entonces valor1 debe ser una cadena entre comillas sencillas, que represente el primer nombre).

• Instrucción UPDATE
Una instrucción UPDATE modifi ca datos en una tabla. La forma básica de la instrucción UPDATE es
UPDATE nombreTabla
SET nombreColumna1 = valor1, nombreColumna2 = valor2, …, nombreColumnaN = valorN
WHERE criterios

El nombreTabla va seguido de la palabra clave SET y de una lista, separada por comas, de pares nombre de
columna-valor, en el formato nombreColumna = valor. La cláusula WHERE opcional proporciona los criterios que
determinan cuáles filas se van a actualizar. Aunque no se requiere, la cláusula WHERE se utiliza comúnmente, a
menos que se requiera hacer una modificación en todas las filas.

• Instrucción DELETE
Una instrucción DELETE elimina filas de una tabla. La forma básica de una instrucción DELETE es

DELETE FROM nombreTabla WHERE criterios

La cláusula WHERE opcional especifica los criterios utilizados para determinar cuáles filas se van a eliminar.

Modelo de objetos ADO.NET


• El modelo de objetos ADO.NET proporciona una API para acceder a los sistemas de bases de datos
mediante la programación.
• El IDE cuenta con herramientas de programación visual que simplifican el proceso de utilizar una base de
datos en sus proyectos.

Espacios de nombres System.Data, System.Data.OleDb y System.Data.SqlClient


• Los orígenes de datos son ubicaciones que contienen datos, como una base de datos o un archivo XML.
• El espacio de nombres System.Data es la raíz de la API de ADO.NET.
• El espacio de nombres System.Data.OleDb contiene clases diseñadas para trabajar con cualquier origen
de datos.
• System.Data.SqlClient cuenta con clases optimizadas para trabajar con bases de datos de Microsoft
SQL Server.
SqlConnection
• Representa una conexión a un origen de datos; en específico, una base de datos de SQL Server.
• Lleva el registro de la ubicación del origen de datos y de cualquier configuración que especifique cómo se
va a acceder a ese origen de datos.
• Una conexión puede estar activa (es decir, abierta y que permita presentar los datos a, y recuperarlos del
origen de datos) o cerrada.

SqlCommand
Representa a un comando de SQL que un DBMS puede ejecutar en una base de datos.
Un programa puede utilizar objetos SqlCommand para manipular un origen de datos a través de un objeto
SqlConnection

Conexión persistente: Una conexión que permanece activa durante cierto tiempo para permitir múltiples
operaciones de datos.

La clase DataTable
Contiene una colección de objetos DataRow
Contiene una colección de objetos DataColumn
Ambos se encuentran en el espacio de nombres System.Data

Un objeto de la clase System.Data.DataSet, que consta de un conjunto de objetos DataTable y de las relaciones
entre ellos, representa a una caché de datos: los datos que un programa almacena en forma temporal en la
memoria local.
La estructura de un objeto DataSet imita a la estructura de una base de datos relacional.

Modelo sin conexión de ADO.NET

La case DataSet trabaja sin conexión permanente al origen de datos para trabajar, en vez de ello se
conecta al origen de datos para poblar el objeto DataSet (llenarlos con datos) y se desconecta justo
después de recuperar los datos deseados. Después, accede a, y potencialmente manipula, los datos
almacenados en el objeto DataSet. El programa opera con la cache de datos.

Objeto de la clase SqlDataAdapter


• Se conecta a un origen de datos SQL Server.
• Sirve para poblar un objeto DataSet
• Actualiza el origen de datos de un DataSet.
• Mantiene un objeto SqlConnection que abre y cierra para operaciones mediante SqlCommand.
Programación con ADO.NET: extraer información de una base de datos
• Mostrar una tabla de base de datos en un control DataGridView.
• Cómo funciona el enlace de datos

Consulta de la base de datos Libros

Falta completar

Programación con ADO.NET: caso de estudio de libreta de direcciones

Falta completar

Uso de un objeto DataSet para leer y escribir XML

Falta completar

Conclusión

Potrebbero piacerti anche