Post on 23-Feb-2016
description
SQL SERVER PARTE I
Félix Tovar C.I: 19291058Daniel Hernández C.I: 20594114
SQL ServerEs un sistema administrador para base de
datos producido por Microsoft basado en el modelo relacional.
Constituye una alternativa a otros potentes sistemas gestores de base de Datos.
3
Acerca de SQL Server Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.
Soporta procedimientos almacenados.
Además permite administrar información de otros servidores de datos.
4
Versiones
Versión Año Nombre de la versión Nombre clave1.0 (OS/2) 1989 SQL Server 1-0 SQL4.21 (WinNT) 1993 SQL Server 4.21 SEQUEL6.0 1995 SQL Server 6.0 SQL956.5 1996 SQL Server 6.5 Hydra7.0 1998 SQL Server 7.0 Sphinx
- 1999 SQL Server 7.0 OLAP Tools Plato
8.0 2000 SQL Server 2000 Shiloh8.0 2003 SQL Server 2000 64-bit Edition Liberty9.0 2005 SQL Server 2005 Yukon10.0 2008 SQL Server 2008 Katmai10.5 2010 SQL Server 2008 R2 Kilimanjaro
5
Arquitectura de SQL ServerUtiliza la arquitectura Cliente / Servidor para coordinar el trabajo entre uno y otro. Dependiendo del tipo de aplicación que se quiera programar dependerá la repartición de la carga de trabajo entre el cliente y el servidor.
6
Componentes
Comandos (DLL - DML).
Cláusulas.
Funciones de Agregado.
El lenguaje SQL está compuesto por comandos, cláusulas, y funciones de agregado. Estos elementos se combinan en las instrucciones para crear, actualizar y
manipular las bases de datos.
7
ServiciosSQL Server incluye cuatro servicios:
MSSQLServer SQLServerAgent
MSDTC Microsoft Search
8
Manejo de la memoriaUsa un esquema de gestión de memoria que la
distribuye acuerdo con un análisis de relación entre costes y beneficios de la memoria.
Adquiere y libera memoria de manera dinámica según sea preciso.
Organiza la memoria que el mismo se asigna en dos regiones distintas: Buffer Pool y MemToLeave.
9
Organización de archivos
Archivos:- Datos principales.- Datos secundarios.- De registro.
Paginas.
Nombres de archivo lógico y físico:- logical_file_name.- os_file_name.
Grupo de archivos.
10
IndicesFacilitan la recuperación de datos,
permitiendo el acceso directo y acelerando las búsquedas, consultas y otras operaciones que optimizan el rendimiento general.
• Query Optimizer• B-tree• Rendimiento Óptimo
11
Características de los índices
Agrupado: Dependencia. Hojas. Solo un índice. Agrupados primero.
No Agrupado: Independencia. Diversos índices. Vistas indexadas.
12
Como crear un índice en SQL Server
Sentencia SQL:
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON <object> ( column [ ASC | DESC ] [ ,...n ] )
13
ConcurrenciaSQL server usa 3 enfoques de control de transacciones.
Enfoque Mixto
Enfoque Optimist
a
Enfoque Pesimista
s
14
InterbloqueosPara minimizar el número de interbloqueos se
deben considerar las siguientes recomendaciones:
Las transacciones deben ser cortas y afectar al menor número de datos posibles.
Se debe dar preferencia a la utilización de alguna de las técnicas del enfoque optimista.
Es conveniente establecer una prioridad baja para las consultas DSS y una alta para las OLTP.
15
RecuperaciónTipos de recuperación Simple.Completa.Optimizado para cargas masivas de
registros.
Fases de Restauración Copia de
datosRehacer Deshace
r
16
RecuperaciónBACKUP (Transact-SQL)Hace copia de seguridad de una BD completa de SQL Server para crear una copia de seguridad de la BD, o uno o más archivos o grupos de archivos de la BD para crear una copia de seguridad de archivo (BACKUP DATABASE). Con el modelo de recuperación completa o con el de recuperación optimizado para cargas masivas de registros, realiza la copia de seguridad del registro de transacciones de la BD para crear una copia de seguridad de registros (BACKUP LOG).
17
Respaldar una BD completa
BACKUP DATABASE { database_name | @database_name_var }
TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL |
<general_WITH_options> [ ,...n ] } [;]
18
Respaldar archivos específicos o un grupo de archivos
BACKUP DATABASE { database_name | @database_name_var } <file_or_filegroup>
[ ,...n ] TO <backup_device> [ ,...n ] [ <MIRROR TO
clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options>
[ ,...n ] } ][;]
19
Respaldo parcial
BACKUP DATABASE { database_name | @database_name_var } READ_WRITE_FILEGROUPS [ , <read_only_filegroup> [ ,...n ] ] TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { DIFFERENTIAL | <general_WITH_options> [ ,...n ] } ][;]
20
Respaldar el log de transacciones
BACKUP LOG { database_name | @database_name_var } TO <backup_device> [ ,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [ WITH { <general_WITH_options> | <log-specific_optionspec> } [ ,...n ] ][;]
21
Restaurar
RESTORE ( Transact-SQL )Restaura copias de seguridad realizadas con el comando BACKUP. Este comando le permite realizar los siguientes escenarios de restauración: Completa. Parcial. De archivos. De paginas. Del registro de transacciones.
22
Restauración CompletaRESTORE DATABASE { database_name |
@database_name_var } [ FROM <backup_device> [ ,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] | , <general_WITH_options> [ ,...n ] | , <replication_WITH_option> | , <change_data_capture_WITH_option> | , <FILESTREAM_WITH_option> | , <service_broker_WITH options> | , <point_in_time_WITH_options—RESTORE_DATABASE> } [ ,...n ] ][;]
23
Restauración Parcial
RESTORE DATABASE { database_name | @database_name_var } <files_or_filegroups> [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH PARTIAL, NORECOVERY [ , <general_WITH_options> [ ,...n ] | , <point_in_time_WITH_options—RESTORE_DATABASE> ] [ ,...n ] [;]
24
Restauración de Archivos
RESTORE DATABASE { database_name | @database_name_var } <file_or_filegroup> [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH { [ RECOVERY | NORECOVERY ] [ , <general_WITH_options> [ ,...n ] ] } [ ,...n ] [;]
25
Restauración de Paginas
RESTORE DATABASE { database_name | @database_name_var } PAGE = 'file:page [ ,...n]' [ , <file_or_filegroups> ] [ ,...n ] [ FROM <backup_device> [ ,...n ] ] WITH NORECOVERY [ , <general_WITH_options> [ ,...n ] ][;]
26
Restauración del Registro de Transacciones
RESTORE LOG { database_name | @database_name_var } [ <file_or_filegroup_or_pages> [ ,...n ] ] [ FROM <backup_device> [ ,...n ] ] [ WITH { [ RECOVERY | NORECOVERY | STANDBY = {standby_file_name | @standby_file_name_var } ] | , <general_WITH_options> [ ,...n ] | , <replication_WITH_option> | , <point_in_time_WITH_options—RESTORE_LOG> } [ ,...n ] ] [;]
27
Revertir una BD al punto temporal capturado por una
instantánea de BD
RESTORE DATABASE { database_name | @database_name_var } FROM DATABASE_SNAPSHOT = database_snapshot_name
28
Concurrencia SET TRANSACTION ISOLATION LEVEL (Transact-SQL)Controla el comportamiento del bloqueo y de las versiones de fila de las instrucciones Transact-SQL emitidas por una conexión a SQL Server.Un ejemplo sencillo:
SET TRANSACTION ISOLATION LEVEL { READ UNCOMMITTED | READ COMMITTED | REPEATABLE READ | SNAPSHOT | SERIALIZABLE } [ ; ]
29
Read UNCOMMITED/COMMITED READ UNCOMMITTED
Especifica que las instrucciones pueden leer filas que han sido modificadas por otras transacciones pero todavía no se han confirmado.
READ COMMITTEDEspecifica que las instrucciones no pueden leer datos que hayan sido modificados, pero no confirmados, por otras transacciones. Esto evita lecturas de datos sucios. Otras transacciones pueden cambiar datos entre cada una de las instrucciones de la transacción actual, dando como resultado lecturas no repetibles o datos fantasma. Esta opción es la predeterminada para SQL Server.
30
Repeatable Read
Especifica que las instrucciones no pueden leer datos que han sido modificados pero aún no confirmados por otras transacciones y que ninguna otra transacción puede modificar los datos leídos por la transacción actual hasta que ésta finalice.
31
SNAPSHOTEspecifica que los datos leídos por cualquier instrucción de una transacción sean la versión coherente, desde el punto de vista transaccional, de los datos existentes al comienzo de la transacción.
La transacción únicamente reconoce las modificaciones de datos confirmadas antes del comienzo de la misma. Las instrucciones que se ejecuten en la transacción actual no verán las modificaciones de datos efectuadas por otras transacciones después del inicio de la transacción actual. El efecto es el mismo que se obtendría si las instrucciones de una transacción obtuviesen una instantánea de los datos confirmados tal como se encontraban al comienzo de la transacción.
32
SerializableEspecifica lo siguiente:
Las instrucciones no pueden leer datos que hayan sido modificados, pero aún no confirmados, por otras transacciones.
Ninguna otra transacción puede modificar los datos leídos por la transacción actual hasta que la transacción actual finalice.
Otras transacciones no pueden insertar filas nuevas con valores de clave que pudieran estar incluidos en el intervalo de claves leído por las instrucciones de la transacción actual hasta que ésta finalice.
33
Índices SQLServer
CREATE INDEX (Transact-SQL)
Crea un índice relacional en una tabla especificada o una vista de una tabla especificada. Se puede crear un índice antes de que la tabla posea datos. Los índices relacionales se pueden crear en tablas o vistas de otra base de datos especificando un nombre completo de base de datos.
34
Crear un índice
Ejemplo en SQLServer:
CREATE [ UNIQUE ] [ CLUSTERED | NONCLUSTERED ] INDEX index_name ON <object> ( column [ ASC | DESC ] [ ,...n ] ) [ INCLUDE ( column_name [ ,...n ] ) ] [ WHERE <filter_predicate> ] [ WITH ( <relational_index_option> [ ,...n ] ) ] [ ON { partition_scheme_name ( column_name ) | filegroup_name | default } ] [ FILESTREAM_ON { filestream_filegroup_name | partition_scheme_name | "NULL" } ] [ ; ]
35
Índices SQLServer
ALTER INDEX (Transact-SQL)
Modifica un índice existente de una tabla o una vista (relacional o XML) mediante su des habilitación, regeneración o reorganización, o mediante el establecimiento de sus opciones.
36
Modificar índice
Ejemplo en SQLServer:
ALTER INDEX { index_name | ALL } ON <object> { REBUILD [ [PARTITION = ALL] [ WITH ( <rebuild_index_option> [ ,...n ] ) ] | [ PARTITION = partition_number [ WITH ( <single_partition_rebuild_index_option> [ ,...n ] ) ] ] ] | DISABLE | REORGANIZE [ PARTITION = partition_number ] [ WITH ( LOB_COMPACTION = { ON | OFF } ) ] | SET ( <set_index_option> [ ,...n ] ) }[ ; ]
37
Índices SQLServer
DROP INDEX (Transact-SQL)Quita uno o más índices XML, filtrados, espaciales o relacionales de la base de datos actual. Puede quitar un índice clúster y mover la tabla resultante a otro grupo de archivos o esquema de partición en una sola transacción especificando la opción MOVE TO.
La instrucción DROP INDEX no es aplicable a los índices creados mediante la definición de restricciones PRIMARY KEY y UNIQUE. Para quitar la restricción y el índice correspondiente, use ALTER TABLE con la cláusula DROP CONSTRAINT.
38
Borrar un índice
Ejemplo en SQLServer:
DROP INDEX{ <drop_relational_or_xml_or_spatial_index> [ ,...n ] | <drop_backward_compatible_index> [ ,...n ]}
39
Ventajas Soporte de transacciones. Escalabilidad, estabilidad y seguridad. Soporta procedimientos almacenados. Incluye también un potente entorno gráfico de
administración, que Permite el uso de comandos DDL y DML gráficamente.
Permite trabajar en modo cliente-servidor. Además permite administrar información de otros
servidores de datos.
40
Desventajas La principal desventaja de Microsoft SQL SERVER
es la enorme cantidad de memoria RAM que utiliza
para la instalación y utilización del software.
Si se quiere para prácticas no va a ser de mucha utilidad porque se prohíben muchas cosas, es decir; tiene grandes restricciones.
La relación calidad-precio esta muy por debajo comparado con Oracle.
¡Gracias por su atención!
¿Preguntas?