Documentos de Académico
Documentos de Profesional
Documentos de Cultura
Bases de Datos
Bases de Datos
Printer
Databas
Server
e Server
Mail
Server
Servidor Cliente
o
Server
¿Qué es un motor de base de datos?
Modific Borr
ar ar ar
Actualiz
Cre DBM
DB
ar S
MS
Mapeo externo
conceptual
DDL
DML
Mapeo conceptual
interno
Base de
Dato Datos Datos
Nivel de
aplicación/diseño
Clase de
Clase de Entidades
Atributo Objeto y sus
Objetos
Asociacione
s
Clase de
Entidade Esquema de
Entidad
la base de
s datos
Nivel
diseño/construcción
Archivo
Campo Registro Archivo s
Nivel interno
Vist
a
Cliente Fecha: mm/dd/yyyy
ID DESCRIPCION PU CANTIDAD TOTAL
CANTIDAD EN LETRA SUBTOTA
L
IVA
TOTAL
¿Cuál es el problema?
Limitaciones
• No existe un procedimiento estándar para la creación de fichas
bibliográficas (en
la institución se usan tres métodos diferentes).
• No se cuenta con una lista actualizada de los libros existentes.
• En algunos casos se realizan préstamos a personal externo al
instituto.
Definir las pretensiones funcionales y de ejecución de la
2 base de datos.
Funcionales
De seguridad de la información:
• El sistema deberá contar con un proceso de identificación
mediante usuario y password.
• Cualquier usuario puede:
• Registrar fuentes para recomendar su compra.
•Consultar qué fuentes hay sobre un tema
•Consultar qué fuentes hay de un autor.
•Consultar qué fuentes hay de una editorial
• Solo los usuarios administradores pueden realizar:
•El préstamo o asignación de las fuentes (por diferentes
cuestiones, se denominó asignación al préstamo al personal
interno del instituto, y
•préstamo para el personal externo a la institución).
•Obtener reporte de las fuentes que han sido recomendadas
para su compra y la prioridad de adquisición de los mismos.
•Obtener reporte de las fuentes que han sido recomendadas
para su compra por prioridad, nombre, autor y editorial.
Todos las consultas y reportes deberán tener la opción de
presentarse en pantalla o por impresora.
Definir las pretensiones funcionales y de ejecución de la
2 base de datos.
Funcionales
El sistema reportará:
• A quien lo solicite, la lista de fuentes existentes en el área,
bajo cualquiera de los tres formatos utilizados, según lo requiera
el usuario.
Desempeño
• El sistema deberá soportar un número indeterminado de
fuentes.
• El sistema deberá soportar un número indeterminado de
préstamos.
• Aun y cuando no es de vital importancia el tiempo de
respuesta, se requiere que lo haga en un tiempo razonable,
máximo 1 minutos por pantalla y de 5 minutos por impresora.
3 Identificar los datos elementales.
ISBN del libro, Nombre del libro, nombre(s) del (de los) autor(es),
nombre de la revista, número de la revista, nombre del artículo,
nombre del video, director del video, nombre del usuario, edición,
editorial, año de edición, costo, fecha de compra, tema, proyecto,
prioridad (urgente, normal, baja u opcional), estado (comprado,
recomendado para compra, prestado o asignado), dirección del
usuario, teléfono del usuario, fecha de préstamo, días de préstamo,
nombre de la tesis, fecha de realización, carrera para la cual se
realizó, Año de edición, Edición, Volumen, Formato, Tiempo
duración, Director, Tema
Separar los datos elementales y agruparlos en clases de
4 entidades.
Diccionario de datos
Entidad Atributo Tipo Tamaño Obligatorio Rango Valor por Notas
Omisión
máximo mínimo
Libros ISBN String 20 SI Lllave primaria
Nombre String 80 SI
Edicion String 3 SI 1a
Año String 4 NO Actual 1900
Costo Numérico 5.2 NO
Editorial String 30 SI
Estado Caracter 1 SI R comprado,
recomendado para
compra, prestado o
asignado
Prioridad Caracter 1 SI N urgente, normal, baja
u opcional
6 Identificar la relación entre las clases de entidades.
!ADVERTENCIA!
Es necesario hacer hincapié en esta característica, ya que los humanos
generalmente pensamos en las asociaciones en un solo sentido.
1:1 No dependiente.
Los objetos pueden existir en ambas clases de entidades sin estar asociados con objetos de
la otra clase. Por ejemplo: una asociación entre gerentes:autos. Existen gerentes que no
cuentan con autos asignados para su uso, mientras que existen autos que no están
asignados a nadie (aun cuando sea por espacios cortos de tiempo). Se pueden registrar
objetos en ambas clases de entidades sin mayor problema, pero previo a borrarlos, habrá
que ver si se encuentran relacionados, si lo están habrá que desligarlos primero, antes de
proceder al borrado.
1:N
CadaDependencia
objeto de la claseTotal.
A deberá estar asociado con al menos un objeto de la clase B, y cada objeto de la
clase B deberá estar asociado con exactamente un objeto de la clase A. Por ejemplo:
departamentos:empleados. En cada departamento trabajan n personas (al menos una),pero cada
empleado debe trabajar en un solo departamento. Para mantener la integridad en una asociación de este
tipo, se requerirá, al registrar A, hacer el registro de N de B (al menos uno). Al registrar B, se deberá
verificar la existencia de A; si no existe, registrarlo. Al borrar A se deberán borrar los N de B que se asocien
con él. Al borrar B se necesitará contabilizar los objetos de B que tengan la misma asociación que éste con
A; si N > 1 se hará el borrado de B simplemente; si N = 1 se hará el borrado de B y el borrado de A, para
mantener la integridad.
1:N No dependiente.
Cada objeto de la clase A puede estar asociado con varios objetos de la clase B. Un objeto de la clase B
puede estar asociado con solo un objeto de la clase A. Por ejemplo: empleados: equipos de seguridad. Un
empleado puede tener asignado para su seguridad N equipos (lentes, casco, etc.), y habrá equipo sobrante
que no esté asignado a nadie;. Pero si el equipo está asignado, sólo lo podrá estar a un empleado. Al borrar
al empleado únicamente se tendrán que borrar las asignaciones del o los equipos a éste sin borrar el
equipo. Al borrar el equipo, sólo se realiza esta operación.
M:N Dependencia Total.
Cada objeto de la clase A deberá estar asociado con al menos un objeto de la clase B. Un
objeto de la clase B deberá estar asociado con al menos un objeto de la clase A. Por
ejemplo: autores:publicaciones. Cada autor puede tener más de una publicación (al menos
una), y una publicación puede tener más de un autor (al menos uno). Al borrar el autor se
deberán borrar las publicaciones en las cuales sea autor único, y al borrar una publicación
se deberá borrar el autor si era la única publicación que tenía.
Cada objeto de la clase A deberá estar asociado con al menos un objeto de la clase B. Un
objeto de la clase B puede estar asociado con j objetos de la clase A. Por ejemplo:
clases:alumnos. Cada clase deberá tener al menos cinco alumnos para que sea impartida.
Sin embargo, habrá alumnos que no tomen ninguna clase.
1:N No dependiente.
Los objetos pueden existir en ambas clases de entidades sin estar asociados con
objetos de la otra clase, pero en todo momento pueden asociarse con varios
objetos de la otra clase de entidades.
Dependencia Total.
Se lee:
a.A debe b.B y
a.A debe b.B
Dependencia
Se lee: Parcial.
a.A puede b.B y a.A debe b.B dependencia parcial de A
en B,
a.A debe b.B y a.A puede b.B dependencia parcial de B
en A.
No dependiente.
Se lee:
a.A puede b.B y a.A puede b.B
1:
N
1: 1:
N
1 1
1: 1:
N N
Una
Se descompone en dos 1:N,
asociació
n M:N requiriendo una tercera
clase de entidades para
enlazarlas
(
)
Cuando una relación se da entre dos clases de entidades, ésta se representa por
una línea. La relación ocasiona que la llave primaria de una clase de entidades
emigre hacia la otra con la que cual asocia.
El atributo heredado en la clase de entidades B, es llave primaria en la clase de
entidades A, se convierte en el atributo de enlace entre ambas. Este atributo es
denominado llave referencial.
La regla del dominio de la llave referencial. Si la dependencia de B en A es parcial
o total, el atributo deberá tener un valor que obligatoriamente este definido
dentro de los objetos en A, si no hay dependencia en la relación la llave
referencial puede tener valores nulos.
(
)
Relación 1:1, para cada objeto A existe un objeto B y viceversa. Se utiliza una
flecha en el centro de la línea.
Relación 1:N débil, para cada objeto A pueden existir N objeto de B y pero cada
objeto en B deberá relacionarse con solo un objeto de A. Se utiliza un rombo vacio
del lado N de la asociación, si N esta delimitado se especifica debajo o a un
costado del rombo.
Relación 1:N fuerte, para cada objeto A deberán existir N objetos de B y para
cada objeto en B existe uno objeto en A. Se utiliza un rombo relleno del lado N de
la asociación, si N esta delimitado se especifica debajo o a un costado del rombo.
7 Desarrollar el esquema de la base de datos.
ClaveF, TipoF no están en ninguna clase de entidades ¿cómo llegaron a Contenidos,
Referencias y Prestamos?
ClaveF = ISBN TipoF=L; ClaveF = IDArticulo TipoF=A; ClaveF = IDTesis TipoF=T; ClaveF =
IDVideo TipoF=V
Esto obliga a que los atributos ClaveF, ISBN, IDArticulo, IDTesis e IDVideo compartan el
mismo tipo de datos y la misma dimesión (por ejemplo, cadena de caracteres de una
longitud de 20)
Un poco de formalidad “Normalización”
Definición.
Existen N formas normales, pero se dice que un diseño es operable a partir de la tercera
forma normal.
Es por ello que deberemos revisar nuestro esquema para asegurar que al menos, se
encuentra en 3ª. Forma normal.
El proceso se realiza sobre los atributos que describen una clase de entidades. O utilizando
el nivel del programador, las columnas que describen una tabla.
Se analizan las dependencias de los atributos que describen la clase de entidades respecto
a su llave primaria. O utilizando el nivel del programador, las columnas que describen una
tabla en base a su identificador.
Un poco de formalidad “Normalización”
Esto ocasiona que el atributo que muestra múltiples valores, sea retirado de la tabla.
Normalmente formará otra tabla y se relacionará con la que estamos analizando.
Si cada atributo en la clase de entidades cumple con esta condición, se dice que la clase de
entidades, se encuentra en primera forma normal. Así repetimos los pasos para todas las
clases de entidades, hasta asegurar que el esquema se encuentra en 1ª. Forma normal.
Un poco de formalidad “Normalización”
Específicamente: una tabla 1NF está en 2NF si y solo si, dada cualquier llave primaria y
cualquier atributo que no sea un constituyente de la llave primaria, el atributo no llave
depende de toda la llave primaria en vez de solo una parte de ella.
En términos levemente más formales: una tabla 1NF está en 2NF si y solo si ninguno de
sus atributos no-principales son funcionalmente dependientes en una parte (subconjunto
propio) de la llave primaria. (Un atributo no-principal es uno que no pertenece a ninguna
llave primaria o alterna).
Observe que cuando una tabla 1NF no tiene ninguna llave primaria (llaves primarias
consistiendo de más de un atributo), la tabla está automáticamente en 2NF
Si cada atributo en la clase de entidades cumple con esta condición, se dice que la clase de
entidades, se encuentra en 2ª. forma normal. Así repetimos los pasos para todas las clases
de entidades, hasta asegurar que el esquema se encuentra en 2ª. Forma normal.
Un poco de formalidad “Normalización”
Esto ocasiona que el atributo que muestra dependencia transitiva, sea retirado de la tabla.
Normalmente formara otra tabla y se relacionará con la que estamos analizando.
Llave Atributos no
primaria primarios
(Torneo, → Ganad
año) or
(Torneo, → Fecha de nacimiento del
año) ganador
Ganad → Fecha de nacimiento del
or ganador
Un poco de formalidad “Normalización”
1ª. Forma normal. Nos dice que son inadecuados los atributos multivaluados. En este
apartado entran los arreglos (un conjunto de elementos contiguos del mismo tipo). Esta
regla de normalización, nos da en la practica versatilidad para no bloquear espacio de
almacenamiento de antemano y quedarnos con espacio desperdiciado o insuficiente.
# …. Telefono Teléfono Nextel Bipper Otro
Emplead Casa Celular Aributo
o
11789AAAAA1-23-45-67 XXXX
# Empleado …. Telefono Casa Teléfono Celular Nextel Bipper Otro Aributo
11789AAAAA 1-23-45-67 XXXX
11790BBBBB 1-23-45-67 YYYY
11791CCCCC 1-23-45-67 1-23-45-67 ZZZZZ
11792DDDDD 1-23-45-67 1-23-45-67 1-23-45-67 1-23-45-67 XXXX
11793EEEEE 1-23-45-67 1-23-45-67 YYYY
11794FFFFF 1-23-45-67 1-23-45-67 ZZZZZ
11795GGGGG 1-23-45-67 1-23-45-67 1-23-45-67 1-23-45-67 XXXX
¿Qué pasaría si alguien tiene dos teléfonos en casa? ¿o dos celulares? Y en el
peor de los casos tiene todos y cada uno de los tipos de teléfonos, pero algunos
de ellos cuenta con más de una línea.
Por ello, al extraer los atributos multivaluados de una tabla, colocarlos en otra y
relacionar la primera con la segunda, resolvemos este tipo de problemas.
Un poco de formalidad “Normalización”
Sin embargo esto no es gratis, subrayar la flexibilidad tendrá el costo de una tabla adicional,
un índice para la llave primaria, un índice para la llave relacional y la verificación de las
reglas de integridad correspondientes para la correcta operación.
Además de los recursos para obtener los teléfonos de un empleado o de los empleados,
requeriremos de operaciones y manipulación adicional, para su formateo y despliegue.
Características mucho más simples que si lo tenemos todo en una sola tabla.
Y en este caso, las ventajas son mayores que las desventajas, pero no siempre es así.
Uno de los casos que la practica nos indica tener mayores ventajas para mantener un
campo multivaluado
Cortes por periodo son:
de tiempo.
•Hora (un día siempre tiene 24 horas),
•Anual (un año siempre tiene 12 meses),
•Trimestrales (un trimestre siempre tiene tres meses y un año siempre tiene 4
trimestres).
Observe que no fue incluido el mes, ya que hay meses de 28 (febrero),29 (febrero de un año
bisiesto), 30 y 31 días de duración.
Identificar las características de recuperación de la
8 información.
Identificar las características de recuperación de la
8 información.
Proyección.
Selección.
Unión.
Unión. Operador relacional que une dos o más tablas mediante un
atributo en común (generalmente una llave primaria y una referencial).
La tabla resultante tiene la suma de las intensiones de las tablas
implicadas y los tuples coincidentes por el valor de unión.
El lenguaje SQL está compuesto por comandos, cláusulas, operadores y funciones. Estos elementos se
combinan en las instrucciones para crear, actualizar y manipular las bases de datos.
•los DDL que permiten crear y definir nuevas bases de datos, campos e índices.
•los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
Comandos DDL
Comando Descripción
Con la finalidad de ejemplificar el uso del DDL de SQL, implementaremos en siguiente esquema:
Structured Query Language (SQL) - DDL
USE Example_mybook;
INSERT INTO `Autores` VALUES (1,'C.J.','Date','Date');
USE Example_mybook;
USE Example_mybook;
INSERT INTO `Referencias` VALUES (1,1);
INSERT INTO `Referencias` VALUES (4,1);
INSERT INTO `Referencias` VALUES (8,19);
INSERT INTO `Referencias` VALUES (10,9);
INSERT INTO `Referencias` VALUES (2,41);
INSERT INTO `Referencias` VALUES (16,45);
INSERT INTO `Referencias` VALUES (16,33);
INSERT INTO `Referencias` VALUES (7,18);
USE Example_mybook;
INSERT INTO `Referencias` VALUES (1,1);
INSERT INTO `Referencias` VALUES (4,1);
INSERT INTO `Referencias` VALUES (8,19);
INSERT INTO `Referencias` VALUES (10,9);
INSERT INTO `Referencias` VALUES (2,41);
INSERT INTO `Referencias` VALUES (16,45);
INSERT INTO `Referencias` VALUES (16,33);
INSERT INTO `Referencias` VALUES (7,18);
Insertar
Antes Actualizar
Borrar
Trigger
Insertar
Después Actualizar
Borrar
DELIMITER $$
CREATE TRIGGER `example_mybook`.`Example_trigger` BEFORE
INSERT on `example_mybook`.`autores`
FOR EACH ROW BEGIN
SET NEW.Alias = 'patito';
END$$
DELIMITER ;
Structured Query Language (SQL) - DML
Triggers o disparadores
DELIMITER $$
CREATE TRIGGER `example_mybook`.`Example_trigger` BEFORE
INSERT on `example_mybook`.`autores`
FOR EACH ROW BEGIN
SET NEW.Alias = 'patito';
END$$
DELIMITER ;
Structured Query Language (SQL) - DDL
Las vistas tienen la misma estructura que una tabla: filas y columnas. La
única diferencia es que sólo se almacena de ellas la definición, no los datos.
Los datos que se recuperan mediante una consulta a una vista se
presentarán igual que los de una tabla. De hecho, si no se sabe que se está
trabajando con una vista, nada hace suponer que es así.
Vista:
Transacciones:
Una transacción es una interacción compuesta por varios procesos que se han de aplicar
uno después del otro. La transacción debe ser equivalente a una interacción atómica. Es
decir, que se realice de una sola vez y que la estructura a medio manipular no sea jamás
alcanzable por el resto del sistema hasta que haya finalizado todos sus procesos.
START TRANSACTION;
DELETE FROM Usuarios WHERE Id = 25;
ROLLBACK;
Transacción:
START TRANSACTION;
SELECT * FROM Usuarios;
ROLLBACK;
Integridad y consistencia de la información
Una transacción es una interacción compuesta por varias operaciones básicas que se han
de aplicar una después de otra. La transacción debe ser equivalente a una interacción
atómica. Es decir, que se realice de una sola vez y que la estructura a medio manipular no
sea jamás alcanzable por el resto del sistema hasta que haya finalizado todas sus
operaciones básicas.
Las operaciones básicas que conforman una transacción están definidas por la lógica del
esquema de la base de datos.
CONSULTA CONSULTA
CONSULTA
CAMBIO
CAMBIO
REGISTRO
REGISTRO
Concepto y propiedades de las transacciones.
Transacción
Los cambios de estado provocados por una Incluso cuando varias transacciones se ejecuten de
transacción son atómicos: o bien ocurren todos o forma concurrente, para cada transacción T debe
bien no ocurre ninguno. Estos cambios incluyen parecer que el resto de transacciones se han
tanto modificaciones de la base de datos, como ejecutado antes o después de T, pero no antes y
envío de mensajes. después.
Estado de una transacción.
Marco de la transacción.