TEMA X: TABLAS
10.1. Qué es una base de datos.
10.2. Dispositivos de base de datos
10.3. Creación de bases de datos
10.4. Tamaño máximo de una base de datos y fragmentos de las bases de datos
10.5. Expandir y comprimir las base se datos
10.6. Bases de datos “al descubierto”
10.7. Opciones de base de datos
10.8. Modificación de las opciones de base de datos
10.9. Otras consideraciones sobre las bases de datos
10.10. Practicas
10.11. Creación de tablas
10.12. Almacenamiento interno. Detalles
10.13. Índices
10.14. Tipos de datos definidos por el usuario
10.15. Propiedad Identy (identidad)
10.16. Restricciones
10.17. Tablas temporales
10.18. Practicas
10.1 Qué es una base de datos
Una base de datos es una colección de información organizada de forma que un programa de ordenador pueda seleccionar rápidamente los fragmentos de datos que necesite. Una base de datos es un sistema de archivos electrónico.
10.2 Dispositivos de base de datos
Los dispositivos de base de datos son porciones de un disco o archivos que son utilizados para almacenar bases de datos o porciones de bases de datos. Usted puede inicializar dispositivos de base de datos utilizando archivos regulares del sistema operativo, o RawDevices.
10.3 Creación de bases de datos
Lo primero que tenemos que tener en cuenta a la hora de crear una base de datos, es el gestor que vamos a utilizar.
Puede crear una base de datos de SQL Server Compact 3.5 tanto si tiene un proyecto abierto como si no. La base de datos creada se puede administrar en Visual Studio, pero no está asociada de forma alguna con su proyecto de dispositivos. Para utilizar la base de datos en su proyecto de dispositivos, debe agregar la base de datos al proyecto de dispositivos como un origen de datos.
10.4 Tamaño máximo de una base de datos y fragmentos de las bases de datos
El tamaño de la base de datos puede ser proporcional a los datos que se vallan guardando en nuestra base de datos.
Una base de datos SQL Server Compact, a diferencia de una base de datos SQL Server que se expone como un servicio de Windows, se ejecuta bajo el proceso de la aplicación que la consume (in-process). El tamaño máximo del archivo de base de datos es de 4 Gb. y la extensión por defecto es .sdf la cual puede ser modificada. El nombre de la base de datos está limitado a 128 caracteres. En cuanto a limitaciones destacar que el número máximo de tablas por base de datos es de 1024 con un tamaño máximo por registro de 8060 bytes con un tamaño por página de 4 Kb. y 2 Gb. para campos BLOB.
10.5 Expandir y comprimir las base de datos
El primer método ofrece control total sobre el tamaño de los archivos de tempdb pero requiere reiniciar SQL Server. El segundo método comprime tempdb en conjunto, con algunas limitaciones entre las que se incluye tener que reiniciar SQL Server. El tercer método permite comprimir archivos individuales de tempdb. Los dos últimos métodos requieren que no haya actividad en la base de datos tempdb durante la operación de compresión.
10.6 Bases de datos “al descubierto”
Base de datos al descubierto es un término utilizado para dar significado a cuando una base de datos se le corrompe su seguridad y esta deja en descubierto todos sus datos para el mundo.
10.7 Opciones de base de datos
Para cada base de datos, es posible configurar varias opciones de base de datos que determinen sus características. Las opciones son únicas para cada base de datos y no afectan a otras bases de datos. Cuando crea una base de datos, estas opciones se establecen en sus valores predeterminados y estos valores se pueden modificar mediante el uso de la cláusula SET de la instrucción ALTER DATABASE. Además, SQL Server Management Studio se puede utilizar para establecer la mayoría de estas opciones.
10.8 Modificación de las opciones de base de datos
Después de especificar una opción de la base de datos, se utiliza automáticamente un punto de comprobación para que la modificación surta efecto de forma inmediata.
10.9 Otras consideraciones sobre las bases de datos
Microsoft SQL Server NotificationServices crea bases de datos cuando se implementa una instancia de NotificationServices. Se definen propiedades de base de datos en la configuración de la instancia y en la definición de la aplicación, pero no bases de datos; no obstante, es necesario configurar el motor de la base de datos correctamente para conseguir un rendimiento óptimo. Utilice las siguientes directrices al configurar el motor de la base de datos.
10.10 Creación de tablas
Una base de datos en un sistema relacional está compuesta por un conjunto de tablas, que corresponden a las relaciones del modelo relacional. En la terminología usada en SQL no se alude a las relaciones, del mismo modo que no se usa el término atributo, pero sí la palabra columna, y no se habla de tupla, sino de línea.
Prácticamente, la creación de la base de datos consiste en la creación de las tablas que la componen. En realidad, antes de poder proceder a la creación de las tablas, normalmente hay que crear la base de datos, lo que a menudo significa definir un espacio de nombres separado para cada conjunto de tablas.
10.11 Almacenamiento interno. Detalles
Al configurar un servidor de informes para ejecutarlo en el modo de integración de SharePoint, el servidor de informes utiliza la configuración de SharePoint y las bases de datos de contenido, así como sus propias bases de datos internas, para almacenar contenido y metadatos.
Tanto ReportingServices como SharePoint son aplicaciones de servidores distribuidos que le permiten ejecutar servicios y bases de datos internas en equipos distintos. Cada servidor almacena distintos tipos de datos. Varias bases de datos relacionales de SQL Server proporcionan almacenamiento interno a ambos servidores. Conocer el tipo de datos que se almacena en cada uno de estos servidores puede ayudarle a entender la forma en que los servidores funcionan juntos. También le proporciona información
General que puede ayudarle a tomar decisiones sobre la forma de asignar espacio en disco y programar copias de seguridad de las bases de datos.
10.13 Índices
El índice de una base de datos es una estructura de datos que mejora la velocidad de las operaciones, permitiendo un rápido acceso a los registros de una tabla en una base de datos.
Los índices pueden ser creados usando una o más columnas, proporcionando la base tanto para búsquedas rápidas al azar como de un ordenado acceso a registros eficiente.
10.14 Tipos de datos definidos por el usuario
Disponible desde SQL Server 2008, es posible crear un Tipo de Dato que sea una Tabla definida por el usuario (User-DefinedTableTypes), utilizando una sentencia CREATE TYPE, de tal modo que además de permitirnosdeclarar variables de Tipo Tabla (algo que ya podíamos hacer desde varias versiones anteriores de SQL Server de forma explícita), también nos permita pasar una variable de Tipo Tabla como parámetro de un Procedimiento Almacenado o de una Función, aunque no es posible utilizarlo como columna de un tabla.
10.15 Propiedad Identity (identidad)
Crea una columna de identidad en una tabla. Esta propiedad se usa con las instrucciones CREATE TABLE y ALTER TABLE de Transact-SQL.
Nota: La propiedad IDENTITY no es la misma que la propiedadIdentity de SQL-DMO que expone la propiedad de identidad de las filas de una columna.
10.16 Restricciones
Las restricciones le permiten definir la manera en que Motor de base de datos exigirá automáticamente la integridad de una 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 al uso de Desencadenadores DML, reglas y valores predeterminados. El optimizador de consultas también utiliza definiciones de restricciones para generar planes de ejecución de consultas de alto rendimiento.
10.17 Tablas temporales
Las tablas temporales se crean en tempdb, y al crearlas se producen varios bloqueos sobre esta base de datos como por ejemplo en las tablas sysobjects y sysindex.
Al usar tablas temporales dentro de un procedimiento almacenado perdemos la ventaja de tener compilado el plan de ejecución de dicho procedimiento almacenado y se producirán recompilaciones más a menudo. Lo mismo pasará cuando el SQL Server intenta reutilizar el plan de ejecución de una consulta parametrizada.