Вы находитесь на странице: 1из 45

Administracin de Base de Datos

SQL Ing. Ronald Prez


rrperez@unimet.edu.ve rperez@shopepk.com

Agenda
CREATE DATABASE Agregar y modificar archivos Esquemas de la base de dato Instantnea de una base de datos Tipos de datos SQL y T-SQL Comentarios en T-SQL Identificadores Variables en T-SQL Operadores en T-SQL Estructura condicional IF Estructura condicional CASE Estructura control WHILE Control de errores TRY CATCH Funciones especiales de Error Generar un error con RAISERROR Sentencia SELECT Intervalos (BETWEEN y NOT BETWEEN) Listas (IN , NOT IN) Valores NULL Buenas Prcticas

CREATE DATABASE

Crea una nueva base de datos y los archivos que se usan para almacenar la base de datos, una instantnea de base de datos, o adjuntar una base de datos a partir de los archivos separados de una base de datos creada anteriormente.

CREATE DATABASE
CREATE DATABASE NOMBREBASE [ON {[PRIMARY] [, FILEGROUP NombreGrupo] (NAME = ArchivoLogico, FILENAME = ArchivoFisico [,SIZE = Tamao] [,MAXSIZE = {TamaoMax|UNLIMITED}] )}[,n]] [LOG ON {(NAME = ArchivoLogico FILENAME =ArchivoFisico [,SIZE=Tamao] [,MAXSIZE= {TamaoMax|UNLIMITED}] [,FILEGROWTH= IncrementoCrecimiento] )}[,..n]] [COLLATE NombreIntercalacin]

CREATE DATABASE

CREATE DATABASE [POS] ON PRIMARY ( NAME = N'POS', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS.mdf', SIZE = 4096KB , MAXSIZE = UNLIMITED, FILEGROWTH = 2048KB ) LOG ON ( NAME = N'POS_log', FILENAME = N'C:\Program Files\Microsoft SQL Server\MSSQL10_50.SQLEXPRESS\MSSQL\DATA\POS_log.ldf, SIZE = 4096KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO

Agregar y modificar archivos

ALTER DATABASE NOMBREBASE ADD FILE (NAME = ArchivoLogico, FILENAME = ArchivoFisico [,SIZE = Tamao] [,MAXSIZE = {TamaoMax|UNLIMITED}] [,FILEGROWTH= IncrementoCrecimiento] )

Agregar y modificar archivos

CREATE DATABASE [POS] GO ALTER DATABASE POS MODIFY FILE ( NAME = N'POS' , SIZE = 3048KB , MAXSIZE = UNLIMITED, FILEGROWTH = 1024KB ) GO ALTER DATABASE POS MODIFY FILE ( NAME = N'POS_log' , SIZE = 1024KB , MAXSIZE = 2048GB , FILEGROWTH = 10%) GO

Esquemas de la base de datos

Es un espacio de nombres para objetos de la base de datos (tablas, vistas, procedimientos almacenados). Define un lmite dentro del cual todos los nombres son nicos. Su Formato: Servidor.BasedeDatos.esquema.objeto Versin corta esquema.objeto

Esquemas de la base de datos

Todas las bases de datos contienen un esquema predeterminado llamado dbo. Dbo. Es asignado para todos los usuarios que no tienen ningn esquema definido explcitamente. Use NombreBaseDatos CREATE SCHEMA NombreEsquema

Instantnea de una base de datos

Es una vista esttica de solo lectura de una BD en un punto especifico en el tiempo que no cambia despus de la creacin de la misma.

La base de datos a partir de la cual se crea la instantnea se llama DB origen.


til para pruebas, desarrollo o de informes, como puntos de restauracin rpido en caso de dao. Pero no son sustitutos a las copias de seguridad, porque no contienen todos los registros de la base. Soportado solo en Enterprise Edition.

Tipos de datos

oNmero Exacto BigInt Int SmallInt Decimal(p,s) Numeric(p,s) Bit oNmero Aproximado Float Real oMonetario Money Smallmoney

oFecha y Tiempo DateTime oCarcter Char() Tamao Fijo Varchar()Tamao Variable Text (2GB) oBinario Binary(n) Image oPropsito General Timestamp XML

SQL y T-SQL SQL.- es un lenguaje de consulta para los sistemas de bases de datos relacionales, pero no es un lenguaje de programacin. SQL, no tiene variables, estructuras de control , de flujo, bucles, etc. T-SQL admite el nivel bsico de implementacin de SQL-92, estandar ANSI TSQL. Podemos programar las unidades de programa de la BD. Procedimientos almacenados. Funciones Triggers Scripts, Etc.

Comentarios en T-SQL

TSQL. No es CASE-SENSITIVE, es decir no diferencia maysculas de minsculas. Un comentario es una aclaracin que el programador incluye en el cdigo, son soportador 2 estilos: -- Comentario de una sola lnea /**/ Comentario de varias lneas

Comentarios en T-SQL

Script. Es un conjuntos de sentencias de TSQL en formato texto plano que se ejecuta en un servidor de SQL-Server GO. Comando para iniciar el envo del lote actual de instrucciones TSQL. En ocasiones es conveniente separar las sentencias en varios lotes. Si desea ejecutar cierto cdigo TSQL, mrquelo y ejecute con la tecla F5.

Identificadores Tenemos 2 tipos: Identificador Estndar De 1 a 128 caracteres mximo. 1er carcter deber ser alfabtico Despus del 1er carcter pueden incluir letras, nmeros o smbolos. Si comienza con @ indica una variable o parmetro local. Si empieza con # indica una tabla o procedimiento temporal. Si empieza con ## indica un objeto global temporal Identificadores Delimitados Si un identificador no cumple algunas de las reglas de formato siempre debe estar delimitado con []

Variables en T-SQL

Una variable es un valor identificado por un nombre (identificador) sobre el que podemos realizar modificaciones. Los identificadores de una variable deben empezar con el carcter @ Para declarar variables debemos utiliza la palabra clave DECLARE, seguido del identificador y tipo de dato. La asignacin de variables con Instruccin SET Sentencia SELECT

Operadores en T-SQL

Aritmticos +,-,*,/,**,% Comparacin =,<>, !=, <,>, <=, >=, !>, !< Lgicos AND, NOT, OR Otros ALL, ANY, BETWEEN, LIKE, NOT, SOME

Estructura condicional IF Permite evaluar una expresin booleana y operaciones en el bloque formado por BEGIN END Sintaxis:
IF(<expresin booleana>) BEGIN {sentencias SQL o bloques de sentencias} END ELSE IF BEGIN {sentencias SQL o bloques de sentencias} END ELSE BEGIN {sentencias SQL o bloques de sentencias} END

ejecutar

Estructura condicional CASE

Permite evaluar una expresin y devolver un valor u otro Sintaxis: CASE <expresin> WHEN <valorExpresin> THEN <valordevuelto>

WHEN <valorExpresin> THEN <valordevuelto>


ELSE END <elsevalordevuelto>-- valor por defecto

Estructura control WHILE

El bucle While se repite mientras la expresin se evale verdadera, es el nico tipo de bucle que dispone TSQL. Sintaxis:
WHILE expresin_booleana BEGIN {sentencias SQL o bloque de Sentencias}

[BREAK]
{sentencias SQL o bloque de Sentencias} CONTINUE {sentencias SQL o bloque de Sentencias} END

Control de errores TRY CATCH

Si se produce un error en el bloque TRY, el control se transfiere a un bloque CATCH. Sintaxis: BEGIN TRY {sentencias SQL o bloque de Sentencias} END TRY BEGIN CATCH {sentencias SQL o bloque de Sentencias} END CATCH

Funciones especiales de Error

ERROR_NUMBER(). Nmero del Error. ERROR_SEVERITY(). Severidad del error ERROR_STATE(). Estado del error. ERROR_PROCEDURE(). Nombre del procedimiento almacenado que ha provocado el error ERROR_LINE(). Lnea en el que se ha producido el error ERROR_MESSAGE(). Mensaje de error

Generar un error con RAISERROR

Provocar voluntariamente un error cuando los datos no cumplen una regla de negocio RAISERROR. Recibe 3 parmetros:
o Mensaje. Texto o Severidad. 0 al 25; solo podemos usar 0 al 18, para el resto debe ser miembro de la funcin o rol sysadmin. o Estado. Valores entre 1 y 127

Sentencia SELECT

Consultar datos almacenados en una tabla SELECT <nombre_campo/ lista_seleccin>

INTO <nombe_nueva_tabla>
FROM <nueva_tabla> WHERE < condicin > [AND OR < condicin > ]] [GROUP BY < nombre_campos> ] [HAVING < condicin > [AND OR < condicin > ]] [ORDER BY < condicin > [AND OR < condicin > ]]

Sentencia SELECT

La legibilidad de una instruccin SELECT se puede mejorar si se proporciona un alias para la tabla. Conocida como Variable de intervalo o nombre de correlacin. til en Join, para identificar campos ambiguos. 2 formas: NombreTabla as TablaAlias NombreTabla TablaAlias

Sentencia SELECT

Distinct. Elimina las filas duplicadas de los resultados. SELECT DISTINC <campo> FROM <tabla> Top. Limitar el nmero de filas devueltas Percent. Se devuelve el porcentaje (especificado por expresin) de las filas del conjunto

Intervalos (BETWEEN y NOT BETWEEN)

Es una bsqueda que devuelve todos los valores entre dos especificados. Podemos tener intervalor inclusivos o exlcusivos (operadores <, >). Podemos hacer uso del operador NOT.

Listas (IN , NOT IN)

La palabra clave IN permite seleccionar las filas que coincidan con alguno de los valores de una lista. Los elementos de una lista deben estar separados por una coma e incluidos entre parntesis. WHERE <campo> IN (Lista)

Valores NULL

NULL. No es cero ni espacio en blanco. Ausencia de valor. Puede ser considerado como perdida en la integridad de datos.

Buenas Prcticas Las buenas prcticas se pueden reducir a unos pocos principios que tienen efectos que se propagan por el cdigo. Una articulacin prctica de estos principios es como sigue: Hay que hacer el cdigo autodocumentado. Hay que hacer el cdigo legible. Considerar todas las acciones explcitamente. Dada la eleccin entre ser crptico o extenso hay que elegir extenso. Hay que incluir comentarios narrativos

Hay que adherirse a opciones soportadas.

Diseo de tipos de datos

La decisin ms importante que tiene que tomar al disear una tabla es sobre la definicin de los tipos de datos para las columnas y las propiedades adjuntas a una columna.

Los tipos de datos limitan el abanico de posibles valores que se pueden almacenar en una columna y determinan cunto espacio de almacenamiento y memoria consume cada fila.

Restricciones

El diseo de una base de datos es un ejercicio de implementar reglas empresariales. Un ejemplo de regla empresarial implementada es que un cliente pueda tener ms de una direccin, no es vlida a no ser que tenga por lo menos una lnea de direccin y una ciudad. Las limitaciones proporcionan un segundo nivel de implementacin de reglas empresariales evitando que los usuarios accedan a la informacin de las tablas fuera de las fronteras permitidas.

Restricciones de comprobacin (CHECK)

Las restricciones de comprobacin se utilizan para limitar el campo de posibles valores en una columna o para implementar patrones especficos para la informacin. Todas las restricciones de comprobacin deben realizar una bsqueda de tipo booleano (TRUE o FALSE) y no pueden referenciar a columnas en otra tabla. Dos niveles: Comprobacin a nivel de columna. Comprobacin a nivel de tabla.

Restricciones de comprobacin (CHECK)

Ejemplo de comprobacin a nivel de tabla para validar una direccin de correo electrnico:
CONTRAINT chkEMail CHECK (Email like %@%.[a-z] [a-z] [a-z] or Email like %@%.[a-z] [a-z] .[a-z] [a-z]). Ejemplo de comprobacin a nivel de columna: CHECK (EmployeeID like [A-Z] [0-9] [0-9] [0-9] [A-Z] [A-Z] [A-Z] [A-Z] [A-Z] [A-Z] )

Reglas

Las restricciones de comprobacin se definen en la definicin de tablas y no se pueden reutilizar. Las reglas tienen la misma funcin que las restricciones de comprobacin, pero son un objeto creado de forma separada.
Como las reglas no estn asociadas a una tabla o columna especficas cuando se crean, no pueden referenciar columnas o tablas en su definicin. En su lugar utilizan variables.

Reglas

CREATE RULE EmailValidator AS @value like %@%.[a-z] [a-z] [a-z] or @value like %@%.[a-z] [a-z] .[a-z] [a-z];

CREATE RULE EmployeeIDValidator AS


@Column like [A-Z] [0-9] [0-9] [0-9] [A-Z] [A-Z] [A-Z] [A-Z] [A-Z] [A-Z]

Otras restricciones

DEFAUL: escribe un valor en una columna cuando el usuario no especifica uno. UNIQUE: asegura que las columnas o combinaciones de columnas no permitan valores duplicados.

PRIMARY KEY: define la columna o combinacin de columnas que permiten que una fila sea identificada exclusivamente
FOREIGN KEY: se integridad referencial. utilizan para implementar

Creacin de convenciones de base de datos

Convenciones de base de datos

Las convenciones de base de datos son necesarias en todas las organizaciones para proporcionar una estructura que codificar y una base de datos. Un DBA debe ser capa de: Crear convenciones y estndares de base de datos Definir convenciones de nomenclatura de objetos. Definir sinnimos consistentes Definir estndares de codificacin de base de datos. Documentar convenciones y estndares de base de datos.

Sinnimos

Los sinnimos permiten crear alias para objetos en una base de datos. Al crear un sinnimo se asla una aplicacin de cualquier cambio que pueda ocurrir a los nombres de los objetos. Los sinnimos se pueden utilizar para crear un alias de un objeto en un servicio local o remoto.

Estndares de codificacin

El objetivo de un estndar de codificacin es proporcionar estructura para la forma en que se escribe el cdigo, as como especificar cmo o si algunas caractersticas y funciones se utilizan.
Los estndares de codificacin se pueden dividir en dos categoras generales: estandarizacin y rendimiento.

Estandarizacin

Los estndares de codificacin diseados para introducir estructuras en el cdigo que se escribe estn todos dentro de esta categora. Algunos ejemplos de estos estndares son los siguientes:
La sangra son cuatro espacios en un lugar de una tabulacin.

Cada bloque de texto dentro de otro bloque superior debe llevar una sangra de cuatro espacios con respecto al superior.
Las palabras maysculas. clave de Transact-SQL van todas en

Rendimientos

Los estndares de codificacin que tienen que ver con el rendimiento estn diseados para restringir la aplicacin de ciertas caractersticas para asegurar el mejor rendimiento posible de las aplicaciones. Algunos de los estndares de codificacin para el rendimiento son los siguientes:

Cursores
Tablas temporales Variables de tablas

Funciones escalares.

Creacin de un sinnimo

USE AdventureWorks GO CREATE SYNONYM Production.usp_BOM FOR AdventureWorks.dbo.uspGetBillOfMaterials

Вам также может понравиться