Acerca de SQL Server - ABD-UCV

Report
Félix Tovar C.I: 19291058
Daniel Hernández C.I: 20594114
Es 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.
2

Soporte de transacciones.

Escalabilidad, estabilidad y seguridad.

Soporta procedimientos almacenados.

Además permite administrar información de
otros servidores de datos.
3
Versión
Año
Nombre de la versión
Nombre clave
1.0 (OS/2)
1989
SQL Server 1-0
SQL
4.21 (WinNT)
1993
SQL Server 4.21
SEQUEL
6.0
1995
SQL Server 6.0
SQL95
6.5
1996
SQL Server 6.5
Hydra
7.0
1998
SQL Server 7.0
Sphinx
-
1999
SQL Server 7.0 OLAP Tools
Plato
8.0
2000
SQL Server 2000
Shiloh
8.0
2003
SQL Server 2000 64-bit Edition
Liberty
9.0
2005
SQL Server 2005
Yukon
10.0
2008
SQL Server 2008
Katmai
10.5
2010
SQL Server 2008 R2
Kilimanjaro
4
Utiliza 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.
5
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.
Comandos (DLL - DML).
Cláusulas.
Funciones de Agregado.
6
SQL Server incluye cuatro servicios:
MSSQLServer
SQLServerAgent
MSDTC
Microsoft Search
7
Usa 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.
8
Archivos:
- Datos principales.
- Datos secundarios.
- De registro.
Nombres de archivo
lógico y físico:
- logical_file_name.
- os_file_name.
Paginas.
Grupo de archivos.
9
Facilitan 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
10

Agrupado:
 Dependencia.
 Hojas.
 Solo un índice.
 Agrupados primero.

No Agrupado:
 Independencia.
 Diversos índices.
 Vistas indexadas.
11
Sentencia SQL:
CREATE [ UNIQUE ] [ CLUSTERED |
NONCLUSTERED ] INDEX index_name ON
<object> ( column [ ASC | DESC ] [ ,...n ] )
12
SQL server usa 3 enfoques de control de
transacciones.
Enfoque
Optimista
Enfoque
Pesimistas
Enfoque
Mixto
13
Para 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.
14
Tipos de recuperación
Simple.
Completa.
Optimizado para cargas masivas de registros.
Fases de Restauración
Copia de
datos
Rehacer
Deshacer
15
BACKUP (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).
16
BACKUP DATABASE { database_name |
@database_name_var }
TO <backup_device> [ ,...n ]
[ <MIRROR TO clause> ] [ next-mirror-to ]
[ WITH { DIFFERENTIAL |
<general_WITH_options> [ ,...n ] } [;]
17
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 ] } ][;]
18
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 ]
} ][;]
19
BACKUP LOG { database_name |
@database_name_var } TO <backup_device> [
,...n ] [ <MIRROR TO clause> ] [ next-mirror-to ] [
WITH { <general_WITH_options> | <logspecific_optionspec> } [ ,...n ] ][;]
20
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.
21
RESTORE 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 ] ][;]
22
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 ] [;]
23
RESTORE DATABASE { database_name |
@database_name_var } <file_or_filegroup> [ ,...n
] [ FROM <backup_device> [ ,...n ]
] WITH {
[ RECOVERY | NORECOVERY
]
[ , <general_WITH_options> [ ,...n ] ] } [ ,...n ]
[;]
24
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 ] ][;]
25
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 ] ] [;]
26
RESTORE DATABASE { database_name |
@database_name_var } FROM
DATABASE_SNAPSHOT =
database_snapshot_name
27
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 } [ ; ]
28

READ UNCOMMITTED
Especifica que las instrucciones pueden leer filas que
han sido modificadas por otras transacciones pero
todavía no se han confirmado.

READ COMMITTED
Especifica 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.
29
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.
30
Especifica 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.
31
Especifica 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.
32
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.
33
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" } ] [ ; ]
34
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.
35
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 ] ) }[ ; ]
36
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.
37
Ejemplo en SQLServer:
DROP INDEX{
<drop_relational_or_xml_or_spatial_index> [ ,...n ] |
<drop_backward_compatible_index> [ ,...n ]}
38

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.
39

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
comparado con Oracle.
esta
muy
por
debajo
40

similar documents