Upload
sergio-perez
View
208
Download
5
Embed Size (px)
Citation preview
GRUPO #3
INTEGRANTES
I. LETICIA TORRES
II. KARINA SAAVEDRA
III. SERGIO PEREZ
CURSO
S4L
DOCENTE
ING.ROSSANA LUCIN
PERIODO-LECTIVO
2016-2017
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:
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
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]
----***Modificaremos la definición de la última vista que examinamos----***
Sintaxis:
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.
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
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;
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.