Professional Documents
Culture Documents
fundamentales de
bases de datos
Conceptos fundamentales
de bases de datos,
examen98-364
Crditos
EDITOR
Bryan Gambrel
DIRECTOR DE VENTAS
Mitchell Beaton
DIRECTOR EJECUTIVO DE MARKETING
Chris Ruel
GERENTE DE PRODUCTOS DE MICROSOFT Merrick Van Dongen de Microsoft Learning
ASISTENTE DE PROGRAMA EDITORIAL
Jennifer Lartz
DIRECTOR DE CONTENIDO
Micheline Frederick
EDITOR DE PRODUCCIN
Amy Weintraub
DIRECTOR CREATIVO
Harry Nolan
DISEO DE PORTADA
Jim OShea
TECNOLOGA Y MEDIOS
Tom Kulesa/Wendy Ashenberg
Foto de portada: Crditos: fotografa de Matthias Hombauer/Getty Images, Inc.
Este libro lo realiz Aptara, Inc. usando Garamond y lo imprimi y encuadern Bind Rite Robbinsville.
La portada la imprimi Bind Rite Robbinsville.
Copyright 2012 por John Wiley & Sons, Inc. Todos los derechos reservados.
Ninguna parte de esta publicacin puede ser reproducida, almacenada en sistemas de recuperacin o transmitida en
cualquier forma o por cualquier medio, ya sea electrnico, mecnico, fotocopia, grabacin, escaneo o de otro modo,
excepto segn lo permitido bajo las Secciones 107 o 108 de la ley de Propiedad Intelectual de Estados Unidos de
1976, sin la autorizacin previa por escrito de la editorial, o la autorizacin a travs del pago por ejemplar de la tarifa
correspondiente al Copyright Clearance Center, Inc. 222 Rosewood Drive, Danvers, MA 01923, sitio web www.
copyright.com. Las solicitudes de permiso a la editorial debern dirigirse a Permissions Department, John Wiley &
Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, (201)748-6011, fax (201)748-6008, sitio web http://www.
wiley.com/go/permissions.
Microsoft, ActiveX, Excel, InfoPath, Microsoft Press, MSDN, OneNote, Outlook, PivotChart, PivotTable, PowerPoint,
SharePoint, SQL Server, Visio, Visual Basic, Visual C#, Visual Studio, Windows, Windows 7, Windows Mobile,
Windows Server y Windows Vista son marcas comerciales o marcas registradas de Microsoft Corporation en los
Estados Unidos y/u otros pases. Otros nombres de productos y compaas mencionados aqu pueden ser marcas
comerciales de sus respectivos propietarios.
Los ejemplos de compaas, organizaciones, productos, nombres de dominio, direcciones de correo electrnico,
logotipos, personas, lugares y acontecimientos mencionados son ficticios. No se pretende ni se debe inferir de ningn
modo relacin con ninguna empresa, organizacin, producto, nombre de dominio, direccin de correo electrnico,
logotipo, persona, lugar o acontecimientos reales.
El libro expresa puntos de vista y opiniones del autor. La informacin contenida en este libro se proporciona sin
ninguna garanta expresa, implcita ni estatuaria. Ni los autores, John Wiley & Sons, Inc., Microsoft Corporation, ni
sus revendedores o distribuidores sern responsables de cualquier dao causado o presuntamente causado directa o
indirectamente por este libro.
Fundada en 1807, John Wiley & Sons, Inc. ha sido una valiosa fuente de conocimientos y comprensin durante ms de 200
aos, ayudando a personas en todo el mundo a satisfacer sus necesidades y cumplir con sus aspiraciones. Nuestra empresa
est construida sobre una base de principios que incluyen la responsabilidad con las comunidades a las que servimos
ydonde vivimos y trabajamos. En 2008, pusimos en marcha una iniciativa de ciudadana empresarial, Corporate Citizenship,
un esfuerzo global para abordar los retos ambientales, sociales, econmicos y ticos a los que nos enfrentamos en nuestro
negocio. Entre las cuestiones que abordamos se encuentra el impacto medioambiental del carbono, las especificaciones del
papel y su adquisicin, la conducta tica de nuestro negocio y entre nuestros proveedores y la comunidad, as como el apoyo
solidario. Para obtener ms informacin, visite nuestro sitio web: www.wiley.com/go/citizenship.
ISBN978-0-470-88916-9
Impreso en los Estados Unidos de Amrica
10987654321
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|iii
6.
ii.
iv|
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|v
Prefacio
Bienvenido al programa Microsoft Official Academic Course (MOAC) para Conceptos
fundamentales de bases de datos. MOAC representa la colaboracin entre Microsoft Learning y
la editorial John Wiley & Sons, Inc. Microsoft y Wiley se unieron para crear una serie de libros
de texto que ofrecieran soluciones de enseanza convincentes e innovadoras para los instructores
y destrezas de aprendizaje superiores para los alumnos. Estos libros de texto maximizan la
transferencia de conocimientos en un tiempo mnimo gracias a la preparacin e instruccin por
el conocimiento en profundidad de los creadores de productos de Microsoft, as como por la
elaboracin de los libros de texto por una editorial reconocida mundialmente debido a la calidad
pedaggica de sus productos. Se desafa a los alumnos para que alcancen su potencial mediante
nuevos conocimientos tcnicos como miembros altamente productivos del rea de trabajo.
Debido a que esta base de conocimiento proviene directamente de Microsoft, creador de los
exmenes Microsoft Certified Technology Specialist (MCTS) y Microsoft Technology Associate
(MTA), (https://www.microsoft.com/learning/es-es/default.aspx), seguro que recibir la cobertura de
contenido ms relevante para su xito personal y profesional. La participacin directa de Microsoft
no solo le asegura que el contenido de los libros de texto MOAC es preciso y est actualizado;
tambin significa que recibir la mejor instruccin posible para tener xito en los exmenes de
certificacin y en el entorno de trabajo.
vi|
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Caractersticas pedaggicas
El libro de texto MOAC para Conceptos fundamentales de bases de datos est diseado para
cubrir todos los objetivos de aprendizaje del examen 98-364 de MTA, que se conoce como su
leccin matriz de conocimientos. Los objetivos del examen Microsoft Technology Associate
(MTA) se destacan a lo largo del libro de texto. Muchas caractersticas pedaggicas se han
desarrollado de forma especfica para el programa Microsoft Official Academic Course.
Mediante una extensa informacin sobre los procedimientos y conceptos tcnicos integrados,
a lo largo del libro de texto se plantean desafos para el alumno y el instructor por igual. El
recorrido por el libro ilustrado que aparece a continuacin proporciona una gua de caractersticas
que contribuyen al plan pedaggico del programa Microsoft Official Academic Course. La
siguiente es una lista de las principales caractersticas de cada leccin diseada para preparar
a los alumnos para el xito a medida que continan con su educacin en TI, con los exmenes
de certificacin y en el entorno de trabajo:
Cada leccin comienza con una Matriz de dominio de objetivos. Ms que una lista
estndar de objetivos de aprendizaje, la leccin matriz de conocimientos se relacionar
con cada conocimiento del software tratado en la leccin del objetivo del examen
especfico.
Instrucciones paso a paso concisas y frecuentes ensean a los alumnos caractersticas
nuevas y ofrecen la oportunidad de ponerlas en prctica. Los pasos numerados
proporcionan instrucciones paso a paso detalladas que sirven de ayuda para que los
alumnos adquieran conocimientos de software.
Las ilustraciones (en particular, imgenes de la pantalla) proporcionan informacin
visual mientras los alumnos realizan los ejercicios. Estas imgenes refuerzan los conceptos
clave, proporcionan pistas visuales acerca de los pasos que se deben realizar y permiten
alos alumnos comprobar su progreso.
Las listas de Trminos clave al principio de cada leccin proporcionan a los alumnos
un vocabulario tcnico importante. Cuando se usan estos trminos ms adelante en la
leccin, aparecen en fuente negrita cursiva donde se definen.
Un atractivo punto de uso son las ayudas para el lector, que se encuentran a lo largo
delas lecciones, que indican a los alumnos por qu un tema es importante (Conclusin)
o les proporcionan consejos tiles (Tome nota). Las ayudas para el lector tambin
proporcionan informacin adicional relevante o general que agrega valor a la leccin.
Las caractersticas de Certificacin disponible que aparece por todo el texto sealan
alos alumnos dnde se cubre un objetivo especfico de certificacin. Proporcionan a
los estudiantes la oportunidad de comprobar el grado de comprensin sobre ese objetivo
MTA particular y, si fuera necesario, revisar la seccin de la leccin donde se trata.
MOAC ofrece una preparacin completa para la certificacin MTA.
Preguntas al final de la leccin: la seccin Evaluacin de conocimientos ofrece una
gran variedad de preguntas que pueden ser de opciones mltiples, verdadero o falso,
coincidentes o de rellenar espacios en blanco.
Escenarios al final de la leccin: los escenarios posibles de Evaluacin de competencias
y los escenarios posibles de Evaluacin de aptitudes son proyectos que ponen a prueba
lacapacidad de los alumnos para aplicar lo que han aprendido en la leccin.
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|vii
Caractersticas de la leccin
Crear objetos
de base de datos
LECCIN
M AT R I Z D E D O M I N I O D E O B J E T I V O S
Habilidades y Conceptos
2.1
2.2
Crear vistas
Crear vistas.
2.3
Crear procedimientos
almacenados y funciones.
2.4
TRMINOS CLAVE
tipo de datos
tablas
vistas
procedimientos almacenados
Trminos clave
n Definir
28|Leccin 2
Figura 2-1
Tipos de conversiones
implcitas y explcitas
tipos de datos
CONCLUSIN
En esta seccin, aprender los distintos tipos de datos, por qu son importantes y
cmo afectan a las necesidades de almacenamiento. Al examinar los tipos de datos,
es necesario comprender que cada tipo est diseado para realizar una funcin dentro
de una tabla, as como que ciertos tipos funcionarn mejor en columnas, variables
locales, expresiones o parmetros. Adems, al elegir un tipo de datos para satisfacer sus
necesidades, debe asegurarse de que cualquiera que sea el tipo elegido proporcionar
el tipo ms eficaz de almacenamiento y consulta de esquemas. De hecho, uno de los
principales roles de un administrador de bases de datos es garantizar que los datos
de cada base de datos se mantengan uniformes al decidir qu tipo de datos es el ms
adecuado para el mdulo de aplicacin en el que se est trabajando actualmente.
20
54|Leccin 3
(2 filas afectadas)
Un carcter normal usa un byte de almacenamiento por cada carcter, lo que le permite definir
uno de los 256 caracteres posibles (8 bits en un byte y 2^8 = 256), con capacidad para ingls
y algunos idiomas europeos. Un carcter Unicode usa dos bytes de almacenamiento por
carcter, por lo que se pueden representar uno de los 65.536 caracteres (16 bits en 2 bytes
y 2^16 = 65.536). El espacio adicional permite a Unicode almacenar caracteres de casi
cualquier idioma, incluyendo el chino, japons, rabe, etctera.
CERTIFICACIN
DISPONIBLE
Qu comando se usa
para cambiar los datos
existentes en una tabla?
3.3
Como administrador de bases de datos, debe entender cmo se actualizan los datos
en una base de datos, cmo se escriben los datos de actualizacin en una base de datos
con las instrucciones UPDATE apropiadas, as como cmo actualizar una base de datos
mediante una tabla.
La funcin de la instruccin UPDATE es cambiar los datos de una tabla o vista. Al igual
que cualquier manipulacin de datos o clusula de modificacin e instruccin de SQL,
puede usar esta instruccin ya sea en SSMS o en una ventana del editor de texto.
Ayuda para
el lector
Conclusin
Alerta de
certificacin
disponible
TOME NOTA
Como se ha visto desde el inicio de esta leccin, se puede leer este tipo de instruccin
SQL como se hara con cualquier frase. Supongamos que desea actualizar una tabla en
la que un identificador de columna determinada refleje un determinado valor. Quizs
desea tener un atributo de un nuevo supervisor (como en el ejemplo de los empleados),
Doug Able, asignado a los nuevos empleados para su aprendizaje. Ese supervisor podra
tener el atributo establecido para l mismo (consultar la tabla del departamento) como
un identificador de 4 y la clusula WHERE se satisface haciendo que se corresponda con
la condicin NULL para los empleados sin supervisor. Vamos a escribir ese escenario
de instruccin UPDATE para actualizar el ejemplo anterior.
Al escribir la sintaxis de los diferentes tipos de datos, hay que tener en cuenta que tambin
difieren en la forma en que se expresan los literales (valor de datos fijo). Un carcter
normal literal siempre se expresa entre comillas simples. Por ejemplo:
Esta es la apariencia de una cadena de caracteres normales literales
Sin embargo, cuando se expresa un carcter Unicode literal, la letra N (de Nacional)
debe aparecer como prefijo de las comillas simples. Por ejemplo:
NEsta es la apariencia de un carcter Unicode literal
Cuando se usa un elemento VAR, SQL Server preserva el espacio en la fila en la que ese
elemento reside a partir del tamao definido de la columna (y no a partir del nmero real
de caracteres en la propia cadena de caracteres), ms un extra de dos bytes de datos para
Diagramas
informativos
TOME NOTA
Si no especifica qu
registros se van a actualizar,
todos los registros o filas
se actualizarn con el
nuevo valor. Esto puede
resultar perjudicial.
Ahora, debemos actualizar la tabla de empleados de forma que refleje cualquier empleado
que no tenga un supervisor de departamento asignado. En este caso, la instruccin UPDATE
se vera de la siguiente manera:
UPDATE employees
SET department = 4
WHERE department IS NULL
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Manipular datos|49
que identificar la columna correspondiente en cada una de las tablas en las que desea
escribir la consulta y desde las que obtener los resultados solicitados. En este ejemplo,
la clave externa en la Tabla 3-1 se identifica en la columna department_id y, en la Tabla
3-2, la clave externa se identifica como la columna coincidente department: Dicho de
otra forma, el identificador de departamento de la tabla Department est vinculado a la
columna del departamento de la tabla Employees.
Tabla 3-1
Tabla de empleados
first_name
last_name
employee_id
department
James
Alexander
610001
David
Thompson
620002
Frances
Drake
610003
Alexandria
Link
610004
Peter
Link
620005
David
Cruze
610007
NULL
Tabla 3-2
Tabla del departamento
department_id
first_name
last_name
Jane
Horton
Mitch
Simmons
Paul
Franklin
La combinacin de datos entre tablas puede resultar muy complicada, sobre todo si se van
a crear listas especficas de miles de filas de datos. Mediante la consulta de instruccin
SELECT se pueden generar listas individuales, pero puede que se obtenga como resultado
toda la informacin que se necesita en un formato de lista individual.
La palabra clave INNER JOIN simplifica esta recuperacin de datos no solo por usar la informacin
de las dos tablas a partir de las que se requiere el resultado, sino por usar la palabra clave
INNER JOIN para especificar las condiciones necesarias para las que aparecern los registros.
Por ejemplo, a partir de las dos tablas de ejemplo, es posible que desee crear una lista
que muestre los empleados que trabajan para cada uno de los diferentes supervisores
de departamento. Escribira la instruccin de consulta SQL de la siguiente manera:
SELECT employees.first_name, employees.last_name,
department.first_name, department.last_name
FROM employees INNER JOIN department
ON employees.department = department.department_id
James
last_name
Alexander
first_name
Jane
last_name
Horton
David
Thompson
Jane
Horton
Frances
Drake
Jane
Horton
Alexandria
Link
Mitch
Simmons
Peter
Link
Mitch
Simmons
Antoin
Drake
Paul
Franklin
32|Leccin 2
(6 filas afectadas)
4. Guarde la nueva tabla seleccionando Archivo > Guardar Table_1, como se muestra
en la Figura 2-5.
Figura 2-5
Guardar la nueva tabla
52|Leccin 3
CERTIFICACIN
DISPONIBLE
Qu comando se usa para
agregar datos a una tabla?
3.2
Imgenes
de la pantalla
Insertar datos
5. Escriba el nombre para la tabla que est guardando, como se muestra en la Figura 2-6.
Primero vamos a saber cmo insertar datos en una tabla con SSMS antes de seguir adelante
con el mtodo de sintaxis.
Figura 2-6
Nombre de la tabla
1. Compruebe que se ha conectado a la base de datos en la que desea trabajar (ver Figura 3-1).
Figura 3-1
Figura 2-7
Conexin a la base
de datos deseada
2. Expanda la carpeta Bases de datos haciendo clic en el icono ms (+) junto a la palabra
Base de datos.
3. Expanda la carpeta de la base de datos que desea modificar.
4. Expanda la carpeta Tablas haciendo clic en el icono ms junto a la palabra Tablas.
5. Haga clic con el botn secundario en el nombre de la tabla y elija Editar las primeras
200 filas (vea la Figura 3-2).
Figura 3-2
Ejercicios
paso a paso
www.wiley.com/college/microsoft
www.Wiley.com/college/Microsoft
oder
o llame al
nmero de telfono
gratuito de MOAC:
764-7001
(solo
UU. y Canad)
gebhrenfreie
MOAC-Rufnummer:
1+(888)1+(888)
764-7001
(nur USA
undEE.Kanada)
RESUMEN DE CONOCIMIENTOS
En esta leccin, ha aprendido lo siguiente:
Untipodedatosesunatributoqueespecificaeltipodedatosqueunobjetopuedecontener,
as como el nmero de bytes que ocupa cada tipo de datos.
Comoreglageneral,sisetienendostiposdedatosquesolodifierenenelnmerodebytes
que usa cada uno, el que tiene ms bytes tendr mayor intervalo de valores u ofrece mayor
precisin, o ambos.
MicrosoftSQLServerincluyeunampliointervalodetiposdedatospredefinidosconocidoscomo
tipos de datos integrados. La mayora de las bases de datos que se crean o se usan emplean solo
estos tipos de datos.
LostiposdedatosnumricosexactossonlostiposdedatosmscomunesqueSQLServerusa
para almacenar informacin numrica.
int es el principal tipo de datos de valores enteros (nmero entero).
Precisin(p) es el nmero mximo total de dgitos decimales que se pueden almacenar en un
tipo de datos numrico, tanto a la izquierda como a la derecha del punto decimal; este valor
debe ser al menos 1 y como mximo 38. El nmero de precisin predeterminado es 18.
money y smallmoney son tipos de datos de Transact-SQL que se deben usar para representar
valores monetarios o de moneda. Ambos tipos de datos tienen una precisin de una
diezmilsima de las unidades monetarias que representan.
Lostiposdedatosnumricosaproximadosnoseusancontantafrecuenciacomootrostipos
de datos de SQL Server. Si necesita ms precisin (ms posiciones decimales) de la que dispone
con los tipos de datos numricos exactos, debe usar los tipos de datos float o real, puesto que
ambos suelen tomar bytes adicionales de almacenamiento.
Lostiposdedatosdefechayhoraserefieren,porsupuesto,afechasyhoras.Estostipos
de datos incluyen date, datetime2, datetime, datetimeoffset, smalldatetime y time.
SQLServeradmitelasconversionesimplcitas,quesepuedenproducirsinespecificarlafuncin
de llamada real (cast o convert). Las conversiones explcitas necesitan el uso de las funciones
cast o convert especficamente.
Uncarcternormalusaunbytedealmacenamientoporcadacarcter,quelepermitedefinir
uno de los 256 caracteres posibles; con capacidad para ingls y algunos idiomas europeos.
UncarcterUnicodeusadosbytesdealmacenamientoporcarcter,porloquesepuede
representar uno de los 65.536 caracteres. Esta capacidad adicional significa que se pueden
almacenar caracteres Unicode desde casi cualquier idioma.
CuandoseusaunelementoVAR,SQLServerpreservaelespacioenlafilaenlaqueeste
elemento reside a partir del tamao definido de la columna y no a partir del nmero real
de caracteres de la propia cadena de caracteres.
LascadenasdecaracteresUnicodencharynvarcharpuedenserfijasovariables,comolas
cadenas de caracteres normales; sin embargo, usan el conjunto de caracteres UNICODE UCS-2.
Elpropsitodeunatablaesproporcionarunaestructuraparaalmacenardatosenunabase
de datos relacional.
Unavistaessimplementeunatablavirtualqueconstadediferentescolumnasdeunaoms
tablas. A diferencia de una tabla, una vista se almacena en una base de datos como un objeto
de consulta; por lo tanto, una vista es un objeto que obtiene los datos de una o ms tablas.
UnprocedimientoalmacenadoesunainstruccinSQLescritapreviamentequeseha
almacenado o guardado en una base de datos.
UnainyeccindecdigoSQLesunataqueenelqueseinsertacdigomalintencionadoenlas
cadenas que despus pasan a instrucciones de SQL Server en espera de anlisis y ejecucin.
Resumen de
conocimientos
40|Leccin 2
Evaluacin de conocimientos
Rellene los espacios en blanco
Complete las oraciones siguientes escribiendo la palabra o palabras correctas en los
espacios en blanco proporcionados.
1. Cada expresin ____________, ____________ y ____________ siempre tiene
un tipo de datos relacionado.
2. Un bit es un tipo de datos entero de Transact-SQL que puede tomar un ____________
de 1, 0 o NULL.
3. Al definir el costo de un producto, lo mejor es usar el tipo de datos ___________.
4. Es importante considerar el uso de conjuntos de datos ____________ en la
construccin de tablas dependientes del horario de verano.
5. SQL Server admite conversiones ____________ sin usar las funciones de llamada
reales (cast o convert).
6. Un carcter normal usa ____________ byte(s) de almacenamiento para cara carcter,
mientras que un carcter Unicode necesita ____________ byte(s) de almacenamiento.
Escenarios posibles
Manipular datos|59
Evaluacin
de competencias
Escenario 3-1: Uso del comando SELECT
Le acaban de contratar como administrador de bases de datos para AdventureWorks
Corporation. Un administrador de red desea saber cmo extraer informacin de la base
de datos de AdventureWorks. Por lo tanto, necesita responder a las siguientes preguntas:
1. Qu comando usara para mostrar los registros de una tabla?
2. Qu comando usara para mostrar los registros FirstName y LastName de la tabla
Users?
3. Qu comando usara para mostrar todos los registros de la base de datos Member
y ordenarlos por la columna FirstName?
4. Qu comando usara para mostrar todos los registros de la tabla Suppliers que
contengan City of Sacramento?
5. Qu comando usara para mostrar los registros CompanyName, ContactName y
PhoneNumber de la tabla Suppliers que contengan un identificador de proveedor mayor
que 1000?
6. Qu comando usara para mostrar los registros CompanyName, ContactName y
PhoneNumber de la tabla Customers para las compaas con ms de 100 empleados
que residan en el estado de California.
10. Cuando se realizan consultas a una base de datos, se pueden obtener resultados
ms rpidamente al ____________ tablas y vistas correctamente.
Varias opciones
Rodee con un crculo la letra correspondiente a la mejor respuesta.
1. Cul de los siguientes no es un tipo de datos?
a. Numricos exactos
b. Numricos aproximados
c. Cadena ANSI
d. Espacial
2. Cmo se llama cuando un tipo de datos se convierte automticamente en otro tipo
de datos?
a. conversin implcita
b. conversin explcita
c. conversin dinmica
d. conversin esttica
3. Cul de las siguientes afirmaciones no son ciertas sobre el tipo de datos int?
a. int es un entero.
b. bigint se usa cuando el valor excede el intervalo del tipo de datos int.
c. Un entero usa 8 bytes para almacenar datos.
d. Las funciones solo devolvern bigint si la expresin original tiene el mismo tipo de datos.
4. Requieren las conversiones implcitas una caracterstica de llamada real (por ejemplo,
cast o convert)?
a. S
b. No
Despus de revisar junto con el administrador de red algunos de los registros de la base de
datos AdventureWorks, deciden eliminar algunos registros antiguos. Este escenario plantea
las siguientes preguntas:
1. Qu comando usara para quitar todos los registros de la tabla Customers donde la
edad es inferior a 18?
2. Qu comando usara para quitar todos los registros de la tabla Schools con un valor
de inscripcin inferior a 500?
3. Qu comando usara para quitar todos los registros de la tabla Contact cuyo pas no
es USA y al mismo tiempo liberar el espacio usado por esos registros?
4. Qu comando usara para eliminar la tabla Temp?
Evaluacin
Evaluacin de conocimientos
de aptitudes
Escenario 3-3: Manipular datos mediante las instrucciones SELECT y JOIN
Lo acaban de contratar como administrador de bases de datos de AdventureWorks
Corporation. Ha surgido alguna confusin debido a que las rdenes de compra de la
compaa se almacenan en dos tablas. Por lo tanto, necesita crear una consulta para
combinar la tabla PurchaseOrderHeader de la base de datos de ejemplo, AdventureWorks,
consigo misma de modo que proporcione una lista de los pedidos
de compra emparejados. Cada fila incluye dos pedidos de compra con proveedores
y mtodos de envo idnticos.
1. Tras abrir SSMS y obtener acceso a la base de datos AdventureWorks, qu
consulta usara en la base de datos AdventureWorks para mostrar los registros
ProductSubcategoryID e ProductCategoryID de la tabla Production.ProductSub y
contuviera la palabra Bike? Tambin desea ordenar los registros por SubcategoryName.
2. Qu consulta usara para combinar la tabla ProductCategory con la tabla
ProductSubcategory para recuperar la columna Name de la tabla ProductCategory?
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Convenciones y caractersticas
que se usan en este libro
En este libro se usan determinadas convenciones para fuentes, smbolos y ttulos que resaltan
la informacin importante y llaman la atencin sobre determinados pasos. Para obtener ms
informacin sobre las caractersticas de cada leccin, consulte la seccin Recorrido por el libro
ilustrado.
Convencin
Significado
Esta caracterstica proporciona un breve resumen
delmaterial que se trata en la seccin que sigue.
CONCLUSIN
CERRAR
Las palabras en letras maysculas indican instrucciones
CERTIFICACIN DISPONIBLE
Esta caracterstica seala un punto en el texto donde se
cubre un objetivo especfico de certificacin. Proporciona
la oportunidad de comprobar el grado de comprensin de
ese objetivo MTA particular y, si fuera necesario, revisar la
seccin de la leccin donde se trata el objetivo.
Las ayudas para el lector aparecen en recuadros
TOME NOTA*
sombreados que se encuentran en el texto. Tome nota
proporciona consejos tiles relacionados con tareas
o temas concretos
Estas notas proporcionan referencias a cualquier
REF
informacin tratada en otra parte del libro de texto
o describen caractersticas interesantes que no se abordan
directamente en el tema o ejercicio actual.
Alt + TAB
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|xi
Programa de apoyo
para el instructor
Los programas Microsoft Official Academic Course van acompaados de una generosa
variedad de recursos que incorporan extensas imgenes del libro de texto para formar
un paquete pedaggico coherente. Estos recursos proporcionan todo el material que los
instructores necesitan usar para impartir sus cursos. Los recursos disponibles en lnea
parasu descarga incluyen:
MSDN Academic Alliance est diseado para proporcionar herramientas de
desarrollo ms fciles y econmicas, productos y tecnologas disponibles para
profesores y alumnos en los laboratorios, aulas y en los equipos de los alumnos.
Existe una suscripcin gratuita disponible durante tres aos para usuarios MOAC
cualificados.
Nota: Microsoft Windows Server 2008, Microsoft Windows 7 y Microsoft Visual
Studio se pueden descargar de MSDN AA para uso de los alumnos en este curso.
La Gua del instructor contiene las soluciones a todos los ejercicios del libro de
texto y programas de estudio de varios plazos. La Gua del instructor tambin incluye
resmenes de captulos y notas de la leccin. La Gua del instructor est disponible
desde el sitio del libro complementario (http://www.wiley.com/college/microsoft).
El banco de pruebas contiene cientos de preguntas en formato de opciones
mltiples, verdadero o falso, respuesta corta y redaccin, y est disponible para la
descarga desde el sitio del libro complementario del instructor (www.wiley.com/
college/microsoft). Tambin se proporciona una clave de respuesta completa.
Un juego completo de presentaciones de PowerPoint e imgenes est disponible en el
sitio del libro complementario del instructor (http://www.wiley.com/college/microsoft)
para mejorar las presentaciones en el aula. Se proporcionan aproximadamente 50
diapositivas de PowerPoint para cada leccin. Adaptadas a la cobertura de actualidad
del texto y a la matriz de conocimientos, estas presentaciones estn diseadas para
transmitir conceptos claves abordados en el texto. Todas las imgenes del texto son del
sitio del libro complementario del instructor (http://www.wiley.com/college/microsoft).
Puede incorporarlas a las presentaciones de PowerPoint o usarlas para crear sus propias
transparencias y documentos. Mediante el uso de estas imgenes en las conversaciones
en el aula, puede ayudar a centrar la atencin de los alumnos sobre los elementos
clave de las tecnologas tratadas y ayudarles a entender cmo usar eficazmente estas
tecnologas en el entorno de trabajo.
Cuando se trata de mejorar la satisfaccin en el aula, no hay mejor fuente de ideas
e inspiracin que sus colegas. La red de profesorado de Wiley, Wiley Faculty
Network, conecta a los profesores con la tecnologa, facilita el intercambio
de prcticas mejoradas y contribuye a aumentar la eficiencia y la eficacia de
la enseanza. Las actividades de la red de profesorado incluyen entrenamiento
tecnolgico y tutoriales, seminarios virtuales, intercambio de conocimientos e ideas
entre iguales, asesoramiento personal e intercambio de recursos. Para obtener ms
detalles, visite www.WhereFacultyConnect.com.
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|xiii
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Programa de apoyo
para el alumno
Recursos adicionales
|xv
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
La compra de este libro le da derecho a una prueba prctica gratuita MTA de GMetrix
(porunvalor de 30 $). Vaya a www.gmetrix.com/mtatests y use el siguiente cdigo de
validacin para canjear la prueba gratuita: MTA98-364-069439B3D150.
El sistema de administracin de habilidades GMetrix Skills Management System ofrece
todolo necesario para la prctica de la certificacin Microsoft Technology Associate (MTA).
Informacin general de las caractersticas de la prueba
Pruebas prcticas que se asignan a los objetivos del examen de Microsoft Technology
Associate (MTA)
Pruebas prcticas MTA de GMetrix que simulan el entorno real de pruebas MTA
Ms de 50 preguntas por prueba que abarcan todos los objetivos
Progreso a ritmo propio, guardar la prueba para reanudarla ms tarde, permite volver
alas preguntas omitidas
Informe de resultados detallado e imprimible que destaca aquellas reas que requieren
una revisin adicional
Para obtener el mximo rendimiento de su preparacin MTA, aproveche las ventajas de las
pruebas de prctica gratuitas MTA de GMetrix desde este momento.
Para obtener soporte tcnico sobre problemas en la instalacin o activacin del cdigo,
escribaun correo electrnico a support@gmetrix.com.
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Reconocimientos
Nos gustara dar las gracias a los numerosos revisores que han ledo cuidadosamente el manuscrito y han proporcionado
informacin muy valiosa al servicio de los materiales didcticos de calidad:
Yuke Wang, Universidad de Texas en Dallas
Palaniappan Vairavan, Universidad de Bellevue
Harold Buz Lamson, Instituto tcnico ITT
Colin Archibald, Centro de estudios superiores de Valencia
Catherine Bradfield, Universidad en lnea DeVry University
Online
Robert Nelson, Universidad de Blinn
Kalpana Viswanathan, Universidad de Bellevue
Bob Becker, Universidad de Vatterott
Carol Torkko, Universidad de Bellevue
Bharat Kandel, Escuela universitaria Missouri Tech
Linda Cohen, Centro de estudios tcnicos superiores
deForsyth
Candice Lambert, Centros tecnolgicos Metro
Susan Mahon, Universidad de Collin
Mark Aruda, Centro de estudios superiores de Hillsborough
Claude Russo, Centro de estudios superiores de Brevard
xviii|
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Contenido breve
1Comprender los conceptos bsicos de bases de datos1
2Crear objetos de base de datos 20
3Manipular datos43
4Comprender el almacenamiento de datos61
5Administrar una base de datos84
Apndice A110
ndice 111
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|xix
Contenido
Leccin 1Comprender los conceptos
Leccin 3Manipular datos43
bsicos de bases de datos1
Matriz de dominio de objetivos 1
Trminos clave 1
Comprender los conceptos de bases de datos2
Resumen de conocimientos 16
Evaluacin de conocimientos17
Evaluacin de competencias19
Evaluacin de aptitudes19
Resumen de conocimientos 38
Evaluacin de conocimientos39
Evaluacin de competencias41
Evaluacin de aptitudes41
Eliminar datos55
Resumen de conocimientos 57
Evaluacin de conocimientos57
Evaluacin de competencias59
Evaluacin de aptitudes59
Leccin 4Comprender el
almacenamiento
de datos61
Matriz de dominio de objetivos 61
Trminos clave 61
Normalizar una base de datos62
Comprender la normalizacin 62
Comprender la primera forma normal 62
Comprender la segunda forma normal 63
Comprender la tercera forma normal 64
Comprender la cuarta forma normal 66
Comprender la quinta forma normal 66
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
|xxi
xxii|Contenido
Comprender las claves principales 70
Comprender las claves externas 70
Comprender las claves principales compuestas 74
Resumen de conocimientos 80
Evaluacin de conocimientos80
Evaluacin de competencias82
Evaluacin de aptitudes82
www.wiley.com/college/microsoft
o llame al nmero de telfono gratuito de MOAC: 1+(888) 764-7001 (solo EE. UU. y Canad)
Comprender los
conceptos bsicos
delas bases de datos
LECCIN
M AT R I Z D E D O M I N I O D E O B J E T I V O S
Habilidades y Conceptos
1.2
Comprender el lenguaje
de manipulacin de datos
Comprender el lenguaje de
manipulacin de datos (DML).
1.3
Comprender el lenguaje
de definicin de datos (DDL)
Comprender el lenguaje de
definicin de datos (DDL).
1.4
TRMINOS CLAVE
restricciones
ndice
SQLCMD
tabla
Transact-SQL
XQuery
Imagine que es un contable con poca experiencia, recin contratado en una empresa
de contabilidad de prestigio. Le acaban de encargar que recopile la previsin financiera
para uno de los mayores clientes de la compaa, con un plazo de entrega de tres
semanas. Uno de los socios considera que la compaa no est recibiendo todos
losdatos financieros necesarios para usar los mtodos existentes de recuperacin de
informacin. En la actualidad, la compaa usa hojas de clculo de Excel para crear
las previsiones y las posiciones financieras actuales para cada uno de sus clientes.
Tras recibir un total de 15 hojas de clculo del cliente en cuestin, usted se da cuenta
rpidamente de que si no dispone de una mejor manera de recopilar la informacin
necesaria, noser capaz de completar el proyecto en el tiempo asignado.
1
2|Leccin 1
Antes de empezar a crear tablas y otros elementos de una base de datos, primero
debecomprender qu es una base de datos y lo valiosa que puede ser esta herramienta.
Lasventajas de elegir el tipo de base de datos correcto se pondrn de manifiesto cuando
labase de datos se use en la compaa.
Una base de datos (bd) es un conjunto organizado de datos que normalmente se almacenan
en formato electrnico. Permite escribir, organizar y recuperar datos rpidamente. Las bases
dedatos tradicionales se organizan por campos, registros y archivos.
Para comprender mejor qu es una base de datos, la compararemos a un directorio telefnico.
Si tiene un directorio telefnico guardado en disco, el directorio sera el archivo. En el
directorio telefnico, tendra una lista de registros, cada uno de los cuales con un nombre,
una direccin y un nmero de telfono. A su vez, cada una de estas piezas individuales de
informacin (nombre, direccin, nmero de telfono) constituira un campo independiente.
Dado que una base de datos puede almacenar miles de registros, es una tarea tediosa abrir
una tabla y tener que comprobar los registros de uno en uno hasta encontrar el registro
necesario. Por otra parte, el proceso se complica si se tienen que recuperar varios registros.
Afortunadamente, no tiene que comprobar los registros de la base de datos de esta manera.
Ms bien, para recuperar los datos de una base de datos, hay que ejecutar una consulta de
base de datos, que es una peticin a la base de datos que devuelve informacin de esta.
Enotras palabras, una consulta se usa para solicitar informacin a una base de datos.
Si una base de datos contiene cientos de miles de registros con muchos campos por
registro, incluso un equipo rpido puede tardar mucho tiempo en realizar una bsqueda en
una tabla y recuperar los datos solicitados. Por esta razn, viene bien un ndice de base de
datos. Un ndice es una estructura de datos que mejora la velocidad de las operaciones de
recuperacin de datos en una tabla de base de datos. La desventaja de los ndices es que
hay que crearlos yactualizarlos, lo que requiere recursos para el proceso y ocupa espacio
en disco.
Las bases de datos generalmente se encuentran en servidores de bases de datos, de
formaque son accesibles a mltiples usuarios y proporcionan un alto nivel de rendimiento.
Unservidor de bases de datos muy popular es Microsoft SQL Server. Los servidores de
bases de datos como SQL Server en realidad no albergan programas grficos, aplicaciones
deprocesamiento de textos o cualquier otro tipo de aplicacin. En su lugar, estos servidores
estn completamente optimizados para ocuparse nicamente de los objetivos de la propia
base de datos, generalmente mediante el uso de hardware avanzado capaz de tratar las altas
necesidades de procesamiento de la base de datos. Tambin es importante sealar que
estos servidores no actan como estaciones de trabajo; por lo general, estn montados
en bastidores situados en un centro de datos central y solo se puede tener acceso a ellos
a travs del sistema de escritorio de un administrador.
Microsoft SQL Server usa tres tipos de archivos para almacenar bases de datos. Los archivos
de base de datos primarios, que tienen la extensin .mdf, son los primeros archivos que se
crean en una base de datos y pueden contener objetos definidos por el usuario, tales como
tablas y vistas, as como las tablas del sistema que SQL Server requiere para mantener un
registro de la base de datos. Si la base de datos se vuelve demasiado grande y el primer
disco duro se queda sin espacio, puede crear archivos de datos secundarios, que tienen
la extensin .ndf, en discos duros fsicos independientes. El tercer tipo de archivo que
usa SQL Server es un archivo de registro de transacciones. Los archivos de registro
detransacciones usan la extensin .ldf y no contienen objetos como tablas o vistas.
La mayora de los usuarios no tienen acceso a una base de datos directamente. En su lugar,
usan un sistema de administracin de bases de datos (DBMS) para tener acceso a la base de
datos de forma indirecta. Un sistema de administracin de bases de datos es un conjunto de
programas que permiten escribir, organizar y seleccionar datos en una base de datos. Por
ejemplo, imagine un agente de viajes que ejecuta un programa de sistema de billetes en el
escritorio de su equipo el cual, a su vez, tiene acceso a una base de datos de venta de billetes.
Existen tres tipos de bases de datos con los que debe estar familiarizado para poder tomar
la decisin adecuada cuando desarrolle sus propias tablas de base de datos:
Bases de datos planas
Bases de datos jerrquicas
Bases de datos relacionales
Cada tipo de base de datos tiene sus propias caractersticas importantes de diseo.
1 allen
notebook
2 smith
paper
3 dennis
pens
ink cartrudges
alex
5 sloan
printer
4|Leccin 1
Tabla 1-1
Tabla principal
EmpNum
FirstName
LastName
100
Paul
Baker 101
101
Jane
Smith 101
102
Jim
Tate 101
103
Ed
Rosen 102
DeptNum
Tabla secundaria
SerialNum
Type
EmpNum
30032334
Computer 100
4323452
laptop 101
342342
Monitor 100
234322
Printer 100
En este ejemplo, la tabla principal contiene los datos de los empleados. Cada fila o registro
proporciona informacin de un empleado, incluido el nmero del empleado (EmpNum). La
tabla secundaria contiene datos de los equipos informticos y la columna EmpNum vincula
cada registro con la tabla primaria. Es importante sealar que cada pieza del equipo se debe
incluir por separado. Como se est usando una base de datos jerrquica, se pueden asignar
varios dispositivos de equipo a cada empleado.
Tabla principal 1
Tabla principal 2
SalesNum
FirstName
LastName
DeptNum
100
101
Model
Costs
Color
103
Ed
Rosen 102
Tabla secundaria
FirstName
LastName
IDNum
Model
SalesNum
Pete
Wilson
Jim
Cline
Omar
Salize
Louise
6|Leccin 1
Una columna de hoja de clculo puede contener datos que pueden estar en blanco. En esos
casos, un espacio en blanco se almacena como valor nulo en la base de datos. Una tabla
de base de datos se puede disear para permitir o no valores nulos en una columna.
Una base de datos relacional ayuda a organizar todos los datos que provienen de las
diversas filas y columnas de cada tabla, como se muestra en la Figura 1-3. Cada columna
corresponde a un tipo de informacin especfico que se desea almacenar en la base de
datos. Tal como ve en la figura, cada fila corresponde a un registro. Recuerde, una instancia
de cada columna y cada tabla puede estar relacionada con una o ms tablas.
Figura 1-3
Tabla de base de datos
bsica
Un modelo de base de datos relacional organizara los datos que aparecen en la Figura1-3
enuna tabla de base de datos que contiene filas y columnas, y cada columna correspondera
alatributo o al tipo de informacin que se desea almacenar. A su vez, cada fila correspondera
a un registro o una instancia de cada columna.
8|Leccin 1
Figura 1-4
Estructura de base de datos
donde se muestran atributos
de columna
TOME NOTA
Las bases de datos avanzadas, como SQL Server, analizan peridicamente consultas
y crean ndices, segn sea necesario, para optimizar el rendimiento. Puede encontrar
prueba de ello echando un vistazo al ndice de la base de datos.
Las restricciones son limitaciones o reglas aplicadas a un campo o columna para asegurar
que los datos que no se consideran vlidos no se incluyen. Por ejemplo, si hay que escribir
la edad de una persona, los datos que se escriban deben ser un nmero positivo; la edad
de una persona no puede ser un nmero negativo. Con SQL Server 2008 estn disponibles
una serie de restricciones, incluidas las siguientes:
Una restriccin nica permite al administrador de bases de datos identificar
especficamente qu columna no debera contener valores duplicados.
Una restriccin de comprobacin permite al administrador limitar los tipos
de datos queun usuario puede insertar en la base de datos.
Se usa una restriccin predeterminada para insertar un valor predeterminado en una
columna. Si no se especifica ningn otro valor, se agregar el valor predeterminado
a todos los registros nuevos.
Una restriccin no nula asegura que se incluyan datos en una celda. En otras palabras,
la celda no se puede dejar en blanco. Tambin indica que no se puede incluir un
nuevo registro o actualizar un registro sin agregar un valor a dicho campo.
La restriccin de clave principal identifica de forma exclusiva cada registro de una
tabla de base de datos. La clave principal debe contener valores nicos y no puede
contener valores NULL. Cada tabla debe tener una clave principal y, adems, cada
tabla puede tener nicamente una clave principal.
Una restriccin de clave externa en una tabla apunta a una clave principal en otra tabla.
TOME NOTA
Las columnas marcadas como claves externas pueden contener valores nulos. Esto no
es una prctica estndar deseable, sin embargo, puede que no se puedan comprobar las
restricciones si una clave externa se compone de dos o ms columnas y contiene valores
nulos. Esto indica que la integridad de los datos no se puede garantizar.
Tambin es posible que una restriccin de clave externa haga referencia a las columnas
de la misma tabla; esto se conoce como autoreferencia. Cuando se usa una autoreferencia
para realizar una consulta en una tabla, esta disposicin se conoce como autocombinacin.
Como ejemplo de una tabla de autoreferencia, supongamos que desea crear una tabla
Generations que contiene nombres de personas que usan columnas llamadas PersonID,
PersonName e MotherID. La madre es tambin una persona almacenada en la tabla
Generations, por lo que puede crear una relacin de clave externa de MotherID (la
columna de clave externa) que haga referencia a PersonID (la columna de clave principal).
10|Leccin 1
Figura 1-6
SQL Server Management
Studio
Adems, SSMS incluye el Analizador de consultas (vea la Figura 1-7), que proporciona
una interfaz basada en GUI (interfaz grfica de usuario) para escribir y ejecutar consultas.
El Analizador de consultas es compatible con:
XQuery. Lenguaje de programacin funcional y de consultas diseado
para realizar consultas en colecciones de datos XML.
Figura 1-7
Analizador de consultas
1. Haga clic en el botn Inicio y, a continuacin, haga clic en Microsoft SQL Server 2008
para expandir la seleccin de programas.
2. Haga clic en SQL Server Management Studio. Se abrir Management Studio y aparecer
elcuadro de dilogo Conectar al servidor.
3. Cambie la informacin de conexin al servidor (si es necesario) y haga clic en Conectar.
Despus de haber configurado correctamente el servidor, aparecer la interfaz de SQL
Server Management Studio.
: SOLUCIN DE PROBLEMAS
Es posible que su equipo no tenga instalada la interfaz de SSMS como parte del programa SQLServer 2008.
Si no encuentra la herramienta Management Studio en Archivos de programa, es posible que tenga que
agregarla como una actualizacin de la instalacin del servidor. Para ello, inserte el CD de instalacin
y haga clic en el botn Avanzar en la ventana Componentes para instalar, cuando aparezca.
TOME NOTA
Tambin puede instalar SQL Server Management Studio en cualquier sistema operativo
de escritorio de Windows de manera que pueda conectarse de forma remota a un servidor
SQL y administrarlo.
PAUSA. Deje la aplicacin SQL Server Management Studio abierta durante el resto
de la leccin.
SQL Server Management Studio se puede usar para realizar la mayor parte de las actividades
que es preciso ejecutar y se puede considerar una herramienta de una parada.
CREAR UNA BASE DE DATOS MEDIANTE LA INTERFAZ DE SSMS
PREPRESE. Antes de empezar a administrar bases de datos, primero debe crearlas.
Para ello, realice estos pasos:
1. Abra SSMS haciendo clic en Inicio > Todos los programas > Microsoft SQL Server 2008 >
SQL Server Management Studio.
2. Asegrese de que el motor de base de datos est seleccionado y, a continuacin,
haga clic en el botn Conectar.
3. Haga clic en el signo ms (+) que se encuentra junto a Bases de datos para que se expanda.
4. Haga clic con el botn derecho del mouse en Bases de datos y despus seleccione
Nuevas bases de datos enel men que aparece.
5. En el campo de nombre Base de datos, escriba el nombre de la base de datos
que desea crear. A continuacin, haga clic en el botn Aceptar.
12|Leccin 1
1. Abra SSMS haciendo clic en Inicio > Todos los programas > Microsoft SQL Server 2008 >
SQL Server Management Studio.
2. Asegrese de que el motor de base de datos est seleccionado y, a continuacin,
haga clic en el botn Conectar.
3. Haga clic en el signo ms (+) que se encuentra junto a Bases de datos para que se expanda.
4. Haga clic con el botn derecho del mouse en el nombre de la base de datos que desea
eliminar y, a continuacin, seleccione Eliminar en el men que aparece.
5. Seleccione Cerrar conexiones existentes y despus haga clic en el botn Aceptar.
Es importante tener en cuenta que SQL Server tiene una extensa rea de ayuda. Adems,
al instalar SQL Server, tiene la opcin de instalar los libros en pantalla y tutoriales del
servidor. Por lo tanto, si desea encontrar informacin sobre una determinada opcin o
comando, debe buscar en estos recursos. Por supuesto, si no encuentra lo que busca,
no dude en realizar la bsqueda en Internet.
n Comprender
CONCLUSIN
CERTIFICACIN DISPONIBLE
Qu comandos comunes
que se usan con SQL son
comandos de DML?
1.3
Las instrucciones del lenguaje de definicin de datos (DDL) forman parte de la seccin
Transact-SQL de SQL Server y se pueden usar para crear objetos de base de datos como
tablas y vistas.
CERTIFICACIN DISPONIBLE
Qu comando de DDL
usara para cambiar
el contenido de la base
de datos y cul usara
para crear una tabla?
1.4
14|Leccin 1
USE
Un comando de Transact-SQL que vale la pena mencionar es el comando USE. El comando
USE cambia el contexto de la base de datos a la base de datos especificada o a la instantnea
de base de datos. En otras palabras, cuando se usan comandos en una base de datos
concreta, es probable que primero se tenga que escribir el comando USE para seleccionar
la base de datos. Por ejemplo, para seleccionar una base de datos llamada TESTDB,
debe ejecutar el siguiente comando:
USE TESTDB
CREATE
La instruccin CREATE permite crear una gran variedad de objetos de base de datos, como
tablas, vistas y procedimientos almacenados. Por ejemplo, supongamos que desea crear una
nueva tabla llamada Planets en una base de datos llamada AdventureWorks. Para ello, use
la siguiente secuencia de comandos:
USE [AdventureWorks]
GO
CREATE TABLE [dbo].[Planets](
[IndividualID] [int] NOT NULL,
[PlanetName] [varchar](50) NULL,
[PlanetType] [varchar](50) NULL,
[Radius] [varchar](50) NULL,
[TimeCreated] [datetime] NULL
) ON [PRIMARY]
GO
ALTER
La instruccin ALTER cambia un objeto existente. Se puede usar para agregar o quitar
columnas de una tabla, como se muestra en el ejemplo siguiente:
ALTER TABLE Shirt
ADD Price Money;
GO
En este caso, ALTER se ha usado para agregar una columna Price a la tabla Shirt.
Si despus desea establecer los precios en esta columna, puede usar la instruccin
UPDATE de la siguiente manera:
UPDATE Shirt SET Price = 13.50 WHERE ProductID = 1;
UPDATE Shirt SET Price = 13.50 WHERE ProductID = 2;
UPDATE Shirt SET Price = 10.00 WHERE ProductID = 3;
UPDATE Shirt SET Price = 12.00 WHERE ProductID = 4;
GO
Tambin puede usar ALTER para cambiar la definicin de una vista, procedimiento
almacenado, desencadenador o funcin. Por ejemplo, la siguiente secuencia de
comandos redefine la vista para incluir la columna Price:
ALTER VIEW Size AS
SELECT ProductID, ProductName, Price FROM Shirt
WHERE ProductType = Size;
GO
SELECT * FROM Size
Resultados:
ProductID
ProductName
Price
Red
13.50
Blue
13.50
Orange
10.00
Black
12.00
Cuando se trabaja con estas instrucciones, se debe tener cuidado para no confundir ALTER
con UPDATE. Recuerde, ALTER cambia la definicin del objeto, pero UPDATE cambia los
datos de la tabla.
DROP
La instruccin DROP en realidad quita un objeto de una base de datos, pero si los dems
objetos dependen del objeto que se est intentando quitar, la instruccin ser incorrecta
y se generar un error. En el siguiente ejemplo se muestra cmo se puede usar DROP para
eliminar datos de la tabla Shirt, despus los quita de la vista Size y finalmente quita la
tabla Shirt de la base de datos. En este ejemplo, tambin tratamos de eliminar la tabla
Person.Contact pero, como habr observado, esta operacin no tiene xito porque hay
otros objetos que dependen de la tabla Person.Contact.
DELETE FROM Shirt
Select * FROM Size
Resultados:
ProductID
ProductName
Price
(0 filas afectadas)
DROP VIEW Size;
GO
DROP TABLE Person.Contact
Resultados:
Msj 3726, Nivel 16, Estado 1, Lnea 1
No se puede eliminar el objeto Person.Contact porque la instruccin FOREIGN KEY
hace referencia al objeto.
Recuerde que no debe confundir DROP, que quita un objeto de la base de datos, con DELETE,
que elimina datos de una tabla.
16|Leccin 1
TRUNCATE Y DELETE
Otras dos instrucciones de DDL con las que debe familiarizarse son TRUNCATE y DELETE.
La instruccin DELETE se usa para eliminar filas de una tabla, pero no libera el espacio
que contiene la tabla. En comparacin, el comando TRUNCATE de SQL se usa para
eliminar filas de una tabla y liberar el espacio que contiene la tabla.
TOME NOTA
Por tanto, para eliminar todas las filas de una tabla de nombre User, debe escribir
el siguiente comando:
De igual forma, para eliminar un empleado con el nmero de identificacin 200 de la tabla
User, debe escribir el siguiente comando:
RESUMEN DE CONOCIMIENTOS
En esta leccin, ha aprendido lo siguiente:
Una base de datos (bd) es un conjunto organizado de datos que normalmente se almacenan
en formato electrnico. Permite escribir, organizar y recuperar datos rpidamente.
Microsoft SQL Server usa tres tipos de archivos para almacenar bases de datos. Los archivos de
datos primarios, con la extensin .mdf, son los primeros archivos creados en una base de datos
ypueden contener objetos definidos por el usuario, tales como tablas y vistas, as como las tablas
del sistema requeridas por SQL Server para mantener un registro de la base de datos.
Si una base de datos se vuelve demasiado grande y el primer disco duro se queda sin espacio,
puede crear archivos de datos secundarios, con la extensin .ndf, en discos duros fsicos
independientes para que la base de datos tenga ms espacio.
El tercer tipo de archivo que usa SQL Server es un archivo de registro de transacciones. Los
archivos de registro de transacciones usan la extensin .ldf y no contienen ningn objeto como
tablas o vistas.
Para recuperar datos en una base de datos, se ejecuta una consulta de base de datos. Dicho de
otra forma, una consulta se usa para solicitar informacin a la base de datos y devuelve datos.
nEvaluacin
de conocimientos
Rellene los espacios en blanco
Complete las oraciones siguientes escribiendo la palabra o palabras correctas en los
espacios en blanco proporcionados.
1. Los objetos de base de datos estn divididos en dos categoras:
y
.
2. Las tablas creadas mediante la instruccin
.
,
.
.
18|Leccin 1
Varias opciones
Rodee con un crculo la letra correspondiente a la mejor respuesta.
1. Cul de las siguientes no es una instruccin de DDL?
a. CREATE
b. MERGE
c. ALTER
d. DROP
2. Cul de las siguientes no es una restriccin de columna?
a. Default
b. Check
c. Range
d. Unique
3. Cules son las limitaciones o reglas que se incluyen en un campo o columna
para asegurar que los datos que no se consideran vlidos no se incluyen?
a. Clave principal
b. ndice
c. Clave externa
d. Restriccin
4. Cul de las siguientes no es una instruccin de DML?
a. REMOVE
b. INSERT
c. DELETE
d. TRUNCATE
5. Seleccione todas las afirmaciones siguientes que son verdaderas:
a. Los ndices solo se deberan crear en las columnas en las que se busca con
frecuencia.
b. Se produce una autoreferencia cuando una restriccin de clave externa hace
referencia a una columna en la misma tabla.
c. Una nica instruccin INSERT se puede usar para agregar filas a mltiples tablas.
d. Se pueden agregar mltiples claves principales a una tabla.
6. Cul de las siguientes acciones no admite ALTER?
a. Agregar una nueva columna a una tabla.
b. Eliminar mltiples columnas de una tabla existente.
c. Modificar el tipo de datos de una columna existente.
d. Cambiar la restriccin de identidad de una columna existente.
7. Cul de las siguientes no es una restriccin?
a. Null
b. Unique
c. Check
d. Principales
8. Qu significa SQL?
a. Structured Question Language
b. Structured Query Language
c. Strong Question Language
d. Specific Query Language
9. Cul de las siguientes instrucciones SQL se usan para extraer datos de una base
de datos?
a. SELECT
b. OPEN
c. EXTRACT
d. GET
Evaluacin de competencias
Escenario 1-1: Tener en cuenta el diseo de base de datos
Le acaban de contratar como administrador de bases de datos para una compaa
internacional que es una sociedad de cartera para muchas otras compaas. Su primera
tarea consiste en disear una nueva infraestructura de base de datos para la compaa. Para
empezar, reflexione sobre sus actividades durante las primeras semanas en el cargo. Incluya
en una lista al menos una base de datos que ya haya usado, ya sea directa o indirectamente,
y describa cmo es ms probable que aparezca cada base de datos.
Evaluacin de aptitudes
Escenario 1-3: Uso de la Ayuda de SQL Server 2008
Se acaba de graduar en la escuela y se le ha contratado como administrador de bases de
datos junior. Una de las cosas que ha aprendido durante los primeros meses en su puesto
de trabajo es que no conoce todas las respuestas. Afortunadamente, Microsoft SQL Server
2008 cuenta con un amplio sistema de ayuda y ejemplos. Supongamos que desea obtener
ayuda sobre el uso de la instruccin CREATE para poder crear una tabla. Qu pasos seguira
para encontrar esa informacin en el sistema de ayuda de SQL Server 2008?
LECCIN
Crear objetos
de base de datos
M AT R I Z D E D O M I N I O D E O B J E T I V O S
Habilidades y Conceptos
2.1
Crear vistas
Crear vistas.
2.3
Crear procedimientos
almacenados y funciones.
2.4
TRMINOS CLAVE
tipo de datos
tablas
vistas
procedimientos almacenados
n Definir
tipos de datos
CONCLUSIN
20
En esta seccin, aprender los distintos tipos de datos, por qu son importantes y
cmo afectan a las necesidades de almacenamiento. Al examinar los tipos de datos,
es necesario comprender que cada tipo est diseado para realizar una funcin dentro
de una tabla, as como que ciertos tipos funcionarn mejor en columnas, variables
locales, expresiones o parmetros. Adems, al elegir un tipo de datos para satisfacer sus
necesidades, debe asegurarse de que cualquiera que sea el tipo elegido proporcionar
el tipo ms eficaz de almacenamiento y consulta de esquemas. De hecho, uno de los
principales roles de un administrador de bases de datos es garantizar que los datos
de cada base de datos se mantengan uniformes al decidir qu tipo de datos es el ms
adecuado para el mdulo de aplicacin en el que se est trabajando actualmente.
Un tipo de datos es un atributo que especifica el tipo de datos que un objeto puede
contener, as como el nmero de bytes que ocupa cada tipo de datos. Por ejemplo, varios
tipos de datos controlan nicamente nmeros enteros, lo que los convierte en idneos para
conteo o para identificacin. Otros tipos de datos permiten nmeros decimales y, por lo
tanto, son muy tiles cuando se almacenan valores relacionados con dinero. Sin embargo,
hay tipos de datos que estn diseados para almacenar cadenas o varios caracteres y as
poder definir etiquetas, descripciones y comentarios. Por ltimo, encontramos varios tipos
de datos que pueden almacenar fechas, horas, nmeros binarios que constan de varios 0
y 1, e imgenes. Como regla general, si se tienen dos tipos de datos similares que solo
difieren en el nmero de bytes que usa cada uno, uno de los tipos de datos tendr mayor
intervalo de valores u ofrece mayor precisin, o ambos.
CERTIFICACIN DISPONIBLE
Qu tipo de datos usara
para registrar el costo
de un automvil? Qu
tipo usara para contar el
nmero de autos que hay
en existencias?
2.1
Los tipos de datos integrados de Microsoft SQL Server 2008 se organizan en las siguientes
categoras generales:
Nmeros exactos
Nmeros aproximados
Fecha y hora
Cadenas de caracteres
Cadenas de caracteres Unicode
Cadenas binarias
Otros tipos de datos
Tipos de datos CLR
Tipos de datos espaciales
Generalmente usar algunos de estos tipos de datos integrados, pero emplear otros de
forma ms espordica. De cualquier forma, es importante comprender estos tipos de datos
y cmo se usan en las bases de datos. En las tablas 2-1 y 1-2 se muestran los tipos de datos
de uso ms frecuente. Tenga en cuenta que en la Tabla 2-2, el asterisco (*) indica las
adiciones ms recientes de tipos de datos de SQL Server 2008.
Tabla 2-1
Tipos de datos que se
usan con ms frecuencia
22|Leccin 2
Tabla 2-1(continuacin)
Tipo de Datos
Uso o Descripcin
Almacenamiento
Numricos exactos:
bit
1 byte
tinyint
1 byte
smallint
2 bytes
int
4 bytes
bigint
8 bytes
numeric
Precisin y escala fijas. Intervalo de valores vlidos de 10^3811 hasta 10^381. Vara
decimal
Precisin y escala fijas. Intervalo de valores vlidos de 10^3811 hasta 10^381. Vara
smallmoney
money
4 bytes
Tipo de Datos
Uso o Descripcin
Almacenamiento
Numricos aproximados:
datetime
Define una fecha que se combina con una hora del da con fracciones
de segundo basada en un reloj de 24 horas. Intervalo: del 1 de enero de
1753 al 31 de diciembre de 9999. Precisin: redondeando a incrementos
de ,000; ,003 o ,007 segundos.
8 bytes
smalldatetime
Define una fecha que se combina con una hora del da. El tiempo se basa
en un da de 24 horas, con segundos siempre en cero (: 00), lo que significa
que no hay fracciones de segundo. Intervalo: del 01-01-1900 al 06-06-2079
(del 1 de enero de 1900 al 6 de junio de 2079). Precisin: un minuto.
4 bytes
date*
3 bytes
time*
Define la hora del da. Esta hora no tiene en cuenta la diferencia de zona
horaria y se basa en un reloj de 24 horas. Intervalo: de 00:00:00.0000000
hasta 23:59:59.9999999. Precisin: 100 nanosegundos.
5 bytes
datetimeoffset*
Define una fecha combinada con una hora del da que tiene en cuenta la
zona horaria y que se basa en un reloj de 24 horas. Intervalo: del 01-01-0001
hasta el 31-12-9999 (del 1 de enero del ao 1 despus de Cristo hasta el
31 de diciembre de 9999). Intervalo: de 00:00:00 hasta 23:59:59.9999999.
Precisin: 100 nanosegundos.
10 bytes
datetime2*
Define una fecha que se combina con una hora del da basada en un reloj de Vara
24 horas. Intervalo: del 01-01-0001 hasta el 31-12-999 (1 de enero del ao
1 despus de Cristo hasta el 31 de diciembre de 9999). Intervalo: de 00:00:00
hasta 23:59:59.9999999. Precisin: 100 nanosegundos.
Cadenas de caracteres:
char
Vara
VARCHAR
Vara
text
Vara
nvarchar
Vara
ntext
Vara
binary
Vara
varbinary
Vara
image
Vara
sql_variant
Vara
uniqueidentifier
(UUID)
GUID de 16 bytes.
16 bytes
Cadenas binarias:
24|Leccin 2
TOME NOTA
Recuerde que en SQL Server, cada columna, variable local, expresin y parmetro siempre
tiene un tipo de datos relacionado que define las caractersticas de almacenamiento de los
datos que se almacenan. Esto se muestra en la Tabla 2-1.
Ahora que ya tiene cierto conocimiento sobre la mayora de los tipos de datos disponibles
en Microsoft SQL Server, tenga en cuenta que cuando dos expresiones tienen distintos
tipos de datos, intercalacin, precisin, escala o longitud, las caractersticas de los
resultados se determinan de la siguiente manera:
Cuando dos expresiones (funciones matemticas o funciones de comparacin) tienen
distintos tipos de datos, las reglas de precedencia de tipo de datos especifican que los
tipos de datos con menor precedencia se convierten en tipos de datos con mayor
precedencia.
La intercalacin se refiere a un conjunto de reglas que determinan cmo se ordenan
y comparan los datos. De forma predeterminada, SQL Server tiene precedencia
de intercalacin predeterminada. Si se desea invalidar la forma de almacenamiento
de los datos, se debe usar una clusula de intercalacin.
La precisin, escala y longitud del resultado depende de la precisin del mismo en
la expresin de entrada. Dicho de otro modo, si se toman varios valores distintos y
se realiza una operacin matemtica en esos valores, la precisin, la escala y la longitud
se basarn en los valores en los que se estn realizando las operaciones matemticas.
Ahora analizaremos con ms detalle algunos de los tipos de datos integrados ms comunes
para que se familiarice an ms con la forma de usarlos.
todos los datos de punto flotante son aproximados; por tanto, no todos los valores que
estn representados por un intervalo de tipo de datos aproximado se pueden expresar
con precisin.
La sintaxis de real es float(n); donde n es el nmero de bits que se usan para almacenar
la mantisa del nmero float en notacin cientfica y, por lo tanto, dicta su precisin y el
tamao de almacenamiento si n se ha especificado realmente. El valor de n debe ser un
valor entre 1 y 53, donde el valor predeterminado es 53. La mantisa es el nmero entero
y la parte decimal de un valor, pero sin incluir marcadores de posicin y exponentes.
Por ejemplo, en 3,42732, el nmero 3,42732 es la mantisa. Pero en 3,23105, donde
el valor es equivalente a 323.000, la mantisa es 3,23.
26|Leccin 2
Tabla 2-3
Descripciones de Date
Propiedad
Valor
Sintaxis
Date
Uso
DD-MM-AAAA
(Esto se puede usar por compatibilidad con versiones
anteriores con clientes de nivel inferior)
Rango
Intervalo de elementos
Longitud de caracteres
10 posiciones
Precisin, escala
10, 0
Tamao de almacenamiento
3 bytes, fijos
Precisin
Un da
Valor predeterminado
1900-01-01
Este valor se usa en la parte de fecha adjunta para la
transformacin intrnseca de time a datetime2 o datetimeoffset
Calendario Gregoriano
TOME NOTA
Precisin de fracciones
de segundo definidas
por el usuario
No
No
No
En comparacin, datetime define una fecha que se combina con una hora del da expresada
en fracciones de segundo y basada en un reloj de 24 horas. Este tipo de datos tiene una
precisin de 0,00333 segundos. Si se necesita ms precisin, se debe usar el tipo de
datos datetime2, con una precisin de hasta 100 nanosegundos. Pero, en el caso de que
no fueranecesario realizar el seguimiento en segundos (que, por supuesto, es menos
preciso), se puede ahorrar algo de espacio de almacenamiento empleando el tipo de
datos smalldatetime en su lugar.
El tipo de datos DateTimeOffset es similar al tipo de datos DateTime, pero tambin mantiene
un registro de las zonas horarias. Por ejemplo, si se tienen dos valores DateTimeOffset con
la misma hora universal coordinada (que es la hora del meridiano deGreenwich en la
mayora de los casos), hora UTC, en distintas zonas horarias, los dos valores sern los
mismos.
Si se desea crear un conjunto de datos en el que la hora del da tiene en cuenta la diferencia
dezona horaria y est basada en un reloj de 24 horas, debe usarse datetimeoffset.
El valor smalldatetime combina una fecha con una hora del da, con la hora basada en un da
de 24 horas y con segundos mostrando siempre cero, como (:00); lo que significa que no se
proporcionan fracciones de segundo.
Por ltimo, time define la hora del da basada en un reloj de 24 horas y sin tener en cuenta
la diferencia de zona horaria.
Por lo tanto, para convertir la variable de recuento en flotante, usara el siguiente comando:
cast(count AS float)
donde puede especificar cuntos dgitos o caracteres tendr el valor. Por ejemplo:
CONVERT(nvarchar(10), OrderDate, 101)
28|Leccin 2
Figura 2-1
Tipos de conversiones
implcitas y explcitas
TOME NOTA
Al escribir la sintaxis de los diferentes tipos de datos, hay que tener en cuenta que tambin
difieren en la forma en que se expresan los literales (valor de datos fijo). Un carcter
normal literal siempre se expresa entre comillas simples. Por ejemplo:
Esta es la apariencia de una cadena de caracteres normales literales
Sin embargo, cuando se expresa un carcter Unicode literal, la letra N (de Nacional)
debe aparecer como prefijo de las comillas simples. Por ejemplo:
NEsta es la apariencia de un carcter Unicode literal
Cuando se usa un elemento VAR, SQL Server preserva el espacio en la fila en la que ese
elemento reside a partir del tamao definido de la columna (y no a partir del nmero real
de caracteres en la propia cadena de caracteres), ms un extra de dos bytes de datos para
datos dedesplazamiento. Por ejemplo, si se desea especificar que una cadena admite un
mximo de25 caracteres nicamente, debera usar VARCHAR(25).
TOME NOTA
Si n no se especifica en
una definicin de datos o la
instruccin de declaracin
de variable, la longitud
predeterminada es 1.
Si n no se especifica en la
funcin CAST, la longitud
predeterminada es 30.
TOME NOTA
nCrear
y usar tablas
CONCLUSIN
En esta seccin, ser capaz de entender el propsito de las tablas. Tambin explorar
cmo crear tablas en una base de datos usando la sintaxis ANSI SQL adecuada.
El propsito de una tabla es proporcionar una estructura para almacenar datos en una base
de datos relacional. Sin esta estructura, aumenta la probabilidad de que se produzca un
error en la base de datos. En la leccin 1, aprendi acerca de los fines de las tablas y
cmo crearlas. Vamos a revisar de forma rpida algunos de los puntos ms importante
que se deben recordar a la hora de crear una tabla en una interfaz de usuario no grfica.
Mientras, piense en el propsito de una base de datos relacional en la jerarqua de la
administracin de bases de datos.
Una base de datos SQL es el contenedor central que recupera datos de muchas tablas y
vistas distintas. Se pueden ejecutar consultas sobre estos datos, interactuando as con la
informacin almacenada en la base de datos para obtener los datos necesarios. Una ventaja
de una base de datos sobre una serie de hojas de clculo es que una base de datos puede
analizar los datos almacenados y la informacin redundante obtenidos de diversas hojas
de clculo relacionales.
30|Leccin 2
Figura 2-2
Crear una nueva tabla
1. Haga clic con el botn derecho del mouse en la carpeta Tabla y seleccione Nueva
tabla, como se muestra en la Figura 2-2:
2. Use la informacin que se muestra en la Figura 2-3 para completar los detalles de
Nombre de columna, Tipo de datos y Longitud, como se especifica en los parntesis,
ylas columnas Permitir valores null.
Figura 2-3
Nombres de columnas
y datos de identificacin
Figura 2-4
Ajuste de las propiedades
del Diseador de tablas
32|Leccin 2
4. Guarde la nueva tabla seleccionando Archivo > Guardar Table_1, como se muestra
enla Figura 2-5.
5. Escriba el nombre para la tabla que est guardando, como se muestra en la Figura 2-6.
Figura 2-5
Guardar la nueva tabla
Figura 2-6
Nombre de la tabla
nCrear
vistas
CONCLUSIN
Como administrador de bases de datos, debe saber cundo usar vistas. Tambin debera
saber cmo crear vistas mediante una instruccin de Transact-SQL o el diseador grfico.
Una vista es simplemente una tabla virtual que consta de diferentes columnas de una o
ms tablas. A diferencia de una tabla, una vista se almacena en una base de datos como
un objeto de consulta; por lo tanto, una vista es un objeto que obtiene los datos de una o
ms tablas. Las vistas que se basan en esta definicin se denominan tablas subyacentes.
Una vez definida una vista, puede referirse a ella como lo hara con cualquier otra tabla
en una base de datos.
Una vista es un mecanismo de seguridad; es decir, garantiza que los usuarios puedan
recuperar y modificar solo los datos vistos por ellos mismos con sus permisos, lo que
asegura que no puedan ver o tener acceso a los dems datos de las tablas subyacentes.
Una vista es tambin un mecanismo para simplificar la ejecucin de consultas. Las
consultas complejas se pueden almacenar como una vista y as los datos de la vista
se pueden extraer usando instrucciones simples de consulta.
Las vistas garantizan la seguridad de los datos mediante la restriccin de acceso
a los siguientes datos:
Filas especficas de tablas
Columnas especficas de tablas
Filas y columnas especficas de tablas
Filas obtenidas mediante uniones
Resmenes estadsticos de los datos en las tablas especificadas
Subgrupos de otra vista o subconjuntos de vistas y tablas
Algunos ejemplos comunes de vistas son los siguientes:
Un subconjunto de filas o columnas de una base de datos
Una unin de dos o ms tablas
Una combinacin de dos o ms tablas
Un resumen estadstico de tablas base
Un subconjunto de otra vista o una combinacin de vistas y tablas base
34|Leccin 2
Las vistas de base de datos se han diseado para crear una tabla virtual que sea
representativa de una o ms tablas de forma alternativa. Existen dos razones principales
por las que es posible que se desee facilitar una vista en lugar de permitir que los usuarios
tengan acceso alastablas subyacentes de la base de datos:
Las vistas permiten limitar el tipo de datos a los que el usuario puede tener acceso.
Sepueden conceder permisos de vista en tablas designadas, as como optar por
denegarpermisos para cierta informacin.
Las vistas reducen la complejidad para los usuarios finales de forma que no tienen
que aprender cmo escribir consultas SQL complejas. En su lugar, se pueden escribir
esas consultas en su nombre y esconderlas en una vista.
Al crear una vista, asegrese de tener en cuenta el rendimiento de la base de datos en
el diseo. Como se trat brevemente en la leccin 1, la indexacin juega un papel en
el tiempo de consulta e incluso juega un papel an mayor en las mejoras del rendimiento
de la base dedatos. Pero hay que proceder con precaucin: si se agregan ndices en
el esquema se puede en realidad aumentar la sobrecarga de la base de datos debido
al mantenimiento continuo deestos ndices.
Existen dos mtodos para crear una vista:
Mediante SSMS
Escribiendo una instruccin Transact-SQL
En esta seccin, se tratarn ambos procedimientos.
CREAR UNA VISTA CON SSMS
PREPRESE. Antes de empezar a realizar estos pasos, asegrese de que la interfaz
de SSMS est abierta y que la base de datos a la que desea agregar una vista aparece
resaltada. Despus, siga estos pasos para crear la vista:
1. Expanda la seccin Vistas haciendo clic en el signo ms (+) que aparece junto a Vistas.
Haga clic con el botn derecho del mouse en la carpeta Vistas como se muestra en la
Figura 2-8; a continuacin, seleccione Nueva vista.
Figura 2-8
Crear una nueva vista
Vamos a tratar con ms detalle lo que este cuadro de dilogo permite hacer:
Para especificar la tabla que se usar como origen principal, haga clic en
latablacorrespondiente de la pestaa Tablas del cuadro de dilogo.
Si desea usar otra vista existente, haga clic en la pestaa Vistas del cuadro
dedilogo.
Si desea generar registros a partir de una funcin, lo encontrar en la pestaa
Funciones.
Si desea usar ms de un origen, haga clic en cada una de las pestaas para
encontrar la tabla, vista o funcin que desea agregar a la consulta.
Una vez seleccionado el origen u orgenes que desea, simplemente haga clic
enelbotn Agregar para agregar cada uno.
Cuando haya seleccionado y agregado todos los orgenes que desea, haga clic
enelbotn Cerrar para salir del cuadro de dilogo Agregar tabla.
2. Al hacer clic en Agregar para agregar cada origen, aparecer la informacin que
semuestra en la Figura 2-10.
Figura 2-10
Resultado del cuadro
de dilogo Agregar tabla
CERTIFICACIN DISPONIBLE
Cmo creara una vista
con SSMS?
2.3
Una vez seleccionados los objetos que se desean usar, se agregar la barra
deherramientas Diseador de vistas, en la que se pueden planear las vistas
adicionales que se desean incorporar en la consulta.
Tambin puede crear vistas con Transact-SQL. En este caso, una vez agregados los
orgenes alpanel de diagrama, la sintaxis para estos orgenes se muestra en el panel SQL.
36|Leccin 2
Para crear una vista con la sintaxis de Transact-SQL, una convencin sencilla es la siguiente:
CREATE VIEW vwCustomer
AS
SELECT CustomerId, CompanyName, Phone
FROM Customers
Esto crea una vista llamada vwCustomer que se almacenar como un objeto. En este caso,
losdatos consultados de las columnas provienen de la tabla Customers.
nCrear
procedimientos almacenados
CONCLUSIN
Lo que la instruccin SELECT hace es devolver todos los datos que se encuentra en
la tabla USERLIST. Puede que se haga la siguiente pregunta, por qu no puedo
simplemente ejecutar la consulta que deseo para obtener la informacin que necesito?
Enotras palabras, puede que se pregunte por qu debera preocuparse en crear un
procedimiento almacenado. Tenga en cuenta que el * que aparece en la instruccin
anterior indica que no est definiendo los criterios que deseara que coincidieran con el
resultado. Dicho de otra forma, va a devolver todos los registros de la tabla USERLIST.
Tal vez est trabajando en un sitio web generando pginas ASP y necesita llamar a un
procedimiento almacenado desde all o desde otra aplicacin como Visual Basic, o desde
otra aplicacin completa. El uso de un procedimiento almacenado permite almacenar toda
la lgica dentro de la base de datos, de forma que mediante el uso de un simple comando
sepuede consultar y recuperar toda la informacin de todas las fuentes.
Un procedimiento almacenado es una instruccin SQL ya escrita que se almacena en
una base de datos. Si usa continuamente la misma instruccin SQL dentro de la base
de datos, es ms sencillo crear un procedimiento almacenado para la instruccin. Ahora,
las instrucciones simples como una instruccin select no se beneficiaran por completo
Figura 2-11
Men de seleccin Nuevo
procedimiento almacenado
CERTIFICACIN DISPONIBLE
Cmo creara
un procedimiento
almacenado con SSMS?
2.4
38|Leccin 2
Figura 2-12
Ejemplo de la ventana
Editor de texto
RESUMEN DE CONOCIMIENTOS
En esta leccin, ha aprendido lo siguiente:
Un tipo de datos es un atributo que especifica el tipo de datos que un objeto puede contener,
ascomo el nmero de bytes que ocupa cada tipo de datos.
Como regla general, si se tienen dos tipos de datos que solo difieren en el nmero de bytes
que usa cada uno, el que tiene ms bytes tendr mayor intervalo de valores u ofrece mayor
precisin, oambos.
Microsoft SQL Server incluye un amplio intervalo de tipos de datos predefinidos conocidos como
tiposde datos integrados. La mayora de las bases de datos que se crean o se usan emplean solo
estos tipos de datos.
Los tipos de datos numricos exactos son los tipos de datos ms comunes que SQL Server usa
para almacenar informacin numrica.
int es el principal tipo de datos de valores enteros (nmero entero).
Precisin (p) es el nmero mximo total de dgitos decimales que se pueden almacenar en un
tipo de datos numrico, tanto a la izquierda como a la derecha del punto decimal; este valor
debe ser almenos 1 y como mximo 38. El nmero de precisin predeterminado es 18.
money y smallmoney son tipos de datos de Transact-SQL que se deben usar para representar
valores monetarios o de moneda. Ambos tipos de datos tienen una precisin de una
diezmilsima delas unidades monetarias que representan.
Los tipos de datos numricos aproximados no se usan con tanta frecuencia como otros tipos
de datos de SQL Server. Si necesita ms precisin (ms posiciones decimales) de la que dispone
con los tipos de datos numricos exactos, debe usar los tipos de datos float o real, puesto que
ambos suelen tomar bytes adicionales de almacenamiento.
Los tipos de datos de fecha y hora se refieren, por supuesto, a fechas y horas. Estos tipos
de datos incluyen date, datetime2, datetime, datetimeoffset, smalldatetime y time.
SQL Server admite las conversiones implcitas, que se pueden producir sin especificar la funcin
de llamada real (cast o convert). Las conversiones explcitas necesitan el uso de las funciones
cast o convert especficamente.
Un carcter normal usa un byte de almacenamiento por cada carcter, que le permite definir
uno delos 256 caracteres posibles; con capacidad para ingls y algunos idiomas europeos.
Un carcter Unicode usa dos bytes de almacenamiento por carcter, por lo que se puede
representar uno de los 65.536 caracteres. Esta capacidad adicional significa que se pueden
almacenar caracteres Unicode desde casi cualquier idioma.
Cuando se usa un elemento VAR, SQL Server preserva el espacio en la fila en la que este
elemento reside a partir del tamao definido de la columna y no a partir del nmero real
de caracteres de la propia cadena de caracteres.
Las cadenas de caracteres Unicode nchar y nvarchar pueden ser fijas o variables, como las
cadenas de caracteres normales; sin embargo, usan el conjunto de caracteres UNICODE UCS-2.
El propsito de una tabla es proporcionar una estructura para almacenar datos en una base
de datos relacional.
Una vista es simplemente una tabla virtual que consta de diferentes columnas de una o ms
tablas. Adiferencia de una tabla, una vista se almacena en una base de datos como un objeto
de consulta; por lo tanto, una vista es un objeto que obtiene los datos de una o ms tablas.
Un procedimiento almacenado es una instruccin SQL escrita previamente que se ha
almacenado oguardado en una base de datos.
Una inyeccin de cdigo SQL es un ataque en el que se inserta cdigo malintencionado en las
cadenas que despus pasan a instrucciones de SQL Server en espera de anlisis y ejecucin.
40|Leccin 2
Evaluacin de conocimientos
Rellene los espacios en blanco
Complete las oraciones siguientes escribiendo la palabra o palabras correctas en los
espacios en blanco proporcionados.
1. Cada expresin ____________, ____________ y ____________ siempre tiene
un tipo de datos relacionado.
2. Un bit es un tipo de datos entero de Transact-SQL que puede tomar un ____________
de 1, 0 o NULL.
3. Al definir el costo de un producto, lo mejor es usar el tipo de datos ___________.
4. Es importante considerar el uso de conjuntos de datos ____________ en la
construccin de tablas dependientes del horario de verano.
5. SQL Server admite conversiones ____________ sin usar las funciones de llamada
reales (cast o convert).
6. Un carcter normal usa ____________ byte(s) de almacenamiento para cara carcter,
mientras que un carcter Unicode necesita ____________ byte(s) de almacenamiento.
7. El conjunto de datos char es de ____________ de longitud y tiene una longitud
de ____________ bytes.
8. El propsito de una tabla es proporcionar ____________ para almacenar datos
en una base de datos relacional.
9. Al crear una vista, asegrese de contar con ____________ en el diseo.
10. Cuando se realizan consultas a una base de datos, se pueden obtener resultados
ms rpidamente al ____________ tablas y vistas correctamente.
Varias opciones
Rodee con un crculo la letra correspondiente a la mejor respuesta.
1. Cul de los siguientes no es un tipo de datos?
a. Numricos exactos
b. Numricos aproximados
c. Cadena ANSI
d. Espacial
2. Cmo se llama cuando un tipo de datos se convierte automticamente en otro tipo
de datos?
a. conversin implcita
b. conversin explcita
c. conversin dinmica
d. conversin esttica
3. Cul de las siguientes afirmaciones no son ciertas sobre el tipo de datos int?
a. int es un entero.
b. bigint se usa cuando el valor excede el intervalo del tipo de datos int.
c. Un entero usa 8 bytes para almacenar datos.
d. Las funciones solo devolvern bigint si la expresin original tiene el mismo tipo de datos.
4. Requieren las conversiones implcitas una caracterstica de llamada real (por ejemplo,
cast o convert)?
a. S
b. No
Evaluacin de competencias
Escenario 2-1: Calcular el tamao de una tabla
Como nuevo administrador de bases de datos, se le ha encargado que cree una base de datos
de los empleados de gran tamao que almacenar la informacin de 10.000 empleados.
En la tabla estn definidas las siguientes columnas:
FirstName varchar(50)
LastName varchar(50)
StreetAddress varchar(75)
State varchar(2)
ZipCode varchar(9)
Age int
BirthDate date
Cuntos bytes debe almacenar cada registro? Cuntos bytes usara para almacenar
10.000registros?
42|Leccin 2
Evaluacin de aptitudes
Escenario 2-3: Comprender las tablas y aprender a crearlas
Se le ha contratado como nuevo administrador de bases de datos y debe crear una base
de datos de clientes. Tras abrir SSMS y tener acceso a la base de datos AdventureWorks,
qu comando de consulta usara para crear una tabla llamada customers.customer con las
siguientes columnas o campos?
Unique Customer ID
ModifiedDate
Manipular datos
LECCIN
M AT R I Z D E D O M I N I O D E O B J E T I V O S
Habilidades y Conceptos
Seleccionar datos.
3.1
Insertar datos.
3.2
Actualizar datos.
3.3
Eliminar datos
Eliminar datos.
3.4
TRMINOS CLAVE
combinacin cruzada
select
delete
transacciones
formar interseccin
unin
combinar
update
integridad referencial
Le acaba de contratar una empresa de tamao medio y le han pedido que proporcione
las listas de registro de los empleados al nuevo vicepresidente de Recursos Humanos.
Con el fin de controlar los datos para satisfacer los requisitos del vicepresidente, debe
crear varias listas distintas mediante instrucciones Transact-SQL.
Aunque el ttulo de esta leccin hace referencia a la manipulacin de datos para realizar
consultas, es importante tener en cuenta que la propia realizacin de consultas se considera
una forma de modificacin de datos, puesto que implica cambiar las instrucciones de
la consulta para obtener el resultado que se desea. No importa el nombre o descriptor,
elobjeto de cualquier base de datos es que el usuario sea capaz de extraer datos del
mismo. De hecho, la gran mayora de instrucciones SQL estn diseadas para recuperar
lainformacin solicitada por el usuario de una base de datos mediante el uso de consultas.
En esta leccin, se analizarn algunas de las instrucciones de consulta ms importantes
que se deben comprender para avanzar en el conocimiento de Transact-SQL.
43
44|Leccin 3
CERTIFICACIN
DISPONIBLE
Qu comando debe usar
para mostrar los registros
de una tabla?
3.1
En esta seccin, aprender cmo usar la consulta SELECT para recuperar o extraer datos
de una tabla, cmo recuperar o extraer datos mediante combinaciones y cmo combinar
resultados con UNION e INTERSECT.
El comando SQL para recuperar los datos de una base de datos es SELECT. Como muchos
otros comandos SQL, SELECT es similar a una instruccin en ingls. La creacin de una
instruccin SELECT es similar a la accin de rellenar los espacios en blanco, como se
muestra en el ejemplo siguiente:
SELECT id, first_name // columnas
FROM sysobjects // tablas
WHERE type = jones // condiciones de las que desea producir resultados
TOME NOTA
Observa la lnea
que indica el nmero
de filas afectadas?
Puede desactivar y
activar dicha lnea
mediante la instruccin
SET NOCOUNT.
Esta instruccin est
desactivada de forma
predeterminada.
first_name
John
last_name salary
Allan 52,000
Sylvia
Goddard 51,200
Julia
Smith 55,000
David
Thompson 62,900
(4 filas afectadas)
Manipular datos|45
Esto podra producir un resultado de gran tamao o un resultado pequeo, segn el nmero
de empleados de una compaa. Veamos un ejemplo de una compaa con solo seis
empleados. Si escribimos el comando anterior, el resultado ser similar al siguiente:
first_name
Jim
last_name
employee_id
phone
gender
Alexander 610001
574-555-0001 M
Frances
Drake
David
Thompson 610003
574-555-0985 M
Alexandria
Link
610004
574-555-9087 F
Peter
Link
610005
574-555-7863 M
Antoin
Drake
610006
574-555-2597 M
610002
574-555-0346 F
(6 filas afectadas)
Combinacin de condiciones
Quizs necesite ms informacin de una consulta que simplemente un conjunto de
parmetros. En estos casos, puede combinar varias condiciones en una sola instruccin
deconsulta. Por ejemplo, en el caso anterior, se ejecuta una consulta que devuelve solo
los empleados que trabajan en el departamento de envos. Supongamos que ahora desea
ese resultado y determinar cules de estos empleados son mujeres. Obtendr el resultado
que desea con la siguiente instruccin SQL:
SELECT first_name, last_name
FROM employees
WHERE department = shipping AND gender = F AND hired >=
2000-JAN-01
46|Leccin 3
Por tanto, esta consulta usa la conjuncin AND para proporcionar los nombres de todos
los empleados que pertenecen al departamento de envos y son mujeres.
Tambin puede usar la conjuncin OR para que el resultado satisfaga cualquiera
de las dos condiciones, como se muestra a continuacin:
SELECT first_name, last_name
FROM employees
WHERE department = shipping OR employee_id <= 610007
Observe que en este ejemplo la consulta no devuelve solo los tres empleados del departamento
de envos (cumpliendo as la primera condicin), sino que tambin devuelve tres nuevas
filas de datos que satisfacen solo la segunda condicin de la consulta (esdecir, un nmero
de identificacin de empleado menor de 610007). Esto significa que Alexandria Link, Peter
Link y Antoin Drake cumplen la segunda condicin en lainstruccin de consulta WHERE,
pero no la primera.
Manipular datos|47
Puede que se pregunte lo que hace en realidad esta consulta al basarse en esas dos condiciones
y por qu la sintaxis parece complicada. Si desea evitar la complejidad deusar la clusula
AND en esta instruccin de consulta, intente sustituirla por la clusula BETWEEN. De esta
forma, podr especificar el intervalo que se va a usar en un formato de consulta entre x
e y, obteniendo una instruccin mucho ms clara. Volvamos aescribir la instruccin
anterior para reflejar la condicin between:
SELECT first_name, last_name, hide_date
FROM employees
WHERE hide_date BETWEEN 1-Jan-1990 AND 1-Jan-2000
Con esta instruccin, recibir exactamente el mismo resultado que con la instruccin
deconsulta previa.
El uso de los operadores, como se muestra en este y en varios ejemplos anteriores, puede
ayudar en la obtencin de los mismos resultados en muchos casos. Por tanto, puede escribir
una consulta usando un signo < (menor que) y un signo > (mayor que) en lugar del signo
igual. Al hacerlo, podra producir la siguiente instruccin de consulta:
SELECT first_name, last_name
FROM employees
WHERE department = shipping
48|Leccin 3
Manipular datos|49
que identificar la columna correspondiente en cada una de las tablas en las que desea
escribir la consulta y desde las que obtener los resultados solicitados. En este ejemplo,
la clave externa en la Tabla 3-1 se identifica en la columna department_id y, en la Tabla
3-2, la clave externa se identifica como la columna coincidente department: Dicho de
otra forma, el identificador de departamento de la tabla Department est vinculado a la
columna del departamento de la tabla Employees.
Tabla 3-1
Tabla de empleados
first_name last_name
employee_id department
Thompson 620002 1
Frances Drake
610003 1
Alexandria Link
610004
Peter Link
620005 2
David Cruze
610007 NULL
Tabla 3-2
Tabla del departamento
department_id first_name
last_name
Jane Horton
Mitch Simmons
Paul Franklin
La combinacin de datos entre tablas puede resultar muy complicada, sobre todo si se van
a crear listas especficas de miles de filas de datos. Mediante la consulta de instruccin
SELECT se pueden generar listas individuales, pero puede que se obtenga como resultado
toda la informacin que se necesita en un formato de lista individual.
La palabra clave INNER JOIN simplifica esta recuperacin de datos no solo por usar la informacin
de las dos tablas a partir de las que se requiere el resultado, sino por usar lapalabra clave
INNER JOIN para especificar las condiciones necesarias para las que aparecern los registros.
Por ejemplo, a partir de las dos tablas de ejemplo, es posible que desee crear una lista
que muestre los empleados que trabajan para cada uno de los diferentes supervisores
dedepartamento. Escribira la instruccin de consulta SQL de la siguiente manera:
SELECT employees.first_name, employees.last_name,
department.first_name, department.last_name
FROM employees INNER JOIN department
ON employees.department = department.department_id
Thompson
Jane
Horton
Frances
Drake
Jane
Horton
Alexandria
Link
Mitch
Simmons
Peter
Link
Mitch
Simmons
Antoin
Drake
Paul
Franklin
(6 filas afectadas)
50|Leccin 3
Thompson Jane
Horton
Mitch
Simmons
Tenga en cuenta que la nica diferencia entre estas instrucciones INNER JOIN y OUTER JOIN es
que se ha incluido a David Cruze. Como se mencion anteriormente, David Cruze no est
asignado a ningn supervisor de departamento y por tanto su nombre muestra un valor NULL
en la lista donde las columnas se identifican por el nombre y apellido de cada supervisor.
En algunos casos, es posible que desee tener una combinacin de la tabla consigo misma;
por ejemplo, para comparar los registros dentro de la misma tabla. Esto se conoce como una
autocombinacin. Estos tipos de tablas se encuentran generalmente cuando se crea una lista
de resultados de la jerarquas de la organizacin. Por ejemplo, es posible que desee saber
cuntos autores viven en la misma ciudad, a fin de proporcionar una lista para una editorial.
Podra obtener este resultado mediante la instruccin de autocombinacin siguiente:
USE pubs
SELECT author1.first_name, author1.last_name, author2.first_name,
author2.last_name
FROM author1 INNER JOIN author2
ON author1.zip = author2.zip
WHERE author1.city = Pittsburgh
ORDER BY author1.first_name ASC, author1.last_name ASC
Manipular datos|51
Alex
Alex
Linda
Linda
Arrow Alex
Linda
Starr
Si desea eliminar las filas en las que el mismo autor coincide en repetidas ocasiones,
puede realizar el siguiente cambio en la instruccin de consulta de autocombinacin:
USE pubs
SELECT author1.first_name, author1.last_name, author2.first_name,
author2.last_name
FROM author1 INNER JOIN author2
ON author1.zip = author2.zip
WHERE author1.city = Pittsburgh
AND author1.state = PA
AND author1.author_id < author2.author_id
ORDER BY author1.first_name ASC, author1.last_name ASC
El resultado sera:
first_name
David
David
Alex
(3 filas afectadas)
De los resultados obtenidos a partir de la instruccin de consulta, se puede afirmar que David
Jones, Alex Starr y Linda Arrow viven todos en Pittsburgh, PA y tienen el mismo cdigo postal.
En esta seccin, llegar a comprender cmo se insertan datos en una base de datos
ycmo se pueden usar las instrucciones INSERT.
Microsoft SQL Server proporciona distintas formas para insertar nuevos datos en las bases
de datos. Diferentes herramientas de insercin estn disponibles para lograr el objetivo
final de unir datos conjuntamente.
Si, por ejemplo, desea insertar pocos datos agregando algunas nuevas filas a la base de
datos, puede lograrlo mediante dos mtodos distintos. El primer mtodo tambin usa la
52|Leccin 3
CERTIFICACIN
DISPONIBLE
Qu comando se usa para
agregar datos a una tabla?
3.2
Insertar datos
Primero vamos a saber cmo insertar datos en una tabla con SSMS antes de seguir adelante
con el mtodo de sintaxis.
INSERTAR DATOS CON SQL SERVER MANAGEMENT STUDIO
PREPRESE. Antes de empezar, asegrese de iniciar la aplicacin SSMS y conectarse a la
base de datos en la que desea trabajar. Despus, realice los siguientes pasos:
1. Compruebe que se ha conectado a la base de datos en la que desea trabajar (ver Figura 3-1).
2. Expanda la carpeta Bases de datos haciendo clic en el icono ms (+) junto a la palabra
Base de datos.
3. Expanda la carpeta de la base de datos que desea modificar.
4. Expanda la carpeta Tablas haciendo clic en el icono ms junto a la palabra Tablas.
5. Haga clic con el botn secundario en el nombre de la tabla y elija Editar las primeras
200 filas (vea la Figura 3-2).
Figura 3-1
Conexin a la base
de datos deseada
Figura 3-2
Editar las primeras 200 filas
Manipular datos|53
La Figura 3-3 muestra la pantalla de resultados. Si tiene un valor predeterminado como
el campo IntIdentity, no tendr que incluir el campo en la instruccin de consulta.
Figura 3-3
Pantalla de salida Editar
las primeras 200 filas
6. Escriba los datos en la ltima fila de la tabla en la que los datos se consideran datos
nuevos (o que se insertan). La ltima fila de la tabla tendr el valor NULL en cada una
de las columnas.
Aunque la lista
de columnas de la
instruccin INSERT es
totalmente opcional,
se recomienda que
especifique qu
columnas desea usar,
as SQL supondr
automticamente que la
lista de valores incluye
todas las columnas
en el orden correcto.
54|Leccin 3
CERTIFICACIN
DISPONIBLE
Qu comando se usa
para cambiar los datos
existentes en una tabla?
3.3
Como administrador de bases de datos, debe entender cmo se actualizan los datos
enuna base de datos, cmo se escriben los datos de actualizacin en una base de datos
con las instrucciones UPDATE apropiadas, as como cmo actualizar una base de datos
mediante una tabla.
La funcin de la instruccin UPDATE es cambiar los datos de una tabla o vista. Al igual
que cualquier manipulacin de datos o clusula de modificacin e instruccin de SQL,
puede usar esta instruccin ya sea en SSMS o en una ventana del editor de texto.
Como se ha visto desde el inicio de esta leccin, se puede leer este tipo de instruccin
SQL como se hara con cualquier frase. Supongamos que desea actualizar una tabla en
la que un identificador de columna determinada refleje un determinado valor. Quizs
desea tener un atributo de un nuevo supervisor (como en el ejemplo de los empleados),
Doug Able, asignado a los nuevos empleados para su aprendizaje. Ese supervisor podra
tener el atributo establecido para l mismo (consultar la tabla del departamento) como
un identificador de 4 y la clusula WHERE se satisface haciendo que se corresponda con
la condicin NULL para los empleados sin supervisor. Vamos a escribir ese escenario
deinstruccin UPDATE para actualizar el ejemplo anterior.
El primer paso sera agregar un registro en la tabla departamento con el nombre y la
informacin del identificador de departamento del nuevo supervisor con la instruccin INSERT:
INSERT INTO department (first_name, last_name, department_id)
VALUES (Doug, Able, 4)
TOME NOTA
Si no especifica qu
registros se van a actualizar,
todos los registros o filas
se actualizarn con el
nuevo valor. Esto puede
resultar perjudicial.
Ahora, debemos actualizar la tabla de empleados de forma que refleje cualquier empleado
que no tenga un supervisor de departamento asignado. En este caso, la instruccin UPDATE
se vera de la siguiente manera:
UPDATE employees
SET department = 4
WHERE department IS NULL
Manipular datos|55
Tabla 3-4
Los valores NULL de la columna del departamento
92
2010-04-03.
Dbo
CREATE_VIEW
dbo
vDVMPrep
CREATE VIEW [
<EVENT_INSTA
92
2010-04-03.
Dbo
CREATE_VIEW
dbo
<EVENT_INSTA
92
2010-04-03.
dbo
CREATE_VIEW
dbo
vTargetMail
CREATE VIEW [
<EVENT_INSTA
NULL
NULL
NULL
NULL
NULL NULL
NULL NULL
Volviendo a la Tabla 3-1, tenga en cuenta que solo un empleado, David Cruze, no tiene
asignado un nmero de identificador de departamento, lo que indica su valor NULL en la
columna del departamento. Debido a que hemos agregado un nuevo supervisor a la tabla del
departamento con la instruccin INSERT INTO anterior, David Cruze ahora tiene un nmero de
identificador de departamento y se le ha asignado a Doug Capaz como supervisor.
En comparacin, para actualizar una tabla mediante la interfaz grfica de SSMS,
nicamente hay que seguir estos pasos:
Abrir la interfaz de SSMS.
Abrir la tabla en la que se desea actualizar los datos.
Buscar la fila en la que se desea actualizar los registros en la vista Abrir tabla.
Eliminar datos
CONCLUSIN
CERTIFICACIN
DISPONIBLE
Qu comandos se usa
para eliminar datos de
una base de datos?
3.4
TOME NOTA
Todos los administradores de bases de datos deben saber cmo eliminar datos
de tablas individuales o mltiples, as como asegurar los datos y la integridad
referencial mediante transacciones.
Existen varias maneras diferentes de eliminar filas de una tabla o vista. Puede identificar
y eliminar filas individuales de la base de datos con la sintaxis DELETE, eliminar todas las
filas con la instruccin truncate table o quitar toda la tabla mediante la instruccin drop table.
El mtodo que elija depende totalmente de sus necesidades o de la cantidad de datos que
necesita quitar.
Puede usar la instruccin DELETE en mltiples situaciones. Por ejemplo, podra eliminar
todos los empleados del departamento de contabilidad de la tabla de empleados de una
compaa si, a causa de una adquisicin empresarial, esos empleados ya no son empleados
de la compaa. Puede eliminar esta informacin con el siguiente comando:
DELETE FROM employees
WHERE department = acounting
56|Leccin 3
Cada resultado ejecutado con xito desde SQL aparecer de la siguiente manera:
Comandos completados correctamente.
La instruccin TRUNCATE TABLE quita los datos reales dentro de la tabla, pero mantiene
la estructura de tabla para que se pueda usar en el futuro.
Lo que sucede en este momento es que se comprueba que lo que se hizo realmente se ha
producido y despus se emite una instruccin COMMIT para guardar los cambios, o bien
se emite ROLLBACK para deshacerlos. Muchas veces los errores se producen a travs de
errores simples y, si usa BEGIN TRAN y COMMIT o ROLLBACK mientas se realizan las tareas
demantenimiento, se dar cuenta de la mayora de las eventualidades antes de que ocurran.
Manipular datos|57
RESUMEN DE CONOCIMIENTOS
En esta leccin, ha aprendido lo siguiente:
El comando SQL para recuperar los datos de una base de datos es SELECT.
Solo hay tres cosas que se necesitan identificar en la instruccin con el fin de formar una consulta
SELECT adecuada: las columnas que se van a recuperar, las tablas de las que se van a recuperar
ylas condiciones, si hay alguna, que los datos deben satisfacer.
Una clusula BETWEEN permite especificar el intervalo que se va a usar en un formato de consulta
entre x e y.
La palabra clave NOT se usa para buscar datos definiendo lo que no se desea recuperar.
La clusula UNION permite combinar los resultados de dos o ms consultas en un nico conjunto
deresultados que incluir todas las filas que pertenecen a la consulta en esa unin.
La clusula EXCEPT devuelve los valores distintos de la consulta izquierda que no se encuentran
tampoco en la consulta derecha, mientras que la clusula INTERSECT devuelve los valores
distintos que no se encuentran en ninguno de los lados izquierdo y derecho de este operando.
La clusula JOIN permite combinar datos relacionados de varios orgenes de tablas.
Par insertar datos, se puede usar SSMS o la instruccin INSERT.
La funcin de la instruccin UPDATE es cambiar datos de una tabla o vista.
La instruccin DELETE quita filas de una tabla o vista.
La instruccin TRUNCATE TABLE quita los datos de una tabla, pero mantiene la estructura
delatabla para que se pueda usar en el futuro.
Se puede quitar una tabla completa mediante el comando DROP TABLE. La mejor forma
de evitar la eliminacin accidental de tablas completas es usar la integridad referencial.
La integridad referencial no permite la eliminacin de tablas a menos que todas las tablas
relacionadas seeliminen mediante una eliminacin en cascada.
Evaluacin
de conocimientos
Verdadero o falso
Rodee con un crculo la V si el enunciado es verdadero o la F si la afirmacin es falsa.
V F
V F
V F
V F
V F
1.
2.
3.
4.
5.
58|Leccin 3
Varias opciones
Rodee con un crculo la letra correspondiente a la mejor respuesta.
1. Cul de las siguientes condiciones no es vlida?
a. salary <> 50,000
b. salary != 50,000
c. salary NOT EQUAL 50,000
d. NOT salary = 50,000
2. Cul de los siguientes operadores no se admite cuando se combinan resultados
entre instrucciones SELECT?
a. UNION
b. EXCEPT
c. INTERSECT
d. AND
3. Cul de las siguientes condiciones de intervalo generara un error de sintaxis?
a. salary <= 50,000 and salary >= 10,000
b. salary between (10,000 and 50,000) and (60,000 and 90,000)
c. salary >= 10,000 and salary <= 50,000
d. salary between 10,000 and 50,000
4. Cul de las siguientes instrucciones combinar los resultados de dos o ms consultas en
un nico conjunto de resultados que incluye todas las filas pertenecientes a la consulta?
a. UNION
b. EXCEPT
c. INTERSECT
d. AND
5. Cul de los siguientes elementos se usa para evitar la eliminacin accidental de los
datos de una tabla?
a. Transacciones
b. Valores Null
c. Combinaciones internas (inner join)
d. Integridad referencial
Manipular datos|59
Evaluacin
de competencias
Escenario 3-1: Uso del comando SELECT
Le acaban de contratar como administrador de bases de datos para AdventureWorks
Corporation. Un administrador de red desea saber cmo extraer informacin de la base
dedatos de AdventureWorks. Por lo tanto, necesita responder a las siguientes preguntas:
1. Qu comando usara para mostrar los registros de una tabla?
2. Qu comando usara para mostrar los registros FirstName y LastName de la tabla
Users?
3. Qu comando usara para mostrar todos los registros de la base de datos Member
y ordenarlos por la columna FirstName?
4. Qu comando usara para mostrar todos los registros de la tabla Suppliers que
contengan City of Sacramento?
5. Qu comando usara para mostrar los registros CompanyName, ContactName y
PhoneNumber de la tabla Suppliers que contengan un identificador de proveedor mayor
que 1000?
6. Qu comando usara para mostrar los registros CompanyName, ContactName y
PhoneNumber de la tabla Customers para las compaas con ms de 100 empleados
que residan en el estado de California.
de aptitudes
Escenario 3-3: Manipular datos mediante las instrucciones SELECT y JOIN
Lo acaban de contratar como administrador de bases de datos de AdventureWorks
Corporation. Ha surgido alguna confusin debido a que las rdenes de compra de la
compaa se almacenan en dos tablas. Por lo tanto, necesita crear una consulta para
combinar la tabla PurchaseOrderHeader de la base de datos de ejemplo, AdventureWorks,
consigo misma de modo que proporcione una lista de los pedidos
de compra emparejados. Cada fila incluye dos pedidos de compra con proveedores
y mtodos de envo idnticos.
1. Tras abrir SSMS y obtener acceso a la base de datos AdventureWorks, qu
consulta usara en la base de datos AdventureWorks para mostrar los registros
ProductSubcategoryID eProductCategoryID de la tabla Production.ProductSub y
contuviera la palabra Bike? Tambin desea ordenar los registros por SubcategoryName.
2. Qu consulta usara para combinar la tabla ProductCategory con la tabla
ProductSubcategory para recuperar la columna Name de la tabla ProductCategory?
60|Leccin 3
Comprender el
almacenamiento
dedatos
LECCIN
M AT R I Z D E D O M I N I O D E O B J E T I V O S
Habilidades y Conceptos
4.3
TRMINOS CLAVE
ndice agrupado
ndice no agrupado
normalizacin
clave principal
clave externa
datos redundantes
forma
Supongamos que trabaja para una empresa de distribucin de grandes almacenes que
proporciona material de acampada al aire libre para ms de 90 tiendas en Amrica
del Norte. Acaba de recibir una nota de la oficina indicando que la compaa ha
adquirido una segunda tienda en el Estado de Washington. Su superior le ha solicitado
que agregue una nueva tabla a la base de datos para esa tienda, indicando que la tabla
se debe rellenar con el mismo equipamiento que se vende en la primera tienda de
Washington. Quiere asegurarse de que la integridad se mantiene en ambas bases
de datos y de que la nueva tabla permanece normalizada en tercera forma normal.
En esta leccin, aprender acerca de la normalizacin de bases de datos, los cinco niveles
ms comunes de normalizacin y el propsito de la normalizacin en lo que respecta
a la integridad de base de datos. Tambin aprender qu claves externas, primarias
y compuestas desempean un papel fundamental en la integridad referencial.
61
62|Leccin 4
nNormalizar
CONCLUSIN
TOME NOTA
La normalizacin
es la eliminacin
de datos redundantes
para ahorrar espacio.
CERTIFICACIN DISPONIBLE
Cules son las tres
primeras formas normales
y en qu se diferencian
unas de otras?
4.1
Comprender la normalizacin
La normalizacin se basa totalmente en los procesos de diseo y organizacin de datos
que se derivan de las reglas que se usan en la construccin y diseo de bases de datos
relacionales. Por lo tanto, es sumamente importante comprender qu son bases de datos
relacionales y la importancia de las buenas metodologas en el diseo.
La normalizacin, por definicin, es el proceso de organizacin de los datos con el fin de
reducir la redundancia mediante la divisin de una base de datos en dos o ms tablas y la
posterior definicin de las relaciones entre las tablas. El objetivo de esta operacin es aislar
datos de modo que las adiciones, eliminaciones y modificaciones que se producen en cada
campo se pueden realizar dentro de una tabla y luego se pueden propagar a travs del resto
de la base de datos mediante las relaciones definidas.
Hay cinco formas normales (FN), pero vamos a centrarnos en las tres primeras:
Primera forma normal (1NF): elimina grupos repetidos
Segunda forma normal (2FN): elimina datos redundantes
Tercera forma normal (3FN): elimina columnas no dependientes de una clave
Cuarta forma normal (4FN): asla relaciones mltiples independientes
Quinta forma normal (5FN): asla relaciones mltiples semnticamente relacionadas
Veamos ahora cada una de estas formas con ms detalle. Al tratar con ms detalle las
formas normales, esta leccin pasa a realizar un estudio ms acadmico sobre el diseo
de bases de datos relacionales. Contrariamente a la opinin popular, las formas no son
una metodologa progresiva, pero representan un nivel progresivo de cumplimiento.
Tcnicamente, una base de datos no puede estar en la segunda forma normal hasta que
no haya cumplido la primera forma normal; por lo tanto, no se puede pensar en el diseo
de una entidad ni en trasladarla de la primera forma normal a la segunda forma normal y
as sucesivamente, porque cada forma normal no es ms que un tipo diferente de integridad
de los datos con los distintos requisitos que se deben ir cumpliendo.
La tabla tampoco debe tener atributos con varios valores, lo que indica que no pueden
combinarse en una columna nica varios valores que se consideren vlidos para
una columna. Como ejemplo de la primera forma normal, considere la lista de los
campamentos base y rutas tursticas de la base de datos Cape Hatteras Adventures.
En la Tabla 4-1 se muestran los datos de BaseCamp en un modelo que infringe la primera
forma normal: el atributo de las rutas tursticas (Tour1, Tour2, y Tour3) no es nico. Es
decir, hay tres valores asignados para las rutas tursticas.
Las entradas de la columna o atributo deben ser del mismo tipo de datos.
Tabla 4-1
BaseCamp
Tour1
Asheville
Sendero de los Apalaches
Cabo Hatteras
Freeport
Buceo en Bahamas
Ft. Lauderdale
Virginia
Occidental
Tour2
Tour1
Para volver a disear el modelo de datos de forma que cumpla con la primera forma
normal, hay que resolver la repeticin del grupo del atributo de giras tursticas en un
atributo nico, como se muestra en la Tabla 4-2 y, a continuacin, pasar los valores
mltiples a una tabla nica. En este caso, la entidad BaseCamp contiene una tabla nica
para cada campamento base, y BaseCampID de la entidad Tour se refiere a la clave
principal de la entidad BaseCamp.
Tabla 4-2
Datos de BaseCamp
(despus): conforme a la
primera forma normal
Entidad Tour
BaseCampID (FK)
Tour
Entidad BaseCamp
BaseCampID (PK)
Name
Asheville
Cabo Hatteras
Freeport
Buceo en Bahamas
Ft. Lauderdale
Descenso rpido
por el ro Gauley
64|Leccin 4
Para entender mejor las infracciones de la segunda forma normal, en la Tabla 4-3
se muestra un ejemplo con los datos de BaseCamp cuando no estn en 2FN,
y en la Tabla 4-4 se muestran los mismos datos despus de su normalizacin.
Tabla 4-3
Datos de BaseCamp (antes):
infraccin de la segunda
forma normal
PK-BaseCamp
PK-Tour
Base Camp
PhoneNumber
Asheville
828-555-1212
Asheville
828-555-1212
Cabo Hatteras
828-555-1213
Freeport
Buceo en Bahamas
828-555-1214
Ft. Lauderdale
828-555-1215
Virginia Occidental
Descenso rpido
por el ro Gauley
828-555-1216
Tabla 4-4
Datos de BaseCamp
(despus): conforme a la
segunda forma normal
Entidad Tour
Entidad BaseCamp
PK-BaseCamp
PK-Tour
BK-BaseCamp
PhoneNumber
Asheville
Asheville
828-555-1212
Asheville
Cabo Hatteras
828-555-1213
Cabo Hatteras
Freeport
828-555-1214
Freeport
Buceo en Bahamas
Ft. Lauderdale
828-555-1215
Ft. Lauderdale
Senderismo por
Virginia Occidental
el Amazonas
Virginia Occidental
Descenso rpido
por el ro Gauley
828-555-1216
Para entender mejor las infracciones de la tercera forma normal, en la Tabla 4-5 se muestra
un ejemplo de los datos del campamento base cuando no estn en 3FN y en la Tabla 4-6 se
muestran los datos despus de su normalizacin.
Tabla 4-5
Datos de BaseCamp (antes):
infraccin de la tercera
forma normal
Entidad BaseCamp
BaseCampPK
Asheville
BaseCampPhoneNumber LeadGuide
1-828-555-1212
Jeff Davis
DateofHire
5/1/99
Cabo Hatteras
1-828-555-1213
Ken Frank
4/15/97
Freeport
1-828-555-1215
Dab Smith
7/7/2001
Ft. Lauderdale
1-828-555-1215
Sam Wilson
1/1/2002
Virginia Occidental
1-828-555-1216
Lauren Jones
6/1/2000
Tabla 4-6
Datos de BaseCamp
(despus): conforme a la
tercera forma normal
Entidad Tour
Entidad LeadGuide
BaseCampPK
LeadGuide
LeadGuidePK
DateofHire
Asheville
Jeff Davis
Jeff Davis
5/1/99
Cabo Hatteras
Ken Frank
Ken Frank
4/15/97
Freeport
Dab Smith
Dab Smith
7/7/2001
Virginia Occidental
Lauren Jones
Lauren Jones
6/1/2000
66|Leccin 4
Qu pasa con el total? Parece que aqu podran surgir problemas. El total se puede derivar
multiplicando UnitPrice por la Quantity y, por lo tanto, no es totalmente dependiente de la
clave principal. Hay que quitarlo de la tabla para que cumplir con
la tercera forma normal. Quizs se podran reemplazar los atributos originales con
los siguientes atributos:
OrderNumber
CustomerNumber
UnitPrice
Quantity
Ahora la tabla est en 3FN. Pero, puede que se pregunte, qu pasa con el total? Este es
un campo derivado y es mejor no almacenarlo en la base de datos en absoluto. Simplemente
se puede calcular sobre la marcha al realizar consultas de bases de datos. Por ejemplo, esta
consulta se podra haber usado previamente para recuperar los nmeros de pedidos y los totales:
SELECT OrderNumber, Total
FROM WidgetOrders
Ahora se puede usar la siguiente consulta con el fin de lograr los mismos resultados,
sin infringir las reglas de normalizacin:
SELECT OrderNumber, UnitPrice * Quantity AS Total
FROM WidgetOrders
La normalizacin tambin
reduce la contencin
del bloqueo y mejora
el rendimiento de
multiusuario.
Costos de desarrollo: a pesar de que se puede tardar ms tiempo en disear una base
de datos normalizada, estas bases de datos son ms fciles para trabajar y reducen los
costos de desarrollo.
Facilidad de uso: la ubicacin de columnas en la tabla correcta facilita la comprensin
de las bases de datos y la escritura correcta de consultas. Con esto se reduce el tiempo
de diseo y el costo.
Extensibilidad: una base de datos no normalizada es a menudo ms compleja y por
lo tanto ms difcil de modificar. Esto supone retrasos en el desarrollo de nuevas
bases de datos y aumento en los costos de desarrollo.
CONCLUSIN
CERTIFICACIN DISPONIBLE
Cules son las diferencias
entre una clave principal
y una clave externa?
4.2
En esta seccin, aprender las razones que existen para usar claves en una base de
datos. Tambin explorar cmo elegir las claves primarias apropiadas, seleccionar los
tipos de datos apropiados para las claves, seleccionar los campos apropiados para las
claves compuestas y comprender la relacin entre claves externas y primarias.
Existen tres tipos diferentes de restricciones disponibles en SQL Server que garantizan
la integridad de la base de datos: claves principales, claves externas y claves compuestas
(nicas). Una clave de restriccin nica permite aplicar la propiedad de unicidad de
columnas, adems de una clave principal en una tabla. Una clave de restriccin nica
acta de forma similar a una clave principal, pero con dos diferencias importantes:
Las columnas que contienen una restriccin de clave nica solo pueden contener una
fila con un valor NULL. No se puede tener dos filas que contengan un valor NULL
en la misma opcin, porque se infringira la restriccin nica de valores duplicados.
Una tabla puede tener varias restricciones nicas.
CREAR UNA RESTRICCIN NICA
PREPRESE. Antes de empezar este ejercicio, asegrese de iniciar la aplicacin SQL Server
Management Studio y conectarse a la base de datos en la que desea trabajar. Despus,
realice los siguientes pasos:
Figura 4-1
Vista Diseo
1. En SQL Server Management Studio, abra la tabla en la que desea crear la restriccin
en Vista de diseo. Para ello, haga clic con el botn derecho del mouse en la tabla
y seleccione Diseo en el men que aparece, como se muestra en la Figura 4-1.
68|Leccin 4
Figura 4-2
ndices o claves
Figura 4-3
Conectar a una base de datos
5. Haga clic en los puntos suspensivos (...), junto a la seccin de propiedades Columnas.
Vea la Figura 4-5. Ahora puede seleccionar las columnas que desea incluir en la
restriccin nica.
Figura 4-4
Cuadro de la propiedad Type
Figura 4-5
Seleccin de columnas
para agregar
70|Leccin 4
Figura 4-6
Guardar una restriccin
nueva
como la tabla principal y la otra acta como la tabla secundaria. Con el fin de conectar las
dos tablas, la clave principal se replica de la tabla principal a la secundaria, y a partir de
ese momento todos los atributos de clave duplicados de la tabla principal se conocen como
la clave externa. Aunque en ocasiones esto se denomina una relacin primaria-secundaria,
la aplicacin del atributo de clave externa se denomina en realidad integridad referencial
(consulte el anlisis sobre integridad referencial en la leccin anterior).
Para tener una mejor idea visual de este tipo de relacin, observe la Figura 4-7, donde
se muestra la clave principal duplicada de una orden en la tabla de detalle de la orden,
lo que proporciona el vnculo entre las dos tablas.
Figura 4-7
Duplicacin de
la clave principal
TOME NOTA
Es esta una configuracin lgica o no lo es? Imagine lo que pasara si una de las tiendas
cerrara en el futuro. En esta situacin, es probable que todos los empleados asociados con
esa tienda quedaran hurfanos, ya que estaran asociados con un campo de nmero de
unidad que ya no existe. Tambin existe la posibilidad de errores humanos; por ejemplo,
alguien sin darse cuenta escribe un nmero de unidad equivocado al escribir la informacin
de un empleado en la base de datos, creando as un nmero para una tienda que no existe.
Esto podra ser un problema a la hora de cursar la nmina o realizar otras acciones de
recursos humanos.
Este tipo de problemas se conocen como problemas de integridad relacionales, como se
explic en la leccin anterior. Afortunadamente, SQL Server proporciona la restriccin
de clave externa necesaria para evitar este tipo de errores. Despus, una clave externa
crea una relacin entre dos tablas mediante la vinculacin de la clave externa de una
de las tablas a la clave primaria de la tabla a la que se hace referencia.
CREAR UNA CLAVE EXTERNA MEDIANTE SQL SERVER MANAGEMENT STUDIO
PREPRESE. Para crear una restriccin de clave externa mediante la interfaz SSMS, siga
estos pasos. Antes de empezar, asegrese de iniciar la aplicacin SQL Server Management
Studio y conectarse a la base de datos con la que desea trabajar.
1. En SSMS, abra la tabla en la que desea crear una clave externa. Haga clic con el botn
derecho del mouse en la tablas y seleccione la vista Diseo, como se muestra en la
Figura 4-8.
72|Leccin 4
Figura 4-8
Vista Diseo
Figura 4-9
Seleccin de las relaciones
6. Una vez que haya terminado de aadir la informacin de la tabla de clave externa,
haga clic en Aceptar para cerrar el cuadro de dilogo.
7. Haga clic en el botn Cerrar.
8. Guarde la restriccin recin creada seleccionando Guardar todo en el men Archivo.
Figura 4-10
Cuadro de dilogo
Especificacin de
tablas y columnas
Figura 4-11
Seleccin de la tabla a la que
se refiere la clave externa
74|Leccin 4
CERTIFICACIN DISPONIBLE
Cul es la diferencia
entre un ndice agrupado
y un ndice no agrupado?
4.3
En SQL Server, para recuperar datos de una base de datos, el servidor SQL comprueba
cada fila y busca la consulta en la que se trata de encontrar informacin. Suena esto
a una prdida de tiempo increblemente ineficaz? Si la respuesta es afirmativa, est en
lo correcto. Por tanto, lo que hace SQL Server (con la ayuda de los administradores de
bases de datos) es construir y mantener varios ndices con el fin de localizar y devolver
rpidamente los campos de uso ms frecuente.
La nica desventaja de la indexacin es el tiempo que se tarda en crear ndices y el espacio
de almacenamiento que requieren. Una decisin importante a la hora de usar ndices
es averiguar los ndices ms adecuados para la base de datos, basndose en los tipos
de consultas que se realizarn. Recuerde, SQL Server permite crear ndices en cualquier
columna individual o mltiples, pero el aumento de la velocidad real se dar en los
ndices basados en las columnas dentro del ndice.
Cuando vaya a implementar ndices, es importante que tenga en cuenta que cada tabla
puede tener un solo ndice agrupado, que define el modo en que SQL Server ordenar
los datos almacenados en la tabla. Despus de todo, puesto que los datos se pueden
ordenar de una sola forma, no se puede tener dos ndices agrupados en la misma tabla.
Tambin hay que recordar que un ndice agrupado es una construccin fsica, a diferencia
de la mayora de los ndices, que son lgicos o basados en software.
Una caracterstica importante de SQL Server es la creacin automtica de un ndice
agrupado cuando se define la clave principal de una tabla. Una clave principal le facilita,
como administrador de bases de datos, la visualizacin de la creacin de ndices no
agrupados a partir de las columnas de una tabla.
Hasta ahora hemos dado una visin simplista sobre lo que son lo ndices y por qu se
crean. A partir de este momento, es importante fijarse en los conceptos bsicos de un
ndice. Un ndice es una estructura en disco (o almacenada) asociada ntegramente a una
tabla o vista, que aumenta la velocidad de la recuperacin de datos. Para crear un ndice,
se crean una serie de claves de una o varias columnas en cada fila en una tabla o vista.
Estas claves se almacenan entonces en una estructura denominada rbol B que permite
a SQL Server encontrar las filas asociadas a esos valores definidos de forma mucho
ms rpida y eficaz. En la Figura 4-12 se muestra un ejemplo de estructura de rbol B.
Figura 4-12
Estructura de rbol B
76|Leccin 4
Una tabla con un ndice agrupado se considera una tabla agrupada; cuando una tabla
no tiene ningn ndice agrupado, las filas de datos se almacenan en una estructura
desordenada llamada un montn. Esto nos lleva a la definicin de un ndice no agrupado.
Figura 4-13
Carpeta Bases de datos
1. Haga clic en el icono de signo de suma (+) a la izquierda de la carpeta Bases de datos
para expandir la carpeta. Debera ver las instancias de muchas subcarpetas en la
carpeta principal Bases de datos, como se muestra en la Figura 4-13.
2. Haga clic en el icono de signo de suma (+) junto a la base de datos en la que desea crear
un ndice, como se muestra en la Figura 4-14. Debera ver muchas subcarpetas distintas.
Figura 4-14
Creacin de un ndice
Figura 4-15
Vista de la carpeta Tablas
78|Leccin 4
4. Haga clic con el botn derecho del mouse en la subcarpeta ndices y seleccione Nuevo
ndice en el men emergente que aparece, como se muestra en la Figura 4-16.
Figura 4-16
Men Nuevo ndice
Figura 4-17
Cuadro de dilogo de
propiedades Nuevo ndice
Para tener una idea de cmo debe ser el cuadro de dilogo Propiedades de un ndice
agrupado, vea la Figura 4-18.
Figura 4-18
Cuadro de dilogo
Propiedades de un
ndice agrupado
Al observar el ejemplo de ndice agrupado, tenga en cuenta que no puede agregar otro
ndice. Como se mencion con anterioridad, aqu radica la importancia de garantizar
que se escoge la clave correcta para que acte como clave de ndice agrupado: este es su
ndice de ordenacin primario de la tabla y no puede tener dos ndices agrupados por tabla.
Sin embargo, en una tabla con un ndice no agrupado, se pueden agregar varias columnas
de tabla a la clave de ndice, como se muestra en la Figura 4-19.
Figura 4-19
Cuadro de dilogo
de propiedades de
ndice no agrupado
80|Leccin 4
RESUMEN DE CONOCIMIENTOS
En esta leccin, ha aprendido lo siguiente:
La normalizacin, en pocas palabras, es la eliminacin de datos redundantes para ahorrar
espacio.
En la primera forma normal (1FN), los datos tienen un formato de entidad, lo que bsicamente
significa que deben cumplirse las tres condiciones siguientes: la tabla no debe tener registros
duplicados, la tabla no debe contener atributos con varios valores y las entradas de la columna
o atributo deben ser del mismo tipo de datos.
La segunda forma normal (2FN) garantiza que cada atributo describe la entidad.
La tercera forma normal (3FN) comprueba las dependencias transitivas. Una dependencia
transitiva se parece a una dependencia parcial en que ambas hacen referencia a atributos que
no son totalmente dependientes de una clave principal.
La cuarta forma normal (4FN) implica que dos atributos independientes se agrupan para formar
una clave principal junto con un tercer atributo.
La quinta forma normal (5FN) proporciona el mtodo para disear relaciones complejas en las
que intervienen varias entidades (normalmente tres o ms).
Tres tipos diferentes de restricciones disponibles en SQL Server pueden ayudar a mantener la
integridad de la base de datos: claves principales, claves externas y claves compuestas (nicas).
Una clave de restriccin nica permitir aplicar la propiedad de unicidad de columnas, adems
de una clave principal de una tabla.
Quizs el concepto ms importante a la hora de disear una tabla de base de datos es la clave
principal, es decir, un atributo o conjunto de atributos que se pueden usar para identificar de
manera inequvoca cada fila.
Cada tabla debe tener una clave principal; sin una clave principal, no es una tabla vlida.
Por definicin, una clave principal debe ser nica y debe tener un valor que no es nulo.
Para conectar dos tablas, la clave principal se replica de la tabla principal a la secundaria
y todos los atributos de clave duplicados de la tabla principal reciben tambin el nombre
de clave externa.
Una clave principal compuesta tiene lugar cuando se definen varias columnas como la clave
principal.
La desventaja principal al usar ndices es el tiempo que se tarda en crearlos y el espacio de
almacenamiento que requieren.
A la hora de crear ndices, es importante recordar que cada tabla solo puede tener un ndice
agrupado, que define cmo SQL Server ordenar los datos almacenados en la tabla, ya que
los datos solo se pueden ordenar de una sola forma.
Un ndice no agrupado contiene los valores de clave de ndice no agrupado, y cada una de estas
claves tiene un puntero a una fila de datos que contiene el valor de la clave.
Evaluacin de conocimientos
Verdadero o falso
Rodee con un crculo la V si el enunciado es verdadero o la F si la afirmacin es falsa.
V F 1. Crear una clave principal satisface la primera forma normal.
V F 2. Las tablas de una base de datos deben satisfacer las cinco formas normales
Varias opciones
Rodee con un crculo la letra correspondiente a la mejor respuesta.
1. Cul de las siguientes no es una restriccin?
a. CHECK
b. DEFAULT
c. UNIQUE
d. INDEX
2. Cul de los siguientes elementos puede agilizar la recuperacin de datos? (Elija dos
respuestas)
a. Una restriccin DEFAULT
b. Una restriccin PRIMARY KEY
c. Un ndice AGRUPADO
d. Una restriccin FOREIGN KEY
3. Cules de las siguientes afirmaciones son verdaderas?
a. Un mayor nmero de pequeas tablas (con menos columnas) es una caracterstica
de una base de datos normalizada.
b. Unas cuantas tablas grandes (con ms columnas) son caractersticas de una base
de datos normalizada.
c. Los ndices permiten recuperar datos ms rpidamente.
d. El rendimiento ptimo de la base de datos se logra mediante la indexacin de cada
columna de una tabla.
4. Cul de las siguientes afirmaciones no es verdadera con respecto a las claves externas?
a. Una clave externa es una combinacin de una o ms columnas usadas para
establecer y aplicar un vnculo entre los datos de dos tablas.
b. Se puede crear una clave externa definiendo una restriccin de clave externa
cuando se crea o modifica una tabla.
c. Una clave externa aplica la integridad referencial, ya que garantiza que solo
se almacenen datos vlidos.
d. Una tabla solo puede contener una clave externa.
5. Considere el uso de un ndice agrupado cuando:
a. Las columnas contienen un gran nmero de valores distintos
b. Se tiene acceso a las columnas de manera secuencial
c. Las columnas sufren cambios frecuentes
d. Las consultas devuelven grandes conjuntos de resultados
6. Qu forma de normalizacin garantiza que cada atributo describe la entidad?
a. 1FN
b. 2FN
c. 3FN
d. 4FN
82|Leccin 4
7. Cul de los siguientes no se puede usar como una clave principal?
a. Un nmero de la seguridad social
b. Una direccin
c. Un nmero de empleado
d. El nmero de serie de un componente electrnico
nEvaluacin
de competencias
Escenario 4-1: Anlisis de 1FN
Su superior le entrega una unidad flash USB con la siguiente base de datos:
Model Specs
PC-1000
Dell OptiPC 200XD 2,0 Ghz 512 MB RAM, disco duro de 40 GB
PC-1250
Dell SlimPC 400LX 2,25Ghz 2 GB RAM, disco duro de 160 GB
PC-1500
Dell OptiPC 300XD 1,5Ghz 4 GB RAM, disco duro de 200 GB
Su superior desea saber si hay algn problema en la base de datos y, en caso afirmativo,
cmo resolverlo. Cmo respondera?
nEvaluacin
de aptitudes
Escenario 4-3: Creacin de un ndice agrupado
Lo acaban de contratar como administrador de bases de datos de AdventureWorks Corporation.
Recientemente ha creado algunas bases de datos y se ha dado cuenta de que esas bases de
datos sern demasiado grandes en el futuro. Por lo tanto, necesita crear un nuevo ndice
agrupado que mejore el rendimiento general.
Usando la interfaz grfica de SSMS, qu pasos debe seguir para crear un nuevo ndice
agrupado en la columna Name de la base de datos AdventureWorks?
Ahora que tiene una base de datos con datos, qu pasos seguira para crear un ndice
agrupado basado en la columna Id?
LECCIN
Administrar una
base de datos
M AT R I Z D E D O M I N I O D E O B J E T I V O S
Habilidades y Conceptos
5.1
5.2
TRMINOS CLAVE
autenticacin
copias de seguridad
inicio de sesin
base
permiso
restaurar
cuenta sa
roles de servidor
sysadmin
usuario invitado
cuenta de usuario
Una vez creada la tabla de la base de datos que contiene los datos de inventario
yventas de la segunda tienda de Washington, su superior le pide que se asegure de
que los empleados de la tienda se han conectado a la base de datos correcta de los
datos de su tienda. Adems, le solicita que trabaje en un plan para realizar copias
de seguridad y que lo ponga en prctica para obtener la informacin de cada tienda.
Siguiendo la peticin de su superior, analizaremos la implementacin de una copia
deseguridad completa y de un calendario de copia de seguridad incremental, as
como la definicin de un nuevo esquema de seguridad.
La utilidad de una base de datos depende en gran parte de la seguridad de la informacin
que contiene. Por lo tanto, como administrador de bases de datos, debe tener una idea
clara de cmo se otorgan los permisos para que los usuarios solo puedan tener acceso
a ciertas tablas o bases de datos. Adems, debe estar familiarizado con el concepto de
cmo y cundo hacer una copia de seguridad y restaurar una base de datos.
84
de bases de datos
CONCLUSIN
Figura 5-1
Planear roles y permisos
Maestro
Usuario de Windows
Roles de servidor
IdUsuario
IdInicioSesin
Instancia de
SQL Server
Roles de base
de datos fijos
Invitado
Roles de usuario
de base de datos
Base de datos de
usuario
Funcin pblica
Permisos de objeto
(Conceder, revocar, denegar)
86|Leccin 5
CERTIFICACIN
DISPONIBLE
Qu roles se asignan
aMicrosoft SQL Server
yqu roles se asignan a
una base de datos SQL?
5.1
TOME NOTA
Una descripcin general del modelo de seguridad de SQL Server muestra que los usuarios se
autentican primero al servidor, despus a las bases de datos y, por ltimo, a los objetos dentro
de las bases de datos. En el diagrama, los crculos representan cmo se identifica el usuario.
88|Leccin 5
1. En SSMS, abra y haga clic con el botn derecho del mouse en la carpeta Seguridad,
seleccione Nuevo y seleccione el usuario, como se muestra en la Figura 5-2.
Figura 5-2
Agregar un nuevo usuario
Figura 5-3
Elegir un nombre de usuario
4. Haga clic en Aceptar para guardar y cerrar el cuadro de dilogo cuadro de dilogo
Usuario de la base de datos.
Figura 5-4
Explorar usuarios existentes
Figura 5-5
Inicio de sesin
deSQLServer
El usuario puede asignar una base de datos predeterminada y el idioma en la parte inferior
del cuadro de dilogo Propiedades de inicio de sesin de SQL Server, pero observe que la
asignacin de una base de datos predeterminada a un usuario no concede el acceso a esa
base de datos de forma automtica. El usuario debe conceder acceso a la base de datos en
la pestaa de acceso a la base de datos.
Para crear un inicio de sesin con la sintaxis de Transact-SQL para poder agregar un usuario
ogrupo de Windows, ejecute el comando CREATE LOGIN. Asegrese de usar el nombre
de Windows completo, incluido el nombre de dominio, del usuario que desea agregar,
del modo siguiente:
CREATE LOGIN XPS\Joe
90|Leccin 5
TOME NOTA
Un usuario puede
conceder acceso a bases
de datos en la pestaa
Acceso a base de datos.
Si desea crear y editar inicios de sesin de usuario en el nivel de servidor, use la pgina
General del nuevo cuadro de dilogo de inicio de sesin. El cuadro de dilogo de inicio
de sesin tambin se usa para administrar a los usuarios existentes. Para tener acceso
al cuadro de dilogo de inicio de sesin, simplemente haga doble clic en el usuario.
Figura 5-6
Eliminar un usuario
existente de SQL Server
Para quitar un usuario o un grupo de Windows de SQL Server, tambin puede usar el comando
DROP LOGIN, como en el siguiente ejemplo:
DROP LOGIN XPS\Joe
92|Leccin 5
Figura 5-7
Cuadro de dilogo
Propiedades del rol
de la base de datos
Cuando un inicio de sesin tiene permiso de acceso a una base de datos, a ese inicio de sesin
tambin se le asigna un nombre de usuario de base de datos, que puede ser el mismo que el
nombre de inicio de sesin o puede ser algn otro nombre por el que el inicio de sesin se
conocer en la base de datos.
Para conceder el acceso a una base de datos desde el inicio de sesin mediante el Explorador
de objetos, use la pgina Asignacin de usuarios del formulario Propiedades de inicio
de sesin (que se muestra en la Figura 5-8).
Figura 5-8
Pgina Asignacin
de usuarios
Para conceder el acceso desde el punto de vista de base de datos, use el comando Nuevo
usuario del men contextual del nodo Base de datos > Seguridad > Usuarios para abrir el
formulario Base de datos del usuario - Nuevo. Escriba el inicio de sesin que va a agregar
en el campo Nombre de inicio de sesin. Para buscar un inicio de sesin, use el botn de
puntos suspensivos (...). En el campo Nombre de usuario, debe escribir el nombre con el
que se conocer el usuario en la base de datos.
Puede usar el formulario Propiedades de inicio de sesin para conceder un acceso de inicio
desesin a cualquier base de datos y asignar roles de base de datos.
Un comando Transact-SQL tambin est disponible para conceder el acceso de base de
datos a un usuario. Este comando se debe emitir desde el interior de la base de datos a la
que el usuario tendr acceso. El primer parmetro de la sintaxis del comando es el inicio
de sesin del servidor y el segundo es el nombre de usuario de base de datos opcional,
como en el ejemplo siguiente:
USE Family
CREATE USER XPS\Lauren, LRN
Ahora, Lauren aparece en la lista de usuarios de base de datos como LRN. Para quitar el
acceso a la base de datos a Lauren, el procedimiento almacenado del sistema DROP USER
requiere el nombre de usuario de base de datos, no el nombre de inicio de sesin, de la
siguiente manera:
USE Familia
DROP USER LRN
El cuadro de dilogo de inicio de sesin se puede usar para agregar un nuevo usuario
a la base de datos o para administrar un usuario actual.
94|Leccin 5
Los usuarios invitados deben quitarse de la base de datos cuando ya no son necesarios,
puesto que son un riesgo para la seguridad.
Un rol de aplicacin es un rol de base de datos especfico diseado para permitir que una
aplicacin obtenga acceso independientemente del usuario. Por ejemplo, si un programa
especfico de Visual Basic (VB) se usa para buscar en la tabla Customer y no controla
la identificacin del usuario, ese programa de VB puede tener acceso a SQL Server
mediante un rol de aplicacin que no es modificable. Por tanto, cualquier usuario que use
la aplicacin VB obtiene acceso a la base de datos.
El cuadro de dilogo Propiedades del rol de la base de datos enumera todos los usuarios
asignados al rol actual.
OBTENER ACCESO A LOS ROLES DE BASE DE DATOS
PREPRESE. Para agregar un usuario a un rol de base de datos, realice estos pasos:
96|Leccin 5
La concesin de permisos de objeto interacta con los roles de servidor y base de datos. El rol de
servidor sysadmin es el rol de mxima seguridad, que tiene acceso total a todas las bases de datos.
Si un usuario no tiene el rol de servidor sysadmin, los permisos de objeto de nivel ms alto
seran los permisos de objeto Grant y Deny. Sin embargo, el permiso Deny siempre tiene
ms prioridad que el permiso Grant.
Si el entorno no permite la seguridad de modo mixto, la forma ms fcil de comprobar la
seguridad es haciendo clic con el botn derecho del mouse en en SQL Server Management
Studio o en el Analizador de consultas y usar el comando RUN AS para que se ejecute como
un usuario distinto; no obstante, esto requiere la creacin de usuarios ficticios en el dominio
de Windows. En trminos generales, en una produccin de dominio de Windows, la mayora
de los auditores podran marcar a los usuarios ficticios como un punto de auditora. Debido a que
las estaciones de trabajo que pertenecen a los administradores de bases de datos suelen pertenecer
a los dominios de produccin, esta recomendacin no funcionar si los auditores son diligentes.
MODIFICAR PERMISOS DE UN OBJETO
PREPRESE. Para obtener acceso a un permiso de objeto, siga estos pasos para modificar
los permisos de un objeto:
1. En SSMS, abra la base de datos y abra el objeto que desea administrar. El objeto podra
ser tablas, vistas, procedimientos almacenados o funciones definidas por el usuario.
2. En el Explorador de objetos, haga clic con el botn derecho del mouse en el objeto y
seleccione Propiedades para abrir el cuadro de dilogo Propiedades para ese tipo de objeto.
3. Haga clic en la pgina Permisos para abrir el cuadro de dilogo Propiedades de objeto.
4. Para agregar un usuario, haga clic en el botn de bsqueda. Escriba el nombre del usuario
que desea agregar o haga clic en el botn Examinar para seleccionar el usuario. Haga clic
en el botn Aceptar para cerrar el cuadro de dilogo Seleccionar usuarios o roles.
5. Seleccione el permiso Grant adecuado para el permiso Deny. Vea la Figura 5-9.
Figura 5-9
Concesin de permisos
de objeto
6. Cuando haya terminado, haga clic en el botn Aceptar para cerrar el cuadro de dilogo
Propiedades.
La parte superior del formulario se usa para seleccionar un usuario o un rol, para asignar
ocomprobar permisos. El usuario debe tener acceso a la base de datos que se va a seleccionar.
Al igual que cuando se establecen los permisos de instruccin en la pestaa de propiedades
de seguridad de la base de datos, se puede seleccionar grant, con grant o deny. La lista de
objetos en la parte superior del cuadro de dilogo muestra todos los objetos de la base de
datos. Esta lista se puede usar para cambiar a otros objetos de forma rpida y sin seleccionar
una copia de seguridad del formulario en la consola ni seleccionar un objeto distinto.
Si el usuario o el rol tiene permiso para una tabla, el botn Columnas abrir el cuadro de
dilogo Permisos de columna. Seleccione el usuario y haga clic en el botn para establecer
los permisos de columnas para ese usuario. Seleccione y actualice solo los permisos que se
pueden establecer en el nivel de columna, porque insertar y eliminar afecta a filas enteras.
98|Leccin 5
El permiso asignado puede ser ALL, SELECT, INSERT, DELETE, REFERENCES, UPDATE o EXECUTE.
Elrol o nombre de usuario se refiere al nombre de usuario de la base de datos, cualquier
rol pblico definido por el usuario o el rol pblico. Por ejemplo, el siguiente cdigo
concede a Joe permiso para realizar selecciones en la tabla Person:
GRANT Select ON Emails TO Joe
En el siguiente ejemplo se conceden todos los permisos al rol pblico para la tabla
Marriage:
GRANT All ON Contacts TO dbcreator
Varios usuario o roles y varios permisos pueden aparecer en el comando. Por ejemplo,
elsiguiente cdigo concede los permisos para seleccionar y modificar al usuario invitado
ya LRN:
GRANT Select, Update ON Emails to Guest, LRN
La opcin WITH GRANT proporciona la capacidad para conceder permisos a un objeto. Por
ejemplo, el siguiente comando concede permisos a Joe para seleccionar de la tabla Email y
para conceder permisos a otros usuarios para que puedan realizar selecciones:
GRANT Select ON Email TO Joe WITH GRANT OPTION
Administrar roles
Los roles se pueden crear, administrar y quitar va SSMS o ejecutando instrucciones
Transact-SQL. Por supuesto, debe crear roles y asignar usuarios a esos roles solo
cuando sea necesario.
Una vez que se ha creado un rol, los usuarios se pueden asignar al rol mediante el
procedimiento almacenado del sistema sp_addrolemember. Por ejemplo, el siguiente
ejemplo de cdigo asigna Joe al rol de administrador:
EXEC sp_addrolemember Manager, Joe
al rol trabajador.
3. Cree el rol administrador. Agregue el rol administrador como un usuario del rol gerente.
100|Leccin 5
principales Tablas
de grupo de archivos
Tablas estticas de
grupo de archivos
Otros Permisos
IT
Rol de servidor
sysadmin
Clerk Permisos de ejecucin
para varios procedimientos
almacenados de los que leen
y actualizan, necesarios para
las tablas diarias.
Admin Rol fijo de base de
datos db_owner
Customer Permisos Select
Tabla 5-2
Usuarios y sus roles
para OBXKites
Usuario
Sammy Admin
Joe Public
LRN
IT DBA
Clerk
Con este modelo de seguridad, los siguientes usuarios pueden realizar las siguientes tareas:
Betty, como miembro del rol Clerk, puede ejecutar la aplicacin que ejecuta los
procedimientos almacenados para recuperar y actualizar datos. Betty tambin puede
ejecutar consultas seleccionadas como un miembro del rol Public.
LRN, como miembro de IT DBA, puede realizar cualquier tarea en la base de datos
como un miembro del rol administrador de sistemas de servidor.
Joe puede ejecutar consultas seleccionadas como miembro del rol Public.
Como miembro del rol Admin, Sammy puede ejecutar todos los procedimientos
almacenados. Tambin puede modificar manualmente cualquier tabla mediante
consultas. Por otra parte, como un miembro del rol Admin que incluye el rol
db_owner, Joe puede realizar cualquier tarea administrativa de bases de datos y
seleccionar o modificar los datos en cualquier tabla.
Solo LRN puede restaurar desde las copias de seguridad. Las copias de seguridad
se tratan en la siguiente seccin de esta leccin.
CONCLUSIN
En esta seccin, examinar varios tipos de copias de seguridad (por ejemplo, completas
e incrementales), la importancia de las copias de seguridad y cmo restaurar una base
de datos.
La finalidad de una copia de seguridad de una base de datos es tener algo que restablecer
si se pierden datos durante las tareas diarias rutinarias. Por ejemplo, un usuario puede
eliminar por error una tabla, o un administrador de bases de datos puede necesitar
restaurar varias tablas de diferentes servidores para combinarlas en una sola base
de datos. La necesidad de disponer de una copia de seguridad de las bases de datos
y de un plan de restauracin es a la vez inmediata y trascendental.
CERTIFICACIN DISPONIBLE
Al realizar copias de seguridad, se puede elegir el tipo de copia de seguridad que es mejor
para el entorno. El tipo de copia de seguridad se basa en la simplicidad, el tiempo para
realizar una copia de seguridad y tiempo para realizar una restauracin.
Copia de seguridad completa: una copia de seguridad completa contiene todos
los datos en una base de datos especfica o en conjunto de archivos o en grupos
de archivos para poder recuperar los datos.
Copia de seguridad diferencial: una copia de seguridad diferencial se base en la ltima
copia de seguridad completa de los datos. Esta copia se denomina base del diferencial
o base diferencial. Una copia de seguridad diferencial contiene nicamente los datos
que han cambiado desde la base diferencial. Por lo general, las copias de seguridad
diferenciales que se realizan inmediatamente despus de la copia de seguridad de base
son menores y ms rpidas que las de la base de una copia de seguridad completa. Por
lo tanto, mediante las copias de seguridad diferenciales se puede acelerar el proceso de
102|Leccin 5
Descripcin
Copia de seguridad
de la base de datos
Copia de seguridad de
base de datos diferencial
Descripcin
Copia de seguridad parcial Copia de seguridad de los datos completos del grupo
de archivos principal, de todos los grupos de archivos de
lectura y escritura y, opcionalmente, de los archivos o
grupos de archivos de solo lectura especificados. Una copia
de seguridad parcial de una base de datos de solo lectura
contiene solamente el grupo de archivos principal.
Copia de seguridad
Copia de seguridad que contiene solo los datos que se
parcial y diferencial han modificado desde la ltima copia de seguridad parcial
del mismo grupo de archivos.
Descripcin
Copia de seguridad de archivo Copia de seguridad completa de todos los datos en uno
o ms archivos o grupos de archivos.
Importante: en el modelo de recuperacin simple, las copias de
seguridad de archivos se reducen bsicamente a grupos de archivos
secundarios de solo lectura. Puede crear una copia de seguridad de
archivos de un grupo de archivos de lectura y escritura, pero antes
de poder restaurar la copia de seguridad de archivos de lectura y
escritura, debe configurar el grupo de archivos de solo lectura y
tomar una copia de seguridad diferencial de archivos de solo lectura.
Copias de seguridad
Copia de seguridad de uno o ms archivos que contienen
de archivo diferenciales las extensiones de datos que se han cambiado desde la ltima
copia de seguridad completa de cada archivo.
Nota: en el modelo de recuperacin simple, esto supone que
los datos se han cambiado a solo lectura desde la copia de
seguridad completa.
104|Leccin 5
Restauracin de archivos: restaura un archivo o grupo de archivos en una base
de datos de grupo de archivos mltiples. Despus de una restauracin de archivos
completa, se puede restaurar una copia de seguridad diferencial de archivos.
Restauracin de pginas: restaura pginas individuales.
Restauracin por etapas: restaura una base de datos por etapas, empezando por el grupo
de archivos principal y uno o varios grupos de archivos secundarios.
Solo recuperacin: recupera los datos que ya son compatibles con la base de datos y solo
necesitan estar disponibles.
Restauracin de registros de transacciones: en el modelo de recuperacin completa o de
registro masivo, puesto que los registros registran cada transaccin, la restauracin de las
copias de seguridad del registro es necesaria para alcanzar el punto de recuperacin deseado.
Creacin de una base de datos reflejada: cuando se tiene una base de datos reflejada,
se tienen bases de datos duplicadas en varios servidores. Cuando se escribe informacin
en un servidor, sereplica automticamente al segundo servidor.
Creacin y mantenimiento de un servidor en espera: cuando se tiene un servidor
de reserva, seest usando un grupo activo/pasivo que consta de dos o ms servidores.
Cuando se produce un error en el servidor activo, el servidor pasivo se convierte en el
servidor activo, teniendo en cuenta el tiempo de inactividad mnimo.
USO DE SSMS
Para restaurar datos mediante la herramienta de interfaz grfica, siga estos pasos.
RESTAURAR DATOS
PREPRESE. Antes de empezar, asegrese de iniciar la aplicacin SQL Server
Management Studio y conectarse a la base de datos con la que desea trabajar.
Despus, realice los siguientes pasos:
CERTIFICACIN
DISPONIBLE
9. Para ver o seleccionar las opciones avanzadas, haga clic en Opciones en el panel
Seleccionar una pgina.
10. En el panel Opciones de restauracin, puede elegir cualquiera de las siguientes
opciones, si es la adecuada para su situacin:
Sobrescribir las bases de datos existentes.
Conservar la configuracin de replicacin.
Preguntar antes de restaurar cada copia de seguridad.
Restringir el acceso a la base de datos restaurada.
11. Si lo desea, puede restaurar la base de datos en una nueva ubicacin especificando
un nuevo destino de restauracin para cada archivo en la cuadrcula Restaurar los
archivos de base de datos como.
12. El panel Estado de recuperacin determina el estado de la base de datos despus
de la operacin de restauracin. El comportamiento predeterminado es dejar la base
de datos lista para su uso revirtiendo las transacciones no confirmadas. Los registros de
transacciones adicionales no se pueden restaurar (RESTORE WITH RECOVERY). (Elija esta
opcin solo si va a restaurar todas las copias de seguridad necesarias en este punto).
13. Como alternativa, puede elegir cualquiera de las siguientes opciones:
Dejar la base de datos no operativa y no revertir las transacciones no confirmadas. Pueden
restaurarse registros de transacciones adicionales (RESTORE WITH NO RECOVERY).
Dejar la base de datos en modo de solo lectura. Deshace las transacciones no
confirmadas, pero guarda las acciones de deshacer en un archivo en espera para
que los efectos de recuperacin puedan revertirse (RESTORE WITH STANDBY).
Por ejemplo, para restaurar la base de datos AdventureWorks mediante el archivo de copia
de seguridad C:\AdventureWorks.BAK, debe ejecutar el siguiente comando:
RESTORE DATABASE AdventureWorks FROM DISK = C:\AventureWorks.BAK
GO
Para obtener ms informacin sobre cmo usar el comando RESTORE, consulte la siguiente
pgina web:
http://msdn.microsoft.com/es-es/library/ms186858.aspx
106|Leccin 5
RESUMEN DE CONOCIMIENTOS
En esta leccin, ha aprendido lo siguiente:
El objetivo final de la seguridad de una base de datos es garantizar que los derechos
yresponsabilidades otorgados a los usuarios se cumplan.
Un permiso se usa para conceder a una entidad (como un usuario) acceso a un objeto
(como otro usuario o base de datos).
Un inicio de sesin es el proceso por el cual se controla el acceso de una persona a un
sistema informtico mediante la identificacin de ese usuario a travs de las credenciales
proporcionadas por el usuario. El mtodo de inicio de sesin ms comn consiste en
proporcionar un nombre de usuario y una contrasea.
Una cuenta de usuario es una representacin lgica de una persona en un sistema
electrnico.
Aunque un usuario puede pertenecer a un rol fijo de la base de datos y tener
determinados permisos de nivel administrativo, no puede tener acceso a los datos si
primero no se le conceden permisos al propio objeto de base de datos (por ejemplo,
tablas, procedimientos almacenados, vistas o funciones).
Cada permiso de objeto se asigna mediante la concesin, revocacin o denegacin
de permisos de inicio de sesin de usuario.
La autenticacin es la accin de establecer o confirmar la identidad de un usuario o sistema.
El modo de autenticacin de Windows es superior al modo mixto porque los usuarios no
necesitan aprenderse otra contrasea y porque usa el diseo de seguridad de la red.
La cuenta sa es la cuenta integrada del administrador de SQL asociada con la autenticacin
deSQL.
SQL Server incluye roles de servidor predefinidos fijos. Bsicamente, estos roles conceden
permiso para realizar determinas tareas administrativas relacionadas con el servidor.
El rol sysadmin puede realizar cualquier actividad en la instalacin de SQL Server,
independientemente de los permisos que se hayan configurado. El rol sysadmin invalida
incluso los permisos denegados en un objeto.
El rol pblico es un rol fijo, pero puede tener permisos de objeto como un rol estndar.
Cada usuario es miembro del rol pblico de forma automtica y no puede eliminarse,
demanera que el rol pblico sirve como una lnea base o nivel de permiso mnimo.
Los usuarios deben poder tener acceso de forma explcita a cualquier base de datos
de usuario.
db_owner es un rol especial que tiene todos los permisos de la base de datos.
Un rol de aplicacin es un rol de base de datos especfico diseado para permitir que una
aplicacin obtenga acceso independientemente del usuario.
La finalidad de una copia de seguridad de una base de datos es tener algo que restablecer
si se pierden datos durante las tareas diarias rutinarias.
Una copia de seguridad completa contiene todos los datos en una base de datos especfica
o en un conjunto de archivos o en grupos de archivos para poder recuperar esos datos.
La copia de seguridad diferencial solo hace copias de seguridad de los datos desde
la ltima copia de seguridad completa.
La copia de seguridad incremental solo hace copias de seguridad de los datos desde
la ltima copia de seguridad completa o incremental.
Al restaurar a partir de una copia de seguridad diferencial, primero se debe restaurar la
copia de seguridad completa anterior y despus restaurar la ltima copia de seguridad
diferencial.
Al restaurar a partir de una copia de seguridad incremental primero se debe restaurar
la copia de seguridad completa anterior y despus restaurar cada copia de seguridad
incremental desde la copia de seguridad completa en orden.
de conocimientos
Verdadero o falso
Rodee con un crculo la V si el enunciado es verdadero o la F si la afirmacin es falsa.
V F 1. Un usuario debe tener permisos para obtener acceso a los archivos que
componen una base de datos para poder usar la base de datos.
V F 2. La instruccin CREATE LOGIN se usa para permitir que una cuenta de Windows
tenga acceso a SQL-Server.
V F 3. Cualquier permiso DENY siempre invalida un permiso concedido.
V F 4. La instruccin CREATE ROLE se usa para crear nuevos roles en una base de datos.
V F 5. Varias copias de seguridad diferenciales deben restaurarse en el mismo orden
en que se crearon inicialmente.
Varias opciones
Rodee con un crculo la letra correspondiente a la mejor respuesta.
1. Cul de los siguientes no es un comando de Transact-SQL para administrar
permisos?
a. GRANT
b. REVOKE
c. PERMIT
d. DENY
2. Cul de los siguientes no es un nivel de seguridad admitido en SQL Server?
a. Servidor
b. Base de datos
c. Tabla
d. Tarea
3. Cul de los siguientes no es un permiso de base de datos que se pueda aplicar
a objetos?
a. DROP
b. SELECT
c. INSERT
d. UPDATE
4. Cul de los siguientes son escenarios de restauracin de bases de datos admitidos?
a. Restaurar toda una base de datos desde una copia de seguridad completa.
b. Restaurar toda una base de datos desde una serie de copias de seguridad parciales.
c. Restaurar parte de una base de datos con copias de seguridad parciales.
d. Restaurar archivos especficos usados por la base de datos.
108|Leccin 5
5. Cul de los siguientes no es un tipo de copia de seguridad admitido en SQL Server?
a. Completa
b. Diferencial
c. De archivos
d. De dispositivos
6. Cul es la cuenta de SQL integrada que se usa en modo mixto con pleno acceso
a SQL Server?
a. fulladmin
b. sa
c. admin
d. administrator
7. Acaba de contratar a un nuevo administrador de base de datos y quiere darle acceso
completo a SQL Server. Qu rol debe asignar?
a. diskadmin
b. securityAdmin
c. sysadmin
d. db_owner
8. Qu rol le da acceso completo a una base de datos individual?
a. db_owner
b. db_accessadmin
c. db_securityadmin
d. db_ddladmin
9. El mejor mtodo de recuperacin de datos es:
a. hacer una copia de seguridad
b. usar RAID
c. usar UPS
d. usar NIC redundantes
10. Qu modo permite inicios de sesin con la cuenta de Windows y SQL?
a. cualquiera
b. completo
c. compartido
d. mixto
Evaluacin de competencias
Escenario 5-1: Anlisis de la seguridad de SQL Server
Su jefe realiz un curso de SQL en la universidad hace unos aos. Le pregunta si puede
iniciar sesin en SQL Server con la cuenta sa para poder examinar las bases de
datos y ejecutar algunas consultas. Usted le responde que, por desgracia, la cuenta sa
no est disponible en el servidor. Su superior quiere saber por qu y qu puede usar
para tener acceso a las bases de datos. Qu debe decirle?
Evaluacin de aptitudes
Escenario 5-3: Copia de seguridad de una base de datos
Debido a que va a realizar tareas de mantenimiento en las bases de datos y servidores de
bases de datos, decide realizar una copia de seguridad. Usando SQL Server Management
Studio, qu pasos debe realizar para hacer una copia de seguridad completa de la base
de datos AdventureWorks y guardarla en el disco duro?
Apndice A
Conceptos fundamentales de
bases de datos: Examen 98-364
Objetivo del examen
Nmero de leccin
1.1
1.2 1
1.3
1.4
2.1
2.2
Crear vistas.
2.3
2.4
Seleccionar datos.
3.1
Insertar datos.
3.2
Actualizar datos.
3.3
Eliminar datos.
3.4
Comprender la normalizacin.
4.1
4.2
4.3
5.1
5.2
Manipular datos
110
ndice
A
Bloqueos, 66
Booleano (tipo de datos), 22
BUILTINS/Administrator, 91
Bulkadmin, 91
Cadenas binarias, 23
Cadenas de caracteres, 23, 28-29
Cadenas de propiedad, 99
camelCase, 29
Cast (funcin), 27
char (tipo de datos), 23, 28
Clave principal compuesta, 74
Claves externas de integridad
referencial, 71
usar, 56
Claves externas
crear, mediante SSMS, 7173
definicin de, 7071
integridad referencial, 71
Claves principales
definicin de, 70
frente a restriccin nica, 67
integridad de datos, 74
segunda forma normal (2FN), 63
tercera forma normal (3FN), 64, 65
Combinacin cruzada, 48
Combinacin externa, 48, 50
COMMIT, 56
Conceptos de bases de datos
relacionales, 7-9
definicin de, 4-5
elementos del lenguaje, 7-9
restricciones, 8-9
Consultas. Vase tambin
AND Transact-SQL, 46
<columnas>, 53
<valores>, 53
BETWEEN, 46-47
como modificacin de datos, 43
condiciones, combinar, 45-46
definicin de, 2
EXCEPT, 48
INSERT, 12, 53-54
insertar datos, 51-54
INTERSECT, 48
JOIN, 48-51
NOT, 47
seleccionar datos, 44-51
SELECT, 44-45
SELECT... FROM, 45
UNION, 47
UPDATE, 54-55
WHERE, 45
Conversiones implcitas, 2627
Convert (funcin), 27
Copia de seguridad completa, 101
Copia de seguridad de archivo, 103
Copia de seguridad de registro
de transacciones, 102
archivos, 2
restaurar, 104
Copia de seguridad de registros, 102
Copia de seguridad diferencial, 101-102
Copia de seguridad incremental, 102
Copia de seguridad parcial, 102
Copias de seguridad
archivo, 103
completa, 101
definicin de, 101
diferencial, 101-102
incremental, 102
parcial, 102
programar, 103
propsito de, 101
registro de transacciones, 102
tipos, 101-102
Crear restriccin nica, 6770
definicin de, 8, 67
frente a clave principal, 67
CREATE, 13, 14
Cuarta forma normal (4FN), 66
Cuenta de usuario del dominio, 87
Cuenta de usuario local, 87
Cuenta del sistema local, 87
cuenta SA, 91
111
112 | ndice
Dependencia parcial, 64
Dependencia transitiva, 64
Diskadmin, 91
Dispositivos de copia de seguridad, 103
DRI (referencias), 95
DROP TABLE, 55
DROP, 13, 15
Estructura de rbol B, 75
EXCEPT, 48
EXECUTE, 95
GRANT, 95
Hojas de clculo
frente a bases de datos, 56
valores calculados, 6
Hojas de clculo, frente a tablas de base
de datos, 6
MERGE, 12
Modelos de recuperacin, 101
money (tipo de datos), 21, 22, 24, 25
PascalCase, 29
Permisos de objetos
conceder, mediante Transact-SQL, 98
configurar desde la lista de roles, 97
configurar desde la lista de usuarios, 97
definicin de, 95
modificar, 9697
tipos, 95
Permisos
conceder, 86
definicin de, 85
denegar, 86
objetos, 9598
revocar, 86
usuario, para objetos de base
de datos, 86
Primera forma normal (1NF), 6263
Processadmin, 91
ndice | 113
cadenas de propiedad, 99
cuenta de usuario, 85
iniciar sesin, 85
inicio de sesin de Windows, quitar, 90
inicio de sesin en SQL Server,
agregar, 8890
instruccin de consulta, 4445
Instruccin DML, 12
integridad referencial, 56
modelo, 100
nivel de base de datos, 86
nivel de servidor, 86
objetivos de, 85
objeto, 94
permiso de objeto, 95
permisos de objetos, 9598
permisos, 85
roles de base de datos fijos, 9495
roles de servidor, 9192
roles, administrar, 9899
Securityadmin, 91
SELECT
Windows, 87-90
SELECT... FROM, 45
Serveradmin, 91
Setupadmin, 91
Sistema de administracin de bases
de datos (DBMS), 2
smalldatetime (tipo de datos), 23, 26
SQL Server
Analizador de consultas, 1011
bases de datos, crear, 11
bases de datos, eliminar, 12
clave externa, crear, 7173
crear procedimientos
almacenados, 3538
crear, mediante SSMS, 3637
crear, mediante Transact-SQL, 36
cuentas de servicio, 87
datos, insertar, 5253
definicin de, 36 Sysadmin, 86, 91
definicin de, 9
Explorador de objetos, 9
ndice, no agrupado, crear, 7679
inicios de sesin, agregar, 8889
inicios de sesin, agregar,
mediante SSMS, 8889
inicios de sesin, agregar, mediante
Transact-SQL, 8990
interfaz, cargar, 11
procedimientos almacenados,
crear, 3637
restaurar, 104105
Tablas
borrar, 56
crear, mediante SSMS, 2932
crear, mediante Transact-SQL, 32
definicin de, 3, 29
frente a hojas de clculo, 6
propsito de, 29
sistema, 16
truncar, 56
Tipo de datos de tercera forma
normal, 23, 26
Tipo de datos integrado, 21-24
Tipos de datos
bigint, 22, 24
bit, 22, 24
booleano, 22
cadenas binarias, 23
cadenas de caracteres, 23, 28-29
cast (funcin), 27
char, 23, 28
conversiones implcitas, 26-27
convert (funcin), 27
datetime, 21-22, 23, 25-26
datetimeoffset, 23, 26
decimal, 22, 24
definicin de, 21
definicin, 20-29
entero, 22
escala, 24
especificador max, 28
fecha y hora, 25-26
fecha, 23, 25-26
flotante, 22, 25
hora, 23, 26
int, 22, 24
integrado, 21-24
intercalacin, 24
money (numrico), 21, 22, 24, 25
nchar, 23, 28
numrico, 22-23, 24
numrico, aproximado, 25-29
UNION, 47
UPDATE
consultas de datos, 5455
Cuenta de usuario, 85
instruccin DML, 12
permiso de objeto, 95
Rol definido por el usuario, 92
USE, 13, 14
Usuario invitado, 94
Usuarios
identificacin de, mtodos, 86
rol sysadmin, agregado a, 86
Valor calculado, 6
varchar (tipo de datos), 22, 23, 28
Vistas
crear, 3335
crear, mediante SSMS, 3435
crear, mediante Transact-SQL, 35
definicin de, 33
propsito de, 33
seguridad, 33
WHERE, 45
XQuery, 10
Notas
Notas
Notas
Notas
Notas
Notas
Notas
Notas
Notas
Notas
Notas