Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Fundamentos de Base de Datos MTA 98 364 1 PDF
Fundamentos de Base de Datos MTA 98 364 1 PDF
com
www.pdftron.com
CA
Microsoft® Official Academic Course
ÉRI
Fundamentos de bases de datos
AM EXAMEN 98-364
www.pdftron.com
RO
IBE
ETC
CA
ÉRI
Créditos
EDITOR Bryan Gambrel
DIRECTOR DE VENTAS Mitchell Beaton
DIRECTOR DE MERCADOTECNIA Chris Ruel
GERENTE DE RELACIONES ESTRATÉGICAS DE MICROSOFT Merrick Van Dongen de Microsoft Learning
ASISTENTE EDITORIAL Jennifer Lartz
GERENTE DE PRODUCCIÓN Micheline Frederick
EDITOR PRINCIPAL DE PRODUCCIÓN
DIRECTOR CREATIVO
DISEÑADOR DE PORTADA
TECNOLOGÍA Y MEDIOS DE COMUNICACIÓN
AM Kerry Weinstein
Harry Nolan
Jim O’Shea
Tom Kulesa/Wendy Ashenberg
www.pdftron.com
Este libro fue escrito en Garamond por Aptara, Inc. e impreso y encuadernado por Bind Rite Graphics. La portada fue impresa
por Phoenix Color.
RO
Copyright © 2011 por John Wiley & Sons, Inc. Todos los derechos reservados. Queda prohibida la reproducción de esta
publicación, el almacenamiento en un sistema de recuperación o su transmisión en alguna forma o medio, ya sea electrónico,
mecánico, por fotocopia, grabación, digitalización o de otra manera, excepto de lo que permite la Sección 107 o 108 de la Ley
de Derechos de autor de los Estados Unidos de 1978, sin el permiso escrito de la Editorial o sin la autorización a través del pago
correspondiente de los derechos de la copia a Copyright Clearance Center, Inc. 222 Rosewood Drive, Danvers, MA 01923,
(978) 750-8400, fax (978) 646-8600. Las solicitudes para obtener el permiso de la Editorial deben enviarse a Permissions
Department, John Wiley & Sons, Inc., 111 River Street, Hoboken, NJ 07030-5774, (201) 748-6011, fax (201) 748-6008.
IBE
Para ordenar libros o para obtener servicio al cliente, llame al 1-800-CALL WILEY (225-5945).
Microsoft, ActiveX, Excel, InfoPath, Microsoft Press, MSDN, OneNote, Outlook, PivotChart, PivoTable, PowerPoint,
SharePoint, SQL Server, Visio, VisualBasic, Visual C#, Visual Studio, Windows, Windows 7, Windows Mobile, Windows
Server y Windows Vista son marcas registradas o comerciales que pertenecen a Microsoft Corporation en los Estados Unidos y/u
otros países. Otros nombres de productos o compañías que aquí se mencionan pueden ser marcas registradas que pertenecen a
sus respectivos propietarios.
Las compañías, organizaciones, productos, nombres de dominios, direcciones de correo electrónico, logotipos, personas, lugares
y acontecimientos utilizados en los ejemplos son ficticios. No se pretende indicar ni debe deducirse ninguna asociación con
empresas, organizaciones, productos, nombres de dominios, direcciones de correo electrónico, logotipos, personas, lugares o
ETC
acontecimientos. El libro muestra los puntos de vista y las opiniones del autor. El contenido de la información de este libro se
proporciona sin ninguna garantía expresa, legal o implícita. Ninguno de los autores, ni John Wiley & Sons, Inc., ni Microsoft
Corporation o sus revendedores o distribuidores serán legalmente responsables de cualquier daño que se cause o pueda causar de
manera directa o indirecta por el uso de este libro.
Prólogo del Editor
CA
La visión de Wiley para la serie de Microsoft Official Academic Course es proporcionar a los alumnos y docentes las habilidades
y conocimientos que necesitan para utilizar la tecnología de Microsoft de manera eficaz en todos los aspectos de su vida personal
y profesional. La enseñanza de calidad es necesaria para ayudar a docentes y alumnos a obtener lo mejor de las herramientas de
software de Microsoft y para ser más productivos. Por lo tanto, nuestra misión es hacer que nuestros programas de enseñanza sean
ÉRI
confiables compañeros educativos para toda la vida.
Para lograr esta misión, Wiley y Microsoft se han asociado para desarrollar programas educativos de la más alta calidad orientados
a trabajadores informáticos, profesionales en las tecnologías de la información y desarrolladores. Los materiales creados por esta
asociación llevarán el nombre de “Microsoft Official Academic Course” y garantiza a docentes y alumnos que el contenido de
estos libros de texto se encuentra avalado completamente por Microsoft y que en sus productos se proporciona información y
enseñanza de la más alta calidad. Los libros de texto de Microsoft Official Academic Course son “Oficiales” en más de un sentido,
ya que son cursos autorizados de manera oficial por miembros de la Academia IT de Microsoft.
AM
La serie de Microsoft Official Academic Course se enfoca en el desarrollo de la fuerza laboral. Estos programas van dirigidos
a aquellos alumnos que buscan ser parte de la fuerza laboral, cambiar de trabajo o cursar una carrera como trabajadores de
informática, profesionales en las tecnologías de la información y desarrolladores. Los programas de Microsoft Official Academic
www.pdftron.com
Course se ajustan a sus necesidades al hacer énfasis en situaciones auténticas de trabajo e implementando diversos proyectos,
ejercicios, casos y evaluaciones.
Microsoft Official Academic Course se encuentra asociado a la investigación exhaustiva de Microsoft y al análisis de tareas de
RO
trabajo, la misma investigación y análisis que se utilizó para crear los exámenes de Microsoft Technology Associate (MTA) y
Microsoft Certified Information Technology Professional (MCITP). Los libros de texto se enfocan en habilidades reales para
trabajos reales. A medida que los alumnos trabajan en los proyectos y en los ejercicios de los libros de texto, mejoran su nivel de
conocimiento y su habilidad para aplicar la tecnología más reciente de Microsoft a las tareas de cada día. Estos alumnos también
obtienen experiencia que pueden incluir en su currículum lo cual les puede ayudar a encontrar un trabajo, mantener el actual o
complementar su educación.
Actualmente el concepto de formación continua es una gran necesidad. Los roles de trabajo e incluso todas las categorías de
IBE
trabajo cambian continuamente y por ello ninguna persona puede ser competente o productiva sin actualizar continuamente sus
habilidades y capacidades. Microsoft Official Academic Course ofrece y se enfoca en el examen de preparación para la certificación
de Microsoft por lo cual proporciona medios para que las personas adquieran y actualicen de manera eficaz sus habilidades y
conocimientos. Wiley apoya a los alumnos en este esfuerzo a través del desarrollo y distribución de estos cursos como editor
académico oficial de Microsoft.
Actualmente las publicaciones educativas requieren de atención para proporcionar material impreso y contenido electrónico de
buena calidad. Al integrar los productos de Microsoft Official Academic Course, WileyPLUS y las certificaciones de Microsoft,
estamos mejor capacitados para ofrecer soluciones de aprendizaje eficaces para alumnos y docentes.
ETC
Bonnie Lieberman
Director general y Vicepresidente
Visite la página www.wiley.com/college/microsoft o llame al número gratuito de MOAC: 1+ (888) 764-7001 (Únicamente
Estados Unidos y Canadá)
Prefacio
CA
Bienvenido al programa Microsoft Official Academic Course (MOAC) para el curso de Fundamentos
de Bases de Datos MTA. MOAC representa la colaboración entre Microsoft Learning y la compañía
publicitaria John Wiley & Sons, Inc. Microsoft y Wiley se asociaron para crear una serie de libros
de texto que contienen soluciones de aprendizaje innovadoras para que docentes y alumnos
ÉRI
adquieran experiencias de aprendizaje superiores. Estos libros de texto maximizan la transferencia
de habilidades en poco tiempo. Los alumnos se ven desafiados a lograr maximizar su potencial al
utilizar sus nuevas habilidades técnicas como miembros altamente productivos de la fuerza laboral.
Debido a que esta base de conocimientos proviene directamente de Microsoft y el creador de los
exámenes de Microsoft Technology Associate, Microsoft Certified IT Professional y Microsoft
Certified Professional (www.microsoft.com/learning/mcp/mcitp) le garantizan que recibirá la
cobertura de los temas que son más relevantes para el éxito personal y profesional de los alumnos. La
AM
participación directa de Microsoft no únicamente garantiza que el contenido de los libros de texto
MOAC es preciso y actual, sino que también significa que los alumnos recibirán la mejor enseñanza
posible para lograr que tengan éxito en los exámenes de certificación y en su trabajo.
www.pdftron.com
El Programa de Microsoft Official Academic Course
RO
IBE
ETC
Prefacio V
La serie de Microsoft Official Academic Course es un programa completo para docentes e instituciones
que desean preparar e impartir cursos sobre las tecnologías del software de Microsoft. Con MOAC,
reconocemos que, debido a la rápida evolución de la tecnología y al plan de estudios desarrollado
por Microsoft, existen necesidades actuales que van más allá de las herramientas de enseñanza que
CA
se utilizan en el salón de clases y por ello, el docente debe estar preparado para saber cómo impartir
el curso. El programa MOAC intenta proporcionar soluciones para todas esas necesidades de manera
sistemática y garantizar una experiencia del curso exitosa y gratificante tanto para el docente como
para el alumno; también ofrece una capacitación técnica sobre el plan de estudios para que el docente
esté listo para utilizar los nuevos productos de software. El software lo pueden utilizar los alumnos
en sus hogares para adquirir habilidades, evaluarlas y validar su desarrollo, asimismo, el software
ÉRI
cuenta con una diversidad de herramientas para aplicarlas en la enseñanza en el salón de clases y
laboratorio de computación. Todas las herramientas son importantes para la impartición de un curso
interesante sobre el software de Microsoft y todas las proporciona el programa MOAC. Se considera
que el siguiente modelo es un indicador que garantiza que nosotros lo avalamos completamente en
su propósito de impartir un gran curso. A medida que evalúe las opciones de materiales educativos,
deseará utilizar un modelo de comparación para todos los productos que se encuentran disponibles.
AM
www.pdftron.com
RO
IBE
ETC
Tour ilustrado del libro
CA
Características pedagógicas
Los libros de texto MOAC para los Fundamentos de Bases de Datos se diseñaron para cubrir todos
ÉRI
los objetivos de aprendizaje del examen MTA 98-364, en el cual se hace referencia a su “dominio
de objetivos”. Los objetivos del examen de Microsoft Certified Information Technology Professional
(MCITP) se encuentran destacados en los libros de texto. Muchas de las características pedagógicas
se han desarrollado especialmente para los programas de Microsoft Official Academic Course.
AM
contribuyen al plan pedagógico del programa Microsoft Official Academic Course. A continuación
se encuentra una lista de las características clave en cada lección que fueron diseñadas para preparar
a los alumnos a que tengan éxito a medida que continúan con su educación en las tecnologías de la
información, en los exámenes de certificación y en su trabajo:
www.pdftron.com
• Cada lección inicia con una Matriz de habilidades de la lección (Dominio de objetivos). Más
que una lista de objetivos de aprendizaje, la Matriz del dominio correlaciona cada habilidad
del software que se explicó en la lección con el dominio de objetivos específicos del examen.
RO
• Las clases concisas y detalladas enseñan a los alumnos nuevas características y les da la
oportunidad de practicar. Existen diversos pasos detallados que ayudan a los alumnos a
aprender más habilidades de software. Los pasos también muestran los resultados y las
imágenes en pantalla para saber lo que los alumnos deberán ver en sus computadoras.
• Ilustraciones: Las imágenes en pantalla proporcionan una retroalimentación visual a
medida que los alumnos trabajan en los ejercicios. Las imágenes refuerzan los conceptos
clave, proporcionan pistas visuales sobre los pasos y le permite a los alumnos revisar su
IBE
progreso.
• Términos clave: El vocabulario técnico importante se encuentra en una lista al inicio de
la lección. Cuando estos términos se utilizan posteriormente en la lección, aparecen con
formato en itálica y negrita y se les define. El Glosario contiene todos los términos clave así
como sus definiciones.
• Los puntos de uso interesante en los Asistentes de lectura se encuentran en todas las
lecciones y les indica a los alumnos por qué ese tema es relevante (En resumen), proporciona
pistas útiles (Tome nota) o muestra diversas alternativas para realizar una tarea (Otra
manera). Los Asistentes de lectura también proporcionan información relevante o una
ETC
4 Lección 1
CA
101 Jane Smith 101
102 Jim Tate 101
103 Ed Rosen 102
Tabla Hijo
NumSerial Tipo NumEmp
30032334 Computadora 100
4323452 Laptop 101
342342 Monitor 100
234322 Impresora 100
La tabla padre mantiene los datos del empleado. Cada fila o registro se refiere a la
información del usuario incluyendo el número de empleado del usuario (NumEmp).
ÉRI
La tabla hijo mantiene los datos del equipo de cómputo. La columna NumEmp enlaza
a cada registro a la tabla padre. Es importante notar que cada pieza de equipo debe
ser introducida separadamente. Ya que estamos utilizando una base de datos jerárquica,
podemos asignar múltiples dispositivos de cómputo a cada empleado.
; Listo para la Podría ya haber trabajado con productos de base de datos similares (tal como Access) y si
certificación es así, está familiarizado con las distintas tablas que constituyen muchos de los reportes
Alertas de objetivo de ¿Cómo son diferentes de salida. Utilizando la información proporcionada en la Tabla 1-1, al jefe de la oficina le
las bases de datos gustaría tener un registro de cuales empleados reciben qué tipo de equipo. Como creador
relacionales a las de la base de datos, necesita mirar ambas tablas para recuperar la información relevante
AM Básicamente, una base de datos está hecha de muchas tablas. Justo como un libro de
Excel puede estar hecho de varias hojas de cálculo – albergando miles de filas y columnas
de información. Esto es el porqué es más fácil trabajar con una base de datos cuando está
tratando de ir a través de varias hojas de cálculo para encontrar la información que necesita.
www.pdftron.com
RO
Comprender los conceptos básicos de bases de datos 21
Elección Múltiple
» Evaluación de Competencias
CA
Recién ha sido contratado como DBA (Administrador de base de datos) para una compañía
internacional que es una sociedad financiera para muchas otras compañías. Su primera
tarea es diseñar una nueva infraestructura de base de datos. Por lo tanto, se le ha dicho que
piense en sus actividades de las últimas semanas. Enliste al menos una base de datos que ha
utilizado directamente o indirectamente y describa como la base de datos probablemente
será presentada.
Se le ha dado una tarea de diseñar una base de datos relacional para soportar un negocio de
venta de autos. Necesita almacenar información de sus empleados, el inventario que posee
y las ventas hechas. Se debe notar que cada vendedor se le ha dado un porcentaje diferente
de comisión. ¿Qué tablas y columnas crearía y como enlazaría las tablas?
ÉRI
Recién se ha graduado de la escuela y fue contratado como un DBA junior. Una cosa que
ha aprendido en los últimos meses es que no tendrá todas las respuestas. Por lo tanto,
necesita aprender cuando y como obtener ayuda cuando sea necesario. SQL Server 2008
tiene un sistema intensivo de ayuda y ejemplos. Desde que es el nuevo DBA, le gustaría
visualizar la ayuda en la sentencia CREATE de forma que pueda crear una tabla. Por lo
tanto, ¿Cuáles son los pasos que utilizaría para encontrar esa información?
CA
Este libro utiliza fuentes, símbolos y convenciones de encabezados específicos para destacar la
información que es importante o para dirigir la atención hacia pasos determinados. Para más
información sobre las características en cada lección, diríjase a la sección Tour ilustrado del libro.
ÉRI
Convención Significado
º Tome Nota
AM MCTS en particular y, de ser necesario, da un repaso a la
sección de la lección en donde se cubrió el objetivo.
www.pdftron.com
se encuentran en el texto. TOME NOTA proporciona pistas
útiles relacionadas a tareas o temas en particular.
Una impresora compartida Los términos clave aparecen en formato itálica y negrita.
IBE
CA
Los programas de Microsoft Official Academic Course vienen acompañados de un conjunto de
recursos multimedia que incorporan los visuales del libro de texto para conformar un paquete
pedagógico cohesivo. Estos recursos proporcionan todos los materiales que el docente necesita para
implementarlos en el curso. Los recursos que se encuentran disponibles en línea para descargar son
ÉRI
los siguientes:
• La Guía del docente contiene Soluciones para todos los ejercicios del libro de texto así como
resumen de cada capítulo y notas para el lector. La Guía del docente y los Programas de
estudio para diversos términos se encuentran disponibles en el sitio de la compañía del libro
(www.wiley.com/college/microsoft).
• El Banco de pruebas contiene cientos de preguntas de opción múltiple, verdadero-falso,
respuestas cortas y formatos de ensayo y se encuentran disponibles para descargarlos del sitio
de la compañía del libro del docente (www.wiley.com/college/microsoft). Se proporcionan
AM
todas las respuestas de las preguntas.
• Presentaciones en PowerPoint e imágenes: Se encuentra disponible un conjunto de
presentaciones de PowerPoint en el sitio de la compañía del libro del docente (www.wiley.
www.pdftron.com
com/college/microsoft) que sirven para mejorar las presentaciones en el salón de clases.
Se ajustan a los temas que se cubren en el libro y a la Matriz de habilidades ya que estas
presentaciones se diseñaron para transmitir los conceptos clave que se mencionan en el
texto.
RO
Todas las imágenes del texto se encuentran en el sitio de la compañía del libro del docente (www.
wiley.com/college/microsoft). Puede incluirlas en las presentaciones de PowerPoint o crear acetatos
y documentos para distribuir.
Al utilizar estos visuales en la clase, puede ayudar a que los alumnos se enfoquen en los elementos
clave de las tecnologías que se cubren en el libro y les ayuda a entender cómo utilizarlos de manera
efectiva en el trabajo.
IBE
• Cuando se desea mejorar las experiencias del salón de clases, no existe una mejor fuente de
ideas y de inspiración que los compañeros de trabajo. La Red de Facultades Wiley conecta
a maestros que cuentan con tecnología, facilita el intercambio de las mejores prácticas y les
ayuda a mejorar su eficacia como docentes. Las actividades de la Red de Facultades incluyen
ETC
CA
Microsoft Developer Network Academic Alliance (MSDN AA) se diseñó para proporcionar a las
universidades la forma más fácil y económica de hacer disponibles las herramientas de desarrollo
de Microsoft, productos y tecnologías más recientes en los laboratorios, salones de clases y en
las PC de los alumnos. MSDN AA es un programa de membresía anual para los departamentos
que enseñan cursos de Ciencias, Tecnología, Ingeniería y Matemáticas (STEM). La membresía
proporciona una solución completa para mantener a los laboratorios académicos, facultades y
alumnos a la vanguardia de la tecnología.
ÉRI
El software que se encuentra disponible en el programa MSDN AA se proporciona sin costo
alguno a los departamentos usuarios a través de la asociación de publicación de Wiley y Microsoft.
Como un extra a esta oferta gratuita, se introducirá a la facultad a la Conexión de Facultades
de Microsoft y al Centro de Recursos Académicos. Se requiere de tiempo y preparación para
lograr que los alumnos se involucren mientras se les da un entendimiento básico de la teoría y
la Conexión de Facultades de Microsoft se diseñó para ayudar a los docentes de STEM con esta
preparación al proporcionarles artículos, planes de estudio y herramientas que pueden utilizar para
AM
involucrar a los alumnos y animarlos a utilizar la tecnología.
Para más detalles, contacte a su representante de Wiley.
Para obtener más información sobre el programa de la Asociación Académica MSDN, visite el
sitio:
www.pdftron.com
msdn.microsoft.com/academic/
Nota: Se puede descargar Microsoft Visual Studio 2008 de MSDN AA para utilizarlo con los
alumnos en este curso.
RO
Direcciones web y números telefónicos importantes
IBE
Para aprender más sobre cómo convertirse en un Profesional Certificado de Microsoft y revisar la
disponibilidad, visite el sitio www.microsoft.com/learning/mcp.
ETC
Programa de soporte para el alumno
CA
Sitio web de la compañía del libro (www.wiley.com/college/microsoft)
El sitio de la compañía del libro del alumno para la serie de MOAC incluye cualquier recurso,
ejercicio y vínculo web que se utilizará junto con este curso.
ÉRI
Ediciones digitales Wiley
Las ediciones digitales MOAC de Wiley son versiones electrónicas innovadoras de los libros de texto
impresos. En Estados Unidos, los alumnos compran la versión digital al 50% menos del precio del
texto impreso y obtiene el valor agregado de permanencia y portabilidad. Las ediciones digitales
Wiley proporcionan a los alumnos diversos beneficios adicionales que no se encuentran disponibles
AM
en otras soluciones de texto electrónico.
Las ediciones digitales Wiley NO son suscripciones; los alumnos descargan dicha edición a sus
computadoras. Los alumnos son propietarios del contenido que compran y lo pueden tener en su
www.pdftron.com
poder el tiempo que quieran. Después de que se descarga la edición digital Wiley al equipo, los
alumnos tienen acceso instantáneo a todo el contenido sin navegar en Internet. Los alumnos también
pueden imprimir cualquier sección que prefieran leer en papel. También pueden tener acceso a los
recursos que se encuentran en la edición digital Wiley. De subrayar su texto electrónico a tomar
RO
y compartir notas, los alumnos fácilmente personalizan sus ediciones digitales Wiley al leer o al
continuar en la clase.
IBE
ETC
Certificación Microsoft Technology Associate (MTA)
CA
Preparando a la fuerza laboral para la tecnología del mañana.
La tecnología juega un papel importante prácticamente en cada uno de los negocios alrededor del
ÉRI
mundo. Poseer el conocimiento básico de cómo funciona la tecnología y entender su impacto en los
entornos académicos y laborales de la actualidad es de fundamental importancia, sobre todo para los
alumnos que están interesados en explorar las profesiones relacionadas con la tecnología. Esta es la
razón por la cual Microsoft creó la certificación Microsoft Technology Associate (MTA) la cual es
una nueva credencial de entrada que valida el conocimiento tecnológico básico que deben poseer los
alumnos que quieren tener una carrera en la tecnología.
La certificación Microsoft Technology Associate (MTA) es el camino ideal y preferido para los
AM
programas de certificación de tecnología renovada del mundo de Microsoft, como lo son Microsoft
Certified Technology Specialist (MCTS) y Microsoft Certified IT Professional (MCITP). MTA se
encuentra posicionado para llegar a ser una de las credenciales principales para las personas que
buscan explorar y seguir una carrera en tecnología o para expandir cualquier otra posibilidad
www.pdftron.com
relacionada como lo son los negocios o cualquier otro campo en donde predomine la tecnología.
MTA proporciona un nuevo estándar para medir y validar el conocimiento tecnológico básico en el
salón de clases mientras mantiene intacto su presupuesto y los recursos de enseñanza. MTA ayuda a
las instituciones a que se destaquen como proveedores innovadores de credenciales en la industria de
ETC
alta demanda y se puede implementar con facilidad con un paquete sencillo, conveniente y costeable
de exámenes de certificación en tecnología de nivel introductorio. MTA permite a los alumnos
explorar rutas de formación profesional en la tecnología sin requerir de una gran inversión de tiempo
y recursos, y a su vez, proporciona una base profesional y la confianza para tener éxito en estudios
avanzados y en futuros escenarios profesionales.
Además de proporcionar a los alumnos una certificación de nivel introductorio a Microsoft, MTA se
diseñó para ser un escalón hacia otras certificaciones en tecnología de Microsoft más avanzadas, por
ejemplo la certificación de Microsoft Certified Technology Specialist (MCTS).
XIV
Implementar un nuevo programa de certificación en el salón de clases nunca antes había sido tan
fácil, sobre todo si se cuenta con la Licencia Campus de MTA. Basta con comprarla una sola vez
CA
por un periodo de un año para obtener 1,000 exámenes de la Licencia Campus de MTA y no habrá
necesidad de realizar otro presupuesto adecuado y volver a comprar vouchers para los exámenes. En
la actualidad, puede realizar el presupuesto a un bajo costo para todo el año para posteriormente
administrar los exámenes MTA con los alumnos y otras facultades en todo el campus cuando y donde
lo desee.
ÉRI
La Licencia Campus de MTA proporciona un paquete conveniente y costeable de certificaciones de
tecnología de nivel introductorio que se diseñó para facultar a docentes y motivar a los alumnos a
medida que construyen la base para sus carreras.
AM
www.pdftron.com
Examen de prueba sobre Fundamentos de Bases de Datos:
RO
Examen MTA 98-364
Al comprar este libro de texto MOAC MTA, los alumnos pueden realizar una copia del examen
de prueba GMetrix para el Examen MTA 98-364. Los exámenes de práctica de GMetrix son una
de las herramientas más efectivas para evaluar la preparación de cada persona para el examen de
certificación de MTA.
IBE
ETC
Revisores de los Fundamentos Tecnológicos de
MOAC MTA
CA
Agradecemos a todos los revisores que estudiaron detalladamente el documento y proporcionaron
retroalimentación valiosa en el servicio de calidad de los materiales educativos:
ÉRI
Yuke Wang, Universidad de Texas en Dallas.
Palaniappan Vairavan, Bellevue College
Harold “Buz” Lamson, Instituto Técnico ITT
Colin Archibald, Valencia Community College
Catherine Bradfield, Universidad en línea DeVry
Robert Nelson, Blinn College
Kalpana Viswanathan, Bellevue College
Bob Becker, Vatterott College
AM
Carol Torkko, Bellevue College
Bharat Kandel, Tecnológico Missouri
Linda Cohen, Forsyth Technical Community College
Candice Lambert, Centros Tecnológicos Metro
www.pdftron.com
Susan Mahon, Collin College
Mark Aruda, Hillsborough Community College
Claude Russo, Brevard Community College
David Koppy, Baker College
Sharon Moran, Hillsborough Community College
RO
Keith Hoell, Briarcliffe College and Queens College-CUNY
Mark Hufnagel, Distrito Escolar del Condado de Lee
Rachelle Hall, Glendale Community College
Scott Elliott, Christie Digital Systems, Inc.
Gralan Gilliam, Kaplan
Steve Strom, Butler Community College
John Crowley, Bucks County Community College
Margaret Leary, Northern Virginia Community College
IBE
CA
1. Comprender los conceptos básicos de bases de datos 1
2. Crear objetos de bases de datos 25
ÉRI
3. Manipulación de datos 53
4. Comprender el Almacenamiento de Datos 75
5. Administración de una Base de Datos 105
AM
www.pdftron.com
RO
IBE
ETC
Contenido
CA
Lección 1 Lección 2
Comprender los conceptos básicos de Crear objetos de bases de datos 25
bases de datos 1
ÉRI
Definición de tipos de datos 26
Comprender los Conceptos de Bases de Datos 2 Usar tipos de datos predefinidos 26
Comprender las bases de datos de tipo plano 3 Tipos de datos más utilizados 27
Comprender las bases de datos jerárquicas 3 Uso de tipos de datos numéricos exactos 29
Comprender las bases de datos relacionales 4 Uso de tipos de datos numéricos aproximados 30
Comprender los fundamentos de base de datos 5 Uso de tipos de datos de fecha y hora 30
Comparar hojas de cálculo con tablas de bases de Tipos de datos más utilizados 31
datos 5
Comprender los valores calculados 6
AM
Comprender conceptos de bases de datos relacionales 7
Introducir elementos de lenguaje 8
Comprender conversiones implícitas
Uso de cadenas de carácter regulares
32
www.pdftron.com
Creación y uso de tablas 34
Utilizar la interfaz del SQL Server Management Studio
(SSMS) 10 Creación de vistas 38
Comprender el lenguaje de manipulación de datos Creación de procedimientos almacenados 42
(DML) 14 Comprender las inyecciones SQL 44
RO
Comprender el lenguaje de definición de datos Usar el procedimiento seleccionado Select 46
(DDL) 14 Usar el procedimiento almacenado Insert 45
Utilizar sentencias DDL 15 Usar el procedimiento almacenado Update 45
USE 16 Usar el procedimiento almacenado Delete 45
CREATE 16 Prácticas recomendadas 46
GO 16 Resumen de Habilidades 47
IBE
CA
Servicios Esenciales 105
Uso de la sentencia DELETE 67
Truncar una tabla con TRUNCATE TABLE 68
Seguridad de bases de datos 106
Eliminar una tabla con DROP TABLE 68
Seguridad de nivel de servidor 107
Uso de la integridad referencial 68
Seguridad de Nivel de base de datos 108
Resumen de Habilidades 70
ÉRI
Seguridad de Windows 108
Evaluación de Conocimientos 71 Cuenta de servicio de SQL Server 108
Evaluación de aptitud 72 Autenticación de Windows 109
Evaluación de destreza 73 Agregar un nuevo Inicio de sesión de Windows 109
Remover un Inicio de sesión de Windows 112
Autenticación de SQL 113
Lección 4 Roles de nivel Servidor de base de datos 113
Comprender el Almacenamiento de
Roles fijos de servidor 113
Datos 75
www.pdftron.com
Primer Forma Normal (1NF) Eliminar Grupos Cuentas de inicio de sesión de Invitado 116
Repetidos 77 Seguridad de Objeto 117
Segunda Forma Normal (2NF) Eliminar los Datos Roles de nivel de base de datos 117
Redundantes 78
RO
Asignar roles de base de datos fijas con SQL Server
Tercera Forma Normal (3NF) Eliminar Columnas no Management Studio 117
Dependientes a Claves 78 Asignar roles de base de datos fijas con
Cómo Normalizar una base de datos a la Tercera Transact-SQL 118
Forma Normal 79 Roles de aplicación 118
Cuarta Forma Normal (4NF) Aislar relaciones Permisos de objetos 118
múltiplesi ndependientes 80
Conceder permisos de objeto con sentencias de
IBE
CA
Examen de Conocimientos 131
Evaluación de destreza 133
Evaluación de dominio 133
ÉRI
AM
www.pdftron.com
RO
IBE
ETC
CA
ÉRI
AM
www.pdftron.com
RO
IBE
ETC
Lección 1
CA
Matriz de Dominio de objetivos
ÉRI
objetivo del objetivo
Comprender los conceptos de bases de datos Comprender cómo la información 1.1
es almacenada en tablas.
Comprender las bases de datos relacionales Comprender los conceptos de 1.2
bases de datos relacionales.
Comprender el lenguaje de manipulación de datos Comprender el lenguaje de 1.3
manipulación de datos (DML).
Comprender el lenguaje de definición de datos (DDL) Comprender el lenguaje de 1.4
definición de datos (DDL).
Términos Clave AM
www.pdftron.com
• Limitaciones • Sistema de administración de base de • Consulta
• Base de datos (db) datos (DBMS) • Base de datos relacional
• Lenguaje de Definición de Datos • Servidor de base de datos • SQL Server Management Studio
RO
(DDL) • Base de datos plana (SSMS)
• Lenguaje de manipulación de datos • Base de datos jerárquica • Tabla
(DML) • Índice • Transact-SQL
IBE
CA
Con la tecnología actual, cualquier computadora en la red puede proporcionar o solicitar servicios dependiendo de
cómo se configura la red. Un servidor es una computadora que está destinada a ser un proveedor de servicio dedicado
y un cliente es una computadora que solicita servicios. Una red que está constituida por servidores dedicados y
clientes se conoce como una red cliente/servidor. Una red basada en servidor es la mejor para compartir recursos y
datos, mientras proporciona seguridad de red centralizada para tales recursos y datos. Las redes con Windows Server
2003 y Windows Server 2008 por lo general son redes cliente/servidor.
ÉRI
Una base de datos (bd) es una colección organizada de datos, típicamente almacenada
en un formato electrónico. Le permite introducir, organizar y recuperar la información
rápidamente. Las bases de datos tradicionales están organizadas por campos, registros y
filas.
Microsoft SQL server utiliza tres tipos de archivos para almacenar la base de datos. Archivos
de datos principales, con una extensión .mdf, son los primeros archivos creados en una base
AM
de datos y puede contener objetos definidos por el usuario, tales como tablas y vistas, así
como también las tablas del sistema que SQL Server requiere para mantener el registro de
la base de datos. Si la base de datos se hace muy grande y se queda sin espacio en su primer
disco duro, puede crear archivos de datos secundarios, con una extensión .ndf, en discos
www.pdftron.com
duros físicos separados para dar más espacio a su base de datos. El tercer tipo de archivo es
el archivo de registro de transacciones. Los archivos de registro de transacciones utilizan
una extensión .ldf y no contienen ningún objeto tal como tablas o vistas.
RO
Un ejemplo de base de datos es el directorio telefónico. Si tiene un directorio telefónico
almacenado en disco, el directorio telefónico sería el archivo. Dentro del directorio
telefónico, tiene una lista de registros. Cada registro tiene un nombre, dirección y número
telefónico. Un campo es una sola pieza de información. Los ejemplos incluyen nombre,
número telefónico y dirección.
Ya que una base de datos puede almacenar miles de registros, sería una faena si tuviera
que abrir la tabla e ir a través de cada registro, uno a la vez, hasta que encuentre el registro
IBE
que necesita. Por supuesto, sería aún más difícil si tiene que recuperar registros múltiples.
Para recuperar datos dentro de una base de datos, ejecutaría una consulta, lo cual es una
investigación en la base de datos con el fin de obtener información desde ahí. En otras
palabras, una consulta es utilizada para pedir información desde la base de datos y los datos
son regresados.
Si la base de datos contiene miles de registros con muchos campos por registro, podría
tomar tiempo a una computadora rápida el buscar a través de una tabla para recuperar la
información. Un índice de base de datos es una estructura de datos que mejora la velocidad
ETC
de las operaciones de recuperación de datos en una tabla de base de datos. Las desventajas
de utilizar un índice es que los índices necesitan ser creados y actualizados, lo cual toma
procesamiento y toma espacio en disco.
La mayoría de los usuarios no acceden a las bases de datos directamente, en su lugar, los
usuarios utilizan un sistema de administración de base de datos (DBMS) para acceder a
la base de datos indirectamente. DBMS es una colección de programas que le permiten
introducir, organizar y seleccionar datos en una base de datos. Por ejemplo, un agente de
viajes puede ejecutar un programa de sistema de ticket en su computadora de escritorio la
cual a su vez accede a la base de datos.
Comprender los conceptos básicos de bases de datos 3
Hay tres tipos de bases de datos que debería conocer con el fin de hacer la elección apropiada
cuando desarrolle sus propias tablas de base de datos. Cada tipo de base de datos tiene sus
propias características de diseño importantes:
• Bases de datos plana
CA
• Bases de datos jerárquicas
• Bases de datos relacionales
ÉRI
que su propósito es mantener un registro por línea, haciendo el desempeño de acceso y consultas muy rápidas. Un
ejemplo de este tipo de base de datos seria lo que encuentra en un archivo .txt o .ini.
Las bases de datos planas son consideradas planas debido a que son tablas de dos
dimensiones consistiendo de renglones y columnas. Cada columna podría ser definida
como un campo (tal como el apellido de una persona o el número de ID de un producto) y
; Listo para la cada renglón sería un registro (tal como la información de una persona o la información de
certificación un producto. El siguiente es un ejemplo de un archivo de base de datos plana simple donde
¿Cómo están
organizadas las tablas
dentro de una base de
datos? —1.1 id
AM
una compañía de suministros ha configurado a cada cliente con lo que el cliente ordena
consistentemente para una fácil recuperación y propósitos de reordenamiento:
cliente orden
www.pdftron.com
1 allen cuaderno
2 smith papel
3 dennis plumas
4 alex cartuchos de tinta
RO
5 sloan impresora
Un ejemplo de una base de datos jerárquica padre-hijo es mostrada en la Tabla 1-1. Por lo
que podría tener un departamento de cuatro empleados para los que la compañía acaba de
comprar equipo nuevo. Una tabla podría mantener la información del empleado mientras
otra tabla podría mantener los datos del equipo recién comprado. La tabla en la izquierda
es definida como “padre” y la tabla de la derecha es definida como el “hijo”. Si tiene varias
tablas que están enlazadas, las tablas de la base de datos empezaran a formar la estructura
de árbol donde tiene un padre, que tiene múltiples tablas hijo y cada uno de esas tablas
hijo podría tener sus propias tablas hijo.
ETC
4 Lección 1
CA
101 Jane Smith 101
102 Jim Tate 101
103 Ed Rosen 102
Tabla Hijo
ÉRI
NumSerial Tipo NumEmp
30032334 Computadora 100
4323452 Laptop 101
342342 Monitor 100
234322 Impresora 100
La tabla padre mantiene los datos del empleado. Cada fila o registro se refiere a la
AM
información del usuario incluyendo el número de empleado del usuario (NumEmp).
La tabla hijo mantiene los datos del equipo de cómputo. La columna NumEmp enlaza
a cada registro a la tabla padre. Es importante notar que cada pieza de equipo debe
ser introducida separadamente. Ya que estamos utilizando una base de datos jerárquica,
www.pdftron.com
podemos asignar múltiples dispositivos de cómputo a cada empleado.
; Listo para la Podría ya haber trabajado con productos de base de datos similares (tal como Access) y si
certificación es así, está familiarizado con las distintas tablas que constituyen muchos de los reportes
IBE
¿Cuál es la diferencia de salida. Utilizando la información proporcionada en la Tabla 1-1, al jefe de la oficina le
entre las bases de gustaría tener un registro de cuáles empleados reciben qué tipo de equipo. Como creador
datos relacionales a de la base de datos, necesita mirar ambas tablas para recuperar la información relevante
las bases de datos de cada tabla con el fin de compilar el reporte para el jefe de la oficina. Primero debe
planas y bases de encontrar la clave que se encuentra en ambas tablas. Utilizando esta clave, puede filtrar la
datos jerárquicas? información redundante o irrelevante almacenada.
—1.2
Básicamente, una base de datos está hecha de muchas tablas. Justo como un libro de
Excel puede estar hecho de varias hojas de cálculo – albergando miles de filas y columnas
de información. Esto es el porqué es más fácil trabajar con una base de datos cuando está
ETC
tratando de ir a través de varias hojas de cálculo para encontrar la información que necesita.
Tabla 1-2
Diseño de una base
de datos relacional Tabla Padre 1 Tabla Padre 2
mostrando dos tablas
CA
padre y una hijo. NumEmp Nombre Apellido Modelo Costo Color
100 Paul Baker 2200MX $75000 Red
101 Jane Smith 42CRS $55000 Gray
102 Jim Tate 4232DR $60000 Red
103 Ed Rosen 2201MX $80000 Blue
Tabla Hijo
ÉRI
Nombre Apellido IDNum Modelo
Pete Wilson 1001 2200MX
Jim Cline 1002 42CRS
Omar Salize 1003 4232DR
Louise Peterson 1004 2201MX
AM
f Comprender los fundamentos de base de datos
Una base de datos simple con una sola tabla es similar a una hoja de cálculo que contiene filas y columnas. Sin
embargo, a diferencia de una hoja de cálculo, una base de datos le permite almacenar miles de filas y datos y después
www.pdftron.com
acceder a esa información más rápidamente de lo que lo puede hacer leyendo una hoja de cálculo.
Una hoja de cálculo a menudo es el punto de inicio para crear una base de datos. Utilizando
RO
una hoja de cálculo, es fácil crear encabezados e iniciar a introducir información. Es fácil
añadir, eliminar, reordenar y formatear encabezados. También puede fácilmente ordenar la
información en uno o más encabezados. Es fácil insertar, eliminar y filtrar renglones que
coincidan con uno o más patrones bajo un encabezado.
Muchas bases de datos acumularán miles de filas de datos. Basado en sus necesidades,
podría necesitar crear tablas adicionales. En una hoja de cálculo, esto sería igual que añadir
hojas de cálculo adicionales, lo cual puede ser utilizado para categorizar la información por
IBE
Las hojas de cálculo están diseñadas y limitadas a miles de filas por hoja de cálculo.
Cuando una hoja de cálculo es abierta, el archivo entero es cargado en la memoria de
la computadora. Si se almacena suficiente información, el archivo eventualmente podría
fallar en el momento de cargarlo dado la memoria insuficiente. De repente, los beneficios
de utilizar una hoja de cálculo empiezan a declinar. Esto es cuando el cambiar a una base
de datos tiene más sentido.
Una hoja de cálculo puede contener varias hojas electrónicas que almacenan lógicamente
6 Lección 1
CA
Hoja de Cálculo
con Múltiples Hojas
Electrónicas
ÉRI
AM
www.pdftron.com
RO
Cuando una columna de una hoja de cálculo contiene datos que podrían estar vacíos, un
vacío es almacenado como un NULL en la base de datos. Una tabla de base de datos puede
estar diseñada para permitir valores NULL o para no permitirlos dentro de una columna.
IBE
En una hoja de cálculo, puede utilizar fórmulas para calcular valores desde otra información
en la misma fila o columna. Un valor calculado es esencialmente un valor que resulta de
alguna ordenación, cálculo – o fórmula – desempeñado en un valor de entrada específico.
Las bases de datos pueden ser utilizadas para hacer la misma cosa dentro de la base de datos
o dentro de reportes generados desde la base de datos o dentro de la aplicación que está
ETC
Comprender los conceptos básicos de bases de datos 7
CA
ÉRI
AM
www.pdftron.com
RO
f Comprender conceptos de bases de datos relacionales
Antes de que diseñe su primera base de datos relacional, debe comprender los elementos que forman una base de
datos y la terminología detrás de la base de datos.
Las bases de datos a menudo son encontradas en servidores de bases de datos de forma
que pueden ser accedidos por múltiples usuarios y para proporcionar un nivel alto de
IBE
desempeño. Un servidor de base de datos popular ejecuta Microsoft SQL Server. Los
servidores de bases de datos realmente no actúan para albergar programas gráficos,
aplicaciones de procesamiento de palabras o cualquier otro tipo de aplicaciones. Estos
servidores son optimizados por completo para servir solo a los propósitos de la propia base
de datos, regularmente utilizando hardware avanzado para permitir las necesidades de
º Tome Nota alto procesamiento del servidor de base de datos. Es importante notar que estos servidores
no actúan como una estación de trabajo, generalmente están montados en racks ubicados
Para comprender los en un centro de datos central y son accedidos sólo a través de un sistema de escritorio del
modelos de bases de
administrador.
datos relacionales,
ETC
Figura 1-3
Tabla básica de base de
datos
CA
ÉRI
AM
www.pdftron.com Un modelo de base de datos relacional organiza esa información mostrada en la Figura 1-3
RO
en una tabla de base de datos la cual contiene filas y columnas y cada columna corresponde
a un atributo o un tipo de información que desea almacenar. Cada fila corresponde a un
registro o una instancia de cada columna.
Los objetos de bases de datos son divididos jerárquicamente en dos amplias categorías:
almacenamiento y programación. Una tabla está estructurada por columnas y filas; cada
una de las columnas entonces almacena datos clasificados como tipos de datos. La Figura
1-4 muestra un ejemplo de atributos de columna para una base de datos. Existe una
variedad de tipos de datos para elegir ya sea a través de tipos integrados o creando sus
propios tipos de datos definidos por el usuario. Los tipos de datos serán discutidos en la
Lección 2.
ETC
Comprender los conceptos básicos de bases de datos 9
Figura 1-4
Estructura de base de
datos mostrando atributos
de columna
CA
º Tome Nota
ÉRI
Las bases de datos
avanzadas, tales
como SQL Server,
analizan consultas
periódicamente y
crea índices conforme
es necesario
para optimizar el
desempeño. Puede
encontrar evidencia
de esto buscando el
índice en la base de
datos.
AM
www.pdftron.com
RO
Las Restricciones son limitaciones o reglas ubicadas en un campo o columna para
garantizar que los datos considerados inválidos no sean introducidos. Por ejemplo, si
desea que alguien introduzca la edad de una persona, el tipo de datos sólo pueden ser
números positivos. Una persona no puede tener una edad negativa. Hay una variedad de
restricciones las cuales están disponibles con SQL Server 2008, incluyendo las siguientes:
• Una restricción única permite al administrador de la base de datos identificar
específicamente cuales columnas no deberían contener valores duplicados.
IBE
Figura 1-5
Una restricción de Base
de datos
CA
ÉRI
º Tome Nota
Una clave externa
también puede ser
conocida como auto
referencia AM
www.pdftron.com
RO
Las columnas marcadas como clave externa no contienen valores nulos (null). Este no es un
estándar deseado en la práctica, debido a que no se pueden verificar las restricciones si una
clave externa consiste de dos o más columnas y contiene valores nulos (null). Esto significa
que no se puede garantizar que la integridad de sus datos esté libre de errores.
Es posible para una restricción de clave externa el hacer referencia a columnas en la misma
tabla, también conocido como auto referencia. Cuando se utiliza la auto referencia para
consultar una tabla (query), estos arreglos son ahora referencias como un self-join. Como
IBE
ejemplo de una tabla de auto referencia, tal vez desee crear una tabla de Generaciones que
contiene los nombres de personas utilizando columnas llamadas PersonID, PersonName
y MotherID. La madre también es una persona almacenada en la tabla Generaciones, de
manera que puede crear una relación de clave externa desde el MotherID (la columna de
clave externa) referenciando PersonID (la columna de la clave principal).
Figura 1-6
SQL Server Management
Studio
CA
ÉRI
AM
www.pdftron.com
RO
SSMS también incluye el Query Analyzer (Vea la Figura 1-7), el cual proporciona una
interfaz basada en GUI para escribir y ejecutar consultas (queries). El Query Analyzer
soporta los siguientes XQuery, sqlcmd scripts y Transact-SQL,
• XQuery: Un lenguaje de consulta y programación funcional que está diseñado
para consultar colecciones de datos XML.
• sqlcmd scripts: SQLCMD es una aplicación de línea de comando que viene con
Microsoft SQL Server, y expone las características de administración de SQL Server.
IBE
Permite que las consultas de SQL sean escritas y ejecutadas desde el símbolo del
sistema. También puede actuar como un lenguaje de scripting para crear y ejecutar
un conjunto de sentencias SQL como un script. Tales scripts son almacenados como
un archivo.sql y son utilizados para la administración de bases de datos o para crear
el esquema de base de datos durante el desarrollo de una base de datos.
• Transact-SQL: Es el medio principal de programación y administración de SQL
Server. Expone palabras clave de forma que puede crear y administrar bases de
datos y sus componentes y para monitorear y administrar el propio servidor.
Cuando utiliza el SSMS para desempeñar una acción o tarea, que esté ejecutando
comandos de Transact-SQL.
ETC
12 Lección 1
Figura 1-7
Query Analyzer
CA
ÉRI
AM
www.pdftron.com
Debe tener SQL Server 2008 instalado en su sistema antes de moverse a la siguiente
sección.
RO
Æ Cargar la Interfaz SSMS
Solución de Problemas
Su computadora podría no tener la interfaz del SQL Server Management Studio instalada
como parte del programa SQL Server 2008. Si no puede encontrar la herramienta Management
Studio cuando la busca bajo los archivos de programa, podría tener que agregar esto como
ETC
Tome Nota
También puede instalar el SQL Server Management Studio en cualquier sistema operativo de
escritorio de Windows de forma que puede conectarse remotamente y administrar un SQL
server.
Comprender los conceptos básicos de bases de datos 13
PAUSA. DEJE el SQL Server Management Studio abierto para el recordatorio del capítulo.
El SQL Server Management Studio puede ser utilizado para desempeñar la mayoría de las
actividades que requiere hacer y puede ser considerado como una herramienta de “one-
CA
stop”.
PREPÁRESE. Antes que pueda iniciar a administrar las bases de datos, tendrá que crearlas.
ÉRI
1. Abra SQL Server Management Studio. Para hacer esto, haga clic en Inicio después en
Todos los programas luego en Microsoft SQL Server 2008 y finalmente en SQL Server
Management Studio.
2. Asegúrese que el Motor de Base de Datos esta seleccionado y haga clic en el botón
Conectar.
3. Expanda las bases de datos haciendo clic en el signo de suma (+) al lado de las bases de
datos.
AM
4. Haga clic derecho en las bases de datos y seleccione Nueva Base de Datos.
5. En el nombre de la base de datos, teclee el nombre de la base de datos que desea crear y
haga clic en el botón Aceptar.
www.pdftron.com
Æ Elimine una base de datos con la Interfaz del SSMS
RO
PREPÁRESE. De vez en cuando, desea eliminar bases de datos que no están en uso.
1. Abra el SQL Server Management Studio. Para hacer eso, haga clic en Inicio después
en Todos los Programas, posteriormente en Microsoft SQL Server 2008 y al final en SQL
Server Management Studio.
2. Asegúrese que el Motor de Bases de Datos esté seleccionado y haga clic en el botón
Conectar.
IBE
3. Expanda las bases de datos haciendo clic en el signo de suma (+) al lado de las bases de
datos.
4. Haga clic derecho en la base de datos que desea eliminar y seleccione Eliminar.
5. Seleccione Cerrar Conexiones Existentes y haga clic en el botón Aceptar.
Por último, SQL Server tiene un área de ayuda intensiva. Además, cuando instala el
SQL server, también tiene la opción de instalar los Libros en línea y los Tutoriales del
Servidor. Por lo tanto, si desea encontrar información acerca de una opción o comando,
ETC
debe comprobar la Ayuda y los Libros en línea. Por supuesto, si aún no puede encontrar
lo que está buscando, no tenga miedo de buscar en internet.
14 Lección 1
CA
Como parte de la funcionalidad de crear bases de datos, es importante comprender elementos del lenguaje pueden
hacerse dentro de su estructura de base de datos.
; Listo para la Lenguaje de Manipulación de Datos (DML) es el elemento de lenguaje el cual le permite
certificación utilizar las sentencias core INSERT, UPDATE, DELETE, y MERGE para manipular
ÉRI
¿Cuáles comandos datos en cualquier tabla de SQL Server. Las sentencias core incluyen:
populares utilizados
• SELECT: Recupera filas desde la base de datos y permite la selección de una o
con SQL son comandos
varias filas o columnas desde una o varias tablas en SQL Server.
DML? — 1.3
• INSERT: Agrega una o más filas nuevas a una tabla o una vista en SQL Server.
• UPDATE: Cambia los datos existentes en una o más columnas en una tabla o
vista.
• DELETE: Elimina filas de una tabla o vista.
AM
• MERGE: Desempeña operaciones de insert, update o delete en una tabla objetivo,
basado en los resultados de un join (unión) con una tabla de origen.
Cuando utiliza sentencias DML tales como INSERT, UPDATE, DELETE o MERGE
www.pdftron.com
necesita considerar que son ejecutados como un todo en general, ya sea exitoso o fallido.
Lo cual significa, por ejemplo, si fuera a insertar 10,000 registros en una tabla, pero
se viola una clave principal o restricción única, todas las 10,000 filas de registros se
devolverían inmediatamente y ningún registro seria insertado en la tabla. Similarmente,
si una declaración DELETE falla basado en la violación de una restricción de clave externa
RO
(aunque sea solo en una fila), nada sería eliminado. Debe consultar la tabla para verificar
que las restricciones de clave son cumplidas y que su sintaxis es correcta. La siguiente
sección muestra la sintaxis correcta para el trabajo con restricciones.
È EN RESUMEN
Las sentencias del Lenguaje de definición de datos (DDL) forman parte de la porción de Transact-SQL del SQL Server
y puede ser utilizado para crear objetos de bases de datos tales como tablas y vistas.
crear estas sentencias fundamentales de DDL será a través de la interfaz de usuario de SQL
populares de SQL son Server Management Studio como se muestra en la Figura 1-8.
comandos de DDL?
—1.4
Comprender los conceptos básicos de bases de datos 15
Figura 1-8
Interfaz de usuario del
SQL Server Management
Studio
CA
ÉRI
AM
www.pdftron.com
• SELECT: Recupera filas desde la base de datos y permite la selección de una o
varias filas o columnas desde una o varias tablas en SQL Server.
RO
• INSERT: Agrega una o más filas nuevas a una tabla o una vista en SQL Server.
• UPDATE: Cambia los datos existentes en una o más columnas en una tabla o
vista.
• DELETE: Elimina filas de una tabla o vista.
• MERGE: Desempeña operaciones de insert, update o delete en una tabla objetivo,
basado en los resultados de un join (unión) con una tabla de origen.
IBE
La interfaz de usuario del SQL Server Management Studio le permite visualizar el diseño
de sus sentencias de DDL. Una tarea de sentencias de script DDL puede ser completado
siempre a través de la interfaz de usuario del SQL Server Management Studio pero no todas
las opciones que desearía utilizar con el script DDL pueden ser llevadas a cabo a través de
la interfaz de usuario. Debe, por lo tanto, familiarizarse con las sentencias DDL de USE,
CREATE, ALTER, y DROP en los objetos para crear y administrar tablas, tipos de datos
definidos por el usuario, vistas, triggers, funciones y procedimientos almacenados.
ETC
Mientras más sentencias DDL puedan ser ejecutadas utilizando la interfaz gráfica de SSMS,
aun así tiene más poder, flexibilidad y control cuando utiliza sentencias DDL. También
puede utilizar sentencias DDL para hacer tareas o actividades de secuencias de comandos,
las cuales pueden ser programadas o ejecutadas conforme sea necesario.
• USE: Cambia el contexto de base de datos.
• CREATE: Crea un objeto de base de datos de SQL Server (tabla, vista o
procedimiento almacenado)
• ALTER: Cambia un objeto existente
16 Lección 1
CA
cambiar el contexto de
la base de datos y cuál
comando utilizaría para USE
crear una tabla? -1.4
Un comando de One Transact-SQL que vale la pena mencionar es el comando USE. El
comando USE cambia el contexto de base de datos a la base de datos especificada. En otras
palabras, cuando realiza comandos en una base de datos particular, lo más probable es
ÉRI
que utilice el comando USE para seleccionar la base de datos primero. Por ejemplo, para
seleccionar el TESTDB, ejecutaría el siguiente comando:
USE TESTDB
CREATE
La sentencia CREATE le permite crear una variedad de objetos de base de datos, incluyendo
AM
tablas, vistas y procedimientos almacenados. En el siguiente ejemplo, aprenderá a crear una
nueva tabla llamada Shirt y una nueva vista llamada Size. El siguiente ejemplo también
utiliza CREATE para crear una nueva tabla.
www.pdftron.com
Por ejemplo, para crear la tabla Planets, utilizaría lo siguiente:
USE [AdventureWorks]
GO
RO
CREATE TABLE [dbo].[Planets](
) ON [PRIMARY]
GO
ETC
ALTER
CA
muestra en el siguiente ejemplo. También puede utilizar ALTER para cambiar la definición
de una vista, un procedimiento almacenado, un trigger o una función. El siguiente ejemplo
redefine la vista para incluir la columna Price. No confunda ALTER con UPDATE, ALTER
cambia la definición del objeto y UPDATE cambia los datos en una tabla.
ÉRI
ALTER TABLE Shirt
GO
AM
UPDATE Shirt SET Price = 13.50 WHERE ProductID = 1;
www.pdftron.com
UPDATE Shirt SET Price = 12.00 WHERE ProductID = 4;
GO
RO
-- Redefnir la vista
GO
-- Results:
-- 1 Red 13.50
ETC
-- 2 Blue 13.50
-- 3 Orange 10.00
-- 4 Black 12.00
18 Lección 1
DROP
La sentencia DROP realmente elimina un objeto de la base de datos, pero si otros objetos
dependen del objeto que intenta eliminar, esta sentencia fallara y aparecerá un error. El
CA
siguiente ejemplo le muestra cómo utilizar DROP para eliminar datos de la tabla Shirt,
subsecuentemente elimina la vista Size y entonces elimina la tabla Shirt de la Base de
Datos.
También intentaremos suprimir la tabla Person.Contact, pero se dará cuenta, que esta
operación fallará debido a que existen otros objetos dependientes de la tabla Person.
Contact. Recuerde no confundir DROP, el cual elimina un objeto de la base de datos, con
ÉRI
DELETE, el cual elimina datos dentro de una tabla.
-- Results:
-- ProductID
-- -----------
---
AM ProductName
--------------
Price
--------
www.pdftron.com
-- (0 row(s) affected)
GO
-- Results:
TRUNCATE y DELETE
Podría leer acerca de distintas maneras de eliminar datos de una tabla y preguntase cuál
de las dos sentencias DDL, TRUNCATE o DELETE, sería más aplicable a sus necesidades.
La sentencia DELETE es utilizada para eliminar filas de una tabla, pero no libera el espacio
que contiene la tabla. El comando SQL TRUNCATE es utilizado para eliminar todas las
filas de una tabla y libera el espacio que contiene la tabla.
Comprender los conceptos básicos de bases de datos 19
º Tome Nota Para eliminar todas las filas de la tabla user, utilizaría el siguiente comando:
Si está eliminando TRUNCATE FROM user;
datos de tablas y
si es una base de
CA
Para eliminar a un empleado con la id 200 de la tabla User, utilizaría el siguiente comando:
datos grande, utilice
truncate, es más
DELETE FROM employee; DELETE FROM user WHERE id = 200;
eficiente. Utilice delete
para bases de datos
más pequeñas.
ÉRI
Tablas del Sistema
Cuando desea consultar las vistas del sistema para verificar si los objetos que desea eliminar
están en las tablas de la base de datos, necesitara saber que tablas son las más útiles. Las
vistas del sistema pertenecen al esquema sys. Algunas de estas tablas del sistema incluyen:
• sys.Tables
• sys.Columns
sys.Databases
•
•
•
•
AM
sys.Constraints
sys.Views
sys.Procedures
www.pdftron.com
• sys.Indexes
• sys.Triggers
• sys.Objects
RO
Todos estos nombres de vistas son autoexplicativos. Por ejemplo, la vista sys.Objects
contiene una fila para cada objeto en la base de datos con los nombres de las columnas
clave, object_id, type_desc, type, create_date, y modify_date.
IBE
ETC
20 Lección 1
Resumen de Habilidades
En esta lección aprendió:
CA
• Una base de datos (bd) es una colección organizada de datos, típicamente
almacenada en un formato electrónico. Le permite introducir datos, organizar los
datos y recuperar los datos rápidamente.
• Microsoft SQL server utiliza tres tipos de archivos para almacenar la base de datos.
Archivos de datos principales, con una extensión .mdf, son los primeros archivos
creados en una base de datos y pueden contener objetos definidos por el usuario,
ÉRI
tales como tablas y vistas, así como también las tablas del sistema que SQL Server
requiere para mantener registro de la base de datos.
• Si la base de datos se hace muy grande y se queda sin espacio en su primer disco
duro, puede crear archivos de datos secundarios, con una extensión .ndf, en discos
duros físicos separados para darle más espacio a su base de datos.
• El tercer tipo de archivo es un archivo de log de transacciones. Los archivos de log
de transacciones utilizan una extensión .ldf y no contiene objetos como tablas o
vistas.
AM
• Para recuperar datos dentro de una base de datos, usted ejecutaría una consulta
de base de datos, lo cual es una investigación en la base de datos con el fin de
obtener información de regreso de la base de datos. En otras palabras, una consulta
es utilizada para pedir información de la base de datos y los datos son regresados.
www.pdftron.com
• Un índice de base de datos es una estructura de datos que mejora la velocidad de las
operaciones de recuperación de datos en una tabla de base de datos.
• La mayoría de los usuarios no acceden a las bases de datos directamente, en su
lugar, los usuarios utilizan un sistema administrador de bases de datos (DBMS)
RO
para acceder a la base de datos indirectamente.
• Una base de datos plana es muy simple en diseño. Son más comúnmente utilizadas
en formatos de texto plano, como su propósito es mantener un registro por línea,
haciendo el desempeño de acceso y consultas muy rápido.
• Tablas, utilizadas para almacenar datos, son objetos de dos dimensiones consistentes
de filas y columnas.
IBE
CA
» Evaluación de Conocimientos
ÉRI
Complete las siguientes oraciones escribiendo la palabra o palabras correctas en los
espacios en blanco proporcionados.
1. Los objetos de bases de datos están divididos en dos categorías: ____________ y
____________.
2. Tablas creadas utilizando la sentencia ____________ son utilizadas para almacenar
información.
3. Las restricciones pueden definir relaciones de entidad entre tablas en una forma
AM
continua. También son conocidos como restricciones ____________.
4. Con el fin de utilizar el objeto vistas para ver un conjunto de datos, debe utilizar la
sentencia de Transact-SQL ____________ para mostrar datos de tablas subyacentes.
www.pdftron.com
5. DDL manipula ____________, mientras que ____________ manipula la
información almacenada en tablas.
6. ____________ son compilados. Las sentencias Transact-SQL tienen la intención de
RO
desempeñar acciones particulares y puede aceptar parámetros y retornar valores, pero
____________ siempre retorna un valor y nunca actualizan datos.
7. Las sentencias DDL centrales son ____________ , ____________ y
____________.
8. Las sentencias DML centrales son ____________ , ____________ , ____________
y ____________.
IBE
Elección Múltiple
b. MERGE
c. ALTER
d. DROP
2. ¿Cuál de las siguientes no es una restricción de columna?
a. DEFAULT
b. CHECK
c. RANGE
d. UNIQUE
22 Lección 1
3. ¿Cuál de las siguientes puede ser utilizada para mejorar el desempeño de la consulta?
a. CLAVE PRINCIPAL
b. Índice UNICO
c. Índice CLUSTERED
CA
d. Todos los de arriba
4. ¿Cuál de los siguientes no es una sentencia DML?
a. REMOVE
b. INSERT
c. DELETE
ÉRI
d. TRUNCATE
5. Seleccione todas las sentencias que son verdaderas:
a. Los índices deberían solo ser creados en columnas que son buscadas
frecuentemente.
b. Una auto-referencia es cuando una restricción de clave externa hace referencia a
una columna en la misma tabla.
c. Una sola sentencia INSERT puede ser utilizada para agregar filas a múltiples
tablas.
AM
d. Múltiples CLAVES PRINCIPALES pueden ser agregadas a una tabla.
6. ¿Cuál de las siguientes no es soportado por ALTER?
www.pdftron.com
a. Agregar una columna nueva a una tabla.
b. Eliminar múltiples columnas de una tabla existente.
c. Modificar el tipo de dato de una columna existente.
RO
d. Cambiar la restricción de IDENTIDAD de una columna existente.
7. ¿Cuál de los siguientes no es una restricción?
a. NULL
b. UNIQUE
c. CHECK
d. PRIMARY
IBE
c. EXTRACT
d. GET
10. ¿Cuál sentencia SQL es utilizada para actualizar datos en una base de datos?
a. SAVE
b. MODIFY
c. SAVE AS
d. UPDATE
Comprender los conceptos básicos de bases de datos 23
» Evaluación de Competencias
CA
Recién ha sido contratado como DBA (Administrador de base de datos) para una compañía
internacional que es una sociedad financiera para muchas otras compañías. Su primera
tarea es diseñar una nueva infraestructura de base de datos. Por lo tanto, se le ha dicho que
piense en sus actividades de las últimas semanas. Enliste al menos una base de datos que ha
utilizado directamente o indirectamente y describa como la base de datos probablemente
será presentada.
ÉRI
Ejercicio 1-2: Diseñando una Base de Datos Relacional
Se le ha dado una tarea de diseñar una base de datos relacional para soportar un negocio de
venta de autos. Necesita almacenar información de sus empleados, el inventario que posee
y las ventas hechas. Se debe notar que cada vendedor se le ha dado un porcentaje diferente
de comisión. ¿Qué tablas y columnas crearía y como enlazaría las tablas?
AM
» Evaluación de Competencias
www.pdftron.com
Recién se ha graduado de la escuela y fue contratado como un DBA junior. Una cosa que
ha aprendido en los últimos meses es que no tendrá todas las respuestas. Por lo tanto,
necesita aprender cuando y como obtener ayuda cuando sea necesario. SQL Server 2008
RO
tiene un sistema intensivo de ayuda y ejemplos. Desde que es el nuevo DBA, le gustaría
visualizar la ayuda en la sentencia CREATE de forma que pueda crear una tabla. Por lo
tanto, ¿Cuáles son los pasos que utilizaría para encontrar esa información?
CA
Management Studio.
2. Asegúrese que el Motor de Base de Datos esta seleccionado y haga clic en el botón
Conectar.
3. Expanda las bases de datos haciendo clic en el símbolo de suma (+) al lado de las
bases de datos.
ÉRI
4. Haga clic derecho en las bases de datos y seleccione Nueva Base de Datos.
5. En el nombre de la base de datos, teclee Planets y haga clic en el botón Aceptar.
6. Expanda la base de datos Planets haciendo clic en el símbolo de suma (+) al lado de
Planets.
7. Expanda las tablas y haga clic en el símbolo de suma (+) al lado de las tablas.
AM
8. Antes de ir a la siguiente evaluación, dar clic derecho en la base de datos Planets y
seleccionado Eliminar.
9. Seleccione Cerrar Conexiones Existentes y haga clic en el botón Aceptar.
www.pdftron.com
RO
IBE
ETC
Lección 2
CA
Matriz de Dominio de objetivos
ÉRI
objetivo del objetivo
Definición de tipos de datos Seleccionar tipos de datos 2.1
Creación y uso de tablas Comprender las tablas y saber 2.2
cómo crearlas
Creación de vistas Crear vistas 2.3
Creación de procedimientos almacenados Crear procedimientos almacenados 2.4
y funciones
AM
www.pdftron.com
Términos Clave
CA
En esta sección, aprenderá lo que son los tipos de datos, el por qué son importantes y cómo estos afectan los
requerimientos de almacenamiento. Cuando vea los tipos de datos, necesitará entender cómo es el diseño de cada tipo
para cada tabla y comprender cómo cada uno de esos tipos funciona de la mejor manera para cada columna, variable
local, expresión o parámetro. Deberá elegir el tipo de datos que cumpla con los requerimientos de datos; necesitará
asegurarse que independientemente del tipo de datos que decida utilizar, este necesitará ofrecer el almacenamiento
y el esquema de consultas más eficientes. Uno de los roles del administrador de una base de datos es asegurarse de
ÉRI
contener los datos dentro de cada base de datos sean uniformes entre sí al decidir la mejor manera para que se acoplen
a la aplicación con la cual interactúen.
Un tipo de datos es un atributo que especifica el tipo de datos que un objeto puede
albergar y también especifica cuantos bytes tiene asignados. Por ejemplo, varios tipos
de datos definen sólo números enteros, los cuales son recomendables para conteos o para
propósitos de identificación. Otros tipos de datos permiten números decimales que
resultan prácticos cuando se almacenan valores relacionados con dinero. Otros tipos de
AM
datos están diseñados para almacenar cadenas o caracteres múltiples para permitirle definir
etiquetas, descripciones y comentarios. Por último, hay otros tipos de datos que pueden
almacenar fechas, horas y números binarios que consisten en ceros y unos o que se pueden
usar para almacenar imágenes. Como regla general, si tiene dos tipos de datos que son
www.pdftron.com
similares y sólo difieren en la cantidad de bytes que cada uno utiliza, se tiene un rango
mayor de valores y/o se incrementa la precisión.
Los tipos de datos predefinidos de SQL Server 2008 están organizados en las siguientes
categorías generales:
IBE
• Numéricos exactos
• Numéricos aproximados
• Fecha y hora
• Cadenas de caracteres
• Cadenas de caracteres Unicode
• Cadenas binarias
; Listo para la • Otros tipos de datos
certificación • Tipos de datos CLR
ETC
CA
(Numérico) involucrar dinero o tipo moneda en su base de datos, pero si
tiene la necesidad de calcular columnas de porcentaje, es
mejor utilizar un tipo de datos flotante “float”. La diferencia
entre un tipo de datos numérico y uno float reside en si
decide utilizar un número aproximado o uno de precisión fija.
En el caso de money o un tipo de datos numérico, este cae
dentro del tipo de datos de precisión fija puesto que debe ser
ÉRI
representado con precisión y escala.
Datetime Los tipos de datos datetime y time se utilizan para almacenar
datos de fechas y horas en muchos formatos diferentes pero
es el “para qué utiliza los datos almacenados” lo que hace la
diferencia para decidir entre el tipo de datos a utilizar, ya sea
datetime o datetime2. Si intenta almacenar valores entre las
fechas Enero 1, 1753 y Diciembre 31, 9999 con una precisión
de 3.33 milisegundos, utilice el tipo de datos datetime. Si busca
almacenar valores entre Enero 1, 1900 y Junio 6, 2079 con una
www.pdftron.com
Integer El tipo de datos numérico int se utiliza para almacenar
cómputos matemáticos y se usa cuando no se requiere de un
punto decimal. Un ejemplo de un integer sería: 2 o -2.
Varchar Este tipo de datos de cadena de caracteres se utiliza
RO
generalmente en bases de datos en la cual tenga atributos en
Inglés, pero si se encuentra manejando varios idiomas, utilice
en su lugar el tipo de datos nvarchar puesto que le ayudará
a minimizar los problemas que conlleva la conversión de
caracteres.
Boolean Conocido también como un tipo de datos de un bit. Por lo
tanto, si va a almacenar columnas de 8 bits o menos en una
tabla, estas se almacenarán como 1 byte y si hay de 9 a 16
IBE
CA
de almacenamiento se incrementa a medida que
aumenta la cantidad de columnas bit utilizadas.
Tinyint Datos enteros de 0 a 255 1 byte
Smallint Datos enteros de -2^15(-32,768) a 2^15-1(32,767) 2 bytes
Int Datos enteros de -2^31(-2,147,483,648) a 4 bytes
2^31-1(2m147m483m647)
ÉRI
Bigint Datos enteros de -2^63(-9,223,372,036,854,775,808) a 8 bytes
2^63-1(9,223,372,036,854,775,807).
Numeric Precisión fija y escala. Los valores válidos van de Varía
-10^38+1 a 10^38-1.
Decimal Precisión fija y escala. Los valores válidos van de Varía
-10^38+1 a 10^38-1
Smallmoney Valores monetarios que van de -214,748.3648 a 4 bytes
214,748.3647
Money Valores monetarios que van de 8 bytes
Datetime
AM
Numéricos aproximados:
-922,337,203,685,477.508 a 922,337,203,685,477.5807
www.pdftron.com
de 24 horas. Rango: Enero 1, 1753 a Diciembre 31,
9999. Precisión: Redondeado a incrementos de .000,
.003, o .007 segundos
Smalldatetime Define una fecha que se combina con la hora del 4 bytes
RO
día. El tiempo está basado en un día de 24 horas, con
los segundos siempre en cero (:00) y sin segundos
fraccionales. Rango: 1900-01-01 a 2079-06-06, Enero
1, 1900, a Junio 6, 2079. Precisión: Un minuto.
date* Define una fecha. Rango: 0001-01-01 a 9999-12-31. 3 bytes
Enero 1, 1 D.C. a Diciembre 31, 9999. Precisión: Un
día.
IBE
CA
Nvarchar Tipo de datos de carácter con longitud variable. Varía
Ntext Este tipo de datos se eliminará en versiones futuras Varía
de SQL, por lo tanto, utilice nvarchar (max)
Cadenas binarias:
Binary Datos binarios con longitud fija. Varía
Varbinary Datos binarios con longitud variable. Varía
ÉRI
Image Este tipo de datos se eliminará en versiones futuras Varía
de SQL, por lo tanto, utilice varbinary (max).
Otros tipos de datos:
sql_variant Almacena valores de varios tipos de datos Varía
soportados por SQL Server con excepción de text,
ntext, image, timestamp and sql_variant.
Uniqueidentifier 16-byte GUID. 16 bytes
(UUID)
AM
Recuerde que en SQL Server, cada columna, variable local, expresión y parámetro siempre
tienen un tipo de datos relacionado que define las características de almacenamiento de los
datos como se puede ver en la Tabla 2-1.
www.pdftron.com
º Tome Nota Ahora que ha comprendido la mayoría de los tipos de dato disponibles, recuerde que cuando
Cada columna, variable dos expresiones tienen diferentes tipos de datos, collation (intercalación), precisión, escala
local, expresión y o longitud, las características de los resultados quedarán determinadas por cualquiera de
RO
parámetro siempre los siguientes puntos:
tiene un tipo de datos • Cuando hay dos expresiones (función matemática o función de comparación)
relacionado y cada tipo con tipos de datos diferentes, hay reglas para la precedencia de los tipos de
de datos es un atributo. datos que especifican que el tipo de datos con la precedencia más baja se
convierta al tipo de datos con la precedencia más alta.
• El Collation se refiere a un conjunto de reglas que determinan la forma en
la cual se ordenan y comparan los datos. De manera predeterminada, SQL
IBE
Los tipos de datos numéricos exactos incuyen: bigint, bit, decimal, int,
money, numeric, smallint, smallmoney y tinyint.
30 Lección 2
CA
enteros como tinyint, smallint e int de forma automática a bigint.
• bit es un tipo de datos entero Transact-SQL que puede tomar un valor de
1, 0 o NULL y produce las siguientes características:
• El motor de base de datos de SQL Server optimizará el almacenamiento de
las columnas de bits, lo cual significa que si hay 8 o menos columnas de bits
en una tabla, estas se almacenarán como 1 byte. Si hay de 9 a 16 columnas,
ÉRI
estas se almacenarán como 2 bytes. Es importante darse cuenta de que 1 byte
equivale a 8 bits cuando considere tipos de datos.
• Los valores de cadena TRUE y FALSE se pueden convertir a valores bit. Esto
significa que TRUE se convierte a 1 y FALSE se convierte a 0.
• decimal y numeric son también tipos de datos Transact-SQL que tienen
precisión fija y escala. La sintaxis par estos tipos de datos es el siguiente:
decimal[(p[,s])]
numeric[(p[,s])]
AM
• Precision (p) es el número total de dígitos decimales que se pueden almacenar,
tanto a la izquierda como a la derecha del punto decimal; este valor debe ser
mínimo de 1 y máximo de 38. El número de precisión predeterminado es 18.
• Scale (s) refleja el número máximo de dígitos decimales que se pueden
www.pdftron.com
almacenar a la derecha del punto decimal y debe ser un valor de 0 a p, pero sólo se
puede especificar cuándo se utiliza precisión. La escala predeterminada es 0.
• money y smallmoney son tipos de datos Transact-SQL que utilizaría para
representar valores monetarios. Los dos tipos de datos son precisas en una
RO
10,000a de las unidades monetarias que representen.
Float y real se utilizan en conjunto con datos numéricos de punto flotante. Esto
significa que todos los datos flotantes son aproximados, por lo que no todos los valores
que se representan con un rango de tipo de datos aproximado se pueden expresar de forma
exacta.
Date se utiliza para definir una fecha empezando con Enero 1, 0001 DC a Diciembre 31,
9999 DC. Al igual que con cualquier tipo de datos, el tipo de fecha tiene los descriptores
Crear objetos de bases de datos 31
que aparecen en la Tabla 2.3. Mientras que las fechas en sí no resultan afectadas por el
horario de verano, debe utilizar fechas para determinar si la hora de un día en particular
está en horario de verano o no.
CA
Descripciones de date
Propiedad Valor
Sintaxis Date
Uso DECLARE @MyDate date
CREATE TABLE Table1 ( Column1 date )
Formato de literal de cadena YYYY-MM-DD
ÉRI
predeterminado
(Esto se puede utilizar para compatibilidad
(utilizado para clientes de bajo nivel) previa para clientes de bajo nivel).
Rango 0001-01-01 a 9999-12-31
Enero 1, 1 D.C. a Diciembre 31, 9999 D.C.
Rangos de elementos YYYY son cuatro dígitos del 0001 al 9999
para representar un año
MM son dos dígitos del 01 al 12 para
www.pdftron.com
Longitud de carácter 10 posiciones
Precisión, escala 10, 0
Tamaño de almacenamiento 3 bytes, fijo
Precisión Un día
RO
Valor predeterminado 1900-01-01
Este valor se utiliza para la parte de la
fecha adjunta para la conversión de time a
datetime2 o datetimeoffset.
Calendario Gregoriano
Precisión fraccional de segundos No
IBE
º Tome Nota Datetime define una fecha que se combina con una hora del día expresada con segundos
Utilice time, date, fraccionales basada en un reloj de 24 horas. Su exactitud es hasta de 0.00333 segundos.
datetime2 y los tipos de Si necesita de mayor precisión, deberá utilizar el tipo de datos datetime2 que tiene una
datos dateoffset para exactitud de hasta 100 nanosegundos. Si no necesita llevar registro de los segundos (lo
ETC
sus nuevos proyectos cual resulta menos preciso), puede ahorrarse algo de espacio de almacenamiento utilizando
puesto que se alinean el tipo de datos smalldatetime. El tipo de datos DateTimeOffset es similar a
con el Estándar SQL, DateTime pero mantiene registro de las zonas horarias. Por ejemplo, si utiliza dos valores
son más portables y DateTimeOffset con la misma hora UTC en diferentes zonas horarias, los dos valores
todos con excepción serán iguales.
de date cuentan con
la mejor precisión
para aplicaciones de
nanosegundos.
32 Lección 2
Cast y Convert también juegan un papel importante con cualquier función de tipos
de datos ya que la convierte una expresión en de un tipo de datos a otro. Convert era
CA
la antigua manera de convertir con cast utilizándolo de la misma manera. La siguiente
figura, cortesía de Microsoft, contiene un análisis a mayor detalle de la conversión implícita
entre tipos de datos.
Figura 1-2
Ilustración de tipos de SQL Server soporta conversiones implícitas, que se pueden llevar a cabo sin especificar la
conversiones implícitos y función invocada (cast o convert). Las conversiones explícitas de hecho requieren que
explícitos utilice específicamente las funciones cast o convert. Tanto las conversiones explícitas
ÉRI
como implícitas para tipos de datos de SQL Server se muestran en la Figura 2-1.
AM
www.pdftron.com
RO
IBE
ETC
Si quiere crear un conjunto de datos donde la hora cuenta con una zona horaria indicada y
basada en un reloj de 24 horas, necesitará utilizar datetimeoffset.
Smalldatetime combina una fecha con una hora del día, con la hora basada en un día de
24 horas, con los segundos siempre en cero (:00) y sin segundos fraccionales.
Time define la hora del día basada en un reloj de 24 horas y sin considerar la zona horaria.
Crear objetos de bases de datos 33
Un carácter regular utiliza un byte de almacenamiento para cada uno, lo cual le permite
definir uno de 256 (hay 8 bits en un byte y 2^8=256) caracteres posibles compatibles
CA
con el idioma Inglés y algunos europeos. Un carácter Unicode utiliza dos bytes de
almacenamiento por carácter, por lo que puede representar uno de 65,536 (hay 16 bits en
2 bytes y 2^16=65,536 caracteres). El carácter adicional permite almacenar caracteres de
casi cualquier idioma, incluyendo el chino, japonés, árabe, etc.
A medida que escriba la sintaxis para los diferentes tipos de datos, recuerde que también
difieren en la forma en la cual se expresan las literales. Una literal de carácter regular
ÉRI
siempre se expresa con comillas sencillas. Por ejemplo:
º Tome Nota
‘Así se ve una cadena literal de caracteres regulares’
Cualquier tipo de datos
sin el elemento VAR Cuando exprese una literal de carácter Unicode, esta debe tener la letra N (de Nacional)
(char, nchar) dentro
como prefijo para las comillas sencillas. Por ejemplo:
de su nombre es de
longitud fija.
N’Así se ve una cadena literal de caracteres Unicode’
AM
Cuando utilice un elemento VAR, SQL Server conservará espacio en la fila en la cual reside
con base en el tamaño de la columna y no en el número de caracteres que se encuentra en
la cadena en sí, además se proporcionan 2 bytes extra para los datos offset. Por ejemplo, si
www.pdftron.com
quiere especificar que una cadena sólo soporta un máximo de 25 caracteres, deberá utilizar
VARCHAR(25).
º Tome Nota
Cuando no se El consumo de almacenamiento cuando se utilizan tipos de datos Unicode se reduce en
RO
especifica n en comparación al de los tipos de datos regulares, además de permitir operaciones de lectura
la definición de más rápidas; sin embargo, el precio que se paga por utilizar este tipo de datos está en
datos o sentencia la posibilidad para la expansión de filas, lo cual lleva al movimiento de datos fuera de
de declaración de la página actual. Esto significa que cualquier actualización de datos cuando se utilizan
variables, la longitud tipos de datos de longitud variable puede ser menos eficiente que la de los de longitud
predeterminada fija. Es posible definir el tipo de datos de longitud variable con el especificador MAX en
es 1. Cuando no lugar de utilizar un número máximo de caracteres identificados en la cadena. Por ejemplo,
IBE
se especifica n cuando una columna se define con el especificador MAX, un valor con un cierto umbral (el
con la función valor predeterminado es 8,000) que luego se almacena en línea en la fila. Cuando quiera
CAST, la longitud especificar un valor con un tamaño superior al umbral predeterminado, se almacenará
predeterminada es 30. externo a la fila y se identificará como un objeto grande o LOB.
º Tome Nota Estos son los tipos e datos de carácter más utilizados y son ya sea de longitud fija o variable.
Utilice nchar cuando Cada uno tiene sus propias características individuales que necesitará considerar cuando
los tamaños de las decida cual tendrá un efecto positivo en los requerimientos de almacenamiento. Tanto
entradas de datos de los conjuntos de datos char y varchar necesitan estar definidos o asignados dentro de la
las columnas sean definición de los datos y pueden resultar afectados por los límites de almacenamiento
ETC
Hay solamente dos tipos de cadenas soportados por SQL Server: regular y Unicode.
Los tipos de datos regulares incluyen a los que se identifican con CHAR and VARCHAR.
CA
Los tipos de datos Unicode se identifican con NCHAR and NVARCHAR. ¿Suena simple?
Lo es, en lo que se refiere a que las diferencias entre regular y Unicode son los bytes de
almacenamiento que utiliza cada uno.
Las cadenas de caracteres Unicode nchar yand nvarchar pueden ser fijas o variables
como sus cadenas de caracteres regulares; estas utilizan el conjunto de caracteres
UNICODE UCS-2.
ÉRI
Creación y uso de tablas
È EN RESUMEN
El objetivo es desarrollar y comprender el propósito de las tablas y la creación de las mismas en una base de datos al
utilizar la sintaxis ANSI SQL apropiada.
AM
El propósito de una tabla es proporcionar una estructura para almacenar datos en una
tabla relacional. Sin la estructura, hay una alta probabilidad de que la base de datos falle.
www.pdftron.com
En el Capítulo 1 se comentó sobre la comprensión del propósito de las tablas y cómo
crearlas. Revisemos rápidamente algunos de los puntos importantes que se deben recordar
cuando prosigamos a aprender a cómo crear una tabla en una interfaz de usuario no-gráfica.
Es importante asegurarse de tomar en cuenta cual es el propósito de una base de datos
RO
relacional en la jerarquía de la administración de bases de datos.
Una base de datos SQL es el contenedor central, la cual recupera datos de varias tablas y
vistas de la base de datos. Usted puede entonces ejecutar estos datos a través de consultas
que pueden interactuar con los datos almacenados en la base de datos para obtener los
resultados requeridos. Una ventaja que tiene una base de datos sobre una serie de hojas
de cálculo es que una base de datos puede analizar el almacenamiento redundante e
IBE
Primero aprendamos a crear una tabla nueva con SQL Server Management Studio antes de
continuar con el método de sintaxis.
Crear objetos de bases de datos 35
; Listo para la
certificación Æ Crear una tabla con Microsoft SQL Server Management Studio
¿Cómo crearía una
tabla con SSMS PREPÁRESE. Antes de comenzar, asegúrese de abrir la aplicación de SQL Server
y cómo crearía un Management Studio. Asegúrese de que tiene la base de datos correcta expandida en la cual
CA
SSMS con comandos desee crear una nueva tabla.
SQL?—2.2
1. Haga clic en la carpeta tablas y seleccione Nueva Tabla, como se muestra a continuación:
Figura 2-2
Creando una Nueva Tabla
ÉRI
AM
www.pdftron.com Mientras tenga esta pantalla abierta, realice las siguientes actividades:
RO
2. Utilice la información de la Figura 2-3 para completar los detalles en Nombre de Columna,
Tipo de Datos y su longitud como se especifica en los paréntesis y en las columnas
Permitir Valores Nulls.
Figura 2-3
Nombres de Columna e
identificando información
IBE
ETC
Figura 2-4
Estableciendo las
propiedades del
Diseñador de Tabla
CA
ÉRI
AM
www.pdftron.com
4. Guarde su nueva tabla seleccionado Archivo y después Guardar Tabla_1, como se
Figura 2-5 muestra en la Figura 2-5.
Guardando la tabla nueva
RO
IBE
ETC
Crear objetos de bases de datos 37
Figura 2-6
Nombrando la tabla
CA
ÉRI
AM
www.pdftron.com
Su nueva tabla ahora aparece en la sección Tablas (vea la Figura 2-7).
Figura 2-7
Tabla recién creada
RO
IBE
ETC
PAUSA. Deje la interfaz de SQL Server Management Studio interface abierta para el
siguiente ejercicio.
38 Lección 2
La creación de tablas con SQL Server Management Studio es fácil puesto que es una interfaz
gráfica fácil de utilizar. Pero ¿qué pasaría si necesita crear sus tablas y no está seguro de
CA
cómo utilizar la sintaxis ANSI SQL?
La sentencia create table se utiliza para crear una tabla. Para utilizar las convenciones
de sintaxis de Transact-SQL de forma apropiada, revise el siguiente ejemplo:
ÉRI
INSERT INTO planets (name, diameter) VALUES (‘earth’, 10000)
Creación de vistas
as varchar(50)))
AM
www.pdftron.com
È EN RESUMEN
RO
Es importante comprender cuando utilizar vistas y cómo crear una vista utilizando ya sea una sentencia Transact-
SQL o con un diseñador gráfico.
Una vista no es más que una tabla virtual que consiste de diferentes columnas de una o
más tablas. A diferencia de una tabla, una vista se almacena en la base de datos como
un objeto de consulta; por lo tanto, una vista es un objeto que obtiene sus datos de una
o más tablas. Las vistas que se encuentran basadas en esta definición son conocidas como
IBE
tablas subyacentes. Una vez que haya definido su vista, podrá hacer referencia a esta como
a cualquier otra tabla en su base de datos.
Una vista se utiliza para servir al propósito de ser un mecanismo de seguridad. Esto
significa que una vista asegura que los usuarios puedan recuperar y modificar sólo los
datos que puedan ver con los permisos que se les hayan otorgado, lo cual asegura que los
usuarios no puedan ver o acceder al resto de los datos en las tablas subyacentes. Una vista
también sirve como mecanismo para simplificar la ejecución de consultas. Las consultas
complejas se pueden almacenar en el formulario como una vista y los datos de la vista se
pueden extraer a través de sentencias de consulta sencillas.
ETC
Las vistas aseguran la seguridad de los datos al restringir el acceso a los siguientes datos:
• Filas específicas de las tablas.
• Columnas específicas de las tablas.
• Filas y columnas específicas de las tablas.
• Filas obtenidas de las combinaciones.
• Resumen estadístico de datos en tablas dadas.
• Subconjuntos de otra vista o un subconjunto de varias vistas y tablas.
Crear objetos de bases de datos 39
CA
• Una combinación de dos o más tablas.
• Un resumen estadístico de tablas base.
• Un subconjunto de otra vista o una combinación de vistas y una tabla base.
Las vistas de las bases de datos están diseñadas para crear una tabla virtual que es
representativa de una o varias tablas de una forma alternativa y se encuentran relacionadas
con consultas en ejecución. Hay dos razones principales por las cuales se debe utilizar una
ÉRI
vista en lugar de dar a los usuarios la capacidad de acceder a las tablas subyacentes en su
base de datos.
• Las vistas le permiten limitar los datos a los cuales puedan acceder los usuarios.
Puede otorgar permisos de visualización de las tablas designadas y también puede
negar el permiso de acceso.
• Las vistas disminuyen la complejidad para los usuarios finales para que estos no
tengan que aprender a escribir consultas completas en SQL si no desean hacerlo.
Usted puede escribir las consultas en su lugar y luego ocultarlas en una vista.
AM
Cuando cree una vista, asegúrese de considerar el desempeño de la base de datos en su
diseño. Como ya se comentó en la Lección 1, la indexación juega un rol en el tiempo de
respuesta de las consultas y uno más importante en las mejoras en el desempeño de la base
www.pdftron.com
de datos. Pero tenga cuidado: agregar índices al esquema puede de hecho incrementar la
complejidad de la base de datos debido al mantenimiento que se debe dar a estos índices.
PREPÁRESE. Antes de llevar a cabo estos pasos, asegúrese de que Management Studio se
encuentre abierto.
CA
1. Expanda la sección Vistas al hacer clic en el signo de mas (+) junto a Vistas.
Haga clic derecho en la carpeta Vistas como aparece en la Figura 2-8 y seleccione Nueva
Vista.
Figura 2-8
Creación de una vista
nueva
ÉRI
AM
www.pdftron.com
RO
Figura 2-9
Se abre el cuadro de diálogo Agregar Tabla (vea la Figura 2-9).
CA
para utilizar la vista deseada.
• Si quiere generar registros de una función, podrá realizarlo en la ficha Funciones.
• Si quiere utilizar más de una fuente, puede hacer clic en las fichas para buscar la
tabla, vista o función que quiera agregar a su consulta.
• Una vez que haya seleccionado la fuente deseada, sólo haga clic en el botón Agregar
para cada una de ellas.
ÉRI
• Una vez que haya seleccionado y agregado todas las fuentes que desee, haga clic en
el botón Cerrar para cerrar el cuadro de diálogo.
2. Cuando haga clic en Agregar para agregar cada fuente, verá la información que aparece
Figura 2-10 en la Figura 2-10.
AM
www.pdftron.com
RO
IBE
; Listo para la
certificación
¿Cómo se crea
una vista utilizando Después de seleccionar los objetos que desee utilizar, la barra de herramientas Diseñador de
SSMS?—2.3 Vistas se agregará, en la cual podrá planear las vistas que desee incorporar en su consulta.
ETC
También puede crear vistas utilizando Transact-SQL. Una vez que haya agregado las
fuentes en el panel de diagrama, la sintaxis para estas fuentes aparece en el panel SQL.
42 Lección 2
PREPÁRESE. Para crear una vista con sintaxis de Transact-SQL, se podría realizar de la
siguiente manera:
CA
CREATE VIEW vwCustomer
AS
SELECT CustomerId, Company Name, Phone
FROM Customers
ÉRI
Con esto se crea una vista llamada vwCustomer que se almacenará como un objeto.
Los datos que se consultan de las columnas vienen de la tabla Clientes.
AM
La razón de crear procedimientos almacenados y funciones es aprender a seleccionar, insertar, actualizar o eliminar
datos utilizando sentencias de procedimientos almacenados de SQL.
www.pdftron.com
Hasta ahora, hemos aprendido a utilizar diferentes tipos de datos para crear tablas y vistas
con un diseñador gráfico y con sentencias de sintaxis Transact-SQL. Ahora toca aprender a
almacenar sentencias de procedimientos almacenados utilizando la misma interfaz gráfica.
RO
Un procedimiento almacenado es una sentencia SQL escrita con anterioridad que se “guardó”
o almacenó en la base de datos. Una de las cosas que le ayudarán a ahorrar tiempo cuando
ejecute la misma consulta de forma repetida es la creación de un procedimiento almacenado,
que se puede ejecutar en el ambiente de comandos de la base de datos. Un ejemplo de la
ejecución de un procedimiento almacenado sería como el que se muestra a continuación:
exec usp_displayallusers
IBE
Lo que hará esta sentencia “select” es regresar todos los datos encontrados en la tabla
USERLIST. Una de las preguntas que se debe plantear ahora es “¿por qué no puedo sólo
ejecutar la consulta para que me proporcione los datos que necesito en lugar de tomarme
la molestia de crear un procedimiento almacenado?”. El “*” que puede observar en la
sentencia significa que no está definiendo criterios que le gustaría que coincidieran con el
resultado. Es decir, está regresando “todos” los registros de la tabla userlist.
Crear objetos de bases de datos 43
Con base en la sentencia de consulta anterior, podría validar esa pregunta con un “si”,
pero hay ocasiones donde una consulta puede ir más allá de una simple sentencia “select *
from…”. Tal vez se encuentre trabajando en la construcción de un sitio web con páginas
ASP y necesitará llamar un procedimiento almacenado desde esa u otra aplicación como
CA
Visual Basic. La utilización de un procedimiento almacenado le permite almacenar toda
la lógica dentro de la base de datos para que con un comando sencillo pueda consultar
y recuperar toda la información de todas las fuentes. Ahora, veamos cómo crear un
procedimiento almacenado.
ÉRI
Un procedimiento almacenado es una sentencia escrita en SQL que se almacenó en la base
de datos y si frecuentemente utiliza la misma sentencia SQL en su base de datos, es más
sencillo crear un procedimiento almacenado y utilizarlo en su lugar. Ahora, no resulta muy
práctico utilizar los procedimientos almacenados para sustituir sentencias simples, como una
sentencia “select”, pero, si se encuentra creando sentencias de consulta complejas, lo mejor
es crear un procedimiento almacenado y ejecutarlo en el Query Analyzer con el comando
ejecutar (exec).
AM
Para crear un procedimiento almacenado utilizando una interfaz de usuario gráfico, realice el
siguiente procedimiento:
1. Expanda la sección Programación, luego expanda la sección Procedimientos
Almacenados.
www.pdftron.com
2. Haga clic derecho y seleccione Nuevo Procedimiento Almacenado (vea la Figura 2-11).
Figura 2-11
Menú de selección de
Nuevo Procedimiento
RO
Almacenado
IBE
ETC
Se abre la ventana Text Editor (vea la Figura 2-12), que muestra la sintaxis con colores. La
ventana contiene una plantilla de procedimientos “realizada” para que agregue sus propios
parámetros.
44 Lección 2
Figura 2-12
Ejemplo de la ventana
Text Editor
CA
ÉRI
; Listo para la
certificación
¿Cómo se crea
un procedimiento
almacenado con
SSMS?—2.4
AM
www.pdftron.com
f Comprender las inyecciones SQL
Antes de aprender la sintaxis para seleccionar, insertar, actualizar y eliminar datos, necesita comprender lo que es una
inyección SQL. Una inyección SQL es un ataque en el cual se coloca código malicioso en cadenas que luego pasan a
instancias de SQL Server en espera para su ejecución. Cualquier procedimiento que construya sentencias SQL debería
RO
revisarse de forma constante para ver que no contenga vulnerabilidades ya que SQL Server ejecuta todas las consultas
sintácticamente validas de cualquier fuente.
º Tome Nota La forma primaria de una inyección SQL es como una inserción directa de código en las
Una inyección SQL variables que ingresa el usuario que están concatenadas con comandos SQL y luego se
es un ataque en el ejecutan. Un método menos directo de ataque inyecta código malicioso en cadenas que
IBE
cual se inserta código se destinan para el almacenamiento en una tabla o se consideran metadatos. Cuando estas
malicioso que se inserta cadenas almacenadas se concatenan subsecuentemente en el comando dinámico de SQL, el
en cadenas que luego código malicioso se ejecuta.
pasan cuando se
ejecutan las sentencias. La función del proceso de inyección es terminar de forma prematura una cadena de texto
y agregar un comando nuevo y puesto que el comando insertado puede tener cadenas
adicionales adjuntas al mismo antes de ser ejecutado, el agresor termina la cadena inyectada
con la marca de comentario “- -“ lo que hace que se ignore el texto subsecuente durante el
tiempo de ejecución.
ETC
Tal vez quiera ver las columnas id y nombre de una tabla donde el tipo de la columna
tiene un valor específico. Podría entonces escribir la sentencia select como se indica a
continuación:
Crear objetos de bases de datos 45
CA
f Usar el procedimiento almacenado Insert
El procedimiento almacenado insert agrega una o más filas nuevas en una tabla o vista.
ÉRI
La sintaxis SQL Transact para insert es como se indica a continuación:
(Column1, Column2)
VALUES
AM
(1, ‘test1’), (2, ‘test2’) // aquí carga datos en las columnas
identifcadas previamente
www.pdftron.com
f Usar el procedimiento almacenado Update
El procedimiento almacenado update cambia los datos existentes en una tabla o vista.
RO
El procedimiento almacenado update se representa como se indica a continuación:
GO //ejecuta la consulta
f Prácticas recomendadas
Veamos más información algunas de las prácticas recomendadas que reunió Microsoft para la utilización de un
procedimiento almacenado o función. Es importante tener este tipo de conocimientos sobre prácticas recomendadas
que los administradores de bases de datos o desarrolladores deben seguir en el diseño de las bases de datos.
CA
Las siguientes recomendaciones aseguran la calidad en desempeño y mantenimiento:
• No utilice SELECT * en sus consultas, en su lugar, escriba los nombres de columnas
requeridos después de la sentencia SELECT, por ejemplo:
SELECT IDCliente, ClienteNombre, Ciudad
ÉRI
• Cuando se diseña una base de datos, tenga el “desempeño” en mente (algo que
hemos mencionado a lo largo de este capítulo). Necesita empezar primero con el
desempeño ya que es casi imposible afinar este detalle después de realizar la base
de datos.
• Asigne un prefijo a los nombres de las tablas con el nombre del propietario, esto no
solo mejora la legibilidad, sino que evita cualquier confusión innecesaria y ayuda
tanto en el plan de reutilización y mejora los resultados en desempeño.
• Utilice SET NOCOUNT ON al principio de sus lotes de SQL, procedimientos
AM
almacenados y triggers en ambientes de producción ya que esto eliminará mensajes
como ‘(1 filas afectadas) al ejecutar sentencias INSERT, UPDATE, DELETE y
SELECT. Al hacer esto se mejora el desempeño de los procedimientos almacenados
al reducir el tráfico en la red.
www.pdftron.com
• Utilice cláusulas de ANSI-Standard Join más legibles en lugar de las joins antiguos.
Las cláusulas de combinación ANSI como WHERE, se utilizan para filtrar datos,
mientras que las anteriores manejan tanto la condición de combinación como el
filtrado de datos.
RO
Muchos de los otros comentarios y recomendaciones mencionados en estos capítulos
asegurarán (siempre y cuando tenga el desempeño en mente) que cuando se realice una
consulta en una base de datos, pueda obtener resultados más rápidos de tablas y vistas
indexadas apropiadamente. Al hacer esto, se facilitará su trabajo.
IBE
ETC
Crear objetos de bases de datos 47
Resumen de Habilidades
En esta lección aprendió:
CA
• Un tipo de datos es un atributo que especifica el tipo de datos que puede tener un
objeto y también especifica cuantos bytes puede tomar cada uno de estos.
• Como regla general, si tiene dos tipos de datos similares pero que su única
diferencia es la cantidad de bytes que cada tipo utiliza, se tiene un rango mayor de
valores y/o se incrementa la precisión.
• SQL Server tiene un amplio rango de datos predefinidos conocidos como tipos de
ÉRI
datos integrados. La mayoría de las bases de datos que se pueden crear o utilizar
necesitan utilizar estos tipos de datos.
• Los tipos de datos numéricos exactos son los tipos de datos más comunes utilizados
en SQL Server para almacenar información numérica.
• Int es el tipo de datos numérico principal (número entero).
• La precisión (p) es la cantidad total máxima de dígitos decimales que se pueden
almacenar, tanto a la izquierda como a la derecha del punto decimal; este valor
debe ser mínimo de 1 y máximo de 38. El número predeterminado de precisión
AM
es 18.
• Money y smallmoney son tipos de datos Transact SQL que deberá utilizar para
representar valores monetarios. Los dos tipos son precisos en una 10,000a de la
unidad monetaria que representen.
www.pdftron.com
• Los tipos de datos numéricos aproximados no son tan utilizados como otros tipos
de datos de SQL. Si necesita de mayor precisión (más posiciones decimales) de
los que están disponibles en los tipos de datos numéricos exactos, deberá utilizar
un tipo flotante o real. Estos tipos de datos tienen generalmente más bytes de
RO
almacenamiento.
• Los tipos de datos date y time, obviamente manejan fechas y horas. Estos tipos de
datos incluyen date, datetime2, datetime, datetimeoffset, smalldatetime y time.
• SQL Server soporta conversiones implícitas, que pueden ocurrir sin especificar la
llamada de alguna función (cast o convert). Las conversiones explicitas de hecho
requieren que utilice las funciones cast o convert.
• Un carácter regular utiliza un byte de almacenamiento para cada carácter, lo
IBE
cual le permite definir uno de 256 (hay 8 bits en un byte y 2^8=256) caracteres
disponibles que son compatibles con el idioma inglés y otras lenguas europeas.
• Un carácter Unicode utiliza dos bytes de almacenamiento por carácter para que
pueda representar uno de 5,536 (hay 16 bits en 2 bytes y 2^16=65,536 caracteres).
El carácter adicional permite almacenar caracteres de casi cualquier idioma.
• Cuando utiliza un elemento VAR, SQL Server conservará espacio en la fila en la
cual reside con base en el tamaño definido de la columna y no en el número de
caracteres que haya en la cadena.
• Las cadenas de caracteres Unicode nchar y nvarchar pueden ser ya sea fijas o
ETC
variables así como sus cadenas de caracteres regulares; estas utilizan el conjunto de
caracteres UNICODE UCS-2.
• El propósito de una tabla es proporcionar una estructura para el almacenamiento
de los datos en una tabla relacional.
• Una vista es simplemente una tabla virtual que consiste de diferentes columnas
de una o más tablas. A diferencia de una tabla, una vista se almacena en la base de
datos como un objeto de consulta; por lo tanto, una vista es un objeto que obtiene
sus datos de una o más tablas.
48 Lección 2
CA
» Evaluación de Conocimientos
Complete la frase
ÉRI
Complete los siguientes enunciados escribiendo la palabra o palabras correctas en los
espacios en blanco proporcionados.
1. Cada ____________, ____________, expresión y ____________ tienen siempre
un tipo de datos relacionado.
2. El bit es un tipo de datos entero Transact SQL que puede tomar un _______ de 1, 0
o NULL.
3. ____________ y time son sentencias Transact SQL que tienen: ____________,
AM
____________, smalldatetime y time.
4. Es importante que considere utilizar conjuntos de datos ____________ cuando
desarrolle tablas dependientes de los horarios de verano.
www.pdftron.com
5. SQL Server soporta conversiones ____________ sin utilizar el llamado de las
funciones cast o convert.
6. Un carácter regular utiliza _______ byte de almacenamiento para cada carácter y un
RO
carácter Unicode requiere de ______ bytes de almacenamiento.
7. El conjunto de datos char tiene una longitud ______ y una longitud de __________
bytes.
8. El objetivo de una tabla es proporcionar una _______ para el almacenamiento de
datos en una tabla relacional.
9. Cuando decida crear una vista, asegúrese de considerar el ______ en su diseño.
IBE
10. Cuando se realiza una consulta en una base de datos, se pueden obtener resultados
más rápidos al ______ apropiadamente las tablas y vistas.
Opción múltiple
b. Numéricos aproximados
c. Cadena ANSI
d. Espacial
Crear objetos de bases de datos 49
CA
c. vchar
d. null
e.
3. ¿Cuál de las siguientes opciones no describe un tipo de datos int?
a. integer
ÉRI
b. bigint se utiliza cuando el valor excederá el rango del tipo de datos Int
c. SQL server no convierte otros tipos de datos int a bigint
d. las funciones solo regresarán bigint si la expresión original es del mismo tipo de
datos
4. ¿Requieren las conversiones implícitas de invocación: cast o convert?
a. Si
b. No
AM
5. Seleccione todos los enunciados que sean falsos
a. Los índices deberían solo ser creados en columnas que son buscadas
frecuentemente.
www.pdftron.com
b. Una auto-referencia es cuando una restricción de clave externa hace referencia a
una columna en la misma tabla.
c. Una sola sentencia INSERT puede ser utilizada para agregar filas a múltiples
tablas.
RO
d. Múltiples CLAVES PRINCIPALES pueden ser agregadas a una tabla.
6. ¿Cuál de las siguientes no es soportado por ALTER?
a. Agregar una columna nueva a una tabla.
b. Eliminar múltiples columnas de una tabla existente.
c. Modificar el tipo de dato de una columna existente.
IBE
a. SELECT
b. OPEN
c. EXTRACT
d. GET
CA
10. ¿Cuál sentencia SQL es utilizada para actualizar datos en una base de datos?
a. SAVE
b. MODIFY
c. SAVE AS
d. UPDATE
ÉRI
» Evaluación de aptitud
Como el nuevo administrador de bases de datos, se le ha dicho que necesita crear una base
de datos grande de empleados que almacenará la información de 10,000 empleados.
Nombre
AM
Digamos que tiene las siguientes columnas definidas en la tabla:
varchar(50)
www.pdftron.com
Apellido varchar(50)
Dirección varchar(75)
RO
Estado varchar(2)
CP varchar(9)
Edad int
date
IBE
Fechanacimiento
Se encuentra diseñando varias bases de datos para un cliente. Mientras diseña las bases
de datos, encuentra los elementos de datos enlistados. ¿Cuál tipo de datos utilizaría para
ETC
Radio de un planeta
El valor de pi (π)
Salario
La longitud de un tablón
CA
» Evaluación de destreza
ÉRI
Se le ha contratado como el nuevo administrador de base de datos. Necesita crear una
base de datos para los clientes. En este ejercicio, creará una tabla a la vez que define una
restricción de clave principal después de haber creado la tabla.
AM
Unique Customer ID
www.pdftron.com
FirstName – Hasta 50 caracteres
Manipulación de datos
CA
Matriz de Dominio de objetivos
ÉRI
objetivo
Uso de consultas para seleccionar datos Seleccionar datos 3.1
Uso de consultas para insertar datos Insertar datos 3.2
Actualizar datos y bases de datos Actualizar datos 3.3
Eliminar datos Eliminar datos 3.4
Términos Clave
AM
www.pdftron.com
• Combinación cruzada (cross join) • Join • Transacción
RO
• Delete • Integridad referencial • Union
• Intersect • Select • Update
IBE
Recién lo ha contratado una empresa mediana con pocos empleados y necesita proporcionar listas
de registros de los mismos para el recién contratado Vicepresidente de Recursos Humanos. Necesita
crear una variedad de listas diferentes utilizando varias sentencias Transact SQL para manipular los
datos y así cumplir con las necesidades que se le soliciten.
ETC
54 Lección 3
Aun cuando el título de este capítulo describa la manipulación de datos con el propósito de
realizar consultas, también se considera la modificación de datos a medida que modifique
las sentencias de consulta para obtener los resultados deseados. No importando el nombre
o descriptor, el propósito de cualquier base de datos es ofrecer al usuario la capacidad de
CA
extraer datos de la misma. La amplia mayoría de las sentencias de SQL se diseñaron para
recuperar información solicitada por el usuario a través de diversas sentencias de consultas.
Veamos las sentencias SQL más importantes que necesitará para entender de mejor manera
Transact SQL.
ÉRI
È EN RESUMEN
En esta sección, aprenderá a utilizar la consulta SELECT para recuperar o extraer datos de una tabla, a recuperar o
extraer datos utilizando combinaciones (joins) y a combinar resultados con UNION e INTERSECT.
; Listo para la El comando SQL para recuperar datos de una base de datos es SELECT. De manera similar
certificación
¿Cuál comando se
utiliza para mostrar
registros de una
AM
a otros comandos de SQL, la redacción es similar a la de enunciados en el idioma inglés. La
redacción de una sentencia SELECT es como si se completaran espacios en blanco, como
se indica a continuación:
www.pdftron.com
tabla?—3.1 SELECT id, name //columnas
FROM sysobjects // tablas
WHERE type = “jones” //condiciones de las cuales quiere
obtener resultados
RO
Resulta ser una sentencia sencilla, pero proporciona una explicación básica de lo que hace
la sentencia SELECT y siempre seguirá el mismo patrón cada vez que utilice una sentencia
SELECT para una base de datos.
Hay únicamente tres cosas que debe asegurarse de identificar en su sentencia para elaborar
una sentencia de consulta SELECT correcta:
IBE
• Columnas a recuperar
• Tablas de las cuales recuperar dichas columnas
• Condiciones que deben cumplir los datos
Los constructores anteriores son la estructura para la creación de sentencias de consulta
SELECT utilizando la ventana de edición de texto de SQL. Supongamos, por ejemplo que
necesita proporcionarle a su jefe una lista de empleados cuyo salario sea superior a $50 mil.
Sólo está interesado en recuperar los empleados que cumplan con esos criterios. He aquí
como obtendría esos resultados en SQL:
ETC
CA
“afectadas”? Puede
desactivar o activar Julia Smith 55,000
esta opción utilizando David Thompson 62,900
la sentencia SET
NOCOUNT. De forma (4 fla(s) afectadas)
predeterminada, se
encuentra desactivada Si quiere seleccionar una sola columna para su consulta, identifique el nombre de la misma
ÉRI
—3.1 ingresándola entre las palabras select y from en la sentencia de la consulta. Si quiere
identificar más de una columna en su consulta, agregue cada nombre de columna y separe
sus nombres con una coma. La coma se utiliza en lugar del espacio en blanco para que SQL
la utilice como un identificador o palabra de concordancia como “value” o “select”,
sin embargo, si necesita utilizar un espacio en blanco en su sentencia, utilice corchetes o
comillas dobles en los extremos. Por ejemplo, [select] o “value”.
Si desea seleccionar todos los nombres de las columnas de una tabla, lo puede hacer si
coloca un (*) donde se vaya a identificar el nombre de la columna.
AM
El único componente requerido de la consulta SQL SELECT es la cláusula SELECT…
FROM, lo que significa que puede seleccionar todos los campos disponibles de una tabla si
utiliza el siguiente comando:
www.pdftron.com
SELECT *
FROM empleados
RO
Con esto se puede producir un resultado muy amplio o pequeño, dependiendo de la
cantidad de empleados en la compañía. Utilicemos un ejemplo de una empresa con sólo 6
empleados de los cuales queremos una lista. Nuestro resultado se vería similar al siguiente:
(6 fla(s) afectadas)
Ahora cuenta con una compresión básica sobre la sentencia SELECT, así también
necesitará ser específico respecto a de “dónde” (WHERE) recuperará los tipos de datos de
ETC
La cláusula WHERE se puede utilizar para consultar los empleados que trabajan en el
departamento de Paquetería de la empresa como aparece a continuación:
nombre apellido
---------- --------
CA
Jim Alexander
Francis Drake
David Thompson
(3 fla(s) afectadas)
ÉRI
f Combinación de condiciones
Si cuenta con mayor información de la requerida de una consulta que únicamente tiene un conjunto de parámetros
para realizar la búsqueda de la información, puede combinar varias condiciones en una sentencia de consulta que
satisfaga sus necesidades. En el ejemplo anterior, realizamos una consulta que localiza los empleados que trabajan en
el departamento de Paquetería, pero tal vez quiera ese resultado y además (AND) necesite encontrar los empleados
que sean mujeres. En este caso, la condición de la sentencia SQL sería como se menciona a continuación:
www.pdftron.com
Los resultados serían los siguientes:
Nombre apellido
RO
----------- ---------
Francis Drake
(1 fla(s) afectadas)
El ejemplo anterior muestra a todos los empleados que están en el departamento Paquetería
que son mujeres:
IBE
También se puede utilizar la conjunción OR para hacer que las filas regresen un resultado
que cumpla con una de las condiciones.
El resultado sería:
ETC
nombre apellido
----------- ---------
James Alexander
David Thompson
Francis Drake
Alexandria Link
Peter Link
Antoin Drake
(6 fila(s) afectadas)
Manipulación de datos 57
CA
con la segunda condición en la sentencia de consulta WHERE.
En algunas situaciones tal vez necesite recuperar registros que cumplan con un rango
ÉRI
de condiciones donde se contenga también un valor que se encuentre entre un rango de
otro valor específico. Por ejemplo, tal vez necesite recuperar una lista de empleados que
cumplan con las condiciones anteriores pero que además dicho listado muestre un rango
de fechas de contratación para los empleados que se contrataron entre 1990 y el 2000.
Una forma de lograr este resultado es utilizando las dos condiciones combinadas con la
conjunción AND. Esto se logra de la siguiente forma:
AM
WHERE fecha_contratacion >= ‘1-Jan-1990’ AND fecha_
contratacion <= ‘1-Jan-2000’
Estas sentencias producirán los resultados deseados con base en las otras sentencias de
www.pdftron.com
consulta. El resultado sería:
(4 fla(s) afectadas)
IBE
Tal vez se pregunte lo que en realidad haga la consulta con base en las dos condiciones
y por qué la sentencia se ve rara en cuanto a su redacción. Puede resolver la cláusula
AND reemplazándola con una cláusula BETWEEN. Al hacerlo, podrá especificar un rango
a utilizar “entre x y y” en un formato de consulta mucho más claro. Reescribamos la
sentencia anterior para utilizar la condición between:
En algunos casos es más sencillo escribir su consulta para buscar datos en términos de lo
que no quiere obtener. Transact SQL le ofrece la cláusula NOT para tales situaciones. Una
situación en la cual pueda necesitar esta cláusula es por ejemplo en nuestras sentencias
anteriores SELECT. Podría necesitar un resultado que muestre los empleados que no
58 Lección 3
CA
El uso de operadores, como se muestra en varios de los ejemplos anteriores, pueden
ayudar a lograr los mismos resultados en la mayoría de las instancias. Se puede escribir
una consulta utilizando < (menor que) o un > (mayor que) en lugar de un signo igual. La
sentencia de consulta sería como aparece a continuación:
ÉRI
SELECT nombre, apellido
FROM empleados
WHERE departamento <> ‘paquetería’
Sin importar el sentido en el cual escriba la sintaxis para la sentencia de consulta, esta
producirá los mismos resultados.
AM
La cláusula UNION le permite combinar los resultados de dos o más consultas en un solo
conjunto resultante que incluirá todas las filas que pertenezcan a la consulta en esa unión.
La cláusula UNION es completamente diferente a las sentencias JOIN en la cuáles combina
www.pdftron.com
columnas de dos tablas diferentes. Hay un par de reglas básicas que necesita seguir al
combinar resultados de dos consultas a través del uso de la cláusula UNION:
• La cantidad y el orden de las columnas debe ser el mismo en cada una de las
consultas que utilice en esta cláusula.
RO
• Los tipos de datos que vaya a utilizar deben ser compatibles.
La consulta para utilizar la cláusula UNION en nuestros ejemplos podría ser el siguiente:
UNION
SELECT nombre, apellido
FROM empleadosWHERE fecha_contratacion BETWEEN ‘1-Jan-
1990’ AND ‘1-Jan-2000’
Estas dos cláusulas se encuentran diseñadas para regresar valores distintivos al comparar
el resultado de dos consultas. La cláusula EXCEPT regresa cualquiera de esos valores
distintivos de la consulta izquierda que no se encuentren en la consulta derecha, mientras
que la cláusula INTERSECT regresa cualquiera de los valores distintivos que no se hayan
regresado por ninguna de las consultas (izquierda o derecha) de este operando.
Las mismas dos reglas básicas para la combinación de los conjuntos de resultados de las
dos consultas para cualquiera de las cláusulas aplican aquí de la misma forma que con la
cláusula UNION:
Manipulación de datos 59
CA
ambiente laboral sería en un almacén, donde por ejemplo, le gustaría recuperar una lista
de productos que tengan órdenes de trabajo y otra que no las tengan. Podría realizar la
consulta como se indica a continuación, primero utilizando la cláusula INTERSECT:
SELECT ProductID
FROM Production.Product // El nombre de a base de
ÉRI
datos es Production y el de la tabla es Product
INTERSECT
SELECT ProductID
FROM Production.WorkOrder;
--Resultado: 238 Filas (productos que tienen órdenes de
trabajo)
AM
SELECT ProductID
FROM Production.Product
EXCEPT
SELECT ProductID
www.pdftron.com
FROM Production.WorkOrder;
--Resultado: 266 Filas (productos que no tienen órdenes
de trabajo)
RO
Uso de la cláusula JOIN
A medida que empiece a adquirir conocimientos más complejos sobre las sentencias de
consulta y sobre cómo cada cláusula manipula los datos, descubrirá las capacidades de una
base de datos relacional.
Las sentencias JOIN se parecen a las EXCEPT e INTERSECT en que regresan valores de
dos tablas separadas. Con base en esto, podemos continuar para aprender cuales datos se
pueden obtener a través de las sentencias JOIN.
Las sentencias JOIN se pueden especificar en las cláusulas FROM o WHERE, pero se
recomienda que las especifique en la cláusula FROM.
• OUTER JOIN puede incluir registros de una o ambas tablas que consulte que no
tengan registros correspondientes en la otra tabla. Hay tres tipos de joins externos:
LEFT OUTER JOIN, RIGHT OUTER JOIN y FULL OUTER JOIN
• CROSS JOIN regresará todas las filas de una tabla con todas las filas de la otra
tabla. Se deben incluir siempre condiciones WHERE.
Un ejemplo de las sentencias JOIN más comunes, INNER JOIN, puede ser si quiere
recuperar una lista de empleados por sus números ID y relacionarlos con los ID de los
supervisores de departamento con los que actualmente se encuentran trabajando. Para
realizar este tipo de consultas, tendrá que identificar la columna de relación en las dos
60 Lección 3
Tabla 3-1 tablas que vaya a utilizar en la consulta. En este ejemplo, la clave única o foránea en
Tabla empleados la Tabla 3-1 se identifica en la columna “departamento_id” y en la tabla 3-2 se
identifica como la columna de relación “departamento”:
CA
James Alexander 610001 1
David Thompson 620002 1
Francis Drake 610003 1
Alexandria Link 610004 2
Peter Link 620005 2
ÉRI
Antoin Drake 610006 3
Tabla 3-2
David Cruze 610007 NULL
Tabla departamento
AM Paul Franklin
Tratar de combinar los datos entre las tablas puede ser una tarea muy pesada, sobre todo
www.pdftron.com
si hay miles de filas de datos de las cuales se deban crear listas específicas. La sentencia
SELECT puede producir listas individuales, pero, toda la información que necesite, será
en una lista individual.
RO
Las palabras clave INNER JOIN simplificarán la recuperación de estos datos pero no sólo
incluyendo la información de las dos tablas que quiera consultar, sino incluyéndolas en la
cláusula FROM utilizando las palabras clave INNER JOIN y especificando las condiciones
requeridas. Por ejemplo, de las dos tablas de ejemplo, tal vez quiera crear una lista
que muestre cuales empleados trabajan para cada uno de los diferentes supervisores de
departamento. Deberá escribir la sentencia SQL como se indica a continuación:
departamento.nombre, departamento.apellido
FROM empleados INNER JOIN departamento
ON empleados.departamento = departamento.departamento_id
(6 fla(s) afectadas)
CA
Tal vez su jefe quiera una lista de registros de la segunda tabla que de hecho no cumpla
con ningunas de las condiciones anteriores. Cualquiera de las sentencias OUTER JOIN:
LEFT OUTER JOIN, RIGHT OUTER JOIN o FULL OUTER JOIN pueden realizar el
resultado deseado. Las sentencias OUTER JOIN empiezan donde los resultados de INNER
JOIN terminan e incluyen todos los registros en la tabla izquierda junto con los registros
coincidentes de la tabla derecha e incluyen cualquiera de los registros no coincidentes.
ÉRI
Un ejemplo de la sentencia LEFT OUTER JOIN incluye la sentencia INNER JOIN
mostrada con anterioridad e incluye una cláusula de no coincidencia como aparece a
continuación:
AM
El resultado sería:
www.pdftron.com
-------- --------- ------------ ----------
(7 flas afectadas)
IBE
Ahora observará que la única diferencia entre las sentencias INNER JOIN y OUTER
JOIN es la inclusión de David Cruze quien, como se mencionó con anterioridad, no se
encuentra asignado a ningún supervisor de departamento, por lo que su nombre muestra
un valor NULL en la lista donde las columnas se encuentran identificadas por cada nombre
y apellido de supervisor.
En algunos casos, tal vez quiera tener una combinación de tabla consigo misma. A esto se
le llama autocombinación debido a las instancias cuando quiera comparar registros desde
la misma tabla hacia las demás. Este tipo de tablas generalmente se encuentran cuando se
crean jerarquías organizacionales y se requiere de resultados de la misma.
ETC
Por ejemplo, tal vez quiera encontrar cuantos autores viven en la misma ciudad y
proporcionar una lista a una casa editorial. Este resultado se obtendría utilizando la
siguiente sentencia SELF-JOIN:
USE pubs
CA
El resultado sería:
ÉRI
David Jones Alex Starr
David Jones Linda Arrow
Alex Starr David Jones
Alex Starr Alex Starr
Alex Starr Linda Arrow
Linda Arrow David Jones
Linda Arrow Alex Starr
Linda Arrow Linda Arrow
Delina Burris David Burris
Jules
www.pdftron.com
Si desea eliminar las filas donde se repita el mismo autor, lo logrará con la sentencia
SELF-JOIN:
USE pubs
RO
SELECT autor1.nombre, autor1.
apellido, autor2.nombre, autor2.apellido
FROM autor1 INNER JOIN autor2
ON autor1.zip = autor2.zip
WHERE autor1.ciudad = ‘Pittsburgh’
AND autor1.estado = ‘PA’
AND autor1.autor_id < autor2.autor_id
IBE
(3 flas afectadas)
De los resultados obtenidos de la sentencia de consulta, David Jones, Alex Starr y Linda
Manipulación de datos 63
Arrow viven todos en Pittsburgh, PA y tienen los mismos códigos postales (ZIP).
CA
È EN RESUMEN
El objetivo es comprender cómo se insertan datos en una base de datos y cómo utilizar las sentencias INSERT.
ÉRI
; Listo para la
Hay varias formas diferentes en las cuales SQL Server le permite insertar datos en su base
certificación
de datos. Hay diferentes herramientas de inserción disponibles que le permitirán unirlos.
¿Cuál comando se
utiliza para agregar Si quiere insertar cantidades pequeñas de datos, por ejemplo, agregar nuevas filas en su
datos a una tabla? base datos, lo puede hacer de dos formas diferentes. La primera es utilizando la interfaz
—3.2 gráfica o con la sentencia INSERT.
Insertar datos
AM
Aprendamos primero cómo insertar datos en una tabla utilizando SQL Server Management
Studio antes de continuar con el método de sintaxis.
www.pdftron.com
Æ Insertar datos con SQL Server Management Studio
2. Expanda la carpeta de bases de datos al hacer clic en el signo de más (+) junto a la
palabra “bases de datos”.
3. Expanda la carpeta de la base de datos con la que va a trabajar y a modificar.
64 Lección 3
Figura 3-2
4. Expanda la carpeta Tablas haciendo clic en el signo de más.
Editar las primeras 200
filas 5. Haga clic derecho en el nombre de la tabla y seleccione Editar las primeras 200 filas (vea
la Figura 3-2).
CA
ÉRI
Figura 3-3
Pantalla resultante de
AM
www.pdftron.com
Editar las primeras 200 La Figura 3-3 muestra la pantalla resultante. Si tiene un valor predeterminado como el
filas campo IntIdentity, no necesitará proporcionar el campo en su sentencia de consulta:
RO
IBE
ETC
6. Introduzca sus datos en la última fila de la tabla para los datos que se consideren
nuevos (insertados). La última fila de la tabla contendrá valores NULL en cada una de las
columnas. Si resalta cada uno de los valores con el mouse se insertarán automáticamente
datos en la tabla. Vea la figura 3-3.
Manipulación de datos 65
CA
[^a-f] Cualquier carácter único que no esté en el rango
a-f
[abc] Cualquier carácter único contenido en la lista (a,
b, c)
[^abc] Cualquier carácter único que no esté en la lista
(a,b,c)
ÉRI
PAUSA. Deje SQL Server Management Studio abierto para el siguiente ejercicio.
El otro método de utilizar la cláusula insert se realiza al escribir una sentencia SQL en la
ventana de edición de texto, lo que le dará el mismo resultado que la interfaz gráfica si
utiliza la siguiente sintaxis:
º Tome Nota
Aunque la lista de
AM
INSERT INTO <nombre_tabla> (<columnas>)
VALUES (<valores>)
Las dos cláusulas <columnas> y <valores> tendrían sus listas separadas por comas de los
www.pdftron.com
nombres de las columnas en la tabla que desee incluir junto con los valores que quiera
columnas en la insertar.
sentencia insert es
completamente
No tiene que insertar sólo una fila de forma individual en la sentencia insert sino
opcional, se recomienda
que puede indicar varias filas utilizando una coma para separarlas. Esto es similar a
RO
especificar cuáles
cuando observa un archivo .CSV de Excel donde vería comas que separan columnas
columnas desea utilizar,
de información cuando se importe para utilizarlo en otra base de datos, como Access.
puesto que SQL asumirá
Pero, dentro de una sentencia INSERT, cada una de las filas identificadas por comas se
automáticamente que su
encerrará entre paréntesis.
lista de valores incluirán
todas las columnas en el
orden correcto. Para escribir una sentencia INSERT (en el siguiente ejemplo, se agregan dos empleados
a la tabla empleados), se vería como aparece a continuación:
IBE
El resultado sería:
(2 fla(s) afectadas)
ETC
CA
Es importante comprender cómo se actualizan los datos en una base de datos y cómo escribir los datos actualizados
en la base de datos utilizando las sentencias UPDATE apropiadas.
; Listo para la La función de la sentencia UPDATE es modificar los datos en una tabla o vista. Muy similar
certificación a cualquier manipulación o modificación de datos, las cláusulas y sentencias disponibles
ÉRI
¿Cuál comando se para utilizar en SQL pueden realizarse con la interfaz gráfica o en la ventana de edición de
utiliza para modificar texto.
los datos existentes en
una tabla? —3.3
AM
La cláusula UPDATE le permite modificar los datos que se encuentran almacenados en
tablas utilizando atributos de datos como se muestra a continuación:
UPDATE <nombre_tabla>
SET <atributo> = <valor>
www.pdftron.com
WHERE <condiciones>
Esta sentencia se parece a otras que hemos visto con anterioridad. Quiere actualizar una
tabla, en la que un identificador de columna refleje un valor específico. Tal vez quiera
RO
tener un atributo de un supervisor nuevo (piense en nuestro ejemplo de empleados),
Doug Able, siendo asignado a los empleados nuevos con el propósito de capacitación.
Ese supervisor podría tener el atributo, si vemos de vuelta nuestra tabla departamento
de un ID de 4 y se cumpliría con la cláusula WHERE respecto a la condición NULL de los
empleados sin supervisor. Veamos un escenario en el cual la sentencia UPDATE cumpla
con el ejemplo anterior.
IBE
Si no especifica los Ahora, necesitamos actualizar nuestra tabla empleados para reflejar a los empleados que
registros a actualizar,
no tengan asignado un supervisor de departamento. La sentencia UPDATE sería como se
todos los registros o
indica a continuación:
filas se actualizarán con
el nuevo valor. Esto es
UPDATE empleados
potencialmente dañino.
SET departamento = 4
WHERE departamento IS NULL
Manipulación de datos 67
CA
92 2010-04- dbo CREATEVIEW dbo vDVMPrep CREATE <EVENT_
INSTA…
03…. VIEW […
92 2010-04- dbo CREATE_VIEW dbo vTimeSeries CREATE <EVENT_
INSTA…
03…. VIEW […
ÉRI
92 2010-04- dbo CREATE_VIEW dbo vTargetMail CREATE <EVENT_
INSTA…
03…. VIEW […
NULL NULL NULL NULL NULL NULL NULL NULL
Si revisa de vuelta la Tabla 3-1, observará que un empleado, David Cruze, no tenía un ID
de departamento asignado a su registro en la tabla empleados. Su valor se representó como
AM
NULL en esa columna de departamento. Puesto que agregamos este nuevo supervisor en
la tabla departamento en nuestra sentencia insert into ahora el resultado de David Cruze
tiene a Doug Able como supervisor asignado.
Para actualizar una tabla con la interfaz gráfica, necesita seguir los siguientes pasos:
www.pdftron.com
• Abra Server Management Studio
• Abra la tabla que quiera actualizar
• Localice la fila de la cual quiera actualizar los registros en la vista de tabla desplegada
RO
Eliminar datos
È EN RESUMEN
Es importante comprender cómo eliminar datos de una o varias tablas y asegurar los datos y la integridad referencial
IBE
utilizando transacciones.
; Listo para la
certificación La sentencia DELETE elimina filas de una tabla o vista. Hay varias formas de llevar a cabo
¿Cuáles comandos se esta tarea. Puede identificar y eliminar filas individuales de una base de datos utilizando
utilizan para eliminar la sintaxis delete, eliminar todas las filas con la sentencia truncate table o eliminar toda
datos de una base de la tabla con la sentencia drop table. Todo depende de las necesidades que tenga o de la
datos? —3.4 cantidad de datos que necesite eliminar.
ETC
Puede utilizar la sentencia DELETE o eliminar una o más filas en una tabla o vista con la
º Tome Nota siguiente sentencia SQL:
Las filas que se
eliminarán sólo son de DELETE FROM <nombre_tabla>
la tabla que es llamada WHERE <conditiones>
en la cláusula delete
(tabla_o_vista)
68 Lección 3
CA
WHERE departamento = ‘contabilidad’
El resultado sería:
(1 fla(s) afectada)
ÉRI
Estos resultados muestran que el empleado que trabajaba en el departamento de
contabilidad se ha eliminado de la tabla empleados.
Tal vez quiera eliminar todas las filas de una tabla en particular, en este caso puede utilizar
la sentencia TRUNCATE TABLE, aun cuando podría verse tentado a utilizar DELETE y la
condición WHERE. Si lo hace, se produciría el mismo resultado pero podría tomarle mucho
AM
más tiempo si elimina filas de bases de datos muy grandes. La sintaxis TRUNCATE TABLE
se realiza de la siguiente manera:
www.pdftron.com
Cada resultado exitoso de SQL produciría lo siguiente:
En caso de que sólo quiera borrar toda la tabla al volverse obsoleta o porque simplemente
necesita eliminar una tabla de la base de datos. Para eliminar una tabla entera se realiza
lo siguiente:
Uno de los pasos más importantes que debe tomar al planear una base de datos, crear
ETC
Una medida de recuperación de fallos que se puede implementar con respecto a las tablas
de una base de datos, es a través de los métodos de integridad referencial. Uno de los
errores más comunes de la manipulación de base de datos es la perdida accidental de tablas
enteras. La mejor forma de evitar este tipo de situaciones es en primer lugar, asegurarse
Manipulación de datos 69
Uno de los mejores métodos es utilizar transacciones al actualizar los datos. Es común
eliminar, truncar o actualizar accidentalmente los datos durante las tareas regulares de
CA
mantenimiento y una de las mejores formas de evitarlo es utilizando transacciones al
actualizar los datos. Un buen punto para empezar es insertar un simple begin tran antes
de la sentencia SQL y si ha ejecutado de forma correcta, se puede emitir una sentencia
COMMIT desde SQL. Si hubiera un error en cualquiera de las sentencias, se emitiría un
rollback desde SQL.
ÉRI
A continuación se presenta una sentencia de transacción:
BEGIN TRAN
DELETE FROM <nombre_tabla>
Lo que sucede en este punto es que puede verificar que lo que hizo realmente se aplicó y
luego podría emitir una sentencia COMMIT para guardar los cambios o una ROLLBACK
para deshacer los cambios. Aunque en muchas ocasiones suceden errores, si utiliza BEGIN
TRAN y COMMIT o ROLLBACK al llevar a cabo las tareas de mantenimiento, podrá evitar
AM
accidentes con los datos.
www.pdftron.com
RO
IBE
ETC
70 Lección 3
Resumen de Habilidades
En esta lección aprendió:
CA
• Que el comando SQL para recuperar cualquier tipo de datos de una base de datos
es SELECT.
• Sólo hay tres cosas que necesita asegurarse que se incluyen en una consulta SELECT:
columnas a recuperar, tablas de las cuales recuperar información y las condiciones,
si es que hay alguna, que los datos deban cumplir.
ÉRI
• Una cláusula BETWEEN le permite especificar el rango a utilizar en un formato
de consulta “entre x y y”.
• La palabra clave NOT se utiliza para buscar datos en términos de lo que no se
quiere en los resultados.
• La cláusula UNION le permite combinar los resultados, de dos o más consultas
en un solo conjunto resultante que incluiría todas las filas que pertenezcan a la
consulta en esa unión.
• La cláusula EXCEPT regresa cualquiera de los valores distintivos de la consulta
AM
izquierda que no se encuentren en la consulta derecha, mientras que INTERSECT
regresa los valores que no resulten de las dos consultas (derecha e izquierda).
• La cláusula JOIN le permite combinar datos relacionados de varias tablas fuente.
• Para insertar datos, por ejemplo, puede utilizar la herramienta de interfaz gráfica
www.pdftron.com
o la sentencia INSERT.
• La función de la sentencia UPDATE es para cambiar los datos en una tabla o vista.
• La sentencia DELETE es para eliminar filas de una tabla o vista.
• La sentencia TRUNCATE TABLE sólo elimina los datos de una tabla, pero deja la
RO
estructura de la tabla para su uso posterior.
• El comando DROP TABLE se utiliza para eliminar una tabla por completo.
• La mejor forma de evitar la eliminación accidental de tablas enteras es utilizando
la integridad referencial, la que no permite la eliminación de tablas a menos que se
encuentren al final de la relación.
IBE
ETC
Manipulación de datos 71
» Evaluación de Conocimientos
Verdadero o Falso
CA
Encierre la V si el enunciado es verdadero o F si es falso.
V F 1. La sentencia SELECT se limita a consultar datos de una sola tabla.
V F 2. La sentencia INSERT se puede utilizar para insertar varias filas a la vez.
V F 3. La sentencia TRUNCATE se utiliza para eliminar una tabla
V F 4. Una INNER JOIN y condición son lo mismo que una CROSS
ÉRI
JOIN y una condición WHERE.
V F 5. El orden de las columnas en la sentencia SELECT debe
corresponder al orden en el que fueron creadas cuando se elaboró
la tabla.
Complete el enunciado
AM
Complete los siguientes enunciados escribiendo la palabra o palabras correctas en los
espacios en blanco.
1. La sentencia SELECT se utiliza para consultar y combinar datos de una o más _________.
www.pdftron.com
2. La cláusula WHERE de una sentencia SELECT contiene una o más ________ para filtrar
los datos consultados.
3. La forma más eficiente de eliminar todas las filas de una tabla es con la sentencia
______________.
RO
4. Para combinar los resultados de dos consultas, utilice el operador __________.
5. Utilice la sentencia _______ para modificar una o más filas en una tabla.
6. Si utiliza _______________y un _______________ o ____________al llevar a cabo
tareas de mantenimiento, podrá evitar muchos accidentes con los datos.
7. Se puede eliminar toda una tabla con la sintaxis __________ y ___________.
IBE
Opción múltiple
ETC
CA
c. INTERSECT
d. AND
3. ¿Cuál de las siguientes condiciones de rango generaría un error de sintaxis?
a. salary <= 50000 and salary >= 10000
b. salary between (10000 and 50000) and (60000 and 90000)
ÉRI
c. salary >= 10000 and salary <= 50000
d. salary between 10000 and 50000
4. ¿Cuál de las siguientes sentencias no sería válida en una sentencia SELECT?
a. mass*acceleration as force
b. 3.1415 as PI
c. (select max(age) from employee) as maxage
d.
AM
firstname + secondname as fullname
5. ¿Cuál de las siguientes opciones no es cierta sobre la integridad referencial?
a. Evita la eliminación parcial de los datos durante una transacción
www.pdftron.com
b. Evita la eliminación de una fila que contiene un valor al cual se hace referencia a
través de una clave foránea en otra tabla
c. Requiere que se cree una clave foránea para relacionar dos tablas.
d. La clave foránea se debe vincular a una clave primaria o índice único
RO
» Evaluación de aptitud
la ciudad de Sacramento?
5. ¿Cuál comando usaría para mostrar CompanyName, ContactName y PhoneNumber
de la tabla Suppliers que tengan un Supplier ID mayor que 1000?
6. ¿Cuál comando usaría para mostrar CompanyName, Contact y Phone Number de la
tabla Customers para las compañías que tengan más de 100 empleados y residan en
el estado de CA.
Manipulación de datos 73
CA
Después de que usted y el administrador de la red hayan revisado algunos registros de la
base de datos AdventureWorks, deciden eliminar algunos registros antiguos. Conteste las
siguientes preguntas.
1. ¿Cuál comando usaría para eliminar todos los registros de la tabla Customer donde
Age sea menor que 18?
2. ¿Cuál comando usaría para eliminar todos los registros de la tabla Schools con
ÉRI
Enrollment de menos de 500?
3. ¿Cuál comando usaría para eliminar todos los registros de la tabla Contact que no
tengan un país de USA y que libere el espacio utilizado por tales registros?
4. ¿Cuál comando usaría para eliminar la tabla Temp?
» Evaluación de destreza
AM
www.pdftron.com
Escenario 3-3: Manipulación de datos con las sentencias SELECT y
JOIN
CA
Annie, Smith, 10000
4. En la ventana de consultas existente, ¿cuáles comandos utilizaría para actualizar el
correo electrónico (Email) para Annie Smith en la tabla Credit utilizando la sentencia
Update?
5. En la ventana de consulta existente, ¿cuál comando utilizaría para ordenar los
ÉRI
resultados anteriores?
AM
www.pdftron.com
RO
IBE
ETC
Lección 4
CA
Matriz de Dominio de objetivos
ÉRI
objetivo
Normalizar una Base de Datos Comprender la Normalización. 4.1
Comprender las claves principales, Comprender las claves 4.2
externas y compuestas principales, externas y
compuestas.
Comprender los índices agrupados Comprender los índices. 4.3
y no agrupados
AM
www.pdftron.com
Términos Clave
• Índice agrupado • Restricción de clave externa • Clave principal
RO
• Clave compuesta • Forma • Datos redundantes
• Primera forma normal • Índice no agrupado • Segunda forma normal
• Clave externa • Normalización • Tercera forma normal
IBE
Necesita trabajar para un gran almacén de una compañía de distribución que proporciona equipo
de acampado al aire libre a más de 90 tiendas en Norte América. Ha recibido un memo que
informa que la compañía recién ha comprado una segunda tienda en el estado de Washington.
Su jefe le pidió agregar una nueva tabla a la base de datos para esta nueva tienda y necesita que el
mismo equipo que es vendido en la primera tienda sea ingresado en la nueva tabla de la tienda para
garantizar la integridad de las bases de datos así como también para asegurar que la nueva tabla
dentro de la base de datos se mantiene normalizada a la tercera forma normal.
ETC
76 Lección 4
En esta lección, aprenderá sobre la normalización de una base de datos, los cinco niveles
más comunes de normalización y el propósito de la normalización en lo que se refiere a
laintegridad de la base de datos. También aprenderá por qué las claves externas, principales
y compuestas juegan un rol integral en la integridad referencial.
CA
Normalizar una Base de Datos
È EN RESUMEN
ÉRI
El objetivo es comprender las razones de la normalización, los cinco niveles más comunes de normalización y cómo
normalizar una base de datos a una tercera forma normal.
º Tome Nota La razón principal para utilizar las técnicas de normalización, con respecto al almacenamiento
La normalización es la de datos, fue desarrollado en los días en los que el almacenamiento de datos costaba mucho
eliminación de datos más de lo que cuesta ahora. La Normalización en pocas palabras, es la eliminación de datos
redundantes para redundantes para ahorrar espacio. Ahora que comprende la definición en general de esta
ahorrar espacio. importante organización de datos, veamos más a fondo los conceptos de normalización y su
AM
aplicación cuando se busca un diseño de base de datos en su rutina diaria.
f ¿Qué es la Normalización?
www.pdftron.com
La normalización está basada por completo en el diseño de datos y procesos de organización los cuales son derivados
de reglas utilizadas cuando se construyen y diseñan bases de datos relacionales. Por lo tanto, su comprensión de qué
son las bases de datos relacionales y las buenas metodologías de diseño son extremadamente importantes.
; Listo para la
RO
certificación
Cuando se busca la normalización por definición, este es el proceso de organizar datos con
¿Cuáles son las tres el fin de reducir la redundancia de datos dividiendo una base de datos en dos o más tablas
primeras formas de y luego definiendo las relaciones de tabla. El objetivo de esta operación es aislar datos
no malización y cómo de forma que las adiciones, eliminaciones y modificaciones que ocurren en cada campo
difieren entre sí? —4.1 pueden ser hechas dentro de una tabla y luego propagarlas a través del resto de la base de
datos utilizando estas relaciones definidas.
IBE
Tomando una vista detallada de las formas normales este capítulo ofrece un estudio más
formal del diseño de una base de datos relacional. Al contrario de la opinión popular,
las formas no son una metodología progresiva, pero representan un nivel progresivo de
aceptación. Técnicamente, no puede estar en 2NF hasta que se haya cumplido 1NF, por
lo tanto, no planee diseñar una entidad y moverla a través de la primer forma normal a la
segunda forma normal y así sucesivamente conforme cada forma normal sea simplemente
un tipo diferente de integridad de datos con requerimientos cumplidos.
Comprender el Almacenamiento de Datos 77
La primera forma normalizada (1NF) significa que los datos están en un formato de
entidad, lo cual básicamente significa que se deben cumplir las siguientes tres condiciones:
CA
• La tabla no debe tener registros duplicados. Una vez que ha definido la
clave principal para la tabla, ha cumplido el primer criterio de forma
normalizada.
• La tabla tampoco debe tener atributos multi-valores, lo cual significa, que
no puede combinar valores múltiples que son considerados válidos para una
columna en una sola. Por ejemplo de la primera forma normal en acción,
ÉRI
considere el enlistado de campamentos base (baseCamp) y paseos (tours)
de la base de datos de Cape Hatteras Adventures. La Tabla 4-1 muestra los
datos de los campamentos base en un modelo que viola la primera forma
normal. El atributo repetido del paseo (tour) no es único.
• Las entradas en la columna o atributos son del mismo tipo de datos.
Tabla 4-1
Datos de los BaseCamp Tour1 Tour2 Tour3
campamentos base Ashville Appalachian Blue Ridge Parkway
(antes) – Violando la
Primera Forma Normal
AM
Cape Hatteras
Trial
Outer Banks
Lighthouses
Hike
www.pdftron.com
Freeport Bahamas Dive
Ft. Lauderdale Amazon Trek
West Virginia Gauley River
Rafting
RO
Para rediseñar el modelo de datos de forma que cumpla con la primera forma normal,
resolver el grupo repetitivo de los atributos de Tour en un solo atributo único, como se
muestra en la Tabla 4-2 y luego mueva cualquier valor múltiple a una tabla única. La
entidad BaseCamp contiene una tabla única para cada campamento base y la entidad del
Tour BaseCampID se refiere a la clave principal en la entidad BaseCamp.
Tabla 4-2
IBE
5 Amazon Trek 5
Gauley River Rafting
78 Lección 4
La segunda forma normal (2NF) garantiza que cada atributo en realidad describe a la
entidad. Está totalmente basado en dependencia y en los atributos de la entidad en
CA
cuestión, los cuales no son parte de una clave candidato, debe ser funcionalmente
dependiente de la clave principal. Lo que termina sucediendo en ocasiones, es que las
claves principales combinadas pueden algunas veces dar problemas con la segunda forma
normal si los atributos no son dependientes en cada atributo en la clave principal. Si un
atributo depende en uno de los atributos de la clave principal pero no de otro, entonces se
convierte en una dependencia parcial, lo que viola la segunda forma normal.
ÉRI
Para comprender mejor cómo puede violar las reglas de la segunda forma normal, la tabla
4-3 muestra un ejemplo de los mismos datos de campamento base. La tabla 4-4 muestra
un ejemplo de ésta después de que ha sido conformada.
Tabla 4-3 PK-BaseCamp PK-Tour Base Camp PhoneNumber
Datos de los Ashville Appalachian Trail 828-555-1212
Campamentos Base Ashville Blue Ridge Parkway Hike 828-555-1212
(antes) – Violando la
Segunda Forma Normal Cape Hatteras Outer Banks Lighthouses 828-555-1213
Freeport
Ft. Lauderdale
West Virginia AM Bahamas Dive
Amazon Trek
Gauley River Rafting
828-555-1214
828-555-1215
828-555-1216
www.pdftron.com
Tabla 4-4
Datos de los Entidad del tour Entidad BaseCam
Campamentos Base PK-Base PK-Tour PK-Base Camp PhoneNumber
RO
(después) – Conforme a la Camp
Segunda Forma Normal
Ashville Appalachian Trail Ashville 828-555-1212
Ashville Blue Ridge Parkway Cape Hatteras 828-555-1213
Hike
Cape Hatteras Outer Banks Lighthouses Freeport 828-555-1214
Freeport Bahamas Dive Ft. Lauderdale 828-555-1215
IBE
La tercera forma normal (3NF) verifica las dependencias transitivas. Una dependencia
transitiva es similar a la dependencia parcial en que ambas se refieren a los atributos que
no son totalmente dependientes en una clave principal. Una dependencia es considerada
transitoria cuando el atributo 1 es dependiente en el atributo 2, el cual es entonces
ETC
CA
Datos de los Ashville 1-828-555-1212 Jeff Davis 5/1/99
Campamentos Base Cape Hatteras 1-828-555-1213 Ken Frank 4/15/97
(antes) – Violando la Freeport 1-828-555-1215 Dab Smith 7/7/2001
Tercera Forma Normal
Ft. Lauderdale 1-828-555-1215 Sam Wilson 1/1/2002
West Virginia 1-828-555-1216 Lauren Jones 6/1/2000
ÉRI
Entidad de Tour Entidad de LeadGuide
Tabla 4-6 BaseCampPK LeadGuide LeadGuidePK DateofHire
Datos de los Ashville, NC Jeff Davis Jeff Davis 5/1/99
Campamentos Base Cape Hatteras Ken Frank Ken Frank 4/15/97
(después) – Conforme a la
Tercera Forma Normal Freeport Dab Smith Dab Smith 7/7/2001
West Virginia Lauren Joes Lauren Joes 6/1/2000
AM
Cómo Normalizar una base de datos a la Tercera Forma Normal
www.pdftron.com
Hay dos requerimientos básicos para que una base de datos esté en la tercera forma
normal:
• Ya cumplen los requerimientos tanto de 1NF y 2NF
RO
• Remueve las columnas que no dependen completamente en la clave
principal
Con el fin de comprender cómo una base de datos es puesta en la tercera forma normal,
veamos un ejemplo de este propósito:
Imagine que se tiene una tabla de widget orders que contiene los siguientes atributos:
IBE
subconjunto de datos que apliquen a múltiples filas?, No, entonces también se satisfacen
los requerimientos de 2NF. Ahora, ¿todas las columnas son totalmente dependientes de la
clave principal? El número de cliente varía con el número de orden y no parece depender
de ninguno de los otros campos. ¿Qué pasa con el precio unitario? Este campo puede ser
dependiente al número de cliente en una situación donde le cargamos a cada cliente el
precio fijo. Sin embargo, basado en la información proporcionada en los campos de la tabla,
podríamos algunas veces cargar distintos precios al mismo cliente. Por lo tanto, el precio
unitario es totalmente dependiente del número de orden. La cantidad de artículos también
varía de orden en orden, así que está correcto. ¿Qué pasa con el total?, pareciera que
tenemos un problema. El total puede ser derivado de multiplicar el precio unitario por la
80 Lección 4
CA
• Número de Cliente
• Precio Unitario
• Cantidad
Ahora nuestra tabla está en 3NF. Pero, podría preguntar, ¿Qué pasa con el total? Este es
un campo derivado y es mejor no almacenarlo en la base de datos. Podemos simplemente
ÉRI
computarlo “en tiempo de ejecución” cuando desempeñamos consultas en la base de datos.
Por ejemplo, podríamos haber utilizado previamente esta consulta para recuperar los
números de orden y los totales:
FROM WidgetOrders
AM
SELECT OrderNumber, UnitPrice * Quantity AS Total
Con el fin de lograr los mismos resultados, sin violar las reglas de normalización.
www.pdftron.com
Cuarta Forma Normal (4NF) Aislar relaciones múltiples independientes
RO
La cuarta forma normal (4NF) involucra dos atributos independientes reunidos para
formar una clave primaria junto con un tercer atributo. Pero, si los dos atributos realmente
no identifican únicamente a la entidad sin el tercer atributo, entonces el diseño viola la
cuarta forma normal.
La quinta forma normal (5NF) proporciona el método para diseñar relaciones complejas
involucrando múltiples entidades (regularmente tres o más). Es comúnmente discutido
entre administradores de bases de datos que satisfaciendo los requerimientos de la tercera
forma normal es suficiente. Cuando se mira en las cuartas y quintas formas normales,
podrían ser complejas, pero violarlas puede causar problemas severos. Es importante mirar
el diseño de la base de datos como un todo y no sólo como diseñar algo para llenar la
mitad de las necesidades de sus usuarios, empleados, etc. No es necesario, si el número de
entidades son utilizadas o no, es una cuestión de alinear apropiadamente los atributos y
ETC
claves. Cualquier violación de las formas normales puede causar un efecto de cascada con
violaciones múltiples y bases de datos ineficientes. La normalización también reduce la
contención de bloqueos y mejora el desempeño de usuarios múltiples junto con estas tres
ventajas:
• Costos de desarrollo: Mientras tomaría más el diseñar una base de datos
normalizada, es más fácil trabajar con una base de datos normalizada y así
reduce los costos de desarrollo.
Comprender el Almacenamiento de Datos 81
CA
y por lo tanto más difícil de modificar. Esto lleva a retrasos en el despliegue
de nuevas bases de datos a los usuarios e incrementa los costos de desarrollo.
ÉRI
y los cambios en las prácticas de diseño del desarrollo de bases de datos relacionales, ha
habido algunos beneficios medibles presentados a las organizaciones. Incluyendo:
• Consistencia de datos mejorada y mejor cumplimiento de las reglas de
negocio
• Habilidad mejorada para compartir datos, especialmente a través de largas
distancias
• Habilidad mejorada para introducir, buscar y recuperar información
AM
• Funciones de reporteo mejoradas
• Habilidad mejorada para analizar tendencias de datos a través de
funcionalidad de reporteo mejorada
www.pdftron.com
Cuando las bases de datos fueron diseñadas por primera vez, el ahorrar tiempo
introduciendo datos no era considerada una parte importante del diseño de una base de
datos, sino que más bien, las bases de datos fueron diseñadas con propósitos de calidad y
velocidad de recuperación de datos. Sin embargo, con el inicio de la necesidad de colección
de datos automatizada en tales industria como la fabricación, utilización de código de
RO
barras en la venta al por menor, las bases de datos continuamente compartían más datos
y los consumidores ubicaban sus propias ordenes de comercio electrónico en Internet, el
esfuerzo y tiempo requerido para introducir los datos también se ha convertido en un
factor de importancia en el diseño de base de datos.
En otras palabras, una base de datos relacional y una cotidiana hoja de cálculo común son
realmente bastante similares desde el punto de vista de la teoría de diseño. Una base de
datos relacional colecciona datos relacionados o comunes en una sola lista. Por ejemplo,
toda la información del producto debe ser enlistada en una tabla y todos los clientes en otra
tabla. Una tabla parece similar a una hoja de cálculo y está diseñada con columnas y filas.
Esto es realmente donde las similitudes entre una base de datos relacional y una hoja de
cálculo común terminan rápidamente. Una aparente ventaja de una hoja de cálculo es su
estilo de desarrollo informal, haciéndola fácil de modificar y agrandarla conforme madura
el diseño. De hecho, los administradores tienden a almacenar información crítica en hojas
ETC
de cálculo en lugar de en una base de datos. Pero, muchas bases de datos comenzaron como
hojas de cálculo informales y se trasladaron a un diseño de base de datos relacional más
fuerte y mucho más amplio.
Cuando se mira el diseño de lo que es una hoja de cálculo y una base de datos, es importante
darse cuenta que visualmente tanto la hoja de cálculo y la base de datos cada una tiene filas
o un ítem y cada columna mantiene una pieza específica de datos referente a ese ítem y
cada celda debería contener una sola pieza de datos sobre un solo ítem.
82 Lección 4
CA
tabla es más crítico.
ÉRI
È EN RESUMEN
El objetivo es comprender la razón de ser de las claves en una base de datos, eligiendo las claves principales
apropiadas, seleccionando los tipos de datos apropiados para las claves, seleccionando los campos adecuados para
claves compuestas y comprender la relación entre claves externas y principales.
; Listo para la
certificación Existen tres tipos distintos de restricciones disponibles dentro de SQL Server que
¿Cuál es la diferencia
entre una clave
principal y una
externa?—4.2
AM
le garantizaran que es capaz de administrar la integridad de la base de datos, la clave
principal, clave externa y clave compuesta (única). Una clave de restricción única le
permitirá cumplir la propiedad de unicidad de columnas, que no sea una clave principal
dentro de una tabla. Una clave de restricción única actúa similar a una clave principal,
www.pdftron.com
pero con dos diferencias importantes:
• Las columnas que contienen una clave de restricción única pueden contener
solo un valor NULL. No puede tener dos filas que contengan un valor
NULL en la misma opción ya que violaría el valor de error duplicado de la
RO
restricción única.
• Una tabla puede tener múltiples restricciones únicas
PREPÁRESE. Para insertar datos a través de la herramienta de la interfaz gráfica, siga estos
pasos. Antes de que comience, asegúrese de lanzar la aplicación de SQL Server Management
IBE
Figura 4-1
Vista de Diseño
CA
ÉRI
AM
www.pdftron.com
2. Desde el menú desplegable de Diseñador de Tablas ubicado en la parte superior de la
barra de herramientas del menú, seleccione Índices o Claves, como se muestra en la
Figura 4-2. Esto abrirá la ventana de Índices o Claves. Se dará cuenta que la tabla ya tiene
RO
una restricción de clave principal identificada como se muestra en la Figura 4-3.
Figura 4-2
Índices o Claves
IBE
ETC
84 Lección 4
Figura 4-3
Conectándose a una Base
de Datos
CA
ÉRI
AM
www.pdftron.com
3. Haga clic en el botón Agregar para crear una nueva clave.
4. Haga clic en la propiedad Tipo en el lado derecho del cuadro de la propiedad y cámbielo
del Índice por defecto a Clave Unique, como se muestra en la Figura 4-4.
RO
Figura 4-4
Type Property Box
IBE
ETC
Comprender el Almacenamiento de Datos 85
CA
a agregar
ÉRI
AM
www.pdftron.com 6. Haga clic en el botón cerrar
RO
7. Guarde su restricción recién creada seleccionando el “guardar todo” desde el menú
Archivo, como se muestra en la Figura 4-6.
Figura 4-6
Guardar una restricción
nueva
IBE
ETC
PAUSA. Deje abierta la interfaz de SQL Server Management Studio abierta para el siguiente
ejercicio.
CA
Claves principales
Tal vez el concepto más importante del diseño de cualquier tabla de base de datos es que
tiene una clave principal, un atributo o conjunto de atributos que pueden ser utilizados para
identificar de forma única a una fila. Cada tabla debe tener una clave principal, sin una
clave principal, no es una tabla valida. Por definición, una clave principal debe ser única
ÉRI
y debe tener un valor (que no sea null). Para algunas tablas, podría haber múltiples claves
principales posibles para elegir, tal como, número de empleado, número de licencia de
manejo o un número emitido por el gobierno tal como Número de Seguro Social (NSS).
En este caso, todas las claves principales potenciales son conocidas como claves candidato.
Las claves candidato que no son seleccionadas como la clave principal, son conocidas como
claves alternas. Recuerde, en la fase de diagramación de base de datos inicial, la clave
principal podría ser fácilmente visible, por ejemplo, podría ser un número de empleado,
un nombre de fabricante, pero, frecuentemente no hay un valor de identificación única
reconocible claramente para cada ítem cuando se busca en la mayoría de los casos en el
mundo real.
Claves externas
AM
www.pdftron.com
A través de los capítulos de este libro, ha sido inundado con la terminología de bases de
datos relacionales. Esta terminología lleva también hacia el uso de claves de índice, tales
como las claves externas. Es importante que note que cuando se discute tan importante
RO
aplicación de integridad de base de datos, la integridad referencial siempre jugara un rol
importante en esa aplicación.
Cuando tiene dos tablas relacionadas entre sí, una de estas tablas actuará como principal
y la otra como secundaria. Con el fin de conectar las dos tablas, la clave principal es
entonces replicada de la tabla principal a la secundaria y ahora todos los atributos clave
duplicados desde la tabla principal son conocidos como la clave externa. Aunque esto
podría ser definido, en ocasiones, como una relación padre-hijo, hacer cumplir el atributo
IBE
de clave externa está realmente definido como integridad referencial (referirse al último
capítulo discutiendo la integridad referencial).
La figura 4-7 permite tener una mejor idea visual del tipo de claves de índice.
ETC
Comprender el Almacenamiento de Datos 87
Figura 4-7
Clave de índice
CA
ÉRI
AM
www.pdftron.com
Cuando se discuten las claves externas, claves principales, etc. La terminología casi
siempre incluirá la restricción como parte de la descripción. Como ejemplo a cual rol se
refiere la restricción de clave externa, utilicemos el ejemplo de una base de datos de una
RO
tienda de venta al por menor. Cada tienda tendrá una tabla que contenga la información
relativa a esa tienda, tal como información de empleado, productos vendidos, inventario
y probablemente la información con respecto a los clientes. Con el fin de referenciar los
datos de la tabla lógicamente sería crear un campo de Unit_Number dentro de la tabla
de Employees y este campo contendría el Unit_Number (la clave principal de la tabla
Stores) de la tienda de los empleados, por lo tanto crear un enlace entre las dos tablas.
¿Configurado lógicamente o no? Pregúntese a sí mismo “¿Qué pasa si una de las tiendas
º Tome Nota
cierra en el futuro?”. Sería más probable que todos los empleados asociados con la tienda
IBE
Cada tabla debe tener serian entonces “huérfanos” como si hubieran sido asociados con el campo Unit_Number
una clave principal, sin que ya no existe. También hay posibilidades para el potencial error humano por lo cual
una clave principal, no durante la entrada de datos de un empleado en la base de datos, alguien podría teclear
es una tabla valida. Por inadvertidamente un Unit_Number incorrecto para un empleado, por lo tanto crear un
definición, una clave número para una tienda que no existe. Este podría ser un problema durante el tiempo de
principal deber ser pago de nóminas o para otras acciones de los recursos humanos. Estos tipos de problemas
única y debe tener un están definidos como cuestiones de “integridad relacional”, como lo aprendió en el capítulo
valor (el cual no es null). anterior. SQL Server proporciona la restricción de clave externa necesaria para prevenir que
ocurra este tipo de error. Una clave externa entonces crea una relación entre dos tablas
ETC
enlazando la clave externa de una de las tablas a la clave principal de la tabla referenciada.
88 Lección 4
PREPÁRESE. Para crear una restricción externa a través de la herramienta de interfaz gráfica,
siga estos pasos. Antes de que inicie, asegúrese de lanzar la aplicación del SQL Server
CA
Management Studio y conéctelo a la base de datos con la que desea trabajar.
1. En el SQL Server Management Studio, abra la tabla en la que desea crear una clave
externa. Haga clic derecho en “vista de diseño” desde el menú emergente que observa,
como se muestra en la Figura 4-8.
Figura 4-8
ÉRI
Vista de Diseño
AM
www.pdftron.com
RO
2. Desde la lista del menú desplegable del Diseñador de Tablas, como se muestra en la
IBE
Figura 4-9
Seleccione “Relaciones”
CA
ÉRI
AM
www.pdftron.com
3. Seleccione la tabla en la que desea agregar la clave externa.
4. Haga clic en el (…) el cual se encuentra al lado del cuadro de dialogo de la propiedad de
Especificación de Tablas y Columnas, como se muestra en la Figura 4-10.
RO
Figura 4-10
Cuadro de la propiedad
Tipo
IBE
ETC
90 Lección 4
CA
que se refiere su clave
externa
ÉRI
AM
www.pdftron.com
RO
6. Una vez que ha terminado de agregar la información de la tabla de clave externa, haga
clic en “Aceptar” para cerrar la ventana de diálogo.
7. Haga clic en el botón cerrar.
8. Guarde su restricción recién creada
DEJE abierta la interfaz del SQL Server Management Studio para el próximo ejercicio.
IBE
A través de la creación de esta relación de clave externa entre dos tablas, SQL Server ahora
requerirá todos los valores asociados con la restricción, en la tabla de clave externa tienen
valores correspondientes a la tabla de la clave principal. Esto no requiere que suceda lo
contrario basta que la clave primaria corresponda con los valores con la tabla de la clave
principal. Recuerde, que puede tener múltiples valores que correspondan en la tabla de la
clave externa que puede referirse al mismo registro en la tabla de la clave principal.
Una de las discusiones más confusas con respecto a las claves principales es con la definición
de la clave principal compuesta. Una clave principal compuesta ocurre cuando define más
de una columna como su clave principal y aunque muchos administradores de base de
datos no las utilizan o están conscientes de ellas, ellas juegan una parte integral en el
diseño de un buen y sólido modelo de datos. Como ejemplo simplificado, tome las tablas
en una base de datos y categorícelas basado en dos tipos de datos:
• Tablas que definen entidades
• Tablas que relacionan entradas
Comprender el Almacenamiento de Datos 91
Las tablas que definen entidades son las tablas que definen cosas tales como clientes,
vendedores, transacciones relacionadas con ventas. Puede elegir cualquier columna en
estas tablas como una clave principal, por el bien de esta discusión acerca de las claves
principales compuestas, las tablas que definen entidades no es el tema importante de esta
discusión.
CA
Cuando observa tablas que relacionan entidades, es cuando la clave principal compuesta
juega un rol muy importante. Utilizando nuestro ejemplo anterior, suponga que tiene
un sistema que registra clientes y que el sistema le permite asignar múltiples productos
a múltiples clientes con el fin de indicar que pueden o no ordenar, usted observa una
relación “muchos a muchos” entre las tablas Customer y Products. Ya que tiene una tabla
ÉRI
para clientes (Customers) y una para productos (Products) y tiene seleccionada la clave
principal para la columna ProductID de la tabla Products y la columna CustomerID de la
tabla Customers, buscando la manera de definir nuestra tabla CustomerProducts.
La tabla CustomerProducts relaciona a los clientes con los productos, así que el propósito
de esta tabla es relacionar las dos entidades las cuales ya han sido definidas dentro de la
base de datos. Muchas veces, cuando el administrador de bases de datos está diseñando
una tabla por primera vez, un gran esfuerzo se dirige a garantizar la integridad de los
datos siguiendo las guías de diseño, asegurándose que la clave principal de la tabla está
AM
identificada, un administrador de base de datos garantiza que la integridad de datos es
mantenida. El resumen es que con el fin de mantener la integridad de datos, la clave
principal debe formar parte de los requerimientos de diseño para cada tabla.
www.pdftron.com
Muchas veces una tabla no está diseñada con previsión de la posible duplicidad de entradas
de datos y aunque muchos piensan que el UI (Identificador Único) puede manejar cualquier
duplicidad de datos, siempre hay un punto en el tiempo cuando se pueden actualizar los
datos de la tabla. Tales tiempos podrían ser cuando un sistema es actualizado y hay una
RO
necesidad de mover datos o que necesita restaurar alguna forma de transacción desde un
respaldo, por lo tanto, hay una necesidad de garantizar que la integridad de datos es
mantenida.
Es importante comprender los índices clustered (agrupados) y non-clustered (no agrupados)y su propósito en las
bases de datos.
ETC
; Listo para la
certificación Como administrador de base de datos, es importante comprender cuál de los dos tipos de
¿Cuáles son las índices (clustered y non-clustered) hacer y cuál es el rol de estos índices dentro del entorno
diferencias entre un de base de datos. Un ejemplo de lo que es un índice seria si ha adquirido algún tipo de
índice clustered y uno libro y necesitará buscar algún tema en particular, palabra o idea, no dudaría en buscar en
non-clustered?—4.3 el índice en la parte trasera del libro. La Indexación con las bases de datos, en el amplio
esquema de cosas, es exactamente lo mismo. En SQL server, si desea recuperar datos desde
dentro de una base de datos, SQL server verificaría cada fila para buscar la consulta por
la que está tratando de encontrar información. ¿Esto suena como una cantidad increíble
de tiempo gastado ineficientemente? Si respondió que sí, ¡estaría en lo correcto! Lo que
92 Lección 4
hace el SQL Server, con la ayuda de los administradores de bases de datos, es construir y
mantener una variedad de índices con el fin de ubicar y enviar de regreso campos utilizados
rápida y comúnmente. El único inconveniente real de utilizar la indexación es el tiempo
que toma construir los índices actuales y el espacio de almacenamiento requerido para
CA
los índices. Una de las decisiones importantes a tomar cuando se toma la tarea de utilizar
índices es que los índices son apropiados para su base de datos basado en los tipos de
consultas que va a desempeñar. Recuerde, SQL Server le permite crear sus índices ya sea en
columnas sencillas o múltiples, pero, la velocidad real que ganará será en aquellos índices
basados en la columna (s) dentro del índice.
ÉRI
Índices clustered
º Tome Nota Cuando comienza a mirar la implementación de índices, es importante recordar que cada
tabla puede tener solo UN índice clustered que define cómo el SQL Server ordenará los
Sólo un índice clustered
datos almacenados dentro de la tabla ya que los datos solo pueden ser ordenados de
es permitido para cada
una manera, simplemente no es posible tener dos índices clustered en la misma tabla.
tabla.
También debería mencionarse que el índice clustered es una construcción física, contrario
a la mayoría de los índices los cuales son lógicos o basados en software.
AM
Una de las características de SQL Server es la creación automática de un índice clustered
cuando la clave principal está definida para una tabla. Una clave principal significa para
usted, como administrador de base de datos, determinar la creación índices non-clustered
basados en las columnas en una tabla.
www.pdftron.com
Aunque lo que ha sido explicado es mucho más que una visión simplista de las definiciones
de clustered y non-clustered y por qué han sido creados, es importante observar las bases
de un índice.
RO
Un índice es una estructura en disco (o almacenada) asociada totalmente con una tabla
o una vista la cual ayuda a la velocidad de recuperación de datos. Con el fin de construir
este índice, una serie de claves son construidas desde uno o más columnas en cada fila
dentro de la tabla o vista. Estas claves son luego almacenadas en una estructura llamada
un Árbol-B el cual permite SQL Server encuentre la fila (s) asociadas con estos valores
definidos mucho más rápida y eficientemente. Un ejemplo de una estructura de Árbol-B
puede ser encontrado en la Figura 4-12.
IBE
ETC
Comprender el Almacenamiento de Datos 93
Figura 4-12
Estructura de Árbol-B
CA
ÉRI
AM
Ahora, en caso de un índice clustered, los datos son ordenados y almacenados en la tabla o
vista la cual está basada en sus respectivos valores de clave. Estas columnas están incluidas
dentro de la definición de índice ya que los datos en las columnas son ordenados en un solo
www.pdftron.com
orden, esto es porque, como se mencionó en la introducción, solo puede tener un índice
clustered por tabla.
En los términos de cuando una tabla tiene un índice clustered, es considerada una
tabla clustered y cuando una tabla tiene un índice non-clustered, las filas de datos son
RO
almacenadas en un estatus desordenado llamado “heap”. Esto nos trae la definición de lo
que es un índice non-clustered.
Índices non-clustered
Tiene la libertad de crear sus propios índices non-clustered ya que tienen una estructura
IBE
Hay dos maneras de crear un índice non-clustered en una tabla. Una utilizando sentencias
de secuencias de comandos de Transact-SQL y la otra es a través de la interfaz visual del
SQL Server Management Studio. Es importante saber cómo crear los índices de cualquier
manera.
Para crear una tabla non-clustered a través de la herramienta de la interfaz gráfica, siga
estos pasos.
CA
PREPÁRESE. Antes de empezar, asegúrese de lanzar la aplicación del SQL Server
Management Studio y conéctelo a la base de datos con la que desea trabajar.
1. Haga clic en el icono de suma (+) a la izquierda de la carpeta de las “Bases de Datos” con
el fin de expandirlas. Deberá observar instancias de muchas subcarpetas de su carpeta
ÉRI
principal “bases de datos” (Como se muestra en la Figura 4-13).
Figura 4-13
Carpeta de Bases de
Datos
AM
www.pdftron.com
RO
IBE
2. Haga clic en el icono de suma (+) al lado de la base de datos en la que le gustaría crear un
índice (como se muestra en la Figura 4-14). Ahora deberá observar muchas subcarpetas
apareciendo.
ETC
Comprender el Almacenamiento de Datos 95
Figura 4-14
Creando un Índice
CA
ÉRI
AM
www.pdftron.com
3. Haga clic en el icono de suma (+) a la izquierda de la carpeta Tablas con el fin de
expandirla (como se muestra en la Figura 4-15). Ahora deberá ver un número de tablas
aparecer debajo de la carpeta Tablas.
Figura 4-15
RO
Viendo la carpeta Tablas
IBE
ETC
Figura 4-16
Menú del Nuevo Índice
CA
ÉRI
AM
www.pdftron.com
5. Ahora observará un Nuevo cuadro de dialogo aparecer, el cuadro de las propiedades
del Nuevo índice por el cual puede introducir las entradas deseadas. Esto es donde
seleccionaría si el tipo de índice sería clustered o non-clustered (como se muestra en la
Figura 4-17)
RO
Figura 4-17
Cuadro de propiedades
del Nuevo Índice
IBE
ETC
PAUSA Deje la interfaz del SQL Server Management Studio abierta para el siguiente ejercicio.
Comprender el Almacenamiento de Datos 97
Para seleccionar un índice clustered, podría verse similar a la Figura 4-17 y un cuadro de
propiedades de índice non-clustered a la figura 4-18
Figura 4-18
Cuadro de propiedades de
CA
un Índice Clustered
ÉRI
AM
www.pdftron.com En un índice clustered, notará que cuando está buscando en estos dos ejemplos
RO
proporcionados, no puede agregar otro índice. Esto es, como se mencionó anteriormente,
la importancia de asegurarse de elegir la clave correcta para actuar como su clave de índice
clustered ya que esta es su índice de ordenamiento principal para la tabla y no puede tener
dos índices clustered por tabla. Pero, en una tabla con un índice non-clustered, puede
agregar múltiples columnas a la clave del índice, como se muestra en la Figura 4-19.
Figura 4-19
Cuadro de propiedades
IBE
Resumen de Habilidades
En esta lección, aprendió
CA
• Normalización, en otras palabras, es la eliminación de los datos redundantes para
ahorrar espacio.
• La primera forma normalizada (1NF) significa que los datos están en un formato
de entidad, lo cual básicamente significa que las siguientes tres condiciones
deben cumplirse, la tabla no debe tener registros duplicados, tampoco debe tener
atributos de valores múltiples, las entradas en la columna o atributo son del mismo
ÉRI
tipo de datos.
• La segunda forma normal (2NF) garantiza que cada atributo de hecho describe a
la entidad.
• La tercera forma normal (3NF) verifica las dependencias transitivas. Una
dependencia transitiva es similar a una dependencia parcial en que ambas se
refieren a los atributos que no son totalmente dependientes en la clave principal.
• La cuarta forma normal (4NF) involucra dos atributos independientes reunidos
para formar una clave principal junto con un tercer atributo.
AM
• La quinta forma normal (5NF) proporciona el método para el diseño de relaciones
complejas involucrando entidades múltiples (usualmente tres o más).
• Hay tres distintos tipos de restricciones disponibles dentro de SQL Server que
www.pdftron.com
le garantizan que es capaz de mantener la integridad de la base de datos, clave
principal, clave externa y clave compuesta (unique).
• Una clave de restricción unique le permitirán cumplir la propiedad de unicidad de
las columnas, otra más que una llave primaria en una tabla.
RO
• Tal vez el concepto más importante del diseño de cualquier tabla de base de datos
es que tiene una clave principal, un atributo o conjunto de atributos que pueden
identificar la unicidad de la fila.
• Cada tabla debe tener una clave principal, sin una clave principal, no es una tabla
valida. Por definición, una clave principal debe ser única y debe tener un valor (el
cual no es null).
• Con el fin de conectar dos tablas, la clave principal es entonces replicada desde la
IBE
tabla principal a la secundaria y ahora todos los atributos clave duplicados desde la
tabla principal son conocidos como la clave externa.
• Una clave compuesta ocurre cuando define más de una columna como su clave
principal.
• El único inconveniente real de utilizar la indexación es el tiempo que toma construir
los índices actuales y el espacio de almacenamiento requerido para los índices.
• Cuando comienza a observar la implementación de índices, es importante recordar
que cada tabla puede tener solo UN índice clustered que define cómo el SQL Server
ordenará los datos almacenados dentro de la tabla, ya que los datos solo pueden ser
ETC
» Evaluación de Conocimientos
Verdadero o Falso
CA
Encierre la V si el enunciado es verdadero o F si es falso.
V F 1. Crear una clave principal satisface la primera forma normal
V F 2. Las tablas en una base de datos deben satisfacer las 5 formas
normales con el fin de maximizar el desempeño
V F 3. Una clave principal puede contener valores NULL
ÉRI
V F 4. Un índice CLUSTERED usualmente mejora el desempeño cuando
se insertan datos
V F 5. Una tabla puede contener solo un índice CLUSTERED.
AM
espacios en blanco.
1. La Normalización es la eliminación de datos redundantes para ahorrar ________.
2. El valor de una clave principal debe ser __________.
www.pdftron.com
3. Una clave externa trabaja en conjunto con una clave principal o restricción unique para
cumplir la _________entre tablas
4. Agregar un índice a una o más columnas para aumentar la velocidad de _________ de
RO
datos.
5. Los valores en un índice CLUSTERED son ___________.
Opción múltiple
a. CHECK
b. DEFAULT
c. UNIQUE
d. ÍNDICE
2. ¿Cuál de los siguientes aumenta la velocidad de recuperación de datos?
a. Restricción DEFAULT
b. Restricción de CLAVE PRINCIPAL
ETC
c. Índice CLUSTERED
d. Restricción de CLAVE EXTERNA
3. Seleccione las sentencias que son verdaderas acerca de la Normalización
a. Un número mayor de tablas estrechas (con pocas columnas) es una característica
de una base de datos normalizada
b. Unas pocas tablas amplias (con más columnas) es una característica de una base
de datos normalizada
c. Los índices permiten una recuperación más rápida de datos
100 Lección 1
CA
b. Puede crear una clave externa definiendo una restricción de CLAVE EXTERNA
cuando crea o altera una tabla.
c. Una CLAVE EXTERNA cumple la integridad referencial garantizando que solo
los datos validos son almacenados
d. Una tabla puede contener solo una clave EXTERNA
ÉRI
5. Se considera utilizar un índice CLUSTERED cuando
a. las columnas contienen un gran número de valores distintos
b. las columnas son accedidas secuencialmente
c. las columnas se someten a cambios frecuentes
d. en las consultas se ejecutan grandes conjuntos de resultados
6. ¿Cuál forma normal le garantiza que cada atributo describe a la entidad?
a. 1NF
b.
c.
d.
2NF
3NF
4NF
AM
www.pdftron.com
7. ¿Cuál de las siguientes no podría ser utilizada como una clave principal?
a. Número de Seguro Social
b. Dirección
RO
c. Número de empleado
d. Número de serie para un componente electrónico
8. ¿Cuantos índices puede tener para una base de datos?
a. 1
b. 2
c. 4
IBE
d. 8
9. ¿Cómo se llama cuando tiene más de una columna que actúa como clave principal?
a. Clave principal compuesta
b. Clave escalada
c. Clave externa
d. Clave de restricción
10. Cuando define una clave principal, cumple los criterios para _________.
ETC
a. 1NF
b. 2NF
c. 3NF
d. 4NF
Comprender el Almacenamiento de Datos 101
» Evaluación de Competencia
CA
Su jefe acude a usted y le entrega en la mano una unidad flash USB con la siguiente base
de datos:
Model Specs
ÉRI
PC-1250 Dell SlimPC 400LX, 2.25Ghz, 2gb RAM, 160GB HD
Él desea que inicie utilizando esta base de datos. Desea saber lo que está equivocado de la
base datos y le pregunta si se debería hacer algo con ella
AM
Caso 4-2: Comparar Índices Clustered y Non-Clustered
Su jefe desea aumentar la velocidad del servidor de base de datos. Por lo tanto, él piensa
que usted debe crear un par de índices. Entonces le pide que explique las ventajas y
www.pdftron.com
desventajas de crear un índice clustered contra un índice non-clustered. ¿Qué responde?
» Evaluación de Competencia
RO
Caso 4-3: Crear un Índice Clustered
Utilizando la interfaz gráfica de SSMS, ¿cuáles son los pasos que utilizaría para crear un
índice clustered en la columna name (nombre) para la base de datos de AdventureWorks?
ETC
102 Lección 1
Como ABD, necesita incrementar el desempeño de la tabla PlanetsID. Por lo tanto, decide
crear un índice clustered. Pero en lugar de utilizar SSMS, decide utilizar consultas para
CA
desempeñar esta tarea. Por lo tanto, crea una nueva base de datos PlanetsID utilizando los
siguientes comandos dentro de SMMS:
ÉRI
DROP TABLE [dbo].[PlanetsID]
GO
USE [AdventureWorks2008]
GO
CREATE TABLE [dbo].[PlanetsID](
[ID] [int] NOT NULL,
[Item] [int] NOT NULL,
[Value] [int] NOT NULL
) ON [PRIMARY]
GO
AM
INSERT INTO PlanetsID VALUES (4, 23, 66)
INSERT INTO PlanetsID VALUES (1, 12, 59)
INSERT INTO PlanetsID VALUES (3, 66, 24)
www.pdftron.com
SELECT * FROM PlanetID
GO
Ahora deberá ver la salida en el panel de resultados (debajo de la ventana del Query
RO
Editor), lo siguiente:
ID Item Value
4 23 66
1 12 59
IBE
3 66 24
Ahora que tiene una base de datos con información, ¿qué pasos utilizaría para crear un
índice clustered basado en la columna ID?
En este ejercicio, creará la base para la consulta que necesitará ser optimizada ejecutándola
sin agregar ningún índice.
ETC
CA
Figura 4-24
Cuadro de Diálogo de
Nueva Consulta
ÉRI
AM
www.pdftron.com
RO
4. Seleccione el botón de Nueva Consulta desde la barra de herramienta y teclee la
siguiente sintaxis en la ventana del Editor de Consulta, luego haga clic en el botón
Ejecutar:
Al ejecutar el comando, los resultados serán retornados de acuerdo al orden de los datos
IBE
como fueron ingresados en la estructura b-tree. La clave principal es la columna ID, por lo
tanto, los datos están ordenados basados en la clave principal:
ID Item Value
1 12 59
3 66 24
4 23 66
ETC
Ahora puede configurar una tabla de índice clustered basado en el conocimiento que ha
recibido a través de la configuración de un índice clustered. La única diferencia cuando
utiliza sentencias de Transact-SQL es para agregar “NX” enfrente del campo del nombre
del índice para identificarlo como un valor nonclustered. Recuerde, no puede crear un
non-clustered en una columna que ya sea clustered.
CA
ÉRI
AM
www.pdftron.com
RO
IBE
ETC
Lección 5
CA
Matriz de Dominio de objetivos
ÉRI
objetivo
Asegurar Bases de Datos Comprender Conceptos de 5.1
Seguridad de Bases de Datos
Respaldar y Restaurar Bases de Datos Comprender los Respaldos y 5.2
Restauraciones de Bases de Datos
Términos Clave AM
www.pdftron.com
• Autenticación • Usuario invitado • Restaurar
RO
• Respaldo • Respaldo incremental • Funciones del servidor
• Seguridad de base de datos • Respaldos de log • Cuenta sa
• Respaldo diferencial • Inicio de sesión • Sysadmin
• Respaldo completo • Permisos • Cuentas de usuario
IBE
Después de crear la nueva tabla para la base de datos que tiene el nuevo inventario y los datos de
ventas de la tienda del estado de Washington, su jefe ahora le ha pedido que garantice que los
empleados de la tienda recientemente adquirida están iniciando sesión en la base de datos correcta
para los datos de la tienda así como también le ha pedido que trabaje en la implementación de un
plan de respaldo para cada tienda. Se le ha solicitado que implemente una programación tanto
de un respaldo completo y un respaldo incremental, como también definir el nuevo esquema de
seguridad.
ETC
106 Lección 5
Aunque este capítulo puede parecer un poco aburrido, es importante comprender cómo
se conceden los permisos a los usuarios a ciertas tablas o bases de datos, así también
comprender cuales son los distintos tipos de respaldos cuando se tiene el propósito de
programarlos.
CA
Seguridad de bases de datos
È EN RESUMEN
ÉRI
El objetivo es comprender la necesidad de asegurar una base de datos, cuáles objetos pueden ser asegurados, qué
objetos deberían ser asegurados, así como también cuentas de usuario y las funciones.
AM
La seguridad, al igual que cualquier otro aspecto del proyecto de la base de datos, debe ser
diseñada cuidadosamente, implementada y probada. Dado que la seguridad puede afectar
la ejecución de algunos procedimientos, debe tomarse en cuenta al momento de desarrollar
el código del proyecto.
www.pdftron.com
Un plan de seguridad simple con unas pocas funciones y los usuarios de TI como sysadmins
puede bastar para una organización pequeña, pero organizaciones grandes, tal como la
militar, bancos u organizaciones internacionales, requieren un plan de seguridad más
RO
complejo que se diseñe e implemente con medidas fuertes de seguridad. El resultado final
de trabajar con la seguridad de base de datos es garantizar los derechos y responsabilidades
otorgado a los usuarios, a través de la creación de usuarios y funciones.
Se utiliza un permiso para conceder una entidad como un acceso de usuario a un objeto
tal como otro usuario o una base de datos. Cuando se mira el modelo de seguridad en
SQL Server, es muy complejo y requiere de gran capacidad aplicada a las funciones de
usuario y sus diferentes permisos. En SQL Server, el modelo de seguridad está basado en
IBE
lo que se define como “protegibles”. Esto significa que los objetos pueden tener acceso a
un protegible. Los objetos son definidos como bases de datos, tablas, inicios de sesión,
usuarios y funciones.
Es importante tener en cuenta los derechos y permisos para cada objeto ya que podría
conceder inadvertidamente, por ejemplo, CONTROL SERVER a un inicio de sesión, que
concede a ese usuario los mismos derechos que el sysadmin del servidor. Los usuarios son
asignados a funciones (roles), los cuales podrían conceder permisos a objetos. Cada objeto
tiene un propietario, una propiedad también afecta los permisos.
Administración de una Base de Datos 107
Un resumen del modelo de seguridad de SQL Server muestra cómo los usuarios son primero
autenticados al servidor, seguido por las bases de datos y finalmente los objetos dentro de
las bases de datos. Los círculos representan la forma en la cual se identifican los usuarios.
CA
f Seguridad de nivel de servidor
Cuando se diseña el modelo de seguridad para un SQL Server, hay tres métodos diferentes por los cuales un usuario
puede ser identificado inicialmente, como se indica en esta sección.
ÉRI
Los tres diferentes métodos por los cuales un usuario puede ser identificado inicialmente
incluyen:
• Inicio de sesión de usuario de Windows
• Membership al grupo de usuarios de Windows
• Inicio de sesión específica de SQL Server (si el servidor utiliza seguridad de
modo mixto)
; Listo para la
AM
Es importante recordar que en el nivel de SQL Server, donde reside la base de datos, los
usuarios son conocidos por su nombre de inicio de sesión. Este puede ser ya sea inicio de
sesión de SQL Server, dominio de Windows o una elección de inicio de sesión de nombre
de usuario.
www.pdftron.com
certificación
¿Cuáles son las Una vez que un usuario inicia sesión en el servidor con sus credenciales de usuario y es
funciones asignadas subsecuentemente verificado, ese usuario ahora tiene derechos de administración de nivel
a un Microsoft SQL servidor que han sido concedidos a través de derechos administrativos de nivel de servidor
Server y cuáles vía funciones (roles) del servidor (esto será discutido más adelante en este capítulo).
RO
funciones son
asignadas a una base Recuerde, si agrega un usuario a la función sysadmin, ese usuario ahora tendrá acceso total
de datos SQL? —5.1 a cada función, base de datos y objetos para ese servidor. Con ese acceso total, un usuario
puede entonces conceder permiso a otros usuarios contra otros elementos protegibles
del servidor. Esta es una función de usuario muy poderosa que debe asegurarse de no
concederla a un usuario equivocado ya que puede realizar una variedad de acciones de
º Tome Nota nivel de sistema tales como conceder acceso a la base de datos. Pero, si el usuario no tiene
IBE
este tipo de acceso tan poderoso, no puede alterar las configuraciones del servidor de base
Los usuarios pueden
de datos o conceder accesos donde no debería. Si un usuario no tiene el mínimo acceso a la
iniciar sesión a un
base de datos, podría tenerlo utilizando la cuenta de usuario “invitado” y los cambios que
SQL Server utilizando
podría hacer dentro del servidor de base de datos serían limitados.
ya sea un inicio de
sesión de dominio de
Windows, inicio de
sesión de nombre de
usuario o un inicio de
sesión de SQL Server.
ETC
108 Lección 5
CA
º Tome Nota
Ciertas funciones de Todos los usuarios son miembros de la función de base de datos pública estándar, pero las
base de datos pueden funciones definidas por el usuario son funciones personalizadas que sirven como grupos y
también afectar el estas funciones pueden entonces ser concedidas con el permiso al objeto de base de datos y
acceso a objetos. los usuarios pueden ser asignados a una función definida por el usuario de la base de datos.
ÉRI
Lo cual significa,
el derecho a leer y Cada permiso de objeto es asignado a través ya sea de la concesión, revocación o negación
escribir desde la base de permisos de inicio de sesión.
de datos. • Conceder permiso significa que el usuario puede acceder al objeto
• Denegar permiso reemplaza un permiso concedido
; Listo para la
certificación
• Revocar remueve el permiso asignado, sin importar si está denegado o
concedido.
¿Cuál es el permiso
• Un usuario puede tener múltiples rutas de permiso a un objeto
principal que da al
usuario permisos
completos a todas las
bases de datos y cuál
es el permiso principal
AM
(individualmente, a través de una función de base de datos estándar y a
través de la función pública). Si cualquiera de estas rutas son denegadas, el
usuario entonces será bloqueado y no podrá acceder al objeto.
www.pdftron.com
que da al usuario los
permisos a una sola
base de datos? —5.1
RO
f Seguridad de Windows
Ya que SQL Server es un entorno dentro del sistema de Windows Server, una de las preocupaciones principales del
plan de seguridad se relaciona con la garantía de que Windows Server en sí es seguro.
IBE
Cómo las bases de datos de SQL Server a menudo soportan sitios web, necesita tener en
consideración que todos los cortafuegos y otras aplicaciones del servidor de internet se
consideren cuando se elabora un plan de seguridad.
Es importante notar que el proceso del SQL server, necesita permiso para acceder a los
archivos y directorios, por lo tanto, requiere una cuenta de Windows. Hay tres diferentes
tipos de cuentas las cuales están disponibles para la cuenta de servicio de SQL Server:
ETC
a las bases de datos con esta cuenta, puesto que es una cuenta de sistema
local, esta tiene privilegios dentro del sistema operativo que la cuenta del
administrador no tiene. Por lo tanto tiene un potencial hueco de seguridad.
• Cuenta de usuario de dominio: Esta es la cuenta de inicio de sesión
CA
recomendada ya que SQL Server puede entonces utilizar la cuenta de
Windows específicamente creada para SQL Server. Entonces puede
conceder permisos de administrador para la cuenta de SQL Server con la
cual puede interactuar con otros servidores en la red.
Autenticación de Windows
ÉRI
La Autenticación es el acto de establecer o confirmar una identidad de usuario o sistema.
El modo de autenticación de Windows es superior al modo mixto ya que los usuarios no
necesitan aprender otra contraseña debido a que aprovecha el diseño de seguridad de la
red.
Utilizar la Autenticación de Windows significa que los usuarios deben tener una cuenta
de Windows válida con el fin de que sea reconocida por SQL Server. El SID de Windows
(identificador de seguridad) es enviado al SQL Server. La Autenticación de Windows es
AM
muy robusta puesto que autenticará no sólo a los usuarios de Windows, sino también a
los usuarios dentro de los grupos de usuarios de Windows.
www.pdftron.com
Server, cualquier usuario de Windows que sea miembro del grupo puede ser autenticado
por SQL Server. El acceso, funciones y permisos pueden ser asignados para el grupo de
usuarios de Windows y se aplicarán a cualquier usuario de Windows en el grupo.
RO
SQL Server también conoce el nombre de usuario de Windows actual, de forma que la
aplicación puede reunir información tanto del nivel de usuario y el nivel de grupo.
versiones de Windows. En Windows Vista y versiones más nuevas, los usuarios locales
pueden ser administrados seleccionando el Panel de Control, después Herramientas
Administrativas y finalmente Administración de equipos. Los usuarios del dominio son
administrados con herramientas tales como el Active Directory Users y Computers.
Una vez que existen los usuarios en la lista de usuarios de Windows o el dominio de
Windows, SQL Server los puede reconocer.
Tabla 5-1
Agregando un nuevo
usuario
CA
ÉRI
AM
www.pdftron.com
2. En el Nuevo diálogo de la página General del usuario de la base de datos (como se
muestra en la Figura 5-2) y/o utilice el botón de buscar para localizar el usuario de
Windows (como se muestra en la Figura 5-3).
Tabla 5-2
RO
Eligiendo un nombre de
usuario
IBE
ETC
Administración de una Base de Datos 111
Tabla 5-3
Buscando un nombre de
usuario existente
CA
ÉRI
AM
www.pdftron.com
3. Puede introducir un nombre de usuario o utilizar el botón Buscar para buscar a un
usuario (como se muestra en la Figura 5-4 y Figura 5-5). Los usuarios de Windows son
administrados y asignados a diferentes grupos de Windows utilizando la herramienta
Tabla 5-4 Administración de equipos.
RO
Búsqueda de usuarios
existentes
IBE
ETC
112 Lección 5
Tabla 5-5
Inicios de Sesión de SQL
Serverusuario
CA
ÉRI
AM
www.pdftron.com
El usuario puede estar asignado a una base de datos y lenguaje predeterminados en la
parte inferior del cuadro de diálogo de las propiedades de inicio de sesión de SQL Server,
pero note que el asignar una base de datos predeterminada a un usuario, no se concede
RO
automáticamente el acceso a esa base de datos. Al usuario puede otorgársele el acceso a
las bases de datos en la ficha Acceso a base de datos.
º Tome Nota
Al usuario se le puede Para crear un inicio de sesión utilizando la sintaxis de Transact-SQL de forma que
conceder acceso a las pueda agregar un usuario o grupo de Windows, ejecute el comando CREATE LOGIN.
bases de datos en la Asegúrese de utilizar un nombre de usuario de Windows completo, incluyendo
ficha Acceso a base de el nombre de dominio, del usuario que está tratando de agregar como se indica a
datos. continuación:
IBE
Si está buscando crear y editar inicios de sesión de usuario en el nivel de servidor, utilice
la página General del inicio de sesión/Nuevo. El cuadro de diálogo Nuevo inicio de
sesión también se utiliza para administrar usuarios existentes.
Remover un inicio de sesión de Windows desde SQL Server puede ser llevado a cabo a
través del SQL Server Management Studio. Seleccione la carpeta de seguridad, al igual que
como lo hizo para crear un Nuevo inicio de sesión de usuario en el Explorador de Objetos
y utilice el menú para encontrar y eliminar al usuario (como se muestra en la Figura 5-6).
Por supuesto, esto no elimina al usuario desde Windows, sólo remueve al usuario de SQL
Server.
Administración de una Base de Datos 113
Tabla 5-6
Eliminando un Usuario
Existente Serverusuario
CA
ÉRI
AM
www.pdftron.com
Para remover un usuario o grupo de Windows desde SQL Server, use el comando DROP
LOGIN. Similar con el método utilizado en SQL Server Management Studio, el usuario
o grupo de Windows continuara existiendo en Windows, será descontinuado para ser
RO
reconocido por el SQL Server:
f Autenticación de SQL
El SQL server también soporta el modo Mixto, el cual le permite conectarse al SQL Server utilizando la autenticación
de Windows o Autenticación de SQL Server. Una cuenta de inicio de sesión de SQL Server y las contraseñas
IBE
relacionadas se definen en el SQL Server y no están relacionadas con el Active Directory o las cuentas de Windows.
Hay tres tipos de roles (funciones) del servidor de base de datos: Roles fijos, roles públicos y roles definidos por el
usuario. Cada una de ellas se comenta en esta sección.
El SQL Server incluye Roles de fijos predefinidas. Principalmente, estos roles conceden
permisos para desempeñar ciertas tareas administrativas relacionadas con el servidor. Un
114 Lección 5
Las siguientes funciones son las más recomendadas para delegar ciertas tareas
administrativas del servidor:
CA
• Bulkadmin: Puede desempeñar operaciones de insertar en volumen
• Dbcreator: Puede crear, alterar, eliminar y restaurar bases de datos
• Diskadmin: Puede crear, alterar y eliminar archivos de disco
• Processadmin: Puede detener la ejecución de un proceso de SQL Server
• Securityadmin: Puede administrar los inicios de sesión para el servidor
ÉRI
• Serveradmin: Puede configurar el servidor, incluyendo la configuración de
búsquedas de texto completo y apagar el servidor
• Setupadmin: Puede configurar servidores enlazados, procedimientos almacenados
extendidos y el procedimiento almacenado de inicio
• Sysadmin: Puede desempeñar cualquier actividad en la instalación de SQL Server,
independientemente de cualquier otra configuración de permiso. La función de
sysadmin incluso anula permisos denegados en un objeto.
El usuario que el SQL Server crea automáticamente durante la instalación del software
AM
es el BUILTINS/Administrators el cual incluye todos los usuarios de Windows en el
grupo de Administradores de Windows y permite una elección de qué grupos o usuarios
son agregados durante la instalación. El usuario BUILTINS/Administrators puede ser
eliminado o modificado si se desea después de la instalación.
www.pdftron.com
Si agrega un usuario al grupo de funciones del sysadmin, el usuario debe reconectarse a
la instancia del SQL Server a fin de que las capacidades de la función del sysadmin surtan
efecto.
RO
Los roles de servidor son establecidas en el Management Studio en la página de las
Funciones del Servidor del cuadro de propiedades del inicio de sesión (como se muestra
en la Figura 5-7).
IBE
ETC
Administración de una Base de Datos 115
Tabla 5-7
Cuadro de diálogo
Propiedades de Inicio de
Sesión
CA
ÉRI
AM
www.pdftron.com
En sintaxis de Transact-SQL, puede asignar un usuario a diferentes funciones de servidor
por medio de un procedimiento almacenado, como sigue:
RO
sp_addsrvrolemember
[ @loginame = ] ‘login’ ,
[ @rolename = ] ‘role’
Por ejemplo, el siguiente código agrega el inicio de sesión del usuario ‘‘XPS\Lauren’’ al
rol del sysadmin:
IBE
Rol público
El rol público es un rol fijo, pero puede tener permisos de objeto como un rol estándar.
Cada usuario es automáticamente miembro del rol público y no puede ser removido, de
manera que el rol público sirve como línea base o nivel de permiso mínimo.
Puesto que no puede modificar los permisos asignados a un rol de servidor fijo, puede
conceder permisos de servidor individuales a un usuario que no está definido por un rol de
servidor fijo. Esto lo utilizan típicamente los usuarios que necesitan desempeñar roles de
base de datos específicas y a los cuales no desea concederles un rol que permitiría al usuario
hacer más de lo que necesita hacer.
116 Lección 5
CA
Cuando un inicio de sesión es concedido con el acceso a la base de datos, al inicio de sesión
también le es asignado un nombre de usuario de la base de datos, lo cual puede ser igual
al nombre del inicio de sesión o algún otro nombre a través del cual se reconozca el inicio
de sesión en la base de datos.
ÉRI
Para conceder acceso a la base de datos desde el lado del inicio de sesión utilizando el
Explorador de Objetos, utilice la página de asignación de usuarios en el formulario
Propiedades de inicio de sesión (como se muestra en la Figura 5-8).
Para conceder el acceso desde la base de datos, utilice el comando del menú de contexto de
nuevo usuario debajo de la Base de datos después seleccione Seguridad y finalmente Nodo
de usuarios para abrir el formulario de nuevo usuario de la base de datos. Introduzca el
inicio de sesión a agregar en el campo de nombre de inicio de sesión. Para buscar un inicio
AM
de sesión, utilice el botón con los puntos suspensivos (. . .). Debe introducir un nombre
por el cual el usuario será conocido dentro de la base de datos en el campo de nombre de
usuario.
www.pdftron.com
Puede utilizar el formulario Propiedades de inicio de sesión para conceder un acceso al
inicio de sesión a cualquier base de datos y para asignar funciones de base de datos.
Por supuesto, hay una sintaxis de Transact-SQL disponible para conceder acceso a la base
de datos a un usuario. El comando debe ser emitido desde la base de datos a la cual el
RO
usuario se le concederá el acceso. El primer parámetro es el inicio de sesión del servidor y
el segundo el nombre de usuario opcional de la base de datos:
USE Family
CREATE USER ‘XPS\Lauren’, ‘LRN’
El cuadro de diálogo de inicio de sesión puede ser utilizado para agregar un nuevo
IBE
USE Family
DROP USER ‘LRN’
Cualquier usuario que desee acceder a la base de datos pero que no ha sido declarado como
usuario dentro de esta, será automáticamente concedido con los privilegios de usuario
ETC
invitado (guest user), siempre y cuando la cuenta de usuario invitado exista. La cuenta
de usuario invitado no se genera al crear la base de datos ya que tiene que ser agregada
específicamente ya sea a través de la interfaz del SQL Server Management Studio o a través
de una sentencia de Transact-SQL, como se muestra a continuación:
El usuario invitado debe ser removido de la base de datos cuando los invitados ya no son
bienvenidos, ya que se presenta un riesgo de seguridad.
Administración de una Base de Datos 117
Seguridad de Objeto
Si un usuario accede a la base de datos, entonces se puede conceder el permiso a los objetos
individuales de la base de datos. El permiso se puede conceder ya sea directamente al
CA
usuario o a una función estándar y el usuario asignado a la función.
Los usuarios pueden ser asignados a múltiples funciones, así que pueden existir múltiples
rutas de seguridad desde un usuario a un objeto.
ÉRI
f Roles de nivel de base de datos
SQL Server incluye algunos roles de base de datos estándar o fijos. Como los roles fijos de servidor, estos principalmente
organizan tareas administrativas. Un usuario puede pertenecer a varios roles.
AM
administrar la seguridad de nivel de base de datos.
• db_backupoperator: Puede desarrollar respaldos, puntos de control y comandos
de DBCC, pero no restauraciones (sólo los sysadmins del servidor pueden realizar
restauraciones).
www.pdftron.com
• db_datareader: Puede leer los datos en la base de datos. Esta función es el
equivalente de una concesión a todos los objetos de esta y puede ser anulado por
medio de la negación de un permiso.
• db_datawriter: Puede escribir a toda la información en la base de datos. Esta
RO
función es el equivalente a una concesión a todos los objetos y puede ser anulado
por medio de la negación de un permiso.
• db_ddladmin: Puede emitir comandos DDL (crear, alterar, eliminar).
• db_denydatareader: Puede leer desde cualquier tabla en la base de datos. Esta
negación anulará cualquier concesión a nivel de objeto.
• db_denydatawriter: Bloquea la modificación de información en cualquier tabla en
la base de datos. Esta denegación anulará cualquier concesión de nivel de objeto.
IBE
• db_owner: Un rol especial que tiene todos los permisos en la base de datos. Esta
función incluye todas las capacidades de las otras funciones. Es diferente a la
función de usuario dbo. No tiene el mismo nivel que la función sysadmin del
servidor, una negación de nivel de objeto anulará la membrecía en esta función.
• db_securityadmin: Puede administrar la seguridad de nivel de base de datos, (roles
y permisos).
Asignar roles de base de datos fijas con SQL Server Management Studio
ETC
Los roles de nivel de base de datos fijas pueden asignarse con Management Studio con
cualquiera de los siguientes dos procedimientos:
• Agregar un rol al usuario en el formulario Propiedades de usuario de la base de
datos, ya sea al crear el usuario o después.
• Agregar el usuario al rol en el cuadro de diálogo Propiedades de funciones de base
de datos. Seleccionar funciones debajo del nodo de seguridad de base de datos y
utilizar el menú de contexto para abrir el formulario Propiedades (como se muestra
en la Figura 5-7).
118 Lección 5
Desde código, puede agregar un usuario a un rol de base de datos fijo con el procedimiento
almacenado del sistema sp_addrole.
CA
El siguiente ejemplo crea el rol de base de datos auditors que pertenece al rol de base de
datos fijo db_securityadmin:
USE AdventureWorks;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO
ÉRI
Roles de aplicación
de datos.
AM
rol de aplicación codificada. Quien esté utilizando la aplicación obtendrá acceso a la base
El cuadro de diálogo Propiedades de función de base de datos enlista todos los usuarios
www.pdftron.com
asignados a la función actual. Para agregar o quitar un usuario del rol, utilice los botones
Agregar y Quitar.
f Permisos de objetos
RO
Los permisos de objetos son los permisos que le permiten a un usuario actuar en los objetos de la base de datos (tales
como tablas, procedimientos almacenados y vistas).
Los permisos de objetos se asignan con los comandos de SQL DCL, GRANT, REVOKE
y DENY. Los permisos en SQL Server funcionan como lo hacen en el sistema operativo.
SQL Server agrega todos los permisos que un usuario dado podría tener, ya sea asignando
directamente al usuario o a través de roles.
Entonces el SQL Server otorga el MAXIMUM de lo que ha sido concedido. DENY es una
excepción. DENY funciona como una gran herramienta. En cualquier lugar que exista un
DENY, entonces al igual que en Windows, el usuario es bloqueado. Por ejemplo, si un
Administración de una Base de Datos 119
usuario puede utilizar SELECT en una tabla directamente asignada, pero si el rol del cual
es usuario es miembro tiene un DENY para SELECT, entonces el usuario es bloqueado
para emitir un SELECT contra la tabla. Si la seguridad está siendo administrada desde
Management Studio o desde código, es importante comprender estos tres comandos.
CA
La concesión de permisos de objeto interactúa con el servidor y los roles de la base de datos.
A continuación se tiene la jerarquía global de los roles y permisos, con 1 sobre escribiendo
a 2, etc:
1. El rol del servidor sysadmin. Un inicio de sesión de Windows que posee una base de
datos será mapeada a una dbo, y ya que lo hace a una dbo, ignora toda la seguridad
ÉRI
en la base de datos.
2. Denegar un permiso de objeto o un rol de la base de datos db_denydatareader o el rol
de base de datos db_denydatawriter.
3. Conceder permisos de objeto o la posesión de un objeto o el rol de la base de datos
db_datareader o el rol de base de datos db_datawriter.
Si su entorno prohíbe la seguridad de modo mixto, entonces la forma más fácil de verificar
la seguridad es dando clic derecho en el Management Studio o QueryAnalyzery utilizar
AM
el comando RUN AS para ejecutarse como un usuario diferente, pero esto implica crear
usuarios falsos en el dominio de Windows.
www.pdftron.com
marcarían a los usuarios falsos como un punto para la auditoria. Puesto que las estaciones
de trabajo que pertenezcan a las DBA tienden a estar en dominios de producción, esta
recomendación no funcionara donde los auditores estén operando.
RO
Conceder permisos de objeto con sentencias de Transact-SQL
Los permisos pueden ser ALL, SELECT, INSERT, DELETE, REFERENCES, UPDATE
o EXECUTE. El rol o nombre de usuario se refiere al nombre de usuario de la base
de datos, cualquier función pública definida por el usuario o la función pública. Por
ejemplo, el siguiente código concede permiso de Select a Joe para la tabla Emails:
ETC
El siguiente ejemplo concede todos los permisos a la función pública para la tabla
Contacts:
CA
La opción WITH GRANT proporciona la capacidad de conceder permisos para el
objeto, por ejemplo, el siguiente comando concede a Joe el permiso de Select desde la
tabla Email y puede conceder el permiso Select a otros usuarios:
ÉRI
f Administrar roles
Los Roles pueden ser creados, administrados y removidos utilizando SSMS o ejecutando sentencias de Transact-SQL.
Por supuesto, sólo debería crear roles y asignar usuarios a esos roles cuando sea necesario.
AM
Crear roles estándar con código involucra utilizar el procedimiento almacenado del sistema
sp_addrole. El nombre puede ser de hasta 128 caracteres y no puede incluir un backslash,
ser nulo o ser una cadena vacía. Por defecto, los roles serán del usuario dbo. Sin embargo,
puede asignar el rol de propietario agregando un segundo parámetro. El siguiente código
www.pdftron.com
crea la función de administración:
Una vez que el rol ha sido creado, los usuarios pueden ser asignados al rol por medio
del procedimiento almacenado del sistema sp_addrolemember. El siguiente ejemplo de
IBE
CA
Para llevar a cabo este tipo de diseño, siga estos pasos:
1. Crear el rol worker y establecer sus permisos.
2. Crear el rol de administración y establecer sus permisos. Agregar la función de
administración como usuario al rol worker.
ÉRI
3. Crear el rol admin. Agregue el rol admin como un usuario a la función de administración.
AM
ubicaciones dentro del Management Studio. Es casi un laberinto.
www.pdftron.com
PREPÁRESE. Desde la lista de objetos, siga estos pasos para modificar los permisos a un
objeto:
RO
1. Desde el nodo de un objeto (tablas, vistas, procedimientos almacenados o funciones
definidas por el usuario).
2. En el Navegador de Objetos, seleccione Propiedades desde el menú de contexto para
abrir el diálogo de Propiedades para ese tipo de objeto.
3. Haga clic en la página de Permisos para abrir el cuadro de diálogo Propiedades de Objeto.
verificar permisos. El usuario debe tener acceso a la base de datos que será seleccionada.
Si el usuario o rol tiene permiso para la tabla, el botón de Columnas abre el cuadro de
diálogo Permisos de Columna. Seleccione el usuario y haga clic en el botón para establecer
ETC
los permisos de columnas para ese usuario. Sólo los permisos de seleccionar y actualizar
pueden ser establecidos en el nivel de columna, ya que los de insertar y eliminar afectan
toda la fila.
CA
sesión Server usuario
ÉRI
AM
www.pdftron.com Dar clic en el botón de Propiedades abrirá las propiedades del rol seleccionado. En el
RO
cuadro de diálogo de las propiedades de Usuario de la Base de Datos, la página de los
Elementos que pueden protegerse se utiliza para asignar o verificar los permisos de
objetos. Este cuadro de diálogo es similar a la ficha Permisos del cuadro de diálogo
Propiedades de Objeto de la Base de Datos.
La tercera forma de controlar los permisos de objetos es desde el rol de la base de datos.
Para abrir el cuadro de diálogo de propiedades de los roles de la base de datos, haga doble
clic en un rol en la lista de funciones o seleccione Propiedades desde el menú de contexto
al hacer clic derecho. El cuadro de diálogo de las propiedades de las Funciones de la Base
de Datos se puede utilizar para asignar usuarios u otros roles al rol y para eliminarlos del
rol.
El botón de Permisos abre el cuadro de diálogo de permisos para el rol. Este formulario
opera como el otro formato de permisos excepto que está organizado desde la perspectiva
ETC
del rol.
Administración de una Base de Datos 123
f Cadenas de propiedad
En bases de datos de SQL Server, los usuarios pueden acceder con frecuencia a los datos a través de uno o varios
objetos. Las cadenas de propiedad aplican a las vistas, procedimientos almacenados y a funciones definidas por el
usuario.
CA
Por ejemplo:
• Un programa puede invocar un procedimiento almacenado y luego seleccionar
datos de una tabla.
ÉRI
• Un informe puede seleccionar de una vista, la cual realice una selección de una
tabla.
• Un procedimiento almacenado complejo puede invocar otros varios procedimientos
almacenados.
En estos casos, el usuario debe tener permiso para ejecutar el procedimiento almacenado o
realizar una selección de la vista.
El hecho de que el usuario también necesite permiso para seleccionar de las tablas
AM
subyacentes, depende de la cadena de propiedad del objeto que llame el usuario hacia las
tablas subyacentes.
www.pdftron.com
hacia las tablas subyacentes, el procedimiento almacenado puede ejecutarse utilizando
º Tome Nota
el permiso de su propietario. El usuario únicamente necesita permiso para ejecutar el
Es importante notar procedimiento almacenado. El procedimiento almacenado puede utilizar el permiso de su
que si se utiliza SQL propietario para acceder a las tablas subyacentes.
dinámico, entonces
RO
la cláusula EXECUTE El usuario no necesita tener permiso para las tablas subyacentes.
AS para CREATE
PROCEDURE fue
Las cadenas de propiedad son de utilidad para desarrollar una seguridad estricta en la cual
agregado a SQL
los usuarios ejecuten procedimientos almacenados pero no se les otorgan permisos directos
Server 2005. Puesto
a las tablas.
que se ejecuta en un
lote separado, rompe la
Si la cadena de propiedad se rompe, lo cual significaría que hay un propietario diferente
cadena de propiedad.
IBE
entre un objeto y el siguiente objeto inferior, entonces SQL Server revisa el permiso del
usuario para cada objeto que se acceda.
permisos de Joe.
• La cadena de propiedad de dbo.A a través de dbo.B a Joe.Person también se rompe,
así que dbo.A llama a dbo.B utilizando los permisos de dbo, pero dbo.B debe
acceder a Joe.Purchase utilizando los permisos de Joe.
• Es posible que dbo, Sue, y Joe tengan el mismo propietario. En este caso, la cadena
de propiedad funcionará.
124 Lección 5
CA
Tabla 5-1
Configuración de Rol Función Tablas de grupo Tablas de Otros permisos
permisos para PBXKites estándar jerárquica de archivos grupo de
primarios archivo
estáticos
IT Función de
ÉRI
servidor
Sysadmin
Clerk Ejecuta
permisos
para varios
procedimientos
almacenados
que leen y
actualizan
Admin
Rol fijo de
base de
AM
Db_owner
tablas diarias.
www.pdftron.com
datos
Customer Permisos
Select
Tabla 5-2
RO
Usuarios y sus funciones Usuario Roles estándar en la base de
para OBXKites datos
Sammy Admin
Joe Public
LRN IT DBA
Clerk Windows group (Betty, Tom, Martha, and Clerk
Mary)
IBE
Utilizando este modelo de seguridad, los siguientes usuarios pueden realizar las
siguientes tareas:
• Betty, como miembro de la función Clerk, puede ejecutar la aplicación que ejecuta
lo procedimientos almacenados que recuperan y actualizan datos. Betty puede
ejecutar consultas select como miembro del rol Public.
• LRN, como el IT DBA, puede realizar cualquier tarea en la base de datos como
miembro del rol de servidor sysadmin.
ETC
• Joe puede ejecutar consultas select como miembro del rol public.
• Como miembro del rol admin, Sammy puede ejecutar todos los procedimientos
almacenados. Él también puede modificar manualmente cualquier tabla utilizando
consultas. Como miembro del rol admin que incluye el rol db_owner, Joe puede
realizar cualquier tarea administrativa en la base de datos y seleccionar o modificar
datos en cualquier tabla.
• Sólo LRN puede restaurar desde los respaldos.
Administración de una Base de Datos 125
CA
El objetivo es comprender varios tipos de respaldos como el complete y el incremental, la importancia de los respaldos
y cómo restaurar una base de datos.
Este tema explica cómo crear un respaldo y restaurar un respaldo de base de datos completo.
ÉRI
El propósito de un respaldo de una base de datos es en caso de que tenga que restaurarla
si los datos se pierden en alguna transacción cotidiana. Un usuario puede eliminar
accidentalmente una tabla o un administrador de la base de datos puede necesitar restaurar
varias tablas en distintos servidores para poder combinarlas en una sola base de datos.
La necesidad de respaldar una base de datos y contar con un plan de restauración son
prioritarios.
AM
El ámbito de un respaldo de datos (un data backup) puede ser toda la base de datos, una parte de la base de datos
o un conjunto o grupo de archivos. Para cada uno de estos casos, SQL soporta respaldos completos, diferenciales e
incrementales.
www.pdftron.com
; Listo para la • Respaldo completo: Un respaldo completo contiene todos los datos en una base de
certificación datos específica o conjunto o grupo de archivos y es lo suficientemente grande para
recuperar los datos.
¿Cuál es la diferencia
RO
entre un respaldo • Respaldo diferencial: Un respaldo diferencial se basa en el último respaldo
completo y uno completo de datos. A esto se le conoce como la base del diferencial. Un respaldo
incremental? — 5.2 diferencial contiene sólo los datos que han cambiado a partir de la base diferencial.
Generalmente, los respaldos diferenciales que se toman a la brevedad después del
respaldo base son más pequeños y rápidos de crear que la base de un respaldo
completo. Por lo tanto, al utilizar respaldos diferenciales se acelera el proceso
de llevar a cabo respaldos frecuentes para reducir el riesgo de pérdida de datos.
Generalmente, una base diferencial se utiliza por varios respaldos diferenciales
IBE
que se incluyen en los respaldos diferenciales se incrementa. Esto hace que sea más lento
crear y restaurar el respaldo. Eventualmente, se tendrá que crear otro respaldo completo
para proporcionar una nueva base diferencial para otra serie de respaldos diferenciales.
Después del primer respaldo de datos, debajo del modelo de recuperación completo
o modelo de recuperación bulk-logged, se requieren de respaldos log de transacción
(respaldos log). Cada respaldo log cubre la parte del log de transacción que estaba activo
126 Lección 5
cuando se creó el respaldo y el respaldo log incluye todos los registros log que no estaban
respaldados en el respaldo log anterior.
Los respaldos de bases de datos son fáciles de utilizar y recomendables siempre que
CA
el tamaño de la base de datos lo permita. Consulte la tabla 5-3 para ver los tipos de
respaldos de bases de datos soportados por SQL Server.
Tabla 5-3
Tipos de respaldos de
Tipo de respaldo Apellido
bases de datos Respaldos de bases Un respaldo completa de toda la base de datos. Los respaldos de
de datos la base de datos representan a toda la base de datos cuando se
termina el respaldo.
ÉRI
Respaldos Un respaldo de todos los archivos en la base de datos. Este
diferenciales de respaldo contiene sólo los datos que se modificaron desde el
bases de datos respaldo más reciente de cada archivo.
Respaldos parciales
Los respaldos parciales y parciales diferenciales se diseñaron para proporcionar una mayor
flexibilidad para realizar respaldos de bases de datos que contienen grupos de archivos de
Tabla 5-4
Tipos de respaldos Tipo de respaldos
AM
sólo lectura bajo el mismo modelo simple de recuperación. Sin embargo, estos respaldos se
encuentran soportados por todos los modelos de recuperación. Consulte la tabla 5-4 para
ver los tipos de respaldos parciales soportados por SQL Server 2008.
Descripción
www.pdftron.com
parciales Respaldo parcial Un respaldo de todos los datos completos del grupo de archivos
primarios, cada grupo de archivos de lectura/escritura y cualquier
archivo o grupo de archivos de sólo lectura. Un respaldo parcial
de bases de datos de solo lectura contienen solo el grupo de
RO
archivos primarios.
Respaldo parcial Un respaldo que contiene sólo los datos que se modificaron
diferencial desde el respaldo parcial más reciente del mismo conjunto de
grupos de archivos.
Respaldos de archivos
IBE
Los archivos en una base de datos se pueden respaldar y restaurar de forma individual.
Al utilizar los respaldos de archivos se puede incrementar la velocidad de recuperación
puesto que le permite restaurar sólo los archivos dañados sin la necesidad de restaurar el
resto de la base de datos. Por ejemplo, si una base de datos tiene varios archivos que se
encuentran localizados en discos diferentes y uno falla, sólo el archivo del disco dañado se
debe restaurar. Sin embargo tanto, la planeación y restauración de respaldos de archivos
puede ser algo complejo; por lo tanto, los respaldos de archivo se deben utilizar sólo
cuando estos aportaran claramente valor a su plan de restauración. Como se muestra en la
tabla 5-5 para los tipos de respaldos de archivos soportados por SQL Server.
ETC
Administración de una Base de Datos 127
CA
de archivos se encuentran básicamente restringidos a grupos de
archivos de sólo lectura. Puede crear un respaldo de archivos
de un grupo de archivos de lectura/escritura, pero antes de
poder restaurar un respaldo de archivos de lectura/escritura
debe establecer el grupo de archivos a sólo lectura y tomar un
respaldo de archivos de sólo lectura diferencial.
ÉRI
Respaldos Un respaldo de uno o más archivos que contienen datos que
de archivos cambiaron desde el respaldo completo más reciente de cada
diferenciales archivo. Nota:
Bajo un modelo de recuperación simple, este asume que los
datos han cambiado a sólo lectura desde el archivo completo.
AM
Dispositivos de respaldo
Los respaldos de SQL Server se crean en dispositivos de respaldos como archivos de disco
o medios de cinta. Puede agregar nuevos respaldos a cualquier respaldo existente en un
www.pdftron.com
dispositivo o sobre escribir respaldos existentes.
Calendarizar respaldos
Realizar una operación de respaldo tiene un efecto mínimo en las transacciones que se
RO
estén ejecutando; por lo tanto, las operaciones de respaldo pueden ejecutarse durante
operaciones regulares. Durante una operación de respaldo, SQL Server copia los datos
directamente de los archivos de la base de datos hacia los dispositivos de respaldo. Los
datos no cambian y las transacciones que se encuentran ejecutándose durante el respaldo
no se retrasan. Por lo tanto, es posible llevar a cabo un respaldo en SQL Server con un
efecto mínimo sobre la carga de trabajo.
IBE
CA
• Crear y mantener un servidor en standby (espera).
Usar el SSMS
Para insertar datos a través de una herramienta de interfaz gráfica, siga los siguientes pasos.
ÉRI
Æ Modificar el permiso de un objeto
AM
2. Expanda Bases de Datos. Dependiendo de la base de datos, seleccione ya sea una base
de datos de usuario o expanda Bases de Datos del Sistema y posteriormente seleccione
una base de datos de sistema.
www.pdftron.com
3. Haga clic derecho en la base de datos, coloque el cursor sobre Tareas y haga clic en
Restaurar.
4. Haga clic en Base de Datos, para abrir el cuadro de diálogo Restaurar Base de Datos.
RO
5. En la página General, el nombre de la base de datos a restaurar aparece en la lista A una
base de datos. Para crear una nueva base de datos, introduzca su nombre en la lista.
6. En el cuadro de texto A un momento dado, conserve ya sea la opción predeterminada (lo
más reciente posible) o seleccione una fecha y hora específica al hacer clic en el botón
explorar, que abre el cuadro de diálogo Restauración a un momento dado.
7. Para especificar la fuente y ubicación de los respaldos a restaurar, haga clic en una de las
siguientes opciones:
IBE
CA
11. De forma opcional, puede restaurar la base de datos a una nueva ubicación al especificar
un destino de restauración nueva para cada archivo en la cuadrícula Restaurar los
archivos de base de datos como.
12. El panel Estado de recuperación determina el estado de la base de datos después de la
operación de restauración. El comportamiento predeterminado es:
ÉRI
Dejar la base de datos lista para utilizar al revertir las transacciones no completadas. Los
logs de transacciones adicionales no se pueden restaurar(RESTORE WITH RECOVERY)
(sólo seleccione esta opción si se encuentra restaurando todos los respaldos necesarios
en este punto).
13. De manera alternativa, puede seleccionar cualquiera de las siguientes opciones:
; Listo para la
certificación
• Deje la base de datos como no-operacional y no revierta las transacciones no
completas. Los logs de transacciones adicionales se pueden restaurar. (RESTORE
Comprender los WITH NORECOVERY).
respaldos de base de
datos y restauración
—5.2 AM
• Deje la base de datos en modo sólo lectura. Deshaga las transacciones no
completadas, pero guarde las acciones deshechas en un archivo en standby para
que los efectos de recuperación se pueda revertir. (RESTORE WITH STANDBY).
www.pdftron.com
Uso del comando RESTORE
Resumen de Habilidades
En esta lección aprendió:
CA
• El resultado final de trabajar con la seguridad de una base de datos es asegurar los
derechos y responsabilidades asignados a los usuarios, a través de la creación de
usuarios y funciones se establece un plan de seguridad.
• Se utiliza un permiso para otorgar a una entidad como un usuario el acceso a un
objeto como otro usuario o una base de datos.
ÉRI
• Un inicio de sesión es el proceso a través del cual el acceso a un sistema computacional
se controla con la identificación de las credenciales del usuario. El método más
común de inicio de sesión es a través de un nombre de usuario y una contraseña.
• Una cuenta de usuario es una representación lógica de una persona en un sistema
electrónico.
• Aun cuando un usuario puede pertenecer a un rol de base de datos fija y tener
alguno permisos de nivel administrativo, el usuario puede seguir sin tener acceso a
los datos si primero no tiene permiso al objeto de base de datos en si (por ejemplo,
tablas, procedimientos almacenados, vistas, funciones).
AM
• Cada permiso de objeto se asigna ya sea al otorgar, revocar o denegar permisos de
inicio de sesión de usuario.
• La autenticación es el acto de establecer o confirmar un usuario o identidad de
www.pdftron.com
sistema.
• El modo de autenticación de Windows es superior al modo mixto ya que los
usuarios no necesitan aprender otra contraseña y debido a que ayuda en el diseño
de seguridad de la red.
RO
• En sociedad con la autenticación de SQL se encuentra la cuenta sa. La cuenta sa es
la cuenta de administrador prediseñada de SQL asociada con la autenticación de
SQL.
• SQL Server tiene roles de servidor predeterminadas fijas, estos roles otorgan
permisos para llevar a cabo ciertas tareas administrativas relacionadas con el
servidor.
• Sysadmin puede llevar a cabo cualquier actividad en la instalación de SQL Server,
IBE
CA
» Evaluación de Conocimientos
Verdadero o Falso
ÉRI
Encierre la V si la frase es cierta o F si es falsa.
V F 1. Un usuario debe tener permisos para acceder a los archivos que
conforman la base de datos para poder utilizar la base de datos.
V F 2. Utilice la sentencia CREATE LOGIN para permitirle a una cuenta
de Windows acceder a SQL-Server.
V F 3. Cualquier permiso DENY siempre reemplaza un permiso
concedido.
V F 4. Utilice la sentencia CREATE ROLE para crear funciones nuevas
V F
AM dentro de una base de datos.
5. Los respaldos diferenciales múltiples deben restaurarse en el
mismo orden en el cual se crearon originalmente.
www.pdftron.com
Completar los espacios en blanco
4. Utilice el comando _______ para permitir a los usuarios acceder a los objetos en la base
de datos.
5. Utilice el comando __________ para recuperar datos que se eliminaron de forma
accidental por un usuario.
Opción múltiple
CA
c. Table (Tabla)
d. Task (Tarea)
3. ¿Cuál de las siguientes opciones no es un permiso de base de datos que pueda
aplicarse a objetos?
a. DROP
ÉRI
b. SELECT
c. INSERT
d. UPDATE
4. Indique cuáles de las siguientes opciones son soportadas por escenarios de
restauración de bases de datos.
a. Restaurar toda una base de datos a partir de un respaldo completo
b. Restaurar toda una base de datos a partir de una serie de respaldos parciales
c.
d.
AM
Restaurar parte de una base de datos utilizando respaldos parciales
Restaurar archivos específicos utilizados por la base de datos
5. ¿Cuál de las siguientes opciones no es un tipo de respaldo soportado por SQL Server?
www.pdftron.com
a. Completo
b. Diferencial
c. Archivo
RO
d. Dispositivo
6. ¿Cuál es la cuenta SQL prediseñada utilizada en modo mixto que tiene acceso total al
SQL Server?
a. Fulladmin
b. Sa
c. Admin
IBE
d. Administrator
7. Se le acaba de contratar como administrador de la base de datos y quiere dar acceso
total de administrador de base de datos a su SQL Server. ¿Cuál rol debería asignar?
a. Diskadmin
b. SecurityAdmin
c. Sysadmin
d. Db_owner
8. ¿Cuál rol da acceso total a una base de datos individual?
ETC
a. Db_owner
b. Db_accessadmin
c. Db_securityadmin
d. Db_ddladmin
Administración de una Base de Datos 133
CA
d. Utilizar NICs redundantes
10. ¿Cuál modo permite inicios de sesión de cuentas de Windows y de SQL?
a. Cualquiera
b. Completo
c. Compartido
ÉRI
d. Mixto
» Evaluación de destreza
AM
Su jefe tomó un curso de SQL en la Universidad hace algunos años. Le pregunta si puede
iniciar sesión en el servidor SQL con la cuenta sa para poder ver la base de datos y ejecutar
algunas consultas. Desafortunadamente, usted le dice que la cuenta sa no está disponible
en el servidor. Él quiere saber por qué y ver la forma en la cual puede acceder a la base de
www.pdftron.com
datos. ¿Qué es lo que le dirá?
Tiene 6 bases de datos grandes, cada una de al menos 2 GB. Necesita asegurarse de respaldar
RO
las bases de datos todas las noches en caso de desastre y necesitar recuperarse a través de
un respaldo. Puesto que a cada base de datos le toma 2 horas llevar a cabo un respaldo y
sólo cuenta con 6 horas para hacer respaldos, ¿Cuál solución de respaldos recomendaría?
» Evaluación de dominio
IBE
Cuando estaba llevando a cabo algunas tareas de mantenimiento, una de sus tablas se
dañó. Afortunadamente, había realizado un respaldo de la base de datos. Por lo tanto,
utilizando SSMS, ¿cuáles pasos usaría para restaurar la base de datos que respaldó en el
ejercicio anterior?
Deje la base de datos lista para utilizar al revertir las transacciones no cometidas. Los logs de
transacciones adicionales no se pueden restaurar. (RESTORE WITH RECOVERY)
CA
ÉRI
AM
www.pdftron.com
RO
IBE
ETC
Apéndice A
CA
» Fundamentos: Examen 98-364
ÉRI
Dominio del Objetivo Número de la Número de la Lección
Habilidad
www.pdftron.com
Crear vistas. 2.3 2
Crear procedimientos almacenados y funciones 2.4 2
RO
Seleccionar datos. 3.1 3
Insertar datos. 3.2 3
Actualizar datos. 3.3 3
Eliminar datos. 3.4 3