Diapositivas

Download Report

Transcript Diapositivas

ADMINISTRACIÓN DE
BASES DE DATOS
Ingeniería en Sistemas Computacionales
Información general
Francisco Antonio Castillo Velásquez
[email protected]
[email protected]
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
I.
Fundamentos de administración de bd’s
II.
Administración de bd’s
III.
Administración de usuarios
IV.
Seguridad e integridad
V.
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
relación
llave primaria
registros
campos (atributos)
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
Conceptos
• Aridad o grado
• Cardinalidad
• Llave primaria y secundaria
• Dominio
• Procedimiento almacenado
• Trigger (desencadenador)
Bno
Street
Area
City
Postcode
Tel_No
Fax_No
B5
22 Deer Rd
Sidcup
London
SW1 4EH
0171-886-1212
0171-886-1214
B7
16 Argyll St
Dyce
Aberdeen
AB2 3SU
01224-67125
01224-67111
B3
163 Main St
Partick
Glasgow
G11 9QX
0141-339-2178
0141-339-4439
B4
32 Manse Rd Leigh
Bristol
BS99 1NZ
0117-916-1170
0117-776-1114
B2
56 Clover Dr
London
NW10 6EU
0181-963-1030
0181-453-7992
grado (aridad)
cardinalidad
relación
Conceptos
Tipos de datos (T-SQL)
Tipos de datos (T-SQL)
Tipos de datos (T-SQL)
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.
Vistas
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 (stored
procedure -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
Sintaxis (en SQL Server)
Ejemplo (parámetro de entrada)
CREATE PROCEDURE MiProc @Ciudad nvarchar(30) AS
SELECT * FROM MiTabla
WHERE Ciudad = @Ciudad
EXEC MiProc @Ciudad=‘Querétaro’
Ejemplo (parámetro de salida)
SPs del sistema
SPs del sistema
SPs del sistema
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 definidas por el usuario
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
(@Longitud decimal(4,1),
@Anchura decimal(4,1),
@Altura decimal(4,1) )
RETURNS decimal(12,3) -- cms cúbicos
AS
BEGIN
RETURN ( @Longitud * @Anchura * @Altura )
END
Funciones (ejercicio)
CREATE TABLE Cubos (
numero int PRIMARY KEY,
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
Funciones definidas por el usuario
CREATE FUNCTION MuestraInfoCubos(@num int)
RETURNS TABLE
RETURN
select numero, 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 –SQL Server)
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;
ELSEIF NEW.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
III Administración de usuarios
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
Roles de servidor para los IS’s
Nombre del rol
Permisos
bulkadmin
Instrucción BULK INSERT
dbcreator
Crear, modificar, quitar y restaurar cualquier base de datos
diskadmin
Administrar archivos de disco
processadmin
Finalizar procesos mediante la ejecución de una instancia del motor
de bd
public
Todos los usuarios, grupos y roles de SQLS pertenecen al rol public
securityadmin
Administrar los inicios de sesión y sus propiedades (permisos de
servidor y de bds: GRANT, DENY, REVOKE); reestablecen contraseñas
para IS’s
serveradmin
Cambiar opciones de configuración en el servidor y cerrarlo
setupadmin
Agregar/quitar servidores vinculados; ejecutar algunos SPs del
sistema
sysadmin
Cualquier actividad en el motor de bd
Roles de bases de datos
Nombre del rol
Permisos
db_owner
Todas las actividades de configuración y mantenimiento en la bd (y
quitarla)
db_securityadmin
Modificar la pertenencia a roles y administrar permisos.
db_accessadmin
Agregar o quitar el acceso a la bd para IS’s de Windows, grupo de
Windows e IS’s de SQL Server
db_backupoperator
Copias de seguridad de la bd
db_ddladmin
Cualquier comando DDL en una bd
db_datawriter
Agregar, eliminar o cambiar datos en todas las tablas de usuario
db_datareader
Leer todos lo datos de todas las tablas de usuario
db_denydatawriter
No pueden agregar, modificar ni eliminar datos de tablas de usuario
db_denydatareader No pueden leer datos de las tablas de usuario