1.1k likes | 2.46k Views
SQL SERVER. Arantza Garcia Arrastia ABD Curso 2004/2005. SQL SERVER. Introducción Características principales Seguridad Optimización Replicación Pros y contras Comparativa: Oracle 9i vs. SQL Server 2000 Opiniones de usuarios Conclusiones. 1.Introducción.
E N D
SQL SERVER Arantza Garcia Arrastia ABD Curso 2004/2005
SQL SERVER • Introducción • Características principales • Seguridad • Optimización • Replicación • Pros y contras • Comparativa: Oracle 9i vs. SQL Server 2000 • Opiniones de usuarios • Conclusiones
1.Introducción • SQL Server es un sistema administrador para bases de datos relacionales basadas en la arquitectura Cliente/Servidor (RDMS). • Las instrucciones se efectúan en un lenguaje SQL: Transact SQL
Introducción (2) • 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. • Con Transact – SQL se puede tener acceso a la información, realizar búsquedas, actualizar y administrar sistemas de bases de datos relacionales.
Ventajas para escoger SQL Server (1) • Microsoft SQL Server es el servidor relacional de mayor rendimiento para redes de PC-s. (según ?) • Es el servidor de menor coste por transacción bajo el sistema operativo Windows NT. (no del todo?) • Tiene la mejor integración posible con el sistema operativo: -Permite ampliar las capacidades del servidor relacional con librerías de enlace dinámico (DDL) , pudiendo crear instrucciones y procedimientos almacenados a medida del usuario.
Ventajas para escoger SQL Server (2) -Permite crear aplicaciones de administración de si mismo mediante una interfaz OLE conocida como SQL-DMO. (=> .NET) -Se comunica con las aplicaciones de gestión a través de drivers ODBC para 16, 32, 64 bits. -Dispone de una librería propia para las aplicaciones cliente/servidor que requieran mayor rapidez incluso que ODBC, conocida como dbLibrary.
2.Características principales • Seguridad: SQL Server incorpora un modelo de seguridad que separa a los usuarios de los objetos, proporciona un acceso muy granular y un mejor control de los accesos a los datos. Además, todas las tablas del sistema se implementan como Vistas, lo que redunda en un mayor control sobre los objetos de sistema de la Base de Datos.
Características principales (2) • Búsqueda de Texto Completo (Full-text): SQL Server incluye un soporte para aplicaciones de texto completo ampliadas. Las funcionalidades de catálogo han mejorado con los años para proporcionar una mayor flexibilidad sobre el conjunto de datos que se catalogan. El rendimiento de las funciones de consulta y la escalabilidad han mejorado sensiblemente. Una serie de nuevas herramientas de gestión permiten un mayor control de la implementación de texto completo.
Características principales (3) • Servicios de Reporting: Servicios de Reporting permite a los negocios integrar de forma sencilla datos desde fuentes heterogéneas y data warehouses en informes ricos, interactivos y gestionables, que pueden localizarse y consultarse en intranets, extranets y en Internet.
Características principales (4) • Soporte para Xquery: SQL Server incluye funcionalidades Xquery de altas prestaciones, que permiten la manipulación de objetos XML en la capa de datos, así como un juego de herramientas de creación de Xquery.
Características principales (5) • Servicios de Transformación de Datos (DTS): Los Servicios de Transformación de Datos (DTS) son un conjunto de herramientas gráficas y objetos programables que pueden usarse para extraer, transformar y cargar datos (ETL) desde fuentes muy diversas y llevarlas a un destino único o múltiples destinos. Simplifica la importación y la exportación de datos entre dos bases de datos compatibles con OLE DB.
Características principales (6) • Bases de datos en SQL Server: Cada SQL Server tiene dos tipos de Bases de datos: Bases de Datos del Sistema y Bases de Datos del usuario. - Las Bases de Datos del sistema, almacenan información acerca de SQL Server como un total. SQL Server usa la Base de Datos del sistema para operar y administrar al sistema. -Las Bases de Datos de usuarios, son creadas por los usuarios. Una copia del SQL Server puede administrar una o más Bases de datos de usuario.
3.Seguridad • Ha incorporado mejoras significativas en el modelo de seguridad. Esta es la iniciativa Trustworthy Computing. • Tiene como objetivo: -Reducir los problemas potenciales desde el diseño y de pruebas. -Reducir el área expuesta a ataques desactivando funciones que puedan no ser necesarias.
Seguridad(1).Actuaciones • Restricción del acceso al servidor por parte de los usuarios: Control de acceso y permite a los administradores gestionarlo mediante politicas. • Desactivación de servicios restringiendo la configuración de los mismos: Los administradores pueden restringir los accesos a los recursos. • Cifrado de datos dentro de la propia base de datos • Política de contraseñas .
Seguridad (2) • 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ónidentifica al usuario que está usando una cuenta y verificala habilidad de conectarse con SQL Server. • El usuario debe tener permiso para accedera 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.
Seguridad (3) • AUTENTIFICACIÓN DEL LOGIN: Un usuario debe tener una cuenta para conectarse al SQL Server. Este reconoce dos mecanismos de autentificación: Autentificación de SQL Server y de Windows NT. Cada uno tiene un tipo de cuenta diferente. • AUTENTIFICACIÓN DE SQL SERVER: Cuando se usa, un administrador del Sistema de SQL Server, define una cuenta y un password WQL Server. Los usuarios deben suministrar tanto el login como el password cuando se conectan al SQL Server.
Seguridad (4) • Cuando SQL Server está en Windows NT, un sistema administrador puede especificar que está corriendo en uno de 2 modos de autentificación: -Modo de autentificación de Windows NT: Sólo está autorizada la autentificación de Windows NT. Los usuarios no pueden usar cuentas de SQL Server. -Modo mixto: Cuando se usa este modo de autentificación, los usuarios se pueden conectar a SQL Server con la autentificación de Windows NT o con la de SQL Server. • CUENTAS DE USUARIO Y ROLES EN UNA BASE DE DATOS: Después de que los usuarios han sido autentificados, y se les ha permitido conectarse al SQL Server, deben tener cuentas en la Base de Datos. Las cuentas de usuario y los roles, identifican permisos para ejecutar tareas.
Seguridad (5) • ROLES: Permiten reunir a los usuarios en una sola unidad a la cual se le pueden aplicar permisos. SQL Server contiene roles de servidor y de Base de Datos predefinidos, para tareas administrativas comunes, de manera que pueden asignársele determinados permisos administrativos a un usuario en particular. También se pueden crear roles de Base de Datos definidos por el usuario. En SQL Server, los usuarios pueden pertenecer a varios roles: • Roles fijos del Servidor:Proveen agrupamientos con privilegios administrativos a nivel del Servidor. Son administrados independientemente de las Bases de Datos de usuarios a nivel servidor. • Roles fijos de la Base de Datos: Proveen agrupamientos con privilegios administrativos a nivel de Base de Datos. • Roles de usuarios definidos en la Base de Datos: También se pueden crear roles para Base de Datos, para representar un trabajo desarrollado por un grupo de empleados dentro de una organización. No es necesario asignar y quitar permisos a cada persona. En función de que cambia un rol, se pueden cambiar fácilmente los permisos del rol y hacer que los cambios se apliquen automáticamente a todos los miembros del rol.
Seguridad (6) • VALIDACIÓN DE PERMISOS: • Dentro de cada Base de Datos, se asignan permisos a las cuentas de usuarios y a los roles para permitir o limitar ciertas acciones. SQL Server acepta comandos después de que un usuario ha accedido a la Base de datos. • SQL Server realiza los siguientes pasos cuando valida permisos: -Cuando el usuario realiza una acción, tal como ejecutar un comando de Transact-SQL o elegir una opción de un menú, los comandos de Transact SQL son enviadas al SQL Server. -Cuando SQL Server recibe un comando de Transact –SQL, testea que el usuario tenga permiso de ejecutar dicha instrucción.
4.Optimización • Para optimizar SQL Server es necesario ajustar la configuración, opciones, y valores de setup basadas en las observaciones de las características de trabajo del servidor. • Estas observaciones se hacen durante el periodo de trabajo mas critico del servidor para perfeccionar las cargas de trabajo más pesadas.
Optimización (2) • Memoria: La memoria de SQL Server esta dividida en dos espacios, el cache de procedimientos, y el cache de datos. El Servidor SQL distribuye eficazmente la memoria entre los dos caches usando los parámetros de configuración del cache de procedimiento. La distribución de la memoria restante entre procedimientos y datos, se encarga de mantener los objetos mas usados en sus respectivos caches de memoria.
Optimización (3) • La mejor manera de determinar cómo es usada la memoria por el Servidor de SQL es ejecutar DBCC MEMUSAGE. Esta sentencia indica la cantidad de memoria asignada al Servidor de SQL en el comienzo, los 12 objetos más grandes en el cache de procedimientos, y los 20 más grandes en el cache de datos.
Optimización (4) • Optimizando el Cache de Datos : El cache de datos está compuesto de la memoria sobrante del Servidor de SQL una vez que los requisitos del cache de procedimiento han sido satisfechos. Lo mejor es tener bastante espacio del cache para contener la mayoría los índices usados y un porcentaje respetable de las tablas mas accedidas frecuentemente, reduciendo las entradas/salidas físicas. Se puede usar la sentencia DBCC MEMUSAGE para ver los 20 objetos más grandes del cache de datos y asi determinar un tamaño considerable para el cache de datos basado en los tamaños de estos objetos.
Optimización (5) • El tamaño de las tablas e índices accedidas mas frecuentemente también puede cambiarse aplicando las fórmulas del tamaño cedidas por Appendix A of Microsoft SQL Server Administrator's Companion. Habiendo calculado estos tamaños, se puede elegir asignar bastante memoria al Servidor de SQL y contener la íntegramente los objetos de las bases de datos en el cache.
Optimización (6) • Optimizando el Cache de Procedimientos. Primero se determina el tamaño óptimo para contener los procedimientos almacenados más activos. Se busca prevenir las lecturas a procedimientos almacenados en disco porque esto es muy costoso. Si el cache de procedimiento es bastante grande , los procedimientos no se descargaran del cache por los nuevos procedimientos cargados en el. ( El Servidor de SQL guardará una copia duplicada de cada procedimiento que se accede por más de un usuario.) por defecto, el Servidor de SQL distribuye 30 por ciento de memoria disponible al cache de procedimientos después que el kernel de SQL se ha asignado.
Optimización (7) • Se puede determinar si el cache de procedimientos es bastante grande ejecutando los procedimientos almacenados mas frecuentemente usados y ejecutando la sentencia DBCC MEMUSAGE. • Esto mostrara los 12 procedimientos almacenados más grandes en el cache de procedimientos. Después de haber ejecutado todos los procedimientos que son llamados con mas frecuencia y haber obtenido sus tamaños, se suman éstos valores y se obtiene el tamaño total necesario del cache para todos los procedimientos.
6.Pros (1) • Los Servicios de Transformación de Datos (DTS). • Los Servicios OLAP del Servidor SQL de Microsoft Con la inclusión de los Servicios OLAP como parte del Servidor SQL, Microsoft ha abierto el mercado del data warehousing, data mart, y el soporte a tomas de decisión a muchas empresas pequeñas o medianas que no habrían pensado en usar este tipo de herramienta dados sus elevados costes.
Pros (2) • Asignación Dinámica de Recursos. La asignación dinámica de recursos del SQL Server es una característica muy útil. La asignación dinámica de recursos permite la escalabilidad del uso del disco y memoria para acomodarse a las necesidades de la base de datos en cada momento. Esta flexibilidad permite un mejor rendimiento y simplifica la administración del software. • La posibilidad de mirar los contenidos de una tabla directamente desde el EM. • Otra función muy útil es la posibilidad de cambiar directamente los tipos de datos de las tablas existentes.
Contras (1) • La instalación y operación requiere del Internet Explorer (IE) 4.0. Le guste o no, la interfaz del navegador de Web sigue siendo cada vez más habitual, y su uso es lo último en desarrollo de interfaces. Podemos entender por qué Microsoft quiere usarlo con el Servidor SQL, ya que también es un producto de la compañía. Sin embargo, no hay ninguna utilidad para un navegador de Web en el servidor de la base de datos, y su instalación es un problema que posiblemente, a más de uno le gustaría evitar. • La migración requiere un reinicio de la base de datos. El reinicio de todos los datos en una base de datos es un trabajo serio que invita a la potencial pérdida de datos.
Contras (2) • Ausencia de integridad referencial declarativa en cascada (DRI). La ausencia de una integridad referencial en cascada podría ser la desventaja más grande del Servidor SQL en comparación con las otras bases de datos dentro del mercado NT. Incluso Access ofrece soporte de este estilo. Se pueden utilizar triggers para compensar esta desventaja, aunque en otras bases de datos esta técnica no es necesaria, así que no es lógico que deba utilizar para trabajar con SQL Server 7.0.
7.Oracle 9i vs SQL Server 2000 • Al comparar las dos bases de datos una diferencia destacada de SQL Server respecto a Oracle es el precio.
SMP para 4 CPUs, 2GB de RAM Replicación Funcionabilidad para comercio, data warehousing, linea de trabajo Servicios de Transformacion de Datos (DTS) Busqueda de texto completo Minimo 5 usuarios por procesador Replicación Java, XML, Globalization Soporte Manejo de estadisticas Funciones Analiticas Salidas a otros sistemas / aplicaciones Texto de Oracle Edición Standard SQL Server Oracle
32-bit: 32 CPUs y 64 GB RAM 64-bit: 64 CPUs y 512 GB RAM Vistas Particionadas y distribuidas. Fail over Clustering Vistas Indexadas Multi-lenguage OLAP Direct SAN soporte Minimo 25 usuarios Seguridad para los datos Aplicacion Transparente para los fallos. Base deDatos Virtual Privada Particiona Aplicacion Real de Clusters Paquete de diagnostico OLAP Data Mining Edición Empresarial SQL Server Oracle
Sistema Operativo UNIX - IBM’s AIX, HP-UX, Sun Solaris LINUX Windows NT 4.0, service pack 5 Windows 2000, service pack 1 Windows 2003 Windows XP SistemaOperativo Windows NT 4.0, service pack 5 Windows 2000 Server Windows 2003 Server Plataformas de Oracle Plataformas de SQL Server
Hardware - IBM, HP, Sun, + Intel Pentium 166 MHz o mayor 128 MB RAM - 256 MB a mejor Disco duro : 140 MB 4.5 GB Home (FAT) o 2.8 GB Home (NTFS) Hardware Pentium 166 MHz o mayor 64 MB RAM - 128 MB a mejor Disco duro : 95-270 MB (250 usual) 50 MB min Analysis < Serv 80 MB English Query Plataformas de Oracle Plataformas de SQL Server
Otra diferencia es el lenguaje utilizado: SQL Server utiliza T-SQL y Oracle utiliza un lenguaje mas poderoso: PL-SQL
En resumen • SQL Server 2000 ventajas: SQL Server 2000 es mas barato que Oracle 9i Database. Da buenos resultados calidad/precio. Es más facil de instalar y manejar. • Oracle 9i ventajas: Oracle 9i se puede instalar en cualquier plataforma, no solo en plataformas Windows. PL/SQL es un lenguaje más poderoso que T-SQL.
Positivas: - Buen rendimiento -Compatibilidad -Rapido -Eficiente -Sencillo -Precio -Seguro -Facil instalación Negativas: -Tiempo de respuesta largo -Difícil manejabilidad de la consola -Poco eficaz por el SQL limitado -Poco seguro -BD relativamente pequeñas 8.Opiniones de usuarios
9.Conclusiones • SQL Server se posiciona como sistema de servidor de datos de medio nivel, para sistemas de gestion intra/extranet, con volumenes no excesivos. • Su relacion potencia/calidad/precio, lo hacen inmejorable como backend de publicaciones web de cierto tamaño, aplicaciones internet u offline, y la mayoria de aplicaciones de media escala. • Si necesitamos mayores exigencias, y entra en juego factores como transaccionalidad , replicaciones, volumenes masivos de datos.. seria mejor Oracle.
Bibliografia • “SQL Server Programación y administración” de Alfons Gonzalez • “Analysis Services” basada en msdn library de David Iseminger • www.microsoft.com/sql/ • http://www.ilustrados.com/publicaciones/EpyVyVAVyFpAIxrDBr.php • SQL Server 2000 vs. Oracle9i http://www.mssqlcity.com/Articles/Compare/sql_server_vs_oracle.htm http://www.dbasupport.com/oracle/ora9i/SQLServer_compare.shtml • www.mundotutoriales.com • http://download.microsoft.com/download/c/3/0/c3061a67-2bf7-472c-92a5-1a71acae691a/Seguridad_SQL_Server.pdf • www.programatium.com • http://www.oreilly.com/catalog/wintrnssql/chapter/ch01.html • http://www.sqlteam.com/item.asp?ItemID=1650