Sunteți pe pagina 1din 160

www.pdftron.

com

www.pdftron.com

Microsoft Ofcial Academic Course

Fundamentos de bases de datos


EXAMEN 98-364

ETC

IBE RO

www.pdftron.com

AM RI

CA

Crditos

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. 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.

ETC

IBE RO

www.pdftron.com
Este libro fue escrito en Garamond por Aptara, Inc. e impreso y encuadernado por Bind Rite Graphics. La portada fue impresa por Phoenix Color.

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

AM RI

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

CA

Prlogo del Editor

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.

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. 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

ETC

Visite la pgina www.wiley.com/college/microsoft o llame al nmero gratuito de MOAC: 1+ (888) 764-7001 (nicamente Estados Unidos y Canad)

IBE RO

www.pdftron.com
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.

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.

CA

Prefacio

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.

ETC

IBE RO

www.pdftron.com
El Programa de Microsoft Ofcial Academic Course

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.

CA

Prefacio

ETC

IBE RO

www.pdftron.com

AM RI

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.

CA

Tour ilustrado del libro

Caractersticas pedaggicas

ETC

IBE RO

www.pdftron.com
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. Ilustraciones: Las imgenes en pantalla proporcionan una retroalimentacin visual a medida que los alumnos trabajan en los ejercicios. Las imgenes refuerzan los conceptos clave, proporcionan pistas visuales sobre los pasos y le permite a los alumnos revisar su progreso. Trminos clave: El vocabulario tcnico importante se encuentra en una lista al inicio de la leccin. Cuando estos trminos se utilizan posteriormente en la leccin, aparecen con formato en itlica y negrita y se les dene. El Glosario contiene todos los trminos clave as como sus deniciones. 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.

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:

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.

CA

Tour ilustrado del libro

VII

Leccin 1

Tabla 1-1
Diseo de base de datos jerrquica mostrando tablas padre e hijo

Tabla Padre

Alertas de objetivo de certicacin MTA

IBE RO
Comprender los conceptos bsicos de bases de datos 21

www.pdftron.com
El Lenguaje de Denicin de Datos (DDL) es un subconjunto del lenguaje Transact-SQL, trata con la creacin de objetos de la base de datos como tablas, restricciones y procedimientos almacenados.

Evaluacin de Conocimientos

Llene el Espacio en Blanco

Complete las siguientes oraciones escribiendo la palabra o palabras correctas en los espacios en blanco proporcionados. 1. Los objetos de bases de datos estn divididos en dos categoras: ____________ y ____________.

2. Tablas creadas utilizando la sentencia ____________ son utilizadas para almacenar informacin. 3. Las restricciones pueden denir relaciones de entidad entre tablas en una forma continua. Tambin son conocidos como restricciones ____________.

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.

6. ____________ son compilados. Las sentencias Transact-SQL tienen la intencin de desempear acciones particulares y puede aceptar parmetros y retornar valores, pero ____________ siempre retorna un valor y nunca actualizan datos. 7. Las sentencias DDL centrales son ____________ , ____________ y ____________.

ETC
Eleccin Mltiple a. b. c. d. CREATE MERGE ALTER DROP a. b. c. d. DEFAULT CHECK RANGE UNIQUE

8. Las sentencias DML centrales son ____________ , ____________ , ____________ y ____________. 9. Las vistas del sistema pertenecen a ____________. 10. La restriccin de CLAVE EXTERNA es un identicador de ____________.

Encierra en un crculo la letra que corresponda a la mejor respuesta. 1. Cul de las siguientes no es una sentencia DDL?

2. Cul de las siguientes no es una restriccin de columna?

AM RI
f Comprender las bases de datos relacionales
; Listo para la certicacin Cmo son diferentes las bases de datos relacionales a las bases de datos planas y bases de datos jerrquicas? 1.2

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. 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.

Preguntas de evaluacin de conocimiento

CA
Tabla Hijo
NumSerial 30032334 4323452 342342 234322 Tipo Computadora Laptop Monitor Impresora NumEmp 100 101 100 100

NumEmp 100 101 102 103

Nombre Paul Jane Jim Ed

Apellido Baker Smith Tate Rosen

NumDept 101 101 101 102

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.

VIII

Comprender los conceptos bsicos de bases de datos

23

Evaluacin de Competencias

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? Ejercicio 1-3: Utilizando la Ayuda de SQL Server 2008

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

Su compaa, AdventureWorks, decidi expandirse a un viaje interestelar. Por lo tanto, lo han contratado como un Nuevo administrador de base de datos para crear una nueva base de datos llamada Planets en el Microsoft SQL server utilizando la interfaz grca del SQL Server Management Service. Por lo tanto, Qu pasos utilizara para crear una base de datos llamada Planets?

Respuestas para las peguntas de la Evaluacin del Conocimiento


Llene el Espacio en Blanco 1. Almacenamiento, programacin 2. Create 3. Clave externa 4. Select 5. Datos, DML 6. Procedimientos Almacenados, Funciones 7. Create, alter, drop

ETC

IBE RO

www.pdftron.com

AM RI

CA

Ejercicio 1-1: Buscando una Base de Datos Relacional

Estudio de casos

Convenciones y caractersticas que se utilizan en el libro

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

EN RESUMEN

; Listo para la Certicacin

ETC

IBE RO
X-Ref Una impresora compartida la pueden utilizar diversas personas en una red.

www.pdftron.com
OTRA MANERA OTRA MANERA proporciona un procedimiento alterno para realizar una tarea en particular. Estas notas indican en donde se encuentra la informacin que se explic en alguna parte del libro de texto o describen caractersticas interesantes del Servidor SQL que no se mencionan directamente en el tema actual o en el ejercicio. Los trminos clave aparecen en formato itlica y negrita.

Tome Nota

AM RI
Significado

Esta caracterstica proporciona un resumen breve del material que se cubrir en las siguientes secciones. Esta caracterstica muestra el punto especco en el texto en donde se cubri un objetivo de la certicacin. Da la oportunidad de vericar el entendimiento de dicho objetivo MCTS en particular y, de ser necesario, da un repaso a la seccin de la leccin en donde se cubri el objetivo. Los recursos del lector aparecen en cuadros sombreados que se encuentran en el texto. TOME NOTA proporciona pistas tiles relacionadas a tareas o temas en particular.

CA

Programa de soporte para el docente

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.

ETC

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. 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.

AM RI

Los programas de Microsoft Ofcial Academic Course vienen acompaados de un conjunto de recursos multimedia que incorporan los visuales del libro de texto para conformar un paquete pedaggico cohesivo. Estos recursos proporcionan todos los materiales que el docente necesita para implementarlos en el curso. Los recursos que se encuentran disponibles en lnea para descargar son los siguientes:

CA

Programa de soporte para el docente

XI

ASOCIACIN ACADMICA MSDNMEMBRESA GRATUITA POR 3 AOS DISPONIBLE PARA USUARIOS CALIFICADOS. 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.

ETC

IBE RO

www.pdftron.com
msdn.microsoft.com/academic/ Nota: Se puede descargar Microsoft Visual Studio 2008 de MSDN AA para utilizarlo con los alumnos en este curso.

Para obtener ms informacin sobre el programa de la Asociacin Acadmica MSDN, visite el sitio:

Direcciones web y nmeros telefnicos importantes


Para localizar al Representante de Educacin Superior de Wiley en su rea, visite la siguiente direccin web y haga clic en el vnculo Whos My Rep? que se encuentra en la parte superior de la pgina www.wiley.com/college o llame al nmero gratuito de MOAC: 1 + (888) 764-7001 (nicamente Estados Unidos y Canad). Para aprender ms sobre cmo convertirse en un Profesional Certicado de Microsoft y revisar la disponibilidad, visite el sitio www.microsoft.com/learning/mcp.

AM RI

CA

Programa de soporte para el alumno

Sitio web de la compaa del libro (www.wiley.com/college/microsoft)

Ediciones digitales Wiley

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

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.

CA

Certicacin Microsoft Technology Associate (MTA)

Preparando a la fuerza laboral para la tecnologa del maana.

ETC

IBE RO

www.pdftron.com
Perl del candidato a MTA.
El programa de certicacin MTA se dise especcamente para alumnos de secundaria y preparatoria que estn interesados en explorar las opciones acadmicas y profesionales en un campo de la tecnologa. Ofrece a los alumnos una certicacin en las tecnologas de la informacin bsica y en desarrollo. A medida que se implementa el nuevo punto de entrada recomendado para las certicaciones en tecnologa de Microsoft, MTA se encuentra diseado especialmente para los alumnos que son nuevos en IT y en desarrollo de software. Se encuentra disponible de manera exclusiva en ambientes educativos y se integra fcilmente al plan de estudios de las clases de computacin existentes.

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.

MTA faculta a los docentes y motiva a los alumnos.


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).

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.

CA

XIV

Presentacin de exmenes MTA: La Licencia Campus de MTA.


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.

ETC

IBE RO

www.pdftron.com
Examen de prueba sobre Fundamentos de Bases de Datos: Examen MTA 98-364
Al comprar este libro de texto MOAC MTA, los alumnos pueden realizar una copia del examen de prueba GMetrix para el Examen MTA 98-364. Los 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.

AM RI

CA

Revisores de los Fundamentos Tecnolgicos de MOAC MTA

ETC

IBE RO

www.pdftron.com

Yuke Wang, Universidad de Texas en Dallas. Palaniappan Vairavan, Bellevue College Harold Buz Lamson, Instituto Tcnico ITT Colin Archibald, Valencia Community College Catherine Bradeld, Universidad en lnea DeVry Robert Nelson, Blinn College Kalpana Viswanathan, Bellevue College Bob Becker, Vatterott College Carol Torkko, Bellevue College Bharat Kandel, Tecnolgico Missouri Linda Cohen, Forsyth Technical Community College Candice Lambert, Centros Tecnolgicos Metro Susan Mahon, Collin College Mark Aruda, Hillsborough Community College Claude Russo, Brevard Community College David Koppy, Baker College Sharon Moran, Hillsborough Community College Keith Hoell, Briarcliffe College and Queens College-CUNY Mark Hufnagel, Distrito Escolar del Condado de Lee Rachelle Hall, Glendale Community College Scott Elliott, Christie Digital Systems, Inc. Gralan Gilliam, Kaplan Steve Strom, Butler Community College John Crowley, Bucks County Community College Margaret Leary, Northern Virginia Community College Sue Miner, Lehigh Carbon Community College Gary Rollinson, Cabrillo College Al Kelly, Universidad de Tecnologa Avanzada Katherine James, Seneca College

AM RI

Agradecemos a todos los revisores que estudiaron detalladamente el documento y proporcionaron retroalimentacin valiosa en el servicio de calidad de los materiales educativos:

CA

ndice

1. Comprender los conceptos bsicos de bases de datos 2. Crear objetos de bases de datos 3. Manipulacin de datos 53 25

4. Comprender el Almacenamiento de Datos 5. Administracin de una Base de Datos

ETC

IBE RO

www.pdftron.com

AM RI
75 105

CA
1

Contenido

Comprender los Conceptos de Bases de Datos


Comprender las bases de datos jerrquicas

Comprender las bases de datos de tipo plano Comprender las bases de datos relacionales

AM RI
2 Denicin de tipos de datos 26
Tipos de datos ms utilizados Usar tipos de datos predenidos 26 27 3 3 Uso de tipos de datos numricos exactos 4 Uso de tipos de datos de fecha y hora 30 31 Comprender conversiones implcitas Tipos de datos ms utilizados Uso de cadenas de carcter regulares 8

Leccin 1 Comprender los conceptos bsicos de 1 bases de datos

Leccin 2 Crear objetos de bases de datos

Uso de tipos de datos numricos aproximados 30

Comprender los fundamentos de base de datos 5

Comparar hojas de clculo con tablas de bases de 5 datos Comprender los valores calculados 6 Introducir elementos de lenguaje

Comprender conceptos de bases de datos relacionales 7 Utilizar la interfaz del SQL Server Management Studio (SSMS) 10

Comprender las cadenas de caracteres Unicode 34

IBE RO
15 16 16 16 17 18

www.pdftron.com
Comprender el lenguaje de manipulacin de datos (DML) 14 Comprender el lenguaje de denicin de datos 14 (DDL)
Utilizar sentencias DDL USE CREATE GO ALTER DROP

Creacin y uso de tablas 34 Creacin de vistas 38 Creacin de procedimientos almacenados


Comprender las inyecciones SQL 44

Usar el procedimiento seleccionado Select Usar el procedimiento almacenado Insert Usar el procedimiento almacenado Update Usar el procedimiento almacenado Delete Prcticas recomendadas 46

TRUNCATE y DELETE 18 Tablas del Sistema 19

Resumen de Habilidades 47 Evaluacin de Conocimientos 48 Evaluacin de aptitud 50 Evaluacin de destreza 51

ETC

Resumen de Habilidades 20 Evaluacin de Conocimientos Evaluacin de Competencias

21 23

Leccin 3 Manipulacin de datos


Combinacin de condiciones Uso de la clusula BETWEEN Uso de la clusula NOT 57 Uso de la clusula UNION Uso de la clusula JOIN 58 59

Uso de consultas para seleccionar datos


56 57

Uso de las clusulas EXCEPT e INTERSECT 58

Uso de consultas para insertar datos

CA
25
29 32 33

42

46

45

45

45

53
54

63

XVIII

Insertar datos

63

Evaluacin de Competencia 101 66


66 67 68

Actualizar datos y bases de datos


Uso de la sentencia UPDATE

Uso de la sentencia DELETE

Truncar una tabla con TRUNCATE TABLE Eliminar una tabla con DROP TABLE 68 Uso de la integridad referencial 68

Seguridad de bases de datos

Seguridad de nivel de servidor Seguridad de Windows

Leccin 4 Comprender el Almacenamiento de Datos 75


Normalizar una Base de Datos
Qu es la Normalizacin? 76

76

Tercera Forma Normal (3NF) Eliminar Columnas no Dependientes a Claves 78

Cmo Normalizar una base de datos a la Tercera Forma Normal 79 Cuarta Forma Normal (4NF) Aislar relaciones mltiplesi ndependientes 80

IBE RO
81 81 86 90 92 93 93

www.pdftron.com
Primer Forma Normal (1NF) Eliminar Grupos 77 Repetidos Cuentas de inicio de sesin de Invitado Seguridad de Objeto 117 117 116 Segunda Forma Normal (2NF) Eliminar los Datos Redundantes 78 Roles de nivel de base de datos Asignar roles de base de datos jas con SQL Server Management Studio 117 Asignar roles de base de datos jas con Transact-SQL 118 Roles de aplicacin 118 118 Permisos de objetos Quinta Forma Normal (5NF) Aislar las relaciones mltiples relacionadas semnticamente 80 Benecios de una base de datos digital Tablas, las y columnas Conceder permisos de objeto con sentencias de Transact-SQL 119 120 Administrando roles con sentencias de Transact-SQL 120 Estructura jerrquica de roles 120 121 122 Administrar roles

Comprender las claves principales, externas y 82 compuestas


Claves principales Claves externas 86

ETC
Claves principales compuestas ndices clustered Crear una Tabla ndices non-clustered

Comprender los ndices clustered y non-Clustered 91

Resumen de Habilidades 98 Evaluacin de Conocimiento 101

AM RI
108 Cuenta de servicio de SQL Server Autenticacin de Windows 108 109 Remover un Inicio de sesin de Windows Autenticacin de SQL 113 Roles jos de servidor Rol pblico 115 Roles de nivel Servidor de base de datos 113 113 Roles denidos por el Usuario 115 Conceder Acceso a la base de datos 116 Seguridad de objetos y Management Studio Establecer permisos desde la lista de roles Cadenas de propiedad 123 124 Ejemplo de un modelo de seguridad Respaldos de bases de datos Respaldos parciales Respaldos de archivos Calendarizar respaldos 126 126 127 125

Resumen de Habilidades 70 Evaluacin de Conocimientos 71 Evaluacin de aptitud 72 Evaluacin de destreza 73

Seguridad de Nivel de base de datos 108

Agregar un nuevo Inicio de sesin de Windows 109 112

Establecer permisos desde la lista de usuario 121

Respaldar y restaurar bases de datos 125

Dispositivos de respaldo 127

CA
106
107

Eliminar datos 67

Leccin 5 Servicios Esenciales 105

Contenido

XIX

Restaurar bases de datos Usar el SSMS 128

127 129

Uso del comando RESTORE

ETC

IBE RO

www.pdftron.com

AM RI

CA

Resumen de Habilidades 130 Examen de Conocimientos 131 133 Evaluacin de destreza Evaluacin de dominio 133

ETC

IBE RO

www.pdftron.com

AM RI

CA

Leccin 1

Comprender los conceptos bsicos de bases de datos


Matriz de Dominio de objetivos
Habilidades/Conceptos

Comprender los conceptos de bases de datos Comprender las bases de datos relacionales

Comprender el lenguaje de manipulacin de datos

Comprender el lenguaje de denicin de datos (DDL)

Trminos Clave
Limitaciones Base de datos (db) Lenguaje de Denicin de Datos (DDL) Lenguaje de manipulacin de datos (DML)

ETC

IBE RO

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 Consulta Base de datos relacional SQL Server Management Studio (SSMS) Tabla Transact-SQL

Es contador junior recin contratado en una rma de contadores prestigiosa y se le ha pedido el compilar una perspectiva nanciera para uno de sus clientes ms grandes, con un tiempo de alrededor de tres semanas. Uno de los socios de la rma siente que la empresa no est obteniendo toda la informacin nanciera relativa utilizando sus mtodos actuales de recuperacin de informacin. La rma actualmente utiliza hojas de clculo de Excel para crear perspectivas nancieras y las posiciones nancieras actuales para cada uno de sus clientes. Se le ha entregado un total de 15 hojas de clculo de sus clientes ms grandes para reunir la informacin necesaria, en la cual rpidamente se da cuenta que la informacin nanciera actual es demasiada vasta para completar el proyecto en el tiempo que se le ha asignado.

AM RI
1.2 1.3 1.4

Descripcin del Dominio del objetivo Comprender cmo la informacin es almacenada en tablas. Comprender los conceptos de bases de datos relacionales. Comprender el lenguaje de manipulacin de datos (DML). Comprender el lenguaje de denicin de datos (DDL).

CA

Nmero del Dominio del objetivo 1.1

Leccin 1

Comprender los Conceptos de Bases de Datos


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. 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.

ETC

IBE RO

www.pdftron.com
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. 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.

AM RI

CA

EN RESUMEN

Comprender los conceptos bsicos de bases de datos

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:

f Comprender las bases de datos de tipo plano

; Listo para la certicacin Cmo estn organizadas las tablas dentro de una base de datos? 1.1

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

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. 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.

ETC

IBE RO

www.pdftron.com

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.

CA

Bases de datos plana Bases de datos jerrquicas Bases de datos relacionales

Leccin 1

Tabla 1-1
Diseo de base de datos jerrquica mostrando tablas padre e hijo

Tabla Padre
NumEmp 100 101 102 103 Nombre Paul Jane Jim Ed Apellido Baker Smith Tate Rosen NumDept 101 101 101 102

NumSerial 30032334 4323452 342342 234322

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. 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. 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 base de datos relacional, es mostrado en la Tabla 1-2. En la primera tabla Padre, tiene una tabla que muestra a 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.

; Listo para la certicacin

Cul es la diferencia entre las bases de datos relacionales a las bases de datos planas y bases de datos jerrquicas? 1.2

ETC

IBE RO

www.pdftron.com
f Comprender las bases de datos relacionales

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.

AM RI
Tipo Computadora Laptop Monitor Impresora NumEmp 100 101 100 100

Tabla Hijo

CA

Comprender los conceptos bsicos de bases de datos

Tabla 1-2
Diseo de una base de datos relacional mostrando dos tablas padre y una hijo.

Tabla Padre 1
NumEmp 100 101 102 103 Nombre Paul Jane Jim Ed Apellido Baker Smith Tate Rosen

Tabla Padre 2
Modelo 2200MX 42CRS 4232DR 2201MX

f Comprender los fundamentos de base de datos

ETC

IBE RO

www.pdftron.com
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. Hay tres fundamentos de bases de datos: Estn diseadas para almacenar billones de las de datos. Estn limitadas al espacio de disco duro disponible en la computadora. Son optimizadas para utilizar toda la memoria disponible de la computadora para mejorar el desempeo.

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.

Comparar hojas de clculo con tablas de bases de datos


Una hoja de clculo puede contener varias hojas electrnicas que almacenan lgicamente

AM RI
Nombre Pete Jim Omar Louise Apellido Wilson Cline Salize Peterson IDNum 1001 1002 1003 1004 Modelo 2200MX 42CRS 4232DR 2201MX

Tabla Hijo

CA
Costo $75000 $55000 $60000 $80000 Color Red Gray Red Blue

Leccin 1

Hoja de Clculo con Mltiples Hojas Electrnicas

ETC

IBE RO
Comprender los valores calculados

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. 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

AM RI

CA

Figura 1-1

informacin agrupada en un formato tabular. Una hoja de clculo es comparable a una tabla de base de datos y los encabezados en una hoja de clculo son comparables a las columnas o campos dentro de una tabla de base de datos. Si una hoja de clculo tiene mltiples hojas electrnicas, cada hoja electrnica se puede interpretar como una tabla distinta que pertenece a la misma base de datos.

Comprender los conceptos bsicos de bases de datos

Figura 1-2
Una hoja de clculo con valores calculados

accediendo a la base de datos.

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

Para comprender los modelos de bases de datos relacionales, piense en cmo las tablas se relacionan a una o ms tablas.

IBE RO

www.pdftron.com
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.

AM RI

CA

Leccin 1

Figura 1-3
Tabla bsica de base de datos

ETC

IBE RO
Introducir elementos de lenguaje

www.pdftron.com
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. 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.

AM RI

CA

Comprender los conceptos bsicos de bases de datos

Figura 1-4
Estructura de base de datos mostrando atributos de columna

ETC

IBE RO
Vea la Figura 1-5.

www.pdftron.com
Las Restricciones son limitaciones o reglas ubicadas en un campo o columna para garantizar que los datos considerados invlidos no sean introducidos. Por ejemplo, si desea que alguien introduzca la edad de una persona, el tipo de datos slo pueden ser nmeros positivos. Una persona no puede tener una edad negativa. Hay una variedad de restricciones las cuales estn disponibles con SQL Server 2008, incluyendo las siguientes: Una restriccin nica permite al administrador de la base de datos identicar especcamente cuales columnas no deberan contener valores duplicados. Una restriccin de comprobacin le permite limitar los tipos de datos que un usuario puede insertar en la base de datos. Una restriccin por default es utilizado para insertar un valor por default en una columna. Si no se especica otro valor, el valor por default ser agregado a todos los nuevos registros. La restriccin no nula (null) garantiza que los datos son introducidos en una celda. En otras palabras, la columna no puede estar en blanco. Tambin signica que no puede insertar un nuevo registro o actualizar un registro sin agregar un valor a este campo. La restriccin de clave principal nicamente identica a cada registro en una tabla de base de datos. No puede contener valores nicos y no puede obtener valores nulos (NULL). Cada tabla debera tener una clave principal y cada tabla puede tener solo UNA clave principal. Una restriccin de clave externa en una tabla apunta a una clave principal en otra tabla.

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.

AM RI

Tome Nota

CA

10

Leccin 1

Figura 1-5
Una restriccin de Base de datos

Tome Nota Una clave externa tambin puede ser conocida como auto referencia

f Utilizar la interfaz del SQL Server Management Studio (SSMS)


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.

ETC

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).

AM RI

CA

Comprender los conceptos bsicos de bases de datos

11

Figura 1-6
SQL Server Management Studio

ETC

IBE RO

www.pdftron.com
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, XQuery: Un lenguaje de consulta y programacin funcional que est diseado para consultar colecciones de datos XML. sqlcmd scripts: SQLCMD es una aplicacin de lnea de comando que viene con Microsoft SQL Server, y expone las caractersticas de administracin de SQL Server. Permite que las consultas de SQL sean escritas y ejecutadas desde el smbolo del sistema. Tambin puede actuar como un lenguaje de scripting para crear y ejecutar un conjunto de sentencias SQL como un script. Tales scripts son almacenados como un archivo.sql y son utilizados para la administracin de bases de datos o para crear el esquema de base de datos durante el desarrollo de una base de datos. Transact-SQL: Es el medio principal de programacin y administracin de SQL Server. Expone palabras clave de forma que puede crear y administrar bases de datos y sus componentes y para monitorear y administrar el propio servidor. Cuando utiliza el SSMS para desempear una accin o tarea, que est ejecutando comandos de Transact-SQL.

AM RI

CA

12

Leccin 1

Figura 1-7
Query Analyzer

ETC
Tome Nota

IBE RO
Cargar la Interfaz SSMS
Solucin de Problemas

www.pdftron.com
Debe tener SQL Server 2008 instalado en su sistema antes de moverse a la siguiente seccin.
PREPRESE. Antes de iniciar estos pasos, asegrese de lanzar el SSMS. 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. 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. 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.

AM RI

CA

Comprender los conceptos bsicos de bases de datos

13

PAUSA. DEJE el SQL Server Management Studio abierto para el recordatorio del captulo.

Crear una base de datos con la interfaz del SSMS

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.

ETC

IBE RO

www.pdftron.com
Elimine una base de datos con la Interfaz del SSMS
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.

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.

AM RI

PREPRESE. Antes que pueda iniciar a administrar las bases de datos, tendr que crearlas.

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.

14

Leccin 1

Comprender el lenguaje de manipulacin de datos (DML)


Como parte de la funcionalidad de crear bases de datos, es importante comprender elementos del lenguaje pueden hacerse dentro de su estructura de base de datos.
; Listo para la certicacin Cules comandos populares utilizados con SQL son comandos DML? 1.3

SELECT: Recupera las desde la base de datos y permite la seleccin de una o varias las o columnas desde una o varias tablas en SQL Server. INSERT: Agrega una o ms las nuevas a una tabla o una vista en SQL Server. UPDATE: Cambia los datos existentes en una o ms columnas en una tabla o vista. DELETE: Elimina las de una tabla o vista. MERGE: Desempea operaciones de insert, update o delete en una tabla objetivo, basado en los resultados de un join (unin) con una tabla de origen. Cuando utiliza sentencias DML tales como INSERT, UPDATE, DELETE o MERGE necesita considerar que son ejecutados como un todo en general, ya sea exitoso o fallido. Lo cual signica, por ejemplo, si fuera a insertar 10,000 registros en una tabla, pero se viola una clave principal o restriccin nica, todas las 10,000 las de registros se devolveran inmediatamente y ningn registro seria insertado en la tabla. Similarmente, si una declaracin DELETE falla basado en la violacin de una restriccin de clave externa (aunque sea solo en una la), nada sera eliminado. Debe consultar la tabla para vericar que las restricciones de clave son cumplidas y que su sintaxis es correcta. La siguiente seccin muestra la sintaxis correcta para el trabajo con restricciones.

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. El Lenguaje de Denicin de Datos (DDL) es un subconjunto del lenguaje Transact-SQL, trata con la creacin de objetos de bases de datos como tablas, restricciones y procedimientos almacenados (stored procedures). La interfaz de usuario utilizada para crear estas sentencias fundamentales de DDL ser a travs de la interfaz de usuario de SQL Server Management Studio como se muestra en la Figura 1-8.

; Listo para la certicacin

ETC

Qu comandos populares de SQL son comandos de DDL? 1.4

IBE RO

www.pdftron.com

AM RI

Lenguaje de Manipulacin de Datos (DML) es el elemento de lenguaje el cual le permite utilizar las sentencias core INSERT, UPDATE, DELETE, y MERGE para manipular datos en cualquier tabla de SQL Server. Las sentencias core incluyen:

CA

EN RESUMEN

Comprender los conceptos bsicos de bases de datos

15

Figura 1-8
Interfaz de usuario del SQL Server Management Studio

ETC

IBE RO
Utilizar sentencias DDL

www.pdftron.com
SELECT: Recupera las desde la base de datos y permite la seleccin de una o varias las o columnas desde una o varias tablas en SQL Server. INSERT: Agrega una o ms las nuevas a una tabla o una vista en SQL Server. UPDATE: Cambia los datos existentes en una o ms columnas en una tabla o vista. DELETE: Elimina las de una tabla o vista. MERGE: Desempea operaciones de insert, update o delete en una tabla objetivo, basado en los resultados de un join (unin) con una tabla de origen. 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

AM RI

CA

16

Leccin 1

; Listo para la certicacin Qu comando de DDL utilizara para cambiar el contexto de la base de datos y cul comando utilizara para crear una tabla? -1.4

DROP: Elimina un objeto de la base de datos Vayamos a travs de cada una de estas sentencias clave de DDL con una explicacin ms a fondo y un ejemplo de cada uno.

USE

USE TESTDB

CREATE

ETC

IBE RO
CREATE TABLE [dbo].[Planets]( ) ON [PRIMARY]

www.pdftron.com
Por ejemplo, para crear la tabla Planets, utilizara lo siguiente:
USE [AdventureWorks] GO [IndvidualID] [int] NOT NULL, [PlanetName] [varchar](50) NULL, [PlanetType] [varchar](50) NULL, [Radius] [varchar](50) NULL, [TimeCreated] [datetime] NULL

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.

GO

El use de [AdventureWorks] cambia el contexto de la base de datos a AdventureWorks. El comando GO ejecuta el conjunto previo de comandos. El comando CREATE TABLE [dbo.[Planets] es utilizado para crear la tabla Planets. IndividualID, PlanetName, PlanetType, Radius y TimeCreated son las columnas dentro de la tabla Planets. IndividualID no puede ser nulo (NULL). Int, varchar y datetime sealan el tipo de dato, lo cual especica cual puede ser introducido en la columna. Los tipos de datos sern explicados en la Leccin 2.

AM RI

Un comando de One Transact-SQL que vale la pena mencionar es el comando USE. El comando USE cambia el contexto de base de datos a la base de datos especicada. En otras palabras, cuando realiza comandos en una base de datos particular, lo ms probable es que utilice el comando USE para seleccionar la base de datos primero. Por ejemplo, para seleccionar el TESTDB, ejecutara el siguiente comando:

CA

Comprender los conceptos bsicos de bases de datos

17

ALTER
La sentencia ALTER cambia un objeto existente y puede aadir o remover columnas de la tabla. Por ejemplo, puede utilizar ALTER para aadir una columna a una tabla, como se muestra en el siguiente ejemplo. Tambin puede utilizar ALTER para cambiar la denicin de una vista, un procedimiento almacenado, un trigger o una funcin. El siguiente ejemplo redene la vista para incluir la columna Price. No confunda ALTER con UPDATE, ALTER cambia la denicin del objeto y UPDATE cambia los datos en una tabla.

ALTER TABLE Shirt ADD Price Money; GO

-- Utilice la declaracin UPDATE para establecer los precios UPDATE Shirt SET Price = 13.50 WHERE ProductID = 1; UPDATE Shirt SET Price = 13.50 WHERE ProductID = 2; UPDATE Shirt SET Price = 10.00 WHERE ProductID = 3; UPDATE Shirt SET Price = 12.00 WHERE ProductID = 4; GO

IBE RO
-- Redefnir la vista ALTER VIEW Size AS GO SELECT * FROM Size -- Results: -- ProductID ProductName -- ------------------ 1 -- 2 -- 3 -- 4 Red Blue Orange Black

www.pdftron.com
SELECT ProductID, ProductName, Price FROM Shirt WHERE ProductType = Size; Price ---------------------------13.50 13.50 10.00 12.00

ETC

AM RI

-- Aadir una nueva columna

CA

18

Leccin 1

DROP
La sentencia DROP realmente elimina un objeto de la base de datos, pero si otros objetos dependen del objeto que intenta eliminar, esta sentencia fallara y aparecer un error. El 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.
DELETE FROM Shirt

Select * FROM Size -- Results: -- ProductID

ETC

IBE RO
DROP TABLE Shirt; GO DROP TABLE Person.Contact -- Results:

www.pdftron.com
-- (0 row(s) affected) DROP VIEW Size; -- Msg 3726, Level 16, State 1, Line 1 -- Could not drop object Person.Contact because it is referenced by a FOREIGN KEY constraint (no se pudo eliminar el objeto Person.Contact debido a que est referenciado por una restriccin de clave externa).

-- -------------

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.

AM RI
ProductName Price --------------

CA
--------

Comprender los conceptos bsicos de bases de datos

19

Tome Nota 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.

Para eliminar todas las las de la tabla user, utilizara el siguiente comando:
TRUNCATE FROM user;

Para eliminar a un empleado con la id 200 de la tabla User, utilizara el siguiente comando:
DELETE FROM employee; DELETE FROM user WHERE id = 200;

Tablas del Sistema

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.Views

sys.Constraints sys.Procedures sys.Indexes sys.Objects sys.Triggers

ETC

IBE RO

www.pdftron.com
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
clave, object_id, type_desc, type, create_date, y modify_date.

AM RI

CA

20

Leccin 1

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.

ETC

IBE RO

www.pdftron.com

AM RI

CA

En esta leccin aprendi:

Comprender los conceptos bsicos de bases de datos

21

El Lenguaje de Denicin de Datos (DDL) es un subconjunto del lenguaje Transact-SQL, trata con la creacin de objetos de la base de datos como tablas, restricciones y procedimientos almacenados.

Evaluacin de Conocimientos
Llene el Espacio en Blanco

Complete las siguientes oraciones escribiendo la palabra o palabras correctas en los espacios en blanco proporcionados. 1. Los objetos de bases de datos estn divididos en dos categoras: ____________ y ____________. 2. Tablas creadas utilizando la sentencia ____________ son utilizadas para almacenar informacin. 3. Las restricciones pueden denir relaciones de entidad entre tablas en una forma continua. Tambin son conocidos como restricciones ____________. 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

IBE RO
Eleccin Mltiple a. b. c. d. a. b. c. d. CREATE MERGE ALTER DROP DEFAULT CHECK RANGE UNIQUE

www.pdftron.com
6. ____________ son compilados. Las sentencias Transact-SQL tienen la intencin de desempear acciones particulares y puede aceptar parmetros y retornar valores, pero ____________ siempre retorna un valor y nunca actualizan datos. 7. Las sentencias DDL centrales son ____________ , ____________ y ____________. 8. Las sentencias DML centrales son ____________ , ____________ , ____________ y ____________. 9. Las vistas del sistema pertenecen a ____________. 10. La restriccin de CLAVE EXTERNA es un identicador de ____________. Encierra en un crculo la letra que corresponda a la mejor respuesta. 1. Cul de las siguientes no es una sentencia DDL? 2. Cul de las siguientes no es una restriccin de columna?

AM RI

CA

22

Leccin 1

3. Cul de las siguientes puede ser utilizada para mejorar el desempeo de la consulta? a. b. c. d. a. b. c. d. CLAVE PRINCIPAL ndice UNICO ndice CLUSTERED Todos los de arriba REMOVE INSERT DELETE TRUNCATE

4. Cul de los siguientes no es una sentencia DML?

5. Seleccione todas las sentencias que son verdaderas:

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? a. b. c. d. 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.

ETC
a. b. c. d.

IBE RO
a. b. c. d. NULL UNIQUE CHECK PRIMARY 8. Qu signica SQL? a. Lenguaje de Pregunta Estructurada b. Lenguaje de Consulta Estructurada c. Lenguaje de Pregunta Fuerte SELECT OPEN EXTRACT GET a. b. c. d. SAVE MODIFY SAVE AS UPDATE

www.pdftron.com
7. Cul de los siguientes no es una restriccin? 9. Cul sentencia SQL es utilizada para extraer datos de una base de datos? 10. Cul sentencia SQL es utilizada para actualizar datos en una base de datos?

AM RI

CA

Comprender los conceptos bsicos de bases de datos

23

Evaluacin de Competencias

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

ETC

IBE RO

www.pdftron.com
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 Su compaa, AdventureWorks, decidi expandirse a un viaje interestelar. Por lo tanto, lo han contratado como un Nuevo administrador de base de datos para crear una nueva base de datos llamada Planets en el Microsoft SQL server utilizando la interfaz grca del SQL Server Management Service. Por lo tanto, Qu pasos utilizara para crear una base de datos llamada Planets? Ejercicio 1-3: Utilizando la Ayuda de SQL Server 2008 1. Abra la consola del Open SQL Server Management e inicie sesin en el SQL server. 2. Abra el men de Ayuda y Seleccione Buscar. 3. En el cuadro de bsqueda de texto, teclee y haga clic en el botn Buscar. 4. Haga clic en la opcin CREATE TABLE (Transact-SQL).

Ejercicio 1-3: Utilizando la Ayuda de SQL Server 2008

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.

CA

Ejercicio 1-1: Buscando una Base de Datos Relacional

24

Leccin 1

Ejercicio 1-4: Creando bases de datos utilizando la Interfaz Grca de SSMS

2. Asegrese que el Motor de Base de Datos esta seleccionado y haga clic en el botn Conectar.

4. Haga clic derecho en las bases de datos y seleccione Nueva Base de Datos.

5. En el nombre de la base de datos, teclee Planets y haga clic en el botn Aceptar. 6. Expanda la base de datos Planets haciendo clic en el smbolo de suma (+) al lado de Planets. 7. Expanda las tablas y haga clic en el smbolo de suma (+) al lado de las tablas.

8. Antes de ir a la siguiente evaluacin, dar clic derecho en la base de datos Planets y seleccionado Eliminar. 9. Seleccione Cerrar Conexiones Existentes y haga clic en el botn Aceptar.

ETC

IBE RO

www.pdftron.com

AM RI

3. Expanda las bases de datos haciendo clic en el smbolo de suma (+) al lado de las bases de datos.

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.

Leccin 2

Crear objetos de bases de datos


Matriz de Dominio de objetivos
Habilidades/Conceptos Denicin de tipos de datos Creacin y uso de tablas

Creacin de vistas Creacin de procedimientos almacenados

ETC

IBE RO

www.pdftron.com
Trminos Clave
Tipos de datos Procedimientos almacenados Inyeccin SQL Tablas Vistas

Es un diseador de bases de datos para una empresa importante de importacin/exportacin. Su jefe le ha hecho una solicitud para eliminar algunos procedimientos obsoletos quitando los pedidos a travs del fax. En su lugar, ella quiere que se reciban tanto los pedidos como informacin relacionada a travs de un servidor web o por correo electrnico. Por lo tanto, se espera que disee una base de datos que almacene y procese estos pedidos.

AM RI
2.3 2.4

Descripcin del Dominio del objetivo Seleccionar tipos de datos Comprender las tablas y saber cmo crearlas Crear vistas Crear procedimientos almacenados y funciones

CA

Nmero del Dominio del objetivo 2.1 2.2

26

Leccin 2

Denicin de tipos de datos


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.

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

; Listo para la certicacin

ETC
Cul tipo de datos utilizara para el costo de un sistema y cul usara para contar la cantidad de automviles que tiene en inventario? 2.1

IBE RO

www.pdftron.com
f Usar tipos de datos predenidos
Utilizar algunos de estos tipos de datos predenidos de forma regular y otro ms espordicamente. De cualquier manera, es importante entender lo que son estos tipos de datos y cmo se utilizan en la base de datos. La Tabla 2-1 y la Tabla 2-2 muestran los tipos de datos ms utilizados. Observe que en la Tabla 2-2 el * denota los tipos de datos nuevos en SQL Server 2008.

AM RI

CA

EN RESUMEN

Crear objetos de bases de datos

27

Tabla 2-1
Diseo de base de datos jerrquica mostrando tablas padre e hijo

Tipos de datos ms utilizados


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).

Datetime

ETC

IBE RO
Boolean Float

www.pdftron.com
Integer Varchar

AM RI

CA

28

Leccin 2

Tabla 2-2
Tipos de datos

Tipo de datos Numricos exactos: Bit

Uso / Descripcin

Almacenamiento 1 byte

IBE RO

www.pdftron.com
4 bytes 3 bytes 5 bytes 10 bytes Vara Vara Vara

ETC

Entero con un valor de 1 o 0. Se almacenan de 9 a 12 columnas de bits como 2 bytes. La capacidad de almacenamiento se incrementa a medida que aumenta la cantidad de columnas bit utilizadas. Tinyint Datos enteros de 0 a 255 Smallint Datos enteros de -2^15(-32,768) a 2^15-1(32,767) Int Datos enteros de -2^31(-2,147,483,648) a 2^31-1(2m147m483m647) Bigint Datos enteros de -2^63(-9,223,372,036,854,775,808) a 2^63-1(9,223,372,036,854,775,807). Numeric Precisin ja y escala. Los valores vlidos van de -10^38+1 a 10^38-1. Decimal Precisin ja y escala. Los valores vlidos van de -10^38+1 a 10^38-1 Smallmoney Valores monetarios que van de -214,748.3648 a 214,748.3647 Money Valores monetarios que van de -922,337,203,685,477.508 a 922,337,203,685,477.5807 Numricos aproximados: Datetime Dene una fecha que se combina con la hora del da con segundos fraccionales que se basan en un reloj de 24 horas. Rango: Enero 1, 1753 a Diciembre 31, 9999. Precisin: Redondeado a incrementos de .000, .003, o .007 segundos Smalldatetime Dene una fecha que se combina con la hora del da. El tiempo est basado en un da de 24 horas, con los segundos siempre en cero (:00) y sin segundos fraccionales. Rango: 1900-01-01 a 2079-06-06, Enero 1, 1900, a Junio 6, 2079. Precisin: Un minuto. date* Dene una fecha. Rango: 0001-01-01 a 9999-12-31. Enero 1, 1 D.C. a Diciembre 31, 9999. Precisin: Un da. time* Dene la hora del da. La hora es sin considerar la hora horaria y est basada en un reloj de 24 horas. Rango: 00:00:00.0000000 a 23:59:59.9999999. Precisin: 100 nanosegundos. datetimeoffset* Dene una fecha que resulta de la combinacin de una hora del da que considera la zona horaria y est basada en un reloj de 24 horas. Rango: 000101-01 a 9999-12-31, Enero 1, 1 D.C. a Diciembre 31, 9999. Rango de tiempo: 00:00:00 a 23:59:59.9999999. Precisin: 100 nanosegundos. datetime2* Dene una fecha que resulta de la combinacin de la hora del da en un reloj de 24 horas. Rango: 0001-01-01 a 999-12-31, Enero 1, 1 D.C. a Diciembre 31, 9999 D.C. Rango de la hora: 00:00:00 a 23:59:59.9999999. Precisin: 100 nanosegundos. Cadenas de caracteres: Char Tipo de datos de carcter con longitud ja. Varchar Tipo de datos de carcter con longitud variable.

AM RI

CA
1 byte 2 bytes 4 bytes 8 bytes Vara Vara 4 bytes 8 bytes 8 bytes

Crear objetos de bases de datos

29

Text

AM RI

Este tipo de datos se eliminar en versiones futuras de SQL, por lo tanto, utilice varchar (max) Cadenas de caracteres Unicode: Nchar Tipo de datos de carcter con longitud ja. Nvarchar Tipo de datos de carcter con longitud variable. Ntext Este tipo de datos se eliminar en versiones futuras de SQL, por lo tanto, utilice nvarchar (max) Cadenas binarias: Binary Datos binarios con longitud ja. Varbinary Datos binarios con longitud variable. Image Este tipo de datos se eliminar en versiones futuras de SQL, por lo tanto, utilice varbinary (max). Otros tipos de datos: sql_variant Almacena valores de varios tipos de datos soportados por SQL Server con excepcin de text, ntext, image, timestamp and sql_variant. Uniqueidentier 16-byte GUID. (UUID)

Vara

ETC

f Uso de tipos de datos numricos exactos

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.

IBE RO

www.pdftron.com
Tome Nota Cada columna, variable local, expresin y parmetro siempre tiene un tipo de datos relacionado y cada tipo de datos es un atributo.

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.

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:

Cuando hay dos expresiones (funcin matemtica o funcin de comparacin) con tipos de datos diferentes, hay reglas para la precedencia de los tipos de datos que especican que el tipo de datos con la precedencia ms baja se convierta al tipo de datos con la precedencia ms alta. El Collation se reere a un conjunto de reglas que determinan la forma en la cual se ordenan y comparan los datos. De manera predeterminada, SQL Server tiene una precedencia de collation predenida. Si desea modicar la manera en la cual se ordenan los datos, debe utilizar una clausula collation. La precisin, escala y longitud del resultado dependen de la precisin del mismo, de la expresin de entrada. Es decir, si tiene varios valores diferentes y lleva a cabo una operacin matemtica con estos valores, la precisin, escala y longitud se basar en dichos valores con los que est llevando a cabo las operaciones matemticas.

Veamos algunas de las descripciones de los tipos de datos para que se familiarice con ellos:

CA
Vara Vara Vara Vara 16 bytes

Vara Vara Vara

30

Leccin 2

decimal[(p[,s])] numeric[(p[,s])]

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

IBE RO
Uso de tipos de datos de fecha y hora

www.pdftron.com
La sintaxis de real es foat(n). (n) es la cantidad de bits que se utilizan para almacenar la mantisa del nmero oat como se representa en notacin cientca por lo que se puede dictaminar la precisin y el tamao de almacenamiento al especicar n. El valor debe ser entre 1 y 53 con el valor predeterminado de 53. Los tipos de datos de fecha y hora incluyen date, datetimeoffset, smalldatetime y time.
datetime2, datetime,

Precision (p) es el nmero total 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 de precisin predeterminado es 18. Scale (s) reeja el nmero mximo de dgitos decimales que se pueden almacenar a la derecha del punto decimal y debe ser un valor de 0 a p, pero slo se puede especicar cundo se utiliza precisin. La escala predeterminada es 0. money y smallmoney son tipos de datos Transact-SQL que utilizara para representar valores monetarios. Los dos tipos de datos son precisas en una 10,000a de las unidades monetarias que representen.

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

AM RI

int es el tipo de datos entero principal (nmero entero). bigint se utiliza cuando los valores enteros excedern el rango del tipo de datos int. Las funciones slo regresan bigint si la expresin original es un tipo de datos bigint. SQL Server no convierte otros tipos de datos enteros como tinyint, smallint e int de forma automtica a bigint. bit es un tipo de datos entero Transact-SQL que puede tomar un valor de 1, 0 o NULL y produce las siguientes caractersticas: El motor de base de datos de SQL Server optimizar el almacenamiento de las columnas de bits, lo cual signica que si hay 8 o menos columnas de bits en una tabla, estas se almacenarn como 1 byte. Si hay de 9 a 16 columnas, estas se almacenarn como 2 bytes. Es importante darse cuenta de que 1 byte equivale a 8 bits cuando considere tipos de datos. Los valores de cadena TRUE y FALSE se pueden convertir a valores bit. Esto signica que TRUE se convierte a 1 y FALSE se convierte a 0. decimal y numeric son tambin tipos de datos Transact-SQL que tienen precisin ja y escala. La sintaxis par estos tipos de datos es el siguiente:

CA

Crear objetos de bases de datos

31

que aparecen en la Tabla 2.3. Mientras que las fechas en s no resultan afectadas por el horario de verano, debe utilizar fechas para determinar si la hora de un da en particular est en horario de verano o no.

Descripciones de date

Propiedad Sintaxis Uso Formato de literal de cadena predeterminado

(utilizado para clientes de bajo nivel) Rango Rangos de elementos

IBE RO
Calendario Precisin fraccional de segundos denida por el usuario Conservacin y activacin de compensacin de zona horaria Activacin de horario de verano

www.pdftron.com
Longitud de carcter Precisin, escala Tamao de almacenamiento Precisin Valor predeterminado Este valor se utiliza para la parte de la fecha adjunta para la conversin de time a datetime2 o datetimeoffset. Gregoriano No No No Tome Nota Utilice time, date, datetime2 y los tipos de datos dateoffset para sus nuevos proyectos puesto que se alinean con el Estndar SQL, son ms portables y todos con excepcin de date cuentan con la mejor precisin para aplicaciones de nanosegundos. 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

AM RI

Valor Date DECLARE @MyDate date CREATE TABLE Table1 ( Column1 date ) YYYY-MM-DD

(Esto se puede utilizar para compatibilidad previa para clientes de bajo nivel). 0001-01-01 a 9999-12-31 Enero 1, 1 D.C. a Diciembre 31, 9999 D.C. YYYY son cuatro dgitos del 0001 al 9999 para representar un ao MM son dos dgitos del 01 al 12 para representar un mes en un ao especco

DD son dos dgitos del 01 al 31, dependiendo del mes, representan un da en un mes especco. 10 posiciones 10, 0 3 bytes, jo Un da 1900-01-01

CA

Tabla 2-3

Tipos de datos ms utilizados

32

Leccin 2

Comprender conversiones implcitas


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.

Figura 1-2
Ilustracin de tipos de conversiones implcitos y explcitos

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. 24 horas, con los segundos siempre en cero (:00) y sin segundos fraccionales.
Smalldatetime combina una fecha con una hora del da, con la hora basada en un da de Time dene la hora del da basada en un reloj de 24 horas y sin considerar la zona horaria.

AM RI

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.

CA

Crear objetos de bases de datos

33

Uso de cadenas de carcter regulares


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.

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

Tome Nota

Utilice nchar cuando los tamaos de las entradas de datos de las columnas sean similares. Utilice nvarchar cuando los tamaos de las entradas de datos de las columnas vayan a variar de forma considerable como en el caso de archivos binarios, archivos de imagen, variante SQL y UUID.

ETC

IBE RO

www.pdftron.com
Tome Nota VARCHAR(25). 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.

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 El consumo de almacenamiento cuando se utilizan tipos de datos Unicode se reduce en comparacin al de los tipos de datos regulares, adems de permitir operaciones de lectura ms rpidas; sin embargo, el precio que se paga por utilizar este tipo de datos est en la posibilidad para la expansin de las, lo cual lleva al movimiento de datos fuera de la pgina actual. Esto signica que cualquier actualizacin de datos cuando se utilizan tipos de datos de longitud variable puede ser menos eciente que la de los de longitud ja. Es posible denir el tipo de datos de longitud variable con el especicador MAX en lugar de utilizar un nmero mximo de caracteres identicados en la cadena. Por ejemplo, cuando una columna se dene con el especicador MAX, un valor con un cierto umbral (el valor predeterminado es 8,000) que luego se almacena en lnea en la la. Cuando quiera especicar un valor con un tamao superior al umbral predeterminado, se almacenar externo a la la y se identicar como un objeto grande o LOB. 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.

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.

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:

CA

34

Leccin 2

Comprender las cadenas de caracteres Unicode


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.

Creacin y uso de tablas


EN RESUMEN

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.

ETC

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. Realmente no importa si utiliza maysculas o minsculas, siempre y cuando sea consistente. Las dos convenciones de nombres comunes son PascalCase y camelCase. Ejemplos de PascalCase son por ejemplo nombres como OrdenDetalle y ClienteDireccion. Ejemplos de camelCase son nombres como miDireccion y terminosVenta. A nal de cuentas, no importa cual estndar utilice, siempre debe utilizar nombres que sean precisos y descriptivos. Tambin debe evitar el uso de espacio ya que pueden involucrar complicaciones que lo harn utilizar comillas. En su lugar, utilice guiones bajos (_) como separador para las palabras. Primero aprendamos a crear una tabla nueva con SQL Server Management Studio antes de continuar con el mtodo de sintaxis.

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.

CA

Crear objetos de bases de datos

35

; Listo para la certicacin Cmo creara una tabla con SSMS y cmo creara un SSMS con comandos SQL?2.2 Figura 2-2
Creando una Nueva Tabla

Crear una tabla con Microsoft SQL Server Management Studio


PREPRESE. Antes de comenzar, asegrese de abrir la aplicacin de SQL Server Management Studio. Asegrese de que tiene la base de datos correcta expandida en la cual desee crear una nueva tabla. 1. Haga clic en la carpeta tablas y seleccione Nueva Tabla, como se muestra a continuacin:

Figura 2-3

Nombres de Columna e identicando informacin

ETC

IBE RO

www.pdftron.com
Mientras tenga esta pantalla abierta, realice las siguientes actividades:
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. 3. Establezca el Valor predeterminado de la columna TimeCreated a (getdate()) y se insertar la fecha actual en cada registro nuevo para ese campo especco. Vea la gura 2-4.

AM RI

CA

36

Leccin 2

Figura 2-4
Estableciendo las propiedades del Diseador de Tabla

ETC

IBE RO

www.pdftron.com
Figura 2-5 4. Guarde su nueva tabla seleccionado Archivo y despus Guardar Tabla_1, como se muestra en la Figura 2-5.
Guardando la tabla nueva

AM RI

CA

Crear objetos de bases de datos

37

Figura 2-6
Nombrando la tabla

ETC

IBE RO

www.pdftron.com
Su nueva tabla ahora aparece en la seccin Tablas (vea la Figura 2-7).
Figura 2-7
Tabla recin creada

PAUSA. Deje la interfaz de SQL Server Management Studio interface abierta para el siguiente ejercicio.

AM RI

CA

38

Leccin 2

Crear una tabla con comandos Transact-SQL


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:

INSERT INTO planets (name, diameter) VALUES (earth, 10000) Si SQL server no soportara la conversin implcita, se necesitara lo siguiente: CREATE TABLE planets (name varchar(50), diamerter varchar(50)) INSERT INTO planets (name, diameter) VALUES (earth, CAST (10000 as varchar(50)))

Es importante comprender cuando utilizar vistas y cmo crear una vista utilizando ya sea una sentencia TransactSQL o con un diseador grco.

ETC

IBE RO

www.pdftron.com
EN RESUMEN

Creacin de vistas

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.

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: Filas especcas de las tablas. Columnas especcas de las tablas. Filas y columnas especcas de las tablas. Filas obtenidas de las combinaciones. Resumen estadstico de datos en tablas dadas. Subconjuntos de otra vista o un subconjunto de varias vistas y tablas.

AM RI

CREATE TABLE planets (name varchar(50), diameter varchar(50))

CA

Crear objetos de bases de datos

39

Algunos ejemplos comunes de vistas son: Un subconjunto de las o columnas de una tabla base. Una unin de dos o ms tablas. Una combinacin de dos o ms tablas. Un resumen estadstico de tablas base. Un subconjunto de otra vista o una combinacin de vistas y una tabla base.

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. Hay dos maneras de crear una vista:

ETC

IBE RO

www.pdftron.com
Utilizando el diseador grco SQL Server Management Studio. Escribiendo una sentencia Transact-SQL. 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:

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.

CA

40

Leccin 2

Crear una vista utilizando SQL Server Management Studio


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.

Figura 2-8
Creacin de una vista nueva

Haga clic derecho en la carpeta Vistas como aparece en la Figura 2-8 y seleccione Nueva Vista.

Figura 2-9

Cuadro de dilogo Add Table

ETC

IBE RO

www.pdftron.com
Se abre el cuadro de dilogo Agregar Tabla (vea la Figura 2-9).

AM RI

CA

Crear objetos de bases de datos

41

Explicaremos un poco sobre lo que le permite hacer este cuadro de dilogo: 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.
Figura 2-10
Informacin del cuadro de dilogo Agregar Tabla

2. Cuando haga clic en Agregar para agregar cada fuente, ver la informacin que aparece en la Figura 2-10.

; Listo para la certicacin

Cmo se crea una vista utilizando SSMS?2.3

ETC

IBE RO

www.pdftron.com
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.

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.

AM RI

CA

42

Leccin 2

Crear una vista utilizando Transact-SQL


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 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.

Creacin de procedimientos almacenados


EN RESUMEN

La razn de crear procedimientos almacenados y funciones es aprender a seleccionar, insertar, actualizar o eliminar datos utilizando sentencias de procedimientos almacenados de SQL. 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

IBE RO
SELECT * FROM USERLIST

www.pdftron.com
El nombre del procedimiento almacenado es usp_displayallusers y exec le dice a SQL Server que ejecute el cdigo en el procedimiento almacenado. Cuando cree su propio procedimiento almacenado, se le designar usp al principio, lo que le indica a SQL que se trata de un procedimiento almacenado creado por el usuario. Ahora, el procedimiento almacenado que est ejecutando displayallusers debe tener un cdigo sencillo dentro de l, por ejemplo: 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.

AM RI

CA

Crear objetos de bases de datos

43

Un procedimiento almacenado es una sentencia escrita en SQL que se almacen en la base de datos y si frecuentemente utiliza la misma sentencia SQL en su base de datos, es ms sencillo crear un procedimiento almacenado y utilizarlo en su lugar. Ahora, no resulta muy prctico utilizar los procedimientos almacenados para sustituir sentencias simples, como una sentencia select, pero, si se encuentra creando sentencias de consulta complejas, lo mejor es crear un procedimiento almacenado y ejecutarlo en el Query Analyzer con el comando ejecutar (exec). Para crear un procedimiento almacenado utilizando una interfaz de usuario grco, realice el siguiente procedimiento: 1. Expanda la seccin Programacin, luego expanda la seccin Procedimientos Almacenados.

ETC

IBE RO

www.pdftron.com
Figura 2-11 2. Haga clic derecho y seleccione Nuevo Procedimiento Almacenado (vea la Figura 2-11).
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.

AM RI

Crear un procedimiento almacenado

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.

44

Leccin 2

Figura 2-12
Ejemplo de la ventana Text Editor

; Listo para la certicacin Cmo se crea un procedimiento almacenado con SSMS?2.4

Tome Nota

Una inyeccin SQL es un ataque en el cual se inserta cdigo malicioso que se inserta en cadenas que luego pasan cuando se ejecutan las sentencias.

ETC

f Usar el procedimiento seleccionado Select

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:

IBE RO

www.pdftron.com
f Comprender las inyecciones SQL
Antes de aprender la sintaxis para seleccionar, insertar, actualizar y eliminar datos, necesita comprender lo que es una 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. 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.

AM RI

CA

Crear objetos de bases de datos

45

SELECT id, name //columna FROM sysobjects //tabla

f Usar el procedimiento almacenado Insert

El procedimiento almacenado insert agrega una o ms las nuevas en una tabla o vista.

La sintaxis SQL Transact para insert es como se indica a continuacin:

CREATE TABLE Sysobjects (Column1 INT, Column2 VARCHAR(10)) // aqu crea la tabla sysobjects con parmetros de columna INSERT INTO TableName (Column1, Column2) VALUES

f Usar el procedimiento almacenado Delete


Tal vez tenga un empleado que necesite borrar de la tabla Empleados puesto que se le despidi recientemente. El procedimiento almacenado delete elimina las de una tabla o vista. El procedimiento almacenado delete se representa de la siguiente forma:
DELETE FROM Employee eliminar datos //esta es la tabla de la cual requiere

ETC

IBE RO
GO //ejecuta la consulta

www.pdftron.com
f Usar el procedimiento almacenado Update
El procedimiento almacenado update cambia los datos existentes en una tabla o vista. El procedimiento almacenado update se representa como se indica a continuacin:
UPDATE sysObject //esta es la tabla a la cual le quiere actualizar datos SET Column1 = Name //se asigna el ttulo Name a la columna 1 WHERE EmployeeID = 8 //este es el nmero de la persona que quiere eliminar de la tabla Empleados

(1, test1), (2, test2) // aqu carga datos en las columnas identifcadas previamente

AM RI

CA

WHERE type = U //el valor de la columna que quiere consultar

46

Leccin 2

f Prcticas recomendadas

Las siguientes recomendaciones aseguran la calidad en desempeo y mantenimiento:

No utilice SELECT * en sus consultas, en su lugar, escriba los nombres de columnas requeridos despus de la sentencia SELECT, por ejemplo:

ETC

IBE RO

www.pdftron.com
Muchos de los otros comentarios y recomendaciones mencionados en estos captulos asegurarn (siempre y cuando tenga el desempeo en mente) que cuando se realice una consulta en una base de datos, pueda obtener resultados ms rpidos de tablas y vistas indexadas apropiadamente. Al hacer esto, se facilitar su trabajo.

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.

AM RI

SELECT IDCliente, ClienteNombre, Ciudad

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.

Crear objetos de bases de datos

47

Resumen de Habilidades
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

AM RI

CA

En esta leccin aprendi:

48

Leccin 2

Evaluacin de Conocimientos
Complete la frase

Complete los siguientes enunciados escribiendo la palabra o palabras correctas en los espacios en blanco proporcionados. 1. Cada ____________, ____________, expresin y ____________ tienen siempre un tipo de datos relacionado. 2. El bit es un tipo de datos entero Transact SQL que puede tomar un _______ de 1, 0 o NULL. 3. ____________ y time son sentencias Transact SQL que tienen: ____________, ____________, smalldatetime y time. 4. Es importante que considere utilizar conjuntos de datos ____________ cuando desarrolle tablas dependientes de los horarios de verano. 5. SQL Server soporta conversiones ____________ sin utilizar el llamado de las funciones cast o convert.

ETC

IBE RO
Opcin mltiple a. b. c. d. Numricos exactos Numricos aproximados Cadena ANSI Espacial

www.pdftron.com
6. Un carcter regular utiliza _______ byte de almacenamiento para cada carcter y un carcter Unicode requiere de ______ bytes de almacenamiento. 7. El conjunto de datos char tiene una longitud ______ y una longitud de __________ bytes. 8. El objetivo de una tabla es proporcionar una _______ para el almacenamiento de datos en una tabla relacional. 9. Cuando decida crear una vista, 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. Encierre la letra que corresponda a la respuesta correcta. 1. Cul de las siguientes opciones no es un tipo de datos?

AM RI

CA

Un procedimiento almacenado es una sentencia escrita previamente en SQL que se ha almacenado o guardado en la base de datos. Una inyeccin SQL es un ataque en el cual cdigo malicioso se inserta en cadenas que luego pasan a las instancias de SQL Server que esperan ser ejecutadas.

Crear objetos de bases de datos

49

2. Cuando se determina un grupo de resultados por las reglas de la precedencia de agrupacin, cul de los siguientes no es un tipo de datos resultante?

3. Cul de las siguientes opciones no describe un tipo de datos int? a. b. c. d.

4. Requieren las conversiones implcitas de invocacin: cast o convert? a. Si b. No

5. Seleccione todos los enunciados que sean falsos

ETC

IBE RO
a. b. c. d. a. b. c. d. NULL UNIQUE CHECK PRIMARY 8. Qu signica SQL?

www.pdftron.com
6. Cul de las siguientes no es soportado por ALTER? 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. 7. Cul de los siguientes no es una restriccin? a. Lenguaje de Pregunta Estructurada b. Lenguaje de Consulta Estructurada c. Lenguaje de Pregunta Fuerte 9. Cul sentencia SQL es utilizada para extraer datos de una base de datos?

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.

AM RI

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

CA

a. b. c. d. e.

char text vchar null

50

Leccin 1

10. Cul sentencia SQL es utilizada para actualizar datos en una base de datos? a. b. c. d. SAVE MODIFY SAVE AS UPDATE

Evaluacin de aptitud

Escenario 2-1: Clculo del tamao de una tabla

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) varchar(50)

ETC
Salario

IBE RO
Estado CP Edad
int

www.pdftron.com
Apellido Direccin
varchar(75) varchar(2) varchar(9)

Fechanacimiento

Cuntos bytes se necesitan para almacenar cada registro? Cuntos bytes utilizara para almacenar 10,000 registros? Escenario 2-2: Seleccin de tipos de datos 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 ()

Fecha de nacimiento de una persona

AM RI
date

CA

a. b. c. d.

SELECT OPEN EXTRACT GET

Crear objetos de bases de datos

51

La longitud de un tabln Cantidad vendida de reproductores de msica

Evaluacin de destreza

Se le ha contratado como el nuevo administrador de base de datos. Necesita crear una base de datos para los clientes. En este ejercicio, crear una tabla a la vez que dene una restriccin de clave principal despus de haber creado la tabla. Despus de abrir el SSMS y accede a la base de datos AdventureWords, cul comando de consultas utilizara para crear una tabla llamada customers. con las siguientes columnas o campos? Unique Customer ID

ETC

IBE RO
ModifedDate

www.pdftron.com
FirstName Hasta 50 caracteres LastName Hasta 50 caracteres

CompanyID Hasta 50 caracteres

Escenario 2-4: Extraccin de datos de una base de datos

Usted es un administrador de base de datos de la empresa AdventureWorks. Un gerente de servicios le pide que extraiga datos de la base de datos AdventureWorks. Por lo tanto, despus de abrir el SSMS y acceder a la base de datos AdventureWorks, especique las sentencias SELECT que utilizara para recuperar la informacin requerida de la tabla ProductsSubcategory. 1. Cules comandos regresaran todas las las y columnas en esa tabla ProductCategory? 2. Cules comandos escribira y ejecutara para regresar solo las columnas ProductSubcategoryID, ProductCategoryID, Name, y ModiedDate? 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?

5. En la ventana de consulta existente, cul comando utilizara para ordenar los ORDER BY [Subcategory Name]; resultados anteriores?

AM RI

Escenario 2-3: Entender las tablas y cmo crearlas

CA

ETC

IBE RO

www.pdftron.com

AM RI

CA

Leccin 3

Manipulacin de datos
Matriz de Dominio de objetivos
Habilidades/Conceptos

Uso de consultas para seleccionar datos Uso de consultas para insertar datos Actualizar datos y bases de datos Eliminar datos

ETC

IBE RO

www.pdftron.com
Combinacin cruzada (cross join) Delete Intersect Join Integridad referencial Select Transaccin Union Update

Trminos Clave

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.

AM RI
3.1 3.2 3.3 3.4

Descripcin del Dominio del objetivo Seleccionar datos Insertar datos Actualizar datos Eliminar datos

CA

Nmero del objetivo

54

Leccin 3

EN RESUMEN

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:
SELECT id, name //columnas FROM sysobjects // tablas WHERE type = jones //condiciones de las cuales quiere obtener resultados

ETC

IBE RO

www.pdftron.com
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 Los constructores anteriores son la estructura para la creacin de sentencias de consulta SELECT utilizando la ventana de edicin de texto de SQL. Supongamos, por ejemplo que necesita proporcionarle a su jefe una lista de empleados cuyo salario sea superior a $50 mil. Slo est interesado en recuperar los empleados que cumplan con esos criterios. He aqu como obtendra esos resultados en SQL:
SELECT nombre, apellido, salario FROM empleados WHERE salario >= 50,000

Esa consulta producira los siguientes resultados:

AM RI

Uso de consultas para seleccionar datos

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.

Manipulacin de datos

55

Tome Nota Puede ver la lnea que informa sobre la cantidad de las afectadas? Puede desactivar o activar esta opcin utilizando la sentencia SET NOCOUNT. De forma predeterminada, se encuentra desactivada 3.1

nombre ----------------John Sylvia Julia David

apellido ------------------Allan Goddard Smith Thompson

salario ------------52,000 51,200 55,000 62,900

(4 fla(s) afectadas)

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:
SELECT * FROM empleados

IBE RO
Nombre ------apellido ---------Jim Francis David Alexandria Peter Antoin Alexander Drake Thompson Link Link Drake (6 fla(s) afectadas)

www.pdftron.com
Con esto se puede producir un resultado muy amplio o pequeo, dependiendo de la cantidad de empleados en la compaa. Utilicemos un ejemplo de una empresa con slo 6 empleados de los cuales queremos una lista. Nuestro resultado se vera similar al siguiente: empleado_id ----------610001 610002 610003 610004 610005 610006 telefono --------sexo --------M F M F M M 574-555-0001 574-555-0346 574-555-0985 574-555-9087 574-555-7863 574-555-2597 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

ETC

AM RI

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.

CA

56

Leccin 3

Esta sentencia regresara el siguiente resultado: nombre ---------Jim Francis David apellido -------Alexander Drake Thompson

(3 fla(s) afectadas)

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 Los resultados seran los siguientes: apellido --------Drake

ETC

IBE RO
(1 fla(s) afectadas) El resultado sera: nombre ----------James David Francis Alexandria Peter Antoin (6 la(s) afectadas) apellido --------Alexander Thompson Drake Link Link Drake

www.pdftron.com
Nombre ----------Francis 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

AM RI

CA

Manipulacin de datos

57

Uso de la clusula BETWEEN

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: nombre ----------apellido --------fecha_contratacion -----------1990-12-10 1998-03-04 1997-07-08 1999-12-31

ETC

IBE RO
James Francis Peter Antoin (4 fla(s) afectadas)

www.pdftron.com
Alexander Drake Link Drake 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: SELECT nombre, apellido, fecha_contratacion FROM empleados WHERE fecha_contratacion BETWEEN 1-Jan-1990 AND 1Jan-2000 Recibir el mismo resultado que la sentencia de consulta anterior.

Uso de la clusula NOT


En algunos casos es ms sencillo escribir su consulta para buscar datos en trminos de lo que no quiere obtener. Transact SQL le ofrece la clusula NOT para tales situaciones. Una situacin en la cual pueda necesitar esta clusula es por ejemplo en nuestras sentencias anteriores SELECT. Podra necesitar un resultado que muestre los empleados que no

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:

CA

En el ejemplo anterior, observar los mismos tres empleados del departamento de Paquetera de la consulta anterior (puesto que cumplen con la primera condicin), as como tres las nuevas de datos que cumplen con la segunda condicin de encontrar el nmero de empleado que sin embargo no cumple con la otra condicin de estar en el departamento de Paquetera. Esto signica que Alexandria Sinclair, Peter Link and Antoin Jones cumplen con la segunda condicin en la sentencia de consulta WHERE.

58

Leccin 3

trabajen en el departamento de Paquetera: SELECT nombre, apellido FROM empleados WHERE NOT departamento = paquetera

El uso de operadores, como se muestra en varios de los ejemplos anteriores, pueden ayudar a lograr los mismos resultados en la mayora de las instancias. Se puede escribir una consulta utilizando < (menor que) o un > (mayor que) en lugar de un signo igual. La sentencia de consulta sera como aparece a continuacin: SELECT nombre, apellido FROM empleados WHERE departamento <> paquetera

Sin importar el sentido en el cual escriba la sintaxis para la sentencia de consulta, esta producir los mismos resultados.

Uso de la clusula UNION

ETC

IBE RO

www.pdftron.com
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 Se producira un resultado con una lista de todos los empleados en el departamento de Paquetera de los que fueron contratados entre dos fechas especcas.

La clusula UNION le permite combinar los resultados de dos o ms consultas en un solo conjunto resultante que incluir todas las las que pertenezcan a la consulta en esa unin. La clusula UNION es completamente diferente a las sentencias JOIN en la cules combina columnas de dos tablas diferentes. Hay un par de reglas bsicas que necesita seguir al combinar resultados de dos consultas a travs del uso de la clusula UNION:

Uso de las clusulas EXCEPT e INTERSECT

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:

AM RI

CA

Manipulacin de datos

59

La cantidad y el orden de las columnas debe ser el mismo en todas las consultas. Los tipos de datos deben ser compatibles.

La misma consulta, pero utilizando la clusula EXCEPT:

ETC

IBE RO
Uso de la clusula JOIN

www.pdftron.com
A medida que empiece a adquirir conocimientos ms complejos sobre las sentencias de consulta y sobre cmo cada clusula manipula los datos, descubrir las capacidades de una base de datos relacional. La clusula JOIN le permite combinar datos relacionados de diferentes tablas fuente. Las sentencias JOIN se parecen a las EXCEPT e INTERSECT en que regresan valores de dos tablas separadas. Con base en esto, podemos continuar para aprender cuales datos se pueden obtener a travs de las sentencias JOIN. Las sentencias JOIN se pueden especicar en las clusulas FROM o WHERE, pero se recomienda que las especique en la clusula FROM. Hay tres tipos de sentencias JOIN que debe tener en cuenta: INNER JOIN le permite relacionar registros tomados de diferentes tablas fuente. OUTER JOIN puede incluir registros de una o ambas tablas que consulte que no tengan registros correspondientes en la otra tabla. Hay tres tipos de joins externos: CROSS JOIN regresar todas las las de una tabla con todas las las de la otra tabla. Se deben incluir siempre condiciones WHERE.
LEFT OUTER JOIN, RIGHT OUTER JOIN y FULL OUTER JOIN

SELECT ProductID FROM Production.Product EXCEPT SELECT ProductID FROM Production.WorkOrder; --Resultado: 266 Filas (productos que no tienen rdenes de trabajo)

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

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)

CA

Un ejemplo de este tipo de sentencia de consulta para EXCEPT e INTERSECT en un ambiente laboral sera en un almacn, donde por ejemplo, le gustara recuperar una lista de productos que tengan rdenes de trabajo y otra que no las tengan. Podra realizar la consulta como se indica a continuacin, primero utilizando la clusula INTERSECT:

60

Leccin 3

Tabla 3-1
Tabla empleados

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:

Tabla 3-2
Tabla departamento

Antoin David

Drake Cruze

departamento_id 1 2 3

IBE RO
Los resultados seran: nombre -------apellido --------James David Francis Alexandria Peter Antoin Alexander Thompson Drake Link Link Drake (6 fla(s) afectadas)

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 nombre -----------Jane Jane Jane Mitch Mitch Paul apellido ---------Horton Horton Horton Simmons 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.

ETC

Observ que David Cruze no se incluy en la lista de resultados de los empleados

AM RI
610006 610007 3 NULL nombre Jane Mitch Paul apellido Horton Simmons Franklin

CA

nombre James David Francis Alexandria Peter

apellido Alexander Thompson Drake Link Link

empleado_id 610001 620002 610003 610004 620005

departamento 1 1 1 2 2

Manipulacin de datos

61

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 --------

ETC

IBE RO
(7 flas afectadas) USE pubs

www.pdftron.com
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 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 encuentra asignado a ningn supervisor de departamento, por lo que su nombre muestra un valor NULL en la lista donde las columnas se encuentran identicadas por cada nombre y apellido de supervisor. 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: SELECT autor1.nombre, autor1. apellido, autor2.nombre, autor2.apellido

AM RI
apellido --------nombre ------------

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.

CA

relacionados con los departamentos? En la columna departamento, su nombre no se identic como perteneciente a ningn departamento, aun cuando l es un empleado. Esto puede deberse a una variedad de razones, tal vez porque se le acaba de contratar y no ha empezado a trabajar ocialmente en ningn departamento.

apellido ----------

62

Leccin 3

El resultado sera: nombre -------David David David Alex Alex Alex Linda Linda Linda Delina Jules apellido --------Jones Jones Jones Starr Starr Starr Arrow Arrow Arrow Burris Allan

nombre -----------David Alex Linda David Alex Linda David Alex Linda David Jules

(11 flas afectadas)

IBE RO
La salida resultante sera: nombre -------apellido --------Jones Jones Starr David David Alex (3 flas afectadas)

www.pdftron.com
Si desea eliminar las las donde se repita el mismo autor, lo lograr con la sentencia SELF-JOIN: USE pubs SELECT autor1.nombre, autor1. apellido, autor2.nombre, autor2.apellido FROM autor1 INNER JOIN autor2 ON autor1.zip = autor2.zip WHERE autor1.ciudad = Pittsburgh AND autor1.estado = PA AND autor1.autor_id < autor2.autor_id ORDER BY autor1.nombre ASC, autor1.apellido ASC nombre -----------Alex Linda Linda apellido ---------Starr Arrow Arrow De los resultados obtenidos de la sentencia de consulta, David Jones, Alex Starr y Linda

ETC

AM RI

CA
apellido ---------Jones Starr Arrow Jones Starr Arrow Jones Starr Arrow Burris Allan

FROM autor1 INNER JOIN autor2 ON autor1.zip = autor2.zip WHERE autor1.ciudad = Pittsburgh ORDER BY autor1.nombre ASC, autor1.apellido ASC

Manipulacin de datos

63

Arrow viven todos en Pittsburgh, PA y tienen los mismos cdigos postales (ZIP).

EN RESUMEN

El objetivo es comprender cmo se insertan datos en una base de datos y cmo utilizar las sentencias INSERT.
; Listo para la certicacin Cul comando se utiliza para agregar datos a una tabla? 3.2

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.

Figura 3-1

Conectndose a la base de datos

ETC

IBE RO

www.pdftron.com
Insertar datos con SQL Server Management Studio
PREPRESE. Antes de empezar, asegrese de abrir SQL Server Management Studio y conectarse a la base de datos con la que quiera trabajar. 1. Asegrese de haberse conectado a la base de datos con la que quiera trabajar (vea la Figura 3-1). 2. Expanda la carpeta de bases de datos al hacer clic en el signo de ms (+) junto a la palabra bases de datos. 3. Expanda la carpeta de la base de datos con la que va a trabajar y a modicar.

AM RI

CA

Uso de consultas para insertar datos

64

Leccin 3

Figura 3-2
Editar las primeras 200 las

4. Expanda la carpeta Tablas haciendo clic en el signo de ms. 5. Haga clic derecho en el nombre de la tabla y seleccione Editar las primeras 200 las (vea la Figura 3-2).

Figura 3-3
Pantalla resultante de Editar las primeras 200 las

ETC

IBE RO

www.pdftron.com
La Figura 3-3 muestra la pantalla resultante. Si tiene un valor predeterminado como el campo IntIdentity, no necesitar proporcionar el campo en su sentencia de consulta:
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.

AM RI

CA

Manipulacin de datos

65

Tabla 3-3
Conguraciones para las Propiedades del Diseador de Tablas

[abc] [^abc]

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.

ETC

IBE RO
El resultado sera: (2 fla(s) afectadas)

www.pdftron.com
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) Es realmente sencillo aprovechar estas poderosas caractersticas para modicar y administrar una base de datos. Sin embargo, existen otras modicaciones de datos o manipulaciones que veremos ms adelante.

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.

AM RI

CA

Caracter comodn % [a-f] [^a-f]

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)

66

Leccin 3

Actualizar datos y bases de datos


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.
; Listo para la certicacin Cul comando se utiliza para modicar los datos existentes en una tabla? 3.3

Uso de la sentencia UPDATE

La clusula UPDATE le permite modicar los datos que se encuentran almacenados en tablas utilizando atributos de datos como se muestra a continuacin: UPDATE <nombre_tabla> SET <atributo> = <valor> WHERE <condiciones>

ETC
Si no especica los registros a actualizar, todos los registros o las se actualizarn con el nuevo valor. Esto es potencialmente daino.

Tome Nota

IBE RO
Nuestra respuesta sera: (1 fla(s) afectadas) UPDATE empleados SET departamento = 4 WHERE departamento IS NULL

www.pdftron.com
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: INSERT INTO departamento(nombre,apellido,departamento_id) VALUES (Doug, Able, 4) 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:

AM RI

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.

CA

EN RESUMEN

Manipulacin de datos

67

Los resultados aparecen en la Tabla 3-4.


Tabla 3-4
Valores NULL en la columna departamento

92 92 92 NULL

2010-0403. 2010-0403. 2010-0403. NULL

dbo dbo dbo NULL

CREATEVIEW CREATE_VIEW CREATE_VIEW

dbo dbo dbo

vDVMPrep

vTimeSeries vTargetMail

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:

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

Cules comandos se utilizan para eliminar datos de una base de datos? 3.4

ETC
Tome Nota Las las que se eliminarn slo son de la tabla que es llamada en la clusula delete (tabla_o_vista)

IBE RO
Uso de la sentencia DELETE

www.pdftron.com
Abra Server Management Studio Abra la tabla que quiera actualizar Localice la la de la cual quiera actualizar los registros en la vista de tabla desplegada 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. Puede utilizar la sentencia DELETE o eliminar una o ms las en una tabla o vista con la siguiente sentencia SQL: DELETE FROM <nombre_tabla> WHERE <conditiones>

AM RI
NULL NULL NULL VIEW [ NULL

CA
CREATE VIEW [ CREATE <EVENT_ INSTA VIEW [ CREATE <EVENT_ INSTA <EVENT_ INSTA NULL

68

Leccin 3

Puede utilizar la sentencia DELETE en diferentes situaciones, por ejemplo, debido a cambios en la empresa, necesita quitar los empleados del departamento de contabilidad de la tabla empleados. Podra utilizar este departamento utilizando el siguiente comando:

El resultado sera: (1 fla(s) afectada)

Estos resultados muestran que el empleado que trabajaba en el departamento de contabilidad se ha eliminado de la tabla empleados.

Truncar una tabla con TRUNCATE TABLE

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>

ETC

IBE RO
Eliminar una tabla con DROP TABLE
DROP TABLE <nombre_tabla>

www.pdftron.com
Cada resultado exitoso de SQL producira lo siguiente: Consulta ejecutada correctamente. 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:

Uso de la integridad referencial

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

AM RI

CA

DELETE FROM empleados WHERE departamento = contabilidad

Manipulacin de datos

69

que la base de datos utilice la integridad referencial, la cual no permite la eliminacin de las tablas a menos que se encuentren al nal de la relacin.

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

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.

70

Leccin 3

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.

ETC

IBE RO

www.pdftron.com

AM RI

CA

En esta leccin aprendi:

Manipulacin de datos

71

Evaluacin de Conocimientos

Encierre la V si el enunciado es verdadero o F si es falso. V V V V V F F F F 1. 2. 3. 4.

Complete el enunciado

Complete los siguientes enunciados escribiendo la palabra o palabras correctas en los espacios en blanco.
1. La sentencia SELECT se utiliza para consultar y combinar datos de una o ms _________. 2. La clusula WHERE de una sentencia SELECT contiene una o ms ________ para ltrar los datos consultados. 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

IBE RO
Opcin mltiple a. b. c. d. salary <> 50000 salary != 50000 salary NOT EQUAL 50000 NOT salary = 50000

www.pdftron.com
6. Si utiliza _______________y un _______________ o ____________al llevar a cabo tareas de mantenimiento, podr evitar muchos accidentes con los datos. 7. Se puede eliminar toda una tabla con la sintaxis __________ y ___________. 8. Si quiere seleccionar una sola columna de su consulta, se identica el nombre de la columna escribindola entre __________ y __________ en la sentencia de consulta. 9. Puede ______ varias condiciones en una sentencia de consulta para satisfacer sus necesidades. 10. La clusula _______________le permite combinar los resultados de dos o ms consultas en un solo conjunto resultante que incluirn todas las las que pertenezcan a la consulta.

Encierre la letra que corresponda a la respuesta correcta. 1. Cul de las siguientes condiciones es invlida?

AM RI

La sentencia SELECT se limita a consultar datos de una sola tabla. La sentencia INSERT se puede utilizar para insertar varias las a la vez. La sentencia TRUNCATE se utiliza para eliminar una tabla Una INNER JOIN y condicin son lo mismo que una CROSS JOIN y una condicin WHERE. 5. El orden de las columnas en la sentencia SELECT debe corresponder al orden en el que fueron creadas cuando se elabor la tabla.

CA

Verdadero o Falso

72

Leccin 1

2. Cul de los siguientes operadores no es compatible al combinar resultados entre sentencias SELECT?

3. Cul de las siguientes condiciones de rango generara un error de sintaxis? a. b. c. d. a. b. c. d. salary <= 50000 and salary >= 10000 salary between (10000 and 50000) and (60000 and 90000) salary >= 10000 and salary <= 50000 salary between 10000 and 50000 mass*acceleration as force 3.1415 as PI (select max(age) from employee) as maxage rstname + secondname as fullname

4. Cul de las siguientes sentencias no sera vlida en una sentencia SELECT?

5. Cul de las siguientes opciones no es cierta sobre la integridad referencial?

Evaluacin de aptitud

ETC

IBE RO

www.pdftron.com
Escenario 3-1: Uso del comando SELECT Recientemente se le ha contratado como Administrador de bases de datos para la empresa AdventureWorks. El administrador de la red quiere saber cmo extraer informacin de las bases de datos AdventureWorks, por lo que necesita contestar las siguientes preguntas: 1. Cul comando usara para mostrar los registros de una tabla? 2. Cul comando usara para mostrar FirstName y LastName de la tabla Users? 3. Cul comando usara para mostrar todos los registros de la base de datos Member y ordenarlos por la columna Name? 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.

a. Evita la eliminacin parcial de los datos durante una transaccin b. Evita la eliminacin de una la que contiene un valor al cual se hace referencia a travs de una clave fornea en otra tabla c. Requiere que se cree una clave fornea para relacionar dos tablas. d. La clave fornea se debe vincular a una clave primaria o ndice nico

AM RI

CA

a. b. c. d.

UNION EXCEPT INTERSECT AND

Manipulacin de datos

73

Escenario 3-2: Eliminar datos de tablas Despus de que usted y el administrador de la red hayan revisado algunos registros de la base de datos AdventureWorks, deciden eliminar algunos registros antiguos. Conteste las siguientes preguntas. 1. Cul comando usara para eliminar todos los registros de la tabla Customer donde Age sea menor que 18?

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

ETC

IBE RO

www.pdftron.com
Escenario 3-3: Manipulacin de datos con las sentencias SELECT y JOIN Es el Administrador de base de datos para la empresa AdventureWorks. 1. Despus de abrir SSMS y acceder a la base de datos AdventureWorks, cul consulta utilizara para que aparezca ProductSubcategoryID y ProductCategoryID de la tabla Production.ProductSub que contengan la palabra Bike? Tambin debe ordenar la informacin por Subcategory Name. 2. Cul consulta utilizara para unir la tabla ProductCategory a la tabla ProductSubcategory con el propsito de recuperar la columna Name de la tabla ProductCategory. Escenario 3-4: Manipular datos utilizando las sentencias INSERT y UPDATE Como el administrador de la base de datos AdventureWorks, necesita insertar datos en la tabla Credit en la base de datos Sales utilizando diferentes sentencias de datos para actualizar y eliminar datos de la misma tabla Credit. 1. Por lo tanto, despus de abrir SSMS, cules comandos escribira y ejecutara en la base de datos AdventureWorks para revisar las columnas en la tabla Sales? 2. En la ventana de consultas existente, cules comandos escribira, resaltara y ejecutara para agregar la siguiente la a la tabla Credit especicando los valores para cada columna con base a su ubicacin relativa en el esquema de la tabla utilizando la siguiente sentencia? Patrick, Roberts, 6000, Roberts@telecome.usa

AM RI

2. Cul comando usara para eliminar todos los registros de la tabla Schools con Enrollment de menos de 500?

CA

74

Leccin 1

3. En la ventana de consultas existente, cules comandos escribira, resaltara y ejecutara para agregar las siguientes las a la tabla Credit para rstname, lastname y credit limit?

Annie, Smith, 10000

4. En la ventana de consultas existente, cules comandos utilizara para actualizar el correo electrnico (Email) para Annie Smith en la tabla Credit utilizando la sentencia Update?

ETC

IBE RO

www.pdftron.com

AM RI

5. En la ventana de consulta existente, cul comando utilizara para ordenar los resultados anteriores?

CA

Alex, Hall, 5000

Leccin 4

Comprender el Almacenamiento de Datos


Matriz de Dominio de objetivos
Habilidades/Conceptos Normalizar una Base de Datos Comprender las claves principales, externas y compuestas Comprender los ndices agrupados y no agrupados

ETC

IBE RO

www.pdftron.com
Trminos Clave
ndice agrupado Clave compuesta Primera forma normal Clave externa Restriccin de clave externa Forma ndice no agrupado Normalizacin Clave principal Datos redundantes Segunda forma normal Tercera forma normal

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.

AM RI
4.1 4.2 principales, externas y compuestas. Comprender los ndices. 4.3

Descripcin del Dominio del objetivo Comprender la Normalizacin. Comprender las claves

CA

Nmero del objetivo

76

Leccin 4

Normalizar una Base de Datos


EN RESUMEN

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.

Cules son las tres primeras formas de no malizacin y cmo dieren entre s? 4.1

ETC

IBE RO

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.
; Listo para la certicacin

f Qu es la Normalizacin?

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: 1NF: Elimina los Grupos Repetitivos 2NF: Elimina los Datos Redundantes 3NF: Elimina las Columnas No Dependientes de la llave 4NF: Asla independientemente las Relaciones Mltiples 5NF: Asla Semnticamente las Relaciones Mltiples Relacionadas

Ahora miraremos a cada una de estas un poco ms a fondo. 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.

AM RI

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.

Comprender el Almacenamiento de Datos

77

Primer Forma Normal (1NF) Eliminar Grupos Repetidos


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: La tabla no debe tener registros duplicados. Una vez que ha denido la clave principal para la tabla, ha cumplido el primer criterio de forma normalizada. La tabla tampoco debe tener atributos multi-valores, lo cual signica, que no puede combinar valores mltiples que son considerados vlidos para una columna en una sola. Por ejemplo de la primera forma normal en accin, considere el enlistado de campamentos base (baseCamp) y paseos (tours) de la base de datos de Cape Hatteras Adventures. La Tabla 4-1 muestra los datos de los campamentos base en un modelo que viola la primera forma normal. El atributo repetido del paseo (tour) no es nico. Las entradas en la columna o atributos son del mismo tipo de datos.
Tabla 4-1
Datos de los campamentos base (antes) Violando la Primera Forma Normal

BaseCamp Ashville

AM RI
Tour1 Appalachian Trial Outer Banks Tour2 Blue Ridge Parkway Hike Lighthouses Bahamas Dive Amazon Trek Gauley River Rafting Tour Entidad BaseCam BaseCampID (PK) 1 2 3 4 5 Name Appalachian Trail Blue Ridge Parkway Hike Outer Banks Lighthouses Outer Banks Lighthouses Amazon Trek Gauley River Rafting

Cape Hatteras Freeport Ft. Lauderdale West Virginia

Tabla 4-2

Datos de los campamentos base (despus) Conforme a la Primera Forma Normal

IBE RO
Entidad del tour BaseCampID (FK) 1 2 3 4 5

www.pdftron.com
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.
Ashville Cape Hatteras Freeport Ft. Lauderdale

ETC

CA
Tour3

78

Leccin 4

Segunda Forma Normal (2NF) Eliminar los Datos Redundantes


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

IBE RO
Cape Hatteras Freeport Ft. Lauderdale West Virginia Appalachian Trail Blue Ridge Parkway Hike Outer Banks Lighthouses Bahamas Dive Amazon Trek Gauley River Rafting

www.pdftron.com
Tabla 4-4
Datos de los Campamentos Base (despus) Conforme a la Segunda Forma Normal

Entidad del tour PK-Base Camp Ashville Ashville

Tercera Forma Normal (3NF) Eliminar Columnas no Dependientes a Claves


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

ETC

AM RI
PK-Tour Appalachian Trail Blue Ridge Parkway Hike Outer Banks Lighthouses Bahamas Dive Amazon Trek Gauley River Rafting 828-555-1216 PK-Tour Entidad BaseCam PK-Base Camp PhoneNumber Ashville Cape Hatteras Freeport Ft. Lauderdale West Virginia 828-555-1212 828-555-1213 828-555-1214 828-555-1215 828-555-1216

CA
Base Camp PhoneNumber 828-555-1212 828-555-1212 828-555-1213 828-555-1214 828-555-1215

Comprender el Almacenamiento de Datos

79

base son mostrados en la Tabla 4-5. La


Tabla 4-5
Datos de los Campamentos Base (antes) Violando la Tercera Forma Normal

Tabla 4-6
Datos de los Campamentos Base (despus) Conforme a la Tercera Forma Normal

Entidad de Tour BaseCampPK Ashville, NC Cape Hatteras Freeport West Virginia

ETC

IBE RO

www.pdftron.com
Hay dos requerimientos bsicos para que una base de datos est en la tercera forma normal: Ya cumplen los requerimientos tanto de 1NF y 2NF Remueve las columnas que no dependen completamente en la clave principal 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: Nmero de Orden (clave principal) Nmero de Cliente Precio Unitario Cantidad Total 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

Cmo Normalizar una base de datos a la Tercera Forma Normal

AM RI
LeadGuide Jeff Davis Ken Frank Dab Smith Lauren Joes

CA
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

Entidad de campamentos base BaseCampPK BaseCampPhoneNumber Ashville 1-828-555-1212 Cape Hatteras 1-828-555-1213 Freeport 1-828-555-1215 Ft. Lauderdale 1-828-555-1215 West Virginia 1-828-555-1216

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

80

Leccin 4

cantidad, por lo tanto no depende totalmente de la clave primaria. Debemos eliminarlo de la tabla para cumplir con la tercera forma normal. Tal vez podramos utilizar los siguientes atributos en lugar de reemplazar nuestros atributos originales:

SELECT OrderNumber, Total FROM WidgetOrders

Ahora podemos utilizar la siguiente consulta:

SELECT OrderNumber, UnitPrice * Quantity AS Total FROM WidgetOrders

ETC

IBE RO

www.pdftron.com
Cuarta Forma Normal (4NF) Aislar relaciones mltiples independientes
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.

Con el n de lograr los mismos resultados, sin violar las reglas de normalizacin.

Quinta Forma Normal (5NF) Aislar las relaciones mltiples relacionadas semnticamente
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.

AM RI

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:

CA

Nmero de Orden Nmero de Cliente Precio Unitario Cantidad

Comprender el Almacenamiento de Datos

81

Benecios de una base de datos digital

Consistencia de datos mejorada y mejor cumplimiento de las reglas de negocio Habilidad mejorada para compartir datos, especialmente a travs de largas distancias Habilidad mejorada para introducir, buscar y recuperar informacin Funciones de reporteo mejoradas Habilidad mejorada para analizar tendencias de datos a travs de funcionalidad de reporteo mejorada 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

IBE RO
Tablas, las y columnas

www.pdftron.com
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.

AM RI

Con nuestro vasto conocimiento y experiencias ganadas a travs de la era de la informacin y los cambios en las prcticas de diseo del desarrollo de bases de datos relacionales, ha habido algunos benecios medibles presentados a las organizaciones. Incluyendo:

CA

Usabilidad: Ubicando columnas en la tabla correcta, es ms fcil comprender la base de datos y escribir las consultas correctas. Esto ayuda en la reduccin del tiempo de diseo y costos. Extensibilidad: Una base de datos no normalizada es a menudo ms compleja y por lo tanto ms difcil de modicar. Esto lleva a retrasos en el despliegue de nuevas bases de datos a los usuarios e incrementa los costos de desarrollo.

82

Leccin 4

Comprender las claves principales, externas y compuestas


EN RESUMEN

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

ETC

IBE RO
Crear una Restriccin nica

www.pdftron.com
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. 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.

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:

AM RI

CA

El inconveniente de una hoja de clculo es la tendencia a ser de ujo libre y a perder su diseo, pero las tablas de la base de datos, por otro lado, son muy consistentes en trminos del signicado de los datos que residen en una columna. Siendo que tanto la consistencia de la y columna son muy importantes para una tabla de base de datos, el diseo de la tabla es ms crtico.

Comprender el Almacenamiento de Datos

83

Figura 4-1
Vista de Diseo

Figura 4-2

ndices o Claves

ETC

IBE RO

www.pdftron.com
2. Desde el men desplegable de Diseador de Tablas ubicado en la parte superior de la barra de herramientas del men, seleccione ndices o Claves, como se muestra en la Figura 4-2. Esto abrir la ventana de ndices o Claves. Se dar cuenta que la tabla ya tiene una restriccin de clave principal identicada como se muestra en la Figura 4-3.

AM RI

CA

84

Leccin 4

Figura 4-3
Conectndose a una Base de Datos

Figura 4-4

Type Property Box

ETC

IBE RO

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
del ndice por defecto a Clave Unique, como se muestra en la Figura 4-4.

AM RI

CA

Comprender el Almacenamiento de Datos

85

Figura 4-5
Seleccionando columnas a agregar

5. Haga clic en el botn () el cual se encuentra al lado de la seccin de propiedad Columnas, una vez que haga clic en l, como se muestra en la Figura 4-5. Ahora puede seleccionar las columnas que desea incluir en su restriccin nica.

Figura 4-6

Guardar una restriccin nueva

ETC
Ahora ha creado su restriccin nica.

IBE RO

www.pdftron.com
6. Haga clic en el botn cerrar 7. Guarde su restriccin recin creada seleccionando el guardar todo desde el men Archivo, como se muestra en la Figura 4-6.

AM RI

CA

86

Leccin 4

PAUSA. Deje abierta la interfaz de SQL Server Management Studio abierta para el siguiente ejercicio.

Claves principales

ETC

IBE RO

www.pdftron.com
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). La gura 4-7 permite tener una mejor idea visual del tipo de claves de ndice.

Claves externas

AM RI

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.

CA

Comprender el Almacenamiento de Datos

87

Figura 4-7
Clave de ndice

Tome Nota

Cada tabla debe tener una clave principal, sin una clave principal, no es una tabla valida. Por denicin, una clave principal deber ser nica y debe tener un valor (el cual no es null).

ETC

IBE RO

www.pdftron.com
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.

AM RI

CA

88

Leccin 4

Crear una Vista utilizando el SQL Server Management Studio


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. Figura 4-8
Vista de Diseo

ETC

IBE RO

www.pdftron.com
2. Desde la lista del men desplegable del Diseador de Tablas, como se muestra en la Figura 4-9, seleccione Relaciones.

AM RI

CA

Comprender el Almacenamiento de Datos

89

Figura 4-9
Seleccione Relaciones

Figura 4-10

Cuadro de la propiedad Tipo

ETC

IBE RO

www.pdftron.com
3. Seleccione la tabla en la que desea agregar la clave externa. 4. Haga clic en el () el cual se encuentra al lado del cuadro de dialogo de la propiedad de Especicacin de Tablas y Columnas, como se muestra en la Figura 4-10.

AM RI

CA

90

Leccin 4

5. Figura 4-11
Seleccione la tabla a la que se reere su clave externa

Seleccione la tabla a la que se reere la clave externa en la lista desplegable de clave externa como se muestra en la Figura 4-11.

ETC

IBE RO
7. Haga clic en el botn cerrar. 8. Guarde su restriccin recin creada

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. 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.

Claves principales compuestas


Una de las discusiones ms confusas con respecto a las claves principales es con la denicin de la clave principal compuesta. Una clave principal compuesta ocurre cuando dene ms de una columna como su clave principal y aunque muchos administradores de base de datos no las utilizan o estn conscientes de ellas, ellas juegan una parte integral en el diseo de un buen y slido modelo de datos. Como ejemplo simplicado, tome las tablas en una base de datos y categorcelas basado en dos tipos de datos: Tablas que denen entidades Tablas que relacionan entradas

AM RI

CA

Comprender el Almacenamiento de Datos

91

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. 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.

Comprender los ndices clustered y non-Clustered


EN RESUMEN

Es importante comprender los ndices clustered (agrupados) y non-clustered (no agrupados)y su propsito en las bases de datos.
; Listo para la certicacin

ETC
Cules son las diferencias entre un ndice clustered y uno non-clustered?4.3

IBE RO

www.pdftron.com
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

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.

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.

92

Leccin 4

ndices clustered
Tome Nota Slo un ndice clustered es permitido para cada tabla.

Cuando comienza a mirar 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, simplemente no es posible tener dos ndices clustered en la misma tabla. Tambin debera mencionarse que el ndice clustered es una construccin fsica, contrario a la mayora de los ndices los cuales son lgicos o basados en software. Una de las caractersticas de SQL Server es la creacin automtica de un ndice clustered cuando la clave principal est denida para una tabla. Una clave principal signica para usted, como administrador de base de datos, determinar la creacin ndices non-clustered basados en las columnas en una tabla. 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

IBE RO

www.pdftron.com
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.

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.

Comprender el Almacenamiento de Datos

93

Figura 4-12
Estructura de rbol-B

ETC

IBE RO
ndices non-clustered Crear una Tabla

www.pdftron.com
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. 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. Hay dos maneras de crear un ndice non-clustered en una tabla. Una utilizando sentencias de secuencias de comandos de Transact-SQL y la otra es a travs de la interfaz visual del SQL Server Management Studio. Es importante saber cmo crear los ndices de cualquier manera. Crear una tabla Non-Clustered

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.

AM RI

CA

94

Leccin 4

Para crear una tabla non-clustered a travs de la herramienta de la interfaz grca, siga estos pasos.

PREPRESE. Antes de empezar, asegrese de lanzar la aplicacin del SQL Server Management Studio y conctelo a la base de datos con la que desea trabajar.

Figura 4-13
Carpeta de Bases de Datos

ETC

IBE RO

www.pdftron.com
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.

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).

CA

Crear una tabla non-clustered utilizando el SQL Server Management

Comprender el Almacenamiento de Datos

95

Figura 4-14
Creando un ndice

Viendo la carpeta Tablas

ETC

IBE RO

www.pdftron.com
Figura 4-15 3. Haga clic en el icono de suma (+) a la izquierda de la carpeta Tablas con el n de expandirla (como se muestra en la Figura 4-15). Ahora deber ver un nmero de tablas aparecer debajo de la carpeta Tablas. 4. Haga clic derecho a la subcarpeta ndices y seleccione Nuevo ndice en el men emergente que aparece (como se muestra en la Figura 4-16).

AM RI

CA

96

Leccin 4

Figura 4-16
Men del Nuevo ndice

Figura 4-17

Cuadro de propiedades del Nuevo ndice

ETC

IBE RO

www.pdftron.com
5. Ahora observar un Nuevo cuadro de dialogo aparecer, el cuadro de las propiedades del Nuevo ndice por el cual puede introducir las entradas deseadas. Esto es donde seleccionara si el tipo de ndice sera clustered o non-clustered (como se muestra en la Figura 4-17)

PAUSA Deje la interfaz del SQL Server Management Studio abierta para el siguiente ejercicio.

AM RI

CA

Comprender el Almacenamiento de Datos

97

Figura 4-18
Cuadro de propiedades de un ndice Clustered

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

Figura 4-19

Cuadro de propiedades del ndice Non-clustered

ETC

IBE RO

www.pdftron.com
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.

AM RI

CA

98

Leccin 4

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.

ETC

IBE RO

www.pdftron.com

AM RI

CA

En esta leccin, aprendi

Comprender el Almacenamiento de Datos

99

Evaluacin de Conocimientos

Encierre la V si el enunciado es verdadero o F si es falso. V V V V V F F F F

Llene los espacios en blanco

Complete las siguientes sentencias escribiendo la palabra o palabras correctas en los espacios en blanco.
1. La Normalizacin es la eliminacin de datos redundantes para ahorrar ________. 2. El valor de una clave principal debe ser __________. 3. Una clave externa trabaja en conjunto con una clave principal o restriccin unique para cumplir la _________entre tablas 4. Agregar un ndice a una o ms columnas para aumentar la velocidad de _________ de datos. 5. Los valores en un ndice CLUSTERED son ___________.

ETC

IBE RO
Opcin mltiple a. b. c. d. CHECK DEFAULT UNIQUE NDICE a. b. c. d.

www.pdftron.com
Encierre en un crculo la letra que corresponda a la mejor respuesta. 1. Cules de las siguientes no son restricciones? 2. Cul de los siguientes aumenta la velocidad de recuperacin de datos? Restriccin DEFAULT Restriccin de CLAVE PRINCIPAL ndice CLUSTERED Restriccin de CLAVE EXTERNA 3. Seleccione las sentencias que son verdaderas acerca de la Normalizacin a. Un nmero mayor de tablas estrechas (con pocas columnas) es una caracterstica de una base de datos normalizada b. Unas pocas tablas amplias (con ms columnas) es una caracterstica de una base de datos normalizada c. Los ndices permiten una recuperacin ms rpida de datos

AM RI

1. Crear una clave principal satisface la primera forma normal 2. Las tablas en una base de datos deben satisfacer las 5 formas normales con el n de maximizar el desempeo 3. Una clave principal puede contener valores NULL 4. Un ndice CLUSTERED usualmente mejora el desempeo cuando se insertan datos 5. Una tabla puede contener solo un ndice CLUSTERED.

CA

Verdadero o Falso

100

Leccin 1

d. Se logra un mejor desempeo indexando cada columna en una tabla 4. Cul de las siguientes sentencias no es verdadera acerca de una CLAVE EXTERNA? a. Una clave externa es una combinacin de una o ms columnas utilizadas para establecer e imponer un enlace entre los datos en dos tablas. b. Puede crear una clave externa deniendo una restriccin de CLAVE EXTERNA cuando crea o altera una tabla. c. Una CLAVE EXTERNA cumple la integridad referencial garantizando que solo los datos validos son almacenados d. Una tabla puede contener solo una clave EXTERNA 5. Se considera utilizar un ndice CLUSTERED cuando a. b. c. d. a. b. c. d. las columnas contienen un gran nmero de valores distintos las columnas son accedidas secuencialmente las columnas se someten a cambios frecuentes en las consultas se ejecutan grandes conjuntos de resultados 1NF 2NF 3NF 4NF

6. Cul forma normal le garantiza que cada atributo describe a la entidad?

ETC
a. b. c. d.

IBE RO
a. b. c. d. 1 2 4 8 a. b. c. d. Clave principal compuesta Clave escalada Clave externa Clave de restriccin 1NF 2NF 3NF 4NF

www.pdftron.com
7. Cul de las siguientes no podra ser utilizada como una clave principal? a. b. c. d. Nmero de Seguro Social Direccin Nmero de empleado Nmero de serie para un componente electrnico 8. Cuantos ndices puede tener para una base de datos? 9. Cmo se llama cuando tiene ms de una columna que acta como clave principal? 10. Cuando dene una clave principal, cumple los criterios para _________.

AM RI

CA

Comprender el Almacenamiento de Datos

101

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-1000 PC-1250 PC-1500

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

ETC

IBE RO

www.pdftron.com
Evaluacin de Competencia
Caso 4-3: Crear un ndice Clustered Usted es un ABD para la AdventureWorks Corporation. Ha creado recientemente algunas bases de datos y se ha dado cuenta de cun grande ser la base de datos en el futuro. Por lo tanto, necesita crear un nuevo ndice clustered para ayudar con el desempeo general. 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?

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?

AM RI
Dell SlimPC 400LX, 2.25Ghz, 2gb RAM, 160GB HD Dell OptiPC 300XD 1.5Ghz, 4gb RAM, 200 GN HD

Dell OptiPC 200XD, 2.0 Ghz, 512mb RAM, 40 GB HD

CA

Caso 4-1: Mirando en 1NF

102

Leccin 1

Caso 4-4: Crear un ndice Clustered utilizando Transact-SQL 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

ETC

IBE RO
ID 4 1 3 Item 23 12 66 Value 66 59 24

www.pdftron.com
Ahora deber ver la salida en el panel de resultados (debajo de la ventana del Query Editor), lo siguiente: 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 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.

AM RI

CA

Comprender el Almacenamiento de Datos

103

Figura 4-24
Cuadro de Dilogo de Nueva Consulta

ETC

IBE RO
SELECT * FROM PlanetsID ID 1 3 4 Item 12 66 23 Value 59 24 66

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: 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: 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.

AM RI

CA

3. En el campo del Nombre de ndice, teclee IX_ID (como se muestra en la Figura 4-18). En el campo de Tipo de ndice, seleccione Clustered desde el men desplegable. Haga clic en el botn Agregar, luego seleccione la columna ID, nalmente, haga clic en el botn ACEPTAR.

ETC

IBE RO

www.pdftron.com

AM RI

CA

Leccin 5

Administracin de una Base de Datos


Matriz de Dominio de objetivos
Habilidades/Conceptos Asegurar Bases de Datos

Respaldar y Restaurar Bases de Datos

Trminos Clave

ETC

IBE RO

www.pdftron.com
Autenticacin Respaldo Seguridad de base de datos Respaldo diferencial Respaldo completo Usuario invitado Respaldo incremental Respaldos de log Inicio de sesin Permisos Restaurar Funciones del servidor Cuenta sa Sysadmin Cuentas de usuario

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.

AM RI
5.1 5.2

Descripcin del Dominio del objetivo Comprender Conceptos de Seguridad de Bases de Datos Comprender los Respaldos y Restauraciones de Bases de Datos

CA
Nmero del objetivo

106

Leccin 5

Seguridad de bases de datos


EN RESUMEN

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. 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.

ETC

IBE RO

www.pdftron.com
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. Un inicio de sesin (login or logon) es el proceso por el cual el acceso individual a un sistema de computadora es controlado por la identicacin del usuario utilizando sus credenciales. El mtodo de inicio de sesin ms comn es con un nombre de usuario y una contrasea. Una cuenta de usuario es una representacin lgica de una persona dentro de un sistema electrnico. Es importante tener en cuenta los derechos y permisos para cada objeto ya que podra conceder inadvertidamente, por ejemplo, CONTROL SERVER a un inicio de sesin, que concede a ese usuario los mismos derechos que el sysadmin del servidor. Los usuarios son asignados a funciones (roles), los cuales podran conceder permisos a objetos. Cada objeto tiene un propietario, una propiedad tambin afecta los permisos.

AM RI

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.

Administracin de una Base de Datos

107

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.

f Seguridad de nivel de servidor

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) 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.

Tome Nota

Los usuarios pueden iniciar sesin a un SQL Server utilizando ya sea un inicio de sesin de dominio de Windows, inicio de sesin de nombre de usuario o un inicio de sesin de SQL Server.

ETC

IBE RO

www.pdftron.com
Cules son las funciones asignadas a un Microsoft SQL Server y cules funciones son asignadas a una base de datos SQL? 5.1

; Listo para la certicacin

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). 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.

AM RI

CA

108

Leccin 5

f Seguridad de Nivel de base de datos

Tome Nota 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

Cada permiso de objeto es asignado a travs ya sea de la concesin, revocacin o negacin de permisos de inicio de sesin. Conceder permiso signica que el usuario puede acceder al objeto Denegar permiso reemplaza un permiso concedido Revocar remueve el permiso asignado, sin importar si est denegado o concedido. Un usuario puede tener mltiples rutas de permiso a un objeto (individualmente, a travs de una funcin de base de datos estndar y a travs de la funcin pblica). Si cualquiera de estas rutas son denegadas, el usuario entonces ser bloqueado y no podr acceder al objeto.

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

IBE RO
Cuenta de servicio de SQL Server

www.pdftron.com
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

AM RI

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.

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).

Administracin de una Base de Datos

109

La Autenticacin es el acto de establecer o conrmar una identidad de usuario o sistema. El modo de autenticacin de Windows es superior al modo mixto ya que los usuarios no necesitan aprender otra contrasea debido a que aprovecha el diseo de seguridad de la red. Utilizar la Autenticacin de Windows signica que los usuarios deben tener una cuenta de Windows vlida con el n de que sea reconocida por SQL Server. El SID de Windows (identicador de seguridad) es enviado al SQL Server. La Autenticacin de Windows es muy robusta puesto que autenticar no slo a los usuarios de Windows, sino tambin a los usuarios dentro de los grupos de usuarios de Windows. Cuando un grupo de usuario de Windows es aceptado como un inicio de sesin de SQL Server, cualquier usuario de Windows que sea miembro del grupo puede ser autenticado por SQL Server. El acceso, funciones y permisos pueden ser asignados para el grupo de usuarios de Windows y se aplicarn a cualquier usuario de Windows en el grupo. 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

IBE RO

www.pdftron.com
Agregar un nuevo Inicio de sesin de Windows
Los usuarios de Windows son creados y administrados en varios lugares en diferentes versiones de Windows. En Windows Vista y versiones ms nuevas, los usuarios locales pueden ser administrados seleccionando el Panel de Control, despus Herramientas Administrativas y nalmente Administracin de equipos. Los usuarios del dominio son administrados con herramientas tales como el Active Directory Users y Computers. Una vez que existen los usuarios en la lista de usuarios de Windows o el dominio de Windows, SQL Server los puede reconocer.

Agregar un Nuevo Inicio de sesin para SQL Server

PREPRESE. Agregar un Nuevo Inicio de sesin para SQL Server 1. Abra Seguridad y despus Seleccin de usuario debajo del servidor y utilice el men de contexto para seleccionar nuevo inicio de sesin (como se muestra en la Figura 5-1).

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.

110

Leccin 5

Tabla 5-1
Agregando un nuevo usuario

Eligiendo un nombre de usuario

ETC

IBE RO

www.pdftron.com
Tabla 5-2 2. En el Nuevo dilogo de la pgina General del usuario de la base de datos (como se muestra en la Figura 5-2) y/o utilice el botn de buscar para localizar el usuario de Windows (como se muestra en la Figura 5-3).

AM RI

CA

Administracin de una Base de Datos

111

Tabla 5-3
Buscando un nombre de usuario existente

Bsqueda de usuarios existentes

ETC

IBE RO

www.pdftron.com
Tabla 5-4 3. Puede introducir un nombre de usuario o utilizar el botn Buscar para buscar a un usuario (como se muestra en la Figura 5-4 y Figura 5-5). Los usuarios de Windows son administrados y asignados a diferentes grupos de Windows utilizando la herramienta Administracin de equipos.

AM RI

CA

112

Leccin 5

Tabla 5-5
Inicios de Sesin de SQL Serverusuario

Tome Nota

Al usuario se le puede conceder acceso a las bases de datos en la cha Acceso a base de datos.

ETC

IBE RO

www.pdftron.com
El usuario puede estar asignado a una base de datos y lenguaje predeterminados en la parte inferior del cuadro de dilogo de las propiedades de inicio de sesin de SQL Server, pero note que el asignar una base de datos predeterminada a un usuario, no se concede automticamente el acceso a esa base de datos. Al usuario puede otorgrsele el acceso a las bases de datos en la cha Acceso a base de datos. Para crear un inicio de sesin utilizando la sintaxis de Transact-SQL de forma que pueda agregar un usuario o grupo de Windows, ejecute el comando CREATE LOGIN. Asegrese de utilizar un nombre de usuario de Windows completo, incluyendo el nombre de dominio, del usuario que est tratando de agregar como se indica a continuacin: CREATE LOGIN [XPS\Joe] FROM WINDOWS; GO 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.

Remover un Inicio de sesin de Windows


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.

AM RI

CA

Administracin de una Base de Datos

113

Tabla 5-6
Eliminando un Usuario Existente Serverusuario

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

f Roles de nivel Servidor de base de datos

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.

IBE RO
DROP LOGIN XPS\Joe

www.pdftron.com
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:

Roles jos de servidor


El SQL Server incluye Roles de jos predenidas. Principalmente, estos roles conceden permisos para desempear ciertas tareas administrativas relacionadas con el servidor. Un

AM RI

CA

114

Leccin 5

usuario puede pertenecer a varias funciones. 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

Processadmin: Puede detener la ejecucin de un proceso de SQL Server Securityadmin: Puede administrar los inicios de sesin para el servidor

Serveradmin: Puede congurar el servidor, incluyendo la conguracin de

bsquedas de texto completo y apagar el servidor Setupadmin: Puede congurar servidores enlazados, procedimientos almacenados extendidos y el procedimiento almacenado de inicio Sysadmin: Puede desempear cualquier actividad en la instalacin de SQL Server, independientemente de cualquier otra conguracin de permiso. La funcin de sysadmin incluso anula permisos denegados en un objeto. El usuario que el SQL Server crea automticamente durante la instalacin del software es el BUILTINS/Administrators el cual incluye todos los usuarios de Windows en el grupo de Administradores de Windows y permite una eleccin de qu grupos o usuarios son agregados durante la instalacin. El usuario BUILTINS/Administrators puede ser eliminado o modicado si se desea despus de la instalacin.

ETC

IBE RO

www.pdftron.com
Si agrega un usuario al grupo de funciones del sysadmin, el usuario debe reconectarse a la instancia del SQL Server a n de que las capacidades de la funcin del sysadmin surtan efecto. Los roles de servidor son establecidas en el Management Studio en la pgina de las Funciones del Servidor del cuadro de propiedades del inicio de sesin (como se muestra en la Figura 5-7).

AM RI

CA

Administracin de una Base de Datos

115

Tabla 5-7
Cuadro de dilogo Propiedades de Inicio de Sesin

ETC

IBE RO
Rol pblico Roles denidos por el Usuario

www.pdftron.com
En sintaxis de Transact-SQL, puede asignar un usuario a diferentes funciones de servidor por medio de un procedimiento almacenado, como sigue: sp_addsrvrolemember [ @loginame = ] login , [ @rolename = ] role Por ejemplo, el siguiente cdigo agrega el inicio de sesin del usuario XPS\Lauren al rol del sysadmin: 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. 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.

AM RI

CA

116

Leccin 5

f Conceder Acceso a 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. 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.

ETC

IBE RO
USE Family DROP USER LRN EXEC sp_adduser Guest

www.pdftron.com
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.

Cuentas de inicio de sesin de Invitado


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:

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.

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.

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.

Administracin de una Base de Datos

117

Seguridad de Objeto
Si un usuario accede a la base de datos, entonces se puede conceder el permiso a los objetos individuales de la base de datos. El permiso se puede conceder ya sea directamente al 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.

f Roles de nivel de base de datos

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:

ETC

IBE RO

www.pdftron.com
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).

db_accessadmin: Puede autorizar a un usuario acceder a la base de datos, pero no administrar la seguridad de nivel de base de datos. db_backupoperator: Puede desarrollar respaldos, puntos de control y comandos de DBCC, pero no restauraciones (slo los sysadmins del servidor pueden realizar restauraciones). db_datareader: Puede leer los datos en la base de datos. Esta funcin es el equivalente de una concesin a todos los objetos de esta y puede ser anulado por medio de la negacin de un permiso. db_datawriter: Puede escribir a toda la informacin en la base de datos. Esta funcin es el equivalente a una concesin a todos los objetos y puede ser anulado por medio de la negacin de un permiso. db_ddladmin: Puede emitir comandos DDL (crear, alterar, eliminar). db_denydatareader: Puede leer desde cualquier tabla en la base de datos. Esta negacin anular cualquier concesin a nivel de objeto. db_denydatawriter: Bloquea la modicacin de informacin en cualquier tabla en la base de datos. Esta denegacin anular cualquier concesin de nivel de objeto. db_owner: Un rol especial que tiene todos los permisos en la base de datos. Esta funcin incluye todas las capacidades de las otras funciones. Es diferente a la funcin de usuario dbo. No tiene el mismo nivel que la funcin sysadmin del servidor, una negacin de nivel de objeto anular la membreca en esta funcin. db_securityadmin: Puede administrar la seguridad de nivel de base de datos, (roles y permisos).

AM RI

DROP TABLE <nombre_tabla>

CA

118

Leccin 5

Asignar roles de base de datos jas con Transact-SQL


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: USE AdventureWorks; CREATE ROLE auditors AUTHORIZATION db_securityadmin; GO

Roles de aplicacin

Un rol de aplicacin es un rol especco de la base de datos con la intencin de permitir a una aplicacin el obtener acceso sin importar el usuario. Por ejemplo, si un programa especco de Visual Basic es utilizado para buscar la tabla Customer y no maneja la identicacin del usuario, el programa de VB puede acceder a SQL Server utilizando un rol de aplicacin codicada. Quien est utilizando la aplicacin obtendr acceso a la base de datos. El cuadro de dilogo Propiedades de funcin de base de datos enlista todos los usuarios asignados a la funcin actual. Para agregar o quitar un usuario del rol, utilice los botones Agregar y Quitar.

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

IBE RO

www.pdftron.com
f Permisos de objetos
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

AM RI

CA

Administracin de una Base de Datos

119

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: 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.

ETC

IBE RO

www.pdftron.com
Conceder permisos de objeto con sentencias de Transact-SQL
Las sentencias de concesin de permisos de objeto de Transact-SQL conceden permisos en una tabla, vista, funcin con valores de tabla, procedimiento almacenado, procedimiento almacenado extendido, funcin escalar, funcin de agregada, consulta de servicio o similar. La declaracin de Transact-SQL para proporcionar la concesin de permiso a un objeto para un usuario especco y su funcin es: GRANT Permission, Permission ON Object TO User/role, User/role WITH GRANT OPTION 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

AM RI

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.

120

Leccin 5

Mltiples usuarios o roles y mltiples permisos, pueden enlistarse en el comando. El siguiente cdigo concede permisos de Select y Update al usuario invitado y a LRN:

La opcin WITH GRANT proporciona la capacidad de conceder permisos para el objeto, por ejemplo, el siguiente comando concede a Joe el permiso de Select desde la tabla Email y puede conceder el permiso Select a otros usuarios: GRANT Select ON Email TO Joe WITH GRANT OPTION

f Administrar roles

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.

Administrando roles con sentencias de Transact-SQL

ETC

IBE RO
DROP ROLE Manager

www.pdftron.com
CREATE ROLE Manager 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: 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: EXEC sp_dropRoleMemberManager , Joe

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:

Estructura jerrquica de roles


Si la estructura de seguridad es compleja, entonces una tcnica de organizacin de permisos poderosa es la que disea la estructura jerrquica de roles de base de datos estndar. En otras palabras, puede anidar funciones de base de datos denidas por el usuario. El rol worker puede tener acceso limitado.

AM RI

CA

GRANT Select, Update ON Emails to Guest, LRN

Administracin de una Base de Datos

121

Para llevar a cabo este tipo de diseo, siga estos pasos:


1. Crear el rol worker y establecer sus permisos.

2. Crear el rol de administracin y establecer sus permisos. Agregar la funcin de administracin como usuario al rol worker.

3. Crear el rol admin. Agregue el rol admin como un usuario a la funcin de administracin.

La ventaja de este tipo de organizacin de seguridad es que un cambio en el nivel inferior afecta a todos los niveles superiores. Como resultado, se requiere administracin en una sola ubicacin, en lugar de docenas de ubicaciones.

f Seguridad de objetos y Management Studio

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.

ETC

IBE RO

www.pdftron.com
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). 2. En el Navegador de Objetos, seleccione Propiedades desde el men de contexto para abrir el dilogo de Propiedades para ese tipo de objeto. 3. Haga clic en la pgina de Permisos para abrir el cuadro de dilogo Propiedades de Objeto.

Modicar el permiso de un objeto

La seccin superior del formulario es para seleccionar un usuario o rol y asignarle o vericar permisos. El usuario debe tener acceso a la base de datos que ser seleccionada. Al igual que con la conguracin de sentencias de permisos en la cha Propiedades de Seguridad de la Base de Datos, puede seleccionar conceder, withgrant o denegar. La lista de objetos en la parte superior del cuadro de dilogo enlista todos los objetos en la base de datos. Esta lista puede utilizarse para cambiar rpidamente a otros objetos sin salir del formulario a la consola y seleccionar un objeto diferente. 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.

Establecer permisos desde la lista de usuario


Desde la lista de los usuarios de la base de datos en Management Studio, seleccione un usuario y haga doble clic o seleccione Propiedades del men de contexto al hacer clic

AM RI

CA

El rol de administracin puede tener todos los derechos de worker adems de derechos adicionales para buscar tablas. El rol del administrador podra tener derechos de administracin adems del derecho para desempear otras tareas de administracin en la base de datos.

122

Leccin 5

Tabla 5-8
Cuadro de dilogo Propiedades de inicio de sesin Server usuario

derecho. El cuadro de dilogo Propiedades de Usuario de la base de datos se utiliza para asignar usuarios a los roles (como se muestra en la Figura 5-8).

ETC

IBE RO

www.pdftron.com
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.

Establecer permisos desde la lista de roles


La tercera forma de controlar los permisos de objetos es desde el rol de la base de datos. Para abrir el cuadro de dilogo de propiedades de los roles de la base de datos, haga doble clic en un rol en la lista de funciones o seleccione Propiedades desde el men de contexto al hacer clic derecho. El cuadro de dilogo de las propiedades de las Funciones de la Base de Datos se puede utilizar para asignar usuarios u otros roles al rol y para eliminarlos del rol. El 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.

AM RI

CA

Administracin de una Base de Datos

123

f Cadenas de propiedad

Por ejemplo:

En estos casos, el usuario debe tener permiso para ejecutar el procedimiento almacenado o realizar una seleccin de la vista. El hecho de que el usuario tambin necesite permiso para seleccionar de las tablas subyacentes, depende de la cadena de propiedad del objeto que llame el usuario hacia las tablas subyacentes. Si la cadena de propiedad permanece sin romperse desde el procedimiento almacenado hacia las tablas subyacentes, el procedimiento almacenado puede ejecutarse utilizando el permiso de su propietario. El usuario nicamente necesita permiso para ejecutar el procedimiento almacenado. El procedimiento almacenado puede utilizar el permiso de su propietario para acceder a las tablas subyacentes. El usuario no necesita tener permiso para las tablas subyacentes.

ETC

IBE RO
Cuando se rompe la cadena:

www.pdftron.com
Tome Nota 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.

La cadena de propiedad de dbo.Aa dbo.Ba dbo.Person permanece sin romperse, as que dbo.A puede invocar adbo.B y acceder adbo.Person como dbo. La cadena de propiedad de dbo.A a Sue.C a Joe.Purchase se rompe debido a que se encuentran presentes diferentes propietarios. Por lo tanto dbo.A llama a Sue.C utilizando los permisos de Joe, y Sue.C accede a Joe.Purchase utilizando los permisos de Joe. La cadena de propiedad de dbo.A a travs de dbo.B a Joe.Person tambin se rompe, as que dbo.A llama a dbo.B utilizando los permisos de dbo, pero dbo.B debe acceder a Joe.Purchase utilizando los permisos de Joe. Es posible que dbo, Sue, y Joe tengan el mismo propietario. En este caso, la cadena de propiedad funcionar.

AM RI

Un programa puede invocar un procedimiento almacenado y luego seleccionar datos de una tabla. Un informe puede seleccionar de una vista, la cual realice una seleccin de una tabla. Un procedimiento almacenado complejo puede invocar otros varios procedimientos almacenados.

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.

124

Leccin 5

f Un ejemplo de un modelo de seguridad


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.
Tabla 5-1
Conguracin de permisos para PBXKites

Rol estndar

Funcin jerrquica

Tablas de grupo de archivos primarios

Tablas de grupo de archivo estticos

Clerk

IBE RO
Usuario

www.pdftron.com
Permisos Select Tabla 5-2
Usuarios y sus funciones para OBXKites

Admin Rol jo de base de datos Customer

Db_owner

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

AM RI
Roles estndar en la base de datos Admin Public IT DBA Clerk

IT

Funcin de servidor Sysadmin

CA
Otros permisos Ejecuta permisos para varios procedimientos almacenados que leen y actualizan tablas diarias.

Administracin de una Base de Datos

125

Respaldar y restaurar bases de datos


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. 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.

f Respaldos de bases de datos

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.
; Listo para la certicacin

ETC

IBE RO

www.pdftron.com
Cul es la diferencia entre un respaldo completo y uno incremental? 5.2

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.

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

AM RI

CA

EN RESUMEN

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.

Tabla 5-3
Tipos de respaldos de bases de datos

Tipo de respaldo Respaldos de bases de datos Respaldos diferenciales de bases de datos

Respaldos parciales

Tabla 5-4
Tipos de 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.
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.

ETC

IBE RO
Respaldo parcial diferencial

www.pdftron.com
Respaldos de archivos
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.

AM RI

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.

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.

Administracin de una Base de Datos

127

Tabla 5-5
Tipos de respaldos de archivos

Tipo de respaldos Respaldo de archivo

Descripcin Un respaldo completo de todos los datos en uno o ms archivos o grupos de archivos. Importante: Bajo el modelo de recuperacin simple, los respaldos de archivos se encuentran bsicamente restringidos a grupos de archivos de slo lectura. Puede crear un respaldo de archivos de un grupo de archivos de lectura/escritura, pero antes de poder restaurar un respaldo de archivos de lectura/escritura debe establecer el grupo de archivos a slo lectura y tomar un respaldo de archivos de slo lectura diferencial. Un respaldo de uno o ms archivos que contienen datos que cambiaron desde el respaldo completo ms reciente de cada archivo. Nota: Bajo un modelo de recuperacin simple, este asume que los datos han cambiado a slo lectura desde el archivo completo.

Respaldos de archivos diferenciales

Dispositivos de respaldo

f Restaurar bases de datos

SQL Server soporta una variedad de escenarios de restauracin que se encuentran incluidas en esta seccin Los escenarios de restauracin incluyen lo siguiente: Restauracin completa de la base de datos: Restaura toda la base de datos, empezando con un respaldo completo de la base de datos, que puede ir seguido por una restauracin de base de datos diferencial (y respaldos log). Restauracin de archivos: Restaura un archivo o grupo de archivos en una base de datos de grupos de archivos mltiples. Despus de una restauracin de archivos completa, se puede restaurar un respaldo de archivos diferencial. Restauracin de pgina: Restaura pginas individuales. Restauracin por Etapas: Restaura la base de datos por etapas, empezando con el grupo de archivos primario y uno o ms grupos de archivos secundarios. Slo recuperacin: Recupera datos que son consistentes con la base de datos y necesita slo estar disponible.

ETC

IBE RO

www.pdftron.com
Calendarizar respaldos
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.

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.

AM RI

CA

128

Leccin 5

Usar el SSMS

Para insertar datos a travs de una herramienta de interfaz grca, siga los siguientes pasos.

Modicar el permiso de un objeto

PREPRESE. Antes de comenzar, asegrese de abrir la aplicacin de SQL Server Management Studio y conectarse a la base de datos con la que desee trabajar.

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. 3. Haga clic derecho en la base de datos, coloque el cursor sobre Tareas y haga clic en Restaurar.

ETC

IBE RO

www.pdftron.com
4. Haga clic en Base de Datos, para abrir el cuadro de dilogo Restaurar Base de Datos. 5. En la pgina General, el nombre de la base de datos a restaurar aparece en la lista A una base de datos. Para crear una nueva base de datos, introduzca su nombre en la lista. 6. En el cuadro de texto A un momento dado, conserve ya sea la opcin predeterminada (lo ms reciente posible) o seleccione una fecha y hora especca al hacer clic en el botn explorar, que abre el cuadro de dilogo Restauracin a un momento dado. 7. Para especicar la fuente y ubicacin de los respaldos a restaurar, haga clic en una de las siguientes opciones:

Desde base de datos Introduce el nombre de una base de datos en la lista. Desde dispositivo Haga clic en el botn restaurar que abre el cuadro de dilogo Especicar copia de seguridad. En la lista Medio para copia de seguridad, seleccione uno de los tipos de dispositivos enlistados. Para seleccionar uno o ms dispositivos de la lista ubicacin de la copia de seguridad, haga clic en Agregar. Despus de agregar los dispositivos que quiera de la lista Ubicacin de la copia de seguridad, haga clic en Aceptar para regresar a la pgina General.

8. En Seleccionar los conjuntos de copia de seguridad que va a restaurar, seleccione los respaldos a restaurar. Este apartado muestra los respaldos disponibles en la ubicacin especicada. De forma predeterminada, se recomienda un plan de recuperacin. Para sustituir el plan de recuperacin especca, puede cambiar la seleccin en la cuadrcula. Cualquier respaldo que dependa de un respaldo no seleccionado se desactiva de forma automtica. 9. Para ver o seleccionar las opciones avanzadas, haga clic en Opciones en el panel Seleccionar una pgina.

10. En el panel Opciones de restauracin, puede seleccionar cualquiera de las siguientes opciones si corresponden a su situacin:

AM RI

CA

Restauracin log de transacciones: Bajo el modelo de restauracin completo o bulk-log, se requiere de respaldos log de restauracin para alcanzar el punto de restauracin deseado. Crear una base de datos espejo. Crear y mantener un servidor en standby (espera).

Administracin de una Base de Datos

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. 12. El panel Estado de recuperacin determina el estado de la base de datos despus de la operacin de restauracin. El comportamiento predeterminado es:

Dejar la base de datos lista para 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 13. De manera alternativa, puede seleccionar cualquiera de las siguientes opciones:

Deje la base de datos como no-operacional y no revierta las transacciones no completas. Los logs de transacciones adicionales se pueden restaurar. (RESTORE WITH NORECOVERY). Deje la base de datos en modo slo lectura. Deshaga las transacciones no completadas, pero guarde las acciones deshechas en un archivo en standby para que los efectos de recuperacin se pueda revertir. (RESTORE WITH STANDBY).

ETC

IBE RO

www.pdftron.com
Uso del comando RESTORE
EL comando Transact-SQL RESTORE le permite llevar a cabo los siguientes escenarios de restauracin: Restaurar toda una base de datos de un respaldo de bases de datos completa (restauracin completa). Restaurar parte de una base de datos (restauracin parcial). Restaurar archivos especcos o grupos de archivos en una base de datos (restauracin de archivos). Restaurar pginas especcas en una base de datos (restauracin de pginas). Restaurar un log de transacciones en una base de datos (restauracin de log de transacciones). Revertir una base de datos a un punto especco capturado por una snapshot (lnea base) de base de datos

AM RI

CA

Sobrescribir la base de datos existente Conservar la conguracin de replicacin Preguntar antes de restaurar cada copia de seguridad Restringir el acceso a la base de datos restaurada

130

Leccin 5

Resumen de Habilidades
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

AM RI

CA

En esta leccin aprendi:

Administracin de una Base de Datos

131

Evaluacin de Conocimientos
Verdadero o Falso

Encierre la V si la frase es cierta o F si es falsa. V V V V V F F

F F

ETC

IBE RO
Opcin mltiple a. b. c. d. GRANT REVOKE PERMIT DENY

www.pdftron.com
Completar los espacios en blanco Complete las siguientes frases al escribir la palabra o palabras correctas en los espacios en blanco proporcionados.
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.

Encierre la letra que corresponde a la respuesta. 1. Cul de las siguientes opciones no es un comando T-SQL para manejar permisos?

AM RI

1. Un usuario debe tener permisos para acceder a los archivos que conforman la base de datos para poder utilizar la base de datos. 2. Utilice la sentencia CREATE LOGIN para permitirle a una cuenta de Windows acceder a SQL-Server. 3. Cualquier permiso DENY siempre reemplaza un permiso concedido. 4. Utilice la sentencia CREATE ROLE para crear funciones nuevas dentro de una base de datos. 5. Los respaldos diferenciales mltiples deben restaurarse en el mismo orden en el cual se crearon originalmente.

CA

El respaldo diferencial slo respalda los datos desde la ltima actualizacin completa. El respaldo incremental slo respalda los datos desde el ltimo respaldo completo o incremental.

132

Leccin 1

2. Cul de las siguientes opciones no es un nivel de seguridad soportado por SQL-Server?

3. Cul de las siguientes opciones no es un permiso de base de datos que pueda aplicarse a objetos? a. b. c. d. DROP SELECT INSERT UPDATE

4. Indique cules de las siguientes opciones son soportadas por escenarios de restauracin de bases de datos. a. b. c. d. a. b. c. d.

Restaurar toda una base de datos a partir de un respaldo completo Restaurar toda una base de datos a partir de una serie de respaldos parciales Restaurar parte de una base de datos utilizando respaldos parciales Restaurar archivos especcos utilizados por la base de datos Completo Diferencial Archivo Dispositivo

ETC
a. b. c. d.

IBE RO
a. b. c. d. Fulladmin Sa Admin Administrator a. b. c. d. Diskadmin SecurityAdmin Sysadmin Db_owner Db_owner Db_accessadmin Db_securityadmin Db_ddladmin

www.pdftron.com
6. Cul es la cuenta SQL prediseada utilizada en modo mixto que tiene acceso total al SQL Server? 7. Se le acaba de contratar como administrador de la base de datos y quiere dar acceso total de administrador de base de datos a su SQL Server. Cul rol debera asignar? 8. Cul rol da acceso total a una base de datos individual?

5. Cul de las siguientes opciones no es un tipo de respaldo soportado por SQL Server?

AM RI

CA

a. b. c. d.

Server Database (Base de datos) Table (Tabla) Task (Tarea)

Administracin de una Base de Datos

133

9. El mejor mtodo de recuperacin de datos es __________. a. b. c. d. a. b. c. d. Respaldar, respaldar, respaldar Utilizar RAID Utilizar UPS Utilizar NICs redundantes Cualquiera Completo Compartido Mixto

10. Cul modo permite inicios de sesin de cuentas de Windows y de SQL?

Evaluacin de destreza

Escenario 5-1: Seguridad de SQL Server

Evaluacin de dominio

ETC

IBE RO

www.pdftron.com
Escenario 5-2: Uso de respaldos completos e incrementales 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? Escenario 5-3: Respaldo de una base de datos Como administrador de bases de datos experimentado, comprende la importancia de los respaldos. Puesto que va a llevar a cabo algunas tareas de mantenimiento a las bases de datos y a los servidores de bases de datos, decide llevar a cabo un respaldo. Por lo tanto, utilizando SQL Server Management Studio, cules pasos usara para realizar un respaldo completo de AdventureWorks y guardarlo en su disco duro? Escenario 5-4: Restaurar un respaldo (Restauracin completa) Cuando estaba llevando a cabo algunas tareas de mantenimiento, una de sus tablas se da. Afortunadamente, haba realizado un respaldo de la base de datos. Por lo tanto, utilizando SSMS, cules pasos usara para restaurar la base de datos que respald en el ejercicio anterior?
Deje la base de datos lista para utilizar al revertir las transacciones no cometidas. Los logs de transacciones adicionales no se pueden restaurar. (RESTORE WITH RECOVERY)

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?

AM RI

CA

ETC

IBE RO

www.pdftron.com

AM RI

CA

Apndice A

Fundamentos de bases de datos


Fundamentos: Examen 98-364
Dominio del Objetivo

Comprender cmo la informacin es almacenada en tablas. Comprender los conceptos de bases de datos relacionales. Comprender el lenguaje de manipulacin de datos (DML). Comprender el lenguaje de denicin de datos (DDL). Seleccionar tipos de datos. Crear vistas.

Seleccionar datos. Insertar datos. Actualizar datos. Eliminar datos.

IBE RO

www.pdftron.com
2.3 2.4 3.1 3.2 3.3 3.4 4.1 4.2 4.3 5.1 5.2 2 2 3 3 3 3 4 4 4 5 5 Crear procedimientos almacenados y funciones Comprender la Normalizacin.. Comprender los ndices. Comprender las claves principales, externas y compuestas.. Comprender Conceptos de Seguridad de Bases de Datos. Comprender los Respaldos y Restauraciones de Bases de Datos.

Comprender las tablas y saber cmo crearlas .

ETC

AM RI
Nmero de la Habilidad 1.1 1 1.2 1 1.3 1 1.4 2.1 2.2 1 2 2

CA
Nmero de la Leccin

ETC

IBE RO

www.pdftron.com

AM RI

CA

www.pdftron.com

www.pdftron.com

S-ar putea să vă placă și