




























































































Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Prepara tus exámenes
Prepara tus exámenes y mejora tus resultados gracias a la gran cantidad de recursos disponibles en Docsity
Prepara tus exámenes con los documentos que comparten otros estudiantes como tú en Docsity
Los mejores documentos en venta realizados por estudiantes que han terminado sus estudios
Estudia con lecciones y exámenes resueltos basados en los programas académicos de las mejores universidades
Responde a preguntas de exámenes reales y pon a prueba tu preparación
Consigue puntos base para descargar
Gana puntos ayudando a otros estudiantes o consíguelos activando un Plan Premium
Comunidad
Pide ayuda a la comunidad y resuelve tus dudas de estudio
Descubre las mejores universidades de tu país según los usuarios de Docsity
Ebooks gratuitos
Descarga nuestras guías gratuitas sobre técnicas de estudio, métodos para controlar la ansiedad y consejos para la tesis preparadas por los tutores de Docsity
Manual para los alumnos del cibertec
Tipo: Apuntes
1 / 207
Esta página no es visible en la vista previa
¡No te pierdas las partes importantes!
CARRERA DE COMPUTACIÓN E INFORMÁTICA- ADMINISTRACIÓN Y SISTEMAS CIBERTEC
Base de Datos Avanzado I es un curso que pertenece a la Escuela de Tecnologías de
Información y se dicta en las carreras de Administración y Sistemas, y Computación e
Informática. El presente manual ha sido desarrollado para que los alumnos del curso
de Base de Datos Avanzado I puedan optimizar una base de datos logrando alta
disponibilidad, seguridad y rendimiento, todo ello utilizando comandos TRANSACT-
El manual es eminentemente práctico. Se inicia con la creación de la base de datos de
trabajo usando el lenguaje Transact/SQL en el manejador de base de datos relacional
SQL Server 2014. Posteriormente, se efectúa un repaso de las operaciones básicas de
manipulación de datos (Data Manipulation Lenguaje – DML) para hacer uso de
comandos que se emplean en la inserción, modificación y eliminación de los mismos.
A continuación vamos a realizar operaciones de consulta avanzada de base de datos
utilizando cláusulas de unión, de agrupamiento, de combinación, entre otras. A
continuación aprenderemos a manejar la programación TRANSACT-SQL aplicando los
conceptos en cursores, procedimientos almacenados, funciones y desencadenantes o
trigger. Para integrar los temas de actualidad, aprenderemos a manejar datos XML en
la base de datos relacional y finalmente, en la última parte del manual, aprenderemos
a manejar usuarios y generar copias de respaldo de una base de datos y restaurar una
base de datos de SQL SERVER.
Se recomienda la lectura del material de la unidad correspondiente antes de asistir a
clase, con el fin de fomentar la discusión del tema y facilitar la comprensión del mismo.
CARRERA DE COMPUTACIÓN E INFORMÁTICA IEST PRIVADO CIBERTEC
CARRERA DE COMPUTACIÓN E INFORMÁTICA- ADMINISTRACIÓN Y SISTEMAS CIBERTEC
CARRERA DE COMPUTACIÓN E INFORMÁTICA- ADMINISTRACIÓN Y SISTEMAS CIBERTEC
UNIDAD
1.1 Tema 1 : Manejo de una Base de Datos
1.1.1 : Definición de una base de datos
1.1.2 : Creación de una base de datos
1.1.3 : Creación de Filegroup
1.1.4 : Actualización de archivos de una base de datos
1.1.5 : Agregar archivos secundarios a una base de dato
1.2 Tema 2 : Manejo de tablas y esquemas
1.2.1 : Creación de esquemas
1.2.2 : Creación de tipos de datos de usuario
1.2.3 : Creación de una tabla
1.2.4 : Modificación de la estructura de una tabla
1.2.5 : Manejo de una tabla particionada
1.3 Tema 3 : Manejo de restricciones e índices
1.3.1 : Constraints o restricciones Tipos.
1.3.2 : Uso de Identity
1.3.3 : Concepto de Índices, tipos de índices.
1.3.4 : Índice particionado
CARRERA DE COMPUTACIÓN E INFORMÁTICA IEST PRIVADO CIBERTEC
Para crear una base de datos en SQL Server, se ejecuta la instrucción CREATE
DATABASE en modo de confirmación automática (modo predeterminado de
administración de transacciones) y no se permite en una transacción explícita o
implícita.
Cada vez que se crea, modifica o quita una base de datos de usuario, se debe hacer
una copia de seguridad de la base de datos master.
Cuando cree una base de datos, defina el máximo tamaño posible para los archivos de
datos según la cantidad de datos máxima prevista para la base de datos.
En una instancia de SQL Server se pueden especificar 32,767 base de datos como
máximo.
Sintaxis:
CREATE DATABASE database_name
[ PRIMARY ]
[ ,
[ LOG ON
Para adjuntar una base de datos
CREATE DATABASE database_name
ON
FOR { { ATTACH [ WITH <attach_database_option> [ , ...n ] ]
NAME = logical_file_name ,
FILENAME = { 'os_file_name' | 'filestream_path'
} [ , SIZE = size [ KB | MB | GB | TB ] ]
[ , MAXSIZE = { max_size [ KB | MB | GB | TB ] | UNLIMITED } ]
[ , FILEGROWTH = growth_increment [ KB | MB | GB | TB | % ]
FILEGROUP filegroup_name [ CONTAINS FILESTREAM ] [ DEFAULT ]
CARRERA DE COMPUTACIÓN E INFORMÁTICA IEST PRIVADO CIBERTEC
<attach_database_option> ::=
<service_broker_option>
| FILESTREAM ( DIRECTORY_NAME = { 'directory_name' | NULL }
Crear una base de datos snapshot
CREATE DATABASE database_snapshot_name ON
NAME = logical_file_name,
FILENAME = 'os_file_name'
) [ ,...n ]
AS SNAPSHOT OF source_database_name
Caso Práctico: Creando una base de datos Comercial
Caso Práctico: Creando una base de datos CiberData definiendo cada uno de sus
archivos
CARRERA DE COMPUTACIÓN E INFORMÁTICA- ADMINISTRACIÓN Y SISTEMAS CIBERTEC
malintencionado que podría ejecutar código Transact-SQL no deseado o provocar
errores al modificar el esquema o la estructura de la base de datos física. Para usar
una base de datos desde un origen desconocido o que no sea de confianza, ejecute
Caso Práctico: Adjuntando una base de datos NewCiberData indicando los filename.
Los FileGroups es un concepto muy importante sobre todo cuando vamos a crear una
base de datos ya que nos va ayudar mejorar el rendimiento de las consultas y la
administración de la data en una BD.
Como concepto FileGroup es una unidad lógica que almacena archivos físicos que
pueden estar en distintas unidades de disco o en distintos discos físicos, la idea del
Filegroup es la de aprovechar el procesamiento paralelo cuando el motor de BD
requiere realizar operaciones de I/O al disco duro.
Tener en cuenta que cuando creamos una Base de Datos, el SQL crea un FileGroup
por defecto: ON PRIMARY, en este FileGroup se almacenan todas las tablas del
sistema (si es que no sabías te lo cuento, cada vez que creamos una nueva Base de
datos se hace una copia de todas las tablas de la BD Model) y todos los objetos que
vayamos creando.
La recomendación general es dejar a las tablas del sistema en el FileGroup por
Defecto (el que crea SQL) y crear un Filegroup para los objetos de usuario (las tablas,
SP, Trigger, etc creado por nosotros), adicionalmente también podrías crear un
Filegroup para almacenar data histórica que sabemos que no cambia en el tiempo. Por
último tener en cuenta que el archivo de transacciones no se asocia a ningún
FileGroup (Toda BD consta de un archivo mdf, opcionalmente archivos ndf y uno o
más archivos ldf).
Este query asume que UD está familiarizado con los conceptos de archivos mdf, ndf y
ldf.
/Agregando FileGroups en la Base de Datos/
ALTER DATABASE BD_Negocios ADD FILEGROUP
DATA_1 ALTER DATABASE BD_Negocios ADD
FILEGROUP DATA_2 Go
/*Agregando archivos secundarios a los
FileGroups*/ ALTER DATABASE BD_Negocios
ADD FILE (NAME = Data1,
CARRERA DE COMPUTACIÓN E INFORMÁTICA- ADMINISTRACIÓN Y SISTEMAS CIBERTEC
FILENAME = 'D:\DATA1.ndf', SIZE = 1 MB,
Go
ALTER DATABASE BD_Negocios
ADD FILE (NAME = Data2,
FILENAME = 'D:\DATA_2.ndf',
Go
El comando ALTER DATABASE permite modificar los archivos y grupos de archivos
asociados con la base de datos. Permite agregar o eliminar los archivos y grupos de
archivos de una base de datos, y los cambios de los atributos del archivo de una base
de datos.
Sintaxis:
<add_or_modify_files>
| <add_or_modify_filegroups>
<add_or_modify_files> :: =
ADD FILE
[A FILEGROUP {} filegroup_name]
| ADD LOG FILE
| REMOVE FILE logical_file_name
| MODIFY
<add_or_modify_filegroups> :: =
| ADD FILEGROUP filegroup_name
| REMOVE FILEGROUP filegroup_name
| MODIFY FILEGROUP filegroup_name
{<filegroup_updatability_option>
| NOMBRE = new_filegroup_name
CARRERA DE COMPUTACIÓN E INFORMÁTICA IEST PRIVADO CIBERTEC
Para definir un archivo secundario se puede hacer de dos formas:
Creando los archivos desde el comando CREATE DATABASE
Agregando los archivos secundarios a la base de datos ya creada a través el
comando ALTER DATABASE
Caso Práctico: Crear la base de datos CiberData agregando el archivo secundario.
Caso Práctico: Agregar un archivo secundario a la base de datos CiberData
/*El administrador evalúa que su base de datos se llenara pronto por lo que debe
agregar un archivo secundario llamado CiberDataSec cuyo tamaño inicial será
de 5MB, su tamaño máximo es de 500MB y su crecimiento es de 10%*/
Caso Práctico: Eliminar un archivo secundario a la base de datos CiberData
/El administrador debe eliminar el archivo secundario/
CARRERA DE COMPUTACIÓN E INFORMÁTICA IEST PRIVADO CIBERTEC
1.2. MANEJO DE TABLAS Y ESQUEMAS
Una tabla es un objeto de base de datos, utilizada para organizar y presentar
información.
Las tablas se componen de dos estructuras:
Registro: es cada una de las filas en que se divide la tabla. Cada registro
contiene datos de los mismos tipos que los demás registros. Ejemplo: en una
tabla de nombres y direcciones, cada fila contendrá un nombre y una dirección.
Campo: es cada una de las columnas que forman la tabla. Contienen datos de
tipo diferente a los de otros campos. En el ejemplo anterior, un campo
contendrá un tipo de datos único, como una dirección, o un número de
teléfono, un nombre, etc.
A los campos se les puede asignar, además, propiedades especiales que afectan a los
registros insertados. El campo puede ser definido como índice o autoincrementable, lo
cual permite que los datos de ese campo cambien solos o sean el principal a la hora
de ordenar los datos contenidos.
Cada tabla creada debe tener un nombre único en la Base de Datos, haciéndola
accesible mediante su nombre o su seudónimo (Alias) (dependiendo del tipo de base
de datos elegida). La estructura de las tablas viene dado por la forma de un archivo
plano, los cuales en un inicio se componían de un modo similar.
Un esquema es un contenedor de objetos. Cada esquema es un espacio de nombres
distinto que existe de forma independientemente del usuario de base de datos que lo
creó. Cualquier usuario puede ser propietario de un esquema, y esta propiedad es
transferible.
A partir de SQL Server 2005, los esquemas son entidades explícitas reflejadas en los
metadatos y, como resultado, los esquemas solo pueden tener un propietario. Sin
embargo, un único usuario puede poseer muchos esquemas.
Los esquemas te sirven sobre todo para organizar los objetos, y también la seguridad
de la base de datos, especialmente cuando tengas varios usuarios. Si un usuario
posee un esquema, tiene por defecto permisos sobre los objetos de ese esquema que
no tendrán otros usuarios, a menos que se les hayan concedido expresamente.
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.
CARRERA DE COMPUTACIÓN E INFORMÁTICA- ADMINISTRACIÓN Y SISTEMAS CIBERTEC