Aplicaciones Distribuidas 01

Embed Size (px)

Citation preview

  • 7/22/2019 Aplicaciones Distribuidas 01

    1/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooIITTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    1

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLL

    SSeerrvveerr22000088

  • 7/22/2019 Aplicaciones Distribuidas 01

    2/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    2

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    IINNTTRROODDUUCCCCIIOONNAALLAASSBBAASSEESSDDEEDDAATTOOSS

    QQUUEESSUUNNAABBAASSEEDDEEDDAATTOOSS??

    En la vida cotidiana se interacciona continuamente con entidades tales como personas, documentos uotros. En una empresa, las entidades estn representadas por los operarios, los empleados, los clientes, los

    proveedores, las facturas. En un hospital nos encontraramos con los mdicos, pacientes, enfermeras,cuadros clnicos, etc. Puesto que en cada caso se debe trabajar con una gran cantidad de datos, surge lanecesidad de almacenarlos de manera que nos resulten de fcil acceso en cada momento y, porconsiguiente, tiles a nuestras actividades. Si por ejemplo cada da debemos gestionar varias decenas declientes y facturas, utilizaremos un sistema para memorizar los datos como, por ejemplo, un archivo, msbien antes que recurrir nicamente a la memoria de su computador.

    Las fichas aparecen reagrupadas en archivos, cada uno de los cuales contiene en general las fichas de unslo tipo, las de los proveedores o las de los productos. Este sistema recibe el nombre de base de datos,que no es ninguna otra cosa ms que una coleccin de informaciones tales como el catlogo de los ficherosde una biblioteca, un listn telefnico o una enciclopedia. Los programas de gestin de base de datos

    (Database) estn programados para realizar operaciones que nos permiten acceder y, eventualmente,modificar los datos almacenados. Estas operaciones consisten en: Introduccin, cancelacin, modificacin ybsqueda de informacin a partir de los criterios seleccionados por el usuario de orden, clasificacin eimpresin de los listados, por ejemplo, bajo el formato de etiquetas adhesivas para sobres.

    EESSTTRRUUCCTTUURRAADDEELLAASSBBAASSEESSDDEEDDAATTOOSS

    Una vez se ha instalado Microsoft SQL Server 2005 y se ha diseado una distribucin de bases de datos ydiscos, se est preparado para crear una base de datos. SQL Server 2005 hace uso de los mtodosmejorados de almacenamiento de datos y administracin del espacio que se presentaron en SQL Server

    2000. Las versiones anteriores del producto utilizaban dispositivos lgicos y segmentos de un tamao fijopara el almacenamiento de los datos; SQL Server 2005 usa archivos y grupos de archivos que pueden serconfigurados para que crezcan o decrezcan automticamente.

    BBAASSEESSDDEEDDAATTOOSSDDEESSQQLLSSEERRVVEERR

    SQL Server soporta bases de datos del sistema y bases de datos del usuario.Las bases de datos del sistema, almacenan informacin que permite operar y administrar el sistema,mientras que las de usuario almacenan los datos requeridos por las operaciones del cliente.Las bases de datos del sistema son:

  • 7/22/2019 Aplicaciones Distribuidas 01

    3/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    3

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    MMaasstteerr

    La base de datos master se compone de las tablas de sistema que realizan el seguimiento de la instalacindel servidor y de todas las bases de datos que se creen posteriormente. Asimismo controla las asignacionesde archivos, los parmetros de configuracin que afectan al sistema, las cuentas de inicio de sesin. Estabase de datos es crtica para el sistema, as que es bueno tener siempre una copia de seguridad actualizada.

    TTeemmppddbb

    Es una base de datos temporal, fundamentalmente un espacio de trabajo, es diferente a las dems basesde datos, puesto que se regenera cada vez que arranca SQL Server. Se emplea para las tablas temporalescreadas explcitamente por los usuarios, para las tablas de trabajo intermedias de SQL Server durante elprocesamiento y la ordenacin de las consultas.

    MMooddeell

    Se utiliza como plantilla para todas las bases de datos creadas en un sistema.

    Cuando se emite una instruccin CREATE DATABASE, la primera parte de la base de datos se crea copiandoel contenido de la base de datos model, el resto de la nueva base de datos se llena con pginas vacas.

    MMssddbb

    Es empleada por el servicio SQL Server Agent para guardar informacin con respecto a tareas deautomatizacin como por ejemplo copias de seguridad y tareas de duplicacin, asimismo solucin aproblemas.

    La informacin contenida en las tablas que contiene esta base de datos, es fcilmente accedida desde elAdministrador Empresarial, as que se debe tener cuidado de modificar esta informacin directamente a

    menos que se conozca muy bien lo que se est haciendo.

    DDiissttrriibbuuttiioonn

    Almacena toda la informacin referente a la distribucin de datos basada en un proceso de replicacin.

  • 7/22/2019 Aplicaciones Distribuidas 01

    4/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    4

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Las TTaabbllaass son objetos de la base de datos que contienen la informacin de los usuarios, estos datos estnorganizados en filas y columnas, similar al de una hoja de clculo. Cada columna representa un dato aisladoy en bruto que por s solo no brinda informacin, por lo tanto estas columnas se deben agrupar y formaruna fila para obtener conocimiento acerca del objeto tratado en la tabla. Por ejemplo, puede definir unatabla que contenga los datos de los productos ofertados por una tienda, cada producto estararepresentado por una fila mientras que las columnas podran identificar los detalles como el cdigo del

    producto, la descripcin, el precio, las unidades en stock, etc.

    Una Vista es un objeto definido por una consulta. Similar a tabla, la vista muestra un conjunto de columnasy filas de datos con un nombre, sin embargo, en la vista no existen datos, estos son obtenidos desde lastablas subyacentes a la consulta. De esta forma si la informacin cambia en las tablas, estos cambiostambin sern observados desde la vista. Fundamental emplean para mostrar la informacin relevantepara el usuario y ocultar la complejidad de las consultas.

    Los tipos de datos especifican que tipo de valores son permitidos en cada una de las columnas queconforman la estructura de la fila. Por ejemplo, si desea almacenar precios de productos en una columnadebera especificar que el tipo de datos sea Money, si desea almacenar nombres debe escoger un tipo dedato que permita almacenar informacin de tipo carcter.

    SQL Server nos ofrece un conjunto de tipos de datos predefinidos, pero tambin existe la posibilidad dedefinir tipos de datos de usuario.

    Un Procedimiento Almacenado es una serie de instrucciones SQL pre compiladas las cuales organizadaslgicamente permiten llevar a cabo una operacin transaccional o de control. Un Procedimientoalmacenado siempre se ejecuta en el lado del Servidor y no en la mquina Cliente desde la cual se hace elrequerimiento. Para ejecutarlos deben ser invocados explcitamente por los usuarios.

    Un Desencadenador es un Procedimiento Almacenado especial el cual se invoca automticamente anteuna operacin de Insert, Update o Delete sobre una tabla. Un Desencadenador puede consultar otrastablas y puede incluir complejas instrucciones SQL, se emplean para mantener la integridad referencial,preservando las relaciones definidas entre las tablas cuando se ingresa o borra registros de aquellas tablas.

    Los Valores Predeterminados especifican el valor que SQL Server insertar en una columna cuando elusuario no ingresa un dato especfico. Por ejemplo, si se desconoce el apellido materno de un empleadoSQL Server podra incluir automticamente la cadena NN para identificar este campo.

    Las Reglas son objetos que especifican los valores aceptables que pueden ser ingresados dentro de unacolumna particular. Las Reglas son asociadas a una columna o a un tipo de dato definido por el usuario. Unacolumna o un Tipo de dato pueden tener solamente una Regla asociada con l.

    Las Restricciones son restricciones que se asignan a las columnas de una tabla y son controladasautomticamente por SQL Server.

    Esto nos provee las siguientes ventajas:

    Se puede asociar mltiples ccoonnssttrraaiinnttssa una columna, y tambin se puede asociar un constraints amltiples columnas.

    Se pueden crear los Restricciones al momento de crear la tabla CREATE TABLE.

    Los Restricciones conforman el standarsANSI para la creacin y alteracin de tablas, estos no son

    extensiones del TransactSQL.

  • 7/22/2019 Aplicaciones Distribuidas 01

    5/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    5

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Se puede usar un constraintspara forzar la integridad referencial, el cual es el proceso de mantenerrelaciones definidas entre tablas cuando se ingresa o elimina registros en aquellas tablas.

    Los ndices de SQL Server son similares a los ndices de un libro que nos permiten llegar rpidamente a laspginas deseadas sin necesidad de pasar hoja por hoja, de forma similar los ndices de una tabla nospermitirn buscar informacin rpidamente sin necesidad de recorrer registro por registro por toda la

    tabla. Un ndice contiene valores y punteros a las filas donde estos valores se encuentran.

    CCrreeaacciinnddeeBBaasseeddeeDDaattooss

    En trminos sencillos una base de datos de SQL Server es una coleccin de objetos que contiene y

    administra datos. Antes de crear una base de datos es importante entender como es que SQL Serveralmacena la informacin.

  • 7/22/2019 Aplicaciones Distribuidas 01

    6/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    6

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    PPggiinnaassyyeexxtteennssiioonneess

    Antes de crear una base de datos con SQL Server 2000, debemos tomar en cuenta que la unidad bsica dealmacenamiento en SQL Server es la pgina (data page), el tamao de cada padre es de 8 KB, lo cualrepresenta un total de 128 pginas por cada megabyte.

    El comienzo de cada pgina es una cabecera de 96 bytes que se utiliza para almacenar informacin decabecera tal como el tipo de pgina, la cantidad de espacio libre de la pgina y el Id. Del objeto propietariode la pgina.

    Existen ocho tipos de pginas en los archivos de datos de una base de datos SQL Server 2000.

    Tipo de pgina Contenido

    DatosFilas con todos los datos excepto los de tipo text,ntext e image.

    ndice Entradas de ndicesTexto o imagen Datos de tipo text, ntexte image.

    Mapa de asignacin global/Mapa de asignacin global Informacin acerca de las extensiones asignadas.Secundario

    Espacio libre en la pginaInformacin acerca del espacio libre disponible enlas pginas.

    Mapandice.

    de asignacin de Informacin acerca de las extensiones utilizadas porun tabla o ndice

    BulkChanged

    Map

    Informacin de los extends modificados porOperacin bulk desde el ltimo backup del log.

    Los archivos de registro (LOG) no contienen pginas, contienen series de registros.Las pginas de datos contienen todos los datos de las filas de datos excepto los datos text, ntext e image,que estn almacenados en pginas separadas. Las filas de datos se colocan en las pginas una acontinuacin de otra, empezando inmediatamente despus de la cabecera, al final de cada pgina seencuentra una tabla de posiciones de filas que contiene una entrada por cada fila de la pgina y cadaentrada registra la posicin, desde el principio de la pgina, del primer byte de la fila. Las entradas de latabla de posiciones de filas estn en orden inverso a la secuencia de las filas de la pgina.

  • 7/22/2019 Aplicaciones Distribuidas 01

    7/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    7

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    En SQL Server, las filas no pueden continuar en otras pginas.

    Las extensiones son la unidad bsica de asignacin de espacio a las tablas e ndices.

    Consta de 8 pginas contiguas, es decir 64 KB. Lo cual representa 16 extensiones por MB.

    Para hacer que la asignacin de espacio sea eficiente, SQL Server 2000 no asigna extensiones

    enteras a tablas con poca cantidad de datos. SQL Server 2000 tiene dos tipos de extensiones:

    Las extensiones uniformes son propiedad de un nico objeto; slo el objeto propietario puedeutilizar las ocho pginas de la extensin.

    Extensiones mixtas, pueden estar compartidas por hasta ocho objetos.

    Las tablas o ndices nuevos son asignados a pginas de extensiones mixtas. Cuando la tabla o el ndice

    crecen hasta el punto de ocupar ocho pginas, se pasan a extensiones uniformes.

    Archivos y grupos de archivos fsicos de la base de datos

    Un archivo de base de datos no es ms que un archivo del sistema operativo. Una base de datos sedistribuye en por lo menos dos archivos, aunque es muy probable que sean varios los archivos de base dedatos que se especifican al crear o al modificar una base de datos.

    Principalmente SQL Server divide su trabajo en un archivo para datos y otro para el registro de lastransacciones (log).

    SQL Server 2000 permite los tres siguientes tipos de archivos:

    Archivos de datos primariosToda base de datos tiene un archivo de datos primario que realiza el seguimiento de todos los demsarchivos, adems de almacenar datos. Por convenio este archivo tiene la extensin MDF.

    Archivos de datos secundariosUna base de datos puede tener cero o varios archivos de datos secundarios. Por convenio la extensinrecomendada para los archivos de datos secundarios es NDF.

    Archivos de registro (LOG)Todas las bases de datos por lo menos tendrn un archivo de registro que contiene la informacinnecesaria para recuperar todas las transacciones que suceden sobre la misma. Por convenio la extensin deeste archivo es LDF.

  • 7/22/2019 Aplicaciones Distribuidas 01

    8/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    8

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Por lo tanto al crear una base de datos, debemos considerar las siguientes premisas y reglas para elalmacenamiento de los datos:

    1. Todas las Bases de Datos tienen un archivo de base de datos primario (.mdf) y uno para el Log deTransacciones (.ldf). Adems puede tener archivos de datos secundarios (.ndf).

    2. Cuando se crea una Base de Datos, una copia de la Base de Datos Model, la cual incluye tablas delsistema, es copiada en la Nueva Base de Datos.

    3. La Data es almacenada en bloques de 8-kilobytes (KB) de espacio de disco contiguo llamadopginas.

    4. Las filas o registros no pueden atravesar pginas. Esto, es, que la mxima cantidad de datos en unafila de datos simple es de 8060 bytes.

    5. Las tablas y los ndices son almacenados en Extents. Un Extents consta de ocho pginas contiguas, osea 64 KB.

    6. El Log de Transacciones lleva toda la informacin necesaria para la recuperacin de la Base deDatos en una eventual cada del sistema. Por default, el tamao del Log de Transacciones es del25% del tamao de los archivos de datos. Use esta configuracin como punto de partida y ajuste deacuerdo a las necesidades de su aplicacin.

    AArrcchhiivvoossddeeRReeggiissttrroo((LLOOGGddeeTTrraannssaacccciioonneess))

    El LOG de transacciones archiva todas las modificaciones de los datos tal cual son ejecutados. El proceso es

    como sigue:

    1. Una modificacin de datos es enviada por la aplicacin cliente.

    2. Cuando una modificacin es ejecutada, las pginas afectadas son ledas del disco a memoria (Buffer

    Cache), provista de las pginas que no estn todava en la Data Cache del Queryprevio.

    3. Cada comando de modificacin de datos es archivado en el LOG. El cambio siempre es archivado en

    el LOG y es escrito en el disco antes que el cambio sea hecho en la Base de Datos. Este tipo de LOG

    es llamado LOG de tipo write-ahead.

    4. Una vez que las pginas de datos residen en el Buffer Cache, y las pginas de LOG son archivadas

    sobre el disco en el archivo del LOG, el proceso de CHECKPOINT, escribe todas las transacciones

    completas a la Base de Datos en el disco.

    Si el sistema falla, automticamente el proceso de recuperacin usa el LOG de Transacciones para llevarhacia delante todas las transacciones comprometidas (COMMIT) y llevar hacia atrs alguna transaccinincompleta (ROLLBACK).

  • 7/22/2019 Aplicaciones Distribuidas 01

    9/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    9

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Los marcadores de transaccin en el LOGson usados durante la recuperacin automtica para determinarlos puntos de inicio y el fin de una transaccin. Una transaccin es considerada completa cuando elmarcador BEGIN TRANSACTIONtiene un marcador asociado COMMITTRANSACTION. Las pginas de datos

    son escritas al disco cuando ocurre el CHECKPOINT.

    CCrreeaacciinnddeeuunnaaBBaasseeddeeDDaattoossUUttiilliizzaannddooeelllleenngguuaajjeeSSQQLL

    Otra de las formas de crear una base de datos es a travs del Analizador de Consultas, donde emplearemosla sentencia CREATE DATABASE, cuya sintaxis reducida es la siguiente:

    CREATE DATABASE NombreBaseDatos[ ON [PRIMARYNAME = nombreArchivoLgico,

    FILENAME = 'nombreArchivoSO',SIZE = tamao,MAXSIZE = { tamaoMximo | UNLIMITED } ,FILEGROWTH = incrementoCrecimiento) [,n]][ LOG ONNAME = nombreArchivoLgico,FILENAME = 'nombreArchivoSO',SIZE = tamao,MAXSIZE = { tamaoMximo | UNLIMITED } ,FILEGROWTH = incrementoCrecimiento) [,n]

    [COLLATE nombre_collation] [ FOR LOAD | FOR ATTACH ]

  • 7/22/2019 Aplicaciones Distribuidas 01

    10/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    10

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    AArrgguummeennttooss

    NNOOMMBBRREEBBAASSEEDDAATTOOSSEs el nombre de la nueva base de datos, deben ser nicos en un servidor y pueden tener hasta 128caracteres, a menos que no se especifique ningn nombre lgico para el registro. Si no se especifica ningnnombre lgico de archivo de registro, SQL Server genera un nombre lgico al anexar un sufijo a

    nombreBaseDatos.

    OONNEspecifica que los archivos de disco utilizados para almacenar la parte de datos (archivos de datos) se handefinido explcitamente. La palabra clave va seguida de una lista delimitada por comas de elementos quedefinen los archivos de datos del grupo de archivos principal.

    PPRRIIMMAARRYYEspecifica que la lista de archivos est asociada al grupo principal. Este grupo contiene todas las tablas delsistema de base de datos. Tambin contiene todos los objetos no asignados a los grupos de archivos deusuario. El primer archivo especificado pasa a ser el archivo principal, el cual contiene el inicio lgico de la

    base de datos y de las tablas del sistema. Una base de datos slo puede tener un archivo principal. Si no seespecifica PRIMARY, el primer archivo enumerado en la instruccin CREATE DATABASEse convierte en elarchivo principal.

    LLOOGGOONNEspecifica que los archivos de registro de la base de datos (archivos de registro) se han definidoexplcitamente. La palabra clave va seguida de una lista delimitada por comas la cual define lascaractersticas de los archivos de registro. Si no se especifica LOG ON, se crea automticamente un nicoarchivo de registro con un nombre generado por el sistema y un tamao que es el 25% de la suma de lostamaos de todos los archivos de datos de la base de datos.

    FFOORRLLOOAADDClusula que se mantiene por compatibilidad con versiones anteriores de SQL Server.La base de datos se crea con la opcin de base de datos dbo use only activada y el estado se establece en"cargando". En realida esto no es necesario en SQL Server 7.0 porque la instruccin RESTORE puede volvera crear la base de datos como parte de la operacin de restauracin.

    FFOORRAATTTTAACCHHCrea la base de datos desde un conjunto existente de archivos del sistema operativo.Debe existir una entrada de archivos que determine cul es el archivo principal, las otras entradas sonnecesarias si existen archivos creados en una ruta de acceso distinta de cuando se cre la base de datos porprimera vez o se adjunt por ltima vez.

    Utilice el procedimiento almacenado del sistema sp_attach_db en lugar de emplear

    CCRREEAATTEEDDAATTAABBAASSEEFFOORRAATTTTAACCHH directamente, esto deber emplearlo si debe especificar ms de 16archivos.

    CCOOLLLLAATTEEEspecifica el conjunto de caracteres que se emplear para almacenar informacin en la base de datos, sepuede emplear un conjunto de caracteres especificado por Windows o por SQL Server. De no especificarsese emplear el conjunto de caracteres seleccionado en el momento de la instalacin

    NNAAMMEEEspecifica el nombre lgico del archivo.No se requiere este parmetro cuando se especifica FOR ATTACH.Este nombre es el utilizado para referenciar al archivo en las sentencias del Transact-SQL que se ejecuten despus.

  • 7/22/2019 Aplicaciones Distribuidas 01

    11/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    11

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    FFIILLEENNAAMMEEEspecifica el nombre de archivo del sistema (archivo fsico).Se debe especificar la ruta de acceso y nombre de archivo que el sistema operativo utiliza cuando crea labase de datos. La ruta de acceso debe especificar un directorio en el servidor sobre el que se instalo SQLServer.No se puede especificar un directorio en un sistema comprimido de archivos.

    SSIIZZEEEspecifica el tamao para el archivo. De no hacerlo SQL Server utiliza el tamao del archivo principal de labase de datos model.

    Cuando este parmetro no es especificado para un archivo secundario o de registro SQLServer automticamente le asigna 1 MB.El valor mnimo a asignar es de 512 KB. Si no se especifica tamao, el valor predeterminado es 1 MB. Eltamao especificado para el archivo principal debe tener al menos el tamao del archivo principal de labase de datos model.

    MMAAXXSSIIZZEE

    Especifica el tamao mximo de crecimiento del archivo. Se pueden utilizar los sufijos KB y MB, el valorpredeterminado es MB. Especifique un nmero entero; no incluya decimales. Si no se especifica, el archivoaumenta hasta que el disco est lleno.

    UUNNLLIIMMIITTEEDDEspecifica que el archivo aumenta de tamao hasta que el disco est lleno.

    FFIILLEEGGRROOWWTTHHEspecifica el incremento de crecimiento del archivo, este valor no puede exceder el valor MAXSIZE. Empleeun nmero entero. Un valor 0 indica que no hay crecimiento.El valor se puede especificar en MB, KB o %, el valor predeterminado es MB. Cuando se especifica %, el

    tamao de incremento de crecimiento es el porcentaje especificado del tamao del archivo en el momentoen que tiene lugar el incremento. De no emplear FILEGROWTH, el valor predeterminado es 10% y el valormnimo es 64 KB. El tamao especificado se redondea al mltiplo de 64 KB ms cercano.

    OObbsseerrvvaacciioonneess

    Emplee CREATE DATABASE para crear una base de datos y los archivos que almacenan sta. SQL Serverimplementa CREATE DATABASE en dos pasos:

    SQL Server utiliza una copia de model para inicializar la base de datos y sus metadatos.SQL Server rellena el resto de la base de datos con pginas vacas, excepto las pginas que tengan datos

    internos que registren cmo se emplea el espacio en la base de datos.Cualquier objeto definido por el usuario en model se copiar a todas las bases de datos recin creadas.Cada base de datos nueva hereda los valores opcionales de la base de datos model (a menos que seespecifique FOR ATTACH).

    En un servidor se puede especificar un mximo de 32,767 bases de datos.Cuando especfica una instruccin CREATE DATABASEnombreBaseDatos sin parmetros adicionales, labase de datos se crea con el mismo tamao que model.Cada base de datos tiene un propietario con capacidad para realizar actividades especiales. El propietarioes el usuario que crea la base de datos, este propietario se puede cambiar mediante sp_changedbowner

    Para mostrar un informe de una base de datos o de todas las bases de datos de un servidor con SQL Server,ejecute sp_helpdb. Para obtener un informe acerca del espacio utilizado en una base de datos, emplee

  • 7/22/2019 Aplicaciones Distribuidas 01

    12/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    12

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    sp_spaceused. Para obtener un informe de los grupos de archivos de una base de datos, utilicesp_helpfilegroup, y utilice sp_helpfile para obtener el informe de los archivos de la base de datos.

    QQuuiinneessppuueeddeennccrreeaarrbbaasseessddeeddaattooss??

    En forma predeterminada podrn hacerlos los usuarios que pertenecen al rol sysadmin y dbcreator. Los

    miembros de las funciones fijas de servidor sysadmin y SecurityAdmin pueden conceder permisos CREATEDATABASE a otros inicios de sesin. Los miembros de las funciones fijas de servidor sysadmin y dbcreatorpueden agregar otros inicios de sesin a la funcin dbcreator. El permiso CREATE DATABASE debeconcederse explcitamente; no se concede mediante la instruccin GRANT ALL.

    Estos permisos se limitan a unos cuantos inicios de sesin para mantener el control de la utilizacin de losdiscos del equipo que ejecuta SQL Server.

    Ejemplos de creacin de base de datos empleando el Analizador de Consultas Primero ingrese al Analizadorde Consultas para ello primero debe especificar el tipo de autentificacin a realizar del sistema o estndar,vea la siguiente figura:

    HHaabbiilliittaarrlloosssseerrvviicciioossddeeSSQQLLsseerrvveerr

    QQuupprroocceeddiimmiieennttoossiigguuiippaarraahhaabbiilliittaarrlloosssseerrvviicciiooss??

  • 7/22/2019 Aplicaciones Distribuidas 01

    13/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    13

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    IInnggrreessaarraaSSQQLLSSeerrvveerr22000055

    1. Hacer clic en el botn IInniicciioo> EEjjeeccuuttaarr.2. Dentro de ejecutar digitar lo siguiente sqlwb.exe.

    3. Una vez que all indicado el programa aparecer un cuadro de dialogo don uno tiene que asignar elnombre de usuarioy la contraseaO Autenticacin de Windows dependiendo de cmo allestado instalado SQL Server.

    4. Hacer clic en Conectar.

    5. Una vez que usted halla ingresado al programa como podr observar al lado izquierdo delprograma se muestra el Explorador de Objetos.

    QQuuccoonnttiieenneeeelleexxpplloorraaddoorrddeeOObbjjeettooss??

  • 7/22/2019 Aplicaciones Distribuidas 01

    14/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    14

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    6. Como usted puede observar se muestran los objetos que se encuentran dentro del Explorador deObjetos.

    7. Desplegar la carpeta base de datos.8. Luego desplegar la carpeta base de datos del sistema.

    DDeessccrriibbiirrccaaddaauunnaaddeellaabbaasseeddeeddaattooss,,qquueesseeeennccuueennttrraannddeennttrrooddeellaaCCaarrppeettaabbaasseeddeeddaattoossddeellssiisstteemmaa??

    CCrreeaacciinnddeeuunnaaBBaasseeddeeddaattoossVVaaDDiisseeoo

    9. Pulsar el botn derecho dl mouse sobre la carpeta Bases de datos.10.Seleccionar la opcin Nueva base de Datos.

  • 7/22/2019 Aplicaciones Distribuidas 01

    15/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    15

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    11.Aparecer un cuadro de dialogo donde se tiene que asignar el nombrede la base de datos.12.Asignar el Nombre de Computronic.13.Como usted puede observar el tamao inicial de la base de datos es 1MB.14.Hacer clic en Aceptar.

    TTiippoossddeeDDaattoossddeeSSQQLLSSeerrvveerr22000055

    SQL Server brinda una serie de tipos de datos para almacenar la informacin, la correcta seleccin del tipode dato es simplemente una cuestin de determinar qu valores desea almacenar, como por ejemplo

    carcter, enteros, binario, fechas, etc. Los siguientes objetos tienen tipos de datos:Columnas de tablas y vistas. Parmetros de procedimientos almacenados. Variables.

    Funciones de TTrraannssaacctt-SQL que devuelve uno o ms valores de datos de un tipo de datos especfico.

    Procedimientos almacenados que devuelven un cdigo, que siempre es de tipo integer.

    Al asignar un tipo de datos a un objeto se definen cuatro atributos del objeto:

    La clase de datos que contiene el objeto, por ejemplo, carcter, entero o binario.

    La longitud del valor almacenado o su tamao.

    La precisin del nmero (slo tipos de datos numricos).

    La precisin es el nmero de dgitos que puede contener el nmero. Por ejemplo, un objeto

    smallint puede contener hasta 5 dgitos, con lo que tiene una precisin de 5. La escala del nmero (slo tipos de datos numricos).

  • 7/22/2019 Aplicaciones Distribuidas 01

    16/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    16

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    La escala es el mximo nmero de dgitos a la derecha del separador decimal. Por ejemplo, un objeto int nopuede aceptar un separador decimal y tiene una escala de 0. Un objeto money puede tener hasta 4 dgitosa la derecha del separador decimal y tiene una escala de 4.Si un objeto se define como money, puede contener hasta 19 dgitos y 4 de ellos pueden estar a la derechadel decimal. El objeto usa 8 bytes para almacenar los datos. Por tanto, el tipo de datos money tiene unaprecisin de 19, una escala de 4 y una longitud de 8.

    UUttiilliizzaarrddaattoossbbiinnaarriiooss

    Los tipos de datos binary y varbinary almacenan cadenas de bits. Mientras que los datos de carcter seinterpretan segn la pgina de cdigos de SQL Server, los datos binary y varbinary son, simplemente, unflujo de bits. Los datos binary y varbinary pueden tener una longitud de hasta 8.000 bytes.Las constantes binarias tienen un 0x (un cero y una letra x en minsculas) a la izquierda, seguido de larepresentacin hexadecimal del patrn de bits. Por ejemplo, 0x2A especifica el valor hexadecimal 2A, quees equivalente al valor decimal 42 o un patrn de bits de un byte de 00101010.

    Categora Descripcin Tipo de Dato Descripcin

    Binario

    Almacenan cadenas debits. La data consiste denmeros hexadecimales.Por ejemplo el decimal 245es F5 en hexadecimal.

    binaryLa data debe tener una longitud fija(hasta 8 KB).

    varbinaryLos datos pueden variar en el nmerode dgitos hexadecimales (hasta 8KB).

    imageLa data puede tener una longitudvariable y exceder los 8Kb.

    Consisten de unacombinacin de letras,

    charLos datos deben tener una longitudfija (Hasta 8 KB).

    Caracter smbolos y nmeros. Porejemplo las combinaciones"John928" y"(0*&(%B99nh jkJ".

    varcharLa data puede variar en el nmero decaracteres (Hasta 8 KB.)

    textLos datos pueden ser caracteres ASCIIque excedan los 8 KB.

    Consisten en Fechas en el rango 01 Ene

    combinaciones vlidas de Datetime 1753 hasta el 31 Dic 9999 (SeFecha y Hora estos datos. No puede

    separar en tipos distintosel almacenamiento de slofechas o slo horas.

    requiere 8 bytes por valor).

    smalldatetimeFechas en el rango 01 Ene 1900 hasta06 Jun 2079 (Se requiere requires 4bytes por valor).

    Consisten en informacin Los datos pueden tener hasta 38

    que almacena dgitos, todos los cuales podraninformacin significativadespus del punto

    decimalestar a la derecha del punto decimal.Este tipo de dato

    Decimal decimal. guarda un valor exacto delnmero y no una aproximacin.

    Para SQL Server, el tipo de

    numeric dato numeric es equivalente altipo de datos decimal.

    Punto Flotante

    Nmeros aproximados

    (Punto flotante). float

    Datos en el rango de 1.79E + 308

    hasta 1.79E + 308.

    realDatos en el rango de 3.40E + 38 hasta3.40E + 38.

  • 7/22/2019 Aplicaciones Distribuidas 01

    17/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    17

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Consiste en informacin Datos en el rango de 2^63 (

    numrica positiva o 9223372036854775808) hasta

    Enterosnegativa como porejemplo5, 0 y 25.

    bigint2^631 (9223372036854775807). Se

    requieren de 8 bytes paraAlmacenar estos valores.

    Datos en el rango de - 2,147,483,648hasta

    int 2,147,483,647. Se requieren de4 bytes para almacenar estos valores.

    Categora Descripcin Tipo de Dato Descripcin

    Datos en el rango de32,768

    smallint Hasta 32,767. Se requieren 2 bytespor cada valor de este tipo.

    tinyint Datos entre 0 y 255, se requiere de 1byte.

    Cantidades monetarias Datos monetarios entre

    positivas o negativas. 922,337,203,685,477.5808 y

    money +922, 337, 203, 685,477.5807 (Serequieren 8 bytes por Valor).

    Monetario

    Datos monetarios entre

    smallmoney214,748.3648 y 214,748.3647 (Serequieren de 4 bytes por

    Valor).

    Consisten en informacinque no recae en ningunade las categorasanteriormentemencionadas.

    bit

    Datos que consisten de 1 o 0.Emplear este tipo de dato pararepresentar TRUE o FALSE YES oNO.

    cursor

    Este tipo de dato es empleado porvariables o procedimientosalmacenados que empleanparmetros OUTPUT referenciados aun cursor.

    Este tipo de dato es empleado paraindicar la actividad que

    timestamp Ocurre sobre una fila. La secuenciade este nmero se

    Especiales

    Incrementa en formato binario.

    Consiste en un nmero hexadecimalque especifica un

    uniqueidentifierglobally unique identifier (GUID), estil cuando se deseaasegurar la unicidad de una filaEntre muchas otras.

    Almacena varios tipos de datos,

    SQL_variant a excepcin de text, ntext,timestamp, image y sql_variant.

    Almacena un resultado de una

  • 7/22/2019 Aplicaciones Distribuidas 01

    18/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    18

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    consulta para su posteriorprocesamiento. Se puede

    table emplear para definir variableslocales de tipo table o para retornarlos valores devueltospor una funcin del usuario.

    Unicode

    Al emplear este tipo dedatos se puedealmacenarSobre una columnavalores que incluyan esteconjunto de caracteres.Hay que recordar que losdatos Unicode empleandos bytes por cadacarcter a representar.

    ncharDatos con longitud fija, hasta 4000caracteres Unicode.

    nvarcharDatos que pueden variar, hasta 4000caracteres Unicode.

    ntext

    Datos que exceden los 4000caracteres Unicode.

    EEmmpplleeooddeeCCoommaannddoossDDDDLLLL((DDaattaaDDeeffiinniittiioonnLLaanngguuaaggee))

    SQL Server 2000 emplea las tablas como objetos de almacenamiento de datos que los usuarios manipulan atravs de sus aplicaciones o va web.Las tablas son objetos compuestos por una estructura (conjunto de columnas) que almacenan informacininterrelacionada (filas) acerca de algn objeto en general.Las tablas se definen para los objetos crticos de una base de datos, por ejemplo CLIENTES y su estructuraestara conformada por cada uno de los atributos que se requieran de los clientes para poder obtenerinformacin de ellos, como por ejemplo: nombres, direcciones, telfonos, celular, ruc, etc.Cada uno de estos atributos tiene un tipo de dato definido y adems la tabla debe permitir asegurar que

    cada cdigo de producto es nico en la misma, para asegurarse de no almacenar la informacin del mismocliente dos veces.Las tablas suelen estar relacionadas entre s, para facilitar el hecho de consultas entre mltiples tablas.Podemos distinguir los siguientes tipos de tablas:

    TTaabbllaassddeellSSiisstteemmaa

    La informacin usada por SQL Server y sus componentes son almacenadas en tablas especialesdenominadas como tablas del sistema. Estas tablas no deben alterarse directamente por el usuarioSi desea obtener informacin almacenada en las tablas del sistema debe usar: Informacin de la vista esquema (schema view).

    Procedimientos Almacenados de sistema. Instrucciones Transact-SQL y funciones. SQL-DMO. Catlogo de funciones API.Las tablas del sistema almacenan informacin, llamada Metadata, acerca del sistema y de los objetos de lasbases de datos. Todas las tablas del sistema comienzan con el prefijo SYS.

    TTaabbllaassddeellUUssuuaarriioo

    PPeerrmmaanneenntteess

    Son las tablas donde se almacena la informacin que los usuarios utilizan para sus operaciones. Estainformacin existir hasta que se elimine explcitamente.

  • 7/22/2019 Aplicaciones Distribuidas 01

    19/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    19

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    TTeemmppoorraalleessEstas son tablas similares a las permanentes que se graban en tempdb, y son eliminadas automticamentecuando ya no son usadas.Hay dos tipos de tablas temporales, locales y globales, difieren una de la otra en sus nombres, su visibilidady su mbito de vida.

    Tablas Temporales Locales. El primer carcter del nombre de #, su visibilidad es solamente para laconexin actual del usuario y son eliminadas cuando el usuario se desconecta.

    Tablas Temporales Globales. Su nombre comienza con ##, su visibilidad es para cualquier usuario, y soneliminadas luego que todos los usuarios que la referencian se desconectan del SQL Server.

    CCrreeaacciinnddeettaabbllaass

    Cuando se crea una tabla debe asignarle un nombre a la misma, un nombre a cada columna adems de untipo de datos y de ser necesaria una longitud.Adicional a las caractersticas antes mencionadas, SQL Server 2000 nos brinda la posibilidad de

    implementar columnas calculadas, definindolas como frmulas.Los nombres de las columnas deben ser nicos en la tabla

    CCoonnssiiddeerraacciioonneessaallccrreeaarrttaabbllaass

    Billones de tablas por base de datos.

    1024 columnas por tabla.

    8060 es el tamao mximo de registro (sin considerar datos image, text y ntext).

    Al momento de definir una columna se puede especificar si la columna soporta o no valores NULL.

    Para crear tablas debe utilizar la sentencia CREATE TABLE, cuya sintaxis es la siguiente:

    CREATE TABLE ( Nom_Columna1 Tipo_de_Dato [NULL l NOT NULL],Nom_Columna2 Tipo_de_Dato [NULL l NOT NULL],Nom_Columna3 As formula ...)GO

    CCrreeaacciinnddeeuunnaaTTaabbllaaVVaaAAssiisstteennttee

    15.Desplegar las carpetas que ahora se encuentran dentro de la base de datos Computronic.16.Pulsar el botn derecho sobre la carpeta con el nombre de Tablasy seleccionar la opcin Nueva

    Tabla.

    17.Como usted puede observar al lado derecho se muestra un cuadro.

    18.Dentro de este cuadro se puede asignar el nombre de la Columna y el tipo de Dato de la columna eindicar si los valores son nulos o no.

    19.Digitar las siguientes columnas para esta nueva Tabla.

  • 7/22/2019 Aplicaciones Distribuidas 01

    20/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    20

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    20. Indicar el tipo de Dato para cada columna y por ultimo asignar si es nulo o no.21.La estructura de la tabla tiene que quedar tal como se muestra en la siguiente figura.

    22.Hacer clic en el botn guardar.

    23. Guardar con el nombre de Alumnos.

    24.Como usted puede observar en el Explorador de Objetos.25.Dentro de la carpeta base de datosy dentro de la base de datos Computronic.26.Se encuentra la carpeta Tablas, dentro de ella se encuentra la tabla Alumnos.

    IInnggrreessaarrRReeggiissttrroossaallaaTTaabbllaa

    27.Seleccionar la Tabla alumnos.28.Pulsar el botn derechoy seleccionar la opcin abrir Tabla.

    29.Como usted puede observar al lado derecho se muestra la Tabla alumnos.

  • 7/22/2019 Aplicaciones Distribuidas 01

    21/119

  • 7/22/2019 Aplicaciones Distribuidas 01

    22/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    22

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    39.Ahora guardela modificacin.

    40. Ingrese un nuevo registroen la tabla, pero esta vez ya no asigne el cdigo, como usted ver el

    cdigose genera automticamente.

    41.Seleccionar la tablay pulsar el botn Derecho del mouse.42.Seleccionar la opcin propiedades.

    43.Aparecer un cuadro de dialogo.

    44.Dentro de ese cuadro de dialogo, se indica quien ha creado la tabla, la fecha de Creacin, servidor,

    etc.

    45.Tal como lo puede apreciar en la siguiente figura.

  • 7/22/2019 Aplicaciones Distribuidas 01

    23/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    23

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EElliimmiinnaarruunnaabbaasseeddeeddaattooss

    46.Seleccionar la base de datos con el nombre de Computronic.

    47.Pulsar el botn derecho y seleccionar la opcin eliminar.

    48.Aparecer un cuadro de dialogo donde habilitara la opcin Cerrar conexiones Existentes.

    49.Finalmente hacer clic en aceptar.

  • 7/22/2019 Aplicaciones Distribuidas 01

    24/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    24

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    UUttiilliizzaacciinnddeellAAnnaalliizzaaddoorrddeeCCoonnssuullttaass

    50.Hacer clic en Nueva Consulta.

    CCrreeaacciinnddeeuunnaabbaasseeddeeDDaattoossvvaaccddiiggooSSQQLL

    Para crear un objeto dentro SSQQLLsseerrvveerr,,o dentro de una base de datos se utiliza la sseenntteenncciiaa

    CCrreeaattee, seguido del OObbjjeettooaaCCrreeaarr((BBaasseeddeeDDaattooss,,TTaabbllaass,,PPrroocceeddiimmiieennttoossAAllmmaacceennaaddooss,,VViissttaass,,

    eettcc..))..

    51.Escribir el siguiente Script(cdigo SQL).

    52.Seleccionar el Scriptdigitado, y pulsar la tecla F5, para ejecutarla sentencia.

    53.Explicar el Scriptutilizado, en la sentencia SQL anterior.

    FileName._______________________________________________________________________

    Size.___________________________________________________________________________

    MaxSize.________________________________________________________________________

    Filegrowth.______________________________________________________________________

    54.Como usted puede observar la base de datos con el nombre de Computronicha sido creada.

    55.Si usted verifica la unidad CCde la unidad M PC, se han creado 2archivos correspondientes a labase de datos.

    56.Uno es el *logy el otro es el archivo *mdf.

    CCuulleessllaaddiiffeerreenncciiaaeennttrreeeellaarrcchhiivvoo**llooggyy**MMddff??

  • 7/22/2019 Aplicaciones Distribuidas 01

    25/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    25

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    AAbbrriirruunnaabbaasseeddeeddaattoossvvaaSSccrriipptt

    Para abrir una base de datos se utiliza la sentencia UUssee..

    CCrreeaacciinnddeeuunnaaTTaabbllaaVVaaSSccrriipptt

    57.Digitar el siguiente Script, para crear una nueva tabla.

    MMooddiiffiiccaarruunnaaTTaabbllaaVVaaSSccrriipptt

    58.Se desea agregar una nueva columna a la tabla.

    59.Se desea modificar el tipo de dato de la columna Nombre.

    60.Se desea eliminar una columna de la tabla Alumnos.

    VVaalloorreessaauuttooggeenneerraaddoossppaarraallaassccoolluummnnaass

    En SQL Server 2005 se puede definir columnas que obtengan valores generados por el sistema, para ellopodemos hacer uso de:

    PPrrooppiieeddaaddIIddeennttiittyy

    Permite generar valores secuenciales del sistema, este tipo de valores pueden ser utilizados en columnasque sern empleadas como primarykey.Para emplear esta propiedad debe especificar un valor de inicio y uno de incremento.Recuerde que este tipo de columnas no son editables.

  • 7/22/2019 Aplicaciones Distribuidas 01

    26/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    26

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    61.Primero tiene que eliminar la columna que usted desea que contenga el valor autogenerado.

    62.Luego tiene que crear la nueva columna y esta vez agregar la propiedad IIddeennttiittyy..

    Qu es lo que hace la propiedad IIddeennttiittyyaauunnaaccoolluummnnaa??

    MMaanntteenniimmiieennttooaauunnaattaabbllaaIInnsseerrttaarr,,EElliimmiinnaarryyAAccttuuaalliizzaarr

    Si desea insertar un Nuevo Registro, Se utiliza la Sentencia Insert into.

    Sintaxis:

    IInnsseerrttIInnttooNNoommbbrreeTTaabbllaa((CCaammppoossddeellaaTTaabbllaa))VVaalluueess((VVaalloorreessaaIInnggrreessaarr))

    63.Se desea agregar 5registros a la tabla alumnos.

    64.Digitar el siguiente Script.

    AAllmmoommeennttooddeeiinnggrreessaarrlloossrreeggiissttrrooss,,qquueettiippooddeeddaattoovvaannccoonnccoommiillllaassiimmpplleeyyqquu

    ttiippooddeeddaattoonnoovvaannccoonnccoommiillllaassiimmppllee??

    Si desea Eliminar un Registro, Se utiliza la Sentencia Delete.

    Sintaxis:

    DDeelleetteeNNoommbbrreeTTaabbllaaWWhheerreeCCaammppoo==CCoonnddiicciinn

    65.Se desea eliminar de la tabla alumno, el alumno de cdigo 2.

    66.Digitar el siguiente Script.

  • 7/22/2019 Aplicaciones Distribuidas 01

    27/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    27

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Si desea Actualizar un Registro, Se utiliza la Sentencia Update.

    Sintaxis:

    UUppddaatteeNNoommbbrreeTTaabbllaasseettccaammppoo11==vvaalloorr11,,ccaammppoo22==vvaalloorr22WWhheerreeCCaammppoo==CCoonnddiicciinn

    67.Se desea Actualizar de la tabla alumno, el alumno de cdigo 3.68.Digitar el siguiente Script.

    EEjjeerrcciicciiooss

    Generar el Script de una base de datos llamada Prueba2 con un archivo de datos de 10 Mb, un

    tamao mximo de 20 Mb y un crecimiento de 1Mb., el archivo de registro debe asumir los valorespor default de una base de datos. (Guardar con el Nombre de Prueba01)

    Generar una base de datos llamada Titulacin, crear un archivo primario, secundario y detransacciones, crear la base de datos en la unidad D de Mi PC. (Guardar con el Nombre dePrueba02)

    Generar una base de datos, que su ruta sea la unidad D de Mi PC. (Guardar con el Nombre dePrueba02)

  • 7/22/2019 Aplicaciones Distribuidas 01

    28/119

  • 7/22/2019 Aplicaciones Distribuidas 01

    29/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    29

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Generar el siguiente Script de la tabla que se muestra a continuacin, tener en cuenta los tipos de

    datos.(Guardar con el Nombre de Producto)

    Describir los siguientes Tipos de datos:

    NNvvaarrcchhaarr..--

    MMoonneeyy..--

    SSmmaallllDDaatteeTTiimmee..--

    NNtteexxtt..--

    IImmaaggee..--

  • 7/22/2019 Aplicaciones Distribuidas 01

    30/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    30

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    RReessttrriicccciioonneess((CCoonnssttaaiinnttss))

    Las restricciones son un mtodo declarativo de definicin de la integridad de datos ya que en ellas sedefinen al momento de crear una tabla con la sentencia createTable, o al momento de modificar ladefinicin de la tabla (con la sentencia AlterTable).

    En otras palabras, una restriccin forma parte de la definicin de la tabla. Las restricciones son el mtodopreferido para dar fuerza a la integridad de los datos.

    TTiippoossddeeRReessttrriicccciioonneess

    Las restricciones son un mtodo estndar ANSI para forzar la integridad de los tipos de datos.

    Garantizan que los datos ingresados en las columnas sean valores validos y que se mantengan lasrelaciones entre las tablas.

    La tabla siguiente descrbelos diferentes tipos de restricciones.

    TTiippooddeeRReessttrriicccciinn DDeessccrriippcciinnPRIMARY KEY(Clave primaria)

    Garantiza que cada fila o registro en una tabla es nico(a). lacolumna o combinacin de columnas definida como claveprimaria no permite valores duplicados

    UNIQUE(Valor no duplicado)

    Garantiza que cada valor en una columna es nico. Permitevalores nicos

    FOREIGN KEY(Clave Fornea)

    Define la columna o combinacin de columnas de una tablasecundaria cuyos valores dependen de la clave primaria de laTabla primaria.

    DEFALULT(Valor Predeterminado)

    Establece el valor predeterminado para una columna cuandoal insertar una fila no se especifica el valor para dicha

    columnaCHECK(Regla de Validacin)

    Establece una regla que debe cumplir un valor para que seaun valor aceptable en una Columna

    PPaarraarreeaalliizzaarreessttoosseejjeerrcciicciioossuusstteeddttiieenneeqquueeccrreeaarrllaassssiigguuiieenntteessTTaabbllaassyy

    bbaasseeddeeDDaattooss

    CCrreeaarrllaabbaasseeddeeDDaattoossCCoolleeggiioo

    CCrreeaarrllaassssiigguuiieenntteessTTaabbllaass

    TTaabbllaaAAlluummnnooss

  • 7/22/2019 Aplicaciones Distribuidas 01

    31/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    31

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    TTaabbllaaNNoottaass

    TTaabbllaaCCuussoo

    CCrreeaacciinnddeeuunnaaCCllaavveePPrriimmaarriiaa((PPKK))

    SSiinnttaaxxiiss

    AAlltteerrTTaabblleeNNoommbbrree__TTaabbllaa

    AAddddccoonnssttrraaiinnttPPkk__NNoommbbrree__TTaabbllaa

    PPrriimmaarryyKKeeyy((CCoolluummnnaaXX,,CCoolluummnnaaPP,,))

    PK_nombre_Tabla es el nombre de la restriccin clave primaria. Se recomienda definir como nombre de

    la clave primaria, el nombre de la tabla con el prefijo PK_. Si no se especifica el nombre de la restriccin,

    SQL Serverle asigna un nombre.

    Columnax, ColumnaP es la columna o combinacin de columnas que se define como Clave primaria. Las

    columnas involucradas no deben permitir valores nulos, y adems, no deben tener valores duplicados. En el

    caso de una combinacin de columnas, la combinacin vista como una unidad no debe tener valores

    duplicados.

    1. Asignar llave primariatodas las tablas creadas anteriormente.

  • 7/22/2019 Aplicaciones Distribuidas 01

    32/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    32

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    2. Establecer llave Primariaa las dems Tablas.

    3. Digitar el Script utilizado para la Creacin de las llaves Primarias en las dems Tablas.

    .

    CCrreeaacciinnddeeuunnaaLLllaavveeFFoorrnneeaa((FFKK))

    SSiinnttaaxxiiss

    AAlltteerrTTaabblleennoommbbrree__TTaabbllaa

    AAddddCCoonnssttrraaiinnttFFkk__NNoommbbrree__TTaabbllaa__TTaabbllaa__RReeffeerreenncciiaaddaa

    FFoorreeiiggnnKKeeyy((CCoolluummnnnnaaXX,,CCoolluummnnaaPP))

    FFkk__nnoommbbrree__TTaabbllaa__TTaabbllaa__rreeffeerreenncciiaaddaaes el nombre de la restriccin clave fornea. Se recomiendadefinir como nombre de la clave fornea, el nombre de la tabla seguido del nombre de la tablareferenciada, todo con el prefijo FK_. Si no se especifica el nombre de la restriccin, SQL Server le asigna unnombre.

    CCoolluummnnaaXX,,CCoolluummnnaaPP,,es la columna O Combinacin de columnas que se define como clave fornea.

    TTaabbllaa__RReeffeerreenncciiaa,,es el nombre de la tabla primaria con la que se relaciona con la tabla secundaria quetiene la clave fornea. De modo predeterminado la clave fornea hace referencia la clave primaria de la

    Tabla primaria.

    1. Asignar llave forneatodas las tablas creadas anteriormente.

  • 7/22/2019 Aplicaciones Distribuidas 01

    33/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    33

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    2. Establecer llave forneaa las dems Tablas.

    3. Digitar el Script utilizado para la Creacin de las LlaveForneaen las dems Tablas.

    .

    CCrreeaacciinnddeerreessttrriicccciinnVVaalloorrnnooDDuupplliiccaaddoo((UUnniiqquuee))

    SSiinnttaaxxiiss

    AAlltteerrTTaabblleeNNoommbbrree__TTaabbllaa

    AAddddCCoonnssttrraaiinnttUU__nnoommbbrree__ttaabbllaa__nnoommbbrree__CCoolluummnnaa

    UUNNIIQQUUEE((CCoolluummnnaaXX,,CCoolluummnnaaPP,,..))

    UU__nnoommbbrree__ttaabbllaa__nnoommbbrree__ccoolluummnnaaes el nombre de la restriccin valor no duplicado o UNIQUE. Serecomienda definir como nombre de la restriccin, el nombre de la tabla seguido del nombre de la

    columna afectada, todo con el prefijo U_. Si no se especifica el nombre de la restriccin, SQL Server le

    asigna un nombre.

    CCoolluummnnaaXX,,CCoolluummnnaaPP,,es la columna O combinacin de columnas a la que se aplica la restriccin.

    1. Asignar la propiedad Uniqueal Campo Cursode la tabla Curso.

    CCrreeaacciinnddeeVVaalloorrpprreeddeetteerrmmiinnaaddoo((DDEEFFAAUULLTT))

    SSiinnttaaxxiiss

    AAlltteerrTTaabblleennoommbbrree__TTaabbllaa

    AAddddCCoonnssttrraaiinnttDDFF__NNoommbbrree__TTaabbllaa__NNoommbbrree__CCoolluummnnaa

    DDeeffaauullttvvaalloorr__pprreeddeetteerrmmiinnaaddooffoorrCCoolluummnnaaXX

  • 7/22/2019 Aplicaciones Distribuidas 01

    34/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    34

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    DDff__nnoommbbrree__ttaabbllaa__nnoommbbrree__CCoolluummnnaa es el nombre de la restriccin valor predeterminado O Default.

    Se recomienda definir como nombre de la restriccin, el nombre de la tabla seguido del nombre de la

    columna afectada, todo con el prefijo DF_.Si no es especifico el nombre de la restriccin, SQLserverle

    asigna un nombre.

    VVaalloorr__PPrreeddeetteerrmmiinnaaddooes el valor que se almacena en columnaXcuando al insertar una fila no seespecifica el valor para esa columna.

    ColumnaX es la Columna a la que se aplica la restriccin.

    1. Se desea asignar valores por defecto a la Columna FechaInscripcionde la Tabla Alumnos.

    2. En dicha campo se guardara la Fecha actual del sistema, al momento de ingresar un nuevo registro.

    3. Insertaralgunos valores dentro de la Tabla Alumnos.

    CCrreeaacciinnddeeuunnaaRReeggllaaddeeVVaalliiddaacciioonneess((CCHHEECCKK))

    SSIINNTTAAXXIISS

    AAlltteerrTTaabblleennoommbbrree__TTaabbllaa

    AAddddccoonnssttrraaiinnttCCKK__nnoommbbrree__TTaabbllaa__nnoommbbrree__CCoolluummnnaa

    CChheecckk((CCoonnddiicciinn))

    CCKK__nnoommbbrree__ttaabbllaa__nnoommbbrree__CCoolluummnnaaes el nombre de la restriccin regla de validacin O Check. Serecomienda definir como nombre de la restriccin, el nombre de la Tabla Seguido del nombre de la

    columna afectada, todo con el prefijo CK_. Si no se especifica el nombre de la restriccin, SQL SERVER le

    asigna un nombre.

    CCoonnddiicciinnes la expresin que determina como debe ser el valor a ingresar en la columna afectada por la

    restriccin.

    1. Se desea validar los datos del campo notade la Tabla Notas.

    2. En dicho campo se validara la entrada de cada Notaingresada, esta notaesta en promediode 0a

    20.

  • 7/22/2019 Aplicaciones Distribuidas 01

    35/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    35

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    3. Insertar algunos valores en la tabla.

    4. Insertar un valor en la columna nota, que no este dentro del rangoestablecido.

    55.. Como usted puede observar en el panel resumen aparece un error.

    QQuueessllooqquueeqquuiieerreeddeecciirreesseeeerrrroorr??

    AAccttuuaalliizzaacciinnyybboorrrraaddooeennccaassccaaddaa

    El actualizary/o eliminarregistros en cascada, son opciones que se definen cuando definimos la clave

    forneay que le indican al sistema gestor qu hacer en los casos comentados en el punto anterior.

    AAccttuuaalliizzaarrrreeggiissttrroosseennccaassccaaddaa::

    Esta opcin le indica al sistema gestor de la base de datos que cuando se cambie un valor del campo

    clave de la tabla principal, automticamente cambiar el valor de la clave forneade los registros

    relacionados en la tabla secundaria.

    Por ejemplo, si cambiamos en la tabla de poblaciones(la tabla principal) el valor 1por el valor 10en el

    campo cdigo(la clave principal), automticamente se actualizan todos los habitantes (en la tabla

    secundaria) que tienen el valor 1 en el campo poblacin (en la clave ajena) dejando 10en vez de 1.

    Si no se tiene definida esta opcin, no se puede cambiar los valores de la clave principalde la tabla

    principal. En este caso, si intentamos cambiar el valor 1del cdigo de la tabla de poblaciones, no seproduce el cambio y el sistema nos devuelve un error o un mensaje que los registros no se han podido

    modificar por infracciones de clave.

  • 7/22/2019 Aplicaciones Distribuidas 01

    36/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    36

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    CCoonnssuullttaassSSeenncciillllaass

    AAddjjuunnttaarruunnaaBBaasseeddeeDDaattooss

    1. Copiar la carpeta BaseDatosa la unidad C: de MiPc.

    2. Ingresar al SQL Server.

    3. Hacer clic en el Botnde Nueva consulta .

    4. Escribir el siguiente Scriptdentro del analizador de consulta.

    EEssttuuddiiooddeellaaBBaasseeddeeDDaattoossPPoosseeiiddnn

    5. Actualizarel Explorador de Objetos .

    6. Como usted puede observar se ha generado una nueva Base de Datosllamada Poseidn.

    7. Desplegar laCarpeta Tablas.

    8. Como usted puede observarla base de datos contiene7 tablas.

    CCrreeaacciinnddeeuunnDDiiaaggrraammaaddeebbaasseeddeeddaattooss

    9. Pulsarel botn derechosobre la carpeta Diagrama de Base de Datos.

    10.Seleccionar la opcinNuevo Diagrama de base de Datos.

  • 7/22/2019 Aplicaciones Distribuidas 01

    37/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    37

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    11.En el cuadro de dialogo Agregar Tabla, agregar todas las tablas que desee mostrar en el

    diagrama.

    12.Agregartodas las Tablasde la base de datos Poseidn.

    13.Establecer el siguiente diagrama.

    14.Guardarel diagramacon el nombre de Diagrama Poseidn.

    15.Como usted puede observar se ha creado un nuevo diagramaen la base de datosPoseidn.

  • 7/22/2019 Aplicaciones Distribuidas 01

    38/119

  • 7/22/2019 Aplicaciones Distribuidas 01

    39/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    39

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    EEjjeerrcciicciiooNN##22

    1. Se desea visualizar todas las Fechas delCampo FechaPedidode la Tabla Pedidos.

    2. Digitar el siguiente Script.

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    EEjjeerrcciicciiooNN##33

    1. Se desea visualizar los siguientes campos IdCliente, NombreCompaa de la Tabla Clientes.

    2. Se desea cambiar el nombre de la Columna IdCliente alNombredeCdigo, NombreCompaa al

    nombre Empresa.

    3. Digitar el siguiente Script.

  • 7/22/2019 Aplicaciones Distribuidas 01

    40/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    40

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    4. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    DDeeffiinniicciinnddeeCCoolluummnnaassCCoommppuuttaaddaass

    Una columnacomputadaes una columnaque se muestra en el resultado de una consulta, pero que no

    existe fsicamente como tal en la tabla. La columna computada muestra el resultado de ejecutar alguna

    operacin con las columnas de la tabla.

    EEjjeerrcciicciiooNN##44

    1. Se desea obtener el 10 %de descuento de cada producto.

    2. Digitar el siguiente Script.

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

  • 7/22/2019 Aplicaciones Distribuidas 01

    41/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    41

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    CCoonnccaatteennaannddooCCaaddeennaass

    EEjjeerrcciicciiooNN##55

    1. Se desea Mostar en una Consulta de los Campos Apellidosy Nombresen una sola columna, estos

    camposson de la Tabla Empleados.

    2. Digitar el siguiente Script.

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    QQuussmmbboolloosseeuuttiilliizzooppaarraaccoonnccaatteennaarrlloossccaammppoossddeeuunnaaTTaabbllaa??

    DDeeffiinniicciinnddeeffiillttrroossddeeffiillaaeennSSeelleecctt

    En la clausula where, condicin_filases una expresin lgica que establece la condicin que debe cumplir

    las filas a mostrar en el resultado de la consulta. Para construir la expresin lgicautilice operadores

    relacionales O de comparacin y operadores lgicos SQLcomo Like, BetweeneIn.

    OOppeerraaddoorreesseennTTrraannssaaccttSSQQLL

    La siguiente tabla ilustra los operadores de Transact SQL.

    Tipo de operador Operadores

    Operador de asignacin =

    Operadores aritmticos + (suma)

    - (resta)* (multiplicacin)/ (divisin)

  • 7/22/2019 Aplicaciones Distribuidas 01

    42/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    42

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    ** (exponente)% (modulo)

    Operadores relacionales ode comparacin

    = (igual a) (distinto de)!= (distinto de)< (menor que)

    > (mayor que)>= (mayor o igual a) (no mayor a)!< (no menor a)

    Operadores lgicos AND (y lgico)NOT (negacin)OR (o lgico)& (AND a nivel de bit)| (OR a nivel de bit)^ (OR exclusivo a nivel de bit)

    Operador deconcatenacin +

    Otros ALL (Devuelve TRUE si el conjunto completo de comparaciones es TRUE)ANY(Devuelve TRUE si cualquier elemento del conjunto decomparaciones es TRUE)BETWEEN (Devuelve TRUE si el operando est dentro del intervalo)EXISTS (TRUE si una sub consulta contiene filas)IN (TRUE si el operando est en la lista)LIKE (TRUE si el operando coincide con un patrn)NOT (Invierte el valor de cualquier operador booleano)SOME(Devuelve TRUE si alguna de las comparaciones de un conjunto es

    TRUE)

    EEjjeerrcciicciioossddeeCCoonnssuullttaassuuttiilliizzaannddooFFiillttrrooss

    EEjjeerrcciicciiooNN##66

    1. Se desea Mostar todos los productos de la Categora2.

    2. Digitar el siguiente Script.

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

  • 7/22/2019 Aplicaciones Distribuidas 01

    43/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    43

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EEjjeerrcciicciiooNN##77

    1. Se desea Mostar todos los productos de la Categora2 y que el Precio Unitariosea mayor igual a

    20.

    2. Digitar el siguiente Script.

    4. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    EEjjeerrcciicciiooNN##88

    1. Se desea Mostar todos los productos, menos de la categora2 y que sean mayorese igualesa 30.

    2. Digitar el siguiente Script.

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    EEjjeerrcciicciiooNN##99

    1. Se desea Mostar todos los productos, de la Categora5 y 7 de la tabla productos.

    2. Digitar el siguiente Script.

  • 7/22/2019 Aplicaciones Distribuidas 01

    44/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    44

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    3. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    MMaanniippuullaacciinnddeeDDaattoossddeettiippooFFeecchhaa--HHoorraa

    EEjjeerrcciicciiooNN##1100

    1. Ejecute la siguiente sentencia.

    2. La lista muestra varios pedidos realizados el 8 de Agosto de 1994.

    3. Se desea mostrar los pedidos con la fecha 1992/08/08.

    4. Como usted puede observar no se muestra nada en la lista.

  • 7/22/2019 Aplicaciones Distribuidas 01

    45/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    45

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    Cul cree usted que sea el problema?

    El problema no es el formato de fecha ya que previamente se le informo al servidor que la cadena de fecha

    se le esta enviando en formatodmy.

    La columna FechaPedidoes de tipo fecha-hora; por lo tanto almacena la fechaadems la hora, es decir,

    que representa un instanteen el tiempo.

    La instruccin Select que se ha enviado no especifica la hora, por lo que el motor de bsqueda asume que

    estamos buscando la fecha 08/08/1994 00:00:00:00.

    5. Ahora ejecute la siguiente sentencia.

    6. El listado resultante muestra los pedidos cuya fecha es anterior al 08 de Agosto de 1994.

    UUssooddeellaaffuunncciinnCCOONNVVEERRTT(())ccoonnddaattoossddeettiippooFFeecchhaa--HHoorraa

    SSiinnttaaxxiissConvert (Char(n),expresin_Fecha,estilo)

    Convierte expresin_fechaa una cadena de formato de fecha. La cadena tiene longitud ny el formato deldato se establece con el valor de estilo.

    Char(n),es el tipo y la longitud de la cadena con formato de fecha resultante.

    expresin_fecha, representa la fecha cuyo formato de representacin se desea cambiar.

    Estilo, indica el formato de presentacin de la cadena resultante.

    El siguiente cuadro muestra algunos valores de estilo para la funcin CONVERT.

    Ao con 2 dgitos Ao con 4 Dgitos Formato Salida

    1 101 USA Mm/dd/aa

    2 102 ANSI aa.mm.dd

    3 103 Britnico / Francs Dd/mm/aa

    4 104 Alemn dd.mm.aa

    5 105 Italiano dd-mm-aa

    6 106 Dd mes dd

    7 107 Mes dd, aa

  • 7/22/2019 Aplicaciones Distribuidas 01

    46/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    46

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    BBssqquueeddaabbaassaaddaaeennFFeecchhaa

    Se desea obtener el listado de los pedidos cuya fecha de pedido es anterior O igual al 8 de Agosto de 1994

    EEjjeerrcciicciiooNN##1111

    1. Escribir el siguiente Script.

    2. Seleccionar el Scripty ejecutar la consulta (pulsar la Tecla F5).

    BBssqquueeddaabbaassaaddaaeennccaaddeennaaddeeccaarraacctteerreess

    OOppeerraaddoorrLLiikkee

    SSiinnttaaxxiiss

    SSeelleecctt**IIlliissttaa__CCoolluummnnaassffrroommnnoommbbrree__ttaabbllaa

    WWhheerreeccoolluummnnaaLLIIKKEEeexxpprreessiinn__ccaaddeennaa__aa__bbuussccaarr

    CCoolluummnnaa,,es la columna en la que se busca la cadena de caracteres.

    EExxpprreessiioonn__CCaaddeennaa__aa__bbuussccaarr,,indica como debe ser la cadena que se esta buscando en columna. Laexpresin admite comodines.

    LLoossCCoommooddiinneessddeellOOppeerraaddoorrLLiikkee

    El siguiente cuadro muestra los comodines que puede utilizar con el Operador Like

    Comodn Descripcin

    %% Indica que en la posicin del comodnpuede ir cualquier cadena de caracteres, incluso unacadena nula

    -- Indica que en la posicin del comodn puede ir cualquier carcter no nulo.

    [[aabbcc]] Establece el conjunto de caracteres validos en la posicin no nulo.[[aa--bb]] Establece el rango de caracteres validos en la posicin del comodn.

    ^ Excluir, indica que carcter o conjunto de caracteres no irn en la lista de resultado.

  • 7/22/2019 Aplicaciones Distribuidas 01

    47/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    47

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EEjjeerrcciicciiooNN##1122

    Lista de productos cuyo nombre contenga la palabra vino

    Select* fromproductos wherenombreproducto like'%vino%'

    Luego procedemos a ejecutar la aplicacin.

    El smbolo %representa a cualquier cadena de caracteres, inclusive la cadena nula.

    EEjjeerrcciicciiooNN##1133

    Lista de productos cuya primera letea empieza con la letra a.

    Select* fromproductos wherenombreproducto like'[a] %'

    EEjjeerrcciicciiooNN##1144

    Lista de productos cuya primera letea empieza con la letra a y la tercera con la letra e.

    Select* fromproductos wherenombreproducto like'[a]%[e]'

    EEjjeerrcciicciiooNN##1155

    Lista de productos cuyo nombre empieza con cualquier carcter que va en el rango de la M a la T.

    Select* fromproductos wherenombreproducto like'[m-t]%'

  • 7/22/2019 Aplicaciones Distribuidas 01

    48/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    48

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EEjjeerrcciicciiooNN##1166

    Lista de productos cuyo nombre empieza con A con cualquier carcter en el rango que va de U ala Adems, el segundo carcter no debe ser la letra r.

    Select* fromproductos wherenombreproducto like'[^b-t][^r]%'

    El Carcter ^ significa Excluir. El Carcter % representa cualquier cadenade caracteres, inclusive la cadena nula El Carcter _ Representa cualquier carcterimprimibleno puede ser nulo.

    EEjjeerrcciicciiooNN##1177

    Lista de productos cuyo nombre empieza con la palabra Queso.

    Select* fromproductos wherenombreproducto like'queso%'

    EEjjeerrcciicciiooNN##1188

    Lista productos cuyo segundo carcter empiece con la letra e.

    Select* fromproductos wherenombreproducto like '_e%'

  • 7/22/2019 Aplicaciones Distribuidas 01

    49/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    49

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EEjjeerrcciicciiooNN##1199

    Lista de productos cuyo nombre empiece con C, M R.

    Select* fromproductos wherenombreproducto like[cmr] %'

    EEjjeerrcciicciiooNN##2200

    Lista de productos cuyo nombre empiece con C, M R. El segundo Carcter debe ser A.

    Select* fromproductos wherenombreproducto like[cmr] a%'

    El comodn [cmr], representa el conjunto de caracteres validos en la posicin en la que aparecer elcomodn.

    EEjjeerrcciicciiooNN##2211

    Seleccionar todos los productos que termine con la letra Z

    Select* fromproductos wherenombreproducto like'%z'

  • 7/22/2019 Aplicaciones Distribuidas 01

    50/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    50

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EEjjeerrcciicciiooNN##2222

    Mostrar todos los productos cuya cuarta letra sea A

    Select* fromproductos wherenombreproducto like'___a%'

    OOppeerraaddoorrBBeettwweeeenn

    Permite seleccionar en base a un rango de valores numricos.

    SSiinnttaaxxiiss

    SSeelleecctt**IIlliissttaa__CCoolluummnnaassffrroommnnoommbbrree__ttaabbllaa

    WWhheerreeccoolluummnnaaBBeettwweeeenn VVaalloorr__iinniicciiaallAANNDDVVaalloorr__FFiinnaall

    Betweenindica que el valor de la columna debe encontrarse en el rango definido por Valor_inicialyValor_Final..

    Columna, es la columnaen la que se busca segn el rango especificado por Valor_inicialy Valor_Final.

    Valor_inicial,Valor_Final, Establecen los limites del rango de valores en la que se basa la bsqueda.

    EEjjeerrcciicciiooNN##2233

    Lista de productos cuyo precio se encuentra en el rango que va de 15 a 21 nuevos soles.

    Select* fromproductos wherepreciounidad between15 and 21

  • 7/22/2019 Aplicaciones Distribuidas 01

    51/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    51

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    EEjjeerrcciicciiooNN##2244

    Lista de productos cuyo nombre se encuentren en el rango de Cerveza y galletas

    Select* fromproductos wherenombreproducto between'cerveza' and 'galletas'

    EEjjeerrcciicciiooNN##2255

    Se desea visualizar un listado de todos los pedidos realizados en el ao de 1996.

    select*frompedidos whereFechaPedido notbetween'01/01/1994'and'31/12/1995'

    OOppeerraaddoorrIINN

    Permite seleccionar en base a un conjunto de valores

    EEjjeerrcciicciiooNN##2266

    Lista de proveedoresubicados en las ciudadesde Londres, Paris, Tokyo.

    Select* fromproveedores whereciudad in('londres','Pars','Tokyo')

  • 7/22/2019 Aplicaciones Distribuidas 01

    52/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    52

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    MMaanniippuullaacciinnddeevvaalloorreessNNuullll

    Un valor Null indica que el valor es desconocido, no aplicable o que simplemente se registraposteriormente. Un valor Nulles distinto a un a cadena vaca o al valor cero(0) y tambin es distinto acualquier otro valor.

    La comparacin operacin entre valores Null o entre un valor Nully cualquier otro valor retorna un valordesconocido (otro valor Null), ya que cada valor Nulles desconocido.

    EEjjeerrcciicciiooNN##2277

    Lista de Clientes quenotenganFax.

    select*fromclientes wherefax isnull

    EEjjeerrcciicciiooNN##2288

    Lista de Clientes quetenganFax.

    select*fromclientes wherefax isnotnull

  • 7/22/2019 Aplicaciones Distribuidas 01

    53/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    53

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    FFuunncciioonneessddeeFFeecchhaayyHHoorraa

    La siguiente tabla muestra las funciones de fecha y hora disponibles en SQL server.

    FFuunncciinn RReessuullttaaddoo

    GETDATE() Retorna la fecha y hora del sistema

    DATEADD(partefecha,n,fecha) Retorna una nueva fecha aadiendo n unidades de

    partefechaa fecha

    DATEDIFF(parteFecha,fecha1,fecha2) Retorna la diferencia en parteFechaentre fecha1 y fecha2.

    DATENAME(partefecha,fecha) Retorna la cadena correspondiente a partefechaen fecha

    DATEPART(partefecha,fecha) Retorna el nmero correspondiente a partefechay fecha

    DAY(fecha) Retorna el nmero correspondiente a la parte del da de

    fecha

    MONTH(fecha) Retorna el nmero correspondiente a la parte del mes de

    fecha

    YEAR(fecha) Retorna el nmero correspondiente a la parte del ao de

    fecha

    GETUTCDATE() Retorna la fecha y hora del meridiano de Greenwich

    La siguiente tabla muestra los valores de parte fecha que podemos utilizar.

    PPaarrtteeffeecchhaa AAbbrreevviiaattuurraa

    Year Yy, yyyy

    Quarter Qq ,q

    Month Mm, m

    Dayofyear Dy, y

    Day Dd, d

    Week Wk, ww

    weekday Dw

    Hour Hh

    minute Mi, n

    second Ss, s

    milisecond Ms

  • 7/22/2019 Aplicaciones Distribuidas 01

    54/119

    IInnssttrruuccttoorr::CCuueevvaaVVaallvveerrddeeDDiieeggooAAllbbeerrttoo ddiieeggooaallbbeerrttoo__11998877@@hhoottmmaaiill..ccoomm

    CCaappttuullooII

    TTrraabbaajjaannddooyyCCoonnoocciieennddooSSQQLLSS

    eerrvveerr22000088

    54

    DDeessaarrrroollllooDDeeAApplliiccaacciioonneess DDiissttrriibbuuiiddaasseennccoonnAADDOO..NNeett33..55yySSQQLLSSEERRVVEERR22000088

    DDaatteeNNaammee

    Devuelve una cadena de caracteres que representa la parte de la fecha especificada de la fechaespecificada

    Los clculos para las horas no son exactos cuando se trata de SmallDateTime, por lo que devuelve0.

    EEjjeerrcciicciiooNN##2299

    SelectIdPedido, DateName(Month, FechaPedido) as 'Nombre del mes'fromPedidos whereIdPedido =10352diciembre

    EEjjeerrcciicciiooNN##3300

    SelectIdPedido, DateName(week, FechaPedido) as 'Numero de Semana'fromPedidos whereIdPedido =

    1035251

    EEjjeerrcciicciiooNN##3311

    SelectIdPedido, datename(weekday, FechaPedido) as 'Da De Semana'fromPedidos whereIdPedido =

    10352Martes

    HHoorraass::

    EEjjeerrcciicciiooNN##3322

    S