microsoft sql server 2005 (ii)

Upload: anonymous-2se3lqmwp

Post on 04-Nov-2015

257 views

Category:

Documents


0 download

DESCRIPTION

sql server 2005

TRANSCRIPT

  • SQL Server 2005

  • Bases de datos de SQL Server 2005Coleccin de tablas que almacenan datos estructurados. Se compone de columnas (atributos) y de filas (registros).Tipos:OLTPData WarehouseSnapshot

  • Archivos de base de datosCada base de datos tiene dos archivos a nivel de sistema operativo:Un archivo de datos.Un archivo de registro.Tipos de archivos:Primario (.mdf)Secundario (.ndf)Registro de transacciones (.ldf) Los archivos de datos se pueden agrupar en filegroups

  • FilegroupsTipos:Primario.Definido por el usuario.El filegroup primario contiene al archivo de datos primario y a cualquier archivo de datos secundario que no ha sido colocado en otros filegroups.

  • Archivos y Filegroups

  • Crear Bases de datosInstruccin CREATE DATABASEPuede especificarse las caractersticas de cada archivo de base de datos, as como los filegroups que los contendrn.Utilice ALTER DATABASE para modificar la definicin de una base de datos.Utilice DROP DATABASE para eliminar una base de datos.

  • CREATE DATABASECREATE DATABASE MiBaseON PRIMARY(NAME = 'MiBase_Primario',FILENAME = 'D:\Bases de Datos\MiBase_Primario.mdf',SIZE = 4MB,MAXSIZE = 10MB,FILEGROWTH = 1MB ),FILEGROUP Secundario1(NAME = 'MiBase_Secundario1_Datos1',FILENAME = 'D:\Bases de Datos\MiBase_Secundario1_Datos1.ndf',SIZE = 1MB,MAXSIZE = 10MB,FILEGROWTH = 1MB ),(NAME = 'MiBase_Secundario1_Datos2',FILENAME = 'D:\Bases de Datos\MiBase_Secundario1_Datos2.ndf',SIZE = 1MB,MAXSIZE = 10MB,FILEGROWTH = 1MB )LOG ON(NAME = 'MiBase_Registro',FILENAME = 'D:\Bases de Datos\MiBase_Registro.ldf',SIZE = 1MB,MAXSIZE = 10MB,FILEGROWTH = 1MB )GOFilegroup PrimarioFilegroup Secundario1Archivo de Registro4 MB1 MB1 MB1 MBMiBase

  • Pginas de datosLa unidad fundamental de almacenamiento de datos es la Pgina.Las pginas se numeran consecutivamente dentro de cada archivo de datos.El tamao de cada pgina es de 8 KB (128 pginas por MB).Los archivos de registro no contienen pginas, solamente una serie de registros.

  • Tipos de PginasDe Datos.De ndices.De Texto/ImagenGlobal Allocation Map y Shared Global Allocation MapPage Free SpaceIndex Allocation MapBulk Changed MapDifferential Changed Map

  • ExtensionesUnidad bsica para la asignacin de espacio.Coleccin de 8 pginas contiguas (64 KB)Se alojan 16 Extensiones por MB.Tipos:Uniformes: todas las pginas tienen datos de un mismo objeto.Mixtas: tienen pginas de datos de diferentes objetos.

  • Objetos de una Base de datos de SQL Server 2005Esquemas y Tablas.Columnas y Registros.Elementos de programacin (procedimientos almacenados, funciones, desencadenadores, ensamblados).ndices.Vistas.

  • EsquemasUn Esquema es una coleccin de elementos de base de datos bajo un mismo espacio de nombre.En SQL Server 2005, los esquemas son independientes de los usuarios que los crean.Los nombres de objetos completamente cualificados ahora requieren cuatro partes:Servidor.BaseDeDatos.Esquema.ObjetoEl esquema predeterminado es dboCada usuario puede tener asignado un esquema predeterminado distinto.

  • Crear EsquemasInstruccin: CREATE SCHEMAPermite crear un esquema, las tablas y vistas que contendr, as como asignar, denegar y revocar permisos.Utilice ALTERo DROP paramodificar oeliminar unesquemaexistente.CREATE SCHEMA PersonalGOCREATE SCHEMA Ventas CREATE TABLE Pedido(Numero int, Fecha smalldatetime, IDCliente char(12))GO

  • TablasUna tabla es un objeto de base de datos que contiene datos.Estn formadas por un conjunto de columnas (atributos).Los datos estn organizados en formatos fila-columna.Cada fila de datos representa un registro.Cada columna representa un campo.

  • Tipos de datos para columnasBigint, Int, Smallint, Tinyint, Bit, Decimal, Numeric, Money, SmallmoneyFloat, RealDatetime, SmalldatetimeChar, Varchar, TextNchar, Nvarchar, NtextBinary, Varbinary, ImageCursorSql_variantTableTimestampUniqueidentifierXmlNumricos ExactosFecha y HoraCadenas de CaracteresCadenas de Caracteres UnicodeNumricos AproximadosCadenas BinariasOtros

  • Tipos de datos basados en AliasInstruccin CREATE TYPE. Reemplaza a sp_addtype.Utilice DROP TYPE para eliminar un alias de tipo de datos.CREATE TYPE DNIFROM char(8) NOT NULL

  • Tipos CLR definidos por el usuarioDefinidos con cualquier lenguaje .NET como una clase (Class) o estructura (Structure).Antes de crearse el tipo, debe registrarse el ensamblado con CREATE ASSEMBLY.Utilice CREATE TYPE para crear el tipo haciendo referencia al ensamblado.Puede crearse directamente con Visual Studio 2005 e instalarse en SQL Server 2005.

  • Registrando un tipo CLRCREATE ASSEMBLY EnsambladoIPFROM 'C:\MisTiposCLR\TipoIP.dll'GO

    CREATE TYPE IP EXTERNAL NAME EnsambladoIP.[TipoIP.IP]GODECLARE @IPPC IPSET @IPPC = '0.0.0.0'SET @IPPC.DireccionIP1 = 192SET @IPPC.DireccionIP2 = 168SET @IPPC.DireccionIP3 = 1SET @IPPC.DireccionIP4 = 120SELECT CAST(@IPPC AS Varchar) As IP

  • Crear una TablaInstruccin CREATE TABLEPuede indicarse a qu esquema pertenecer la tabla.Utilice ALTER TABLE para modificar la estructura de una tabla.Utilice DROP TABLE para eliminar la tabla.

  • CREATE TABLECREATE TABLE Personal.Empleado(DNI DNI,Apellidos varchar(50) NOT NULL,Nombres varchar(50) NOT NULL,FechaContratacion smalldatetime NOT NULL,Salario decimal(9,2) NOT NULL)GO

  • Agregar y eliminar camposUtilice ALTER TABLE junto a ADD o DROP COLUMN para agregar o eliminar columnas.Se pueden agregar columnas NOT NULL siempre que la tabla est vaca.ALTER TABLE Personal.EmpleadoADD FechaNacimiento smalldatetime NOT NULL

    ALTER TABLE Personal.EmpleadoDROP COLUMN SalarioAntesDespus

  • IDENTITY & UNIQUEIDENTIFIERIDENTITY (Propiedad): crear una columna auto-numerada en la tabla.Slo puede definirse en una columna por cada tabla.Considere un valor inicial y un valor de incremento.No garantiza la unicidad de los valores 1UNIQUEIDENTIFIER (GUID)Tipo de dato de 16 bytes.Inicializado mediante la funcin NEWID() o desde una cadena formateada.Garantiza la unicidad de los valores

  • Ejemplo: IDENTITY & UNIQUEIDENTIFIERCREATE TABLE Pedido(Numero int NOT NULL IDENTITY(1,1),Fecha smalldatetime NOT NULL,Cliente varchar(50) NOT NULL,GUID uniqueidentifier NOT NULL)GO

    DECLARE @Contador intSET @Contador = 1WHILE @Contador < 10BEGININSERT INTO Pedido (Fecha, Cliente, GUID)VALUES (GETDATE(), CHAR(64 + @Contador), NEWID())SET @Contador = @Contador + 1END

    SELECT * FROM Pedido

  • RESTRICCIONESIntegridad de DominioIntegridad de EntidadIntegridad ReferencialPRIMARY KEYUNIQUEDEFAULTCHECKFOREIGN KEYCHECKFOREIGN KEYTABLATABLA

  • Restriccin de Clave PrimariaInstruccin PRIMARY KEY.Puede ser simple o compuesta.Formada slo por columnas NOT NULL.Slo una restriccin de clave primaria por tabla.Crea un ndice nico.Al crearse una clave primaria, se verifica que:Las columnas que la conforman no acepten valores nulos.La combinacin de valores para dichas columnas no se duplique.No puede eliminar una clave primaria cuando:sta es referenciada por otra tabla (clave fornea).La tabla tiene un ndice primario XML.Consulte la vista sys.key_constraints para obtener informacin de las restricciones existentes.

  • Ejemplo: Restriccin PRIMARY KEYCREATE TABLE Producto(IdProducto int NOT NULLCONSTRAINT PK_Producto_IdProducto PRIMARY KEY,NombreProducto varchar(30) NOT NULL,FechaIngreso smalldatetime NOT NULL,)CREATE TABLE Producto(IdProducto int NOT NULL,NombreProducto varchar(30) NOT NULL,FechaIngreso smalldatetime NOT NULL,)ALTER TABLE ProductoADD CONSTRAINT PK_Producto_IdProducto PRIMARY KEY (IdProducto)CREATE TABLE Producto(IdProducto int NOT NULL,NombreProducto varchar(30) NOT NULL,FechaIngreso smalldatetime NOT NULL,CONSTRAINT PK_Producto_IdProducto PRIMARY KEY (IdProducto))

  • Restriccin de Valor nicoInstruccin UNIQUE.Puede ser simple o compuesta.Puede estar formada por columnas NULL.Ms de una restriccin de valor nico por tabla.Puede ser referenciada por otra tabla (clave fornea)Al crearse una restriccin de valor nico, se verifica que:La combinacin de valores para dichas columnas no se duplique.No puede eliminar una restriccin de valor nico cuando:sta es referenciada por otra tabla (clave fornea).Si la columna es utilizada como clave para bsqueda de texto completo (Full Text Search) en la tabla.Consulte la vista sys.key_constraints para obtener informacin de las restricciones existentes.

  • Ejemplo: Restriccin UNIQUECREATE TABLE Alumno(Codigo char(6) NOT NULL,Nombre varchar(20) NOT NULL CONSTRAINT UQ_Alumno_Nombre UNIQUE,Direccion varchar(30) NOT NULL,)CREATE TABLE Alumno(Codigo char(6) NOT NULL,Nombre varchar(20) NOT NULL,Direccion varchar(30) NOT NULL )ALTER TABLE AlumnoADD CONSTRAINT UQ_Alumno_Nombre UNIQUE(Nombre)CREATE TABLE Alumno(Codigo char(6) NOT NULL,Nombre varchar(20) NOT NULL,Direccion varchar(30) NOT NULL CONSTRAINT UQ_Alumno_Nombre UNIQUE(Nombre))

  • Restriccin de Valor por DefectoInstruccin DEFAULT.Utilizada con sentencias INSERT.Slo una restriccin de valor por defecto por cada columna.No pueden definirse en columnas IDENTITY, timestamp o ROWGUIDCOL.Utilice la clusula DEFAULT VALUES en una instruccin INSERT para forzar la insercin de los valores por defecto definidos en las columnas.Consulte la vista sys.default_constraints para obtener informacin de las restricciones existentes.

  • Ejemplo: Restriccin DEFAULTCREATE TABLE Producto(IdProducto int NOT NULL,NombreProducto varchar(30) NOT NULL,FechaIngreso smalldatetime CONSTRAINT DF_Producto_FechaIngreso DEFAULT GETDATE()) CREATE TABLE Producto(IdProducto int NOT NULL,NombreProducto varchar(30) NOT NULL,FechaIngreso smalldatetime NOT NULL,)ALTER TABLE ProductoADD CONSTRAINT DF_Producto_FechaIngresoDEFAULT GETDATE() FOR FechaIngresoINSERT INTO Producto VALUES (25, 'Leche Gloria', DEFAULT) Utilice la instruccin DEFAULT en INSERT para forzar la insercin del valor por defecto

  • Restriccin de ValidacinInstruccin CHECK.Utilice una expresin lgica para validar el valor de una columna.Pueden existir mltiples restricciones de validacin para las columnas de una tabla.Slo se comprueban en sentencias INSERT y UPDATE.Evite la conversin de tipos en esta clase de restriccin.Consulte la vista sys.check_constraints para obtener informacin de las restricciones existentes.

  • Ejemplo: Restriccin CHECKCREATE TABLE Cliente(Dni char(8) NOT NULL,Nombre varchar(30) NOT NULL,Apellidos varchar(40) NOT NULL,Sexo char(1) NOT NULL,Salario smallmoney NOT NULL,

    CONSTRAINT CK_Cliente_Dni CHECK (Dni LIKE '[0-9][0-9][0-9][0-9][0-9][0-9][0-9][0-9]'),CONSTRAINT CK_Cliente_Sexo CHECK (Sexo IN ('M','F')),CONSTRAINT CK_Cliente_Salario CHECK (Salario>0 And Salario

  • Restriccin de Clave ForneaInstruccin FOREIGN KEY.Referencia a restricciones PRIMARY KEY o UNIQUE.Puede admitir valores nulos.Puede especificar acciones de integridad referencial.Se recomienda no crear ms de 253 restricciones de este tipo por tabla.Consulte la vista sys.foreign_keys para obtener informacin de las restricciones existentes.

  • Ejemplo: Restriccin FOREIGN KEYCREATE TABLE Cliente(DNI char(8) NOT NULL,Nombre varchar(30) NOT NULL,Apellidos varchar(40) NOT NULL,Direccion varchar(10) NOT NULL,Telefono varchar(10) NULL,

    CONSTRAINT PK_Cliente_DNI PRIMARY KEY (DNI))CREATE TABLE Cuenta(Numero int NOT NULL,Saldo float NOT NULL DEFAULT 800,TipoMoneda char(1) DEFAULT 'S',DNI_Propietario char(8) NOT NULL,

    CONSTRAINT PK_Cuenta_Numero PRIMARY KEY (Numero),CONSTRAINT FK_Cuenta_Cliente FOREIGN KEY (DNI_Propietario) REFERENCES Cliente(DNI))

  • Acciones de Integridad ReferencialAplicadas en actualizaciones (UPDATE) y eliminaciones (DELETE).Acciones (en filas relacionadas):NO ACTION (Predeterminada). Previene la actualizacin o eliminacin de filas en la tabla padre.CASCADE. Las filas correspondientes son actualizadas o eliminadas cuando se actualiza o elimina una fila de la tabla padre.SET NULL. Las columnas son establecidas en NULL y las filas de la tabla padre son actualizadas o eliminadas.SET DEFAULT. Las columnas son establecidas al valor por defecto especificado y las filas de la tabla padre son actualizadas o eliminadas.

  • Recursos e informacinhttp://www.microsoft.com/latam/sql/http://www.microsoft.com/spanish/msdn/latam/video/sqlserver.asphttp://msdn.microsoft.com/sql/express/http://www.microsoft.com/downloads/details.aspx?familyid=220549b5-0b07-4448-8848-dcc397514b41&displaylang=enSQL Server 2005SQL Server 2005 Express EditionSQL Server 2005 Express Edition DownloadVideos MSDN sobre SQL Server 2005

    *Todas las tablas de sistema son colocadas en el Filegroup primario*DataData rows with all data, except text, ntext, image, nvarchar(max), varchar(max), varbinary(max), and xml data, when text in row is set to ON.IndexIndex entries.

    Text/ImageLarge object data types: text, ntext, image, nvarchar(max), varchar(max), varbinary(max), and xml data Variable length columns when the data row exceeds 8 KB: varchar, nvarchar, varbinary, and sql_variant

    Global Allocation Map, Shared Global Allocation MapInformation about whether extents are allocated.

    Page Free SpaceInformation about page allocation and free space available on pages.

    Index Allocation MapInformation about extents used by a table or index per allocation unit.

    Bulk Changed MapInformation about extents modified by bulk operations since the last BACKUP LOG statement per allocation unit.

    Differential Changed MapInformation about extents that have changed since the last BACKUP DATABASE statement per allocation unit.*En SQL Server 2005, puede agregarse una nueva columna con la especificacin NOT NULL si la tabla est vaca. Si la tabla ya contiene filas, puedeagregar columnas NOT NULL pero debe especificar para stas una restriccin DEFAULT (igual que en la versin 2000 de SQL Server)*GUID: Globally Unique Identifier (Identificador nico Globalmente)

    1Una columna IDENTITY no garantiza la unicidad de los valores de dicha columna debido a que el usuario puede agregar nuevas filas con valores propios e incluso puede reiniciarse el valor inicial en cuyo caso podra volver a asignarse repetidamente el mismo valor en filas diferentes. Para garantizar la unicidad de los valores generados combine IDENTITY con una restriccin PRIMARY KEY.