Anda di halaman 1dari 76

UNIVERSIDAD NACIONAL DE INGENIERIA

SQL 2014 Implementación

Ing. Wilman Vásquez Gutiérrez


Consultor en Tecnologías y Sistemas de Información
MES-ABRIL

“La gente que mejor da, no es la que


entrega algo de su bolsillo, sino de su
corazón...”
Logro

Comprender el diseño de índices


y elaborar mantenimiento con
sentencias en SQL.
Sesión 02

 Creación y optimización de índices.


 Diseño de índices.
 La sentencia SELECT, precedencia de
modificadores, campos calculados,
funciones SQL.
 Mantenimiento de datos: Insert, Update y
Delete directo y desde otras tablas.
Creación y optimización de índices

Restricciones

Un constraint es una restricción a un


campo de una tabla, sirven para lograr la
integridad de datos y la relación de las
tablas
¿Qué es un Schema?

 Entidad independiente, contenedor de objetos distintos


del usuario que ha creado esos objetos.
 Un esquema sólo puede ser propiedad de un usuario a
la vez, pero un solo usuario puede ser dueño de muchos
esquemas.

 Esquema por defecto


 El esquema predeterminado es el primer esquema
que se busca al resolver los nombres de objeto no
calificadas. Si no hay ningún esquema predeterminado
se define para una cuenta de usuario, SQL Server
asumirá dbo.
Tipos de Constraint

Null - Not Null

Determinan si se permiten valores Null en la


columna. Null no es estrictamente una
restricción pero se puede especificar
también PERSISTED
PRIMARY KEY

Es una restricción que exige la integridad de


entidad para una o varias columnas
especificadas a través de un índice único

OB. Solo se puede crear una restricción


PRIMARY KEY para una sola tabla
UNIQUE

Es una restricción que proporciona


integridad de entidad para una o varias
columnas especificadas a través de un
índice único. Las tablas pueden tener
múltiples restricciones UNIQUE.
CLUSTERED - NOTCLUSTERED

Indica que se ha creado un índice clúster o


no agrupado para la restricción PRIMARY
KEY O UNIQUE.

De forma predeterminada el valor de las


restricciones PRIMARY KEY es Clustered y
el de las restricciones UNIQUE es
NONCLUSTERED
FOREIGN KEY - REFERENCES

Es una restricción que porporciona


integridad referencial para los datos de la
columna o columnas
CHECK

Es una restricción que exige la integridad del


dominio al limitar los valores posibles que se
pueden escribir en un o varias columnas ,
también se deben marcar como PERSISTED.
Tipos de Datos

• Antes de crear una tabla, debe definir los


tipos de datos para la tabla.
• Los tipos de datos especifica el tipo de
información (caracteres, números o
fechas)
• Microsoft SQL Server proporciona varios
tipos de datos del sistema.
Tipos de Datos
Categoría Tipo de Dato
Entero Int, bigint, smallint, tinyint
Exacto Decimal, numeric
Numérico
Aproximado Float, real
Monetario Money, smallmoney
Fecha y Hora Datetime, smalldatetime
No Unicode Char, varchar, varchar(max), text
Carácter
Unicode Nchar, nvarchar, nvarchar(max), ntext
Binario Binary, varbinary, varbinary(max)
Imagen Image
XML Xml
Especial Bit, cursor, timestamp, sysname, table
Abrir una BD vía Script
Modificar una Tabla Vía Script

1.Se desea agregar una nueva columna a la tabla.


2.- Se desea modificar el tipo de dato de
la columna Nombre.
3.- Se desea eliminar una columna de
la tabla ¿?.
Valores autogenerados para
las columnas

Propiedad Identity
Permite generar valores secuenciales del
sistema, este tipo de valores pueden ser
utilizados en columnas que serán
empleadas como primary key.
1.- Primero tiene que eliminar la columna
que usted desea que contenga el valor
autogenerado
2.- Luego tiene que crear la nueva columna y
esta vez agregar la propiedad Identity.
Mantenimiento a una tabla
Insertar, Eliminar y Actualizar

 Si desea insertar un Nuevo Registro, Se utiliza la


Sentencia Insert into.
Sintaxis:
Insert Into Nombre Tabla (Campos de la Tabla)
Values (Valores a Ingresar)
Se desea agregar 5 registros a la tabla
alumnos.
Si desea Eliminar un Registro, Se utiliza la
Sentencia Delete.

Sintaxis:
Delete Nombre Tabla Where Campo
=Condición
1.Si desea eliminar de la tabla alumno, el
alumno de código 2.

Ejemplo:
Si desea Actualizar un Registro, Se utiliza
la Sentencia Update.

Sintaxis:

Update Nombre Tabla set campo1= valor1, campo2 =


valor2 Where Campo =Condición
Se desea Actualizar de la tabla
alumno, el alumno de código 3.
PRÁCTICA

1.-Generar el siguiente Script de la tabla que se muestra


a continuación, tener en cuenta los tipos de
datos.(Guardar con el Nombre de Proveedor)
2.- Generar el siguiente Script de la tabla que se
muestra a continuación, tener en cuenta los tipos
de datos.( Guardar con el Nombre de Factura)
3.- Generar el siguiente Script de la tabla que se muestra a
continuación, tener en cuenta los tipos de datos.
(Guardar con el Nombre de Producto)
CREAR LAS SIGUIENTES TABLAS Y
BASE DE DATOS

Crear la base de Datos Colegio


Crear las siguientes Tablas
Tabla Alumnos

Tabla Notas
Tabla Curso
Creación de una Clave Primaria (PK)
La columna identifican de forma única
cada fila de la tabla

Sintaxis:
Alter Table Nombre_Tabla
Add constraint Pk_Nombre_Tabla
Primary Key (ColumnaX,ColumnaP,…)
PK_nombre_Tabla es el nombre de la
restricción clave primaria, el nombre de la
tabla con el prefijo PK_.
Columnax, ColumnaP es la columna o
combinación de columnas que se define
como Clave primaria..
Asignar llave primaria a todas
las tablas creadas
anteriormente.

1. Establecer llave Primaria a las demás Tablas.


Creación de una Llave Foránea (FK)
Puede crear una clave externa mediante
la definición de una restricción FOREIGN
KEY cuando cree o modifique una tabla.

Sintaxis :
Alter Table nombre_Tabla
Add Constraint
Fk_Nombre_Tabla_Tabla_Referenciada
Foreign Key (ColumnnaX, ColumnaP)
Fk_nombre_Tabla_Tabla_referencia
da es el nombre de la restricción clave foránea.,
todo con el prefijo FK_.

ColumnaX, ColumnaP, es la columna O


Combinación de columnas que se define como clave
foránea.

Tabla_Referencia, es el nombre de la tabla


primaria con la que se relaciona con la tabla
secundaria que tiene la clave foránea. De modo
predeterminado la clave foránea hace referencia la
clave primaria de la Tabla primaria.
1.Asignar llave foránea todas las
tablas creadas anteriormente.

2.- Establecer llave foránea a las demás Tablas.


Creación de restricción Valor no
Duplicado (Unique)
Especifica que dos registros no puedan
tener el mismo valor en un campo. Se
permiten valores nulos.

Sintaxis:
Alter Table Nombre_Tabla
Add Constraint U_nombre_tabla_nombre_Columna
UNIQUE (Columna X, Columna P,….)
U_nombre_tabla_nombre_columna es el
nombre de la restricción valor no duplicado o
UNIQUE., todo con el prefijo U_.

ColumnaX, ColumnaP, es la columna O


combinación de columnas a la que se aplica la
restricción.
1.Asignar la propiedad Unique al
Campo Curso de la tabla Curso.
Creación de Valor predeterminado
(DEFAULT)
Es el valor que se almacenará
automáticamente en el campo , no
introducimos ningún valor.
Sintaxis:
Alter Table nombre_Tabla
Add Constraint DF_Nombre_Tabla_Nombre_Columna
Default valor_predeterminado for ColumnaX
Df_nombre_tabla_nombre_Columna es el
nombre de la restricción valor predeterminado O
Default. todo con el prefijo DF_.

Valor_Predeterminado es el valor que se


almacena en columna X cuando al insertar una fila no
se especifica el valor para esa columna.
ColumnaX es la Columna a la que se aplica la
restricción
EJEMPLO:

1. Se desea asignar valores por defecto a la Columna


FechaInscripcion de la Tabla Alumnos.
2. En dicha campo se guardara la Fecha actual del
sistema, al momento de ingresar un nuevo registro.
Creación de una Regla de
Validaciones (CHECK)
Puede contener una fórmula o expresión que
evalúa los datos en uno o más campos y
ofrece un valor “Verdadero” o “Falso”.
SINTAXIS:

Alter Table nombre_Tabla


Add constraint
CK_nombre_Tabla_nombre_Columna
Check (Condición)
CK_nombre_tabla_nombre_Columna es
el nombre de la restricción regla de validación
O Check., todo con el prefijo CK_.

Condición es la expresión que determina


como debe ser el valor a ingresar en la
columna afectada por la restricción.
1.Se desea validar los datos del campo nota
de la Tabla Notas.
2.En dicho campo se validara la entrada de
cada Nota ingresada, esta nota esta en
promedio de 0 a 20.
1.Insertar algunos valores dentro de la
Tabla Alumnos.
1.Insertar algunos valores en la tabla.

1.Insertar un valor en la columna nota, que no


este dentro del rango establecido.
1.Como usted puede observar en el panel
resumen aparece un error.
CASO PRACTICO – 2F

TABLA PAIS

CREATE TABLE PAIS


(IDPAIS INT NOT NULL,
NOMBREPAIS VARCHAR(50)
)
TABLA CLIENTE

CREATE TABLE CLIENTES


(IDCLIENTE INT NOT NULL,
NOMCLIENTE VARCHAR(50),
RELACIONAR CLIENTE - PAIS

ALTER TABLE PAISES


ADD PRIMARY KEY (IDPAIS)

ALTER TABLE CLIENTES


ADD FOREIGN KEY (IDPAIS) REFERENCES
PAISES
EJEMPLO 3

TABLA CATEGORIA

Create table categoria(


idcat varchar(11) not null,
descat varchar(50) not null,
primary key(idcat)
)
TABLA PROVEEDOR

Create table Proveedor(


idprov varchar(10) not null,
nombProv varchar(50) not null,
rucProv varchar(11) not null Default
('99999999999'),
RELACION DE LAS TABLAS
Create table Producto(
idprod varchar(10) not null,
nomProd varchar(50) not null,
idcat varchar(11) not null,
idprov varchar(10) not null,
preuni decimal not null,
stock int not null,
CASO PRACTICO
Índices
Es una estructura de datos que permite
acceder a diferentes filas de una misma
tabla a través de un mismo campo
Ejemplo:

En un libro, un índice permite encontrar


información rápidamente sin necesidad de
leer todo el libro.
¿Qué es un Índices ?
Permite acceder a diferentes filas de una misma tabla
a través de un campo (o campos clave).

Para entender cómo trabaja un índice en una tabla; cada tabla se divide en páginas de
datos, o bien en páginas a las que podemos acceder rápidamente a través de un índice.
Ejemplo

Si queremos buscar la palabra zapato, ¿qué


hacemos?
• Leemos todo el diccionario hasta encontrar la
palabra, o
• Buscamos en el índice en que página está la
letra z, y es en esa página donde buscamos.

Los índices se actualizan automáticamente cuando


realizamos operaciones de escritura en la base de datos.
Sintaxis para crear un índice:
Donde :

INCLUDE, Especifica las columnas que no son


claves que se añade en el nivel hoja del índice
no agrupado.

PAD_INDEX, especifica el relleno del índice, el


valor predeterminado es OFF

FILLFACTOR, especifica un porcentaje que


indica que porcentaje de la hoja debe estar
completa, el valor se encuentre entre 1 al 100,
por defecto es 0.
Tipos de Índices

A.- Índice clúster: ordena y almacena las filas


de datos de la tabla o vista por orden en función
de la clave del índice clúster.

B.-Índice único: garantiza que la clave de índice


no contenga valores duplicados y, por tanto,
cada fila de la tabla o vista es en cierta forma
única.

C.-Índices no clúster se pueden definir en una


tabla o vista con un índice clúster o un montón.
--Indice que busca por
fecnac, incluya cod,nom y
ape

Create index idx_fecnac


on tb_alumno(fecnac)
go
--buscar por apealu, donde
su fillfactor es 70

Create index idx_apealu


on tb_alumno(apealu)
go
Caso Práctico: Defina la tabla
tb_boleta y sus índices

--crear la tabla tb_boleta


create table tb_boleta(
nbol int identity(1,10) not null,
fbol datetime,
go
--Defino el constraint de clave
primaria

alter table tb_boleta add


Primary Key(nbol)
go
--defina el indice por nbol y
monto

Create nonclustered index idx_cliente


on tb_boleta(cliente)
Include(nbol,monto)
With(fillfactor=75)
go
-- defina el indice de
fecha, para utilizar
búsquedas

create nonclustered index


idx_fbol
on tb_boleta(fbol)
go
Aquí tenemos algunos ejemplos:

SQL Server proporciona el objeto sys.indexes, el cual permite listar los


índices que son administrados por una base de datos.

--listar los indices que inicien con idx

select * from sys.indexes


Where name 'idx'
go
EN UNA BASE DE DATOS

Un índice permite:

Que la BD busque datos en una tabla.


Liste los valores de una tabla con las
posiciones de almacenamiento
Contiene una entrada con una o varias
columnas (la clave de búsqueda)
¿Qué es un Clustered Index?
 Son índices agrupados se clasifican y
almacenan las filas de datos en la
tabla o vista según sus valores clave,
se pueden almacenar en un solo
orden.
¿Qué es un Not Clustered Index?
 Son índices no agrupados tienen una
estructura separada de las filas de
datos. Un índice no agrupado contiene el
valor clave.
O
B En la implementación de una BD:
S
E 1.-El DBA (Data Base Administrador, debe
R tener en cuenta todas las posibilidades para
asegurar la Integridad de los Datos.
V
A 2.- Así los Usuarios puedan almacenar los
C datos correctos
I
3.- En la BD, un Modelo Conceptual es la
O mas importante para la implementación de
N una BD.

Anda mungkin juga menyukai