Beruflich Dokumente
Kultur Dokumente
Ingeniería de Sistemas
CONTENIDO:
TEMA:
Los sistemas de gestión de base de datos organizan y estructuran los datos de tal modo
que puedan ser recuperados y manipulados por usuarios y programas de aplicación. La
estructura más importante de una base de datos relacional son las tablas. En esta sesión
aprenderemos a creerlas y relacionarlas de la manera ideal.
OBJETIVOS ESPECIFICOS:
- Crear tablas desarrollando algún caso pequeño de manera que el alumno pueda
comprender el uso de las relaciones entre ellas.
Una tabla es una colección de datos sobre una entidad (Persona, lugar,
cosa) especifica, que tiene un número discreto de atributos designados
( por ejemplo cantidad o tipo). Las tablas están en el corazón de SQL
Server y del modelo relacional en general. Las tablas son fáciles de
entender ya que son prácticamente iguales a las listas que utiliza de
manera cotidiana. En SQL Server una tabla suele denominarse tabla de
base, para hacer énfasis sobre donde se almacenan los datos. La
utilización de <<Tabla de base>>, también distingue la tabla de una vista
(View), una tabla virtual que es una consulta interna de una tabla base.
Los atributos de los datos de una tabla (como tamaño, color, cantidad,
fecha, etc) toman la forma de columnas con nombre en la tabla.
a. Nombre de columna:
Pueden ser iguales a los nombres de las columnas de otras tablas
b. Tipo de datos
Identifica la clase de datos que la columna almacenará.
c. Si la columna contiene datos requeridos
La cláusula NOT NULL impide que aparezcan valores NULL en
la columna o en caso contrario admite valores NULL
Como recomendación podemos probar con estos consejos al escoger tipos de datos:
• Si se necesita almacenar datos enteros desde 0 hasta 255, usar el tipo de dato
tinyint.
Las columnas con tipos de datos tinyint usan solamente 1 byte para almacenar
sus valores, en comparación con 2 bytes, 4 bytes y 8 bytes usados para guardar
las columnas con smallint, int y bigint respectivamente.
• Si se necesita guardar datos enteros desde -32,7658 hasta 32,767, usar
smallint.
Las columnas con tipo de dato smallint usan solamente 2 bytes para almacenar
sus valores, a diferencia de los 4 bytes y 8 bytes de los tipos de datos int y bigint
respectivamente.
• Si se necesita almacenar datos enteros desde -2,147,483,648 hasta
2,147,483,647, usar int.
Las columnas con tipo de dato int usan solamente 4 bytes para guardar sus
valores, mientras que los bigint usan 8 bytes. Se puede utilizar si es que por
ejemplo se necesita catalogar una biblioteca con más de 32,767 libros.
• Usar smallmoney en vez de money, si se necesita guardar valores monetarios
desde -214,748.3648 hasta 214,748.3647.
Las columnas con tipo de dato smallmoney usan solamente 4 bytes para
guardar sus valores, en comparación con los 8 bytes que son usados cuando las
columnas tienen tipo de dato money. Por ejemplo si necesitas almacenar los
sueldos mensuales de los empleados.
• Usar smalldatetime en vez de datetime, si se necesita guardar la fecha y hora
desde Enero 1 de 1900 hasta Junio 6 del 2079, con exactitud al minuto.
Las columnas con smalldatetime usan solamente 4 bytes para guardar sus
valores, en comparación con los 8 bytes usados para guardar valores de las
columnas con datetime. Si necesitas almacenar la fecha de ingreso de un
empleado a la compañía utiliza este tipo de dato.
• Usar columnas varchar/nvarchar en vez de text/ntext cuando sea posible.
Porque SQLServer almacena las columnas text/ntext en las páginas de tipo
Text/Image separado del resto de datos que están en las páginas de Datos, esto
hace que tome más tiempo obtener los valores text/ntext.
Se debe analizar cada uno de los atributos para determinar qué norma de
integridad puede afectarlo para lograr los objetivos de la seguridad.
TIPOS DE RESTRICCIONES:
Las restricciones son un método estándar ANSI para forzar la integridad de los
datos.
Garantizan que los datos ingresados en las columnas sean valores válidos y que
se mantengan las relaciones entre las tablas.
Indica el atributo o atributos que almacenaran el dato que los relacionará con
otra entidad. Este atributo en la otra entidad debe ser un PK para poder
establecer una adecuada relación.
Cuando se define la restricción FK sobre un (o unos) atributo(s) de una entidad
se obliga a:
- el dato que se desea almacenar en el atributo FK, debe haber sido
previamente registrado en la entidad que contiene el PK.
- Al tratar de eliminar el dato en la entidad que contiene el atributo
PK, previamente se debe eliminar el dato en la entidad que contiene el
FK.
UNIQUE (UN)
Garantiza que cada valor en una columna es único. Permite valores únicos.
Cuando se definen la restricción UN sobre un (o unos) atributo(s) de una entidad
se obliga a:
- no repetir los valores definidos como únicos
IDENTITY ( ID)
CHECK (CK)
Indica que algunos atributos pueden ser validados dentro de un rango de valores.
DEFAULTS
RESTRICCIONES (CONSTRAINTS)
2) Implementamos las tablas, las llaves primarias, las llaves foráneas y las
relaciones en una forma directa
A continuación detallaremos ambos caso.:
EJERCICIO1 : crear una base de datos llamada Ventas en una carpeta llamada base
de datos, tamaño máximo de 50MB y con un porcentaje de crecimiento del 5%.
CREACIÓN DE TABLAS
USE VENTAS
EL PROCEDIMIENTO sp_help
Genera un reporte con información a cerca de la definición de un objeto de la base de
datos activa. Todo los usuarios de la base de datos pueden ejecutar este procedimiento.
Sintaxis:
sp_help nombre_objeto_basedatos
sp_help cliente
En una tabla podemos añadir nuevas columnas, eliminar columnas, cambiar las
propiedades de una columna, añadir o eliminar restricciones.
ALTER TABLE
SINTAXIS:
.
.
2) Implementamos las tablas, las llaves primarias, las llaves foráneas y las
relaciones en una forma directa
EJERCICIO PROPUESTO
Se desea crear la base de datos de una institución que brinda cursos de extensión
profesional. Los interesados en los cursos se pueden matricular sin ninguna
restricción, y además tienen facilidades para pagar el costo de los cursos.
A continuación se presenta el modelo físico SQL Server de la base de datos a crear.:
PARA RECORDAR:
Recuerde siempre que las tablas son el corazón de las bases de datos relacionales en
general y de SQL Server en particular. Las restricciones de integridad aseguran que la
clave primaria identifique unívocamente a cada entidad representada de la base de datos
y además aseguran que las relaciones entre entidades de la base de datos se preserven
durante las actualizaciones.
LABORATORIO 4
TEMA:
En esta sección veremos como leer el contenido de una tabla mediante la ejecución de
consultas sencillas a través de la instrucción SELECT.
OBJETIVOS ESPECIFICOS:
Utilizar los comandos SQL de manera que nos permita recuperar la información de
alguna base de datos.
CONTENIDO
• Introducción a las consultas
• Uso del SELECT, FROM, WHERE, ORDER BY.
Las consultas de selección se utilizan para indicar al motor de datos que devuelva la
información de las bases de datos, esta información es devuelta en forma de conjunto de
registros que se pueden almacenar en objeto recordset. Este conjunto de registros es
modificable.
2. LA INSTRUCCIÓN SELECT
La cláusula SELECT lista los datos a recuperar por la sentencia SELECT. Los
elementos o datos a seleccionar pueden ser columnas de la base de datos o columnas a
calcular por SQL cuando efectúa la consulta o también el asterisco(*) para recuperar
todos los campos de un fichero o tabla.
FROM
La cláusula FROM lista las tablas o ficheros que contienen los datos a recuperar por la
consulta. El formato de esta cláusula es:
a. SINTAXIS BÁSICA:
SELECT * / ListaColumnas
FROM origenTabla
[WHERE condiciónBúsqueda]
b. SINTAXIS COMPLETA:
USE ControlInventario
GO
Un alias define títulos alternativos para los nombres de columna. Si el Alias es una
frase(contiene espacios) debe escribirse entrecomillada.
Ejemplo3:
SELECT idProducto AS Código,
Nombre AS Descripción,
unidadMedida AS Unidad,
precioProveedor AS 'Precio Unitario'
FROM producto
GO
WHERE
La cláusula WHERE dice a SQL que incluya sólo ciertas filas o registros de datos en los
resultados de la consulta, es decir, que tiene que cumplir los registros que se desean ver.
La cláusula WHERE contiene condiciones en la forma:
select IdProveedor,Nombre,Representante,Ciudad
from PROVEEDOR
where ciudad='callao'
SELECT COUNT(*)
FROM ORDEN
WHERE MONTH(FechaOrden)>05
INTO
Crea una nueva tabla e inserta en ella las filas resultantes de la consulta.
Para crear una tabla temporal, el nombre de la tabla debe comenzar con un signo
numérico (#)
ORDER BY
La cláusula ORDER BY ordena los resultados de la consulta en base a los datos de una
o más columnas. Si se omite, los resultados saldrán ordenados por el primer campo que
sea clave en el índice q haya utilizado.
Por tanto, indica como deben clasificarse los registros que se seleccionen. Tiene la
forma:
Para obtener un listado de proveedores por su lugar ordenado por ciudades y dentro de
cada ciudad ordenados por departamentos se utilizaría:
Donde los números son la pocisión actual de los campos mostrados en la cláusula
SELECT
TOP:
Devuelve un cierto número de registros que entran entre el principio o el final de un
rango especificado por una cláusula ORDER BY.
DISTINCT:
Omite los registros que contiene datos duplicados en los campos seleccionados. Para
que los valores de cada campo listado en la instrucción SELECT se incluyan en la
consulta deben ser únicos.
Con otras palabras el predicado DISTINCT devuelve aquellos registros cuyos campos
indicados en la cláusula SELECT posean un contenido diferente.
LABORATORIO 5
CONSULTAS CONDICIONALES
TEMA:
Las consultas más sencillas para recuperar datos son las que nos ayudarán a entender las
siguientes sesiones. En esta sesión aprenderemos a recuperar algunas filas y a recuperar
algunas columnas en base a una sola tabla
OBJETIVOS ESPECIFICOS:
CONTENIDO
• AND, <,>, = ,<>, …
• IF EXISTS
• BETWEEN, IN, AND, OR, NOT
• LIKE
CONSULTAS CONDICIONALES :
OPERADOR USO
AND Es el “y” lógico. Evalúa dos condiciones y devuelve
un valor de verdad sólo si ambas son ciertas
OR Es el “o” lógico. Evalúa dos condiciones y devuelve
un valor de verdad si alguna de las dos es cierta
NOT Negación Lógica. Devuelve el contrario de la
expresión
• La palabra clave NOT nos sirve para seleccionar filas en donde la condición de
búsqueda sea falsa.
Dos o más condiciones pueden ser combinadas para formar expresiones más complejas
con distintos criterios. Cunado existen dos o más condiciones deberán estar unidas por
AND o OR.
SELECT *
FROM PRODUCTO
WHERE IdProveedor=10 AND IdCategoria=5
EJEMPLO 02:Mostrar los datos del proveedor que sea representante igual a
GORDILLO BARRIGA, SANCHO
OPERADOR SIGNIFICADO
+ Suma
- Resta
* Multiplicación
/ División
** ó ^ Exponenciación
4. OPERADORES DE CARACTERES:
EJEMPLO 08: Mostrar el nombre y apellido del empleado en una solo columna,
fecha de nacimiento.
select IdEmpleado as codigo, Nombres + ApePat + ApeMat as
'Nombres y Apellidos', FechaNacimiento
from empleado
5. OPERADORES DE COMPARACION
Los operadores de comparación comprueban si dos expresiones son o no las mismas. Se
pueden utilizar en todas la expresiones excepto en las de los tipos text, ntext o image.
OPERADOR USO
< Menor que
> Mayor que
<> Distinto de
<= Menor ó igual que
>= Mayor ó igual que
= Igual que
BETWEEN Utilizado para especificar un intervalo de valores
LIKE Utilizado en la comparación de un modelo
IN Utilizado para especificar registros de una base de datos
EJEMPLO 10: Mostrar todos los datos de los Empleados que tengan
menos de 50 años de edad.
EJEMPLO 11: Mostrar todos los datos de los empleados que hayan
nacido antes del mes de junio.
6. BETWEEN
Para indicar que deseamos recuperar los registros según el intervalo de valores de un
campo emplearemos el operador Between cuya sintaxis es:
En este caso la consulta devolvería los registros que contengan en “campo” un valor
incluido en el intervalo Valor1, Valor2 (ambos imclusive). Si anteponemos la condición
NOT devolverá aquellos valores no incluidos en el intervalo.
SELECT *
FROM PRODUCTo
WHERE PrecioProveedor >=12 AND PrecioProveedor<=20
7. IN
Este operador devuelve aquellos registros cuyo campo indicado coincide con alguno de
una lista. Su sintaxis es:
SELECT *
FROM PRODUCTO
WHERE IdCategoria =1 OR IdCategoria =3 OR IdCategoria =5
SELECT *
FROM PRODUCTO
WHERE IdCategoria IN(1,3,5)
8. LIKE
Se utiliza para comparar una expresión de cadena con un modelo en una expresión SQL.
Su sintaxis:
En donde expresión es una cadena modelo o campo contra el que se compara expresión.
Se puede utilizar el operador LIKE para encontrar valores en los campos que coincidan
con el modelo especificado. Por modelo también se puede especificar un valor
completo, o se pueden utilizar caracteres comodín para encontrar un rango de valores de
la siguiente forma:
EJEMPLO 18 : Consultar todos los Empleados que tengan como apellido Paterno
igual a Cardenas.
Carácter Descripción
Comodín
% Cualquier cadena de cero o más caracteres
- Cualquier carácter individual El operador Like
(Subrayado) se puede utilizar
[] Cualquier carácter individual dentro del rango en una expresión
especificado para comparar un
[^] Cualquier carácter individual que no esté dentro valor de un
del rango especificado campo con una
expresión de
cadena. Por ejemplo, si introduce Like c% en una consulta SQL, la consulta devuelve
todos los valores de campo que comiencen por la letra C. en una subconsulta con
parámetros, puede hacer que el usuario escriba el modelo que se va utilizar.
EJEMPLO19: Este ejemplo devuelve los nombres cuyo contenido empiece con una
letra de la A a la D seguida de cualquier cadena.
Ejemplo 20: El siguiente ejemplo retorna todas las columnas de la tabla productos.
El ejemplo sólo retorna las filas de los Productos que no empiece con F o C como
carácter inicial en el nombre del producto.
Ejemplo 22: el siguiente ejemplo retorna todas las columnas de la tabla Productos.
El ejemplo sólo retorna las filas de los Productos que tengan los caracteres Queso
en la columna nombre del producto
Ejemplo 23: El siguiente ejemplo devuelve los nombres de los empleados que
comienzan la letra P seguido de cualquier letra entre A y F y de dos caracteres
cualquiera o cuyo nombre a buscar las 3 primeras letras estén dispuestas de la
siguiente manera: que empiece con la letra J, el segundo carácter cualesquiera y la
tercera letra sea una a: