Está en la página 1de 36

BASES DE DATOS DISTRIBUIDAS CON

SQL SERVER 2012


















(2014) Antonio Ortiz Ramrez
www.aortiz.net

www.qsoluciones.net

www.qsoluciones.net
2

Dirigido a: Programadores, Analistas de Sistemas, Administradores de Sistemas, Estudiantes y
Profesores que deseen aprender a disear e implementar un modelo de base de datos
distribuida.

Deseable: Conocimientos de bases de datos, SQL.

Requisitos: Haber cursado alguna carrera relacionada a la informtica o tener experiencia en
bases de datos.



Duracin: 50 hrs.

3

www.qsoluciones.net

CONTENIDO:




I. Introduccin al modelo relacional
De Sequel a SQL Server
Bases de Datos Relacionales
Manejadores de Bases de Datos Relacionales
SQL
Arquitectura Cliente-Servidor


II. Instalacin y Configuracin de SQL Server
Instalacin Manual
Configuracin de Instancias
Administrador de Configuracin (Configuration Manager)


III. Administracin de SQL Server
SQL Server Management Studio
Separar y Adjuntar bases de datos
Respaldos
Compactar
Importar Datos


IV. Diseo de Bases de Datos
Diseo Conceptual
Diseo Lgico
Diseo Fsico
Modelo relacional
Modelos E-R
Normalizacin

www.qsoluciones.net
4



V. Arquitectura de SQL Server
Archivos de datos
Archivo de transacciones
Grupos de archivos
Pginas de Datos
ndices Clustered
ndices Non clustered


VI. Transact SQL
Diagramas
DDL
Consultas
SubConsultas


VII. Vistas
Vistas
Vistas Indexadas


VIII Bases de Datos Distribuidas
Descripcin
Caractersticas de una base de datos distribuidas
Ventajas
Desventajas
Creando un modelo de base de datos distribuidas


IX. Consultas Distribuidas
Servidores vinculados
Consultas distribuidas
5

www.qsoluciones.net

Transacciones Distribuidas

X. Procedimientos Almacenados (Stored Procedures) y Funciones
Procedimientos del Sistema
Procedimientos del Usuario
Funciones del Sistema
Funciones del Usuario
SQL Dinmico vs Procedimientos Almacenados


XI. Desencadenadores (Triggers)


XII. Replicacin
Publicador
Suscriptor
Rplica de instantneas
Rplica transaccional
Replicacin de Mezcla





www.qsoluciones.net
6

I. INTRODUCCIN AL MODELO RELACIONAL


Objetivo de este captulo: En este captulo se hace un repaso, de la historia de Sequel a SQL
Server, de los conceptos bsicos del modelo relacional, en especfico de temas como bases de
datos relacionales, tablas, llave primaria y secundaria, relaciones, manejador de base de datos,
SQL, arquitectura cliente-servidor, normalizacin.

Duracin aproximada: 5 horas



De Sequel a SQL Server: Sequel (Structured English Query Language ) es el primer lenguaje
para acceso a datos relacionales, creado por IBM en la dcada de 1970, el cual pasara a ser
el antecesor del estndar SQL.

Microsoft SQL Server, la implementacin del manejador de base de datos reconoce los
orgenes del lenguaje estndar de consulta y por esto adopta la pronunciacin sequel para el
producto de Microsoft. La implementacin (variante o dialecto) de SQL incluida en Microsoft
SQL Server es llamada Transact SQL.



7

www.qsoluciones.net

Bases de Datos Relacionales: Son bases de datos cuyo diseo est basado en el modelo
relacional, las cuales contienen Tablas que representan entidades y relaciones entre estas
tablas.

Algunas caractersticas del modelo relacional:
Los nombres de tablas deben ser en singular
Los nombres tablas son nicos
Cada tabla es un conjunto de filas (registros) y columnas (campos)
Las tablas se relacionan por medio de las llaves primarias y forneas
La Llave primaria es un valor nico que define a los dems atributos (columnas) de la
tabla


*Clave Nombre Telefono Ciudad
1 Juan Lopez (55) 1234-5678 Mexico, DF
2 Pedro Zapata (33) 2345-6789 Guadalajara
3 Luis Rodriguez (81) 9876-5432 Monterrey
Tabla: Persona






Manejadores de Bases de Datos Relacionales: Los Sistemas Manejadores de Bases de
Datos o DBMS por sus siglas en ingls; permiten almacenar y posteriormente acceder a los
datos de forma rpida y estructurada. Entre los manejadores ms populares estn Microsoft
SQL Server, Oracle, DB2, MySQL, Interbase, etc.



Columna
(Campo)
Fila
(Registro)

www.qsoluciones.net
8

SQL: el lenguaje estructurado de consulta (Structured Query Language) permite que las
aplicaciones realicen consultas, actualizaciones y eliminacin a los datos de una base de datos
relacional mediante sentencias definidas por este lenguaje estandarizado. SQL contiene 2
grupos principales de sentencias que se agrupan en:
DDL (Data Definition Language) por medio de la cual se puede crear o modificar la
estructura de los datos (tablas, ndices, relaciones); ejemplos de estos en Transact SQL
son: CREATE, ALTER, DROP y TRUNCATE.
DML (Data Manipulation Language) o Lenguaje de manipulacin de datos, que permite
consultar, insertar, eliminar o actualizar los datos. Los ms conocidos son: SELECT,
INSERT, DELETE, UPDATE



9

www.qsoluciones.net

Arquitectura Cliente-Servidor: Es un modelo de aplicacin donde las tareas se dividen entre
la aplicacin Cliente que consume los servicios y recursos del Servidor. Ejemplo de este tipo de
arquitectura son los servidores FTP y clientes FTP, Servidores Web y navegadores. La
separacin del cliente y servidor es de tipo lgica, lo cual implica que ambos pueden estar
contenidos en el mismo hardware o en equipos separados, incluso cada uno de ellos puede
estar instalado en un clster o grupo de computadoras.









www.qsoluciones.net
10

II. INSTALACIN Y CONFIGURACIN DE SQL SERVER


Instalacin Manual: Para esta instalacin se utilizara el paquete de instalacin de SQL Server
2012 express el cual est disponible de manera gratuita desde el sitio oficial de Microsoft.
http://msdn.microsoft.com/es-mx/evalcenter/hh230763.aspx

De clic al botn Empiece hoy mismo y en la siguiente pantalla seleccione la edicin que
requiera: https://www.microsoft.com/betaexperience/pd/SQL2012EvalNOCTA/esxl/

Voy a utilizar la edicin de 64 bits, que adems ya incluye la herramienta Management Studio
(edicin With Tools, distintivo de la terminacin WT en el nombre del archivo) , doy doble clic al
ejecutable y espero a que aparezca la siguiente pantalla:

11

www.qsoluciones.net

Hacemos clic en la opcin New SQL Server stand-alone installation, enseguida aparece la
pantalla con los trminos de licencia, a lo cual aceptamos y hacemos clic en el botn Siguiente
(Next).

En esta ocasin me indica que ya existen actualizaciones para el producto se instalaran
automticamente (SP1).

www.qsoluciones.net
12


Aceptamos y continuamos haciendo clic en el botn Siguiente (Next).
13

www.qsoluciones.net


En esta pantalla aceptamos las caractersticas por defecto y continuamos. En la siguiente
pantalla seleccionamos cambiar el nombre de instancia, en este ejemplo utilizo: SQL2012.

www.qsoluciones.net
14


En la seccin inferior de la pantalla me indica que ya se encuentra una instancia instalada,
llamada SQL2008, verificamos que todo est bien y damos clic a Siguiente.
15

www.qsoluciones.net


En esta pantalla se configura las cuentas que utilizan los servicios a instalar, dejamos la
configuracin por defecto y hacemos clic en Siguiente.

www.qsoluciones.net
16


Aqu seleccionamos el tipo de seguridad a utilizar para SQL Server, en esta ocasin utilizo
Autenticacion Mixta (o de SQL Server) por no encontrarme en una red con dominio,
administrada por Windows Server, en caso de administrar acceso y privilegios con Windows
Server, sera aconsejable usar el modo de Autenticacin Windows.
17

www.qsoluciones.net


La siguiente pantalla que aparece permite indicar si desea enviar un reporte sobre la instalacin
a Microsoft. Seleccione la opcin deseada y de clic en Siguiente.



www.qsoluciones.net
18

Si todo finaliza correctamente, la pantalla final sera esta:



19

www.qsoluciones.net

Administrador de Configuracin (SQL Server Configuration Manager)

Despues de haber instalado SQL Server, vamos al men de inicio, en la carpeta Microsoft SQL
Server 2012, abrimos la subcarpeta Configuration Tools y hacemos clic en SQL Server
Configuration Manager.


Abrimos la opcin SQL Server Network Configuration y hacemos doble clic en TCP/IP

www.qsoluciones.net
20


En esta ventana revisamos que se encuentre seleccionado S para la opcin Activo, de esta
manera comprobamos que el protocolo TCP/IP se encuentra disponible para comunicarnos con
esta Instancia de SQL Server.


21

www.qsoluciones.net

Hacemos clic en la pestaa Direcciones IP (IP Addresses)


www.qsoluciones.net
22


Aqu se configura el puerto a utilizar por esta instancia, recomendamos por ahora usar el puerto
estndar de SQL Server que es el 1433.

Para ello, revisamos cada seccin donde encontremos TCP Dynamics Ports y eliminamos el 0,
enseguida colocamos el valor del puerto hasta el final en IP ALL, opcin TCP Port. Despus de
aceptar, deberemos reiniciar el servicio para que escuche en el puerto seleccionado.

Porque definir un puerto fijo en lugar de dinmico? Cada vez que inicia el servicio podra
obtener el primer puerto disponible en el equipo, el cual es muy probable que sea diferente y
podramos tener problemas de conexin desde las aplicaciones cliente.

NOTA: Si ya se encuentra una instancia funcionando con este puerto, la instancia de SQL 2012
que instalamos recientemente no podr iniciar y deberemos cambiar el puerto.


23

www.qsoluciones.net

III. ADMINISTRACIN DE SQL SERVER


SQL Server Management Studio. Mediante la herramienta Management Studio es posible
visualizar, crear y modificar los objetos contenidos en una instancia de SQL Server; mediante su
interfaz grfica facilita las tareas que normalmente requieren de escribir cdigo DDL o DML

En la carpeta de SQL Server 2012 del men de inicio podemos abrir SQL Server Management
Studio, a partir de la cual aparece la siguiente ventana:



Indique el nombre de instancia a la cual desea conectarse, a continuacin seleccione el tipo de
autenticacin Windows si eligi esta durante la instalacin o se encuentra en el equipo que
contiene la instancia de SQL Server; seleccione autenticacin SQL Server si eligi esta durante
la instalacin.



www.qsoluciones.net
24

Crear una base de datos

Hacemos clic en el botn Nueva consulta (New Query) y en la ventana de edicin que aparece
tecleamos lo siguiente:
CREATE DATABASE EjemploBD


Hacemos clic en el botn Ejecutar ( Execute ). A continuacin indicamos que deseamos poner
en uso la nueva base de datos EjemploBD. Para eso tecleamos la siguiente sentencia:
USE EjemploBD



* NOTA: Para ejecutar solo este comando y no el anterior, podemos escribir en un rengln
debajo de la sentencia anterior, enseguida seleccionar la lnea que contiene la sentencia USE
EjemploBD y hacer clic al botn Ejecutar. O si lo prefieres podrias eliminar el contenido de la
ventana y enseguida teclear la nueva sentencia.


25

www.qsoluciones.net

Crear Tablas

CREATE TABLE Persona(ID int IDENTITY PRIMARY KEY, Nombre varchar(50), Edad int DEFAULT 0, Peso float
DEFAULT 0)



En el rbol de la izquierda deber aparecer la tabla Persona, dentro del objeto EjemploBD,
Tables. En caso de no aparecer podr refrescar la vista haciendo clic con botn derecho en
Tables y luego en Actualizar (Refresh).

Si hacemos clic con botn derecho en la tabla Persona y enseguida en Diseo (Design)
veremos la tabla, las columnas y tipos de datos de cada una.


Crear ndices

Ahora creamos un ndice para el nombre de la persona
Create Index ind_Persona_Nombre ON Persona(Nombre)




www.qsoluciones.net
26


Aqu observamos que la columna ID es de tipo Identity, con un valor inicial de 1 y un incremento
de 1, esto asegura que sea un valor nico incremental, por otro lado se agreg la propiedad de
Llave primaria y por defecto se cre el ndice como Clustered; esto lo podemos confirmar en la
ventana de ndices.

27

www.qsoluciones.net



Slo podemos tener un ndice clustered por tabla; y esto es debido a que la propiedad clustered
determina el orden fsico de los registros dentro de las pginas de datos, permitiendo que los
datos sean ordenados e indexados mientras son almacenados tomando en cuenta esta
columna (o columnas).

El ndice clustered es por su naturaleza el ms rpido, ya que una vez encontrado el dato a
travs de ese ndice, se pueden obtener todas las dems columnas sin hacer un salto a los
datos. En cualquier otro tipo de ndice, se crea un objeto en la base de datos que contiene una
estructura para la columna indexada y por cada registro en el ndice existe un apuntador a la
ubicacin fsica de los datos del registro.



www.qsoluciones.net
28

Separar y Adjuntar bases de datos
El proceso de Conectar o indicar a SQL Server que use y ponga activa una base de datos para
los usuarios se le llama Adjuntar; el proceso contrario se conoce como desconectar o separar
una base de datos, de tal manera que SQL Server deje de administrarla e imposibilite cualquier
actualizacin.

La ubicacin de los archivos de la base de datos pueden ser cualquier carpeta local en la cual
se tengan permisos, para este ejemplo usamos la carpeta por defecto de SQL Server, llamada
DATA y localizada dentro de la carpeta de instalacin de Microsoft SQL Server.

Adjuntar base de datos
En el administrador de SQL Server ejecutamos el comando:
Declare @Path varchar(1024), @ArchivoDatos varchar(1024), @ArchivoLog varchar(1024)

Select @Path = (SELECT Top 1 SUBSTRING(physical_name, 1, CHARINDEX('master.mdf',
LOWER(physical_name)) - 1) FROM master.sys.master_files WHERE name='master')

set @ArchivoDatos=@Path + 'EjemploBD.mdf'
set @ArchivoLog=@Path + 'EjemploBD_log.ldf'

EXEC sp_attach_db 'EjemploBD', @ArchivoDatos, @ArchivoLog

Separar base de datos
En el administrador de SQL Server ejecutamos el comando:
sp_detach_db EjemploBD
Esto desconectar la base de datos EjemploBD y dejar de estar disponible para cualquier
aplicacin cliente que se conecte a esta instancia del servidor.



29

www.qsoluciones.net

Respaldos
Es importante contar con una estrategia de respaldos que garantice contar con una copia de los
datos en caso de perdida por cualquier falla o imprevisto. Los respaldos de la base de datos
entera se conocen como Full o Completos, mientras que las copias de seguridad que solo
guardan los cambios realizados desde el respaldo anterior se les conoce como Diferenciales.

En la versin 2012 de SQL Server se incorpora la posibilidad de hacer un respaldo en la nube
de Microsoft conocida como Azure.

Respaldo Completo
BACKUP DATABASE EjemploBD TO DISK=D:\ EjemploBD.bak, NAME=Respaldo completo de EjemploBd

Respaldo Diferencial
BACKUP DATABASE EjemploBD TO DISK=D:\ EjemploBD.bak WITH DIFFERENTIAL, NAME=Respaldo No. 1
diferencial de EjemploBD

Si contamos con la versin Estandar, BI o Entreprise podremos realizar respaldos comprimidos
agregando la opcin COMPRESSION:

BACKUP DATABASE EjemploBD TO DISK=D:\ EjemploBD.bak WITH COMPRESSION
BACKUP DATABASE EjemploBD TO DISK=D:\ EjemploBD.bak WITH DIFFERENTIAL, COMPRESSION


NOTAS
. Si el nombre de archivo destino para el respaldo ya existe, no se sobrescribe o se pierde el
respaldo anterior, la sentencia BACKUP agrega los datos del nuevo respaldo al final del
archivo.
. Para realizar un respaldo diferencial es necesario que anteriormente exista un respaldo
Completo o de lo contrario se producir un error.
. Podr realizar un respaldo en cualquier momento, incluso si existen usuarios consultando o
realizando cambios en la base de datos.


www.qsoluciones.net
30

Restaurar base de datos

RESTORE DATABASE EjemploBD FROM DISK=D:\ EjemploBD.bak WITH RECOVERY



. La opcin RECOVERY indica que la base de datos quedara en operacin inmediatamente
despus de recuperar los datos del respaldo.
. Si el respaldo ms reciente es diferencial, se deber restaurar primero el ultimo respaldo
Completo y a continuacin todos los diferenciales en el mismo orden en que se crearon.



31

www.qsoluciones.net

IV. Diseo de Bases de Datos
El diseo de una base de datos se realiza en 3 etapas, la primera es el diseo conceptual, que
consiste en plasmar las ideas sobre el proyecto de base de datos que tiene el usuario final
sobre los requerimientos o el problema a resolver. El diseo lgico es una representacin que
muestra las entidades y relaciones involucradas en la solucin de base de datos, mientras que
el diseo lgico especifica los requerimientos de almacenamiento, tipos de datos, y validaciones
necesarias y especificas al manejador de base de datos.


Diseo Conceptual:
El diseo conceptual consiste en dibujos, planos y diagramas simples que representan una idea
o ideas sobre la solucin de bases de datos a construir. El diseo conceptual se basa
exclusivamente en los requerimientos de informacin de la empresa o usuario del sistema, sin
tomar en cuenta los requisitos o limitaciones del hardware.







Diseo Lgico:
El diseo lgico se acerca ms al manejador de base de datos relacional, ya que representa
entidades y relaciones. En este diseo se ven las relaciones y el tipo de relacin entre
entidades.









Cliente
* IDCliente
Nombre
Saldo
Domicilio
Edad
Cliente
Compra
Cdigo
Saldo
Nombre
Producto
Descripcin Cdigo
Precio

www.qsoluciones.net
32

El diseo lgico no precisa el tipo de datos como se almacenan fsicamente ni el espacio que
ocuparan en el manejador a utilizar. Aqu se determinan las entidades que existen y las
relaciones entre estas sin especificar de qu manera se almacenan.

33

www.qsoluciones.net

Diseo Fsico:
En esta etapa se precisan los atributos y tipos de datos especficos del manejador de base de
datos. Aqu se traduce el diseo lgico en estructuras y relaciones que representan la manera
en que se almacn y validan los datos representados. Por ejemplo, en el diseo fsico se
especifica el tipo de datos IDCliente, el rango de valores que acepta y si acepta Nulos o se
rechazan.












Cliente Tipo de dato
* IDCliente
Entero largo,
incremental(1,1)
Nombre Varchar(50)
Saldo Float
Domicilio Varchar(200)
Edad tinyint

www.qsoluciones.net
34

Modelo relacional

El modelo relacional permite representar datos de manera fcil y est basado en la teora de
conjuntos y lgica de predicados.

En este modelo los datos se representan en tablas que a su vez se estructuran en filas
(registros) y columnas (campos), lo cual no representa como se almacenan fsicamente los
datos. El modelo relacional se llama as porque hace un gran nfasis en las tablas y las
relaciones existentes entre ellas.

El modelo relacional permite realizar el modelo lgico de una base de datos. As, una base de
datos relacional se compone de un conjunto de tablas que se relacionan entre s por un campo
en comn.




Entidad: Cliente


IDCliente Nombre Telefono Saldo
1 Juan Rodriguez (123) 123-4567 3,500.00
2 Carlos Gonzalez (55) 1234-5678 5,000.00
3 Manuel Diaz (33) 4987-6543 2,000.00
35

www.qsoluciones.net

Modelos E-R











www.qsoluciones.net
36

Normalizacin

También podría gustarte