Está en la página 1de 151

ING.

RAFAEL PÉREZ SÁNCHEZ


Un poco de historia …
Procesamiento
Archivo
de de
Clientes
Clientes
Usuario del
Archivo de Clientes

Procesamiento
Archivo
de de
Usuario del Préstamos
Préstamos
Archivo de Préstamos
… Antes
Dpto. Contabilidad
Dpto. Personal Dpto. Ventas

Clientes Ventas Cuentas


Empleados

Inventario

Personal … Ahora BASE DE DATOS

Ventas Empleados
SGBD Clientes
Ventas
Inventario
Cuentas
Contabilidad
Diseño del sistema

Es particularmente importante el tema Bases de Datos en la etapa de diseño del


desarrollo de un sistema de información, debido a que la misma comprende el
diseño de:
 Procedimientos precisos de captura de datos
Formularios y pantallas para ingresar datos
 Interfaz con el usuario (mensajes, menús, uso del ratón o mouse, etc.)
 Base de datos que almacenará aquellos datos requeridos por quien toma las
decisiones en la organización.
 Salidas del sistema impresas y en pantalla (consultas, listados, etc.)
El rol del Técnico en Administración en el
desarrollo de los sistemas de información

“.... es deseable que los informáticos habiliten la participación


del T/A en esta etapa (diseño) antes de llegar a las etapas de
desarrollo y prueba, de modo que sea posible realizar los ajustes
necesarios sin incurrir en los costos que implica el avance del
proyecto. Es posible que los informáticos le presenten al T/A el
Modelo de Datos del sistema, Tablas de decisión, Árboles de
Decisión, etc. y su rol en este caso puede consistir en sugerir
mejoras al diseño del sistema”.
DEFINICIÓN DE BASE DE DATOS

“Base de Datos es un conjunto de


datos relacionados entre sí y que
tienen un significado implícito”.

La definición presentada anteriormente hace referencia a dos


elementos para que un conjunto de datos constituya una Base de
Datos:
1) Relaciones entre datos, tema que se trata en las próximas
transparencias.
2) Significado implícito de los datos que se atribuye dependiendo
del contexto en que se utilizan los mismos.
Por ejemplo, el dato fecha en una base de datos de ventas puede
referirse a la fecha de emisión de las facturas, mientras que si la base
de datos es de música quizás corresponda a la fecha en que se grabó
un tema musical.
EN UN SISTEMA DE INFORMACIÓN SE CUENTA CON DOS ENFOQUES PRINCIPALES
PARA DEFINIR EL ALMACENAMIENTO DE LOS DATOS:

1. ARCHIVOS TRADICIONALES. CONSISTE EN ALMACENAR LOS DATOS EN

ARCHIVOS ARCHIVOS INDIVIDUALES, EXCLUSIVOS PARA CADA APLICACIÓN


PARTICULAR. EN ESTE SISTEMA LOS DATOS PUEDEN SER REDUNDANTES
TRADICIONALES Y (REPETIDOS INNECESARIAMENTE) Y LA ACTUALIZACIÓN DE LOS ARCHIVOS

BASES DE DATOS ES MÁS LENTA QUE EN UNA BASE DE DATOS.

2. BASE DE DATOS. ES UN ALMACENAMIENTO DE DATOS FORMALMENTE


DEFINIDO, CONTROLADO CENTRALMENTE PARA INTENTAR SERVIR A
MÚLTIPLES Y DIFERENTES APLICACIONES.LA BASE DE DATOS ES UNA
FUENTE SIGNIFICATIVA DE DATOS QUE SON COMPARTIDOS POR
NUMEROSOS USUARIOS PARA DIVERSAS APLICACIONES.
DEFINICIÓN DE BASE DE DATOS
.

“Una base de datos tiene


una fuente de la cual se
derivan los datos, cierto
grado de interacción con los
acontecimientos del mundo
real y un público que está
activamente interesado en el
contenido de la base de
datos”.

Ramez Elmasri y Shamkant B. Navathe


Una base de datos, a fin de ordenar la información de manera lógica, posee un orden
que debe ser cumplido para acceder a la información de manera coherente. Cada
base de datos contiene una o más tablas, que cumplen la función de contener los
campos.

Registro: Es una colección de campos (atributos)


Campos: Contiene almacenado solamente un valor.
Enlace: Asociación entre dos registros, así que podemos verla como una
relación estrictamente binaria.

Un BD abarca más que la estructura de árbol, porque un nodo "hijo“, en la estructura


de red puede tener más de un padre.
CONCEPTOS BÁSICOS

Datos
Resulta relevante para que el Técnico en
Entidades
Administración cumpla su rol como usuario
de los sistemas o como integrante del Claves primarias y foráneas
equipo de desarrollo que conozca algunos Relaciones
conceptos básicos vinculados al tema Bases Restricciones de integridad
referencial
de Datos.
Metadatos
Datos

“Datos son hechos conocidos que pueden registrarse y que tienen un significado
implícito”.

Ejemplo:
Pueden constituir datos los nombres, números telefónicos y direcciones de personas que
conocemos.
Entidades
Una entidad es todo aquello de lo cual interesa guardar datos, por ejemplo:
clientes, facturas, productos, empleados. En el Modelo de Entidad-Relación que
se presenta, se observa que las entidades están formadas por atributos o
c a m p o s r e f e r i d o s a u n m i s m o t e m a q u e i n t e r e s a a l m a c e n a r.

CLIENTES cuenta con los atributos: Código de Cliente, Nombre, Apellido, Domicilio,
Teléfono.
CLAVES PRIMARIAS Y CLAVES FORÁNEAS
Cada entidad tiene una clave primaria o campo llave que identifica unívocamente al conjunto de
datos.
Cuando en una entidad figura la clave primaria de otra entidad, ésta se denomina clave foránea.
Las entidades se relacionan entre sí a través de las claves foráneas.

CLAVES PRIMARIAS CLAVES FORÁNEAS

Código de Cliente es la clave primaria de Son claves foráneas en Facturas Código de


Cliente. A cada cliente se le asocia un código y a Cliente y Código de Producto.
cada código le corresponde un cliente. Asimismo, Clientes se relaciona con Facturas a través del
Número de Factura y Código de Producto son Código de Cliente que figura en ambas tablas y
claves primarias de Facturas y Productos con Productos mediante el Código de
respectivamente. producto.
Restricciones de integridad referencial

RESTRICCIONES DE INTEGRIDAD REFERENCIAL


-Código de Clientes en Facturas debe cumplir que exista
en Clientes y que sea clave primaria
-Códigode Producto Facturas debe cumplir que exista en
Productos y que sea clave primaria
Retomando la Definición de Base de Datos (1), la cual señala que ésta “...es un conjunto
de datos relacionados entre sí y que tienen un significado implícito”, se observa en
la imagen que los datos de las tablas se relacionan a través de las claves y que éstos
tienen el significado implícito que se les atribuye en dicho contexto.
SISTEMA DE GESTIÓN DE

BASES DE DATOS (SGDB)

Un sistema de gestión de bases de datos (SGBD; en inglés, Database


Management System: DBMS) es un conjunto de programas que permite a
los usuarios crear y mantener una base de datos.

Si bien, no es imprescindible contar con un SGBD para implementar una


base de datos, este software de uso general facilita el proceso de definir,
construir y manipular bases de datos para diversas aplicaciones.
Entorno simplificado de un SGBD

En el esquema se observa
que los usuarios
interactúan con una
aplicación (por ej. un
sistema integrado de
gestión o un paquete
contable) que utiliza un
SGBD para procesar las
consultas, el cual accede a
los metadatos y a la base
de datos correspondiente.
Principales características del enfoque de Bases
de Datos

En el enfoque de bases de datos se mantiene un único almacén de datos que se define una sola vez
y al cual tienen acceso muchos usuarios.

Características:
1. Naturaleza autodescriptiva de los sistemas de base de datos
2. Separación entre los programas y los datos, y abstracción de los datos
3. Manejo de múltiples vistas de los datos
Principales características del enfoque de Bases de
Datos

1. Naturaleza autodescriptiva de los sistemas de base de datos

Tal como se visualizó en la parte inferior del esquema del Entorno


simplificado de un Sistema Gestor de Base de Datos ésta no solamente
contiene la base de datos misma, sino que también incluye una
definición o descripción completa de dicha base de datos.
Principales características del enfoque de Bases de
Datos

2. Separación entre los programas y los datos, y abstracción de los datos

Es posible modificar las definiciones de datos y no modificar el código de la aplicación y viceversa.

Dos características confluyen para lograrlo:

-Se almacena en el catálogo del SGBD la estructura de los archivos de datos separados de las
aplicaciones (programas).

-El código de las aplicaciones se escribe de modo que sean independientes de los archivos específicos.
Principales características del enfoque de Bases de
Datos

3. Manejo de múltiples vistas de los datos

Cada usuario visualiza lo que le interesa en la base de datos, pudiendo


acceder a subconjuntos de datos.

En el ejemplo de base de datos visto anteriormente, al departamento de


Compras posiblemente le interese visualizar la tabla Productos y en ocasiones
las de Facturas (para chequear bajas en el stock), pero no la que contiene los
datos de los Clientes.
Sistema de Gestión de Bases de Datos
Los SGBD deben cumplir con las propiedades ACID
Propiedades fundamentales para las transacciones:

 Independencia de los datos (OJO es Atomicity (Atomicidad: las transacciones

muy importante) son atómicas)

 Acceso eficiente a los datos Consistency (Consistencia: una transacción


transforma un estado consistente de la BD en
 Integridad y seguridad de los datos
otro)
 Administración de los datos
Isolation (Aislamiento: las transacciones
 Acceso concurrente y recuperación
están aisladas entre si)
en caso de « crash »
Durability (Durabilidad: después que una
transacción ha sido confirmada ella persiste)
Algunas definiciones
 Esquema de una Base de Datos: Cuando una base de Datos es diseñada interesa definir una
estructura para ésta.

Esta estructura permanece “estática” durante un gran período de tiempo, aunque puede
sufrir modificaciones ocasionales

 Instancia: Es la información que en un determinado instante del tiempo posee la base de


datos y que cambia permanentemente (excepto en algunos tipos de bases de BD
particulares)
Algunas definiciones

Usuario final: El que interactúa con la base de datos, por lo general a través de
aplicaciones e interfaces

Usuario especialista: El que diseña y programa aplicaciones para usuarios finales.

DBA (Database Administrator): El que administra la base de datos. ¿Qué hace?


Algunas definiciones
 Esquema de una Base de Datos: Cuando una base de Datos es
diseñada interesa definir una estructura para ésta.
Esta estructura permanece “estática” durante un gran período de
tiempo, aunque puede sufrir modificaciones ocasionales

 Instancia: Es la información que en un determinado instante del


tiempo posee la base de datos y que cambia permanentemente
(excepto en algunos tipos de bases de BD particulares)
Funciones y componentes principales de un
SGBD Peticiones Peticiones
DML planeadas DML No planeadas

Esquemas Procesador
Procesador Lenguaje
externos
DML Consulta

Peticiones
Procesador compiladas
DDL
DDL: lenguaje de definición de datos
DML: lenguaje de manipulación de datos
Optimizador

Esquemas y
transformaciones Peticiones
optimizadas

Manejador de transacciones

Manejador de almacenamiento

Base de datos
Datos
y
Metadatos
Componentes funcionales de un SGBD

Metadatos o Diccionario de Datos (D.D): Contiene el esquema de la B.D, los


usuarios, los permisos de acceso, etc. Son datos sobre los datos.
Almacena la información que permite la traducción entre los 3 niveles de
la Arquitectura ANSI/SPARC*
Optimizador de consultas: Define el plan de ejecución de operaciones
solicitadas por los usuarios, de tal manera que se lleven a cabo de la
manera más eficiente posible
Manejador de transacciones: Controla el acceso y la concurrencia de
operaciones
SGBD - Funciones
Soporta DML: Lenguaje para actualización, almacenamiento y recuperación de
datos
Ofrece optimización en la búsqueda de la información
Soporta DDL : Lenguaje para definir los datos
Metadatos (DD): Catálogo autodescriptivo, información sobre los
objetos existentes en el sistema  Datos sobre los datos
Componentes funcionales de un SGBD
 Manejador de almacenamiento tiene dos componentes:
-Manejador de archivos  recupera desde disco los bloques que contienen la
información solicitada por una transacción.
-Manejador de buffer  mantiene en memoria principal la información más usada y
decide cuando llevar a disco alguno de sus bloques.
Ventajas de un SGBD
1. Reutilización de datos y programas
2. Control de redundancia
3. Estandarización ¿En qué sentido?
4. Consistencia (No hay redundancia)
5. Es posible equilibrar las cargas de los requerimientos (establecer prioridades)
Ventajas de un SGBD
6. Integridad (Se cumplen las reglas establecidas  ¿Por
quién?)
7. Seguridad
8. Rapidez de desarrollo
9. Mantenimiento y reingeniería: cambios en la estructura de
datos sin cambiar los programas que los usan (hasta cierto
punto)
Ventajas de un SGBD
6. Integridad (Se cumplen las reglas establecidas  ¿Por
quién?)
7. Seguridad
8. Rapidez de desarrollo
9. Mantenimiento y reingeniería: cambios en la estructura de
datos sin cambiar los programas que los usan (hasta cierto
punto)
Desventajas de un SGBD

1. Tamaño
2. Susceptibilidad a fallas (Discutible)
3. Complejidad en la recuperación a fallas (Discutible)
4. Puede llegar a trabajar en forma “lenta” debido a la cantidad de verificaciones
que debe hacer
Independencia de los datos
 Es uno de los objetivos de la arquitectura ANSI/SPARC
 Permite modificar la definición de un nivel sin afectar (en lo
posible) el nivel inmediatamente superior
 Sin independencia de datos se requeriría mucho esfuerzo para
cambiar las aplicaciones de tal forma que se adaptasen a la nueva
estructura de la base de datos.
 Hay dos tipos: física y lógica
Independencia de los datos

Física: inmunidad que tienen los usuarios y las aplicaciones ante los cambios en la
forma de almacenar físicamente los datos.

Conceptual o lógica: inmunidad que poseen los usuarios y las aplicaciones ante los
cambios en la estructura lógica de la base de datos
Independencia Física
Se presenta entre el nivel conceptual y el nivel físico
Un cambio en el esquema físico (usar otras estructuras de almacenamiento)
no conduce a cambios en el esquema conceptual
Ej. Cambio en la forma de almacenar un índice: B+ por Hashing, ¿con qué
propósito se hace un cambio de este tipo?
Inmunidad del esquema conceptual ante cambios del esquema físico
Independencia Lógica

Se presenta entre el nivel de visión y el nivel conceptual


Significa que un cambio en el nivel conceptual no debe conllevar a un cambio en el
nivel de visión
Es más difícil de lograr. ¿Por qué?
Base de Datos para
Aplicaciones
Manipulación avanzada de datos con SQL
Conceptos
Base de Datos (Banco de datos, colección de datos)
Silberschatz:
Un sistema de bases de datos es una colección de archivos
interrelacionados y un conjunto de programas que permitan
a los usuarios acceder y modificar estos archivos.
Uno de los propósitos principales de un sistema de bases de
datos es proporcionar a los usuarios una visión abstracta de
los datos. Es decir, el sistema esconde ciertos detalles de
cómo se almacenan y mantienen los datos.
Una BD contiene información relevante para una
empresa.
Base de Datos Relacional
Definición:
Una base de datos relacional es un conjunto de una o más tablas (a las cuales se les
asigna un nombre exclusivo) estructuradas en registros (líneas) y campos
(columnas), que se vinculan entre sí por un campo en común.
Normalización
Las bases de datos relacionales pasan por un proceso al que se le conoce como
normalización, el cual es entendido como el proceso necesario para que una base de
datos sea utilizada de manera óptima.
Características de una BD Relacional
Los datos estarán distribuidos
en varias tablas
El mejor diseño de una base
de datos es aquel que
involucra varias tablas
relacionadas a través de sus
llaves primarias y foráneas.
Ventajas de una BD Relacional
Entre las ventajas de este modelo están:
Garantiza herramientas para evitar la duplicidad de registros, a través de campos
claves o llaves.
Garantiza la integridad referencial: Así al eliminar un registro elimina todos los
registros relacionados dependientes.
Elementos del Modelo Relacional
Término relacional formal Equivalente informal

Entidad / Relación Tabla

Tupla Fila o registro

Cardinalidad Número de filas o registros

Atributo Columna o campo

Grado Número de columnas o campos

Atributo Identificador Llave Primaria (PK)

Dominio Conjunto de valores legales o permitidos


Elementos del Modelo Relacional
ATRIBUTOS

Nombre de la
TABLA PELICULA
TITULO AÑO DURACION
La guerra de las galaxias 1997 120

TUPLAS El señor de los anillos 2001 180


(Registros) Mar adentro 2004 90
El viaje de Chihiro 2001 120

El DOMINIO del atributo TITULO = TEXTO

Dominio de AÑO y
DURACION = ENTEROS
Ejemplo: Tabla Película
grado
atributos

título director género rodaje nacionalidad duración

Amores Perros A. González Drama 2000 México 1:45


The Matrix A. Wachowsky Ciencia-ficción 1999 EEUU 1:38
cardinalidad

Torrente S. Segura Comedia 1997 España 1:10


tuplas
Nos miran N. López Policiaco 2001 España 1:18
Amelie J. P. Jeunet Comedia 2001 Francia 1:22
Los lunes al sol F. León Drama 2002 España 1:17
Claves
Clave candidata:
Atributo o atributos que identifican de manera única una tupla dada

Clave Primaria (Primary Key)


Elegida a partir de las claves candidatas de la relación.
Ningún componente de la clave primaria acepta valores nulos.

Clave Foranea (Foreign Key)


Especifica de forma explícita la forma en que dos tablas se relacionan.
Mecanismo para asegurar la integridad.
Atributos

Cada atributo de una tabla (relación) tiene un nombre


El conjunto de valores permitidos para cada atributo es llamado
dominio del atributo
El valor especial null (sin valor) es parte de todos los dominios a
menos que se especifique lo contrario.
El número de atributos se denomina grado o aridad de la relación.
Sistemas de Gestión de Bases de Datos (SGBD)
Database management system (DBMS):
Existen programas denominados sistemas gestores de bases de datos
(SGBD), que permiten almacenar y posteriormente acceder a los datos de
forma rápida y estructurada.
El objetivo principal de un SGBD es proporcionar una forma de almacenar
y recuperar la información de una base de datos de manera que sea tanto
práctica como eficiente.
Aplicaciones más usuales:
Gestión de empresas e instituciones públicas.
Entornos científicos (almacenar la información experimental).
Productos SGBD disponibles en el mercado
SGBD LIBRES SGBD NO LIBRES SGBD NO LIBRES Y
GRATUITOS
MySQL dBase Microsoft SQL Server
Compact Edition
PostgreSQL IBM DB2
Oracle Express
Firebird IBM Informix Edition 10
SQLite Interbase de
CodeGear
DB2 Express-C
Microsoft Access
Apache Derby
Microsoft SQL
Server
Oracle
SQL (Structured Query Language)
Lenguaje basado en el álgebra relacional.

El lenguaje SQL se considere un lenguaje de consultas, contiene


además muchas otras capacidades además de la consulta en bases
de datos. Incluye características para definir la estructura de los
datos, para la modificación de los datos en la base de datos y para
la especificación de restricciones de seguridad.
Estructura básica de SQL
La estructura básica de una expresión SQL consiste en tres cláusulas:
SELECT
FROM
WHERE
Clausula SELECT
La cláusula SELECT corresponde a la operación proyección del álgebra relacional.
Se usa para listar los atributos deseados del resultado de una consulta.
El resultado de una consulta SELECT es una relación (tabla).
Clausula FROM
La cláusula FROM corresponde a la operación producto cartesiano del álgebra
relacional.
Lista las relaciones que deben ser analizadas en la evaluación de la expresión.
Clausula WHERE
La cláusula WHERE corresponde al predicado selección del álgebra relacional.
Es un predicado que engloba a los atributos de las relaciones que aparecen en la
cláusula FROM.
Clausula WHERE (Continuación)
En la cláusula WHERE, SQL usa las conectivas lógicas:
And
Or
Not
Los operandos de las conectivas lógicas pueden ser expresiones que
contengan los operadores de comparación:
<, <=, >, >=, = y <>.
SQL permite usar los operadores de comparación para comparar cadenas y
expresiones aritméticas, así como tipos especiales, tales como el tipo fecha.
SQL incluye un operador de comparación between para simplificar las cláusulas
WHERE que especifica que un valor sea menor o igual que un valor y mayor o
igual que otro valor.
Consultas
Se puede pensar que una consulta consiste en obtener un subconjunto de
información que es “cortada” de un subconjunto de renglones y columnas de una
tabla y entonces después es “pegada” dentro de una tabla temporal o virtual.

A continuación vamos a ver la representación gráfica de los pasos de una consulta


Selección de Filas
Selección de Columnas
Selección de renglones y columnas
Especificando condiciones para seleccionar renglones

El “filtrado” o “selección” de renglones está basado en una condición lógica o


boleana, la cual se evalúa sobre cada uno de los renglones de la tabla o tablas sobre
las que se está trabajando.
Para determinar la condición es necesario hacer uso de diferente operadores.
Modelo Relacional - Ejemplo
Operadores de comparación
Operador Significado Ejemplo
= Igualdad SELECT idAlumno, Nombre
FROM alumno
WHERE idAlumno = 1
< Menor que SELECT *
FROM alumno_materias
WHERE calificacion < 8
<= Menor o Igual que SELECT *
FROM alumno_materias
WHERE calificacion <= 7
> Mayor que SELECT *
FROM alumno_materias
WHERE calificacion > 9
>= Mayor o igual que SELECT *
FROM alumno_materias
WHERE calificacion < 8
<>, != Diferente SELECT *
FROM alumno
WHERE nombre != 'Juan'
Operadores Lógicos

SELECT *
FROM alumno_materias
WHERE alumno = 1 and Calificacion > 7
SELECT *
FROM alumno_materias
WHERE alumno = 1 or Calificacion > 7
SELECT *
FROM alumno_materias
WHERE not Calificacion = 7
Caso de Estudio
Biblioteca UTP:
La biblioteca de la UTP desea almacenar la información de sus Libros(titulo,
resumen, genero literario, editorial), autores y alumnos. La biblioteca desea llevar
un control de los préstamos realizados a los alumno.

A manera de ejemplo utilizaremos el modelo relacional de la biblioteca para


abordar los temas siguientes
Modelo Relacional - Biblioteca
Reunión de relaciones
Ejemplo: ¿Cómo saber los alumnos que han realizado prestamos?

Esta información se encuentra almacenada en dos tablas: en la


tabla alumnos y en la tabla prestamos.

¿Cómo podemos juntar la información?


Join
Para unir dos tablas utilizamos la operación join dentro de la
clausula FROM

SELECT campo1_, campo_2, …, campo_n


FROM tabla1 join tabla 2
on tabla1.campo_t1 = tabla2.campo_t2
Nota: tenga en cuenta que los campos campo_t1 y campo_t2 tienen que ser del
mismo tipo y que por lo general uno de estos es llave primaria y el otro es llave
foranea, aunque esto último no es necesario.
Join – Unión de alumnos con prestamos
SELECT *
FROM prestamos p join alumnos a
on p.alumno = a.matricula

Nota: Por comodidad se renombrando la tabla prestamos como p y la tabla alumnos


como a. En caso contrario hubiera tenido que escribir:

SELECT *
FROM prestamos join alumnos
on prestamos.alumno = alumnos.matricula
CLÁUSULAS
GROUP BY

HAVING

ORDER BY
Group By
El atributo o atributos especificados en la cláusula group by se usan para formar
grupos.
Las tuplas con el mismo valor en todos los atributos especificados en la cláusula
group by se colocan en un grupo.
Having
Los predicados de la cláusula having se aplican después de la formación de grupos, de
modo que se pueden usar las funciones de agregación.
Order By
SQL ofrece al usuario cierto control sobre el orden en el cual se presentan las tuplas
de una relación.
La cláusula order by hace que las tuplas resultantes de una consulta se presenten en
un cierto orden.
Order By - Ejemplo
Ordenar de forma Ascendente los alumnos
SELECT *
FROM alumnos
order by matricula

Ordenar de forma descendente los alumnos


SELECT *
FROM alumnos
order by matricula DESC
Funciones de Agregación
Las funciones de agregación son funciones que toman una colección de valores
como entrada y producen un único valor como salida.

SQL proporciona cinco funciones de agregación primitivas:


Media: avg
Mínimo: min
Máximo: max
Total: sum
Cuenta: count
Average - avg
Retorna el valor medio de expresión

Sintaxis
AVG(expresión)

Revisar:
http://www.w3schools.com/sql/sql_func_avg.asp
Max, Min
Devuelven el mínimo o el máximo de un conjunto de valores
contenidos en un campo especifico de una consulta.
Ejemplo:

SELECT min(id_Volumen) as 'ID Mínimo',


max(id_Volumen) as 'ID Máximo‘

FROM volumenes
Count
Con mucha frecuencia se usa la función de agregación count para contar el número
de tuplas de una relación.
La notación para esta función en SQL es count(*).
Count
Obtener el total de prestamos:
SELECT count(*) as 'Total de prestamos‘
FROM prestamos

Obtener el total de libros:


SELECT count(*) as 'Total de libros‘
FROM libros
Count
Obtener los prestamos realizados por cada alumno

SELECT matricula, nombre,


count(*) as 'Prestamos realizados'
FROM alumnos a join prestamos p
on a.matricula = p.alumno
GROUP BY matricula
Sum
Retorna la suma de expr. Si el conjunto resultado no tiene registros, SUM() retorna
NULL.

Sintaxis
SUM(expresión)
Ejemplo: Count y Sum
Obtener de cada libro su titulo, la cantidad de libros que cuenta la
biblioteca de cada libro y los libros disponibles para préstamo.

SELECT titulo,
count(*) as 'Cantidad de Libros',
sum(disponible) as 'Libros disponibles‘

FROM volumenes join libros


on libros.isbn = volumenes.libro

GROUP BY libro;
LIMIT

La cláusula LIMIT puede usarse para restringir el número de registros


retornados por el comando SELECT. LIMIT tiene uno o dos argumentos
numéricos, que deben ser enteros positivos (incluyendo cero).
Con dos argumentos, el primer argumento especifica el
desplazamiento del primer registro a retornar. El desplazamiento del
registro inicial es 0.
Con un argumento, el valor especifica el número de registros a
retornar desde el comienzo del conjunto de resultados, en otras
palabras, LIMIT n es equivalente a LIMIT 0,n.

Ejemplo: Seleccionar
SELECT titulo los primeros 5 libros ordenados
SELECT titulo por su nombre.
FROM libros FROM libros
ORDER BY BINARY titulo ORDER BY BINARY titulo
LIMIT 0,5 LIMIT 5
Vistas
Vistas
Si los datos de la BD cambian, entonces los resultados de las
consultas también deben de cambiar.
Una vista es un resultado de una consulta SQL de una o varias tablas;
también se le puede considerar una tabla virtual (Tabla en donde se
almacenan los resultados de una consulta y es virtual porque solo es
temporal para la ejecución de una consulta determinada).
Las vistas tienen la misma estructura que una tabla: filas y columnas.
La única diferencia es que sólo se almacena de ellas la definición, no
los datos. Los datos que se recuperan mediante una consulta a una
vista se presentarán igual que los de una tabla.
Vistas ( Continuación )
Al igual que sucede con una tabla, se pueden insertar, actualizar, borrar y seleccionar
datos en una vista.
Una vista se especifica a través de una sentencia SELECT.
La mayoría de los SGBD soportan la creación y manipulación de vistas.
Las vistas fueron introducidas en la versión 5.0 del servidor de base de datos MySQL.
CREATE VIEW
CREATE VIEW nombre_vista AS
SELECT *
FROM tablaX
CREATE VIEW - Ejemplo
CREATE VIEW alu_materia_calificacion as
SELECT a.idAlumno as Matricula,
a.Nombre as 'Nombre del Alumno',
m.Nombre as 'Nombre de la Materia',
am.Calificacion
FROM (alumno a JOIN alumno_materias am
ON a.idAlumno = am.Alumno)
JOIN materia m ON am.materia = m.idMateria
Consultar datos de la vista
Consultas sobre Vistas
Trabajando con valores nulos
Desde que se va construyendo la definición de cada tabla, se puede restringir a que
un campo pueda o no aceptar valores nulos.
Un valor nulo significa que para un campo de cualquier tipo de los que se permiten
definir (int, char, varchar, etc.) no se le asigne valor alguno (como si se quedara vacio).
Trabajando con valores nulos
SELECT *
FROM tabla t
WHERE t.columna is null

SELECT *
FROM tabla t
WHERE not (t.columna is null)
Manejo de Valores duplicados
SELECT FirstName
FROM Students

Si se quiere obtener el resultado sin que aparezcan


valores duplicados, se puede usar la palabra clave
DISTINCT

SELECT DISTINCT m.FirstName


FROM Member m
Modificación de la BD
Borrado

Inserción

Actualizaciones
Borrado
• DELETE FROM alumno
Borra todas las tuplas de la relacion alumno

• DELETE FROM alumno


WHERE idAlumno = 5
Borra la tupla identificada por el idAlumno 5.

• DELETE FROM alumno_materias


WHERE calificacion < 7
Borra las tuplas de la tabla alumno_materia que tengan una calificacion menor a 7
Inserción
INSERT INTO tabla
VALUES ( ‘valor 1’, 2, ...)

INSERT INTO alumno (idAlumno, Nombre)


VALUES (5, ‘Guadalupe Reyes');
Actualizaciones
UPDATE alumno
SET nombre = ‘Juan Perez’

UPDATE alumno
SET Nombre = 'Juan Pérez‘
WHERE idAlumno = 1
Reunion de Relaciones
Inner join
Left outer join
Right outer join
Natural join
Reunion de Relaciones
Inner join
left outer join
Right outer join
Natural join
Referencias
FUNDAMENTOS DE BASES DE DATOS
Silberschatz, Korth, Sudarshan. Quinta Edición.
McGraw-Hill 2006
ISBN: 84 – 481 – 4644 - 1

Sintaxis de SELECT
http://dev.mysql.com/doc/refman/5.0/es/select.html
• Avg
http://www.w3schools.com/sql/sql_func_avg.asp
Group By
http://dev.mysql.com/doc/refman/5.0/es/group-by-functions.html
ACCESO A DATOS Y
ADO.NET
OBTENER ACCESO A DATOS EN
APLICACIONES DE VISUAL BASIC
BASE DE DATOS:
Una base de datos es una colección de información almacenada en archivos
guardados en discos que sigue una estructura sistemática. Esta estructura sistemática
permite a los usuarios consultar los datos usando software de administración
denominada sistema de administración de bases de datos (DBMS). SQL Server 2005
es un sistema de administración de bases de datos relacionales (RDBMS).
OBTENER ACCESO A DATOS EN
APLICACIONES DE VISUAL BASIC
Una base de datos relacional, como las de SQL Server 2005, contiene varias tablas
relacionadas entre sí.

•VISTAS
•PROCEDIMIENTOS ALMACENADOS
•FUNCIONES
•ÍNDICES
•INFORMACIÓN DE SEGURIDAD
OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- NORMALIZACIÓN----

Reducir el nivel de redundancia y, además, proteger la integridad de los datos


contenidos en la base de datos.

El proceso de normalización existe para ayudar a dividir los datos en su propia tabla
de forma que la información no se duplique en más de una tabla.
OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- VALORES NULOS??----

Siempre que se diseña una tabla con una columna que no permite la existencia de
valores nulos, el RDBMS rechazará cualquier inserción de una nueva fila que tenga
una columna establecida en un valor nulo cuando no deba ser así. Cuando preste
atención a esas columnas que no pueden contener valores nulos al diseñar las tablas,
automáticamente agregará otra capa de integridad de datos asegurándose de que
están presentes todos los datos necesarios antes de que se inserte el registro en la
base de datos.
OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- CLAVES PRINCIPALES Y CLAVES EXTERNAS----

CLAVE PRINCIPAL:
VALOR UTILIZADO PARA IDENTIFICAR DE MANERA ÚNICA UNA FILA ESPECÍFICA DE UNA TABLA.

 PUEDE ESTAR COMPUESTA DE UNO O VARIOS NOMBRES DE COLUMNA: CUANDO SE COMPONE DE MÁS
DE UNA COLUMNA, SE DENOMINA CLAVE COMPUESTA.
 SUELE SER UN CAMPO NUMÉRICO.
 NORMALMENTE LA GENERA EL RDBMS, EN CUYO CASO SE DENOMINA CLAVE SUPLENTE. CON
FRECUENCIA, UNA CLAVE SUPLENTE ES (PERO NO SIEMPRE) UN NÚMERO SECUENCIAL. EN SQL
SERVER 2005 UNA CLAVE SUPLENTE TAMBIÉN SE DENOMINA UNA IDENTIDAD.

LAS IDENTIDADES COMIENZAN POR UN NÚMERO ESTABLECIDO, LLAMADO INICIALIZACIÓN DE


IDENTIDAD Y SE VA INCREMENTANDO EN OTRO NÚMERO ESTABLECIDO, DENOMINADO INCREMENTO
DE IDENTIDAD.
OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- CLAVES PRINCIPALES ---

 Debe ser lo más corta posible, pero lo bastante larga para admitir el número de filas
que representará.

 Es inmutable

 También es una clave natural cuando la clave tiene una relación lógica con el resto
de las columnas de la tabla. (ISBN)

 También se utiliza para relacionar dos tablas entre sí.


OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- CLAVES EXTERNAS---

Una clave externa es una columna de una tabla que está relacionada con una
columna de otra tabla. También permite crear relaciones entre las tablas.

Una clave externa de una tabla siempre es una clave principal en otra tabla.

Las claves externas se utilizan para forzar la integridad de los datos al formar parte de
las restricciones de claves externas.
OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- CLAVES EXTERNAS---

Las restricciones de claves externas se crean para garantizar la protección de la


integridad referencial y que no se produzcan infracciones de la misma.

En lo relativo a la nomenclatura de las claves externas, es una práctica recomendada


definirlas usando el mismo nombre de sus claves principales análogas; de lo contrario,
podría ser problemático para quienes examinen el modelo de datos lógico.
OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- INTERACCIÓN CON UNA BASE DE DATOS RELACIONAL-- SQL

 SQL: Structured Query Language

1. SELECT * FROM CUSTOMER

2. SELECT COUNT(*) FROM PRODUCT


OBTENER ACCESO A DATOS EN APLICACIONES DE VISUAL BASIC
---- INTERACCIÓN CON UNA BASE DE DATOS RELACIONAL-- SQL

 Cuando se envía una consulta SQL a una base de datos relacional, la base de datos
devuelve un conjunto de resultados que simplemente contiene las filas que
contienen las respuestas a la consulta.
 SQL es un estándar ANSI/ISO, el cual debe seguir un conjunto de reglas, por tanto
los RDBMS más conocidos en el mercado tienen extensiones agregadas a SQL para
permitir la adición de código de procedimientos.
 La siguiente es una lista de extensiones frecuentes y sus fabricantes: Microsoft
Transact-SQL (abreviado como T-SQL), Oracle PL/SQL e IBM SQL PL
TALLE No 1. CREACIÓN DE BASE DE
DATOS CON VISUAL BASIC
TALLER No 1. CREACIÓN DE BASE
DE DATOS CON VISUAL BASIC
1. Agregar un
elemento BD de
SQL. Con nombre
carros.mdf
El archivo mdf contiene
toda la base de datos;

La información de
registro de la base de
datos, se guarda en un
archivo .ldf.
TALLE No 1. CREACIÓN DE BASE DE
DATOS CON VISUAL BASIC 2. Aparece la ventana de
configuración de
orígenes de datos.
Por el momento
cancelarla.
3. En el explorador de
soluciones aparece
el archivo de BD
creado

En el explorador de
soluciones aparece el
archivo de BD creado
TALLER No 1. CREACIÓN DE BASE DE
DATOS CON VISUAL BASIC
4. Cierre la conexión haciendo click
derecho sobre la base de datos.
5. Para abrir nuevamente la conexión
• Doble click en la base de datos
• Actualizar la ventana
• Click derecho//Modificar
conexión.
TALLER No 1. CREACIÓN DE BASE DE
DATOS CON VISUAL BASIC
4. Busque el nombre de la BD,
pruebe la conexión y acepte
TALLER No 2. CREACIÓN DE TABLAS
CON VISUAL BASIC
5. En el Explorador de
bases de datos, haga
clic con el botón
secundario del mouse
en el icono de carpeta
de la tabla y seleccione
Agregar nueva tabla.

La nueva columna se
llamara ColorID, tipo
entero y no permitirá
valores nulos. Esta
columna será la clave
principal.
TALLER No 2. CREACIÓN DE TABLAS
CON VISUAL BASIC
La clave
principal será
también una
identidad.
TALLER No 2. CREACIÓN DE TABLAS
CON VISUAL BASIC
6. Según el diagrama de la base de datos, agregue los otros dos campos. Guarde la
tabla con el nombre de Color

7. Agregar las tablas siguientes según el diagrama.


TALLER No 3. CREACIÓN DE
RELACIONES CON VISUAL BASIC
8. Agregar un nuevo
diagrama de base de datos
TALLER No 3. CREACIÓN DE
RELACIONES CON VISUAL BASIC
9. Agregar todas las
tablas
TALLER No 3. CREACIÓN DE
RELACIONES CON VISUAL BASIC
10. Después de tener el
diagrama guarde todo, y
asígnele el nombre de
DiagramaCarros
TALLER No 3. CREACIÓN DE
RELACIONES CON VISUAL BASIC
11. Verificar que los
campos que vamos a
relacionar sean los
correctos y acepte.
TALLER No 3. CREACIÓN DE
RELACIONES CON VISUAL BASIC
12. Aceptar y crear las
otras relaciones.
TALLER No 3. CREACIÓN DE
RELACIONES CON VISUAL BASIC
TALLER No 4. AÑADIR DATOS A LA
TABLA
TALLER No 4. AÑADIR DATOS A LA
TABLA

13. Añadir los datos a


la tablas
TALLER No 4. AÑADIR DATOS A LA
TABLA
TALLER No 5. COMPROBAR CLAVES
EXTERNAS
Ahora comprobará que una de las restricciones de clave externa
funciona correctamente. Abra la tabla Make haciendo clic con el
botón secundario del mouse en la tabla Make y seleccionando
Mostrar datos de tabla.
Elimine la primera fila haciendo clic en el campo situado más a la
izquierda, donde suele aparecer el lápiz.
TALLER No 6. Mostrar datos en
DataGridView 14. Agregar un control de tipo
DataGridView al formulario

15. Agregar Origen de datos


del proyecto
TALLER No 6. Mostrar datos en
DataGridView
16. Seguir el
asistente y agregar
al GridView la
tabla colores.
INTRODUCCIÓN A ADO.NET
ADO.NET ofrece un acceso coherente a orígenes de datos, como Microsoft SQL Server,
así como a orígenes de datos facilitados mediante OLE DB y XML. Las aplicaciones
para usuarios que comparten datos pueden utilizar ADO.NET para conectar a estos
orígenes de datos y recuperar, manipular y actualizar los datos.
INTRODUCCIÓN A ADO.NET
 ADO.NET separa limpiamente el acceso a datos de la manipulación de datos y crea
componentes discretos que se pueden usar por separado o conjuntamente. Incluye
proveedores de datos de .NET Framework para conectarse a una base de datos,
ejecutar comandos y recuperar resultados. Esos resultados se procesan directamente
o se colocan en un objeto DataSet de ADO.NET con el fin de exponerlos al usuario
para un propósito específico, junto con datos de varios orígenes, o de utilizarlos de
forma remota entre niveles.
 El objeto DataSet de ADO.NET también puede utilizarse independientemente de un
proveedor de datos de .NET Framework para administrar datos que son locales de la
aplicación o que proceden de un origen XML.
INTRODUCCIÓN A ADO.NET
Las clases de ADO.NET se encuentran en System.Data.dll y están integradas con las
clases de XML incluidas en System.Xml.dll. Al compilar código que utilice el espacio de
nombres System.Data, haga referencia tanto a System.Data.dll como a System.Xml.dll.
INTRODUCCIÓN A ADO.NET
 ADO.NET es por lo tanto, un conjunto de clases que nos permiten leer e interactuar
con fuentes de datos almacenadas en bases de datos y otras fuentes de
almacenamiento de datos. Entre todas las clases de este nombre de espacio,
destacaremos la clase DataView, DataSet y DataTable.
 Algo que destaca a ADO.NET sobre otros métodos de acceso, es que nos permite el
desarrollo de aplicaciones en n-capas.
 Aún y así, existe otro detalle a tener en cuenta a la hora de trabajar con fuentes de
datos junto a las clases y objetos de la tecnología .NET, y es que podemos trabajar
con fuentes de datos conectadas o fuentes de datos desconectadas.
INTRODUCCIÓN A ADO.NET—FUENTES
DE DATOS CONECTADAS.
 Requiere que exista un canal de comunicación existente entre la aplicación y la
fuente de datos en todo momento. De esta manera, la conectividad con la
aplicación, la apertura de la conexión, etc., que es la tarea más pesada en la
comunicación de una aplicación con una fuente de datos, permanece abierta
mientras se trabaja con la fuente de datos, estemos en un instante dado
manipulando datos de la fuente de datos o no. Por decirlo de otra forma, la puerta
de acceso la hemos dejado abierta y pasaremos de una habitación a otra y viceversa
cuando queramos.
INTRODUCCIÓN A ADO.NET—FUENTES DE DATOS DESCONECTADAS.

 El trabajo con fuentes de datos desconectadas, requiere que cuando se accede a la


base de datos, se recoja no sólo una copia de los datos con los que vamos a trabajar,
sino que además se almacene una copia de la estructura de la tabla o tablas que
hemos decidido descargar y otros datos relacionados con las tablas. En sí, es una
copia exacta o una foto exacta de los datos de la tabla o tablas y de todas las
características de la tabla o tablas. Por lo tanto, se abre un canal de comunicación,
se recogen los datos para trabajar con ellos y se cierra nuevamente el canal de
comunicación. Esos datos se almacenan en memoria, y se trabaja por lo tanto, con
los datos de memoria, no con la fuente de datos directamente como en el caso
anterior dónde trabajábamos con fuentes de datos conectadas.
INTRODUCCIÓN A ADO.NET—FUENTES DE DATOS DESCONECTADAS.

La única particularidad a tener en cuenta en este último caso, es que como


lógicamente haremos una copia de la estructura, propiedades, características y datos
de la tabla o tablas con las que queremos trabajar de forma desconectada, no es muy
recomendable por no decir totalmente prohibido, hacer una copia de cualquier tabla,
ya que podemos sobrecargar la aplicación y afectar considerablemente en el
rendimiento de ésta.
COMPONENTES DE ADO.NET --- PROVEEDORES DE DATOS

PROVEEDOR DE DATOS DE .NET DESCRIPCIÓN


FRAMEWORK
Proveedor de datos de .NET Framework para SQL Proporciona acceso de datos para Microsoft SQL
Server Server versión 7.0 o posterior. Utiliza el espacio de
nombres System.Data.SqlClient.
Proveedor de datos de .NET Framework para OLE DB Para orígenes de datos que se exponen mediante OLE
DB. Utiliza el espacio de nombres System.Data.OleDb.

Proveedor de datos de .NET Framework para ODBC Para orígenes de datos que se exponen mediante
ODBC. Utiliza el espacio de nombres
System.Data.Odbc.
Proveedor de datos de .NET Framework para Oracle Para orígenes de datos de Oracle. El proveedor de
datos de .NET Framework para Oracle es compatible
con la versión 8.1.7 y posteriores del software de
cliente de Oracle y utiliza el espacio de nombres
System.Data.OracleClient.
COMPONENTES DE ADO.NET --- PROVEEDORES DE DATOS-- OBJETOS

OBJETO DESCRIPCIÓN
Connection Establece una conexión a un origen de datos determinado. La
clase base para todos los objetos Connection es DbConnection.

Command Ejecuta un comando en un origen de datos. Expone Parameters


y puede ejecutarse en el ámbito de un objeto Transaction de
Connection. La clase base para todos los objetos Command es
DbCommand.
DataReader Lee una secuencia de datos de sólo avance y sólo lectura desde
un origen de datos. La clase base para todos los objetos
DataReader es DbDataReader.
DataAdapter Llena un DataSet y realiza las actualizaciones necesarias en el
origen de datos. La clase base para todos los objetos
DataAdapter es DbDataAdapter.
PROVEEDOR DE DATOS DE .NET
FRAMEWORK PARA SQL SERVER
El siguiente código muestra como se puede incluir el espacio de nombres para el
proveedor de datos de SQLServer.
Imports System.Data.SqlClient
UTILIZAR DATA SETS EN ADO .NET
TALLER No 7. ADO.NET
Taller No 8. MOSTRAR LA
INFORMACIÓN DE UNA TABLA.
TALLER No 9. EJEMPLO DE ACCESO
CONECTADO A DATOS
TALLER
REALIZAR LAS CONSULTAS AGREGANDO LAS TABLAS MAKE y CARTYPE), MOSTRARLAS
EN UN MENSAJE..

También podría gustarte