SlideShare una empresa de Scribd logo
1 de 6
SQL SERVER
Gestión de Objetos
Las páginas Mapa de asignación de índices (IAM, Index Allocation Map) asignan las
extensiones de un archivo de la base de datos utilizadas por un montón o por un índice.
Las páginas IAM también asignan las extensiones asingadas a la cadena de páginas ntext,
text e image en cualquier tabla que disponga de columna de estos tipos. Cada uno de
estos objetos dispone de una cadena de una o más páginas IAM que registran todas las
extensiones asignadas al mismo. Cada objeto dispone de al menos una IAM para cada
archivo del que tiene extensiones. Pueden tener más de una IAM en un archivo si el
intervalo de extensiones del archivo asignadas al objeto supera el intervalo que una IAM
puede registrar.

Las páginas IAM se asignan cuando los objetos las necesitan y se ubican de forma aleatoria
en el archivo; sysindexes.dbo.FirstIAM apunta a la primera página IAM de un objeto y
todas las páginas IAM de dicho objeto están encadenadas.

Una página IAM tiene un encabezado que indica la extensión inicial del intervalo de
extensiones asignado por la IAM. La IAM también tiene un gran mapa de bits en el que
cada bit representa una extensión. EL primer bit del mapa representa la primera extensión
del intervalo, el segundo bit representa la segunda extensión, etc. Si un bit es 0, la
extensión que representa no está asignada al objeto propietario de la IAM. Si el bit es 1, la
extensión que representa está asignada al objeto propietario de la página IAM.

Si Microsoft® SQL Server™ 2000 necesita insertar una fila nueva y no hay espacio
disponible en la página actual, utiliza las páginas IAM y PFS para buscar una página con
suficiente espacio para albergar la fila. SQL Server utiliza las páginas IAM para buscar las
extensiones asignadas al objeto. Para cada extensión, SQL Server busca las páginas PFS
para ver si hay alguna página con espacio disponible suficiente para almacenar la fila. Cada
página IAM y PFS cubre un gran número de páginas de datos, de modo que en una base de
datos hay pocas páginas IAM y PFS. Esto significa que las páginas IAM y PFS están
generalmente en el búfer de memoria de SQL Server y se pueden buscar con rapidez.

SQL Server sólo asigna una nueva extensión a un objeto cuando no puede encontrar
rápidamente una página en una extensión existente con espacio suficiente para almacenar
la fila que se va a insertar. SQL Server asigna las extensiones entre las que están
disponibles en el grupo de archivos siguiendo un algoritmo de asignación proporcional. Si
un grupo de archivos tiene dos archivos, uno de los cuales tiene el doble de espacio
disponible que el otro, asignará dos páginas en el archivo con más espacio disponible por
cada página asignada en el otro archivo. Esto significa que los archivos de un grupo de
archivos tienen un porcentaje de espacio utilizado similar.

Objetos de base de Datos

Cuando se utiliza SQL SERVER para diseñar una base de datos, se crean objetos como los
que se indican a continuación.
Tablas: Una base de datos consta de una o más tablas. Una tabla es una
colección de datos organizados en filas y columnas. Por ejemplo, podría tener
una tabla para la información de autor denominada authors. Cada columna
contendría un tipo determinado de información, como el apellido del autor, por
ejemplo. Cada fila contendrá toda la información relativa a un autor concreto:
nombre, apellidos, dirección, etc.

En una base de datos, puede tener varias tablas, cada una para un tema
específico. Por ejemplo, la base de datos pubs podría contener tablas para
autores, títulos, etc. Si se utiliza una tabla diferente para cada tema, se elimina
la duplicación de datos, se realiza un almacenamiento de datos más eficaz y se
reduce el número de errores cometidos en la entrada de datos.

Las tablas son los bloques de construcción básicos de los diagramas de las bases
de datos. En un diagrama de base de datos, cada tabla se convierte en una
matriz para que pueda ver todas las propiedades definidas para cada columna
de la tabla de la base de datos.

Columnas: En una tabla los datos se organizan en columnas. Cada columna
almacena un elemento de datos, como un nombre, una línea de una dirección,
un precio o cualquier unidad de información discreta similar.

Cuando se crean columnas en una tabla, se les asigna un nombre que
identifique su propósito, como FirstName o Address1. En la mayoría de las bases
de datos, también se deben especificar propiedades adicionales, como el
tamaño máximo permitido para una entrada en la columna, y el tipo de datos
que va a contener la columna: caracteres, números enteros, números de coma
flotante, fechas u horas, etc. Otras propiedades de columna pueden especificar
si la columna es la clave principal de la tabla, si los usuarios deben escribir un
valor en ella y cuál es su valor predeterminado.

 Claves: Hay dos tipos de claves. Una clave principal es un conjunto de columnas
de una tabla que tienen la garantía de poseer valores únicos para cada fila de
dicha tabla. Las claves principales también de denominan restricciones de clave
principal, porque realmente restringen los valores que se pueden agregar a la
tabla: evitan que se agregue una fila a la tabla cuyas columnas de clave
principal son iguales a los valores correspondientes de otra fila de dicha tabla.

Una clave externa es una correspondencia entre un conjunto de columnas de
una tabla y el conjunto de columnas de clave principal de otra tabla. Cuando se
analizan las claves externas, las dos tablas que participan se denominan en
ocasiones tabla de claves externas y tabla de claves principales. Las claves
externas también reciben el nombre de restricciones de clave externa, porque
restringen las filas de una tabla: garantizan que las filas que se agreguen a la
tabla de claves externas tengan una fila correspondiente en la tabla de claves
principales. Es decir, requieren que las filas que se incorporen a la tabla de
claves principales tengan valores en la columna de claves externas que se
correspondan con los valores respectivos de las columnas de claves principal es
para una fila de la tabla de claves principales.

Relaciones de tablas: Puede crear una relación entre las tablas en un diagrama
de base de datos para mostrar cómo se vinculan las columnas de una tabla a las
columnas de otra tabla.

En una base de datos relacional, las relaciones permiten evitar la existencia de
datos redundantes. Por ejemplo, si está diseñando una base de datos para
hacer un seguimiento de sus libros, podría tener una tabla con el nombre titles
para almacenar información acerca de cada libro, como su título, la fecha de
publicación y el editor. También es posible que se desee almacenar información
relativa al editor, como el número de teléfono, la dirección y el código postal. Si
desea almacenar toda esta información en la tabla titles, el número de teléfono
del editor estaría duplicado para cada título publicado por dicho editor

Índices : Se pueden utilizar índices para obtener un acceso rápido a información
concreta de una tabla de base de datos. Un índice es una estructura que
ordena los valores de una o más columnas de una tabla de base de datos, como
la columna de apellidos (lname) de la tabla employee. Si se busca un empleado
concreto por su apellido, el índice ayuda a obtener dicha información con
mayor rapidez que si se realiza una búsqueda en todas las filas de la tabla.
Restricciones

Desencadenadores: Un desencadenador es un tipo especial de procedimiento
almacenado que entra en vigor cuando se modifican datos en una tabla
especificada utilizando una o más operaciones de modificación de datos:
UPDATE (actualización), INSERT (inserción) o DELETE (eliminación). Los
desencadenadores pueden consultar otras tablas e incluir instrucciones SQL
complejas. Son especialmente útiles para exigir reglas o requisitos complejos.
Por ejemplo, se puede controlar que se permita insertar un pedido basándose
en el estado de cuenta actual de un cliente.
Procedimientos almacenados: Los procedimientos almacenados pueden facilitar
en gran medida la administración de la base de datos y la visualización de
información sobre dicha base de datos y sus usuarios. Los procedimientos
almacenados son una colección precompilada de instrucciones SQL e
instrucciones de control de flujo opcionales almacenadas bajo un solo nombre
y procesadas como una unidad. Los procedimientos almacenados se guardan
en una base de datos; se pueden ejecutar desde una aplicación y permiten
variables declaradas por el usuario, ejecución condicional y otras funciones
eficaces de programación.
Restricciones
Las restricciones le permiten definir la forma de hacer que Microsoft® SQL Server™ 2000
exija automáticamente la integridad de la base de datos. Las restricciones definen reglas
relativas a los valores permitidos en las columnas y constituyen el mecanismo estándar
para exigir la integridad. El uso de restricciones es preferible a los desencadenadores, las
reglas y los valores predeterminados. El optimizador de consultas también utiliza
definiciones de restricciones para generar planes de ejecución de consultas de alto
rendimiento.

       Clases de restricciones

SQL Server 2000 admite cinco clases de restricciones

       NOT NULL especifica que la columna no acepta valores NULL.

       Las restricciones CHECK exigen la integridad del dominio mediante la limitación de
       los valores que se pueden asignar a una columna.

       Una restricción CHECK especifica una condición de búsqueda de tipo booleano
       (TRUE o FALSE) que se aplica a todos los valores que se escriben en la columna; los
       valores para los que el resultado no sea TRUE se rechazan. En una misma columna
       se pueden especificar varias restricciones CHECK. Este ejemplo muestra la creación
       de una restricción con nombre, chk_id, que exige el dominio de la clave principal
       asegurando que en dicha clave sólo se aceptan los números que se encuentren
       dentro de un intervalo especificado.

       CREATE TABLE cust_sample
         (
         cust_id         int    PRIMARY KEY,
         cust_name         char(50),
         cust_address        char(50),
         cust_credit_limit money,
         CONSTRAINT chk_id CHECK (cust_id BETWEEN 0 and 10000 )
         )

       Las restricciones UNIQUE exigen la unicidad de los valores de un conjunto de
       columnas.

       No se permite que dos filas de una tabla tengan los mismos valores no NULL en las
       columnas con una restricción UNIQUE. Las claves principales también exigen la
       unicidad, pero las claves principales no permiten valores NULL. Una restricción
       UNIQUE es preferible a un índice único.

       Las restricciones PRIMARY KEY identifican la columna o el conjunto de columnas
       cuyos valores identifican de forma unívoca cada una de las filas de una tabla.

       Dos filas de la tabla no pueden tener el mismo valor de clave principal. No se
       pueden asignar valores NULL a ninguna de las columnas de una clave principal.
NULL es un valor especial en las bases de datos que representa un valor
desconocido, que no es lo mismo que un espacio en blanco o un 0. Como clave
principal se recomienda el uso de columnas de tipo entero y de tamaño pequeño.
Todas las tablas tienen que tener una clave principal.

Una tabla puede tener varias combinaciones de columnas que puedan identificar
de forma unívoca las filas de la tabla; cada combinación es una clave candidata. El
administrador de la base de datos elige una de las claves candidatas como clave
principal. Por ejemplo, en la tabla part_sample, part_nmbr y part_name serían
claves candidatas, pero sólo part_nmbr ha sido elegida como clave principal.

CREATE TABLE part_sample
     (part_nmbr     int       PRIMARY KEY,
     part_name      char(30),
     part_weight     decimal(6,2),
     part_color    char(15) )

Las restricciones FOREIGN KEY identifican las relaciones entre las tablas.

Una clave externa de una tabla apunta a una clave candidata de otra tabla. Las
claves externas evitan acciones que podrían dejar filas con valores de claves
externas cuando no hay claves candidatas con ese valor. En el ejemplo siguiente, la
tabla order_part establece una clave externa que hace referencia a la tabla
part_sample, definida previamente. Normalmente, order_part también tendría
otra clave externa en la tabla de pedidos, pero esto sólo es un ejemplo.

CREATE TABLE order_part
   (order_nmbr      int,
   part_nmbr     int
     FOREIGN KEY REFERENCES part_sample(part_nmbr)
        ON DELETE NO ACTION,
   qty_ordered     int)
GO

No se puede insertar una fila que tenga un valor de clave externa (excepto NULL) si
no hay una clave candidata con dicho valor. La cláusula ON DELETE controla las
acciones que se llevarán a cabo si intenta eliminar una fila a la que apuntan las
claves externas existentes. La cláusula ON DELETE tiene dos opciones:

       NO ACTION especifica que la eliminación produce un error.

       CASCADE especifica que también se eliminan todas las filas con claves
       externas que apuntan a la fila eliminada.

La cláusula ON UPDATE define las acciones que se llevarán a cabo si intenta
actualizar un valor de clave candidata a la que apuntan las claves externas
existentes. También acepta las opciones NO ACTION y CASCADE.
Restricciones de tabla y de columna

Las restricciones se dividen en restricciones de columna o restricciones de tabla:

       Las restricciones de columna se especifican como parte de la definición de las
       columnas y sólo se aplican a dichas columnas (las restricciones de los ejemplos
       anteriores son restricciones de columna).

       Las restricciones de tabla se declaran de forma independiente de la definición de
       las columnas y se pueden aplicar a varias columnas de la tabla.

Las restricciones de tabla se utilizan cuando una restricción tiene que incluir varias
columnas.

Por ejemplo, si una tabla tiene dos o más columnas en la clave principal, tiene que utilizar
una restricción de tabla para incluir dichas columnas en la clave principal. Piense en una
tabla que registra los sucesos de una máquina de una fábrica. Suponga que se pueden
producir sucesos de tipos distintos al mismo tiempo, pero no se pueden producir dos
sucesos del mismo tipo al mismo tiempo. Esto se puede exigir en la tabla si se incluyen las
columnas type y time en una clave principal de dos columnas.

CREATE TABLE factory_process
 (event_type int,
 event_time datetime,
 event_site char(50),
 event_desc char(1024),
CONSTRAINT event_key PRIMARY KEY (event_type, event_time) )

Más contenido relacionado

La actualidad más candente

La actualidad más candente (16)

Base de-datos
Base de-datosBase de-datos
Base de-datos
 
Access
AccessAccess
Access
 
Cocinero porras-sanmartino
Cocinero porras-sanmartinoCocinero porras-sanmartino
Cocinero porras-sanmartino
 
Tabla Dinamica
Tabla DinamicaTabla Dinamica
Tabla Dinamica
 
BASES DE DATOS
BASES DE DATOSBASES DE DATOS
BASES DE DATOS
 
Modelado de Datos - Bases de Datos
Modelado de Datos - Bases de DatosModelado de Datos - Bases de Datos
Modelado de Datos - Bases de Datos
 
INDICES EN SQL SERVER
INDICES EN SQL SERVERINDICES EN SQL SERVER
INDICES EN SQL SERVER
 
Karen alejandra corredo rfff
Karen alejandra corredo rfffKaren alejandra corredo rfff
Karen alejandra corredo rfff
 
Base de datos felipe
Base de datos felipeBase de datos felipe
Base de datos felipe
 
Grupo2 tabla de base de datos
Grupo2 tabla de base de datosGrupo2 tabla de base de datos
Grupo2 tabla de base de datos
 
Postgresql
PostgresqlPostgresql
Postgresql
 
Tarea tatiana
Tarea tatianaTarea tatiana
Tarea tatiana
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 
Resumen
ResumenResumen
Resumen
 
Indices en oracle
Indices en oracleIndices en oracle
Indices en oracle
 
Trabajo de informatica
Trabajo de informaticaTrabajo de informatica
Trabajo de informatica
 

Similar a SQL SERVER

En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...Monytha Roman
 
Fundamentos De Bases De Datos
Fundamentos De Bases De DatosFundamentos De Bases De Datos
Fundamentos De Bases De Datoslius felipe
 
Fundamentos De Bases De Datos
Fundamentos De Bases De DatosFundamentos De Bases De Datos
Fundamentos De Bases De Datoslius felipe
 
Fundamentos De Bases De Datos
Fundamentos De Bases De DatosFundamentos De Bases De Datos
Fundamentos De Bases De Datoslius felipe
 
Aspectos de access
Aspectos de accessAspectos de access
Aspectos de accessCejem Vidal
 
Base de datos (.net)
Base de datos (.net)Base de datos (.net)
Base de datos (.net)7891089671
 
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Patricio Avilez
 
Trabajo Sobre Access U Central
Trabajo Sobre Access U CentralTrabajo Sobre Access U Central
Trabajo Sobre Access U CentralPatricio Avilez
 
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Patricio Avilez
 
Trabajo Sobre Access U Central
Trabajo Sobre Access U CentralTrabajo Sobre Access U Central
Trabajo Sobre Access U Centralpato
 
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Patricio Avilez
 

Similar a SQL SERVER (20)

En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...En los recursos de la semana se pueden leer las reglas para planificar una ba...
En los recursos de la semana se pueden leer las reglas para planificar una ba...
 
mysql comandos.pdf
mysql comandos.pdfmysql comandos.pdf
mysql comandos.pdf
 
Fundamentos De Bases De Datos
Fundamentos De Bases De DatosFundamentos De Bases De Datos
Fundamentos De Bases De Datos
 
Fundamentos De Bases De Datos
Fundamentos De Bases De DatosFundamentos De Bases De Datos
Fundamentos De Bases De Datos
 
Fundamentos De Bases De Datos
Fundamentos De Bases De DatosFundamentos De Bases De Datos
Fundamentos De Bases De Datos
 
TABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOSTABLAS Y TIPOS DE DATOS
TABLAS Y TIPOS DE DATOS
 
Periodo 1
Periodo 1Periodo 1
Periodo 1
 
Periodo 1
Periodo 1Periodo 1
Periodo 1
 
Aspectos de access
Aspectos de accessAspectos de access
Aspectos de access
 
Base de datos relacionales
Base de datos relacionalesBase de datos relacionales
Base de datos relacionales
 
Diapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base DatosDiapositivas De Tablas y Base Datos
Diapositivas De Tablas y Base Datos
 
Base de datos
Base de datosBase de datos
Base de datos
 
Mysql
MysqlMysql
Mysql
 
Taba y tipos de datos
Taba y tipos de datosTaba y tipos de datos
Taba y tipos de datos
 
Base de datos (.net)
Base de datos (.net)Base de datos (.net)
Base de datos (.net)
 
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
 
Trabajo Sobre Access U Central
Trabajo Sobre Access U CentralTrabajo Sobre Access U Central
Trabajo Sobre Access U Central
 
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
 
Trabajo Sobre Access U Central
Trabajo Sobre Access U CentralTrabajo Sobre Access U Central
Trabajo Sobre Access U Central
 
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
Trabajo De Informatica Sobre Access Magno Patricio Avilez Ae3 4
 

Más de Omar Salazar

Sistema operativo linux
Sistema operativo linuxSistema operativo linux
Sistema operativo linuxOmar Salazar
 
Mi primer día de campamento
Mi primer día de campamentoMi primer día de campamento
Mi primer día de campamentoOmar Salazar
 
Seleccion de datos 2
Seleccion de datos 2Seleccion de datos 2
Seleccion de datos 2Omar Salazar
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datosOmar Salazar
 
Seleccion de datos 2
Seleccion de datos 2Seleccion de datos 2
Seleccion de datos 2Omar Salazar
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datosOmar Salazar
 
Estructura del sistema operativo
Estructura del sistema operativoEstructura del sistema operativo
Estructura del sistema operativoOmar Salazar
 
Estructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por CapasEstructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por CapasOmar Salazar
 

Más de Omar Salazar (9)

Sistema operativo linux
Sistema operativo linuxSistema operativo linux
Sistema operativo linux
 
Practica sql i,ii
Practica sql i,iiPractica sql i,ii
Practica sql i,ii
 
Mi primer día de campamento
Mi primer día de campamentoMi primer día de campamento
Mi primer día de campamento
 
Seleccion de datos 2
Seleccion de datos 2Seleccion de datos 2
Seleccion de datos 2
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datos
 
Seleccion de datos 2
Seleccion de datos 2Seleccion de datos 2
Seleccion de datos 2
 
Seleccion de datos
Seleccion de datosSeleccion de datos
Seleccion de datos
 
Estructura del sistema operativo
Estructura del sistema operativoEstructura del sistema operativo
Estructura del sistema operativo
 
Estructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por CapasEstructura del sistema_operativo - Sistemas por Capas
Estructura del sistema_operativo - Sistemas por Capas
 

SQL SERVER

  • 1. SQL SERVER Gestión de Objetos Las páginas Mapa de asignación de índices (IAM, Index Allocation Map) asignan las extensiones de un archivo de la base de datos utilizadas por un montón o por un índice. Las páginas IAM también asignan las extensiones asingadas a la cadena de páginas ntext, text e image en cualquier tabla que disponga de columna de estos tipos. Cada uno de estos objetos dispone de una cadena de una o más páginas IAM que registran todas las extensiones asignadas al mismo. Cada objeto dispone de al menos una IAM para cada archivo del que tiene extensiones. Pueden tener más de una IAM en un archivo si el intervalo de extensiones del archivo asignadas al objeto supera el intervalo que una IAM puede registrar. Las páginas IAM se asignan cuando los objetos las necesitan y se ubican de forma aleatoria en el archivo; sysindexes.dbo.FirstIAM apunta a la primera página IAM de un objeto y todas las páginas IAM de dicho objeto están encadenadas. Una página IAM tiene un encabezado que indica la extensión inicial del intervalo de extensiones asignado por la IAM. La IAM también tiene un gran mapa de bits en el que cada bit representa una extensión. EL primer bit del mapa representa la primera extensión del intervalo, el segundo bit representa la segunda extensión, etc. Si un bit es 0, la extensión que representa no está asignada al objeto propietario de la IAM. Si el bit es 1, la extensión que representa está asignada al objeto propietario de la página IAM. Si Microsoft® SQL Server™ 2000 necesita insertar una fila nueva y no hay espacio disponible en la página actual, utiliza las páginas IAM y PFS para buscar una página con suficiente espacio para albergar la fila. SQL Server utiliza las páginas IAM para buscar las extensiones asignadas al objeto. Para cada extensión, SQL Server busca las páginas PFS para ver si hay alguna página con espacio disponible suficiente para almacenar la fila. Cada página IAM y PFS cubre un gran número de páginas de datos, de modo que en una base de datos hay pocas páginas IAM y PFS. Esto significa que las páginas IAM y PFS están generalmente en el búfer de memoria de SQL Server y se pueden buscar con rapidez. SQL Server sólo asigna una nueva extensión a un objeto cuando no puede encontrar rápidamente una página en una extensión existente con espacio suficiente para almacenar la fila que se va a insertar. SQL Server asigna las extensiones entre las que están disponibles en el grupo de archivos siguiendo un algoritmo de asignación proporcional. Si un grupo de archivos tiene dos archivos, uno de los cuales tiene el doble de espacio disponible que el otro, asignará dos páginas en el archivo con más espacio disponible por cada página asignada en el otro archivo. Esto significa que los archivos de un grupo de archivos tienen un porcentaje de espacio utilizado similar. Objetos de base de Datos Cuando se utiliza SQL SERVER para diseñar una base de datos, se crean objetos como los que se indican a continuación.
  • 2. Tablas: Una base de datos consta de una o más tablas. Una tabla es una colección de datos organizados en filas y columnas. Por ejemplo, podría tener una tabla para la información de autor denominada authors. Cada columna contendría un tipo determinado de información, como el apellido del autor, por ejemplo. Cada fila contendrá toda la información relativa a un autor concreto: nombre, apellidos, dirección, etc. En una base de datos, puede tener varias tablas, cada una para un tema específico. Por ejemplo, la base de datos pubs podría contener tablas para autores, títulos, etc. Si se utiliza una tabla diferente para cada tema, se elimina la duplicación de datos, se realiza un almacenamiento de datos más eficaz y se reduce el número de errores cometidos en la entrada de datos. Las tablas son los bloques de construcción básicos de los diagramas de las bases de datos. En un diagrama de base de datos, cada tabla se convierte en una matriz para que pueda ver todas las propiedades definidas para cada columna de la tabla de la base de datos. Columnas: En una tabla los datos se organizan en columnas. Cada columna almacena un elemento de datos, como un nombre, una línea de una dirección, un precio o cualquier unidad de información discreta similar. Cuando se crean columnas en una tabla, se les asigna un nombre que identifique su propósito, como FirstName o Address1. En la mayoría de las bases de datos, también se deben especificar propiedades adicionales, como el tamaño máximo permitido para una entrada en la columna, y el tipo de datos que va a contener la columna: caracteres, números enteros, números de coma flotante, fechas u horas, etc. Otras propiedades de columna pueden especificar si la columna es la clave principal de la tabla, si los usuarios deben escribir un valor en ella y cuál es su valor predeterminado. Claves: Hay dos tipos de claves. Una clave principal es un conjunto de columnas de una tabla que tienen la garantía de poseer valores únicos para cada fila de dicha tabla. Las claves principales también de denominan restricciones de clave principal, porque realmente restringen los valores que se pueden agregar a la tabla: evitan que se agregue una fila a la tabla cuyas columnas de clave principal son iguales a los valores correspondientes de otra fila de dicha tabla. Una clave externa es una correspondencia entre un conjunto de columnas de una tabla y el conjunto de columnas de clave principal de otra tabla. Cuando se analizan las claves externas, las dos tablas que participan se denominan en ocasiones tabla de claves externas y tabla de claves principales. Las claves externas también reciben el nombre de restricciones de clave externa, porque restringen las filas de una tabla: garantizan que las filas que se agreguen a la tabla de claves externas tengan una fila correspondiente en la tabla de claves principales. Es decir, requieren que las filas que se incorporen a la tabla de claves principales tengan valores en la columna de claves externas que se
  • 3. correspondan con los valores respectivos de las columnas de claves principal es para una fila de la tabla de claves principales. Relaciones de tablas: Puede crear una relación entre las tablas en un diagrama de base de datos para mostrar cómo se vinculan las columnas de una tabla a las columnas de otra tabla. En una base de datos relacional, las relaciones permiten evitar la existencia de datos redundantes. Por ejemplo, si está diseñando una base de datos para hacer un seguimiento de sus libros, podría tener una tabla con el nombre titles para almacenar información acerca de cada libro, como su título, la fecha de publicación y el editor. También es posible que se desee almacenar información relativa al editor, como el número de teléfono, la dirección y el código postal. Si desea almacenar toda esta información en la tabla titles, el número de teléfono del editor estaría duplicado para cada título publicado por dicho editor Índices : Se pueden utilizar índices para obtener un acceso rápido a información concreta de una tabla de base de datos. Un índice es una estructura que ordena los valores de una o más columnas de una tabla de base de datos, como la columna de apellidos (lname) de la tabla employee. Si se busca un empleado concreto por su apellido, el índice ayuda a obtener dicha información con mayor rapidez que si se realiza una búsqueda en todas las filas de la tabla. Restricciones Desencadenadores: Un desencadenador es un tipo especial de procedimiento almacenado que entra en vigor cuando se modifican datos en una tabla especificada utilizando una o más operaciones de modificación de datos: UPDATE (actualización), INSERT (inserción) o DELETE (eliminación). Los desencadenadores pueden consultar otras tablas e incluir instrucciones SQL complejas. Son especialmente útiles para exigir reglas o requisitos complejos. Por ejemplo, se puede controlar que se permita insertar un pedido basándose en el estado de cuenta actual de un cliente. Procedimientos almacenados: Los procedimientos almacenados pueden facilitar en gran medida la administración de la base de datos y la visualización de información sobre dicha base de datos y sus usuarios. Los procedimientos almacenados son una colección precompilada de instrucciones SQL e instrucciones de control de flujo opcionales almacenadas bajo un solo nombre y procesadas como una unidad. Los procedimientos almacenados se guardan en una base de datos; se pueden ejecutar desde una aplicación y permiten variables declaradas por el usuario, ejecución condicional y otras funciones eficaces de programación.
  • 4. Restricciones Las restricciones le permiten definir la forma de hacer que Microsoft® SQL Server™ 2000 exija automáticamente la integridad de la base de datos. Las restricciones definen reglas relativas a los valores permitidos en las columnas y constituyen el mecanismo estándar para exigir la integridad. El uso de restricciones es preferible a los desencadenadores, las reglas y los valores predeterminados. El optimizador de consultas también utiliza definiciones de restricciones para generar planes de ejecución de consultas de alto rendimiento. Clases de restricciones SQL Server 2000 admite cinco clases de restricciones NOT NULL especifica que la columna no acepta valores NULL. Las restricciones CHECK exigen la integridad del dominio mediante la limitación de los valores que se pueden asignar a una columna. Una restricción CHECK especifica una condición de búsqueda de tipo booleano (TRUE o FALSE) que se aplica a todos los valores que se escriben en la columna; los valores para los que el resultado no sea TRUE se rechazan. En una misma columna se pueden especificar varias restricciones CHECK. Este ejemplo muestra la creación de una restricción con nombre, chk_id, que exige el dominio de la clave principal asegurando que en dicha clave sólo se aceptan los números que se encuentren dentro de un intervalo especificado. CREATE TABLE cust_sample ( cust_id int PRIMARY KEY, cust_name char(50), cust_address char(50), cust_credit_limit money, CONSTRAINT chk_id CHECK (cust_id BETWEEN 0 and 10000 ) ) Las restricciones UNIQUE exigen la unicidad de los valores de un conjunto de columnas. No se permite que dos filas de una tabla tengan los mismos valores no NULL en las columnas con una restricción UNIQUE. Las claves principales también exigen la unicidad, pero las claves principales no permiten valores NULL. Una restricción UNIQUE es preferible a un índice único. Las restricciones PRIMARY KEY identifican la columna o el conjunto de columnas cuyos valores identifican de forma unívoca cada una de las filas de una tabla. Dos filas de la tabla no pueden tener el mismo valor de clave principal. No se pueden asignar valores NULL a ninguna de las columnas de una clave principal.
  • 5. NULL es un valor especial en las bases de datos que representa un valor desconocido, que no es lo mismo que un espacio en blanco o un 0. Como clave principal se recomienda el uso de columnas de tipo entero y de tamaño pequeño. Todas las tablas tienen que tener una clave principal. Una tabla puede tener varias combinaciones de columnas que puedan identificar de forma unívoca las filas de la tabla; cada combinación es una clave candidata. El administrador de la base de datos elige una de las claves candidatas como clave principal. Por ejemplo, en la tabla part_sample, part_nmbr y part_name serían claves candidatas, pero sólo part_nmbr ha sido elegida como clave principal. CREATE TABLE part_sample (part_nmbr int PRIMARY KEY, part_name char(30), part_weight decimal(6,2), part_color char(15) ) Las restricciones FOREIGN KEY identifican las relaciones entre las tablas. Una clave externa de una tabla apunta a una clave candidata de otra tabla. Las claves externas evitan acciones que podrían dejar filas con valores de claves externas cuando no hay claves candidatas con ese valor. En el ejemplo siguiente, la tabla order_part establece una clave externa que hace referencia a la tabla part_sample, definida previamente. Normalmente, order_part también tendría otra clave externa en la tabla de pedidos, pero esto sólo es un ejemplo. CREATE TABLE order_part (order_nmbr int, part_nmbr int FOREIGN KEY REFERENCES part_sample(part_nmbr) ON DELETE NO ACTION, qty_ordered int) GO No se puede insertar una fila que tenga un valor de clave externa (excepto NULL) si no hay una clave candidata con dicho valor. La cláusula ON DELETE controla las acciones que se llevarán a cabo si intenta eliminar una fila a la que apuntan las claves externas existentes. La cláusula ON DELETE tiene dos opciones: NO ACTION especifica que la eliminación produce un error. CASCADE especifica que también se eliminan todas las filas con claves externas que apuntan a la fila eliminada. La cláusula ON UPDATE define las acciones que se llevarán a cabo si intenta actualizar un valor de clave candidata a la que apuntan las claves externas existentes. También acepta las opciones NO ACTION y CASCADE.
  • 6. Restricciones de tabla y de columna Las restricciones se dividen en restricciones de columna o restricciones de tabla: Las restricciones de columna se especifican como parte de la definición de las columnas y sólo se aplican a dichas columnas (las restricciones de los ejemplos anteriores son restricciones de columna). Las restricciones de tabla se declaran de forma independiente de la definición de las columnas y se pueden aplicar a varias columnas de la tabla. Las restricciones de tabla se utilizan cuando una restricción tiene que incluir varias columnas. Por ejemplo, si una tabla tiene dos o más columnas en la clave principal, tiene que utilizar una restricción de tabla para incluir dichas columnas en la clave principal. Piense en una tabla que registra los sucesos de una máquina de una fábrica. Suponga que se pueden producir sucesos de tipos distintos al mismo tiempo, pero no se pueden producir dos sucesos del mismo tipo al mismo tiempo. Esto se puede exigir en la tabla si se incluyen las columnas type y time en una clave principal de dos columnas. CREATE TABLE factory_process (event_type int, event_time datetime, event_site char(50), event_desc char(1024), CONSTRAINT event_key PRIMARY KEY (event_type, event_time) )