Manejo De Sentencias De Definicion

14

Transcript of Manejo De Sentencias De Definicion

Page 1: Manejo De Sentencias De Definicion
Page 2: Manejo De Sentencias De Definicion

GRUPO #3

INTEGRANTES

I. LETICIA TORRES

II. KARINA SAAVEDRA

III. SERGIO PEREZ

CURSO

S4L

DOCENTE

ING.ROSSANA LUCIN

PERIODO-LECTIVO

2016-2017

Page 3: Manejo De Sentencias De Definicion

I. MANEJO DE SENTENCIAS DE DEFINICION

Para poder trabajar con base de datos relacionales, lo primero que tenemos que hacer es definirla. Veremos las órdenes del estándar SQL server 2008 para crear y borrar una base de datos relacional y para insertar, borra y modificar las diferentes tablas que la componen.

En este apartado también veremos cómo se definen los dominios, las aserciones (restricciones) y las vistas.

La sencillez y la homogeneidad del SQL server 2008 hacen que:

Para crear base de datos, tablas, dominios, aserciones y vistas se utilice la sentencia CREATE.

Sintaxis:

Créate table nombre_table (

Campo1 tipo dato [NULL/NOT NULL] check (expresión_logica )[default expresión_contstante];

Campo2 tipo dato [NULL/NOT NULL] check (expresión_logica )[default expresión_contstante];

Campo –N

Primary key (campo llave);

Foreign Key (campo llave) referencie tabla2 (campo_llave-table2)

Para modificar las tablas y dominios se utiliza la sentencia ALTER

Añadir una definición de la columna de una tabla puede crearse valores nulos o valores

Sintaxis:

Alter table nombre_tabla

ADD nombre_column tipo _dato NULL

[contraint nombre_nuevaRestirccion CHECK/DEFAULT]

Ejemplo:

Page 4: Manejo De Sentencias De Definicion

Alter table T1

Add a6 [varchar(50) NULL]

Eliminar una columna de la tabla. Pero antes de su eliminación deben ser eliminados por ALTER TABLE todas las restricciones que estén definidas sobre la columna.

Ejemplo:

Alter table T1

Drop column a4

Eliminación de la llave promaria, foreana o restrincciones de ligaduras de integridad (CHECK), existente para una tabla. Esto es elimina cualquier ligadura de integridad tratada en el tema. Para verficar nuevamente SP_help nombre_table en el resultado ya no sale constraint_type nombre de la llave primaria

Sintaxis:

Alter table T1

Drop Constraint Pk_T1_dbo.numero_asigna

Para borrar base de datos, tablas, dominios, aserciones y vistas se utilice la sentencia DROP

Sintaxis:

Select * from nombre_table

TABLAS

Tipos de modelados de datos.

Las tablas se compone de dos estructuras:

Campo.- corresponde al nombre de la columna. Debe ser único y además de tener un tipo de dato asociado

Registro.- corresponde a cada fila que compone la tabla

Page 5: Manejo De Sentencias De Definicion

VISTAS

El tipo más simples de vista a crear es uno que hace referencia solo a una tabla y recupera los datos de columnas dentro de una tabla sin modificar esos datos. Entre más complicada es la vista, más complicada es la expresión de consulta en la que se basa la vista.

Sintaxis:

Créate view<nombre_vista>[(nombre_column)] as <expresión_columna>[with check option]

Page 6: Manejo De Sentencias De Definicion

----***Modificaremos la definición de la última vista que examinamos----***

Sintaxis:

Page 7: Manejo De Sentencias De Definicion

Créate view con_emp As select ID_empleado, AÑO_1999, AÑO_2000

From comisiones_empleado

Where AÑO_1999>100,

----***Eliminación de vista de la base de datos.-------***

Sintaxis:

Drop view <nombre_table>

Drop view con_emp;

INDICES

Un índice es una estructura de disco asociada con una tabla o una vista que acelera la recuperación de filas de la tabla o de la vista. Un índice contiene claves generadas a partir de una o varias columnas de la tabla o la vista. Dichas claves están almacenadas en una estructura (árbol b) que permite que SQL Server busque de forma rápida y eficiente la fila o filas asociadas a los valores de cada clave.

Una tabla o una vista puede contener los siguientes tipos de índices:

Agrupado

Los índices agrupados ordenan y almacenan las filas de los datos de la tabla o vista de acuerdo con los valores de la clave del índice. Son columnas incluidas en la definición del índice. Sólo puede haber un índice clúster por cada tabla, porque las filas de datos sólo pueden estar ordenadas de una forma.

La única ocasión en la que las filas de datos de una tabla están ordenadas es cuando la tabla contiene un índice clúster. Cuando una tabla tiene un índice clúster, la tabla se denomina tabla agrupada. Si una tabla no tiene un índice clúster, sus filas de datos están almacenadas en una estructura sin ordenar denominada montón.

No agrupado

Los índices no agrupados tienen una estructura separada de las filas de datos. Un índice no agrupado contiene los valores de clave de índice no agrupado y cada entrada de valor de clave tiene un puntero a la fila de datos que contiene el valor clave.

Page 8: Manejo De Sentencias De Definicion

El puntero de una fila de índice no agrupado hacia una fila de datos se denomina localizador de fila. La estructura del localizador de filas depende de si las páginas de datos están almacenadas en un montón o en una tabla agrupada. Si están en un montón, el localizador de filas es un puntero hacia la fila. Si están en una tabla agrupada, el localizador de fila es la clave de índice agrupada.

Puede agregar columnas sin clave al nivel hoja de un índice no agrupado con el fin de eludir los límites existentes para las claves de índice, 900 bytes y columnas de 16 claves, así como para ejecutar consultas indizadas y totalmente cubiertas.

DISPARADORES

Un disparador llamado Trigger es una clase especial de procedimiento almacenado, el cual se ejecuta automáticamente cuando se produce un evento en el servidor de base de datos.

Uso de los disparadores

Evitar la ejecución de transacción inválida.

Garantizar el cumplimiento de restricciones de integridad y de reglas de negocio.

Generar automáticamente valores de columnas derivadas.

Se puede anidar

Se puede deshabilitar

No admite parámetros

Ventajas

Seguridad de los datos mejorados-Chequeos de seguridad basada en valores

Integridad de los datos mejorados-fuerzan restricciones dinámicas de integridad de datos e integridad referencial

Ofrecen un mayor control sobre la BD

Desventajas

Solo se pueden aplicar una tabla específica, es decir un disparador no se puede usar más de una tabla.

Efectos y características

Page 9: Manejo De Sentencias De Definicion

No aceptan parámetros o argumentos (pero podrían almacenar los datos afectados en tablas temporales)

No pueden ejecutar las operaciones COMMIT o ROLLBACK porque estas son parte de la sentencia SQL del disparador (únicamente a través de transacciones autónomas)

Pueden causar errores de mutaciones en las tablas, si se han escrito de manera deficiente.

Tipos

Existen dos tipos de disparadores que se clasifican según la cantidad de ejecuciones a realizar:

Row Triggers (o Disparadores de fila): son aquellas que se ejecutaran cada vez que se llama al disparador desde la tabla asociada al trigger

Statement Triggers (o Disparadores de secuencia): son aquellos que sin importar la cantidad de veces que se cumpla con la condición, su ejecución es única.

Pueden ser de sesión y almacenados; pero no son recomendables.

Ejemplo

Un sencillo ejemplo (para SQL Server) sería crear un Trigger para insertar un pedido de algún producto cuando la cantidad de éste, en nuestro almacén, sea inferior a un valor dado.

CREATE TRIGGER TR_ARTICULO ON ARTICULOS AFTER UPDATE AS BEGIN INSERT INTO HCO_ARTICULO (IDARTICULO, STOCK, FECHA) SELECT ID_ARTICULO, STOCK, GETDATE() FROM INSERTED END

INSERT INTO ARTICULOS VALUES (1, 'MEMORIA', 12, '12/03/2014')

SELECT * FROM ARTICULOS

UPDATE ARTICULOS SET STOCK = STOCK - 20 WHERE ID_ARTICULO = 1

SELECT * FROM HCO_ARTICULO

CREATE TRIGGER ver_salario BEFORE UPDATE ON empleados REFERENCING NEW ROW AS n, OLD ROW AS o FOR EACH ROW IF n.salario <> o.salario THEN END IF;

Page 10: Manejo De Sentencias De Definicion

PROCEDIMIENTOS ALMACENADOS

Un procedimiento almacenado es un conjunto de sentencia de SQL y de control de flujo

Procedimiento almacenados definidos por el usuario son procedimientos definidos por el usuario que se debe llamar explícitamente.

Los procedimientos almacenados son un conjunto pre compilado de instrucciones transact-SQL almacenadas bajo de un solo nombre y procesada como una unidad.

Características

Una vez creado el procedimiento almacenado, se puede invocar directamente desde una aplicación o sustituir el nombre de una tabla o vista el nombre del procedimiento le da una clausulas llamada select.

Ventajas

Simplifica la ejecución de tareas repetitivas

Reduce el tráfico a través de la red

Permite el desarrollo modular de aplicaciones

Ayuda a proveer la seguridad

Desventajas

Esclavitud:- los procedimientos almacenados nos esclavizan al motor de la base de datos

Realiza algoritmos complejos ejemplo: algoritmo geográfico de mapeo realiza cálculos de ingeniería.