SQL Server 2008 R2 Training Kit Disponible para descarga

1 04 2010

Es uno de los mejores recursos que he podido encontrar por estos dias, aquí el enlace Descargar y debajo están los puntos :D

 

Overview

SQL Server 2008 R2 offers an impressive array of capabilities for developers that build upon key innovations introduced in SQL Server 2008. The SQL Server 2008 R2 Update for Developers Training Kit is ideal for developers who want to understand how to take advantage of the key improvements introduced in SQL Server 2008 and SQL Server 2008 R2 in their applications, as well as for developers who are new to SQL Server. The training kit is brought to you by Microsoft Developer and Platform Evangelism.

Overview and Benefits

The training kit offers the following benefits:

  • Learn how to build applications that exploit the unique features and capabilities of SQL Server 2008 and SQL Server 2008 R2.
  • Provides a comprehensive set of videos, presentations, demos and hands-on labs
  • Contains new content for developers who are new to SQL Server.
  • Contains new content for SQL Server 2008 R2.
  • Contains all of the existing content from the SQL Server 2008 Developer Training Kit.
  • Easy to download and install.

Intended Audience

The training kit is designed for the following technical roles:

  • Developers who build applications for the Microsoft platform.
  • Microsoft evangelists, technical specialists and consultants.

Contents

The training kit includes the following content:

Presentations (15)

  • SQL Server 2008 R2 Update for Developers Overview Part I – SQL Server 2008 Review
  • SQL Server 2008 R2 Update for Developers Overview Part II – Introducing SQL Server 2008 R2
  • SQL Server 2008: Filestream
  • SQL Server 2008: Spatial
  • SQL Server 2008: T-SQL
  • SQL Server 2008: Date and Time Types
  • SQL Server 2008: SQLCLR
  • SQL Server 2008: Reporting Services
  • SQL Server 2008 R2: Introducing Application and Multi-Server Management with SQL Server 2008 R2 and Visual Studio 2010
  • SQL Server 2008 R2: Working with Data Tier Application Projects in Visual Studio 2010
  • SQL Server 2008 R2: Managing Change in Data Tier Application Projects with Visual Studio 2010 and SQL Server 2008 R2
  • SQL Server 2008 R2: Introducing SQL Server 2008 R2 StreamInsight
  • SQL Server 2008 R2: Querying Events in SQL Server 2008 R2 StreamInsight
  • SQL Server 2008 R2: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters
  • SQL Server 2008 R2: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine

Demos (24)

  • SQL Server 2008: AdventureWorks Racing All-Up Demo
  • SQL Server 2008: Spatial Demo
  • SQL Server 2008: Spatial Types
  • SQL Server 2008: Introduction to Filestream
  • SQL Server 2008: SQL CLR Nullable Types
  • SQL Server 2008: Programming with Filestream
  • SQL Server 2008: Reporting Services Web Application Integration
  • SQL Server 2008: T-SQL Date and Time Support
  • SQL Server 2008: T-SQL Table-Valued Parameters
  • SQL Server 2008: T-SQL Row Constructors
  • SQL Server 2008: T-SQL Grouping Sets
  • SQL Server 2008: T-SQL Merge
  • SQL Server 2008 R2: Creating a Utility Control Point
  • SQL Server 2008 R2: Enrolling a Managed Instance
  • SQL Server 2008 R2: Creating Data-Tier Applications
  • SQL Server 2008 R2: Data-Tier Application Deployment
  • SQL Server 2008 R2: Managing Change in Data Tier Application Projects in Visual Studio 2010
  • SQL Server 2008 R2: Introducing SQL Server 2008 R2 StreamInsight
  • SQL Server 2008 R2: Querying Events in SQL Server 2008 R2 StreamInsight
  • SQL Server 2008 R2: Advanced SQL Server 2008 R2 StreamInsight Event Queries
  • SQL Server 2008 R2: Working with SQL Server 2008 R2 StreamInsight CTI Events and Advance Time Settings
  • SQL Server 2008 R2: Creating a SQL Server 2008 R2 StreamInsight Input Adpater
  • SQL Server 2008 R2: Choosing a SQL Server 2008 R2 StreamInsight Development Model
  • SQL Server 2008 R2: Using the SQL Server 2008 R2 StreamInsight Event Flow Debugger

Hands-on Labs (13)

  • SQL Server 2008: How to build your first Web Application with SQL Server and ASP.NET
  • SQL Server 2008: Using Spatial Data in TSQL
  • SQL Server 2008: Using Spatial Data in Managed Code
  • SQL Server 2008: Using SQL CLR in SQL Server 2008
  • SQL Server 2008 R2: Introduction to PowerPivot
  • SQL Server 2008 R2: Introduction to Reporting Services Improvements
  • SQL Server 2008 R2: Introduction to StreamInsight and Complex Event Processing
  • SQL Server 2008 R2: Introduction to Data-tier Applications
  • SQL Server 2008 R2: Creating and Deploying a Data-Tier Application
  • SQL Server 2008 R2: Managing Change in Data-Tier Application Projects in Visual Studio 2010
  • SQL Server 2008 R2: Querying Events in SQL Server 2008 R2 StreamInsight using LINQ
  • SQL Server 2008 R2: Working with the SQL Server 2008 R2 StreamInsight Samples
  • SQL Server 2008 R2: Working with the SQL Server 2008 R2 StreamInsight Event Flow Debugger

Videos (35)

  • SQL Server 2008 R2 Update for Developers Overview Part I – SQL Server 2008 Review
  • SQL Server 2008 R2 Update for Developers Overview Part II – Introducing SQL Server 2008 R2
  • Introducing SQL Server 2008 R2 StreamInsight
  • Demo: Real Time Analytics with SQL Server 2008 R2 StreamInsight
  • Introducing SQL Server 2008 R2 Application and Multi-Server Management
  • Introducing SQL Server 2008 R2 Reporting Services
  • Introduction To SQL Server 2008 R2 StreamInsight and Complex Event Processing
  • Introducing PowerPivot for Excel 2010 and SharePoint 2010
  • Presentation: Introducing Application and Multi-Server Management with SQL Server 2008 R2 and Visual Studio 2010
  • Demo: Creating a Utility Control Point
  • Demo: Enrolling a Managed Instance
  • Presentation: Working with Data Tier Application Projects in Visual Studio 2010
  • Demo: Creating Data-Tier Applications
  • Demo: Data-Tier Application Deployment
  • Presentation: Managing Change in Data Tier Application Projects with Visual Studio 2010 and SQL Server 2008 R2 (Part I)
  • Presentation: Managing Change in Data Tier Application Projects with Visual Studio 2010 and SQL Server 2008 R2 (Part II)
  • Demo: Managing Change in Data Tier Application Projects in Visual Studio 2010
  • Presentation: Introducing SQL Server 2008 R2 StreamInsight (Part I)
  • Presentation: Introducing SQL Server 2008 R2 StreamInsight (Part II)
  • Demo: Introducing SQL Server 2008 R2 StreamInsight
  • Presentation: Querying Events in SQL Server 2008 R2 StreamInsight (Part I)
  • Presentation: Querying Events in SQL Server 2008 R2 StreamInsight (Part II)
  • Demo: Querying SQL Server 2008 R2 StreamInsight Using LINQ
  • Presentation: Querying Events in SQL Server 2008 R2 StreamInsight (Part III)
  • Demo: Advanced SQL Server 2008 R2 StreamInsight Event Queries
  • Presentation: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters (Part I)
  • Presentation: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters (Part II)
  • Demo: Working with SQL Server 2008 R2 StreamInsight CTI Events and Advance Time Settings
  • Presentation: Designing SQL Server 2008 R2 StreamInsight Event Models and Adapters (Part III)
  • Demo: Creating a SQL Server 2008 R2 StreamInsight Input Adapter
  • Presentation: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine (Part I)
  • Presentation: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine (Part II)
  • Demo: Choosing a SQL Server 2008 R2 StreamInsight Development Model
  • Presentation: Installing, Deploying and Maintaining the SQL Server 2008 R2 StreamInsight Runtime Engine (Part III)
  • Demo: Using the SQL Server 2008 R2 StreamInsight Event Flow Debugger




Tipos de Join en T-SQL y como usarlos…

17 10 2009

Hola, después de un tiempo sin postear – lo siento cuestiones de tiempo :( – regreso con otra ayudita en lo que es Transact, bueno aunque esto no es propio del Transact sino del SQL en si, vamos a ver como son los tipos de Joins que por cierto son muy útiles hasta imprescindibles diría yo para implementar nuestras consultas, ya entramos al campo de las consultas multitabla y voy a plantear un par de estas (que aunque sin lógica) son de ejemplo para que puedan entender lo mejor posible como funcionan los tipos de Join.

Empezando les comentaré que en SQL tenemos tipos de Join que funcionarán en Transact, propio de MS SQL Server, y que sólo cambian ciertas partes de la sintaxis  para los demás lenguajes ojo todos al final hacen lo mismo, las bases son iguales, tenemos 2 tipos de Join (por definición almenos) los Joins Internos  o de Combinación interna (Inner Join) y los Joins Externos o Combinación externa (Outer Join) que a su vez tienen sus diferencias dentro de cada uno de ellos, quiero explicarlos con ejemplos y lo más sencillo posible, no me detendré mucho en la sintaxis sino en como funcionan y como los podrías usar, porque yo sé que llegaste desesperadamente a mi blog por mera casualidad pero buscando una ayudita y no que te enreden más la vida xD

Tipos de Join:

1. Internos (Inner Join)

  • De Equivalencia (Equi – Join)
  • Natural (Natural – Join)
  • Cruzado (Cross – Join)
  • En sí mismo (Self – Join)

2. Externos (Outer Join)

  • De tabla Izquierda (Left Outer Join)
  • De tabla Derecha (Right Outer Join)
  • Combinación completa (Full Outer Join)

Bueno empezaremos creando unas tablas son simples y quiero que sigas la lógica usaré letras para que al hacer las mezclas no te confundas y números para que sean fáciles de ubicar y entiendas que realiza cada consulta eso es lo más importante después tu podrás subirles el nivel de complejidad.

Creamos las tablas en nuestra Query de SQL Management Studio en una Base de datos que hayas creado.

- Tabla1 (IdLetra, Valor1)

- Tabla2 (IdLetra, Valor2)

- Tabla3 (IdLetra, Valor3)

- Tabla4 (IdLetra, Valor4)

CREATE TABLE Tabla1 (IdLetra varchar(5), Valor1 int)
CREATE TABLE Tabla2 (IdLetra varchar(5), Valor2 int)
CREATE TABLE Tabla3 (IdLetra varchar(5), Valor3 int)
CREATE TABLE Tabla4 (IdLetra varchar(5), Valor4 int)

Y le agregamos algunos valores para los ejemplos:

INSERT INTO TABLA1 VALUES ('A',1)
INSERT INTO TABLA1 VALUES ('B',2)
INSERT INTO TABLA1 VALUES ('C',3)
INSERT INTO TABLA1 VALUES ('D',4)
INSERT INTO TABLA1 VALUES ('E',5)
INSERT INTO TABLA1 VALUES ('F',6)

INSERT INTO TABLA2 VALUES ('A',10)
INSERT INTO TABLA2 VALUES ('B',20)
INSERT INTO TABLA2 VALUES ('C',30)
INSERT INTO TABLA2 VALUES ('D',40)
INSERT INTO TABLA2 VALUES ('E',50)
INSERT INTO TABLA2 VALUES ('F',60)

INSERT INTO TABLA3 VALUES ('A',7)
INSERT INTO TABLA3 VALUES ('B',8)
INSERT INTO TABLA3 VALUES ('C',9)
INSERT INTO TABLA3 VALUES ('D',10)
INSERT INTO TABLA3 VALUES ('E',11)
INSERT INTO TABLA3 VALUES ('F',100)
INSERT INTO TABLA3 VALUES ('G',200)

INSERT INTO TABLA4 VALUES ('A',12)
INSERT INTO TABLA4 VALUES ('B',13)
INSERT INTO TABLA4 VALUES ('C',14)
INSERT INTO TABLA4 VALUES ('D',15)
INSERT INTO TABLA4 VALUES ('E',16)
INSERT INTO TABLA4 VALUES ('H',300)
INSERT INTO TABLA4 VALUES ('I',400)

Te recomiendo hacerles un SELECT a las tablas para que las examines y comprendas mejor los ejemplos, además que en cada ejemplo hagas SELECT al mismo tiempo a  las tablas involucradas y puedas comparar el select de tus tablas con el resultado de las consultas de Join :D .

INNER JOIN

El Inner Join te permite combinar dos tablas mediante un campo en común  para hacer relaciones y consultas en este ejemplo vamos a utilizar un Inner Join para unir las tablas 1 y 2, Funciona así:

SELECT tabla.(campo que quieres mostrar)
FROM Tabla1 (Alias -opcional-)  INNER JOIN  Tabla2 (Alias – opcional-)
ON Tabla1(o Alias).NombreCampo(campo en común) <,>,= (comparación)  Tabla2(o Alias).NombreCampo(campo en común)

Se ve medio complicado asi, pero créeme que no lo es,  conserva este “molde” por decirlo así que te puede ayudar en tus dudas sobretodo si eres nuevo en esto, bueno ahora si vamos a hacerlo en Transact y vamos a relacionar las tablas 1 y 2 para que puedas ver como queda. Este ejemplo será el mismo lo haré primero con alias y luego sin alias:

Inner Join Tabla 1 y Tabla2 (con alias)

--Con Alias
SELECT * FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra = T2.IdLetra

Inner Join Tabla 1 y Tabla2 (sin alias)

--Sin Alias
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra = Tabla2.IdLetra

Como te das cuenta en la parte donde va el asterisco (*) es donde se piden los campos de las dos tablas relacionadas como ves aquí se trae todos los campos, pero si hubiera algunos en especifico que quieras mostrar escribes “tabla.campo” y eliges cuales quieres, mas adelante en esta consulta vemos que se escribe un nombre corto al costado del nombre de la tabla este es el Alias , luego de esto ya la tabla tiene asignado un nombre Alias y sólo se le llamará mediante este nombre corto igual que como se hacia con su nombre completo; finalmente vemos la comparación después de la palabra reservada ON que en este caso es “=” también podría ser >,<, etc.  como algo adicional al inicio también puedes usar el alias (en el lugar donde va el asterisco) de esta manera:

--Ejemplo
SELECT T1.Valor1,T2.Valor2,T2.IdLetra FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra =T2.IdLetra

- De Equivalencia (Equi-Join)

En este tipo es una especie de theta-join donde se hace una comparación de Igualdad por lo tanto si el inner join es comparado con < , > estos no entrarían en esta categoría

--EQUI JOIN
SELECT * FROM Tabla1 INNER JOIN Tabla2 ON Tabla1.IdLetra=Tabla2.IdLetra

- Natural (Natural-Join)

Propiamente en T-SQL no se puede hacer Natural Join pero es simple de explicar, el Natural Join te da los valores y elimina los campos repetidos en la relación establecida quedando como el ejemplo donde especifique el uso de alias al principio de la Query, lo puedes ver aquí donde solo muestro uno de los dos campos  IdLetra, esto daría un Natural Join:

--NATURAL JOIN
SELECT T1.IdLetra ,T1.Valor1, T2.Valor2 FROM Tabla1 T1 INNER JOIN Tabla2 T2 ON T1.IdLetra =T2.IdLetra

- Cruzado (Cross-Join)

El Cross Join nos permite hacer un producto cartesiano entre las tablas que estamos comparando, también se puede dar de manera Implicita lo que llaman el operador proyección, al final funcionan igual:

---CROSS JOIN NORMAL
SELECT * FROM Tabla1 CROSS JOIN Tabla2
SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 FROM Tabla1 CROSS JOIN Tabla2
---CROSS JOIN IMPLICITO
SELECT * FROM Tabla1 ,Tabla2
SELECT Tabla1.IdLetra,Tabla1.Valor1,Tabla2.Valor2 from Tabla1,Tabla2

- A sí misma (Self-Join)

Este es un tipo un tanto raro de Join pero quien sabe la necesidad de tus consultas y necesites implementarla en una, esta te permite hacer un producto cartesiano de la tabla pero consigo misma osea un Auto Cross Join:

--SELF JOIN
SELECT * FROM Tabla1 SELF JOIN Tabla1 ON Tabla1.IdLetra=Tabla1.IdLetra

OUTER JOIN

En el Outer Join la diferencia es que en este tipo de combinación se mantienen los valores que no tienen equivalente en la otra tabla, esto no sucede en el Inner Join que cuando las tablas no tienen valores equivalentes la relación botaría NULL en el resultado y este es omitido por defecto, hay maneras de conservarlos usando Inner Join especificando IsNull o Null, pero no nos compliquemos más, veamos los ejemplos del Outer Join  para esto relacionaremos las tablas 3 y 4 que contiene algunos valores sin equivalente en la otra, primero hagamos un Inner Join comprobando así que no nos dá los valores Null:

--INNER JOIN
SELECT * FROM Tabla3 INNER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Como verás los valores sin equivalente son omitidos

-De Tabla Izquierda (Left Outer Join)

El Left Outer Join nos permite hacer una mezcla y conservar todos los valores de la tabla izquierda (la primera tabla que se menciona en la consulta) sin importar que no tengan equivalente con la de la derecha, veamos el ejemplo:

--LEFT OUTER JOIN
SELECT * FROM Tabla3 LEFT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

-De Tabla Derecha (Left Outer Join)

El Right Outer Join nos permite hacer una mezcla y conservar todos los valores de la tabla derecha (la segunda tabla que se menciona en la consulta) sin importar que no tengan equivalente con la primera, el caso contrario como ven, vamos al ejemplo:

--RIGHT OUTER JOIN
SELECT * FROM Tabla3 RIGHT OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

-Combinación Completa  (Full Outer Join)

Con esta útlima nos permitirá hacer una mezcla total y conservar todos los valores de ambas tablas, los valores que no tengan equivalencia aparecerán  acompañados de un Null y se mostrán todos ellos, ejemplo:

--FULL OUTER JOIN
SELECT * FROM Tabla3 FULL OUTER JOIN Tabla4 ON Tabla3.IdLetra = Tabla4.IdLetra

Espero que te haya servido mucho este ejemplo porque aveces es un poco complicado entenderlo al principio, una vez captada la idea ya es sencillo y verás que no es nada del otro mundo…saludos :D





Modificar nombres de Tablas, Columnas, Indices y TipoDatoAlias en Transact – SQL

4 09 2009

Hola, ya usamos al Alter Table en consultas fáciles para poder manipular y agregar campos, pero seguramente del post anterior te preguntaste y como le cambio el nombre a una columna (porque eso falta) bueno con esta ayudita podrás hacerlo, bueno  entonces:

Primero para usar el sp_rename voy a crear algunos ejemplos, tu podrás copiar el codigo completo y evitarte la molestia de imaginarte algunas tablas e índices nuevos para hacer tus pruebas entonces, creamos 01 base de datos para la prueba, 02 tablas, 01 índice y 01 TipoDatoAlias:

CREATE DATABASE DATA
USE DATA

--CREAR TABLAS Y CAMPOS
CREATE TABLE MATRICULA (IdMatricula char(4) NOT NULL PRIMARY KEY, FechaMatricula date, Curso varchar(10))
CREATE TABLE ALUMNO (IdAlumno char(4) NOT NULL PRIMARY KEY, Nombre varchar (50), Edad smallint)

--CREAR UN INDICE
CREATE INDEX Indice ON ALUMNO (Nombre,Edad)

--CREAR UN ALIAS TIPO DE DATO
CREATE TYPE Dato
FROM varchar(20) NOT NULL ;

Bueno con eso ya tenemos algo para manipular, puedes comprobar que están creadas en tu Object Explorer, ahora si vamos a hacer las modificaciones:

  • Cambiar el nombre de una tabla
--CAMBIARLE EL NOMBRE A UNA TABLA
--En el siguiente ejemplo se cambia el nombre de la tabla ALUMNO por ESTUDIANTE.

EXEC sp_rename 'ALUMNO', 'ESTUDIANTE';
GO
  • Cambiar el nombre a una columna
--CAMBIARLE EL NOMBRE A UNA COLUMNA
--En el siguiente ejemplo se cambia el nombre de la columna NOMBRE por NOMESTUDIANTE

EXEC sp_rename 'ESTUDIANTE.Nombre', 'NomEstudiante';
GO
  • Cambiar el nombre a un índice
--CAMBIARLE EL NOMBRE A UN INDICE
--En el siguiente ejemplo se cambia el nombre del índice INDICE01 por PRIMERINDICE

EXEC sp_rename 'ESTUDIANTE.Indice','Indice01';
GO
  • Cambiar el nombre de un tipo de dato alias
--CAMBIARLE EL NOMBRE DE UN TIPO DE DATOS DE ALIAS
--En el siguiente ejemplo se cambia el nombre del tipo de datos de alias Dato por DatoCadena.

EXEC sp_rename 'Dato', 'DatoCadena';
GO

Espero que te haya sido de ayuda :D





Creación de Tablas e Integridad referencial en Transact SQL Server

18 08 2009

¿Como están amigos? después de unas pequeñas vacaciones además de un tiempo que eh tenido el blog un poco abandonado regreso dándoles otra ayudita en Transact – SQL, como saben estas todavía no son cosas muy difíciles, pero para los que tengan alguna duda podrán ayudarse con estos ejemplos que les comparto.

Bueno ahora sabemos que ya creada nuestra base de datos, con los parámetros que consideremos necesarios viene la creación de tablas y  tenemos que designarles sus respectivos tipos de datos además de hacer las relaciones, para esto tenemos dos maneras la forma gráfica y mediante querys en Transact, en lo que es integridad referencial es importante que las tablas estén VACIAS, ya que si las tablas contienen datos tendríamos problemas si alguno de estos registros insertados no cumplan con las reglas de integridad, tenemos 3 formas de manejarla:

  • Restricción(Cancelación)
  • Cascada
  • Anulación

Entonces vamos a crear las tablas y algunas relaciones, considerando llaves primarias y llaves foráneas, lo haremos primero en el modo gráfico mediante el asistente y luego con Transact SQL, también haremos el diagrama de la base de datos, para esto implementaremos dos bases de datos distintas con solo 3 tablas que servirán para nuestro ejemplo.

1.- Forma Gráfica:

  • Primero vamos al SQL Serer Management Studio

SQL01

  • Creemos nuestra base de Datos en Click derecho Databases – New DataBase y le colocaremos el nombre “Tienda”.

SQL002

  • Luego de creada nuestra Base de datos, vamos a crear tablas mediante el asistente, Click derecho – New Table y le damos los siguientes campos:

TABLAS003

TABLAS004

TABLAS011

  • Ahora si refrescas tu explorador del Management visualizarás las tablas ya creadas.
  • Si te has dado cuenta en las tablas Cliente tenemos el campo Cod_Distrito y en Factura tenemos el campo Cod_Cliente, te preguntarás ¿Por qué repito el valor?, bueno este campo nos permitirá hacer la relación en el diagrama de bases de datos como llave Foránea, eso lo explicaré mas adelante.
  • Ahora vamos a hacer el diagrama y crear las relaciones, vamos a Database Diagrams le hacemos click derecho – New Database Diagram (te preguntará si deseas crearlo coloca – Yes)

TABLAS006

  • Selecciona las tablas que participaran en el diagrama (en este caso todas) y dale Add, luego cuando estén agregadas sólo dale close  y verás que las tablas están en pantalla, puedes acomodarlas con el mouse si deseas.

TABLAS007

  • Ahora asignaremos las Primary Keys, las Llaves primarias son valores especiales que identificará de manera única a cada fila de la tabla y no pueden existir dos llaves primarias iguales estas no pueden repetirse en ningun otro registro de la tabla. Para asignarla simplemente en el diagrama puedes hacer click derecho sobre el campo y selecciona “Set Primary Key” (también se puede hacer al momento de crear los campos y tipos de datos).

TABLAS008

  • Crearemos ahora la relación, asignaremos la Foreign Key o también Llave Foránea esta establecerá la relación entre las tablas, para esto solo arrastramos desde el símbolo de la Primary Key en la tabla Distrito sin soltar hasta la tabla Cliente, donde nos pedirá que especifiquemos el campo a relacionar y elegimos Cod_Distrito y le damos Ok dos veces. Como podemos ver elegimos Cod_Distrito que es igual al campo de la Tabla Distrito, esto se definió al inicio colocándolo de manera premeditada para que ahora sirva finalmente de campo a relacionar, estos campos de relación pueden tener diferentes nombres pero es importante que sea el mismo tipo de dato sino la relación producirá un error.

TABLAS009

  • Hacemos los mismo desde la Tabla Cliente hacia la tabla Factura relacionandolo con el campo Cod_Cliente, ahora guarda los cambios.

!!!Ahora seguramente  si usas SQL Server 2008  tendrás un error “Saving changes is not permitted…” que no te permitará guardar los cambios, te sale un mensaje en el que te indica que tendrás que recrear las tablas, tranquilo para esto hay solución ¿Qué sucede? es que en SQL Server Management Studio ahora no te permite hacer este tipo de cambios mediante el Diseñador osea a nivel de interfaz (una razón muy buena para hacer esto por Transact) así que para que puedas continuar primero debes desmarcar la opcion Prevent saving changes that require table re-creation (Viene predeterminada) que se encuentra en la ruta Tools/Options/Designers/Table and Database Designers, así podrás guardar los cambios y tendrás tu diagrama.

TABLAS011

Finalmente el diagrama deberá quedar así, cierralo y guarda los cambios.

TABLAS010*Diagrama para cliente único

2.- Transact-SQL:

Bueno ahora veremos la forma de hacerlo mediante las Querys:

  • Primero vamos al boton New Query y abrimos una nueva consulta.
  • Debemos crear una base de datos y luego ponerla en uso entonces escribimos lo siguiente y lo ejecutamos:
CREATE DATABASE HOTELERA
USE HOTELERA
  • Ahora vamos a crear las tablas Hotel, Habitación y Cliente para eso escribimos y ejecutamos lo siguiente:
CREATE TABLE HOTEL (IdHotel char(5) not null, Nombre varchar (20),
 Direccion varchar (20), Telefono varchar (10),
 Num_Habitaciones int)

CREATE TABLE HABITACION (Num_Habitacion int not null, Estado varchar (20),
 Descripción varchar (20), Num_Camas int)

CREATE TABLE CLIENTE (DNI char(8) not null, Nombre varchar (50),
 Apellido varchar (50), Fecha_Ingreso datetime,
 Fecha_Salida datetime, Hora_Ingreso time, Hora_salida time)
  • Como podrás ver después de darle un refresh al explorador del Management tendremos nuestras tablas creadas, dentro de los tipos de datos te podrás preguntar porque algunos preferí colocarle “char” y en otras “varchar”, la razón es que en el tipo de dato char si colocas char(5) así se escriba un caracter se estará ocupando los 5 espacios reservados en cambio con varchar(5) si se escribe un sólo caracter esta cadena solo ocupará 1 espacio de los 5 reservados, esto es para siempre cuidar la memoria utilizada en tu base de datos, otra inquietud quizás sea ¿por qué utilizar la palabra reservada “not null” ? es que en estos campos se establecerán las Primary Keys más adelante y estas no aceptan valores nulos o vacios.
  • Podemos darles los siguientes Select para comprobar que estén correctamente creadas:
SELECT * FROM HOTEL
SELECT * FROM HABITACION
SELECT * FROM CLIENTE
  • Ahora vamos a agregarle a las tablas Habitación y Cliente los campos que servirán de referencia para las Foreign Keys (también son not null) mediante el comando “ALTER TABLE – ADD”
ALTER TABLE HABITACION ADD IdHotel char(5) not null
ALTER TABLE CLIENTE ADD Num_Habitacion int not null
  • Ahora agregémosle las Llaves Primarias y Foráneas
ALTER TABLE HOTEL ADD PRIMARY KEY (IdHotel)
ALTER TABLE HABITACION ADD PRIMARY KEY (Num_Habitacion)
ALTER TABLE CLIENTE ADD PRIMARY KEY (DNI)
ALTER TABLE HABITACION ADD FOREIGN KEY (IdHotel) references HOTEL
ALTER TABLE CLIENTE ADD FOREIGN KEY (Num_Habitacion) references HABITACION
  • Mediante el Alter Table Add Foreign Key también hacemos referencia a la tabla de donde proviene la Llave Principal y con la palabra reservada “references” se creará la relación entre las tablas.
  • Pasemos a la creación del Diagrama, se seguirán los mismos pasos ya mencionados en el modo gráfico, pero esta vez al agregar las tablas podremos observar que las relaciones ya están creadas solo guardamos el diagrama y listo.

TABLAS012

*Diagrama para cliente único

  • Como dato adicional puedes tambien eliminar alguna columna con el comando “ALTER TABLE – DROP COLUMN”
--ALTER TABLE ELIMINAR CAMPO
ALTER TABLE HOTEL DROP COLUMN Nombre_Campo
ALTER TABLE CLIENTE DROP COLUMN Nombre_Campo
ALTER TABLE HABITACION DROP COLUMN Nombre_Campo
  • Y Puedes modificar algun tipo de datos mediante el comando “ALTER TABLE – ALTER COLUMN”
--ALTER TABLE CAMBIO DE TIPO DE DATO
ALTER TABLE HOTEL ALTER COLUMN Telefono Nuevo_Tipo_Dato
ALTER TABLE HABITACION ALTER COLUMN Estado Nuevo_Tipo_Dato
ALTER TABLE CLIENTE ALTER COLUMN Apellido Nuevo_Tipo_Dato

Bueno espero que este post les permita trabajar de la manera adecuada y sobretodo que les haya sido de utilidad …saludos :D





Crear Bases de Datos en SQL Server 2008

29 06 2009

Esa gente!!!! …bueno muchachos el siguiente post es para crear bases de datos en SQL Server 2008 y para esto lo haremos de las dos maneras que les podrían ser útiles, la primera utilizando la interfaz gráfica (que es muy pero muuuy fácil) y la segunda que es mediante una consulta o un pequeño script (que también es muuuuuuy fácil), basta de chachara y comencemos.

Se utilizan 3 tipos de archivos para almacenar una base de datos:

  • Archivos principales: Estos archivos contienen la información de inicio para la base de datos, se utiliza también para almacenar datos y cada base de datos tiene un único archivo principal.
  • Archivos secundarios: Contienen todos los datos que no caben en el archivo principal, no es necesario que tengan archivos secundarios si el principal es lo suficientemente grande, pero si la base de datos fuera muy extensa se pueden utilizar archivos secundarios en otras unidades de disco de modo que se distribuyan en varias unidades o discos removibles.
  • Archivos de transacciones: Estos archivos contienen la información de registro que se utilizar para recuperar la base de datos,debe haber almenos un archivo de este tipo aunque puede haber mas de uno, su tamaño mínimo es de 512 kb y es el archivo Log.

Ahora pasemos a la creación de las bases de datos.

1. Forma gráfica

  • Primero abrimos nuestro SQL Server Management Studio usando nuestra autenticación Windows

SQL01

  • Luego es nuestro árbol buscamos DataBases y le hacemos click derecho seleccionando New Database…

SQL002

  • Se abre nuestro menu de diálogo y nos pide que registremos un nombre para nuestra base de datos en este caso será “DB_EJEMPLO”

SQL003

  • Verás que el Logical Name se va llenando a la vez que tu le escribes el nombre, ahora explicando las otras pestañas en File Type se puede ver si es Rows Data o un archivo Log, en Filegroup se ve si es primario, secundario o un log, Initial Size muestra el tamaño inicial que tendrá tu base de datos (está en MegaBytes), Autogrowth o crecimiento automático es el tamaño hasta donde se puede agrandar tu base de datos y en la medida que esta irá creciendo, por defecto es indefinida y crecerá mientras tenga espacio en disco, también puedes aquí dándole click en los puntitos (…) definir un tamaño máximo y finalmente Path o ruta que será donde se van a guardar tus archivos , también podrás cambiarla claro está, para colocarla en la carpeta que tu mejor consideres.

SQL004

2. Mediante Query: Mucha gente recomienda crear la base de datos mediante una consulta quizás para tener en cuenta con más detalle el tamaño máximo y otras características, pero cualquiera que sea el caso así puedes hacerlo.

  • Primero debes crear una nueva hoja de consulta, hazle click a “New Query” en la parte superior
  • Luego aquí escribe el siguiente código
CREATE DATABASE DB_EJEMPLO2
 ON
 ( NAME =  DB_EJEMPLO2_data,
 FILENAME = 'D:\BASES DE DATOS\DB_EJEMPLO2.mdf',
 SIZE = 4,
 MAXSIZE = 10,
 FILEGROWTH = 1 )

 GO
  • Tomar en cuenta que cuando creas una base de datos se crean dos archivos, un archivo *.mdf que contiene el archivo data y un archivo  *.ldf que contiene al archivo log, el archivo mdf es el archivo primario, mediante el código mostrado hemos creado una base de datos donde se tiene especificado las características del archivo mdf mientras que el archivo log al no haberse especificado <filespec> se creará automáticamente con un tamaño de 1 Mb.
  • Con más detalle NAME es el nombre del archivo data (puede que no sea el mismo que la base de datos pero se recomienda que así sea con la terminación data), FILENAME es como puedes ver la ruta del archivo mdf,  SIZE es el tamaño inicial de tu base de datos y MAXSIZE se puede deducir que es su tamaño máximo, mientras que FILEGROWTH determina el tamaño o la proporción en la que crecerá el archivo principal, todos estos tamaños están representados en Megabytes por defecto pero uno podría especificar si quiere que sea en otra unidad (Kb, Mb, Gb, TB, también Unlimited -en el caso de Maxsize- y N% -en el caso de FileGrowth) finalmente así debería quedar.

SQL005

  • Ahora dirás y ¿qué pasa si solo escribo en la consulta los siguiente?
CREATE DATABASE DB_EJEMPLO2
  • También es válido pero esta no tendrá especificaciones y tomará los valores de la base de datos “model” y el crecimiento sera ilimitado  puesto que no está especificado MaxSize y será hasta llenar todo el espacio disponible en disco.
  • Mas información en la documentación msdn http://msdn.microsoft.com/es-es/library/ms176061(SQL.90).aspx

Espero que este post haya sido de tu agrado…saludos :D





Sub Lenguajes del SQL (DDL – DML)

29 06 2009

Hola, quiero seguir con las pequeñas ayudas para SQL Server así que prepararé algunos post para la explicación de cosas fundamentales y bueno voy a agruparlos en la etiqueta “Curso de SQL Server 2008″ así que por ahí le pueden dar seguimiento o también verlas por separado como gusten :D

Ahora siguiendo con el tema el SQL se agrupa en dos sub lenguajes DDL y DML estos contienen los comandos básicos para el manejo del T-SQL así que mucha antención a estos:

  • DDL (Data Definition Language)

Que contiene comandos para la creación y estructura de la base de datos

Comando Descripción
CREATE Utilizado para crear nuevas tablas, campos e índices
DROP Utilizado para eliminar tablas e índices
ALTER Utilizado para modificar las tablas agragando campos o cambiando la definición de los campos
  • DML (Data Management Language)

Contiene los comandos para la manipulación de datos

Comando Descripción
SELECT Utilizado para consultar registros dentro de la base de datos que son requerido en el momento
INSERT Utilizado para cargar lotes de datos en una tabla de la base de datos en una única operación
UPDATE Utilizado para modificar los valores en los campos y registros según especificaciones
DELETE Se utiliza para eliminar registros de una tabla en una base de datos




Cargar archivo *.txt o *csv a una tabla en SQL Server 2008

27 05 2009

Hola muchachos y empezando con mis pequeñas ayudas técnicas les preparé un pequeño material para que puedas cargar un archivo de texto en formato *.txt o *.csv a una tabla en SQL Server 2008, bueno comencemos :D

Primero vamos al SQL Server Management Studio

Management Studio1

Vamos a crear una base de datos simple y una tabla nueva para realizar nuestro ejemplo, entonces hacemos esto:

Primero crear una base de datos en este caso DB_APRENDIZAJE

Base datos

Ya con nuestra base de datos creada ahora necesitamos abrir una nueva consulta, solo debemos hacer click arriba en el botón “New Query”

Ahora para crear una tabla ejecutamos (Sombreando + Botón execute) el siguiente código:

USE DB_APRENDIZAJE
--Para utilizar la Base de datos

CREATE TABLE TIENDA (IdTienda varchar(50), Nombre varchar(50),
Ciudad varchar (25), Factura decimal(7,3))
--Para Crear la Tabla

Con nuestra tabla ya creada podemos verla con la siguiente consulta:

SELECT * FROM TIENDA
--Muestra la tabla

Como puedes ver ya esta lista nuestra tabla y aunque vacía ya sabemos que tipos de datos se van a poder insertar, esto es importante porque al cargar los datos de origen desde nuestro archivo de texto o csv estos tienen que coincidir con los de destino, ahora creamos nuestro archivo de texto con los datos que vamos a ingresar.

Texto

Ya tenemos nuestro archivo y para este ejemplo lo he guardado en mi partición D:\ en una carpeta BASES DE DATOS asi que podré acceder a este fácilmente, para cargar el archivo a nuestra tabla ejecutamos el siguiente código en nuestra hojita de consultas:

BULK

INSERT TIENDA
FROM 'D:\BASES DE DATOS\DATOS.txt'--Ruta del archivo
WITH

( FIELDTERMINATOR = ',', --separa campos
  ROWTERMINATOR = '\n' ) --separa filas

GO

Ejecutamos la consulta y vemos que los cambios se han realizado, podemos comprobar si los datos están cargados mediante un nuevo SELECT

SELECT * FROM TIENDA
--Muestra la tabla

Consultas004

Con esto acabamos muchachos, espero que les sirva… saludos :D





Evento Comunidad SQL Server Perú

25 05 2009

Hola muchachos les invito por encargo de mi amigo Rafael al evento presencial que realizará la Comunidad SQL Server Perú, contará con la presencia de excelentes profesionales en el tema y les adjunto la publicidad,  les recuerdo que deben registrarse con un mail para confirmar su asistencia…saludos :D

eventocomunidadsql

Ampliar imagen:





Training Kit SQL Server 2008 Developer

22 05 2009

sql-server-200822

Hola muchachos… dando vueltas por la red me encontré en el blog de nuestro amigo Miguel Almeyda con este paquete interesante para los que nos entrenamos en SQL Server 2008 a descargarlo entonces!!…saludos :D

Descargar SQL Server 2008 Developer Training Kit





Lo nuevo en SQL Server 2008!!

17 02 2009

¿Qué es lo nuevo en SQL Server 2008?

Hola!, otra vez por aquí dándome un tiempito para compartirles algo interesante sobre SQL Server 2008, esto lo leí de Microsoft Technet y les comparto lo que me pareció más importante, bueno las capacidades de SQL Server 2008 se entregan en las siguientes áreas clave  de la visión de Plataforma de Datos de Microsoft:

Plataforma de Misión Crítica

SQL Server 2008 permite a las organizaciones correr sus aplicaciones más complejas en una plataforma segura, confiable y escalable mientras logra que TI reduzca la complejidad del manejo  de la infraestructura de administración de datos. SQL Server 2008 entrega una plataforma segura y confiable al asegurar la información valorable en  plataformas existentes y realzar la disponibilidad de los datos.

SQL Server 2008 introduce un Framework innovador basado en administración por políticas que permite definir políticas para un manejo explícito y automatizado de las entidades de un servidor o múltiples servidores. Además, SQL Server 2008 entrega una solicitud predecible con una plataforma optimizada.

Desarrollo Dinámico

SQL Server 2008 junto con Framework .NET reduce la complejidad del desarrollo de nuevas aplicaciones. El ADO.NET Entity Framework permite a los desarrolladores ser más productivos al trabajar con entidades de datos lógicos que se alinean con  los requerimientos del negocio, en lugar de programar directamente con tablas y columnas. Los desarrolladores también pueden construir aplicaciones que permitan a los usuarios llevar los datos con ellos en dispositivos y sincronizarlos después con los servidores centrales.

Más allá de Datos Relacionales

SQL Server 2008 permite a los desarrolladores costumizar y administrar cualquier clase de datos, desde los tipos tradicionales hasta los nuevos avanzados datos Geospaciales. Los desarrolladores pueden construir aplicaciones de base de datos de nueva generación que incluyen soporte de reconocimiento de locación y que permiten capacidades de administración de documentos.

Herramientas: Demosle un repaso…

sql-herramientas

Motor de base de datos de SQL Server

El Database Engine (Motor de base de datos) es el servicio principal para almacenar, procesar y proteger datos. El Database Engine (Motor de base de datos) proporciona acceso controlado y procesamiento de transacciones rápido para cumplir con los requisitos de las aplicaciones consumidoras de datos más exigentes de su empresa.

Use Database Engine (Motor de base de datos) para crear bases de datos relacionales para el procesamiento de transacciones en línea o datos de procesamiento analítico en línea. Esto incluye la creación de tablas para almacenar datos y objetos de base de datos (p.ej., índices, vistas y procedimientos almacenados) para ver, administrar y proteger datos. Puede usar SQL Server Management Studio para administrar los objetos de bases de datos y SQL Server Profiler para capturar eventos de servidor

Analysis Services – Datos multidimensionales

Microsoft SQL Server Analysis Services: datos multidimensionales permite diseñar, crear y administrar estructuras multidimensionales que contienen datos de detalle y agregados procedentes de varios orígenes de datos, como bases de datos relacionales, en un único modelo lógico unificado compatible con los cálculos integrados.

Analysis Services – Minería de datos

Microsoft SQL Server Analysis Services contiene las características y herramientas necesarias para crear complejas soluciones de minería de datos.

  • Un conjunto de algoritmos de minería de datos estándar del sector.
  • El Diseñador de minería de datos, que sirve para crear, administrar y examinar modelos de minería de datos para, a continuación, crear predicciones a partir de dichos modelos.
  • El lenguaje DMX (Extensiones de minería de datos), que sirve para administrar modelos de minería de datos y crear complejas consultas predictivas.

SQL Server Integration Services (SSIS)

Integration Services es una plataforma para la creación de soluciones de integración de datos y de transformaciones de datos de alto rendimiento. Integration Services sirve para resolver complejos problemas empresariales mediante la copia o descarga de archivos, el envío de mensajes de correo electrónico como respuesta a eventos, la actualización de almacenes de datos, la limpieza y minería de datos, y la administración de objetos y datos de SQL Server. Los paquetes pueden funcionar por separado o conjuntamente con otros paquetes para hacer frente a las complejas necesidades de la empresa.

Réplica de SQL Server

La réplica es un conjunto de tecnologías destinadas a la copia y distribución de datos y objetos de base de datos desde una base de datos a otra, para luego sincronizar ambas bases de datos y mantener su coherencia.

SQL Server Reporting Services

SQL Server 2008 Reporting Services (SSRS) es una plataforma de creación de informes basada en servidor que ofrece una completa funcionalidad de creación de informes para una gran variedad de orígenes de datos. Reporting Services contiene un completo conjunto de herramientas para crear, administrar y entregar informes, así como interfaces de programación de aplicaciones con las que los desarrolladores podrán integrar o extender el procesamiento de los datos y los informes en aplicaciones personalizadas. Las herramientas de Reporting Services trabajan en el entorno de Microsoft Visual Studio y están totalmente integradas con las herramientas y los componentes de SQL Server.

SQL Server Service Broker

SQL Server SQL Server Service Broker proporciona la compatibilidad nativa de SQL Server Database Engine (Motor de base de datos de SQL Server) para las aplicaciones de mensajería y de cola. De este modo, resulta más fácil para los programadores crear aplicaciones complejas que usan los componentes de Database Engine (Motor de base de datos) para la comunicación entre bases de datos distintas. Los programadores pueden usar Service Broker para crear con facilidad aplicaciones distribuidas y confiables. Espero que haya sido de su agrado :D nos leemos!








Seguir

Get every new post delivered to your Inbox.