Documentos de Académico
Documentos de Profesional
Documentos de Cultura
com
www.pdftron.com
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
CA
AM
RI
Crditos
EDITOR
DIRECTOR DE VENTAS
DIRECTOR DE MERCADOTECNIA
GERENTE DE RELACIONES ESTRATGICAS DE MICROSOFT
ASISTENTE EDITORIAL
GERENTE DE PRODUCCIN
EDITOR PRINCIPAL DE PRODUCCIN
DIRECTOR CREATIVO
DISEADOR DE PORTADA
TECNOLOGA Y MEDIOS DE COMUNICACIN
Bryan Gambrel
Mitchell Beaton
Chris Ruel
Merrick Van Dongen de Microsoft Learning
Jennifer Lartz
Micheline Frederick
Kerry Weinstein
Harry Nolan
Jim OShea
Tom Kulesa/Wendy Ashenberg
www.pdftron.com
IBE
RO
Este libro fue escrito en Garamond por Aptara, Inc. e impreso y encuadernado por Bind Rite Graphics. La portada fue impresa
por Phoenix Color.
Copyright 2011 por John Wiley & Sons, Inc. Todos los derechos reservados. Queda prohibida la reproduccin de esta
publicacin, el almacenamiento en un sistema de recuperacin o su transmisin en alguna forma o medio, ya sea electrnico,
mecnico, por fotocopia, grabacin, digitalizacin o de otra manera, excepto de lo que permite la Seccin 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 autorizacin a travs 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.
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 pases. Otros nombres de productos o compaas que aqu se mencionan pueden ser marcas registradas que pertenecen a
sus respectivos propietarios.
ETC
Las compaas, organizaciones, productos, nombres de dominios, direcciones de correo electrnico, logotipos, personas, lugares
y acontecimientos utilizados en los ejemplos son cticios. No se pretende indicar ni debe deducirse ninguna asociacin con
empresas, organizaciones, productos, nombres de dominios, direcciones de correo electrnico, logotipos, personas, lugares o
acontecimientos. El libro muestra los puntos de vista y las opiniones del autor. El contenido de la informacin de este libro se
proporciona sin ninguna garanta expresa, legal o implcita. Ninguno de los autores, ni John Wiley & Sons, Inc., ni Microsoft
Corporation o sus revendedores o distribuidores sern legalmente responsables de cualquier dao que se cause o pueda causar de
manera directa o indirecta por el uso de este libro.
CA
AM
RI
La visin de Wiley para la serie de Microsoft Ofcial Academic Course es proporcionar a los alumnos y docentes las habilidades
y conocimientos que necesitan para utilizar la tecnologa de Microsoft de manera ecaz en todos los aspectos de su vida personal
y profesional. La enseanza de calidad es necesaria para ayudar a docentes y alumnos a obtener lo mejor de las herramientas de
software de Microsoft y para ser ms productivos. Por lo tanto, nuestra misin es hacer que nuestros programas de enseanza sean
conables compaeros educativos para toda la vida.
Para lograr esta misin, Wiley y Microsoft se han asociado para desarrollar programas educativos de la ms alta calidad orientados
a trabajadores informticos, profesionales en las tecnologas de la informacin y desarrolladores. Los materiales creados por esta
asociacin llevarn el nombre de Microsoft Ofcial 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 informacin y
enseanza de la ms alta calidad. Los libros de texto de Microsoft Ofcial Academic Course son Ociales en ms de un sentido,
ya que son cursos autorizados de manera ocial por miembros de la Academia IT de Microsoft.
La serie de Microsoft Ofcial 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
informtica, profesionales en las tecnologas de la informacin y desarrolladores. Los programas de Microsoft Ofcial Academic
Course se ajustan a sus necesidades al hacer nfasis en situaciones autnticas de trabajo e implementando diversos proyectos,
ejercicios, casos y evaluaciones.
www.pdftron.com
IBE
RO
Microsoft Ofcial Academic Course se encuentra asociado a la investigacin exhaustiva de Microsoft y al anlisis de tareas de
trabajo, la misma investigacin y anlisis que se utiliz para crear los exmenes de Microsoft Technology Associate (MTA) y
Microsoft Certied 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 tecnologa ms reciente de Microsoft a las tareas de cada da. Estos alumnos tambin
obtienen experiencia que pueden incluir en su currculum lo cual les puede ayudar a encontrar un trabajo, mantener el actual o
complementar su educacin.
Actualmente el concepto de formacin continua es una gran necesidad. Los roles de trabajo e incluso todas las categoras de
trabajo cambian continuamente y por ello ninguna persona puede ser competente o productiva sin actualizar continuamente sus
habilidades y capacidades. Microsoft Ofcial Academic Course ofrece y se enfoca en el examen de preparacin para la certicacin
de Microsoft por lo cual proporciona medios para que las personas adquieran y actualicen de manera ecaz sus habilidades y
conocimientos. Wiley apoya a los alumnos en este esfuerzo a travs del desarrollo y distribucin de estos cursos como editor
acadmico ocial de Microsoft.
ETC
Actualmente las publicaciones educativas requieren de atencin para proporcionar material impreso y contenido electrnico de
buena calidad. Al integrar los productos de Microsoft Ofcial Academic Course, WileyPLUS y las certicaciones de Microsoft,
estamos mejor capacitados para ofrecer soluciones de aprendizaje ecaces para alumnos y docentes.
Bonnie Lieberman
Director general y Vicepresidente
Visite la pgina www.wiley.com/college/microsoft o llame al nmero gratuito de MOAC: 1+ (888) 764-7001 (nicamente
Estados Unidos y Canad)
CA
Prefacio
AM
RI
Bienvenido al programa Microsoft Ofcial Academic Course (MOAC) para el curso de Fundamentos
de Bases de Datos MTA. MOAC representa la colaboracin entre Microsoft Learning y la compaa
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
adquieran experiencias de aprendizaje superiores. Estos libros de texto maximizan la transferencia
de habilidades en poco tiempo. Los alumnos se ven desaados a lograr maximizar su potencial al
utilizar sus nuevas habilidades tcnicas como miembros altamente productivos de la fuerza laboral.
Debido a que esta base de conocimientos proviene directamente de Microsoft y el creador de los
exmenes de Microsoft Technology Associate, Microsoft Certied IT Professional y Microsoft
Certied Professional (www.microsoft.com/learning/mcp/mcitp) le garantizan que recibir la
cobertura de los temas que son ms relevantes para el xito personal y profesional de los alumnos. La
participacin directa de Microsoft no nicamente garantiza que el contenido de los libros de texto
MOAC es preciso y actual, sino que tambin signica que los alumnos recibirn la mejor enseanza
posible para lograr que tengan xito en los exmenes de certicacin y en su trabajo.
www.pdftron.com
ETC
IBE
RO
Prefacio
AM
RI
CA
La serie de Microsoft Ofcial Academic Course es un programa completo para docentes e instituciones
que desean preparar e impartir cursos sobre las tecnologas del software de Microsoft. Con MOAC,
reconocemos que, debido a la rpida evolucin de la tecnologa y al plan de estudios desarrollado
por Microsoft, existen necesidades actuales que van ms all de las herramientas de enseanza que
se utilizan en el saln de clases y por ello, el docente debe estar preparado para saber cmo impartir
el curso. El programa MOAC intenta proporcionar soluciones para todas esas necesidades de manera
sistemtica y garantizar una experiencia del curso exitosa y graticante tanto para el docente como
para el alumno; tambin ofrece una capacitacin tcnica 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
cuenta con una diversidad de herramientas para aplicarlas en la enseanza en el saln de clases y
laboratorio de computacin. Todas las herramientas son importantes para la imparticin 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 propsito de impartir un gran curso. A medida que evale las opciones de materiales educativos,
desear utilizar un modelo de comparacin para todos los productos que se encuentran disponibles.
ETC
IBE
RO
www.pdftron.com
Caractersticas pedaggicas
CA
AM
RI
Los libros de texto MOAC para los Fundamentos de Bases de Datos se disearon para cubrir todos
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 Certied Information Technology Professional
(MCITP) se encuentran destacados en los libros de texto. Muchas de las caractersticas pedaggicas
se han desarrollado especialmente para los programas de Microsoft Ofcial Academic Course.
La presentacin de la extensa informacin de procedimientos y los conceptos tcnicos que se
presentan en los libros de texto aumentan los desafos tanto para alumnos como para docentes.
El siguiente Tour ilustrado del libro proporciona una gua para las caractersticas multimedia que
contribuyen al plan pedaggico del programa Microsoft Ofcial Academic Course. A continuacin
se encuentra una lista de las caractersticas clave en cada leccin que fueron diseadas para preparar
a los alumnos a que tengan xito a medida que continan con su educacin en las tecnologas de la
informacin, en los exmenes de certicacin y en su trabajo:
www.pdftron.com
IBE
RO
Cada leccin inicia con una Matriz de habilidades de la leccin (Dominio de objetivos). Ms
que una lista de objetivos de aprendizaje, la Matriz del dominio correlaciona cada habilidad
del software que se explic en la leccin con el dominio de objetivos especcos del examen.
Las clases concisas y detalladas ensean a los alumnos nuevas caractersticas y les da la
oportunidad de practicar. Existen diversos pasos detallados que ayudan a los alumnos a
aprender ms habilidades de software. Los pasos tambin muestran los resultados y las
imgenes en pantalla para saber lo que los alumnos debern ver en sus computadoras.
ETC
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 tambin proporcionan informacin relevante o una
referencia que le agrega valor a la leccin.
Las caractersticas de Listo para la certicacin en el texto indica a los alumnos en qu parte
se cubre un objetivo especco de la certicacin, dndoles la oportunidad a los alumnos de
vericar su entendimiento de los objetivos de ese examen en particular y, de ser necesario,
proporciona un repaso a la seccin de la leccin en donde se cubri el objetivo.
La evaluacin del conocimiento proporciona de manera progresiva ms actividades
desaantes al trmino de cada una de las lecciones.
Leccin 1
Tabla Padre
Tabla 1-1
Diseo de base de datos
jerrquica mostrando
tablas padre e hijo
NumEmp
100
101
102
103
Nombre
Paul
Jane
Jim
Ed
Apellido
Baker
Smith
Tate
Rosen
NumDept
101
101
101
102
CA
VII
Tabla Hijo
NumSerial
30032334
4323452
342342
234322
Tipo
Computadora
Laptop
Monitor
Impresora
NumEmp
100
101
100
100
AM
RI
La tabla padre mantiene los datos del empleado. Cada la o registro se reere a la
informacin del usuario incluyendo el nmero de empleado del usuario (NumEmp).
La tabla hijo mantiene los datos del equipo de cmputo. 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 jerrquica,
podemos asignar mltiples dispositivos de cmputo a cada empleado.
El ltimo an ms importante tipo de base de datos es una base de datos relacional. Una base de datos relacional es
similar a la base de datos jerrquica en la que los datos son almacenados en tablas y cualquier informacin nueva es
aadida automticamente en la tabla sin la necesidad de reorganizar la propia tabla. A diferencia de la base de datos
jerrquica, una tabla en una base de datos relacional puede tener mltiples padres.
; Listo para la
certicacin
Alertas de objetivo de
certicacin MTA
Podra ya haber trabajado con productos de base de datos similares (tal como Access) y si
es as, est familiarizado con las distintas tablas que constituyen muchos de los reportes
de salida. Utilizando la informacin proporcionada en la Tabla 1-1, al jefe de la ocina le
gustara tener un registro de cuales empleados reciben qu tipo de equipo. Como creador
de la base de datos, necesita mirar ambas tablas para recuperar la informacin relevante
de cada tabla con el n de compilar el reporte para el jefe de la ocina. Primero debe
encontrar la clave que se encuentra en ambas tablas. Utilizando esta clave, puede ltrar la
informacin redundante o irrelevante almacenada.
Bsicamente, una base de datos est hecha de muchas tablas. Justo como un libro de
Excel puede estar hecho de varias hojas de clculo albergando miles de las y columnas
de informacin. Esto es el porqu es ms fcil trabajar con una base de datos cuando est
tratando de ir a travs de varias hojas de clculo para encontrar la informacin que necesita.
Un ejemplo de una base de datos relacional, es mostrado en la Tabla 1-2. En la primera
tabla Padre, tiene una tabla que muestra a los vendedores de una compaa. En la segunda
tabla padre, tiene varios modelos que estn a la venta. En la tabla hijo, tiene clientes
quienes han comprado modelos de su compaa, lo cual esta enlazado a la primer tabla
padre con el NumEmp y a la segunda tabla padre con el Modelo.
IBE
RO
www.pdftron.com
Comprender los conceptos bsicos de bases de datos
21
Evaluacin de Conocimientos
4. Con el n de utilizar el objeto vistas para ver un conjunto de datos, debe utilizar la
sentencia de Transact-SQL ____________ para mostrar datos de tablas subyacentes.
5. DDL manipula ____________, mientras que ____________ manipula la
informacin almacenada en tablas.
ETC
CREATE
MERGE
ALTER
DROP
DEFAULT
CHECK
RANGE
UNIQUE
Preguntas de evaluacin de
conocimiento
VIII
23
Evaluacin de Competencias
Estudio de casos
Recin ha sido contratado como DBA (Administrador de base de datos) para una compaa
internacional que es una sociedad nanciera para muchas otras compaas. Su primera
tarea es disear 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.
Ejercicio 1-2: Diseando una Base de Datos Relacional
Se le ha dado una tarea de disear una base de datos relacional para soportar un negocio de
venta de autos. Necesita almacenar informacin 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 comisin. Qu tablas y columnas creara y como enlazara las tablas?
AM
RI
CA
Recin 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 gustara
visualizar la ayuda en la sentencia CREATE de forma que pueda crear una tabla. Por lo
tanto, Cules son los pasos que utilizara para encontrar esa informacin?
Ejercicio 1-4: Creando bases de datos utilizando la Interfaz Grca de
SSMS
www.pdftron.com
ETC
IBE
RO
CA
AM
RI
Este libro utiliza fuentes, smbolos y convenciones de encabezados especcos para destacar la
informacin que es importante o para dirigir la atencin hacia pasos determinados. Para ms
informacin sobre las caractersticas en cada leccin, dirjase a la seccin Tour ilustrado del libro.
Convencin
Significado
EN RESUMEN
; Listo para la
Certicacin
Tome Nota
OTRA MANERA
X-Ref
ETC
IBE
RO
www.pdftron.com
CA
AM
RI
La Gua del docente contiene Soluciones para todos los ejercicios del libro de texto as como
resumen de cada captulo y notas para el lector. La Gua del docente y los Programas de
estudio para diversos trminos se encuentran disponibles en el sitio de la compaa del libro
(www.wiley.com/college/microsoft).
El Banco de pruebas contiene cientos de preguntas de opcin mltiple, verdadero-falso,
respuestas cortas y formatos de ensayo y se encuentran disponibles para descargarlos del sitio
de la compaa del libro del docente (www.wiley.com/college/microsoft). Se proporcionan
todas las respuestas de las preguntas.
Presentaciones en PowerPoint e imgenes: Se encuentra disponible un conjunto de
presentaciones de PowerPoint en el sitio de la compaa del libro del docente (www.wiley.
com/college/microsoft) que sirven para mejorar las presentaciones en el saln de clases.
Se ajustan a los temas que se cubren en el libro y a la Matriz de habilidades ya que estas
presentaciones se disearon para transmitir los conceptos clave que se mencionan en el
texto.
IBE
RO
www.pdftron.com
Todas las imgenes del texto se encuentran en el sitio de la compaa 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 tecnologas que se cubren en el libro y les ayuda a entender cmo utilizarlos de manera
efectiva en el trabajo.
ETC
Cuando se desea mejorar las experiencias del saln de clases, no existe una mejor fuente de
ideas y de inspiracin que los compaeros de trabajo. La Red de Facultades Wiley conecta
a maestros que cuentan con tecnologa, facilita el intercambio de las mejores prcticas y les
ayuda a mejorar su ecacia como docentes. Las actividades de la Red de Facultades incluyen
la capacitacin de tecnologa y tutoriales, seminarios virtuales, intercambio de experiencias
e ideas entre colegas, consultas personales y compartir recursos. Para ms detalles visite el
sitio www.WhereFacultyConnect.com.
XI
CA
AM
RI
Microsoft Developer Network Academic Alliance (MSDN AA) se dise para proporcionar a las
universidades la forma ms fcil y econmica de hacer disponibles las herramientas de desarrollo
de Microsoft, productos y tecnologas ms recientes en los laboratorios, salones de clases y en
las PC de los alumnos. MSDN AA es un programa de membresa anual para los departamentos
que ensean cursos de Ciencias, Tecnologa, Ingeniera y Matemticas (STEM). La membresa
proporciona una solucin completa para mantener a los laboratorios acadmicos, facultades y
alumnos a la vanguardia de la tecnologa.
El software que se encuentra disponible en el programa MSDN AA se proporciona sin costo
alguno a los departamentos usuarios a travs de la asociacin de publicacin de Wiley y Microsoft.
Como un extra a esta oferta gratuita, se introducir a la facultad a la Conexin de Facultades
de Microsoft y al Centro de Recursos Acadmicos. Se requiere de tiempo y preparacin para
lograr que los alumnos se involucren mientras se les da un entendimiento bsico de la teora y
la Conexin de Facultades de Microsoft se dise para ayudar a los docentes de STEM con esta
preparacin al proporcionarles artculos, planes de estudio y herramientas que pueden utilizar para
involucrar a los alumnos y animarlos a utilizar la tecnologa.
Para ms detalles, contacte a su representante de Wiley.
www.pdftron.com
msdn.microsoft.com/academic/
IBE
RO
Nota: Se puede descargar Microsoft Visual Studio 2008 de MSDN AA para utilizarlo con los
alumnos en este curso.
ETC
CA
AM
RI
El sitio de la compaa del libro del alumno para la serie de MOAC incluye cualquier recurso,
ejercicio y vnculo web que se utilizar junto con este curso.
Las ediciones digitales MOAC de Wiley son versiones electrnicas innovadoras de los libros de texto
impresos. En Estados Unidos, los alumnos compran la versin 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 benecios adicionales que no se encuentran disponibles
en otras soluciones de texto electrnico.
Las ediciones digitales Wiley NO son suscripciones; los alumnos descargan dicha edicin a sus
computadoras. Los alumnos son propietarios del contenido que compran y lo pueden tener en su
poder el tiempo que quieran. Despus de que se descarga la edicin digital Wiley al equipo, los
alumnos tienen acceso instantneo a todo el contenido sin navegar en Internet. Los alumnos tambin
pueden imprimir cualquier seccin que preeran leer en papel. Tambin pueden tener acceso a los
recursos que se encuentran en la edicin digital Wiley. De subrayar su texto electrnico a tomar
y compartir notas, los alumnos fcilmente personalizan sus ediciones digitales Wiley al leer o al
continuar en la clase.
ETC
IBE
RO
www.pdftron.com
CA
AM
RI
La tecnologa juega un papel importante prcticamente en cada uno de los negocios alrededor del
mundo. Poseer el conocimiento bsico de cmo funciona la tecnologa y entender su impacto en los
entornos acadmicos y laborales de la actualidad es de fundamental importancia, sobre todo para los
alumnos que estn interesados en explorar las profesiones relacionadas con la tecnologa. Esta es la
razn por la cual Microsoft cre la certicacin Microsoft Technology Associate (MTA) la cual es
una nueva credencial de entrada que valida el conocimiento tecnolgico bsico que deben poseer los
alumnos que quieren tener una carrera en la tecnologa.
La certicacin Microsoft Technology Associate (MTA) es el camino ideal y preferido para los
programas de certicacin de tecnologa renovada del mundo de Microsoft, como lo son Microsoft
Certied Technology Specialist (MCTS) y Microsoft Certied 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 tecnologa o para expandir cualquier otra posibilidad
relacionada como lo son los negocios o cualquier otro campo en donde predomine la tecnologa.
www.pdftron.com
IBE
RO
ETC
MTA proporciona un nuevo estndar para medir y validar el conocimiento tecnolgico bsico en el
saln de clases mientras mantiene intacto su presupuesto y los recursos de enseanza. MTA ayuda a
las instituciones a que se destaquen como proveedores innovadores de credenciales en la industria de
alta demanda y se puede implementar con facilidad con un paquete sencillo, conveniente y costeable
de exmenes de certicacin en tecnologa de nivel introductorio. MTA permite a los alumnos
explorar rutas de formacin profesional en la tecnologa sin requerir de una gran inversin de tiempo
y recursos, y a su vez, proporciona una base profesional y la conanza para tener xito en estudios
avanzados y en futuros escenarios profesionales.
Adems de proporcionar a los alumnos una certicacin de nivel introductorio a Microsoft, MTA se
dise para ser un escaln hacia otras certicaciones en tecnologa de Microsoft ms avanzadas, por
ejemplo la certicacin de Microsoft Certied Technology Specialist (MCTS).
XIV
AM
RI
CA
Implementar un nuevo programa de certicacin en el saln de clases nunca antes haba sido tan
fcil, sobre todo si se cuenta con la Licencia Campus de MTA. Basta con comprarla una sola vez
por un periodo de un ao para obtener 1,000 exmenes de la Licencia Campus de MTA y no habr
necesidad de realizar otro presupuesto adecuado y volver a comprar vouchers para los exmenes. En
la actualidad, puede realizar el presupuesto a un bajo costo para todo el ao para posteriormente
administrar los exmenes MTA con los alumnos y otras facultades en todo el campus cuando y donde
lo desee.
La Licencia Campus de MTA proporciona un paquete conveniente y costeable de certicaciones de
tecnologa de nivel introductorio que se dise para facultar a docentes y motivar a los alumnos a
medida que construyen la base para sus carreras.
La Licencia Campus de MTA se encuentra administrada por Certiport, proveedor exclusivo de
exmenes de MTA de Microsoft.Para obtener ms informacin sobre Microsoft Technology Associate
y de la disponibilidad de exmenes, visite el sitio www.microsoft.com/learning/mta.
www.pdftron.com
IBE
RO
ETC
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 exmenes de prctica de GMetrix son una
de las herramientas ms efectivas para evaluar la preparacin de cada persona para el examen de
certicacin de MTA.
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
CA
ndice
AM
RI
25
3. Manipulacin de datos
53
75
105
ETC
IBE
RO
www.pdftron.com
CA
Contenido
Leccin 2
Crear objetos de bases de datos
26
27
25
AM
RI
Leccin 1
Comprender los conceptos bsicos de
1
bases de datos
29
31
32
33
www.pdftron.com
Utilizar la interfaz del SQL Server Management Studio
(SSMS)
10
IBE
RO
16
ALTER
DROP
Prcticas recomendadas
16
46
45
CREATE
GO
15
42
44
45
45
46
Resumen de Habilidades 47
Evaluacin de Conocimientos 48
Evaluacin de aptitud
50
Evaluacin de destreza 51
16
17
18
TRUNCATE y DELETE 18
Tablas del Sistema 19
ETC
Resumen de Habilidades 20
Evaluacin de Conocimientos
Evaluacin de Competencias
21
23
Leccin 3
Manipulacin de datos
53
56
57
54
58
59
63
XVIII
63
66
66
Leccin 5
Servicios Esenciales 105
Eliminar datos 67
Uso de la sentencia DELETE
67
68
CA
Insertar datos
106
68
107
AM
RI
Resumen de Habilidades
70
Evaluacin de Conocimientos
71
Evaluacin de aptitud 72
Evaluacin de destreza 73
108
Seguridad de Windows
108
109
Leccin 4
Comprender el Almacenamiento de
Datos 75
Normalizar una Base de Datos
112
113
113
76
Qu es la Normalizacin? 76
116
www.pdftron.com
Primer Forma Normal (1NF) Eliminar Grupos
77
Repetidos
Seguridad de Objeto
81
81
86
ETC
Claves principales compuestas
118
Permisos de objetos
118
Administrar roles
120
120
90
117
121
Claves externas 86
92
ndices non-clustered
116
117
IBE
RO
93
93
Resumen de Habilidades
98
Evaluacin de Conocimiento 101
Cadenas de propiedad
123
124
126
Respaldos de archivos
126
127
125
122
Contenido
XIX
127
128
129
AM
RI
CA
ETC
IBE
RO
www.pdftron.com
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
Leccin 1
CA
Trminos Clave
AM
RI
Habilidades/Conceptos
1.2
1.3
1.4
www.pdftron.com
Sistema de administracin de base de
datos (DBMS)
Servidor de base de datos
Base de datos plana
Base de datos jerrquica
ndice
IBE
RO
Limitaciones
Base de datos (db)
Lenguaje de Denicin de Datos
(DDL)
Lenguaje de manipulacin de datos
(DML)
Consulta
Base de datos relacional
SQL Server Management Studio
(SSMS)
Tabla
Transact-SQL
ETC
Leccin 1
CA
EN RESUMEN
AM
RI
Con la tecnologa actual, cualquier computadora en la red puede proporcionar o solicitar servicios dependiendo de
cmo se congura 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.
Una base de datos (bd) es una coleccin organizada de datos, tpicamente almacenada
en un formato electrnico. Le permite introducir, organizar y recuperar la informacin
rpidamente. Las bases de datos tradicionales estn organizadas por campos, registros y
las.
Microsoft SQL server utiliza tres tipos de archivos para almacenar la base de datos. Archivos
de datos principales, con una extensin .mdf, son los primeros archivos creados en una base
de datos y puede contener objetos denidos por el usuario, tales como tablas y vistas, as
como tambin 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 extensin .ndf, en discos
duros fsicos separados para dar ms 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 extensin .ldf y no contienen ningn objeto tal como tablas o vistas.
IBE
RO
www.pdftron.com
Un ejemplo de base de datos es el directorio telefnico. Si tiene un directorio telefnico
almacenado en disco, el directorio telefnico sera el archivo. Dentro del directorio
telefnico, tiene una lista de registros. Cada registro tiene un nombre, direccin y nmero
telefnico. Un campo es una sola pieza de informacin. Los ejemplos incluyen nombre,
nmero telefnico y direccin.
Ya que una base de datos puede almacenar miles de registros, sera una faena si tuviera
que abrir la tabla e ir a travs de cada registro, uno a la vez, hasta que encuentre el registro
que necesita. Por supuesto, sera an ms difcil si tiene que recuperar registros mltiples.
Para recuperar datos dentro de una base de datos, ejecutara una consulta, lo cual es una
investigacin en la base de datos con el n de obtener informacin desde ah. En otras
palabras, una consulta es utilizada para pedir informacin desde la base de datos y los datos
son regresados.
ETC
Si la base de datos contiene miles de registros con muchos campos por registro, podra
tomar tiempo a una computadora rpida el buscar a travs de una tabla para recuperar la
informacin. Un ndice de base de datos es una estructura de datos que mejora la velocidad
de las operaciones de recuperacin 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 mayora de los usuarios no acceden a las bases de datos directamente, en su lugar, los
usuarios utilizan un sistema de administracin de base de datos (DBMS) para acceder a
la base de datos indirectamente. DBMS es una coleccin 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.
CA
Hay tres tipos de bases de datos que debera conocer con el n de hacer la eleccin apropiada
cuando desarrolle sus propias tablas de base de datos. Cada tipo de base de datos tiene sus
propias caractersticas de diseo importantes:
; Listo para la
certicacin
Cmo estn
organizadas las tablas
dentro de una base de
datos? 1.1
AM
RI
Una base de datos plana, es un diseo muy simple. Son ms comnmente utilizadas en formatos de texto plano, ya
que su propsito es mantener un registro por lnea, haciendo el desempeo de acceso y consultas muy rpidas. 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 podra ser denida
como un campo (tal como el apellido de una persona o el nmero de ID de un producto) y
cada rengln sera un registro (tal como la informacin de una persona o la informacin de
un producto. El siguiente es un ejemplo de un archivo de base de datos plana simple donde
una compaa de suministros ha congurado a cada cliente con lo que el cliente ordena
consistentemente para una fcil recuperacin y propsitos de reordenamiento:
id
1
2
3
4
5
cliente
allen
smith
dennis
alex
sloan
orden
cuaderno
papel
plumas
cartuchos de tinta
impresora
IBE
RO
www.pdftron.com
f Comprender las bases de datos jerrquicas
Un diseo de base de datos jerrquica es similar a la estructura de un rbol (tal como un rbol familiar). Cada padre
puede tener mltiples hijos, pero cada hijo puede tener slo un padre. Esto es similar al funcionamiento de un diseo
de base de datos jerrquico donde hay una relacin padre-hijo.
ETC
Un ejemplo de una base de datos jerrquica padre-hijo es mostrada en la Tabla 1-1. Por lo
que podra tener un departamento de cuatro empleados para los que la compaa acaba de
comprar equipo nuevo. Una tabla podra mantener la informacin del empleado mientras
otra tabla podra mantener los datos del equipo recin comprado. La tabla en la izquierda
es denida como padre y la tabla de la derecha es denida como el hijo. Si tiene varias
tablas que estn enlazadas, las tablas de la base de datos empezaran a formar la estructura
de rbol donde tiene un padre, que tiene mltiples tablas hijo y cada uno de esas tablas
hijo podra tener sus propias tablas hijo.
Leccin 1
Tabla Padre
NumEmp
100
101
102
103
Tabla Hijo
NumSerial
30032334
4323452
342342
234322
Nombre
Paul
Jane
Jim
Ed
Apellido
Baker
Smith
Tate
Rosen
NumDept
101
101
101
102
CA
Tabla 1-1
AM
RI
Tipo
Computadora
Laptop
Monitor
Impresora
NumEmp
100
101
100
100
La tabla padre mantiene los datos del empleado. Cada la o registro se reere a la
informacin del usuario incluyendo el nmero de empleado del usuario (NumEmp).
La tabla hijo mantiene los datos del equipo de cmputo. 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 jerrquica,
podemos asignar mltiples dispositivos de cmputo a cada empleado.
www.pdftron.com
IBE
RO
El ltimo an ms importante tipo de base de datos es una base de datos relacional. Una base de datos relacional es
similar a la base de datos jerrquica en la que los datos son almacenados en tablas y cualquier informacin nueva es
aadida automticamente en la tabla sin la necesidad de reorganizar la propia tabla. A diferencia de la base de datos
jerrquica, una tabla en una base de datos relacional puede tener mltiples padres.
; Listo para la
certicacin
Bsicamente, una base de datos est hecha de muchas tablas. Justo como un libro de
Excel puede estar hecho de varias hojas de clculo albergando miles de las y columnas
de informacin. Esto es el porqu es ms fcil trabajar con una base de datos cuando est
tratando de ir a travs de varias hojas de clculo para encontrar la informacin que necesita.
ETC
Cul es la diferencia
entre las bases de
datos relacionales a
las bases de datos
planas y bases de
datos jerrquicas?
1.2
Podra ya haber trabajado con productos de base de datos similares (tal como Access) y si
es as, est familiarizado con las distintas tablas que constituyen muchos de los reportes
de salida. Utilizando la informacin proporcionada en la Tabla 1-1, al jefe de la ocina le
gustara tener un registro de cules empleados reciben qu tipo de equipo. Como creador
de la base de datos, necesita mirar ambas tablas para recuperar la informacin relevante
de cada tabla con el n de compilar el reporte para el jefe de la ocina. Primero debe
encontrar la clave que se encuentra en ambas tablas. Utilizando esta clave, puede ltrar la
informacin redundante o irrelevante almacenada.
Tabla 1-2
Tabla Padre 1
NumEmp
100
101
102
103
Nombre
Paul
Jane
Jim
Ed
Tabla Padre 2
Apellido
Baker
Smith
Tate
Rosen
Modelo
2200MX
42CRS
4232DR
2201MX
Costo
$75000
$55000
$60000
$80000
Color
Red
Gray
Red
Blue
AM
RI
Tabla Hijo
CA
Nombre
Pete
Jim
Omar
Louise
Apellido
Wilson
Cline
Salize
Peterson
IDNum
1001
1002
1003
1004
Modelo
2200MX
42CRS
4232DR
2201MX
Una base de datos simple con una sola tabla es similar a una hoja de clculo que contiene las y columnas. Sin
embargo, a diferencia de una hoja de clculo, una base de datos le permite almacenar miles de las y datos y despus
acceder a esa informacin ms rpidamente de lo que lo puede hacer leyendo una hoja de clculo.
www.pdftron.com
IBE
RO
Una hoja de clculo a menudo es el punto de inicio para crear una base de datos. Utilizando
una hoja de clculo, es fcil crear encabezados e iniciar a introducir informacin. Es fcil
aadir, eliminar, reordenar y formatear encabezados. Tambin puede fcilmente ordenar la
informacin en uno o ms encabezados. Es fcil insertar, eliminar y ltrar renglones que
coincidan con uno o ms patrones bajo un encabezado.
Muchas bases de datos acumularn miles de las de datos. Basado en sus necesidades,
podra necesitar crear tablas adicionales. En una hoja de clculo, esto sera igual que aadir
hojas de clculo adicionales, lo cual puede ser utilizado para categorizar la informacin por
una entidad o periodo de tiempo o manteniendo la informacin adicional.
Las hojas de clculo estn diseadas y limitadas a miles de las por hoja de clculo.
Cuando una hoja de clculo es abierta, el archivo entero es cargado en la memoria de
la computadora. Si se almacena suciente informacin, el archivo eventualmente podra
fallar en el momento de cargarlo dado la memoria insuciente. De repente, los benecios
de utilizar una hoja de clculo empiezan a declinar. Esto es cuando el cambiar a una base
de datos tiene ms sentido.
ETC
Leccin 1
Figura 1-1
AM
RI
Hoja de Clculo
con Mltiples Hojas
Electrnicas
CA
IBE
RO
www.pdftron.com
Cuando una columna de una hoja de clculo contiene datos que podran estar vacos, un
vaco es almacenado como un NULL en la base de datos. Una tabla de base de datos puede
estar diseada para permitir valores NULL o para no permitirlos dentro de una columna.
ETC
En una hoja de clculo, puede utilizar frmulas para calcular valores desde otra informacin
en la misma la o columna. Un valor calculado es esencialmente un valor que resulta de
alguna ordenacin, clculo o frmula desempeado en un valor de entrada especco.
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 aplicacin que est
Figura 1-2
AM
RI
CA
IBE
RO
www.pdftron.com
f Comprender conceptos de bases de datos relacionales
Antes de que disee su primera base de datos relacional, debe comprender los elementos que forman una base de
datos y la terminologa detrs de la base de datos.
Tome Nota
ETC
Las bases de datos a menudo son encontradas en servidores de bases de datos de forma
que pueden ser accedidos por mltiples usuarios y para proporcionar un nivel alto de
desempeo. Un servidor de base de datos popular ejecuta Microsoft SQL Server. Los
servidores de bases de datos realmente no actan para albergar programas grcos,
aplicaciones de procesamiento de palabras o cualquier otro tipo de aplicaciones. Estos
servidores son optimizados por completo para servir solo a los propsitos de la propia base
de datos, regularmente utilizando hardware avanzado para permitir las necesidades de
alto procesamiento del servidor de base de datos. Es importante notar que estos servidores
no actan como una estacin de trabajo, generalmente estn montados en racks ubicados
en un centro de datos central y son accedidos slo a travs de un sistema de escritorio del
administrador.
Una base de datos relacional ayuda a organizar toda su informacin de las distintas las
y columnas de cada tabla, como se muestra en la Figura 1-5. Cada columna entonces
corresponder a un tipo especco de informacin que est buscando almacenar en la base
de datos. Como observa en la gura, imagine que cada la corresponde a un registro, una
instancia de cada columna y cada tabla podra estar relacionada a uno o ms tablas.
Leccin 1
Figura 1-3
AM
RI
CA
www.pdftron.com
IBE
RO
Un modelo de base de datos relacional organiza esa informacin mostrada en la Figura 1-3
en una tabla de base de datos la cual contiene las y columnas y cada columna corresponde
a un atributo o un tipo de informacin que desea almacenar. Cada la corresponde a un
registro o una instancia de cada columna.
ETC
Los objetos de bases de datos son divididos jerrquicamente en dos amplias categoras:
almacenamiento y programacin. Una tabla est estructurada por columnas y las; cada
una de las columnas entonces almacena datos clasicados 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 travs de tipos integrados o creando sus
propios tipos de datos denidos por el usuario. Los tipos de datos sern discutidos en la
Leccin 2.
Figura 1-4
CA
Estructura de base de
datos mostrando atributos
de columna
AM
RI
Tome Nota
Las bases de datos
avanzadas, tales
como SQL Server,
analizan consultas
peridicamente y
crea ndices conforme
es necesario
para optimizar el
desempeo. Puede
encontrar evidencia
de esto buscando el
ndice en la base de
datos.
IBE
RO
www.pdftron.com
ETC
10
Leccin 1
Figura 1-5
AM
RI
CA
Tome Nota
Una clave externa
tambin puede ser
conocida como auto
referencia
IBE
RO
www.pdftron.com
Las columnas marcadas como clave externa no contienen valores nulos (null). Este no es un
estndar deseado en la prctica, debido a que no se pueden vericar las restricciones si una
clave externa consiste de dos o ms columnas y contiene valores nulos (null). Esto signica
que no se puede garantizar que la integridad de sus datos est libre de errores.
Es posible para una restriccin de clave externa el hacer referencia a columnas en la misma
tabla, tambin 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
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 tambin es una persona almacenada en la tabla Generaciones, de
manera que puede crear una relacin de clave externa desde el MotherID (la columna de
clave externa) referenciando PersonID (la columna de la clave principal).
ETC
Cuando instala el Microsoft SQL Server, tambin instala el SQL Server Management Studio (SSMS), la cual es la
herramienta principal para administrar el servidor y sus bases de datos utilizando una interfaz grca.
La caracterstica central del SQL Server Management Studio es el Explorador de Objetos,
el cual permite al usuario el navegar, seleccionar y administrar cualquiera de los objetos
dentro del servidor. Vea la Figura 1-6. Tambin puede ser utilizado para ver el desempeo
de la base de datos y optimizar el desempeo de la base de datos. El SQL Server Management
Studio tambin puede ser utilizado para crear y modicar la base de datos, tablas e ndices.
11
Figura 1-6
AM
RI
CA
IBE
RO
www.pdftron.com
ETC
SSMS tambin 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,
12
Leccin 1
Figura 1-7
AM
RI
CA
Query Analyzer
www.pdftron.com
IBE
RO
Debe tener SQL Server 2008 instalado en su sistema antes de moverse a la siguiente
seccin.
1. Haga clic en el botn Inicio y luego en Microsoft SQL Server 2008 para expandir la
seleccin de programa.
2. Haga clic en SQL Server Management Studio. El Management Studio se abre,
desplegando el cuadro de dilogo de Conectar con el Servidor.
3. Cambie los detalles de conexin al servidor (si es necesario) y haga clic en Conectar.
Despus de que congure las opciones del servidor correctamente, la interfaz del SQL
Server Management Studio ser visible.
Solucin de Problemas
ETC
Su computadora podra 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, podra tener que agregar esto como
una actualizacin de instalacin de servidor. Para hacer esto, inserte el CD de instalacin, y
haga clic en el botn Avanzadas en los Componentes para la ventana de instalacin cuando
aparezca.
Tome Nota
Tambin 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.
13
PAUSA. DEJE el SQL Server Management Studio abierto para el recordatorio del captulo.
CA
El SQL Server Management Studio puede ser utilizado para desempear la mayora de las
actividades que requiere hacer y puede ser considerado como una herramienta de onestop.
AM
RI
PREPRESE. Antes que pueda iniciar a administrar las bases de datos, tendr que crearlas.
1. Abra SQL Server Management Studio. Para hacer esto, haga clic en Inicio despus en
Todos los programas luego en Microsoft SQL Server 2008 y nalmente en SQL Server
Management Studio.
2. Asegrese que el Motor de Base de Datos esta seleccionado y haga clic en el botn
Conectar.
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 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 botn Aceptar.
www.pdftron.com
IBE
RO
PREPRESE. De vez en cuando, desea eliminar bases de datos que no estn en uso.
1. Abra el SQL Server Management Studio. Para hacer eso, haga clic en Inicio despus
en Todos los Programas, posteriormente en Microsoft SQL Server 2008 y al nal en SQL
Server Management Studio.
2. Asegrese que el Motor de Bases de Datos est seleccionado y haga clic en el botn
Conectar.
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 botn Aceptar.
ETC
Por ltimo, SQL Server tiene un rea de ayuda intensiva. Adems, cuando instala el
SQL server, tambin tiene la opcin de instalar los Libros en lnea y los Tutoriales del
Servidor. Por lo tanto, si desea encontrar informacin acerca de una opcin o comando,
debe comprobar la Ayuda y los Libros en lnea. Por supuesto, si an no puede encontrar
lo que est buscando, no tenga miedo de buscar en internet.
14
Leccin 1
CA
EN RESUMEN
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.
Cules comandos
populares utilizados
con SQL son comandos
DML? 1.3
AM
RI
; Listo para la
certicacin
IBE
RO
www.pdftron.com
Comprender el lenguaje de denicin de datos (DDL)
EN RESUMEN
Las sentencias del Lenguaje de denicin de datos (DDL) forman parte de la porcin de Transact-SQL del SQL Server
y puede ser utilizado para crear objetos de bases de datos tales como tablas y vistas.
; Listo para la
certicacin
ETC
Qu comandos
populares de SQL son
comandos de DDL?
1.4
15
Figura 1-8
AM
RI
CA
www.pdftron.com
IBE
RO
ETC
La interfaz de usuario del SQL Server Management Studio le permite visualizar el diseo
de sus sentencias de DDL. Una tarea de sentencias de script DDL puede ser completado
siempre a travs de la interfaz de usuario del SQL Server Management Studio pero no todas
las opciones que deseara utilizar con el script DDL pueden ser llevadas a cabo a travs 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
denidos por el usuario, vistas, triggers, funciones y procedimientos almacenados.
Mientras ms sentencias DDL puedan ser ejecutadas utilizando la interfaz grca de SSMS,
aun as tiene ms poder, exibilidad y control cuando utiliza sentencias DDL. Tambin
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
Leccin 1
Qu comando de
DDL utilizara para
cambiar el contexto de
la base de datos y cul
comando utilizara para
crear una tabla? -1.4
CA
; Listo para la
certicacin
USE
CREATE
AM
RI
16
La sentencia CREATE le permite crear una variedad de objetos de base de datos, incluyendo
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 tambin
utiliza CREATE para crear una nueva tabla.
www.pdftron.com
Por ejemplo, para crear la tabla Planets, utilizara lo siguiente:
USE [AdventureWorks]
IBE
RO
GO
) ON [PRIMARY]
ETC
GO
17
ALTER
AM
RI
CA
www.pdftron.com
UPDATE Shirt SET Price = 12.00 WHERE ProductID = 4;
IBE
RO
GO
-- Redefnir la vista
ALTER VIEW Size AS
-- ProductID
ProductName
-- -----------------
Price
---------------
Red
13.50
-- 2
Blue
13.50
-- 3
Orange
-- 4
Black
ETC
-- 1
10.00
12.00
--------------
Leccin 1
DROP
CA
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
siguiente ejemplo le muestra cmo 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.
Tambin intentaremos suprimir la tabla Person.Contact, pero se dar cuenta, que esta
operacin 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
DELETE, el cual elimina datos dentro de una tabla.
AM
RI
18
-- -------------
ProductName
--------------
Price
--------
www.pdftron.com
-- (0 row(s) affected)
IBE
RO
ETC
TRUNCATE y DELETE
Podra leer acerca de distintas maneras de eliminar datos de una tabla y preguntase cul
de las dos sentencias DDL, TRUNCATE o DELETE, sera ms aplicable a sus necesidades.
La sentencia DELETE es utilizada para eliminar las de una tabla, pero no libera el espacio
que contiene la tabla. El comando SQL TRUNCATE es utilizado para eliminar todas las
las de una tabla y libera el espacio que contiene la tabla.
Para eliminar todas las las de la tabla user, utilizara el siguiente comando:
Si est eliminando
datos de tablas y
si es una base de
datos grande, utilice
truncate, es ms
eciente. Utilice delete
para bases de datos
ms pequeas.
CA
Tome Nota
19
Para eliminar a un empleado con la id 200 de la tabla User, utilizara el siguiente comando:
AM
RI
Cuando desea consultar las vistas del sistema para vericar si los objetos que desea eliminar
estn en las tablas de la base de datos, necesitara saber que tablas son las ms tiles. Las
vistas del sistema pertenecen al esquema sys. Algunas de estas tablas del sistema incluyen:
sys.Tables
sys.Columns
sys.Databases
sys.Constraints
sys.Views
sys.Procedures
www.pdftron.com
sys.Indexes
sys.Triggers
IBE
RO
sys.Objects
Todos estos nombres de vistas son autoexplicativos. Por ejemplo, la vista sys.Objects
contiene una la para cada objeto en la base de datos con los nombres de las columnas
ETC
Leccin 1
CA
Resumen de Habilidades
Una base de datos (bd) es una coleccin organizada de datos, tpicamente
almacenada en un formato electrnico. Le permite introducir datos, organizar los
datos y recuperar los datos rpidamente.
Microsoft SQL server utiliza tres tipos de archivos para almacenar la base de datos.
Archivos de datos principales, con una extensin .mdf, son los primeros archivos
creados en una base de datos y pueden contener objetos denidos por el usuario,
tales como tablas y vistas, as como tambin 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 extensin .ndf, en discos
duros fsicos separados para darle ms 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 extensin .ldf y no contiene objetos como tablas o
vistas.
Para recuperar datos dentro de una base de datos, usted ejecutara una consulta
de base de datos, lo cual es una investigacin en la base de datos con el n de
obtener informacin de regreso de la base de datos. En otras palabras, una consulta
es utilizada para pedir informacin de la base de datos y los datos son regresados.
Un ndice de base de datos es una estructura de datos que mejora la velocidad de las
operaciones de recuperacin de datos en una tabla de base de datos.
La mayora 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)
para acceder a la base de datos indirectamente.
Una base de datos plana es muy simple en diseo. Son ms comnmente utilizadas
en formatos de texto plano, como su propsito es mantener un registro por lnea,
haciendo el desempeo de acceso y consultas muy rpido.
Tablas, utilizadas para almacenar datos, son objetos de dos dimensiones consistentes
de las y columnas.
Un diseo de base de datos jerrquica es similar a la estructura de un rbol (tal
como un rbol familiar). Cada padre puede tener mltiples hijos, pero cada hijo
slo puede tener un padre.
Una base de datos relacional es similar a una base de datos jerrquica en la que
los datos son almacenados en tablas y cualquier informacin nueva es aadida
automticamente en la tabla sin la necesidad de reorganizar la propia tabla. A
diferencia de la base de datos jerrquica, una tabla en una base de datos relacional
puede tener mltiples padres.
Las bases de datos a menudo son encontradas en servidores de bases de datos de
forma que pueden ser accedidas por mltiples usuarios y para proporcionar un alto
nivel de desempeo. Un servidor de bases de datos popular ejecuta Microsoft SQL
Server.
Las restricciones son limitaciones o reglas ubicadas en un campo o columna para
garantizar que los datos que son considerados invlidos no sean introducidos.
El SQL Server Management Studio (SSMS), es la herramienta principal para
administrar el servidor y sus bases de datos utilizando una interfaz grca.
El lenguaje de Manipulacin de Datos o (DML), es un elemento de lenguaje el cual
le permite utilizar las sentencias: INSERT, UPDATE, DELETE, y MERGE para
manipular datos en cualquier tabla de SQL Server.
AM
RI
20
ETC
IBE
RO
www.pdftron.com
21
Evaluacin de Conocimientos
AM
RI
CA
www.pdftron.com
5. DDL manipula ____________, mientras que ____________ manipula la
informacin almacenada en tablas.
IBE
RO
ETC
CREATE
MERGE
ALTER
DROP
DEFAULT
CHECK
RANGE
UNIQUE
Leccin 1
a.
b.
c.
d.
CLAVE PRINCIPAL
ndice UNICO
ndice CLUSTERED
Todos los de arriba
CA
3. Cul de las siguientes puede ser utilizada para mejorar el desempeo de la consulta?
REMOVE
INSERT
DELETE
TRUNCATE
AM
RI
22
a. Los ndices deberan solo ser creados en columnas que son buscadas
frecuentemente.
b. Una auto-referencia es cuando una restriccin de clave externa hace referencia a
una columna en la misma tabla.
c. Una sola sentencia INSERT puede ser utilizada para agregar las a mltiples
tablas.
d. Mltiples CLAVES PRINCIPALES pueden ser agregadas a una tabla.
6. Cul de las siguientes no es soportado por ALTER?
www.pdftron.com
Agregar una columna nueva a una tabla.
Eliminar mltiples columnas de una tabla existente.
Modicar el tipo de dato de una columna existente.
Cambiar la restriccin de IDENTIDAD de una columna existente.
IBE
RO
a.
b.
c.
d.
NULL
UNIQUE
CHECK
PRIMARY
8. Qu signica SQL?
9. Cul sentencia SQL es utilizada para extraer datos de una base de datos?
SELECT
OPEN
EXTRACT
GET
ETC
a.
b.
c.
d.
10. Cul sentencia SQL es utilizada para actualizar datos en una base de datos?
a.
b.
c.
d.
SAVE
MODIFY
SAVE AS
UPDATE
23
Evaluacin de Competencias
CA
AM
RI
Recin ha sido contratado como DBA (Administrador de base de datos) para una compaa
internacional que es una sociedad nanciera para muchas otras compaas. Su primera
tarea es disear 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.
Ejercicio 1-2: Diseando una Base de Datos Relacional
Se le ha dado una tarea de disear una base de datos relacional para soportar un negocio de
venta de autos. Necesita almacenar informacin 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 comisin. Qu tablas y columnas creara y como enlazara las tablas?
Evaluacin de Competencias
www.pdftron.com
IBE
RO
Recin 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 gustara
visualizar la ayuda en la sentencia CREATE de forma que pueda crear una tabla. Por lo
tanto, Cules son los pasos que utilizara para encontrar esa informacin?
Ejercicio 1-4: Creando bases de datos utilizando la Interfaz Grca de
SSMS
ETC
Leccin 1
CA
1. Abra el SQL Server Management Studio. Para hacer eso, haga clic en Inicio seleccione
Todos los Programas despus Microsoft SQL Server 2008 y nalmente SQL Server
Management Studio.
2. Asegrese que el Motor de Base de Datos esta seleccionado y haga clic en el botn
Conectar.
3. Expanda las bases de datos haciendo clic en el smbolo de suma (+) al lado de las
bases de datos.
AM
RI
24
4. Haga clic derecho en las bases de datos y seleccione Nueva Base de Datos.
ETC
IBE
RO
www.pdftron.com
Leccin 2
CA
AM
RI
Habilidades/Conceptos
Creacin de vistas
Creacin de procedimientos almacenados
2.3
2.4
www.pdftron.com
Trminos Clave
Inyeccin SQL
Tablas
IBE
RO
Tipos de datos
Procedimientos almacenados
Vistas
ETC
26
Leccin 2
CA
EN RESUMEN
AM
RI
En esta seccin, aprender lo que son los tipos de datos, el por qu son importantes y cmo estos afectan los
requerimientos de almacenamiento. Cuando vea los tipos de datos, necesitar entender cmo es el diseo de cada tipo
para cada tabla y comprender cmo cada uno de esos tipos funciona de la mejor manera para cada columna, variable
local, expresin o parmetro. 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 ms ecientes. Uno de los roles del administrador de una base de datos es asegurarse de
contener los datos dentro de cada base de datos sean uniformes entre s al decidir la mejor manera para que se acoplen
a la aplicacin con la cual interacten.
Un tipo de datos es un atributo que especica el tipo de datos que un objeto puede
albergar y tambin especica cuantos bytes tiene asignados. Por ejemplo, varios tipos
de datos denen slo nmeros enteros, los cuales son recomendables para conteos o para
propsitos de identicacin. Otros tipos de datos permiten nmeros decimales que
resultan prcticos cuando se almacenan valores relacionados con dinero. Otros tipos de
datos estn diseados para almacenar cadenas o caracteres mltiples para permitirle denir
etiquetas, descripciones y comentarios. Por ltimo, hay otros tipos de datos que pueden
almacenar fechas, horas y nmeros binarios que consisten en ceros y unos o que se pueden
usar para almacenar imgenes. Como regla general, si tiene dos tipos de datos que son
similares y slo dieren en la cantidad de bytes que cada uno utiliza, se tiene un rango
mayor de valores y/o se incrementa la precisin.
www.pdftron.com
IBE
RO
SQL Server tiene una amplia variedad de tipos de datos predenidos. La mayora de las bases de datos que elabore o
utilice slo necesitan utilizar estos tipos de datos.
Los tipos de datos predenidos de SQL Server 2008 estn organizados en las siguientes
categoras generales:
Numricos exactos
Numricos aproximados
Fecha y hora
Cadenas de caracteres
Cadenas de caracteres Unicode
Cadenas binarias
Otros tipos de datos
Tipos de datos CLR
Tipos de datos espaciales
ETC
; Listo para la
certicacin
Tipo de dato
Money
(Numrico)
Explicacin
Este tipo de datos numrico se utiliza en lugares donde quiera
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 otante oat. La diferencia
entre un tipo de datos numrico y uno oat reside en si
decide utilizar un nmero aproximado o uno de precisin ja.
En el caso de money o un tipo de datos numrico, este cae
dentro del tipo de datos de precisin ja puesto que debe ser
representado con precisin y escala.
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 precisin
de 3.33 milisegundos, utilice el tipo de datos datetime. Si busca
almacenar valores entre Enero 1, 1900 y Junio 6, 2079 con una
precisin de 1 minuto, entonces debera utilizar el tipo de datos
datetime2. La segunda diferencia importante entre los dos tipos
de datos es que datetime utiliza 8 bytes de almacenamiento y
datetime2 slo utiliza 4 bytes.
El tipo de datos numrico int se utiliza para almacenar
cmputos matemticos y se usa cuando no se requiere de un
punto decimal. Un ejemplo de un integer sera: 2 o -2.
Este tipo de datos de cadena de caracteres se utiliza
generalmente en bases de datos en la cual tenga atributos en
Ingls, 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 conversin de
caracteres.
Conocido tambin 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 almacenarn como 1 byte y si hay de 9 a 16
bits, las columnas se almacenarn como 2 bytes, y as
sucesivamente. El tipo de datos Boolean convierte valores de
cadena verdaderos y falsos a valores de bit con el Verdadero
convertido a 1 y el Falso a 0.
Este tipo de datos numrico se utiliza generalmente en la
comunidad cientca y se considera un tipo de datos de
nmeros aproximados. Esto signica que no todos los valores
dentro del rango de datos se representarn con exactitud.
Cuando utilice este tipo de datos, los rangos de tipos de datos
otantes son diferentes. Para el almacenamiento de 4 bytes,
utilizara el rango de 1-24, por ejemplo: oat (24) y para 8
bytes, utilizara el rango 25-53, por ejemplo: oat (53).
CA
AM
RI
Tabla 2-1
27
Datetime
www.pdftron.com
Integer
IBE
RO
Varchar
Boolean
ETC
Float
28
Leccin 2
Tabla 2-2
Tipo de datos
Numricos exactos:
Bit
Uso / Descripcin
Almacenamiento
1 byte
CA
Tipos de datos
AM
RI
1 byte
2 bytes
4 bytes
8 bytes
Vara
Vara
4 bytes
8 bytes
8 bytes
ETC
IBE
RO
www.pdftron.com
4 bytes
3 bytes
5 bytes
10 bytes
Vara
Vara
Vara
Vara
Vara
Vara
Vara
AM
RI
CA
Text
29
Vara
Vara
Vara
Vara
16 bytes
Recuerde que en SQL Server, cada columna, variable local, expresin y parmetro siempre
tienen un tipo de datos relacionado que dene las caractersticas de almacenamiento de los
datos como se puede ver en la Tabla 2-1.
www.pdftron.com
Tome Nota
Ahora que ha comprendido la mayora de los tipos de dato disponibles, recuerde que cuando
dos expresiones tienen diferentes tipos de datos, collation (intercalacin), precisin, escala
o longitud, las caractersticas de los resultados quedarn determinadas por cualquiera de
los siguientes puntos:
IBE
RO
ETC
Veamos algunas de las descripciones de los tipos de datos para que se familiarice con ellos:
Los tipos de datos numricos exactos son los tipos de SQL Server ms utilizados para almacenar informacin
numrica. Dependiendo del tipo de datos seleccionado, algunos tipos permiten slo nmeros enteros, mientras que
otros permiten nmeros decimales.
Los tipos de datos numricos exactos incuyen: bigint, bit, decimal, int,
money, numeric, smallint, smallmoney y tinyint.
30
Leccin 2
AM
RI
CA
IBE
RO
www.pdftron.com
f Uso de tipos de datos numricos aproximados
Los tipos de datos numricos aproximados no son tan utilizados como otros tipos de datos de SQL Server. Si necesita
de mayor precisin (ms lugares decimales) que los disponibles en el tipo de dato numrico exacto, necesitar utilizar
un foat o real. Estos tipos de datos generalmente utilizan un almacenamiento mayor en bytes.
Float y real se utilizan en conjunto con datos numricos de punto otante. Esto
signica que todos los datos otantes 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.
ETC
datetime2,
datetime,
Date se utiliza para denir 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
31
Tabla 2-3
Descripciones de date
Valor
Date
DECLARE @MyDate date
CREATE TABLE Table1 ( Column1 date )
YYYY-MM-DD
AM
RI
CA
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 da en particular
est en horario de verano o no.
www.pdftron.com
IBE
RO
Longitud de carcter
Precisin, escala
Tamao de almacenamiento
Precisin
Valor predeterminado
Calendario
Precisin fraccional de segundos
denida por el usuario
Conservacin y activacin de
compensacin de zona horaria
Activacin de horario de verano
Tome Nota
No
No
Datetime dene una fecha que se combina con una hora del da expresada con segundos
fraccionales basada en un reloj de 24 horas. Su exactitud es hasta de 0.00333 segundos.
Si necesita de mayor precisin, deber utilizar el tipo de datos datetime2 que tiene una
exactitud de hasta 100 nanosegundos. Si no necesita llevar registro de los segundos (lo
cual resulta menos preciso), puede ahorrarse algo de espacio de almacenamiento utilizando
el tipo de datos smalldatetime. El tipo de datos DateTimeOffset es similar a
DateTime pero mantiene registro de las zonas horarias. Por ejemplo, si utiliza dos valores
DateTimeOffset con la misma hora UTC en diferentes zonas horarias, los dos valores
sern iguales.
ETC
32
Leccin 2
Ilustracin de tipos de
conversiones implcitos y
explcitos
SQL Server soporta conversiones implcitas, que se pueden llevar a cabo sin especicar la
funcin invocada (cast o convert). Las conversiones explcitas de hecho requieren que
utilice especcamente las funciones cast o convert. Tanto las conversiones explcitas
como implcitas para tipos de datos de SQL Server se muestran en la Figura 2-1.
AM
RI
Figura 1-2
CA
Cast y Convert tambin juegan un papel importante con cualquier funcin de tipos
de datos ya que la convierte una expresin en de un tipo de datos a otro. Convert era
la antigua manera de convertir con cast utilizndolo de la misma manera. La siguiente
gura, cortesa de Microsoft, contiene un anlisis a mayor detalle de la conversin implcita
entre tipos de datos.
ETC
IBE
RO
www.pdftron.com
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 da, con la hora basada en un da de
24 horas, con los segundos siempre en cero (:00) y sin segundos fraccionales.
Time dene la hora del da basada en un reloj de 24 horas y sin considerar la zona horaria.
33
CA
Un carcter regular utiliza un byte de almacenamiento para cada uno, lo cual le permite
denir uno de 256 (hay 8 bits en un byte y 2^8=256) caracteres posibles compatibles
con el idioma Ingls y algunos europeos. Un carcter Unicode utiliza dos bytes de
almacenamiento por carcter, por lo que puede representar uno de 65,536 (hay 16 bits en
2 bytes y 2^16=65,536 caracteres). El carcter adicional permite almacenar caracteres de
casi cualquier idioma, incluyendo el chino, japons, rabe, etc.
Tome Nota
Cualquier tipo de datos
sin el elemento VAR
(char, nchar) dentro
de su nombre es de
longitud ja.
AM
RI
A medida que escriba la sintaxis para los diferentes tipos de datos, recuerde que tambin
dieren en la forma en la cual se expresan las literales. Una literal de carcter regular
siempre se expresa con comillas sencillas. Por ejemplo:
As se ve una cadena literal de caracteres regulares
Cuando exprese una literal de carcter Unicode, esta debe tener la letra N (de Nacional)
como prejo para las comillas sencillas. Por ejemplo:
NAs se ve una cadena literal de caracteres Unicode
Cuando utilice un elemento VAR, SQL Server conservar espacio en la la en la cual reside
con base en el tamao de la columna y no en el nmero de caracteres que se encuentra en
la cadena en s, adems se proporcionan 2 bytes extra para los datos offset. Por ejemplo, si
quiere especicar que una cadena slo soporta un mximo de 25 caracteres, deber utilizar
www.pdftron.com
Tome Nota
VARCHAR(25).
Tome Nota
Estos son los tipos e datos de carcter ms utilizados y son ya sea de longitud ja o variable.
Cada uno tiene sus propias caractersticas individuales que necesitar considerar cuando
decida cual tendr un efecto positivo en los requerimientos de almacenamiento. Tanto
los conjuntos de datos char y varchar necesitan estar denidos o asignados dentro de la
denicin de los datos y pueden resultar afectados por los lmites de almacenamiento
mximo.
IBE
RO
Cuando no se
especica n en
la denicin de
datos o sentencia
de declaracin de
variables, la longitud
predeterminada
es 1. Cuando no
se especica n
con la funcin
CAST, la longitud
predeterminada es 30.
ETC
Para el conjunto de datos char, este se identica como char [(n)] y es de longitud ja,
carcter no-Unicode (es decir, carcter regular) y tiene una longitud de n bytes. El valor de
n debe ser entre 1 y 8,000, lo que hace que el tamao de almacenamiento de n bytes. El
otro tipo de datos no-Unicode varchar[(n|max)], es un conjunto de datos de longitud
variable que puede consistir de 8,000 caracteres.
Ahora veremos el otro lado de las cadenas de caracteres: cadenas de caracteres Unicode.
34
Leccin 2
CA
Hay solamente dos tipos de cadenas soportados por SQL Server: regular y Unicode.
Los tipos de datos regulares incluyen a los que se identican con CHAR and VARCHAR.
Los tipos de datos Unicode se identican con NCHAR and NVARCHAR. Suena simple?
Lo es, en lo que se reere a que las diferencias entre regular y Unicode son los bytes de
almacenamiento que utiliza cada uno.
AM
RI
Las cadenas de caracteres Unicode nchar yand nvarchar pueden ser jas o variables
como sus cadenas de caracteres regulares; estas utilizan el conjunto de caracteres
UNICODE UCS-2.
El objetivo es desarrollar y comprender el propsito de las tablas y la creacin de las mismas en una base de datos al
utilizar la sintaxis ANSI SQL apropiada.
El propsito 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.
En el Captulo 1 se coment sobre la comprensin del propsito de las tablas y cmo
crearlas. Revisemos rpidamente algunos de los puntos importantes que se deben recordar
cuando prosigamos a aprender a cmo crear una tabla en una interfaz de usuario no-grca.
Es importante asegurarse de tomar en cuenta cual es el propsito de una base de datos
relacional en la jerarqua de la administracin de bases de datos.
IBE
RO
www.pdftron.com
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 travs 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 clculo es que una base de datos puede analizar el almacenamiento redundante e
informacin obtenida de varias hojas de clculo relacionales.
Similar a la programacin, cuando se disea y crea utilizando bases de datos, puede
utilizar fcilmente cientos de objetos que incluyen bases de datos, tablas, columnas, vistas
y procedimientos almacenados. Por lo tanto, para facilitar el manejo, su organizacin debe
establecer y utilizar un solo estndar consistente. Por supuesto, esto tambin signicara
que tienen estos estndares documentados y que los han distribuido entre las personas que
trabajan con las bases de datos.
ETC
CA
; Listo para la
certicacin
35
1. Haga clic en la carpeta tablas y seleccione Nueva Tabla, como se muestra a continuacin:
Figura 2-2
AM
RI
www.pdftron.com
IBE
RO
Figura 2-3
2. Utilice la informacin de la Figura 2-3 para completar los detalles en Nombre de Columna,
Tipo de Datos y su longitud como se especica en los parntesis y en las columnas
Permitir Valores Nulls.
ETC
Nombres de Columna e
identicando informacin
36
Leccin 2
Figura 2-4
AM
RI
CA
Estableciendo las
propiedades del
Diseador de Tabla
www.pdftron.com
4. Guarde su nueva tabla seleccionado Archivo y despus Guardar Tabla_1, como se
muestra en la Figura 2-5.
Figura 2-5
ETC
IBE
RO
37
Figura 2-6
AM
RI
CA
Nombrando la tabla
www.pdftron.com
Su nueva tabla ahora aparece en la seccin Tablas (vea la Figura 2-7).
Figura 2-7
ETC
IBE
RO
PAUSA. Deje la interfaz de SQL Server Management Studio interface abierta para el
siguiente ejercicio.
38
Leccin 2
CA
La creacin de tablas con SQL Server Management Studio es fcil puesto que es una interfaz
grca fcil de utilizar. Pero qu pasara si necesita crear sus tablas y no est seguro de
cmo 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:
AM
RI
Creacin de vistas
www.pdftron.com
IBE
RO
EN RESUMEN
Es importante comprender cuando utilizar vistas y cmo crear una vista utilizando ya sea una sentencia TransactSQL o con un diseador grco.
Una vista no es ms que una tabla virtual que consiste de diferentes columnas de una o
ms 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 ms tablas. Las vistas que se encuentran basadas en esta denicin son conocidas como
tablas subyacentes. Una vez que haya denido su vista, podr hacer referencia a esta como
a cualquier otra tabla en su base de datos.
ETC
Una vista se utiliza para servir al propsito de ser un mecanismo de seguridad. Esto
signica que una vista asegura que los usuarios puedan recuperar y modicar slo 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
tambin sirve como mecanismo para simplicar la ejecucin de consultas. Las consultas
complejas se pueden almacenar en el formulario como una vista y los datos de la vista se
pueden extraer a travs de sentencias de consulta sencillas.
Las vistas aseguran la seguridad de los datos al restringir el acceso a los siguientes datos:
39
CA
AM
RI
Las vistas de las bases de datos estn diseadas para crear una tabla virtual que es
representativa de una o varias tablas de una forma alternativa y se encuentran relacionadas
con consultas en ejecucin. Hay dos razones principales por las cuales se debe utilizar una
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 visualizacin de las tablas designadas y tambin puede
negar el permiso de acceso.
Las vistas disminuyen la complejidad para los usuarios nales 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.
Cuando cree una vista, asegrese de considerar el desempeo de la base de datos en su
diseo. Como ya se coment en la Leccin 1, la indexacin juega un rol en el tiempo de
respuesta de las consultas y uno ms importante en las mejoras en el desempeo de la base
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.
www.pdftron.com
IBE
RO
ETC
Cubriremos los dos procedimientos en esta seccin. Para crear una vista utilizando
Management Studio, asegrese que la base de datos a la cual le quiera agregar una vista
se encuentre resaltada. Una vez que se encuentre con la base de datos con la cual quiera
trabajar, siga estos pasos para crear su vista:
40
Leccin 2
CA
PREPRESE. Antes de llevar a cabo estos pasos, asegrese de que Management Studio se
encuentre abierto.
1. Expanda la seccin 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
AM
RI
Figura 2-9
IBE
RO
www.pdftron.com
Se abre el cuadro de dilogo Agregar Tabla (vea la Figura 2-9).
ETC
41
Figura 2-10
AM
RI
CA
Para especicar la tabla que ser utilizada como la fuente primaria, puede hacer clic
en la cha Tablas del cuadro de dilogo.
Para utilizar otra vista existente, haga clic en la cha Vistas del cuadro de dilogo
para utilizar la vista deseada.
Si quiere generar registros de una funcin, podr realizarlo en la cha Funciones.
Si quiere utilizar ms de una fuente, puede hacer clic en las chas para buscar la
tabla, vista o funcin que quiera agregar a su consulta.
Una vez que haya seleccionado la fuente deseada, slo haga clic en el botn Agregar
para cada una de ellas.
Una vez que haya seleccionado y agregado todas las fuentes que desee, haga clic en
el botn Cerrar para cerrar el cuadro de dilogo.
2. Cuando haga clic en Agregar para agregar cada fuente, ver la informacin que aparece
en la Figura 2-10.
IBE
RO
www.pdftron.com
; Listo para la
certicacin
Despus de seleccionar los objetos que desee utilizar, la barra de herramientas Diseador de
Vistas se agregar, en la cual podr planear las vistas que desee incorporar en su consulta.
ETC
Cmo se crea
una vista utilizando
SSMS?2.3
Tambin 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
Leccin 2
CA
PREPRESE. Para crear una vista con sintaxis de Transact-SQL, se podra realizar de la
siguiente manera:
CREATE VIEW vwCustomer
AS
SELECT CustomerId, Company Name, Phone
AM
RI
FROM Customers
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.
La razn 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
IBE
RO
Hasta ahora, hemos aprendido a utilizar diferentes tipos de datos para crear tablas y vistas
con un diseador grco y con sentencias de sintaxis Transact-SQL. Ahora toca aprender a
almacenar sentencias de procedimientos almacenados utilizando la misma interfaz grca.
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 ayudarn a ahorrar tiempo cuando
ejecute la misma consulta de forma repetida es la creacin de un procedimiento almacenado,
que se puede ejecutar en el ambiente de comandos de la base de datos. Un ejemplo de la
ejecucin de un procedimiento almacenado sera como el que se muestra a continuacin:
exec usp_displayallusers
ETC
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 slo
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 signica que no est deniendo criterios que le gustara que coincidieran con el
resultado. Es decir, est regresando todos los registros de la tabla userlist.
43
CA
Con base en la sentencia de consulta anterior, podra validar esa pregunta con un si,
pero hay ocasiones donde una consulta puede ir ms all de una simple sentencia select *
from. Tal vez se encuentre trabajando en la construccin de un sitio web con pginas
ASP y necesitar llamar un procedimiento almacenado desde esa u otra aplicacin como
Visual Basic. La utilizacin de un procedimiento almacenado le permite almacenar toda
la lgica dentro de la base de datos para que con un comando sencillo pueda consultar
y recuperar toda la informacin de todas las fuentes. Ahora, veamos cmo crear un
procedimiento almacenado.
AM
RI
www.pdftron.com
Figura 2-11
2. Haga clic derecho y seleccione Nuevo Procedimiento Almacenado (vea la Figura 2-11).
ETC
IBE
RO
Men de seleccin de
Nuevo Procedimiento
Almacenado
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
parmetros.
44
Leccin 2
Figura 2-12
AM
RI
CA
Ejemplo de la ventana
Text Editor
; Listo para la
certicacin
Cmo se crea
un procedimiento
almacenado con
SSMS?2.4
www.pdftron.com
f Comprender las inyecciones SQL
IBE
RO
Antes de aprender la sintaxis para seleccionar, insertar, actualizar y eliminar datos, necesita comprender lo que es una
inyeccin SQL. Una inyeccin SQL es un ataque en el cual se coloca cdigo malicioso en cadenas que luego pasan a
instancias de SQL Server en espera para su ejecucin. Cualquier procedimiento que construya sentencias SQL debera
revisarse de forma constante para ver que no contenga vulnerabilidades ya que SQL Server ejecuta todas las consultas
sintcticamente validas de cualquier fuente.
Tome Nota
La forma primaria de una inyeccin SQL es como una insercin directa de cdigo en las
variables que ingresa el usuario que estn concatenadas con comandos SQL y luego se
ejecutan. Un mtodo menos directo de ataque inyecta cdigo malicioso en cadenas que
se destinan para el almacenamiento en una tabla o se consideran metadatos. Cuando estas
cadenas almacenadas se concatenan subsecuentemente en el comando dinmico de SQL, el
cdigo malicioso se ejecuta.
La funcin del proceso de inyeccin 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 ejecucin.
ETC
El procedimiento almacenado select recupera las de una base de datos y habilita la seleccin de una o varias las de
una o varias tablas.
Tal vez quiera ver las columnas id y nombre de una tabla donde el tipo de la columna
tiene un valor especco. Podra entonces escribir la sentencia select como se indica a
continuacin:
45
CA
AM
RI
El procedimiento almacenado insert agrega una o ms las nuevas en una tabla o vista.
www.pdftron.com
f Usar el procedimiento almacenado Update
IBE
RO
El procedimiento almacenado update cambia los datos existentes en una tabla o vista.
ETC
WHERE EmployeeID = 8
//este es el nmero de la persona que
quiere eliminar de la tabla Empleados
46
Leccin 2
f Prcticas recomendadas
CA
Veamos ms informacin algunas de las prcticas recomendadas que reuni Microsoft para la utilizacin de un
procedimiento almacenado o funcin. Es importante tener este tipo de conocimientos sobre prcticas recomendadas
que los administradores de bases de datos o desarrolladores deben seguir en el diseo de las bases de datos.
Las siguientes recomendaciones aseguran la calidad en desempeo y mantenimiento:
AM
RI
Cuando se disea una base de datos, tenga el desempeo en mente (algo que
hemos mencionado a lo largo de este captulo). Necesita empezar primero con el
desempeo ya que es casi imposible anar este detalle despus de realizar la base
de datos.
Asigne un prejo a los nombres de las tablas con el nombre del propietario, esto no
solo mejora la legibilidad, sino que evita cualquier confusin innecesaria y ayuda
tanto en el plan de reutilizacin y mejora los resultados en desempeo.
Utilice SET NOCOUNT ON al principio de sus lotes de SQL, procedimientos
almacenados y triggers en ambientes de produccin ya que esto eliminar mensajes
como (1 las afectadas) al ejecutar sentencias INSERT, UPDATE, DELETE y
SELECT. Al hacer esto se mejora el desempeo de los procedimientos almacenados
al reducir el trco en la red.
Utilice clusulas de ANSI-Standard Join ms legibles en lugar de las joins antiguos.
Las clusulas de combinacin ANSI como WHERE, se utilizan para ltrar datos,
mientras que las anteriores manejan tanto la condicin de combinacin como el
ltrado de datos.
IBE
RO
www.pdftron.com
ETC
47
CA
Resumen de Habilidades
AM
RI
Un tipo de datos es un atributo que especica el tipo de datos que puede tener un
objeto y tambin especica 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 precisin.
SQL Server tiene un amplio rango de datos predenidos conocidos como tipos de
datos integrados. La mayora de las bases de datos que se pueden crear o utilizar
necesitan utilizar estos tipos de datos.
Los tipos de datos numricos exactos son los tipos de datos ms comunes utilizados
en SQL Server para almacenar informacin numrica.
Int es el tipo de datos numrico principal (nmero entero).
La precisin (p) es la cantidad total mxima de dgitos decimales que se pueden
almacenar, tanto a la izquierda como a la derecha del punto decimal; este valor
debe ser mnimo de 1 y mximo de 38. El nmero predeterminado de precisin
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.
Los tipos de datos numricos aproximados no son tan utilizados como otros tipos
de datos de SQL. Si necesita de mayor precisin (ms posiciones decimales) de
los que estn disponibles en los tipos de datos numricos exactos, deber utilizar
un tipo otante o real. Estos tipos de datos tienen generalmente ms bytes de
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 implcitas, que pueden ocurrir sin especicar la
llamada de alguna funcin (cast o convert). Las conversiones explicitas de hecho
requieren que utilice las funciones cast o convert.
Un carcter regular utiliza un byte de almacenamiento para cada carcter, lo
cual le permite denir uno de 256 (hay 8 bits en un byte y 2^8=256) caracteres
disponibles que son compatibles con el idioma ingls y otras lenguas europeas.
Un carcter Unicode utiliza dos bytes de almacenamiento por carcter para que
pueda representar uno de 5,536 (hay 16 bits en 2 bytes y 2^16=65,536 caracteres).
El carcter adicional permite almacenar caracteres de casi cualquier idioma.
Cuando utiliza un elemento VAR, SQL Server conservar espacio en la la en la
cual reside con base en el tamao denido de la columna y no en el nmero de
caracteres que haya en la cadena.
Las cadenas de caracteres Unicode nchar y nvarchar pueden ser ya sea jas o
variables as como sus cadenas de caracteres regulares; estas utilizan el conjunto de
caracteres UNICODE UCS-2.
El propsito 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 ms 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 ms tablas.
ETC
IBE
RO
www.pdftron.com
48
Leccin 2
Evaluacin de Conocimientos
AM
RI
Complete la frase
CA
www.pdftron.com
5. SQL Server soporta conversiones ____________ sin utilizar el llamado de las
funciones cast o convert.
IBE
RO
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, asegrese de considerar el ______ en su diseo.
10. Cuando se realiza una consulta en una base de datos, se pueden obtener resultados
ms rpidos al ______ apropiadamente las tablas y vistas.
Opcin mltiple
ETC
a.
b.
c.
d.
49
a.
b.
c.
d.
e.
char
text
vchar
null
CA
integer
bigint se utiliza cuando el valor exceder el rango del tipo de datos Int
SQL server no convierte otros tipos de datos int a bigint
las funciones solo regresarn bigint si la expresin original es del mismo tipo de
datos
AM
RI
a.
b.
c.
d.
a. Los ndices deberan solo ser creados en columnas que son buscadas
frecuentemente.
b. Una auto-referencia es cuando una restriccin de clave externa hace referencia a
una columna en la misma tabla.
c. Una sola sentencia INSERT puede ser utilizada para agregar las a mltiples
tablas.
d. Mltiples CLAVES PRINCIPALES pueden ser agregadas a una tabla.
IBE
RO
www.pdftron.com
6. Cul de las siguientes no es soportado por ALTER?
a.
b.
c.
d.
NULL
UNIQUE
CHECK
PRIMARY
ETC
8. Qu signica SQL?
9. Cul sentencia SQL es utilizada para extraer datos de una base de datos?
Leccin 1
a.
b.
c.
d.
SELECT
OPEN
EXTRACT
GET
CA
50
a.
b.
c.
d.
SAVE
MODIFY
SAVE AS
UPDATE
Evaluacin de aptitud
AM
RI
10. Cul sentencia SQL es utilizada para actualizar datos en una base de datos?
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 informacin de 10,000 empleados.
Digamos que tiene las siguientes columnas denidas en la tabla:
Nombre
varchar(50)
www.pdftron.com
Apellido
varchar(75)
IBE
RO
Direccin
varchar(50)
Estado
varchar(2)
CP
varchar(9)
Edad
int
Fechanacimiento
date
ETC
Se encuentra diseando varias bases de datos para un cliente. Mientras disea las bases
de datos, encuentra los elementos de datos enlistados. Cul tipo de datos utilizara para
almacenar la siguiente informacin y por qu lo usara?
Radio de un planeta
El valor de pi ()
Salario
51
La longitud de un tabln
CA
Evaluacin de destreza
AM
RI
www.pdftron.com
FirstName Hasta 50 caracteres
Hasta 50 caracteres
IBE
RO
LastName
ModifedDate
ETC
3. Cules comandos escribira y ejecutara para regresar las las en donde se encontrara
la palabra bike en la columna Name?
4. En la ventana de consulta existente,
Cules comandos utilizara para agregar un alias de columna a la columna Name
para desplegarla como el nombre de la subcategora?
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
Leccin 3
CA
Manipulacin de datos
Matriz de Dominio de objetivos
Trminos Clave
AM
RI
Habilidades/Conceptos
3.1
3.2
3.3
3.4
www.pdftron.com
Join
Integridad referencial
Select
IBE
RO
Transaccin
Union
Update
ETC
Recin lo ha contratado una empresa mediana con pocos empleados y necesita proporcionar listas
de registros de los mismos para el recin 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.
54
Leccin 3
CA
Aun cuando el ttulo de este captulo describa la manipulacin de datos con el propsito de
realizar consultas, tambin se considera la modicacin de datos a medida que modique
las sentencias de consulta para obtener los resultados deseados. No importando el nombre
o descriptor, el propsito de cualquier base de datos es ofrecer al usuario la capacidad de
extraer datos de la misma. La amplia mayora de las sentencias de SQL se disearon para
recuperar informacin solicitada por el usuario a travs de diversas sentencias de consultas.
Veamos las sentencias SQL ms importantes que necesitar para entender de mejor manera
Transact SQL.
AM
RI
En esta seccin, 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
certicacin
Cul comando se
utiliza para mostrar
registros de una
tabla?3.1
El comando SQL para recuperar datos de una base de datos es SELECT. De manera similar
a otros comandos de SQL, la redaccin es similar a la de enunciados en el idioma ingls. La
redaccin de una sentencia SELECT es como si se completaran espacios en blanco, como
se indica a continuacin:
www.pdftron.com
IBE
RO
Resulta ser una sentencia sencilla, pero proporciona una explicacin bsica de lo que hace
la sentencia SELECT y siempre seguir el mismo patrn cada vez que utilice una sentencia
SELECT para una base de datos.
Hay nicamente tres cosas que debe asegurarse de identicar en su sentencia para elaborar
una sentencia de consulta SELECT correcta:
Columnas a recuperar
Tablas de las cuales recuperar dichas columnas
Condiciones que deben cumplir los datos
ETC
Manipulacin de datos
nombre
-----------------
apellido
-------------------
salario
-------------
John
Sylvia
Julia
David
Allan
Goddard
Smith
Thompson
52,000
51,200
55,000
62,900
(4 fla(s) afectadas)
CA
Si quiere seleccionar una sola columna para su consulta, identique el nombre de la misma
ingresndola entre las palabras select y from en la sentencia de la consulta. Si quiere
identicar ms 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 identicador 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.
AM
RI
Tome Nota
55
Si desea seleccionar todos los nombres de las columnas de una tabla, lo puede hacer si
coloca un (*) donde se vaya a identicar el nombre de la columna.
El nico componente requerido de la consulta SQL SELECT es la clusula SELECT
FROM, lo que signica que puede seleccionar todos los campos disponibles de una tabla si
utiliza el siguiente comando:
www.pdftron.com
IBE
RO
SELECT *
FROM empleados
apellido
----------
Jim
Francis
David
Alexandria
Peter
Antoin
empleado_id
-----------
Alexander
Drake
Thompson
Link
Link
Drake
610001
610002
610003
610004
610005
610006
telefono
---------
sexo
---------
574-555-0001
574-555-0346
574-555-0985
574-555-9087
574-555-7863
574-555-2597
M
F
M
F
M
M
(6 fla(s) afectadas)
ETC
Ahora cuenta con una compresin bsica sobre la sentencia SELECT, as tambin
necesitar ser especco respecto a de dnde (WHERE) recuperar los tipos de datos de
tablas especcas que haya identicado en su sentencia de consulta SELECT FROM.
La clusula WHERE se puede utilizar para consultar los empleados que trabajan en el
departamento de Paquetera de la empresa como aparece a continuacin:
SELECT nombre, apellido
WHERE departamento = paquetera
56
Leccin 3
nombre
----------
apellido
--------
Jim
Francis
David
Alexander
Drake
Thompson
AM
RI
(3 fla(s) afectadas)
CA
f Combinacin de condiciones
Si cuenta con mayor informacin de la requerida de una consulta que nicamente tiene un conjunto de parmetros
para realizar la bsqueda de la informacin, 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 Paquetera, pero tal vez quiera ese resultado y adems (AND) necesite encontrar los empleados
que sean mujeres. En este caso, la condicin de la sentencia SQL sera como se menciona a continuacin:
SELECT nombre, apellido
FROM empleados
WHERE departamento = paquetera AND sexo = F AND
contratado >= 2000-JAN-01
www.pdftron.com
Los resultados seran los siguientes:
apellido
--------Drake
IBE
RO
Nombre
----------Francis
(1 fla(s) afectadas)
El ejemplo anterior muestra a todos los empleados que estn en el departamento Paquetera
que son mujeres:
Tambin se puede utilizar la conjuncin OR para hacer que las las regresen un resultado
que cumpla con una de las condiciones.
SELECT nombre, apellido
FROM empleados
WHERE departamento = paquetera OR empleado_id <= 610007
ETC
El resultado sera:
nombre
-----------
apellido
---------
James
David
Francis
Alexandria
Peter
Antoin
(6 la(s) afectadas)
Alexander
Thompson
Drake
Link
Link
Drake
Manipulacin de datos
57
CA
AM
RI
En algunas situaciones tal vez necesite recuperar registros que cumplan con un rango
de condiciones donde se contenga tambin un valor que se encuentre entre un rango de
otro valor especco. Por ejemplo, tal vez necesite recuperar una lista de empleados que
cumplan con las condiciones anteriores pero que adems dicho listado muestre un rango
de fechas de contratacin 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
conjuncin AND. Esto se logra de la siguiente forma:
SELECT nombre, apellido, fecha_contratacion
FROM empleados
WHERE fecha_contratacion >= 1-Jan-1990 AND fecha_
contratacion <= 1-Jan-2000
Estas sentencias producirn los resultados deseados con base en las otras sentencias de
consulta. El resultado sera:
www.pdftron.com
apellido
---------
IBE
RO
nombre
-----------
James
Francis
Peter
Antoin
Alexander
Drake
Link
Drake
fecha_contratacion
-----------1990-12-10
1998-03-04
1997-07-08
1999-12-31
(4 fla(s) afectadas)
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 redaccin. Puede resolver la clusula
AND reemplazndola con una clusula BETWEEN. Al hacerlo, podr especicar un rango
a utilizar entre x y y en un formato de consulta mucho ms claro. Reescribamos la
sentencia anterior para utilizar la condicin between:
ETC
Leccin 3
CA
AM
RI
58
Sin importar el sentido en el cual escriba la sintaxis para la sentencia de consulta, esta
producir los mismos resultados.
www.pdftron.com
IBE
RO
La cantidad y el orden de las columnas debe ser el mismo en cada una de las
consultas que utilice en esta clusula.
Los tipos de datos que vaya a utilizar deben ser compatibles.
La consulta para utilizar la clusula UNION en nuestros ejemplos podra ser el siguiente:
SELECT nombre, apellido
FROM empleados
WHERE departamento = paquetera
UNION
SELECT nombre, apellido
FROM empleadosWHERE fecha_contratacion BETWEEN 1-Jan1990 AND 1-Jan-2000
ETC
Estas dos clusulas se encuentran diseadas para regresar valores distintivos al comparar
el resultado de dos consultas. La clusula EXCEPT regresa cualquiera de esos valores
distintivos de la consulta izquierda que no se encuentren en la consulta derecha, mientras
que la clusula 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 bsicas para la combinacin de los conjuntos de resultados de las
dos consultas para cualquiera de las clusulas aplican aqu de la misma forma que con la
clusula UNION:
Manipulacin de datos
59
CA
AM
RI
SELECT ProductID
FROM Production.Product // El nombre de a base de
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)
La misma consulta, pero utilizando la clusula EXCEPT:
SELECT ProductID
FROM Production.Product
EXCEPT
SELECT ProductID
FROM Production.WorkOrder;
--Resultado: 266 Filas (productos que no tienen rdenes
de trabajo)
IBE
RO
www.pdftron.com
Uso de la clusula JOIN
ETC
CROSS JOIN regresar todas las las de una tabla con todas las las de la otra
tabla. Se deben incluir siempre condiciones WHERE.
Un ejemplo de las sentencias JOIN ms comunes, INNER JOIN, puede ser si quiere
recuperar una lista de empleados por sus nmeros 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 identicar la columna de relacin en las dos
Leccin 3
Tabla empleados
Tabla 3-2
Tabla departamento
tablas que vaya a utilizar en la consulta. En este ejemplo, la clave nica o fornea en
la Tabla 3-1 se identica en la columna departamento_id y en la tabla 3-2 se
identica como la columna de relacin departamento:
nombre
James
David
Francis
Alexandria
Peter
apellido
Alexander
Thompson
Drake
Link
Link
Antoin
David
Drake
Cruze
empleado_id
610001
620002
610003
610004
620005
departamento
1
1
1
2
2
CA
Tabla 3-1
AM
RI
60
departamento_id
1
2
3
610006
610007
nombre
Jane
Mitch
Paul
3
NULL
apellido
Horton
Simmons
Franklin
Tratar de combinar los datos entre las tablas puede ser una tarea muy pesada, sobre todo
si hay miles de las de datos de las cuales se deban crear listas especcas. La sentencia
SELECT puede producir listas individuales, pero, toda la informacin que necesite, ser
en una lista individual.
IBE
RO
www.pdftron.com
Las palabras clave INNER JOIN simplicarn la recuperacin de estos datos pero no slo
incluyendo la informacin de las dos tablas que quiera consultar, sino incluyndolas en la
clusula FROM utilizando las palabras clave INNER JOIN y especicando 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 continuacin:
SELECT empleados.nombre, empleados.apellido,
departamento.nombre, departamento.apellido
FROM empleados INNER JOIN departamento
ON empleados.departamento = departamento.departamento_id
Los resultados seran:
apellido
---------
nombre
------------
apellido
----------
James
David
Francis
Alexandria
Peter
Antoin
Alexander
Thompson
Drake
Link
Link
Drake
Jane
Jane
Jane
Mitch
Mitch
Paul
Horton
Horton
Horton
Simmons
Simmons
Franklin
ETC
nombre
--------
(6 fla(s) afectadas)
Observ que David Cruze no se incluy en la lista de resultados de los empleados
Manipulacin de datos
61
CA
AM
RI
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.
Un ejemplo de la sentencia LEFT OUTER JOIN incluye la sentencia INNER JOIN
mostrada con anterioridad e incluye una clusula de no coincidencia como aparece a
continuacin:
SELECT empleados.nombre, empleados.apellido,
departamento.nombre, departamento.apellido
FROM empleados LEFT OUTER JOIN departamento
ON empleados.departamento = departamento.departamento_id
El resultado sera:
nombre
--------
apellido
---------
nombre
------------
apellido
----------
James
David
Francis
Alexandria
Peter
Antoin
David
Alexander
Thompson
Drake
Link
Link
Drake
Cruze
Jane
Jane
Jane
Mitch
Mitch
Paul
NULL
Horton
Horton
Horton
Simmons
Simmons
Franklin
NULL
IBE
RO
www.pdftron.com
(7 flas afectadas)
Ahora observar que la nica diferencia entre las sentencias INNER JOIN y OUTER
JOIN es la inclusin de David Cruze quien, como se mencion con anterioridad, no se
ETC
En algunos casos, tal vez quiera tener una combinacin de tabla consigo misma. A esto se
le llama autocombinacin debido a las instancias cuando quiera comparar registros desde
la misma tabla hacia las dems. Este tipo de tablas generalmente se encuentran cuando se
crean jerarquas organizacionales y se requiere de resultados de la misma.
Por ejemplo, tal vez quiera encontrar cuantos autores viven en la misma ciudad y
proporcionar una lista a una casa editorial. Este resultado se obtendra utilizando la
siguiente sentencia SELF-JOIN:
USE pubs
SELECT autor1.nombre, autor1.
apellido, autor2.nombre, autor2.apellido
Leccin 3
El resultado sera:
CA
nombre
--------
apellido
---------
nombre
------------
apellido
----------
David
David
David
Alex
Alex
Alex
Linda
Linda
Linda
Delina
Jules
Jones
Jones
Jones
Starr
Starr
Starr
Arrow
Arrow
Arrow
Burris
Allan
David
Alex
Linda
David
Alex
Linda
David
Alex
Linda
David
Jules
Jones
Starr
Arrow
Jones
Starr
Arrow
Jones
Starr
Arrow
Burris
Allan
AM
RI
62
www.pdftron.com
Si desea eliminar las las donde se repita el mismo autor, lo lograr con la sentencia
SELF-JOIN:
IBE
RO
USE pubs
apellido
---------
nombre
------------
apellido
----------
David
David
Alex
Jones
Jones
Starr
Alex
Linda
Linda
Starr
Arrow
Arrow
ETC
nombre
--------
(3 flas afectadas)
De los resultados obtenidos de la sentencia de consulta, David Jones, Alex Starr y Linda
Manipulacin de datos
63
Arrow viven todos en Pittsburgh, PA y tienen los mismos cdigos postales (ZIP).
CA
; Listo para la
certicacin
Cul comando se
utiliza para agregar
datos a una tabla?
3.2
AM
RI
El objetivo es comprender cmo se insertan datos en una base de datos y cmo utilizar las sentencias INSERT.
Hay varias formas diferentes en las cuales SQL Server le permite insertar datos en su base
de datos. Hay diferentes herramientas de insercin disponibles que le permitirn unirlos.
Si quiere insertar cantidades pequeas de datos, por ejemplo, agregar nuevas las en su
base datos, lo puede hacer de dos formas diferentes. La primera es utilizando la interfaz
grca o con la sentencia INSERT.
Insertar datos
Aprendamos primero cmo insertar datos en una tabla utilizando SQL Server Management
Studio antes de continuar con el mtodo de sintaxis.
www.pdftron.com
Insertar datos con SQL Server Management Studio
IBE
RO
Figura 3-1
1. Asegrese de haberse conectado a la base de datos con la que quiera trabajar (vea la
Figura 3-1).
ETC
Conectndose a la base
de datos
64
Leccin 3
Figura 3-2
AM
RI
CA
Figura 3-3
Pantalla resultante de
Editar las primeras 200
las
www.pdftron.com
ETC
IBE
RO
6. Introduzca sus datos en la ltima la de la tabla para los datos que se consideren
nuevos (insertados). La ltima la de la tabla contendr valores NULL en cada una de las
columnas. Si resalta cada uno de los valores con el mouse se insertarn automticamente
datos en la tabla. Vea la gura 3-3.
Manipulacin de datos
Conguraciones para
las Propiedades del
Diseador de Tablas
Caracter comodn
%
[a-f]
[^a-f]
[abc]
AM
RI
[^abc]
Descripcin
Cualquier carcter nico
Cualquier serie de cero o ms caracteres
Cualquier carcter nico en el rango de a-f
Cualquier carcter nico que no est en el rango
a-f
Cualquier carcter nico contenido en la lista (a,
b, c)
Cualquier carcter nico que no est en la lista
(a,b,c)
CA
Tabla 3-3
65
PAUSA. Deje SQL Server Management Studio abierto para el siguiente ejercicio.
El otro mtodo de utilizar la clusula insert se realiza al escribir una sentencia SQL en la
ventana de edicin de texto, lo que le dar el mismo resultado que la interfaz grca si
utiliza la siguiente sintaxis:
INSERT INTO <nombre_tabla> (<columnas>)
VALUES (<valores>)
Tome Nota
Aunque la lista de
columnas en la
sentencia insert es
completamente
opcional, se recomienda
especicar cules
columnas desea utilizar,
puesto que SQL asumir
automticamente que su
lista de valores incluirn
todas las columnas en el
orden correcto.
Las dos clusulas <columnas> y <valores> tendran sus listas separadas por comas de los
nombres de las columnas en la tabla que desee incluir junto con los valores que quiera
insertar.
www.pdftron.com
IBE
RO
No tiene que insertar slo una la de forma individual en la sentencia insert sino
que puede indicar varias las utilizando una coma para separarlas. Esto es similar a
cuando observa un archivo .CSV de Excel donde vera comas que separan columnas
de informacin cuando se importe para utilizarlo en otra base de datos, como Access.
Pero, dentro de una sentencia INSERT, cada una de las las identicadas por comas se
encerrar entre parntesis.
Para escribir una sentencia INSERT (en el siguiente ejemplo, se agregan dos empleados
a la tabla empleados), se vera como aparece a continuacin:
INSERT INTO empleados (nombre,
apellido, empleado_id, departamento)
VALUES (David, Clark, 610008, paquetera),
(Arnold, Davis, 610009, contabilidad)
El resultado sera:
ETC
(2 fla(s) afectadas)
66
Leccin 3
CA
EN RESUMEN
Es importante comprender cmo se actualizan los datos en una base de datos y cmo escribir los datos actualizados
en la base de datos utilizando las sentencias UPDATE apropiadas.
Cul comando se
utiliza para modicar
los datos existentes en
una tabla? 3.3
La funcin de la sentencia UPDATE es modicar los datos en una tabla o vista. Muy similar
a cualquier manipulacin o modicacin de datos, las clusulas y sentencias disponibles
para utilizar en SQL pueden realizarse con la interfaz grca o en la ventana de edicin de
texto.
AM
RI
; Listo para la
certicacin
www.pdftron.com
IBE
RO
Esta sentencia se parece a otras que hemos visto con anterioridad. Quiere actualizar una
tabla, en la que un identicador de columna reeje un valor especco. Tal vez quiera
tener un atributo de un supervisor nuevo (piense en nuestro ejemplo de empleados),
Doug Able, siendo asignado a los empleados nuevos con el propsito de capacitacin.
Ese supervisor podra tener el atributo, si vemos de vuelta nuestra tabla departamento
de un ID de 4 y se cumplira con la clusula WHERE respecto a la condicin NULL de los
empleados sin supervisor. Veamos un escenario en el cual la sentencia UPDATE cumpla
con el ejemplo anterior.
Primero agreguemos un registro en la tabla departamento para agregar el nombre de
nuestro nuevo supervisor y la informacin de ID de departamento con la sentencia
INSERT:
(1 fla(s) afectadas)
ETC
Tome Nota
Si no especica los
registros a actualizar,
todos los registros o
las se actualizarn con
el nuevo valor. Esto es
potencialmente daino.
Ahora, necesitamos actualizar nuestra tabla empleados para reejar a los empleados que
no tengan asignado un supervisor de departamento. La sentencia UPDATE sera como se
indica a continuacin:
UPDATE empleados
SET departamento = 4
WHERE departamento IS NULL
Manipulacin de datos
67
92
2010-04-
dbo
CREATEVIEW
dbo
vDVMPrep
CREATE
92
03.
2010-04-
dbo
CREATE_VIEW
dbo
vTimeSeries
VIEW [
CREATE
92
03.
2010-04-
dbo
NULL
03.
NULL
NULL
AM
RI
Valores NULL en la
columna departamento
CA
Tabla 3-4
CREATE_VIEW
dbo
vTargetMail
VIEW [
CREATE
NULL
NULL
NULL
VIEW [
NULL
<EVENT_
INSTA
<EVENT_
INSTA
<EVENT_
INSTA
NULL
Si revisa de vuelta la Tabla 3-1, observar que un empleado, David Cruze, no tena un ID
de departamento asignado a su registro en la tabla empleados. Su valor se represent como
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 grca, necesita seguir los siguientes pasos:
www.pdftron.com
IBE
RO
Eliminar datos
EN RESUMEN
Es importante comprender cmo eliminar datos de una o varias tablas y asegurar los datos y la integridad referencial
utilizando transacciones.
; Listo para la
certicacin
La sentencia DELETE elimina las de una tabla o vista. Hay varias formas de llevar a cabo
esta tarea. Puede identicar y eliminar las individuales de una base de datos utilizando
la sintaxis delete, eliminar todas las las con la sentencia truncate table o eliminar toda
la tabla con la sentencia drop table. Todo depende de las necesidades que tenga o de la
cantidad de datos que necesite eliminar.
ETC
Cules comandos se
utilizan para eliminar
datos de una base de
datos? 3.4
Tome Nota
Puede utilizar la sentencia DELETE o eliminar una o ms las en una tabla o vista con la
siguiente sentencia SQL:
Leccin 3
El resultado sera:
(1 fla(s)
afectada)
CA
AM
RI
68
Tal vez quiera eliminar todas las las de una tabla en particular, en este caso puede utilizar
la sentencia TRUNCATE TABLE, aun cuando podra verse tentado a utilizar DELETE y la
condicin WHERE. Si lo hace, se producira el mismo resultado pero podra tomarle mucho
ms tiempo si elimina las de bases de datos muy grandes. La sintaxis TRUNCATE TABLE
se realiza de la siguiente manera:
TRUNCATE TABLE <nombre_tabla>
www.pdftron.com
Cada resultado exitoso de SQL producira lo siguiente:
IBE
RO
La sentencia TRUNCATE TABLE slo elimina los datos de la tabla pero dejar la estructura
para poder utilizarla ms adelante.
En caso de que slo 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:
DROP TABLE <nombre_tabla>
ETC
Uno de los pasos ms importantes que debe tomar al planear una base de datos, crear
tablas, manipular datos, etc., es desarrollar un modelo de seguridad apropiado, donde
cosas como la integridad referencial formen parte de ese modelo. Un problema serio de la
manipulacin y mantenimiento de las bases de datos es que en ocasiones los datos de SQL
Server se pierden y se necesita recuperarlos. Si no se cuenta con la proteccin apropiada y
forma parte del proceso de respaldo y recuperacin, puede ser un proceso muy preocupante
el tratar de recuperar los datos perdidos.
Una medida de recuperacin de fallos que se puede implementar con respecto a las tablas
de una base de datos, es a travs de los mtodos de integridad referencial. Uno de los
errores ms comunes de la manipulacin 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
Manipulacin de datos
69
AM
RI
CA
Uno de los mejores mtodos es utilizar transacciones al actualizar los datos. Es comn
eliminar, truncar o actualizar accidentalmente los datos durante las tareas regulares de
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 emitira un
rollback desde SQL.
A continuacin se presenta una sentencia de transaccin:
BEGIN TRAN
DELETE FROM <nombre_tabla>
Lo que sucede en este punto es que puede vericar que lo que hizo realmente se aplic y
luego podra 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
accidentes con los datos.
ETC
IBE
RO
www.pdftron.com
Leccin 3
CA
Resumen de Habilidades
Que el comando SQL para recuperar cualquier tipo de datos de una base de datos
es SELECT.
Slo hay tres cosas que necesita asegurarse que se incluyen en una consulta SELECT:
columnas a recuperar, tablas de las cuales recuperar informacin y las condiciones,
si es que hay alguna, que los datos deban cumplir.
Una clusula BETWEEN le permite especicar el rango a utilizar en un formato
de consulta entre x y y.
La palabra clave NOT se utiliza para buscar datos en trminos de lo que no se
quiere en los resultados.
La clusula UNION le permite combinar los resultados, de dos o ms consultas
en un solo conjunto resultante que incluira todas las las que pertenezcan a la
consulta en esa unin.
La clusula EXCEPT regresa cualquiera de los valores distintivos de la consulta
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 clusula JOIN le permite combinar datos relacionados de varias tablas fuente.
Para insertar datos, por ejemplo, puede utilizar la herramienta de interfaz grca
o la sentencia INSERT.
La funcin de la sentencia UPDATE es para cambiar los datos en una tabla o vista.
La sentencia DELETE es para eliminar las de una tabla o vista.
La sentencia TRUNCATE TABLE slo elimina los datos de una tabla, pero deja la
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 eliminacin accidental de tablas enteras es utilizando
la integridad referencial, la que no permite la eliminacin de tablas a menos que se
encuentren al nal de la relacin.
AM
RI
70
ETC
IBE
RO
www.pdftron.com
Manipulacin de datos
71
Verdadero o Falso
CA
Evaluacin de Conocimientos
1.
2.
3.
4.
AM
RI
V
V
V
V
Complete el enunciado
www.pdftron.com
2. La clusula WHERE de una sentencia SELECT contiene una o ms ________ para ltrar
los datos consultados.
IBE
RO
3. La forma ms eciente de eliminar todas las las de una tabla es con la sentencia
______________.
4. Para combinar los resultados de dos consultas, utilice el operador __________.
5. Utilice la sentencia _______ para modicar una o ms las en una tabla.
ETC
Opcin mltiple
72
Leccin 1
a.
b.
c.
d.
UNION
EXCEPT
INTERSECT
AND
CA
AM
RI
a.
b.
c.
d.
mass*acceleration as force
3.1415 as PI
(select max(age) from employee) as maxage
rstname + secondname as fullname
IBE
RO
www.pdftron.com
Evaluacin de aptitud
ETC
4. Cul comando usara para mostrar todos los registros de la tabla Supliers que tengan
la ciudad de Sacramento?
5. Cul comando usara para mostrar CompanyName, ContactName y PhoneNumber
de la tabla Suppliers que tengan un Supplier ID mayor que 1000?
6. Cul comando usara para mostrar CompanyName, Contact y Phone Number de la
tabla Customers para las compaas que tengan ms de 100 empleados y residan en
el estado de CA.
Manipulacin de datos
73
CA
AM
RI
2. Cul comando usara para eliminar todos los registros de la tabla Schools con
Enrollment de menos de 500?
3. Cul comando usara para eliminar todos los registros de la tabla Contact que no
tengan un pas de USA y que libere el espacio utilizado por tales registros?
4. Cul comando usara para eliminar la tabla Temp?
Evaluacin de destreza
www.pdftron.com
Escenario 3-3: Manipulacin de datos con las sentencias SELECT y
JOIN
IBE
RO
ETC
Leccin 1
CA
AM
RI
74
ETC
IBE
RO
www.pdftron.com
Leccin 4
CA
AM
RI
Habilidades/Conceptos
4.1
4.2
principales, externas y
compuestas.
Comprender los ndices.
4.3
www.pdftron.com
Trminos Clave
IBE
RO
ndice agrupado
Clave compuesta
Primera forma normal
Clave externa
Clave principal
Datos redundantes
Segunda forma normal
Tercera forma normal
ETC
Necesita trabajar para un gran almacn de una compaa de distribucin que proporciona equipo
de acampado al aire libre a ms de 90 tiendas en Norte Amrica. Ha recibido un memo que
informa que la compaa recin 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 tambin para asegurar que la nueva tabla
dentro de la base de datos se mantiene normalizada a la tercera forma normal.
76
Leccin 4
AM
RI
EN RESUMEN
CA
En esta leccin, aprender sobre la normalizacin de una base de datos, los cinco niveles
ms comunes de normalizacin y el propsito de la normalizacin en lo que se reere a
laintegridad de la base de datos. Tambin aprender por qu las claves externas, principales
y compuestas juegan un rol integral en la integridad referencial.
El objetivo es comprender las razones de la normalizacin, los cinco niveles ms comunes de normalizacin y cmo
normalizar una base de datos a una tercera forma normal.
Tome Nota
La normalizacin es la
eliminacin de datos
redundantes para
ahorrar espacio.
La razn principal para utilizar las tcnicas de normalizacin, con respecto al almacenamiento
de datos, fue desarrollado en los das en los que el almacenamiento de datos costaba mucho
ms de lo que cuesta ahora. La Normalizacin en pocas palabras, es la eliminacin de datos
redundantes para ahorrar espacio. Ahora que comprende la denicin en general de esta
importante organizacin de datos, veamos ms a fondo los conceptos de normalizacin y su
aplicacin cuando se busca un diseo de base de datos en su rutina diaria.
f Qu es la Normalizacin?
www.pdftron.com
La normalizacin est basada por completo en el diseo de datos y procesos de organizacin los cuales son derivados
de reglas utilizadas cuando se construyen y disean bases de datos relacionales. Por lo tanto, su comprensin de qu
son las bases de datos relacionales y las buenas metodologas de diseo son extremadamente importantes.
IBE
RO
; Listo para la
certicacin
Cuando se busca la normalizacin por denicin, este es el proceso de organizar datos con
el n de reducir la redundancia de datos dividiendo una base de datos en dos o ms tablas
y luego deniendo las relaciones de tabla. El objetivo de esta operacin es aislar datos
de forma que las adiciones, eliminaciones y modicaciones que ocurren en cada campo
pueden ser hechas dentro de una tabla y luego propagarlas a travs del resto de la base de
datos utilizando estas relaciones denidas.
Hay cinco formas de normalizacin (NFs) y discutiremos los primeros tres:
ETC
Tomando una vista detallada de las formas normales este captulo ofrece un estudio ms
formal del diseo de una base de datos relacional. Al contrario de la opinin popular,
las formas no son una metodologa progresiva, pero representan un nivel progresivo de
aceptacin. Tcnicamente, no puede estar en 2NF hasta que se haya cumplido 1NF, por
lo tanto, no planee disear una entidad y moverla a travs 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.
77
CA
La primera forma normalizada (1NF) signica que los datos estn en un formato de
entidad, lo cual bsicamente signica que se deben cumplir las siguientes tres condiciones:
AM
RI
BaseCamp
Ashville
Tour1
Appalachian
Trial
Cape Hatteras
Outer Banks
Tour2
Blue Ridge Parkway
Tour3
Hike
Lighthouses
Bahamas Dive
Amazon Trek
Gauley River
Rafting
www.pdftron.com
IBE
RO
Freeport
Ft. Lauderdale
West Virginia
Tabla 4-2
ETC
Datos de los
campamentos base
(despus) Conforme a la
Primera Forma Normal
Para redisear 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 mltiple a una tabla nica. La
entidad BaseCamp contiene una tabla nica para cada campamento base y la entidad del
Tour BaseCampID se reere a la clave principal en la entidad BaseCamp.
Entidad BaseCam
BaseCampID
(PK)
Name
Appalachian Trail
Blue Ridge Parkway
Hike
Outer Banks Lighthouses
Outer Banks Lighthouses
1
2
Ashville
Cape Hatteras
3
4
Freeport
Ft. Lauderdale
Amazon Trek
Tour
78
Leccin 4
AM
RI
CA
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
cuestin, 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.
Para comprender mejor cmo 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 despus de que ha sido conformada.
Tabla 4-3
Datos de los
Campamentos Base
(antes) Violando la
Segunda Forma Normal
PK-BaseCamp
Ashville
Ashville
Cape Hatteras
Freeport
Ft. Lauderdale
West Virginia
PK-Tour
Appalachian Trail
Blue Ridge Parkway Hike
Outer Banks Lighthouses
Bahamas Dive
Amazon Trek
828-555-1216
www.pdftron.com
Tabla 4-4
Entidad BaseCam
PK-Base Camp
PhoneNumber
Ashville
Cape Hatteras
828-555-1212
828-555-1213
Cape Hatteras
Freeport
Appalachian Trail
Blue Ridge Parkway
Hike
Outer Banks Lighthouses
Bahamas Dive
Freeport
Ft. Lauderdale
828-555-1214
828-555-1215
Ft. Lauderdale
Amazon Trek
West Virginia
828-555-1216
West Virginia
PK-Tour
IBE
RO
Datos de los
Campamentos Base
(despus) Conforme a la
Segunda Forma Normal
ETC
La tercera forma normal (3NF) verica las dependencias transitivas. Una dependencia
transitiva es similar a la dependencia parcial en que ambas se reeren 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
dependiente en la clave principal. Cuando se busca si hay una violacin en la segunda
o tercera forma normal, cada atributo es directa o indirectamente vinculado a la clave
principal. Por lo tanto, la segunda forma normal es violada cuando un atributo depende
en parte de la clave y la tercera forma normal sera violada cuando el atributo dependa
en la clave pero tambin depende de otro atributo que no es clave. La frase clave ms
importante para recordar cuando se describe la tercer forma normal es que cada atributo
debe proporcionar un hecho acerca de la clave, la clave completa y nada ms que la clave.
Justo como la segunda forma normal, la tercera forma normal se resuelve moviendo el
atributo no dependiente a una nueva entidad. Para comprender mejor cmo puede violar
las reglas de la tercera forma normal, un ejemplo de los mismos datos de campamentos
79
Tabla 4-6
Datos de los
Campamentos Base
(despus) Conforme a la
Tercera Forma Normal
LeadGuide
Jeff Davis
Ken Frank
Dab Smith
Sam Wilson
Lauren Jones
DateofHire
5/1/99
4/15/97
7/7/2001
1/1/2002
6/1/2000
CA
Datos de los
Campamentos Base
(antes) Violando la
Tercera Forma Normal
AM
RI
Tabla 4-5
Entidad de Tour
BaseCampPK
Ashville, NC
Cape Hatteras
Freeport
West Virginia
LeadGuide
Jeff Davis
Ken Frank
Dab Smith
Lauren Joes
Entidad de LeadGuide
LeadGuidePK
DateofHire
Jeff Davis
5/1/99
Ken Frank
4/15/97
Dab Smith
7/7/2001
Lauren Joes
6/1/2000
www.pdftron.com
Hay dos requerimientos bsicos para que una base de datos est en la tercera forma
normal:
IBE
RO
Con el n de comprender cmo una base de datos es puesta en la tercera forma normal,
veamos un ejemplo de este propsito:
Imagine que se tiene una tabla de widget orders que contiene los siguientes atributos:
ETC
Recuerde, nuestro primer requerimiento es que la tabla debe satisfacer los requerimientos
de 1NF y 2NF. Existe alguna columna duplicada?, No. Tenemos una clave primaria?, S,
el nmero de orden. Por lo tanto, se satisfacen los requerimientos de 1NF. Existe algn
subconjunto de datos que apliquen a mltiples las?, No, entonces tambin se satisfacen
los requerimientos de 2NF. Ahora, todas las columnas son totalmente dependientes de la
clave principal? El nmero de cliente vara con el nmero de orden y no parece depender
de ninguno de los otros campos. Qu pasa con el precio unitario? Este campo puede ser
dependiente al nmero de cliente en una situacin donde le cargamos a cada cliente el
precio jo. Sin embargo, basado en la informacin proporcionada en los campos de la tabla,
podramos algunas veces cargar distintos precios al mismo cliente. Por lo tanto, el precio
unitario es totalmente dependiente del nmero de orden. La cantidad de artculos tambin
vara 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
Leccin 4
Nmero de Orden
Nmero de Cliente
Precio Unitario
Cantidad
CA
Ahora nuestra tabla est en 3NF. Pero, podra preguntar, Qu pasa con el total? Este es
un campo derivado y es mejor no almacenarlo en la base de datos. Podemos simplemente
computarlo en tiempo de ejecucin cuando desempeamos consultas en la base de datos.
Por ejemplo, podramos haber utilizado previamente esta consulta para recuperar los
nmeros de orden y los totales:
AM
RI
80
Con el n de lograr los mismos resultados, sin violar las reglas de normalizacin.
www.pdftron.com
IBE
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 identican nicamente a la entidad sin el tercer atributo, entonces el diseo viola la
cuarta forma normal.
ETC
La quinta forma normal (5NF) proporciona el mtodo para disear relaciones complejas
involucrando mltiples entidades (regularmente tres o ms). Es comnmente discutido
entre administradores de bases de datos que satisfaciendo los requerimientos de la tercera
forma normal es suciente. Cuando se mira en las cuartas y quintas formas normales,
podran ser complejas, pero violarlas puede causar problemas severos. Es importante mirar
el diseo de la base de datos como un todo y no slo como disear algo para llenar la
mitad de las necesidades de sus usuarios, empleados, etc. No es necesario, si el nmero de
entidades son utilizadas o no, es una cuestin de alinear apropiadamente los atributos y
claves. Cualquier violacin de las formas normales puede causar un efecto de cascada con
violaciones mltiples y bases de datos inecientes. La normalizacin tambin reduce la
contencin de bloqueos y mejora el desempeo de usuarios mltiples junto con estas tres
ventajas:
Costos de desarrollo: Mientras tomara ms el disear una base de datos
normalizada, es ms fcil trabajar con una base de datos normalizada y as
reduce los costos de desarrollo.
81
CA
AM
RI
www.pdftron.com
IBE
RO
Cuando las bases de datos fueron diseadas por primera vez, el ahorrar tiempo
introduciendo datos no era considerada una parte importante del diseo de una base de
datos, sino que ms bien, las bases de datos fueron diseadas con propsitos de calidad y
velocidad de recuperacin de datos. Sin embargo, con el inicio de la necesidad de coleccin
de datos automatizada en tales industria como la fabricacin, utilizacin de cdigo de
barras en la venta al por menor, las bases de datos continuamente compartan ms datos
y los consumidores ubicaban sus propias ordenes de comercio electrnico en Internet, el
esfuerzo y tiempo requerido para introducir los datos tambin se ha convertido en un
factor de importancia en el diseo de base de datos.
ETC
En otras palabras, una base de datos relacional y una cotidiana hoja de clculo comn son
realmente bastante similares desde el punto de vista de la teora de diseo. Una base de
datos relacional colecciona datos relacionados o comunes en una sola lista. Por ejemplo,
toda la informacin del producto debe ser enlistada en una tabla y todos los clientes en otra
tabla. Una tabla parece similar a una hoja de clculo y est diseada con columnas y las.
Esto es realmente donde las similitudes entre una base de datos relacional y una hoja de
clculo comn terminan rpidamente. Una aparente ventaja de una hoja de clculo es su
estilo de desarrollo informal, hacindola fcil de modicar y agrandarla conforme madura
el diseo. De hecho, los administradores tienden a almacenar informacin crtica en hojas
de clculo en lugar de en una base de datos. Pero, muchas bases de datos comenzaron como
hojas de clculo informales y se trasladaron a un diseo de base de datos relacional ms
fuerte y mucho ms amplio.
Cuando se mira el diseo de lo que es una hoja de clculo y una base de datos, es importante
darse cuenta que visualmente tanto la hoja de clculo y la base de datos cada una tiene las
o un tem y cada columna mantiene una pieza especca de datos referente a ese tem y
cada celda debera contener una sola pieza de datos sobre un solo tem.
82
Leccin 4
CA
AM
RI
El objetivo es comprender la razn 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 relacin entre claves externas y principales.
; Listo para la
certicacin
Cul es la diferencia
entre una clave
principal y una
externa?4.2
Existen tres tipos distintos de restricciones disponibles dentro de SQL Server que
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 restriccin nica le
permitir cumplir la propiedad de unicidad de columnas, que no sea una clave principal
dentro de una tabla. Una clave de restriccin nica acta similar a una clave principal,
pero con dos diferencias importantes:
www.pdftron.com
IBE
RO
Las columnas que contienen una clave de restriccin nica pueden contener
solo un valor NULL. No puede tener dos las que contengan un valor
NULL en la misma opcin ya que violara el valor de error duplicado de la
restriccin nica.
Una tabla puede tener mltiples restricciones nicas
PREPRESE. Para insertar datos a travs de la herramienta de la interfaz grca, siga estos
pasos. Antes de que comience, asegrese de lanzar la aplicacin de SQL Server Management
Studio y conctela a la base de datos con la que desea trabajar.
ETC
1. Utilizando el SQL Server Management Studio, abra la tabla en la que desea crear la
restriccin, en la vista de Diseo dando clic derecho en la tabla y seleccionando diseo
desde la ventana emergente, como se muestra en la Figura 4-1.
83
Figura 4-1
AM
RI
CA
Vista de Diseo
www.pdftron.com
IBE
RO
Figura 4-2
ETC
ndices o Claves
84
Leccin 4
Figura 4-3
AM
RI
CA
www.pdftron.com
3. Haga clic en el botn Agregar para crear una nueva clave.
4. Haga clic en la propiedad Tipo en el lado derecho del cuadro de la propiedad y cmbielo
IBE
RO
del ndice por defecto a Clave Unique, como se muestra en la Figura 4-4.
Figura 4-4
ETC
Figura 4-5
85
AM
RI
CA
Seleccionando columnas
a agregar
www.pdftron.com
Haga clic en el botn cerrar
IBE
RO
6.
Figura 4-6
ETC
Leccin 4
Claves principales
CA
PAUSA. Deje abierta la interfaz de SQL Server Management Studio abierta para el siguiente
ejercicio.
Tal vez el concepto ms importante del diseo de cualquier tabla de base de datos es que
tiene una clave principal, un atributo o conjunto de atributos que pueden ser utilizados para
identicar de forma nica a una la. Cada tabla debe tener una clave principal, sin una
clave principal, no es una tabla valida. Por denicin, una clave principal debe ser nica
y debe tener un valor (que no sea null). Para algunas tablas, podra haber mltiples claves
principales posibles para elegir, tal como, nmero de empleado, nmero de licencia de
manejo o un nmero emitido por el gobierno tal como Nmero 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 diagramacin de base de datos inicial, la clave
principal podra ser fcilmente visible, por ejemplo, podra ser un nmero de empleado,
un nombre de fabricante, pero, frecuentemente no hay un valor de identicacin nica
reconocible claramente para cada tem cuando se busca en la mayora de los casos en el
mundo real.
AM
RI
86
Claves externas
www.pdftron.com
IBE
RO
A travs de los captulos de este libro, ha sido inundado con la terminologa de bases de
datos relacionales. Esta terminologa lleva tambin hacia el uso de claves de ndice, tales
como las claves externas. Es importante que note que cuando se discute tan importante
aplicacin de integridad de base de datos, la integridad referencial siempre jugara un rol
importante en esa aplicacin.
Cuando tiene dos tablas relacionadas entre s, una de estas tablas actuar como principal
y la otra como secundaria. Con el n 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
podra ser denido, en ocasiones, como una relacin padre-hijo, hacer cumplir el atributo
de clave externa est realmente denido como integridad referencial (referirse al ltimo
captulo discutiendo la integridad referencial).
ETC
La gura 4-7 permite tener una mejor idea visual del tipo de claves de ndice.
87
Figura 4-7
AM
RI
CA
Clave de ndice
www.pdftron.com
IBE
RO
Cuando se discuten las claves externas, claves principales, etc. La terminologa casi
siempre incluir la restriccin como parte de la descripcin. Como ejemplo a cual rol se
reere la restriccin de clave externa, utilicemos el ejemplo de una base de datos de una
tienda de venta al por menor. Cada tienda tendr una tabla que contenga la informacin
relativa a esa tienda, tal como informacin de empleado, productos vendidos, inventario
y probablemente la informacin con respecto a los clientes. Con el n de referenciar los
datos de la tabla lgicamente sera crear un campo de Unit_Number dentro de la tabla
de Employees y este campo contendra 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.
Congurado lgicamente o no? Pregntese a s mismo Qu pasa si una de las tiendas
cierra en el futuro?. Sera ms probable que todos los empleados asociados con la tienda
serian entonces hurfanos como si hubieran sido asociados con el campo Unit_Number
que ya no existe. Tambin hay posibilidades para el potencial error humano por lo cual
durante la entrada de datos de un empleado en la base de datos, alguien podra teclear
inadvertidamente un Unit_Number incorrecto para un empleado, por lo tanto crear un
nmero para una tienda que no existe. Este podra ser un problema durante el tiempo de
pago de nminas o para otras acciones de los recursos humanos. Estos tipos de problemas
estn denidos como cuestiones de integridad relacional, como lo aprendi en el captulo
anterior. SQL Server proporciona la restriccin de clave externa necesaria para prevenir que
ocurra este tipo de error. Una clave externa entonces crea una relacin entre dos tablas
enlazando la clave externa de una de las tablas a la clave principal de la tabla referenciada.
Tome Nota
ETC
88
Leccin 4
CA
PREPRESE. Para crear una restriccin externa a travs de la herramienta de interfaz grca,
siga estos pasos. Antes de que inicie, asegrese de lanzar la aplicacin del SQL Server
Management Studio y conctelo 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 diseo desde el men emergente que observa,
como se muestra en la Figura 4-8.
AM
RI
Figura 4-8
Vista de Diseo
IBE
RO
www.pdftron.com
ETC
2. Desde la lista del men desplegable del Diseador de Tablas, como se muestra en la
Figura 4-9, seleccione Relaciones.
89
Figura 4-9
AM
RI
CA
Seleccione Relaciones
www.pdftron.com
3. Seleccione la tabla en la que desea agregar la clave externa.
IBE
RO
Figura 4-10
ETC
Cuadro de la propiedad
Tipo
90
Leccin 4
5.
Figura 4-11
AM
RI
CA
Seleccione la tabla a la
que se reere su clave
externa
IBE
RO
www.pdftron.com
6. Una vez que ha terminado de agregar la informacin de la tabla de clave externa, haga
clic en Aceptar para cerrar la ventana de dilogo.
7. Haga clic en el botn cerrar.
DEJE abierta la interfaz del SQL Server Management Studio para el prximo ejercicio.
A travs de la creacin de esta relacin de clave externa entre dos tablas, SQL Server ahora
requerir todos los valores asociados con la restriccin, 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 mltiples valores que correspondan en la tabla de la
clave externa que puede referirse al mismo registro en la tabla de la clave principal.
ETC
91
CA
Las tablas que denen entidades son las tablas que denen 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 discusin acerca de las claves
principales compuestas, las tablas que denen entidades no es el tema importante de esta
discusin.
AM
RI
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 mltiples productos
a mltiples clientes con el n de indicar que pueden o no ordenar, usted observa una
relacin muchos a muchos entre las tablas Customer y Products. Ya que tiene una tabla
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 denir nuestra tabla CustomerProducts.
La tabla CustomerProducts relaciona a los clientes con los productos, as que el propsito
de esta tabla es relacionar las dos entidades las cuales ya han sido denidas dentro de la
base de datos. Muchas veces, cuando el administrador de bases de datos est diseando
una tabla por primera vez, un gran esfuerzo se dirige a garantizar la integridad de los
datos siguiendo las guas de diseo, asegurndose que la clave principal de la tabla est
identicada, un administrador de base de datos garantiza que la integridad de datos es
mantenida. El resumen es que con el n de mantener la integridad de datos, la clave
principal debe formar parte de los requerimientos de diseo para cada tabla.
www.pdftron.com
IBE
RO
Muchas veces una tabla no est diseada con previsin de la posible duplicidad de entradas
de datos y aunque muchos piensan que el UI (Identicador 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 podran ser cuando un sistema es actualizado y hay una
necesidad de mover datos o que necesita restaurar alguna forma de transaccin desde un
respaldo, por lo tanto, hay una necesidad de garantizar que la integridad de datos es
mantenida.
Si comienza a mirar en el diseo de la tabla con la comprensin de la integridad de
datos y la denicin de una clave principal de una tabla, utilizando una restriccin nica
garantizar que la integridad es mantenida. Recuerde, una clave principal es un conjunto
de columnas en una tabla que identican la unicidad de cada la de datos.
ETC
Es importante comprender los ndices clustered (agrupados) y non-clustered (no agrupados)y su propsito en las
bases de datos.
; Listo para la
certicacin
Como administrador de base de datos, es importante comprender cul de los dos tipos de
ndices (clustered y non-clustered) hacer y cul es el rol de estos ndices dentro del entorno
de base de datos. Un ejemplo de lo que es un ndice seria si ha adquirido algn tipo de
libro y necesitar buscar algn tema en particular, palabra o idea, no dudara en buscar en
el ndice en la parte trasera del libro. La Indexacin 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 vericara cada la para buscar la consulta por
la que est tratando de encontrar informacin. Esto suena como una cantidad increble
de tiempo gastado inecientemente? Si respondi que s, estara en lo correcto! Lo que
92
Leccin 4
AM
RI
CA
hace el SQL Server, con la ayuda de los administradores de bases de datos, es construir y
mantener una variedad de ndices con el n de ubicar y enviar de regreso campos utilizados
rpida y comnmente. El nico inconveniente real de utilizar la indexacin es el tiempo
que toma construir los ndices actuales y el espacio de almacenamiento requerido para
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 desempear. Recuerde, SQL Server le permite crear sus ndices ya sea en
columnas sencillas o mltiples, pero, la velocidad real que ganar ser en aquellos ndices
basados en la columna (s) dentro del ndice.
ndices clustered
Tome Nota
Slo un ndice clustered
es permitido para cada
tabla.
www.pdftron.com
IBE
RO
Aunque lo que ha sido explicado es mucho ms que una visin simplista de las deniciones
de clustered y non-clustered y por qu han sido creados, es importante observar las bases
de un ndice.
ETC
Un ndice es una estructura en disco (o almacenada) asociada totalmente con una tabla
o una vista la cual ayuda a la velocidad de recuperacin de datos. Con el n de construir
este ndice, una serie de claves son construidas desde uno o ms columnas en cada la
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 la (s) asociadas con estos valores
denidos mucho ms rpida y ecientemente. Un ejemplo de una estructura de rbol-B
puede ser encontrado en la Figura 4-12.
93
Figura 4-12
AM
RI
CA
Estructura de rbol-B
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 estn incluidas
dentro de la denicin de ndice ya que los datos en las columnas son ordenados en un solo
orden, esto es porque, como se mencion en la introduccin, solo puede tener un ndice
clustered por tabla.
www.pdftron.com
IBE
RO
En los trminos de cuando una tabla tiene un ndice clustered, es considerada una
tabla clustered y cuando una tabla tiene un ndice non-clustered, las las de datos son
almacenadas en un estatus desordenado llamado heap. Esto nos trae la denicin 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
separada de lo que se encuentra en la estructura de un ndice clustered. Esto se debe a que
un ndice non-clustered contiene los valores de la clave de ndice non-clustered y cada una
de estas claves tiene un apuntador a una la de datos que contiene el valor de la clave. Este
apuntador es denido como un localizador de la y la estructura del localizador depende
de si las pginas de datos estn almacenadas en un heap o como una tabla clustered. Esto
es una parte importante de una funcin de un ndice non-clustered como si apuntara a un
heap, el localizador de la es la clave de ndice clustered.
ETC
94
Leccin 4
Para crear una tabla non-clustered a travs de la herramienta de la interfaz grca, siga
estos pasos.
CA
AM
RI
1. Haga clic en el icono de suma (+) a la izquierda de la carpeta de las Bases de Datos con
el n de expandirlas. Deber observar instancias de muchas subcarpetas de su carpeta
principal bases de datos (Como se muestra en la Figura 4-13).
Figura 4-13
Carpeta de Bases de
Datos
IBE
RO
www.pdftron.com
ETC
2. Haga clic en el icono de suma (+) al lado de la base de datos en la que le gustara crear un
ndice (como se muestra en la Figura 4-14). Ahora deber observar muchas subcarpetas
apareciendo.
95
Figura 4-14
AM
RI
CA
Creando un ndice
www.pdftron.com
IBE
RO
Figura 4-15
ETC
96
Leccin 4
Figura 4-16
AM
RI
CA
www.pdftron.com
IBE
RO
Figura 4-17
ETC
Cuadro de propiedades
del Nuevo ndice
PAUSA Deje la interfaz del SQL Server Management Studio abierta para el siguiente ejercicio.
Figura 4-18
97
Para seleccionar un ndice clustered, podra verse similar a la Figura 4-17 y un cuadro de
propiedades de ndice non-clustered a la gura 4-18
AM
RI
CA
Cuadro de propiedades de
un ndice Clustered
www.pdftron.com
IBE
RO
En un ndice clustered, notar que cuando est buscando en estos dos ejemplos
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 mltiples columnas a la clave del ndice, como se muestra en la Figura 4-19.
Figura 4-19
ETC
Cuadro de propiedades
del ndice Non-clustered
Leccin 4
CA
Resumen de Habilidades
Normalizacin, en otras palabras, es la eliminacin de los datos redundantes para
ahorrar espacio.
La primera forma normalizada (1NF) signica que los datos estn en un formato
de entidad, lo cual bsicamente signica que las siguientes tres condiciones
deben cumplirse, la tabla no debe tener registros duplicados, tampoco debe tener
atributos de valores mltiples, las entradas en la columna o atributo son del mismo
tipo de datos.
La segunda forma normal (2NF) garantiza que cada atributo de hecho describe a
la entidad.
La tercera forma normal (3NF) verica las dependencias transitivas. Una
dependencia transitiva es similar a una dependencia parcial en que ambas se
reeren 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.
La quinta forma normal (5NF) proporciona el mtodo para el diseo de relaciones
complejas involucrando entidades mltiples (usualmente tres o ms).
Hay tres distintos tipos de restricciones disponibles dentro de SQL Server que
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 restriccin unique le permitirn cumplir la propiedad de unicidad de
las columnas, otra ms que una llave primaria en una tabla.
Tal vez el concepto ms importante del diseo de cualquier tabla de base de datos
es que tiene una clave principal, un atributo o conjunto de atributos que pueden
identicar la unicidad de la la.
Cada tabla debe tener una clave principal, sin una clave principal, no es una tabla
valida. Por denicin, una clave principal debe ser nica y debe tener un valor (el
cual no es null).
Con el n de conectar dos tablas, la clave principal es entonces replicada desde la
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 dene ms de una columna como su clave
principal.
El nico inconveniente real de utilizar la indexacin es el tiempo que toma construir
los ndices actuales y el espacio de almacenamiento requerido para los ndices.
Cuando comienza a observar la implementacin de ndices, es importante recordar
que cada tabla puede tener solo UN ndice clustered que dene cmo el SQL Server
ordenar los datos almacenados dentro de la tabla, ya que los datos solo pueden ser
ordenados de una manera.
Un ndice non-clustered contiene los valores clave del ndice non-clustered y cada
uno de estas claves tiene un apuntador a la la de los datos el cual contiene el valor
clave.
AM
RI
98
ETC
IBE
RO
www.pdftron.com
99
Verdadero o Falso
CA
Evaluacin de Conocimientos
V
V
F
F
AM
RI
V
V
www.pdftron.com
3. Una clave externa trabaja en conjunto con una clave principal o restriccin unique para
cumplir la _________entre tablas
IBE
RO
Opcin mltiple
CHECK
DEFAULT
UNIQUE
NDICE
ETC
Restriccin DEFAULT
Restriccin de CLAVE PRINCIPAL
ndice CLUSTERED
Restriccin de CLAVE EXTERNA
Leccin 1
CA
AM
RI
100
1NF
2NF
3NF
4NF
www.pdftron.com
7. Cul de las siguientes no podra ser utilizada como una clave principal?
Nmero de Seguro Social
Direccin
Nmero de empleado
Nmero de serie para un componente electrnico
IBE
RO
a.
b.
c.
d.
1
2
4
8
9. Cmo se llama cuando tiene ms de una columna que acta como clave principal?
a.
b.
c.
d.
ETC
10. Cuando dene una clave principal, cumple los criterios para _________.
a.
b.
c.
d.
1NF
2NF
3NF
4NF
101
CA
Evaluacin de Competencia
Su jefe acude a usted y le entrega en la mano una unidad ash USB con la siguiente base
de datos:
Model Specs
PC-1250
PC-1500
AM
RI
PC-1000
l desea que inicie utilizando esta base de datos. Desea saber lo que est equivocado de la
base datos y le pregunta si se debera hacer algo con ella
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
desventajas de crear un ndice clustered contra un ndice non-clustered. Qu responde?
www.pdftron.com
IBE
RO
Evaluacin de Competencia
ETC
Utilizando la interfaz grca de SSMS, cules son los pasos que utilizara para crear un
ndice clustered en la columna name (nombre) para la base de datos de AdventureWorks?
Leccin 1
CA
Como ABD, necesita incrementar el desempeo de la tabla PlanetsID. Por lo tanto, decide
crear un ndice clustered. Pero en lugar de utilizar SSMS, decide utilizar consultas para
desempear esta tarea. Por lo tanto, crea una nueva base de datos PlanetsID utilizando los
siguientes comandos dentro de SMMS:
IF EXISTS (SELECT * FROM sys.objects
WHERE object_id = OBJECT_ID(N[dbo].[PlanetsID]
AND type in (NU))
USE AdventureWorks2008
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
INSERT INTO PlanetsID VALUES (4, 23, 66)
INSERT INTO PlanetsID VALUES (1, 12, 59)
INSERT INTO PlanetsID VALUES (3, 66, 24)
SELECT * FROM PlanetID
GO
AM
RI
102
www.pdftron.com
IBE
RO
Ahora deber ver la salida en el panel de resultados (debajo de la ventana del Query
Editor), lo siguiente:
ID
Item
Value
23
66
12
59
66
24
Ahora que tiene una base de datos con informacin, qu pasos utilizara para crear un
ndice clustered basado en la columna ID?
Caso 4-4: Crear un ndice Clustered utilizando Transact-SQL
ETC
En este ejercicio, crear la base para la consulta que necesitar ser optimizada ejecutndola
sin agregar ningn ndice.
1. En el SQL Server Management Studio, expanda la base de datos de
AdventureWorks2008, luego la de tablas (si es que no est expandida) y encuentre la
tabla que recin ha creado llamada PlanetsID.
2. Haga clic derecho en la carpeta ndices debajo de la tabla PlanetsID y seleccione
Nuevo ndice desde el men desplegable. El cuadro de dialogo de las propiedades del
nuevo ndice se abrir.
103
CA
AM
RI
Cuadro de Dilogo de
Nueva Consulta
IBE
RO
www.pdftron.com
4. Seleccione el botn 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 botn
Ejecutar:
SELECT * FROM PlanetsID
Al ejecutar el comando, los resultados sern retornados de acuerdo al orden de los datos
como fueron ingresados en la estructura b-tree. La clave principal es la columna ID, por lo
tanto, los datos estn ordenados basados en la clave principal:
Item
Value
12
59
66
24
23
66
ETC
ID
Ahora puede congurar una tabla de ndice clustered basado en el conocimiento que ha
recibido a travs de la conguracin 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 identicarlo como un valor nonclustered. Recuerde, no puede crear un
non-clustered en una columna que ya sea clustered.
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
Leccin 5
CA
Trminos Clave
AM
RI
Habilidades/Conceptos
5.1
5.2
www.pdftron.com
Usuario invitado
Respaldo incremental
Respaldos de log
Inicio de sesin
Permisos
IBE
RO
Autenticacin
Respaldo
Seguridad de base de datos
Respaldo diferencial
Respaldo completo
Restaurar
Funciones del servidor
Cuenta sa
Sysadmin
Cuentas de usuario
ETC
Despus 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 estn iniciando sesin en la base de datos correcta
para los datos de la tienda as como tambin le ha pedido que trabaje en la implementacin de un
plan de respaldo para cada tienda. Se le ha solicitado que implemente una programacin tanto
de un respaldo completo y un respaldo incremental, como tambin denir el nuevo esquema de
seguridad.
106
Leccin 5
AM
RI
EN RESUMEN
CA
Aunque este captulo puede parecer un poco aburrido, es importante comprender cmo
se conceden los permisos a los usuarios a ciertas tablas o bases de datos, as tambin
comprender cuales son los distintos tipos de respaldos cuando se tiene el propsito de
programarlos.
El objetivo es comprender la necesidad de asegurar una base de datos, cules objetos pueden ser asegurados, qu
objetos deberan ser asegurados, as como tambin cuentas de usuario y las funciones.
Es comn desarrollar primero la base de datos y despus preocuparse acerca de la seguridad.
Aun cuando no tiene caso aplicar seguridad cuando la base de datos este en desarrollo, el
proyecto le beneciar al desarrollar e implementar un plan de seguridad lo ms pronto
posible.
La seguridad, al igual que cualquier otro aspecto del proyecto de la base de datos, debe ser
diseada cuidadosamente, implementada y probada. Dado que la seguridad puede afectar
la ejecucin de algunos procedimientos, debe tomarse en cuenta al momento de desarrollar
el cdigo del proyecto.
www.pdftron.com
IBE
RO
Un plan de seguridad simple con unas pocas funciones y los usuarios de TI como sysadmins
puede bastar para una organizacin pequea, pero organizaciones grandes, tal como la
militar, bancos u organizaciones internacionales, requieren un plan de seguridad ms
complejo que se disee e implemente con medidas fuertes de seguridad. El resultado nal
de trabajar con la seguridad de base de datos es garantizar los derechos y responsabilidades
otorgado a los usuarios, a travs de la creacin 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
lo que se dene como protegibles. Esto signica que los objetos pueden tener acceso a
un protegible. Los objetos son denidos como bases de datos, tablas, inicios de sesin,
usuarios y funciones.
ETC
107
CA
Un resumen del modelo de seguridad de SQL Server muestra cmo los usuarios son primero
autenticados al servidor, seguido por las bases de datos y nalmente los objetos dentro de
las bases de datos. Los crculos representan la forma en la cual se identican los usuarios.
AM
RI
Cuando se disea el modelo de seguridad para un SQL Server, hay tres mtodos diferentes por los cuales un usuario
puede ser identicado inicialmente, como se indica en esta seccin.
Los tres diferentes mtodos por los cuales un usuario puede ser identicado inicialmente
incluyen:
Inicio de sesin de usuario de Windows
Membership al grupo de usuarios de Windows
Inicio de sesin especca de SQL Server (si el servidor utiliza seguridad de
modo mixto)
; Listo para la
certicacin
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 sesin. Este puede ser ya sea inicio de
sesin de SQL Server, dominio de Windows o una eleccin de inicio de sesin de nombre
de usuario.
www.pdftron.com
Una vez que un usuario inicia sesin en el servidor con sus credenciales de usuario y es
subsecuentemente vericado, ese usuario ahora tiene derechos de administracin de nivel
servidor que han sido concedidos a travs de derechos administrativos de nivel de servidor
va funciones (roles) del servidor (esto ser discutido ms adelante en este captulo).
IBE
RO
Tome Nota
ETC
Recuerde, si agrega un usuario a la funcin sysadmin, ese usuario ahora tendr acceso total
a cada funcin, 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 funcin de usuario muy poderosa que debe asegurarse de no
concederla a un usuario equivocado ya que puede realizar una variedad de acciones de
nivel de sistema tales como conceder acceso a la base de datos. Pero, si el usuario no tiene
este tipo de acceso tan poderoso, no puede alterar las conguraciones del servidor de base
de datos o conceder accesos donde no debera. Si un usuario no tiene el mnimo acceso a la
base de datos, podra tenerlo utilizando la cuenta de usuario invitado y los cambios que
podra hacer dentro del servidor de base de datos seran limitados.
108
Leccin 5
Ciertas funciones de
base de datos pueden
tambin afectar el
acceso a objetos.
Lo cual signica,
el derecho a leer y
escribir desde la base
de datos.
; Listo para la
certicacin
Cul es el permiso
principal que da al
usuario permisos
completos a todas las
bases de datos y cul
es el permiso principal
que da al usuario los
permisos a una sola
base de datos? 5.1
Todos los usuarios son miembros de la funcin de base de datos pblica estndar, pero las
funciones denidas por el usuario son funciones personalizadas que sirven como grupos y
estas funciones pueden entonces ser concedidas con el permiso al objeto de base de datos y
los usuarios pueden ser asignados a una funcin denida por el usuario de la base de datos.
AM
RI
Tome Nota
CA
A pesar de que un usuario podra pertenecer a una funcin de base de datos ja y tener ciertos permisos de nivel
administrativo, un usuario no puede acceder a los datos sin primero concederle permiso al objeto de la base de datos.
(Por ejemplo, tablas, procedimientos almacenados, vistas, funciones).
IBE
RO
www.pdftron.com
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 garanta de que Windows Server en s es seguro.
Cmo las bases de datos de SQL Server a menudo soportan sitios web, necesita tener en
consideracin que todos los cortafuegos y otras aplicaciones del servidor de internet se
consideren cuando se elabora un plan de seguridad.
ETC
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 estn disponibles para la cuenta de servicio de SQL Server:
Cuenta de usuario local: Si encuentra que el acceso a la red no es requerido,
esta es la opcin perfecta a considerar ya que una cuenta de usuario local no
se puede utilizar fuera del entorno del servidor.
Cuenta de sistema local: Si est utilizando una instalacin de un solo
servidor podra elegir esta cuenta ya que el SQL Server puede utilizar la
cuenta de sistema local del sistema operativo para acceder a la mquina. La
nica desventaja de utilizar esta cuenta de inicio de sesin es que si falla al
proporcionar las credenciales de seguridad de red, necesarias para acceder
109
AM
RI
Autenticacin de Windows
CA
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 sesin
recomendada ya que SQL Server puede entonces utilizar la cuenta de
Windows especcamente 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.
IBE
RO
www.pdftron.com
SQL Server tambin conoce el nombre de usuario de Windows actual, de forma que la
aplicacin puede reunir informacin tanto del nivel de usuario y el nivel de grupo.
ETC
110
Leccin 5
Tabla 5-1
AM
RI
CA
Agregando un nuevo
usuario
www.pdftron.com
IBE
RO
Tabla 5-2
ETC
Eligiendo un nombre de
usuario
111
Tabla 5-3
AM
RI
CA
Buscando un nombre de
usuario existente
www.pdftron.com
IBE
RO
Tabla 5-4
ETC
Bsqueda de usuarios
existentes
112
Leccin 5
Tabla 5-5
AM
RI
CA
www.pdftron.com
IBE
RO
Tome Nota
Si est buscando crear y editar inicios de sesin de usuario en el nivel de servidor, utilice
la pgina General del inicio de sesin/Nuevo. El cuadro de dilogo Nuevo inicio de
sesin tambin se utiliza para administrar usuarios existentes.
ETC
Al usuario se le puede
conceder acceso a las
bases de datos en la
cha Acceso a base de
datos.
Remover un inicio de sesin de Windows desde SQL Server puede ser llevado a cabo a
travs del SQL Server Management Studio. Seleccione la carpeta de seguridad, al igual que
como lo hizo para crear un Nuevo inicio de sesin 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, slo remueve al usuario de SQL
Server.
113
Tabla 5-6
AM
RI
CA
Eliminando un Usuario
Existente Serverusuario
www.pdftron.com
IBE
RO
Para remover un usuario o grupo de Windows desde SQL Server, use el comando DROP
LOGIN. Similar con el mtodo utilizado en SQL Server Management Studio, el usuario
o grupo de Windows continuara existiendo en Windows, ser descontinuado para ser
reconocido por el SQL Server:
DROP LOGIN XPS\Joe
f Autenticacin de SQL
El SQL server tambin soporta el modo Mixto, el cual le permite conectarse al SQL Server utilizando la autenticacin
de Windows o Autenticacin de SQL Server. Una cuenta de inicio de sesin de SQL Server y las contraseas
relacionadas se denen en el SQL Server y no estn relacionadas con el Active Directory o las cuentas de Windows.
La cuenta sa est asociada con la autenticacin de SQL. La cuenta sa es la cuenta de
administrador integrada en el SQL asociada con la autenticacin de SQL. Puesto que es
menos segura que los inicios de sesin de Windows, se recomienda evitar el modo mixto,
sin embargo est disponible para la compatibilidad con versiones anteriores.
ETC
Hay tres tipos de roles (funciones) del servidor de base de datos: Roles jos, roles pblicos y roles denidos por el
usuario. Cada una de ellas se comenta en esta seccin.
Leccin 5
CA
Las siguientes funciones son las ms recomendadas para delegar ciertas tareas
administrativas del servidor:
Bulkadmin: Puede desempear operaciones de insertar en volumen
Dbcreator: Puede crear, alterar, eliminar y restaurar bases de datos
Diskadmin: Puede crear, alterar y eliminar archivos de disco
AM
RI
114
www.pdftron.com
IBE
RO
ETC
115
Tabla 5-7
AM
RI
CA
Cuadro de dilogo
Propiedades de Inicio de
Sesin
www.pdftron.com
IBE
RO
Por ejemplo, el siguiente cdigo agrega el inicio de sesin del usuario XPS\Lauren al
rol del sysadmin:
Rol pblico
El rol pblico es un rol jo, pero puede tener permisos de objeto como un rol estndar.
Cada usuario es automticamente miembro del rol pblico y no puede ser removido, de
manera que el rol pblico sirve como lnea base o nivel de permiso mnimo.
ETC
Puesto que no puede modicar los permisos asignados a un rol de servidor jo, puede
conceder permisos de servidor individuales a un usuario que no est denido por un rol de
servidor jo. Esto lo utilizan tpicamente los usuarios que necesitan desempear roles de
base de datos especcas y a los cuales no desea concederles un rol que permitira al usuario
hacer ms de lo que necesita hacer.
116
Leccin 5
CA
A los usuarios se les debe conceder explcitamente el acceso a cualquier base de datos de usuario. Debido a que esta
es una relacin de muchos-a-muchos entre inicios de sesin y la base de datos, puede administrar el acceso ya sea del
lado del inicio de sesin o del lado de la base de datos.
AM
RI
Cuando un inicio de sesin es concedido con el acceso a la base de datos, al inicio de sesin
tambin le es asignado un nombre de usuario de la base de datos, lo cual puede ser igual
al nombre del inicio de sesin o algn otro nombre a travs del cual se reconozca el inicio
de sesin en la base de datos.
Para conceder acceso a la base de datos desde el lado del inicio de sesin utilizando el
Explorador de Objetos, utilice la pgina de asignacin de usuarios en el formulario
Propiedades de inicio de sesin (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 despus seleccione Seguridad y nalmente Nodo
de usuarios para abrir el formulario de nuevo usuario de la base de datos. Introduzca el
inicio de sesin a agregar en el campo de nombre de inicio de sesin. Para buscar un inicio
de sesin, utilice el botn 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 sesin para conceder un acceso al
inicio de sesin a cualquier base de datos y para asignar funciones de base de datos.
IBE
RO
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
usuario se le conceder el acceso. El primer parmetro es el inicio de sesin 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 dilogo de inicio de sesin puede ser utilizado para agregar un nuevo
usuario a la base de datos o para administrar al usuario actual.
USE Family
DROP USER LRN
ETC
Cualquier usuario que desee acceder a la base de datos pero que no ha sido declarado como
usuario dentro de esta, ser automticamente concedido con los privilegios de usuario
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
especcamente ya sea a travs de la interfaz del SQL Server Management Studio o a travs
de una sentencia de Transact-SQL, como se muestra a continuacin:
EXEC sp_adduser Guest
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.
117
Seguridad de Objeto
CA
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
usuario o a una funcin estndar y el usuario asignado a la funcin.
Los usuarios pueden ser asignados a mltiples funciones, as que pueden existir mltiples
rutas de seguridad desde un usuario a un objeto.
AM
RI
SQL Server incluye algunos roles de base de datos estndar o jos. Como los roles jos de servidor, estos principalmente
organizan tareas administrativas. Un usuario puede pertenecer a varios roles.
Los roles de base de datos jos incluyen lo siguiente:
IBE
RO
www.pdftron.com
ETC
Asignar roles de base de datos jas con SQL Server Management Studio
Los roles de nivel de base de datos jas 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 despus.
Agregar el usuario al rol en el cuadro de dilogo 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
Leccin 5
CA
Desde cdigo, puede agregar un usuario a un rol de base de datos jo con el procedimiento
almacenado del sistema sp_addrole.
El siguiente ejemplo crea el rol de base de datos auditors que pertenece al rol de base de
datos jo db_securityadmin:
AM
RI
USE AdventureWorks;
CREATE ROLE auditors AUTHORIZATION db_securityadmin;
GO
Roles de aplicacin
www.pdftron.com
IBE
RO
f Permisos de objetos
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).
Algunos tipos de permisos son:
ETC
Select: El derecho para seleccionar datos. El permiso Select puede ser aplicado a
columnas especcas.
Insert: El derecho a insertar datos
Update: El derecho para modicar los datos existentes. Los derechos Update para
la cual la clusula WHERE es utilizada requiere derechos de Select tambin. El
permiso Update puede ser establecido en columnas especcas.
Delete: El derecho para eliminar los datos existentes
DRI (Referencias): El derecho para crear claves externas con DRI
Execute: El derecho para ejecutar procedimientos almacenados o funciones
denidas por el usuario
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 podra tener, ya sea asignando
directamente al usuario o a travs de roles.
Entonces el SQL Server otorga el MAXIMUM de lo que ha sido concedido. DENY es una
excepcin. 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
119
CA
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 cdigo, es importante comprender estos tres comandos.
La concesin de permisos de objeto interacta con el servidor y los roles de la base de datos.
A continuacin se tiene la jerarqua global de los roles y permisos, con 1 sobre escribiendo
a 2, etc:
AM
RI
1. El rol del servidor sysadmin. Un inicio de sesin 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
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 posesin 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 prohbe la seguridad de modo mixto, entonces la forma ms fcil de vericar
la seguridad es dando clic derecho en el Management Studio o QueryAnalyzery utilizar
el comando RUN AS para ejecutarse como un usuario diferente, pero esto implica crear
usuarios falsos en el dominio de Windows.
En general, en un dominio de Windows de produccin, la mayora de los auditores
marcaran 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 produccin, esta
recomendacin no funcionara donde los auditores estn operando.
IBE
RO
www.pdftron.com
Conceder permisos de objeto con sentencias de Transact-SQL
ETC
Los permisos pueden ser ALL, SELECT, INSERT, DELETE, REFERENCES, UPDATE
o EXECUTE. El rol o nombre de usuario se reere al nombre de usuario de la base
de datos, cualquier funcin pblica denida por el usuario o la funcin pblica. Por
ejemplo, el siguiente cdigo concede permiso de Select a Joe para la tabla Emails:
GRANT Select ON Emails TO Joe
El siguiente ejemplo concede todos los permisos a la funcin pblica para la tabla
Contacts:
GRANT All ON Contacts TO dbcreator
120
Leccin 5
CA
f Administrar roles
AM
RI
Los Roles pueden ser creados, administrados y removidos utilizando SSMS o ejecutando sentencias de Transact-SQL.
Por supuesto, slo debera crear roles y asignar usuarios a esos roles cuando sea necesario.
Crear roles estndar con cdigo 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 vaca. Por defecto, los roles sern del usuario dbo. Sin embargo,
puede asignar el rol de propietario agregando un segundo parmetro. El siguiente cdigo
crea la funcin de administracin:
www.pdftron.com
IBE
RO
Lo contrario a crear un rol es removerlo. Un rol podra no ser eliminado si algn usuario
est asignado actualmente a l. El procedimiento almacenado del sistema sp_droprole
remover el rol de la base de datos:
DROP ROLE Manager
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
cdigo asigna a Joe el rol Manager:
EXEC sp_addrolemember Manager , Joe
No es de extraar que el procedimiento almacenado del sistema sp_droprolemember
remueva un usuario de un rol asignado. Este cdigo libera a Joe de la tarea de ser
manager:
ETC
121
CA
AM
RI
3. Crear el rol admin. Agregue el rol admin como un usuario a la funcin de administracin.
Debido a que involucra a usuarios, roles y objetos, los permisos de objeto pueden establecerse desde numerosas
ubicaciones dentro del Management Studio. Es casi un laberinto.
www.pdftron.com
IBE
RO
PREPRESE. Desde la lista de objetos, siga estos pasos para modicar los permisos a un
objeto:
1. Desde el nodo de un objeto (tablas, vistas, procedimientos almacenados o funciones
denidas por el usuario).
3. Haga clic en la pgina de Permisos para abrir el cuadro de dilogo Propiedades de Objeto.
ETC
Si el usuario o rol tiene permiso para la tabla, el botn de Columnas abre el cuadro de
dilogo Permisos de Columna. Seleccione el usuario y haga clic en el botn para establecer
los permisos de columnas para ese usuario. Slo los permisos de seleccionar y actualizar
pueden ser establecidos en el nivel de columna, ya que los de insertar y eliminar afectan
toda la la.
122
Leccin 5
Tabla 5-8
AM
RI
CA
Cuadro de dilogo
Propiedades de inicio de
sesin Server usuario
www.pdftron.com
IBE
RO
Dar clic en el botn de Propiedades abrir las propiedades del rol seleccionado. En el
cuadro de dilogo de las propiedades de Usuario de la Base de Datos, la pgina de los
Elementos que pueden protegerse se utiliza para asignar o vericar los permisos de
objetos. Este cuadro de dilogo es similar a la cha Permisos del cuadro de dilogo
Propiedades de Objeto de la Base de Datos.
ETC
El botn de Permisos abre el cuadro de dilogo de permisos para el rol. Este formulario
opera como el otro formato de permisos excepto que est organizado desde la perspectiva
del rol.
123
f Cadenas de propiedad
Por ejemplo:
CA
En bases de datos de SQL Server, los usuarios pueden acceder con frecuencia a los datos a travs de uno o varios
objetos. Las cadenas de propiedad aplican a las vistas, procedimientos almacenados y a funciones denidas por el
usuario.
AM
RI
www.pdftron.com
Tome Nota
IBE
RO
Es importante notar
que si se utiliza SQL
dinmico, entonces
la clusula EXECUTE
AS para CREATE
PROCEDURE fue
agregado a SQL
Server 2005. Puesto
que se ejecuta en un
lote separado, rompe la
cadena de propiedad.
Las cadenas de propiedad son de utilidad para desarrollar una seguridad estricta en la cual
los usuarios ejecuten procedimientos almacenados pero no se les otorgan permisos directos
a las tablas.
Si la cadena de propiedad se rompe, lo cual signicara que hay un propietario diferente
entre un objeto y el siguiente objeto inferior, entonces SQL Server revisa el permiso del
usuario para cada objeto que se acceda.
ETC
124
Leccin 5
Tabla 5-1
Rol
estndar
Funcin
jerrquica
IT
Funcin de
servidor
Sysadmin
Clerk
Admin
Rol jo de
base de
datos
Customer
Tablas de grupo
de archivos
primarios
Tablas de
grupo de
archivo
estticos
Otros permisos
AM
RI
Conguracin de
permisos para PBXKites
CA
Para algunos ejemplos de permisos utilizando la base de datos OBXKites, la tabla 5-1 enlista la conguracin de los
permisos de las funciones de base de datos estndar. La tabla 5-2 enlista algunos de los usuarios y sus roles.
Ejecuta
permisos
para varios
procedimientos
almacenados
que leen y
actualizan
tablas diarias.
Db_owner
www.pdftron.com
IBE
RO
Tabla 5-2
Permisos
Select
Usuario
Sammy
Joe
LRN
Clerk Windows group (Betty, Tom, Martha, and
Mary)
Utilizando este modelo de seguridad, los siguientes usuarios pueden realizar las
siguientes tareas:
Betty, como miembro de la funcin Clerk, puede ejecutar la aplicacin 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.
Joe puede ejecutar consultas select como miembro del rol public.
Como miembro del rol admin, Sammy puede ejecutar todos los procedimientos
almacenados. l tambin puede modicar 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 modicar
datos en cualquier tabla.
Slo LRN puede restaurar desde los respaldos.
ETC
125
CA
EN RESUMEN
El objetivo es comprender varios tipos de respaldos como el complete y el incremental, la importancia de los respaldos
y cmo restaurar una base de datos.
AM
RI
Este tema explica cmo crear un respaldo y restaurar un respaldo de base de datos completo.
El propsito de un respaldo de una base de datos es en caso de que tenga que restaurarla
si los datos se pierden en alguna transaccin 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 restauracin son
prioritarios.
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
Respaldo completo: Un respaldo completo contiene todos los datos en una base de
datos especca o conjunto o grupo de archivos y es lo sucientemente grande para
recuperar los datos.
Respaldo diferencial: Un respaldo diferencial se basa en el ltimo respaldo
completo de datos. A esto se le conoce como la base del diferencial. Un respaldo
diferencial contiene slo los datos que han cambiado a partir de la base diferencial.
Generalmente, los respaldos diferenciales que se toman a la brevedad despus del
respaldo base son ms pequeos y rpidos 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 prdida de datos.
Generalmente, una base diferencial se utiliza por varios respaldos diferenciales
sucesivos. A la hora de restaurar, el respaldo completo se restaura primero, seguido
del respaldo diferencial ms reciente.
Respaldo incremental: Un respaldo incremental se basa en el ltimo respaldo de
datos. Un respaldo incremental contiene slo los datos que han cambiado desde el
ltimo respaldo completo o incremental. Los respaldos incrementales son los ms
pequeos y rpidos de crear en comparacin con el respaldo completo y diferencial.
Sin embargo, al momento de la restauracin, primero se restaura el respaldo
completo, seguido de cada respaldo incremental que siga al respaldo completo.
; Listo para la
certicacin
IBE
RO
Cul es la diferencia
entre un respaldo
completo y uno
incremental? 5.2
ETC
A travs del tiempo, a medida que se actualiza una base de datos, la cantidad de datos
que se incluyen en los respaldos diferenciales se incrementa. Esto hace que sea ms 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.
Despus del primer respaldo de datos, debajo del modelo de recuperacin completo
o modelo de recuperacin bulk-logged, se requieren de respaldos log de transaccin
(respaldos log). Cada respaldo log cubre la parte del log de transaccin que estaba activo
126
Leccin 5
cuando se cre el respaldo y el respaldo log incluye todos los registros log que no estaban
respaldados en el respaldo log anterior.
Tipos de respaldos de
bases de datos
Tipo de respaldo
Respaldos de bases
de datos
Respaldos
diferenciales de
bases de datos
Apellido
Un respaldo completa de toda la base de datos. Los respaldos de
la base de datos representan a toda la base de datos cuando se
termina el respaldo.
Un respaldo de todos los archivos en la base de datos. Este
respaldo contiene slo los datos que se modicaron desde el
respaldo ms reciente de cada archivo.
AM
RI
Tabla 5-3
CA
Los respaldos de bases de datos son fciles de utilizar y recomendables siempre que
el tamao 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.
Respaldos parciales
Los respaldos parciales y parciales diferenciales se disearon para proporcionar una mayor
exibilidad para realizar respaldos de bases de datos que contienen grupos de archivos de
slo lectura bajo el mismo modelo simple de recuperacin. Sin embargo, estos respaldos se
encuentran soportados por todos los modelos de recuperacin. Consulte la tabla 5-4 para
ver los tipos de respaldos parciales soportados por SQL Server 2008.
Tabla 5-4
Tipos de respaldos
parciales
Tipo de respaldos
Respaldo parcial
Descripcin
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 slo lectura. Un respaldo parcial
de bases de datos de solo lectura contienen solo el grupo de
archivos primarios.
Un respaldo que contiene slo los datos que se modicaron
desde el respaldo parcial ms reciente del mismo conjunto de
grupos de archivos.
IBE
RO
www.pdftron.com
Respaldo parcial
diferencial
Respaldos de archivos
ETC
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 recuperacin
puesto que le permite restaurar slo los archivos daados 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, slo el archivo del disco daado se
debe restaurar. Sin embargo tanto, la planeacin y restauracin de respaldos de archivos
puede ser algo complejo; por lo tanto, los respaldos de archivo se deben utilizar slo
cuando estos aportaran claramente valor a su plan de restauracin. Como se muestra en la
tabla 5-5 para los tipos de respaldos de archivos soportados por SQL Server.
Tabla 5-5
Tipos de respaldos de
archivos
Tipo de respaldos
Respaldo de archivo
127
Descripcin
Un respaldo completo de todos los datos en uno o ms archivos
o grupos de archivos.
AM
RI
CA
Respaldos
de archivos
diferenciales
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
dispositivo o sobre escribir respaldos existentes.
www.pdftron.com
Calendarizar respaldos
IBE
RO
Realizar una operacin de respaldo tiene un efecto mnimo en las transacciones que se
estn ejecutando; por lo tanto, las operaciones de respaldo pueden ejecutarse durante
operaciones regulares. Durante una operacin 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 ejecutndose durante el respaldo
no se retrasan. Por lo tanto, es posible llevar a cabo un respaldo en SQL Server con un
efecto mnimo sobre la carga de trabajo.
SQL Server soporta una variedad de escenarios de restauracin que se encuentran incluidas en esta seccin
ETC
Leccin 5
CA
Usar el SSMS
Para insertar datos a travs de una herramienta de interfaz grca, siga los siguientes pasos.
AM
RI
128
1. Despus de conectarse con la instancia apropiada del Motor de Base de Datos del
Microsoft SQL Server, en el Explorador de Objetos, haga clic en el nombre del servidor y
expanda el rbol del servidor.
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.
IBE
RO
4. Haga clic en Base de Datos, para abrir el cuadro de dilogo Restaurar Base de Datos.
7. Para especicar la fuente y ubicacin de los respaldos a restaurar, haga clic en una de las
siguientes opciones:
ETC
CA
129
11. De forma opcional, puede restaurar la base de datos a una nueva ubicacin al especicar
un destino de restauracin nueva para cada archivo en la cuadrcula Restaurar los
archivos de base de datos como.
AM
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)
(slo seleccione esta opcin si se encuentra restaurando todos los respaldos necesarios
en este punto).
; Listo para la
certicacin
Comprender los
respaldos de base de
datos y restauracin
5.2
www.pdftron.com
Uso del comando RESTORE
ETC
IBE
RO
130
Leccin 5
CA
Resumen de Habilidades
AM
RI
El resultado nal de trabajar con la seguridad de una base de datos es asegurar los
derechos y responsabilidades asignados a los usuarios, a travs de la creacin 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.
Un inicio de sesin es el proceso a travs del cual el acceso a un sistema computacional
se controla con la identicacin de las credenciales del usuario. El mtodo ms
comn de inicio de sesin es a travs de un nombre de usuario y una contrasea.
Una cuenta de usuario es una representacin lgica de una persona en un sistema
electrnico.
Aun cuando un usuario puede pertenecer a un rol de base de datos ja 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).
Cada permiso de objeto se asigna ya sea al otorgar, revocar o denegar permisos de
inicio de sesin de usuario.
La autenticacin es el acto de establecer o conrmar un usuario o identidad de
sistema.
El modo de autenticacin de Windows es superior al modo mixto ya que los
usuarios no necesitan aprender otra contrasea y debido a que ayuda en el diseo
de seguridad de la red.
En sociedad con la autenticacin de SQL se encuentra la cuenta sa. La cuenta sa es
la cuenta de administrador prediseada de SQL asociada con la autenticacin de
SQL.
SQL Server tiene roles de servidor predeterminadas jas, estos roles otorgan
permisos para llevar a cabo ciertas tareas administrativas relacionadas con el
servidor.
Sysadmin puede llevar a cabo cualquier actividad en la instalacin de SQL Server,
a pesar de cualquier otro conjunto de permisos. El rol sysadmin reemplaza los
permisos en un objeto.
El rol public es una rol ja, pero puede tener permisos de objeto como un rol
estndar. Cada usuario es automticamente miembro del rol public y no puede ser
removido, as que el rol public sirve como base o como nivel de permiso mnimo.
Los usuarios deben tener acceso explicito para acceder a cualquier base de datos.
db_owner es un rol especial que tiene todos los permios en la base de datos.
Un rol de aplicacin es un rol especco de base de datos que pretende permitir que
una aplicacin tenga acceso sin importar el usuario.
El propsito de un respaldo de base de datos es restaurar los datos si existe una
perdida durante una rutina cotidiana.
Un usuario puede borrar accidentalmente una tabla o un administrador de base
de datos pueden necesitar restaurar varias tablas en servidores diferentes para
combinarlas en una sola base de datos.
El respaldo completo contiene todos los datos en una base de datos especca o
conjunto de grupos de archivos o archivos y tambin es lo sucientemente grande
para permitir la recuperacin de los datos.
ETC
IBE
RO
www.pdftron.com
131
Evaluacin de Conocimientos
AM
RI
Verdadero o Falso
CA
www.pdftron.com
Completar los espacios en blanco
IBE
RO
1. SQL Server utiliza la _________ de Windows para vericar que un usuario es vlido antes
de permitirle el acceso.
2. Un respaldo diferencial contiene slo los datos que han _______ desde la base
diferencial.
3. Todos los usuarios son miembros automticos del rol de base de datos _________.
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.
Opcin mltiple
ETC
GRANT
REVOKE
PERMIT
DENY
Leccin 1
a.
b.
c.
d.
Server
Database (Base de datos)
Table (Tabla)
Task (Tarea)
CA
DROP
SELECT
INSERT
UPDATE
AM
RI
132
5. Cul de las siguientes opciones no es un tipo de respaldo soportado por SQL Server?
www.pdftron.com
Completo
Diferencial
Archivo
Dispositivo
IBE
RO
a.
b.
c.
d.
6. Cul es la cuenta SQL prediseada utilizada en modo mixto que tiene acceso total al
SQL Server?
a.
b.
c.
d.
Fulladmin
Sa
Admin
Administrator
Diskadmin
SecurityAdmin
Sysadmin
Db_owner
ETC
Db_owner
Db_accessadmin
Db_securityadmin
Db_ddladmin
133
a.
b.
c.
d.
CA
AM
RI
a.
b.
c.
d.
Evaluacin de destreza
Su jefe tom un curso de SQL en la Universidad hace algunos aos. Le pregunta si puede
iniciar sesin 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
datos. Qu es lo que le dir?
www.pdftron.com
Escenario 5-2: Uso de respaldos completos e incrementales
IBE
RO
Tiene 6 bases de datos grandes, cada una de al menos 2 GB. Necesita asegurarse de respaldar
las bases de datos todas las noches en caso de desastre y necesitar recuperarse a travs de
un respaldo. Puesto que a cada base de datos le toma 2 horas llevar a cabo un respaldo y
slo cuenta con 6 horas para hacer respaldos, Cul solucin de respaldos recomendara?
Evaluacin de dominio
ETC
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
Apndice A
CA
AM
RI
Nmero de la
Habilidad
Nmero de la Leccin
1.1
1.2
1.3
1.4
2.1
2.2
Crear vistas.
2.3
2.4
Seleccionar datos.
3.1
Insertar datos.
3.2
Actualizar datos.
3.3
Eliminar datos.
3.4
Comprender la Normalizacin..
4.1
4.2
4.3
5.1
5.2
www.pdftron.com
ETC
IBE
RO
CA
AM
RI
ETC
IBE
RO
www.pdftron.com
www.pdftron.com
www.pdftron.com