510 likes | 705 Views
Administración de bases de datos. Ingeniería en Sistemas Computacionales. Información general. Francisco Antonio Castillo Velásquez f rancisco.castillo@upq.edu.mx francisco_velasquez@yahoo.com.mx Horario de clase grupo S502: Lunes y miércoles 19:00 – 20:40 Asesoría viernes 17:20 – 18:10.
E N D
Administración de bases de datos Ingeniería en Sistemas Computacionales
Información general Francisco Antonio Castillo Velásquez francisco.castillo@upq.edu.mx francisco_velasquez@yahoo.com.mx Horario de clase grupo S502: Lunes y miércoles 19:00 – 20:40 Asesoría viernes 17:20 – 18:10
Objetivo El alumno será capaz de comprender los procesos de almacenamiento, acceso a la información y administración de un sistema administrador de bases de datos (SABD, SMBD, SGBD, DBMS)
Temario Fundamentos de administración de bd’s Administración de bd’s Administración de usuarios Seguridad e integridad Respaldo y recuperación
Bibliografía Sistemas de Gestión de Bases de Datos Ramakrishman, McGraw-Hill, 3ª Ed. 2007 Fundamentos de Bases de Datos Silberschatz, A. McGraw-Hill, 5ª Ed. 2006 SQL Server 2008, Paso a Paso Hotek, M. Anaya, 2009
Evaluaciones • 1er parcial: 30 de enero • 2º parcial: 1ª semana de marzo • 3er parcial: 2ª semana de abril • Final: 4ª semana de abril
Evaluaciones • Examen 50% • Prácticas 30% • Tareas 20% • Participaciones son un plus
Ligas de interés www.microsoft.com/sqlserverexpress www.mysql.com/downloads
Ligas de interés www.netbeans.org/downloads Administración de bases de datos (MySQL)
Conceptos Base de datos Es una colección de datos relacionados con un tema u objetivo concreto Tabla Es una estructura de datos bidimensional donde es posible almacenar datos relacionados
Conceptos campos (atributos) registros relación llave primaria
Conceptos • Sistema administrador de bases de datos (SABD, SGBD, DBMS) • Es una colección de programas que permiten a los usuarios crear y mantener bases de datos • Es un software de propósito general que facilita el proceso de definir, construir, manipular y compartir bases de datos entre varios usuarios y aplicaciones
Conceptos • Aridad o grado • Cardinalidad • Llave primaria y secundaria • Dominio • Procedimiento almacenado • Trigger (desencadenador)
Conceptos relación cardinalidad grado (aridad)
Vistas Una vista es una tabla virtual cuyo contenido está definido por una consulta. Al igual que una tabla real, una vista consta de un conjunto de columnas y filas de datos que proceden de tablas a las que se hace referencia en la consulta y se producen de forma dinámica cuando se hace referencia a la vista.
Utilización de vistas • Para centrarse en datos específicos • Para simplificar la manipulación de datos
Utilización de vistas • Para proporcionar compatibilidad con versiones anteriores
Procedimientos almacenados Un procedimiento almacenado (storedprocedure -SP) es un conjunto de comandos SQL que pueden almacenarse en un servidor.
Procedimientos almacenados • Similitud con funciones en programación: • Parámetros de entrada / parámetros de salida • Pueden llamar a otros procedimientos • Devuelven un valor de estado a un programa que realiza una llamada
Ventajas de los SPs • Tráfico de red reducido entre el cliente y el servidor • Mayor seguridad • Reutilización de código
Ventajas de los SPs • Mantenimiento más sencillo • Rendimiento mejorado
Ejemplo (parámetro de entrada) CREATE PROCEDURE MiProc@Ciudad nvarchar(30) AS SELECT * FROM MiTabla WHERE Ciudad = @Ciudad EXECMiProc @Ciudad=‘Querétaro’
Funciones (SQL Server) • Integradas • Agregado: • AVG, COUNT, MAX, MIN, SUM, VAR, … • Escalares: • Matemáticas: ABS, COS, EXP, POWER, … • De Cadena: CHAR, CONCAT, LEN, REPLACE, … • Entre otras • Definidas por el usuario (UDF)
Funciones (ejemplo) CREATE FUNCTION ElevarAlCubo(@base INT) RETURNS__________ AS BEGIN RETURN__________________ END
Funciones (ejercicio) Crear una función que dado un entero que represente un día de la semana, regrese el nombre literal del día
Funciones (ejercicio) CREATE FUNCTION CalcularVolumenCubo -- dimensiones de entrada en cms (@Longituddecimal(4,1), @Anchuradecimal(4,1), @Alturadecimal(4,1) ) RETURNS decimal(12,3) -- cmscúbicos AS BEGIN RETURN ( @Longitud* @Anchura* @Altura ) END
Funciones (ejercicio) CREATETABLECubos ( numero intPRIMARYKEY, color nchar(20), altura decimal(4,1), longitud decimal(4,1), anchura decimal(4,1), volumen AS ( dbo.CalcularVolumenCubo(altura, longitud, anchura) ) )
Funciones definidas por el usuario CREATE FUNCTION MuestraInfoCubos(@numint) RETURNS TABLE RETURN selectnumero, volumen from Cubos where numero < @num
Triggers (desencadenadores, disparadores) • Es un objeto de base de datos que está asociado a una tabla y que se activa cuando ocurre un evento particular para dicha tabla. • Verificaciones de valores a insertarse en la tabla • Llevar a cabo cálculos sobre los valores implicados en una actualización • Se activa cuando se ejecuta un INSERT, DELETE o UPDATE
Triggers • Los triggers se activan solo por sentencias SQL • Un trigger puede llamar a un SP • Un trigger no puede ser asociada a una tabla temporal o a una vista • No puede haber dos triggers para una misma tabla con el mismo evento y acción en el
Triggers (sintaxis –MySQL) BEFORE, AFTER INSERT, UPDATE, DELETE INSERT = INSERT, LOAD DATA, REPLACE UPDATE = UPDATE DELETE = DELETE, REPLACE
Triggers CREATE TRIGGER upd_check BEFORE UPDATE ON account FOR EACH ROW BEGIN IF NEW.amount < 0 THEN SET NEW.amount = 0; ELSEIFNEW.amount > 100 THEN SET NEW.amount = 100; END IF; END
Triggers • Solo puede ser aplicado a una tabla • Crear/alterar/borrar una bd no está permitido • Asociados a tablas permanentes (no temporales ni vistas) • En MySQL no pueden contener la instrucción CALL
Administración de usuarios • Inicio de sesión (IS): • Un IS es una entidad de seguridad o una entidad que puede ser autenticada por un sistema seguro • Los usuarios necesitan iniciar sesión para conectarse a SQL Server • Se pueden conceder permisos a los IS’s • El ámbito de un IS es todo el motor de bd • Los permisos dentro de la bd se conceden y deniegan al usuario de la bd, no al inicio de sesión
Administración de usuarios • Usuario de base de datos (UBD): • Un UBD es una entidad de seguridad de la bd • El ámbito de un UBD es la bd • El UBD es la identidad del inicio de sesión cuando está conectado a una bd • El UBD puede utilizar el mismo nombre que el inicio de sesión, pero no es necesario • Los permisos dentro de la bd se conceden y deniegan al UBD, no al IS