SQL Server Parte 1
SQL Server Parte 1
Introducción
Bienvenidos, soy el Ing. Carlos Alberto Guisbert Salazar, docente de la materia Base de Datos, el
presente manual ha sido desarrollado con el objetivo de brindar los conocimientos suficientes y
necesarios para la administración del sistema gestor de base de datos Microsoft SQL Server
20XX; de esta forma poder satisfacer las necesidades de información para la toma de decisiones
en las organizaciones. Este material didáctico lo elabore con base a la experiencia profesional
en el campo laboral que desempeño. Queda prohibida su reproducción parcial o total sin el
permiso del autor.
SQL Server es un sistema integrado de gestión de base de datos; hoy en día las organizaciones
necesitan tener un control automatizado de sus archivos, es decir, una simple factura no
necesariamente tendrá que ser física, con esto se pueden dejar de lado la papelería para pasar
a los archivos digitales; SQL puede tener el control de sus archivos administrándolos de manera
eficaz, rápida y segura.
La programación Transact SQL propone realizar procesos de manera profesional por medio de
scripts que se ejecutarán tanto en el cliente como en el servidor y que dominarlo será de gran
utilidad. Los lenguajes de Programación siembran la cultura de la programación nativa mientras
que SQL Server propone instrucciones o sentencias para la obtención de resultados, Transact
SQL rompe ese esquema y le quita un poco de protagonismo a los lenguajes de programación
usando sus estructuras que son entendidas en el motor de base de datos de SQL Server.
Transact SQL Server tiene como fundamento primordial gestionar la información almacenada
en una base de datos sin dejar toda la responsabilidad de la gestión a los lenguajes de
programación, más bien usa de ellos sus estructuras como If o While para procesar reglas de
negocio.
CAPITULO
N° 1
Microsoft SQL Server
Definición de Microsoft SQL Server
Microsoft SQL Server es un sistema para la gestión de bases de datos desarrollado por la
empresa Microsoft, basado en el modelo relacional. Sus lenguajes para consultas son Transact-
SQL y ANSI SQL. Microsoft SQL Server constituye la alternativa de Microsoft a otros potentes
sistemas gestores de bases de datos como son Oracle, PostgreSQL o MySQL. SQL Server ha
estado tradicionalmente disponible solo para sistemas operativos Windows de Microsoft, pero
desde 2016 está disponible para GNU/Linux, y a partir de 2017 para Docker también.
Puede ser configurado para utilizar varias instancias en el mismo servidor físico, la primera
instalación lleva generalmente el nombre del servidor, y las siguientes - nombres específicos
(con un guion invertido entre el nombre del servidor y el nombre de la instalación).
Para el desarrollo de aplicaciones más complejas (tres o más capas), Microsoft SQL Server
incluye interfaces de acceso para varias plataformas de desarrollo, entre ellas .NET, pero el
servidor solo está disponible para Sistemas Operativos.
El tipo NUMERIC fue mejorado para ser usado como identificador de columna a partir de la
versión 2008 R2.
lanzamientos, se proponen service packs con mejoras y correcciones de bugs, y hotfixes por
problemas urgentes en el sistema de seguridad o bugs críticos. Veamos una tabla de
comparación Versión, Año y Nombre clave en donde veremos la evolución de SQL Server hasta
versiones recientes:
Programación
T-SQL (Transact-SQL) es el principal medio de interacción con el Servidor, el cual permite realizar
las operaciones claves en SQL Server, incluyendo la creación y modificación de esquemas de
base de datos, inserción y modificación de datos en la base de datos, así como la administración
del servidor como tal. Esto se realiza mediante el envío de sentencias en T-SQL y declaraciones
que son procesadas por el servidor y los resultados (o errores) regresan a la aplicación cliente.
Ediciones y servicios
Cada versión de SQL Server posee distintas versiones con distintos precios (para cada versión)
que dependen también en la configuración física del servidor. A continuación se presentan las
versiones principales:
Enterprise
Contempla todas las características (deshabilitadas en otras ediciones). Es el tipo de versión con
más privilegios existente en el mercado.
Developer
Una edición con las mismas características que la Enterprise, con el fin de ser instalada
solamente en ambiente de desarrollo y no en producción. Si se desarrolla para una edición
Standard hay que tener en cuenta las características deshabilitadas para esta versión.
Standard
Una versión limitada según la configuración del servidor y sus características, diseñada para
servidores inferiores. Por ejemplo: en la versión 2012, la edición Enterprise soporta un número
ilimitado de procesadores, y la agregación de memoria y CPUs en caliente sin la interrupción del
servicio o del servidor; mientras la edición Standard está limitada a 16 procesadores y no soporta
la "agregación en caliente".
Express
Una versión gratuita que posibilita la creación de bases de datos limitadas con características
básicas, con el fin de apoyar aplicaciones que necesiten una solución simple para
almacenamiento de una cantidad limitada de datos, o usuarios que sus recursos y necesidades
son limitados. En la versión 2012, esta edición puede utilizar un máximo de 1 GB de memoria, y
almacenar no más de 10GB, funciona en servidores con un número máximo de cuatro
procesadores. Estas limitaciones se mantienen en la versión 2014 (4 cores, 1GB ram, y 10Gb por
base de datos).
SQL Azure
Es una versión de SQL Server en la nube, que permite pagar mensualmente por el servicio sin la
necesidad de mantener un servidor físico (On Premise). La empresa paga solo por el servicio, y
el servicio es manejado a través de torres de servidores en distintos lugares en el mundo.
Con SQL Azure no es necesario instalar, mantener o actualizar un servidor físico; a pesar de que
este servicio depende de aspectos relacionados con problemas de seguridad con respecto a su
presencia fuera de la empresa y a la disponibilidad de conexión a Internet.
Durante un tiempo, el servicio fue ampliado con la opción de crear un servidor virtual por la red,
e instalar SQL Server tanto como uno de los servicios competidores, y manejar el servidor virtual
como si fuera un servidor físico local (aunque físicamente no está accesible); y se puede
diferenciar entre la opción original que esta denominada PAAS (Platform as a Service:
Plataforma como un Servicio) y la nueva opción de los servidores virtuales denominada IAAS
(Infrastructure as a Service: Infraestructura como un Servicio).
Este servicio esta otorgado por Microsoft desde 2009 y se une a servicios similares de empresas
de third-party.
Interfaz de usuario
SQL Server proporciona unas interfaces que han cambiado durante los años, de los cuales los
más conocidos son las interfaces gráficas que están utilizadas como herramienta de desarrollo
estándar a los desarrolladores y administradores.
La interfaz gráfica hasta 2005 incluyó el Enterprise Manager con una vista de árbol de los
distintos objetos y con la capacidad de manejarlos; y el Query analyzer como interfaz textual
para ejecutar comandos de TSQL.
En la versión 2005 las dos herramientas se unificaron a una –el SQL Server Management Studio
(SSMS), y a partir de 2008 fue incluida la opción de trabajar con Visual Studio– la interfaz
estándar de desarrollo de Microsoft (a los distintos lenguajes, BI, etc.). Otra interfaz opcional es
la utilización de la Línea de comandos, con herramientas como SQLCmd, ISQL, OSQL que
posibilita la ejecución de scripts y procesamiento por lotes. Desde 2008 se puede desarrollar con
SQLCmd (SQL Command) a través del SSMS sin interconectarse al interfaz textual de Windows.
Otra opción en el ámbito de scripts es la utilización del lenguaje de scripts Powershell de
Microsoft.
Aparte de las interfaces estándares de SQL Server, se puede ejecutar comandos de TSQL con
herramientas de conexión como ODBC y OLE-DB.
Servicios
Al contrario de sistemas de bases de datos como Microsoft Access que son "pasivas" y contienen
un archivo al cual hay que conectar y la ejecución de los comandos se lleva a cabo en el cliente
(la computadora de usuario), en SQL Server hay número de servicios, software que están
ejecutadas en la memoria del servidor por parte del sistema, y por lo tanto aprovechan las
capacidades del servidor que es más potente que los clientes, previenen congestión en la red, y
pueden programar tareas que corran aunque el cliente no está conectado.
Estas bases de datos, creadas por parte de los usuarios, incluyen básicamente un archivo de
datos (con el sufijo mdf) con las tablas y los distintos objetos a nivel de la base de datos; y un
archivo de registro (con el sufijo ldf) con las transacciones abiertas, y transacciones cerradas,
Sujeto al modelo de recuperación seleccionado (se puede acumular en el archivo de registro
todos los cambios en la base de datos desde el último respaldo). Se puede crear un conjunto de
archivos de datos además del principal (con el sufijo ndf) por consideraciones de eficiencia,
partición de carga de trabajo entre los discos rígidos, etc.
• master - Master es el núcleo de toda instancia en SQL Server, eso quiere decir que esta
base contiene información vital sobre una instancia de SQL Server. Se compone de
Desde la perspectiva física, el sistema divide los archivos de la base datos en Extents de 64 KB, y
cada cual a ocho páginas de 8 KB. Generalmente, cada Extent se asigna a una tabla o un índice,
menos las tablas pequeñas; y cada página se asigna siempre a una tabla específica. El sistema es
responsable del aumento de los archivos, de acuerdo con los ajustes del usuario, y de asignar
Extents y páginas a las tablas.
En las tablas se puede crear índices. Los índices se almacenan junto a la tabla (Non Clustered
Index) o sin la tabla (Clustered Index). Los índices asisten en la búsqueda de datos en las tablas
(como los ficheros en las librerías), en ordenarlas, y la definición de claves primarias.
Aparte de las tablas de los usuarios, hay tablas que almacenan meta data: datos sobre el sistema
mismo, los diferentes objetos, los derechos, estadísticas sobre el rendimiento del sistema
(DMV), etc.
Tipos de datos
Para cada columna en una tabla y a cada variable o parámetro, se define un tipo de datos que
serán almacenados en él, entre ellos:
3. Fechas: Fechas en distintos niveles de precisión, desde días completos hasta fracciones
menores de un segundo, que apoyan fechas a partir del principio del siglo XX o del
calendario gregoriano, y la capacidad de diferenciar entre distintos usos de horarios.
4. XML: Datos textuales (cadenas) que representan conjuntos estándares de datos
(estándar SGML).
5. Datos binarios: Datos almacenados como datos binarios (bits y bytes), que posibilitan
el almacenamiento de archivos, gráficos, etc.
6. Geography: Representación estándar de información geográfica, tales como estados,
zonas geográficas, localidades; y los cálculos como distancias.
7. Geometry: Representación estándar de puntas, líneas, superficies en el plano; y las
relaciones entre ellas.
8. Hierarchid: Representación estándar de información jerárquica como lista de
materiales, relaciones de subordinación entre empleados, etc.
Red
Los sistemas operativos admitidos para SQL Server tienen software de red integrado. Las
instancias con nombre y predeterminadas de una instalación independiente admiten los
siguientes protocolos de red:
• Memoria compartida
• Canalizaciones con nombre
• TCP/IP
• VIA
Virtualización
SQL Server se admite en entornos de máquina virtual que se ejecuten en el rol Hyper-V de las
ediciones Standard, Enterprise y Datacenter de Windows Server 20XX y las ediciones Standard,
Enterprise y Datacenter de Windows Server 20XX.
Además de los recursos requeridos por la partición primaria, a cada máquina virtual (partición
secundaria) se le deben proporcionar suficientes recursos de procesador, memoria y recursos
de disco para su instancia de SQL Server.
Para obtener el software puede descargar la versión de prueba desde la página oficial
www.microsot .com.
Los siguientes requisitos de memoria y procesador se aplican a todas las ediciones de SQL Server:
Componente Requisito
Disco duro SQL Server requiere un mínimo de 6 GB de espacio disponible en el disco duro.
Memoria * Mínimo:
Recomendado:
Ediciones Express: 1 GB
del procesador
Tipo de procesador Procesador x64: AMD Opteron, AMD Athlon 64, Intel Xeon con soporte
Intel EM64T, Intel Pentium IV con soporte EM64T
Requisitos de Software
Los siguientes requisitos se aplican a todas las instalaciones:
Requisitos de software
Componente Requisito
.NET Framework Los sistemas operativos mínimos incluyen un marco .NET mínimo.
Software de red Los sistemas operativos compatibles con SQL Server tienen software
de red integrado. Las instancias con nombre y predeterminadas de una
instalación independiente admiten los siguientes protocolos de red:
memoria compartida, canalizaciones con nombre y TCP / IP.
El asistente verificará los requisitos mínimos tanto del hardware como del software para
continuar con la instalación.
Luego se presenta el Centro de Instalación de SQL Server, a partir de aquí se tendrá que
configurar características propias de SQL Server.
Se puede ingresar con el nombre del equipo (servidor) en este caso TIPROFESIONAL, o con
localhost, o (local) y finalmente con un punto (.).
3. Entorno de desarrollo
SQL Server se caracteriza por implementar la utilización de scripts dentro del editor de código
ya que desde aquí se podrá tener acceso a todos los objetos de una base. Todo esto gracias a
los comandos que se pueda implementar. Desde versiones anteriores al SQL Server 2019 se
viene utilizando la administración de archivos, eso quiere decir que se podrá implementar scripts
desde diferentes hojas del editor de consultas.
Para agregar una nueva hoja de edición debe seleccionar el botón Nueva consulta desde la barra
de herramientas o desde el menú Archivo > Nueva > Consulta con conexión actual.
Utilizando sqlcmd
Trabajando con Windows PowerShell: