CODIGO
SQL
-
HISTORIA
-
CARACTERÍSTICAS GENERALES
-
OPTIMIZACIÓN
-
ARQUITECTURA CLIENTE / SERVIDOR:
SISTEMA ADMINISTRADOR PARA BASES DE DATOS
-
RELACIONALES (RDBMS):
-
TRANSACT - SQL:
INTEGRACIÓN DE SQL CON MICROSOFT
-
WINDOWS NT
-
SEGURIDAD:
-
SOPORTE MULTIPROCESADOR:
-
SERVICIOS DE WINDOWS NT:
-
MICROSOFT CLUSTER SERVER:
-
BACK OFFICE
-
SERVICIOS DE SQL SERVER
-
SERVICIO MS SQL SERVER:
-
SERVICIO SQL SERVER AGENT:
SERVICIO MICROSOFT DISTRIBUTED TRANSACTION
-
COORDIRATOR:
-
SERVICIO MICROSOFT SEARCH:
-
SOFTWARE DE SQL SERVER
-
SQL SERVER ENTERPRISE MANAGER SNAP-IN:
HERRAMIENTAS Y ASISTENTES PARA
ADMINISTRACIÓN DE SQL SERVER:
-
ARQUITECTURA DE SQL SERVER
-
COMUNICACIÓN:
-
DESARROLLO DE APLICACIONES:
-
INTEFACES DE PROGRAMACIÓN DE APLICACIONES:
-
DATA OBJECT INTERFACES:
-
ADMINISTRACIÓN:
-
ADMINISTRACIÓN DE SQL SERVER:
-
ADMINISTRACIÓN DISTRIBUÍDA DE OBJETOS SQL:
-
SQL SERVER AGENT:
-
SEGURIDAD EN SQL SERVER
CODIGO SQL
HISTORIA
La historia de SQL empieza en
1974 con la definición, por parte de Donald Chamberlin y de otras personas que
trabajaban en los laboratorios de investigación de IBM, de un lenguaje para la
especificación de las características de las bases de datos que adoptaban el
modelo relacional. Este lenguaje se llamaba SEQUEL (Structured English Query
Language) y se implementó en un prototipo llamado SEQUEL-XRM entre 1974 y 1975.
Las experimentaciones con ese prototipo condujeron, entre 1976 y 1977, a una
revisión del lenguaje (SEQUEL/2), que a partir de ese momento cambió de nombre
por motivos legales, convirtiéndose en SQL. El prototipo (System R), basado en
este lenguaje, se adoptó y utilizó internamente en IBM y lo adoptaron algunos
de sus clientes elegidos. Gracias al éxito de este sistema, que no estaba
todavía comercializado, también otras compañías empezaron a desarrollar sus
productos relacionales basados en SQL. A partir de 1981, IBM comenzó a entregar
sus productos relacionales y en 1983 empezó a vender DB2. En el curso de los
años ochenta, numerosas compañías (por ejemplo Oracle y Sybase, sólo por citar
algunos) comercializaron productos basados en SQL, que se convierte en el
estándar industrial de hecho por lo que respecta a las bases de datos
relacionales.
En 1986, el ANSI adoptó
SQL (sustancialmente adoptó el dialecto SQL de IBM) como estándar para los
lenguajes relacionales y en 1987 se transformó en estándar ISO. Esta versión
del estándar va con el nombre de SQL/86. En los años siguientes, éste ha
sufrido diversas revisiones que han conducido primero a la versión SQL/89 y,
posteriormente, a la actual SQL/92.
El hecho de tener un
estándar definido por un lenguaje para bases de datos relacionales abre
potencialmente el camino a la intercomunicabilidad entre todos los productos
que se basan en él. Desde el punto de vista práctico, por desgracia las cosas
fueron de otro modo. Efectivamente, en general cada productor adopta e implementa en la
propia base de datos sólo el corazón del lenguaje SQL (el así llamado Entry
level o al máximo el Intermediate level), extendiéndolo de manera individual
según la propia visión que cada cual tenga del mundo de las bases de datos.
Actualmente, está en
marcha un proceso de revisión del lenguaje por parte de los comités ANSI e ISO,
que debería terminar en la definición de lo que en este momento se conoce como
SQL3. Las características principales de esta nueva encarnación de SQL deberían
ser su transformación en un lenguaje stand-alone (mientras ahora se usa como
lenguaje hospedado en otros lenguajes) y la introducción de nuevos tipos de
datos más complejos que permitan, por ejemplo, el tratamiento de datos multimedia.
SQL (Lenguaje de consulta
estructurado) Es un lenguaje declarativo de acceso a bases de datos
relacionales que permite especificar diversos tipos de operaciones sobre las
mismas. Una de sus características es el manejo del álgebra y el cálculo
relacional permitiendo lanzar consultas con el fin de recuperar -de una forma
sencilla- información de interés de una base de datos, así como también hacer
cambios sobre la misma. Es un lenguaje de cuarta generación (4GL).
CARACTERÍSTICAS GENERALES
El SQL es un lenguaje de
acceso a bases de datos que explota la flexibilidad y potencia de los sistemas
relacionales permitiendo gran variedad de operaciones sobre los mismos.
Es un lenguaje declarativo
de alto nivel o de no procedimiento, que gracias a su fuerte base teórica y su
orientación al manejo de conjuntos de registros, y no a registros individuales,
permite una alta productividad en codificación. De esta forma una sola
sentencia puede equivaler a uno o más sentencias de código en un lenguaje de
bajo nivel.
OPTIMIZACIÓN
Como ya se dijo arriba, y
suele ser común en los lenguajes de acceso a bases de datos de alto nivel, el
SQL es un lenguaje declarativo. O sea, que especifica qué es lo que se quiere y
no cómo conseguirlo, por lo que una sentencia no establece explícitamente un
orden de ejecución.
El orden de ejecución interno de una sentencia
puede afectar gravemente a la eficiencia del SGBD, por lo que se hace necesario
que éste lleve a cabo una optimización antes de la ejecución de la misma.
Muchas veces, el uso de índices acelera una instrucción de consulta, pero
ralentiza la actualización de los datos. Dependiendo del uso de la aplicación,
se priorizará el acceso indexado o una rápida actualización de la información.
La optimización difiere sensiblemente en cada motor de base de datos y depende
de muchos factores.
El SQL estándar incluye:
-Características del Álgebra Relacional.
-Características del Cálculo Relacional de
-Tuplas
-La versión que actualmente se encuentra más extendida
es el SQL2 (ó SQL-92).
SQL
Server es un sistema administrador para Bases de Datos relacionales basadas en
la arquitectura Cliente / Servidor (RDBMS) que usa Transact-SQL para mandar
peticiones entre un cliente y el SQL Server.
ARQUITECTURA CLIENTE / SERVIDOR:
SQL
Server usa la arquitectura Cliente / Servidor para separar la carga de trabajo
en tareas que corran en computadoras tipo Servidor y tareas que corran en
computadoras tipo Cliente:
-El
Cliente es responsable de la parte lógica y de presentar la información al
usuario. Generalmente, el cliente corre en una o más computadoras Cliente,
aunque también puede correr en una computadora Servidor con SQL Server.
-SQL
Server administra Bases de Datos y distribuye los recursos disponibles del
servidor (tales como memoria, operaciones de disco, etc) entre las múltiples
peticiones. La arquitectura Cliente /Servidor permite desarrollar aplicaciones
para realizar en una variedad de ambientes.
SISTEMA ADMINISTRADOR PARA BASES DE DATOS
RELACIONALES (RDBMS):
El
RDBMS es responsable de:
- Mantener
las relaciones entre la información y la Base de Asegurarse de que la
información es almacenada correctamente, es decir, que las reglas que definen
las relaciones ente los datos no sean violadas.
-
Recuperar toda la información en un punto conocido en caso de que el sistema
falle.
TRANSACT - SQL:
Éste
es una versión de SQL (Structured Query Languaje) usado como lenguaje de programación para SQL Server. SQL es un
conjunto de comandos que permite especificar la información que se desea
restaurar o modificar. Con Transact – SQL se puede tener acceso a la
información, realizar búsquedas, actualizar y administrar sistemas de Bases de
Datos Relacionales.
INTEGRACIÓN DE SQL CON MICROSOFT
WINDOWS NT
SQL se
encuentra totalmente integrado con Windows NT y toma ventaja de muchas de sus
características:
SEGURIDAD:
SQL
Server está integrado con el sistema de seguridad de Windows NT. Esta
integración permite accesar tanto a Windows NT como a SQL Server con el mismo user name y password. Además SQL Server una las
características de encriptación que Windows NT para la seguridad en red. SQL
Server está provisto de su propia seguridad para clientes no-Microsoft.
SOPORTE MULTIPROCESADOR:
SQL
Server soporta las capacidades de multiprocesamiento simétrico (SMP) de Windows
NT. SQL Server automáticamente toma ventaja de cualquier procesador adicional
que sea agregado al Servidor.
SERVICIOS DE WINDOWS NT:
SQL
Server corre como un servicio dentro de Windows NT, permitiendo operarlo
remotamente.
MICROSOFT CLUSTER SERVER:
Es un
componente de Windows NT Enterprise Edition. Soporta la conexión de dos servidores, o nudos, en un cluster para
aumentar las habilidades y tener un mejor manejo de la información y las aplicaciones.
SQL Server trabaja en conjunto con el Cluster Server para intercambiar papeles
automáticamente en caso de que el nodo primario falle.
BACK
OFFICE
SQL
Server es capaz de funcionar con los productos Microsoft Back Office. Back
Office es un grupo de aplicaciones para servidor que trabajan juntos para
ayudar a construir business-solutions.
SERVICIOS DE SQL SERVER
Los
servicios de SQL Server incluyen MS SQL Server, SQL Server Agent, Microsoft
Distributed Transaction Coordinator (MSDTC), y Microsft Search. Aunque estos
servicios de SQL generalmente corren en Windows NT, también pueden correr como
aplicaciones.
SERVICIO MS SQL SERVER:
Este servicio es el motor
de la Base de Datos. Este es el componente que procesa todas las declaraciones
de Transact-SQL y administra todos los archivos que definen a la Base de Datos
dentro del Servidor. Sus características son:
- Asignar
los recursos de la computadora a múltiples usuarios simultáneos.
-Previene
problemas lógicos, tales como sincronización de peticiones de usuarios que
desean actualizar la misma información al mismo tiempo.
-Garantiza
la integridad y consistencia de datos.
SERVICIO SQL SERVER AGENT:
Este
es un servicio que trabaja conjuntamente con SQL Server para crear y
administrar tareas locales o externas; letras y operadores.
SERVICIO MICROSOFT DISTRIBUTED TRANSACTION
COORDIRATOR:
MSDTC
permite a los clientes incluir muchos tipo de datos en una transacción.
Coordina la correcta realización de las transacciones distribuidas para
asegurar que todas las actualizaciones en todos los servidores son permanentes;
o en caso de errores, que las modificaciones son canceladas.
SERVICIO MICROSOFT SEARCH:
Este
servicio es un motor de full-text que corre como un servicio de Windows NT. El
soporte Full Text involucra la habilidad de emitir queries hacia los datos y la
creación y mantenimiento de índices que facilitan dichos queries.
SOFTWARE DE SQL SERVER
SQL
Server incluye una variedad de software para administrar y mantener al
servidor, encontrando ayuda acerca de temas específicos, diseñando y creando
Bases de Datos y buscando información.
SQL SERVER
ENTERPRISE MANAGER SNAP-IN:
SQL
Server está provisto de un cliente administrativo, que es el SQL Server
Enterprise Manager, el cual es una Consola de Administración de Microsoft (MMC)
de tipo Snap-in. MMC es una interfaz de usuario compartida para administración
de servidor usada por Back Office. Esta consola compartida, provee un ambiente consistente
para administración de herramientas.
HERRAMIENTAS Y ASISTENTES PARA
ADMINISTRACIÓN DE SQL SERVER:
Sql
Server provee un número de herramientas administrativas y asistentes que
atienden aspectos particulares de SQL Server.
ARQUITECTURA
DE SQL SERVER
COMUNICACIÓN:
SQL
Server usa una arquitectura de comunicación por capas para aislar aplicaciones
internas de red y protocolos. Esta arquitectura permite desplegar la misma
aplicación en diferentes ambientes de red. Los componentes en la arquitectura
de comunicación incluyen:
-APLICACIÓN:
Una aplicación es desarrollada usando una aplicación de interfaz de
programación para Base de Datos (API). La aplicación no tiene conocimiento de
los protocolos internos de red usados para la comunicación con SQL Server.
-INTERFAZ
DE LA BASE DE DATOS: Esta es una interfaz usada por una aplicación para mandar
peticiones a SQL Server y procesar los resultados devueltos por SQL Server.
-LIBRERÍA DE RED: Este es
un componente de Software de comunicación que empaqueta las peticiones de la
Base de Datos y los resultados para transmitirlos por medio del protocolo de red
apropiado. Una librería de Red, también conocida como Net- Library, debe ser
instalada tanto en el cliente como en el servidor. Tanto Clientes como
Servidores pueden usar más de una Net-Library al mismo tiempo, pero deben usar
una Librería de Red común para comunicarse satisfactoriamente. SQL Server soporta
protocolos de red tales como TCP/IP, Novell, IPX/SPX, Banyan VINES/IP, Named
Pipes,y Apple Talk ADSP.
-TABULAR
DATA STREAM: (TDS) Es un protocolo por niveles de aplicación usado para la
comunicación entre un Cliente y SQL Server. Los paquetes TDS son encapsulados
en los paquetes de red hechos por la protocol stak usada por las Net-Libraries.
-SERVICIOS
OPEN DATA: Este es un componente de SQL Server que se encarga de las conexiones
de red, pasando las peticiones del cliente al SQL Server para procesar y regresar
cualquier resultado a los Clientes. Open Data escucha automáticamente en todas
las Net-Libraries que están instaladas en el servidor.
DESARROLLO DE APLICACIONES:
Los
usuarios accesan al SQL Server a través de una aplicación que está escrita con
una interfaz de objetos de datos o con una API. SQL Server soporta interfaces
comunes y APIs nativos de bajo nivel.
INTEFACES DE PROGRAMACIÓN DE APLICACIONES:
Una
Base de Datos API define como escribir una aplicación para conectar una Base de
Datos y pasar comandos a la Base de Datos. SQL Server provee soporte nativo
para dos clases principales de Bases de Datos API, lo cual define la interfaz
de objetos de datos que se puede usar. Las Bases de Datos API se usan para
tener mayor control sobre el comportamiento y desarrollo de las aplicaciones.
-OLE
DB: Esta es una interfaz de acceso a datos basada en el COM (Component Object
Model). Soporta aplicaciones escritas usando OLE DB o Interfaces de Objetos de
Datos basadas en OLE DB. Puede accesar a la información en SQL Server, otras
Bases de Datos relacionales y otras fuentes de datos.
-OPEN
DATABASE CONNECTIVITY: 8ODBC) Es una interfaz por capas. Accesa directamente al
protocolo SQL Server TDS y soporta aplicaciones o componentes que estén
escritos usando ODBC o interfaces basadas en ODBC. Puede accesar a los datos en
SQL Server, y otras Bases de Datos relacionales, pero generalmente no puede ser
usado para accesar otras fuentes de datos.
DATA OBJECT INTERFACES:
En
general, estas interfaces son más fáciles de usar que las Bases de Datos API
pero pueden no tener tanta funcionalidad como un API.
-ACTIVE
X DATA OBJECTS: (ADO) Encapsula la OLE DB API en un modelo simplificado de
objetos que reduce el desarrollo de aplicaciones y los costos de mantenimiento.
ADO puede ser usado a partir de Microsoft Visual Basic, Visual Basic para Aplicaciones,
Active Server Pages (ASP) y el Scripting Object Model de Microsoft Internet
Explorer.
-REMOTE
DATA OBJECTS: (RDO) Mapea y encapsula al ODBC API. RDO puede ser usado desde
Visual Basic y Visual Basic para aplicaciones.
ADMINISTRACIÓN:
SQL
Server provee una variedad de herramientas de administración para minimizar y
automatizar las tareas administrativas rutinarias.
Las
declaraciones de Transact-SQL son el mecanismo interno usado para administrar
SQL Server.
ADMINISTRACIÓN DE SQL SERVER:
SQL
Server puede ser administrado usando:
-Utilidades
Batch incluidas en SQL Server, tales como OSQL o BCP.
-Herramientas
de administración gráfica incluidas en SQL Server.
-Aplicaciones
COM-compatibles: tal como Visual Basic.
ADMINISTRACIÓN DISTRIBUÍDA DE OBJETOS SQL:
(SQL-DMO)
Es una colección de objetos de administración basados en COM, usados por SQL
Server. SQL-DMO oculta los detalles de las operaciones Transact-SQL y es
apropiado para escribir scripts de administración para SQL Server. Las
herramientas de administración incluidas en SQL Server están escritas usando
SQL-DMO.
SQL SERVER AGENT:
Es un
servicio que trabaja en conjunto con SQL Server para desempeñar las siguientes
tareas administrativas:
-Administración
de Alertas: Las alertas brindan información acerca del estado de un proceso,
tal como cuando un trabajo está completo o cuando ocurre un error. El agente de
SQL Server monitorea la aplicación de Windows NT y genera alertas.
-Notificación: El agente de
SQL Server puede enviar e-mails, o iniciar otra aplicación cuando ocurre una
alerta, por ejemplo, se puede programar una alerta para que ocurra cuando una
Base de Datos o cuando una transacción está casi completa o cuando un respaldo
de la Base de Datos ha terminado exitosamente.
-Ejecución
de Tareas: El agente de SQL Server incluye un motor de creación y planeación de
tareas. Las tareas pueden ser simples operaciones de un solo paso, o pueden ser
tareas complejas de varios pasos que requieren planeación. También se pueden
crear pasos de las tareas con Transact-SQL, leguajes script, o comandos del
Sistema Operativo.
-Administración
de Réplicas: La replicación es el proceso de copiar datos o transacciones de un
SQL Server a otro. El agente de SQL Server es responsable de sincronizar los
datos entre los servidores, monitorear los datos para buscar cambios y replicar
la información en otros servidores.
SEGURIDAD EN SQL SERVER
SQL
Server valida a los usuarios con 2 niveles de seguridad; autentificación del
login y validación de permisos en la Base de Datos de cuentas de usuarios y de
roles. La autentificación identifica al usuario que está usando una cuenta y
verifica sólo la habilidad de conectarse con SQL Server. El usuario debe tener permiso
para accesar a las Bases de Datos en el Servidor. Esto se cumple para asignar
permisos específicos para la Base de Datos, para las cuentas de usuario y los
roles. Los permisos controlan las actividades que el usuario tiene permitido
realizar en la Base de Datos del SQL Server.