BASE DE DATOS I

Anuncio
BASE DE DATOS I
OBJETIVO GENERAL DEL CURSO.
El alumno será capaz de comparar los diferentes modelos de bases de datos en
función de los conocimientos adquiridos y además podrá diseñar una base de datos.
PROGRAMA GENERAL:
1
INTRODUCIR LOS CONCEPTOS DE BASE DE DATOS.
1.1 Definición de base de datos
1.2 Objetivos de los sistemas de base de datos
1.3 Arquitectura de los sistemas de base de datos
1.4 Independencia de los datos
1.5 Responsabilidades del administrador de una base de datos
2. CLASIFICACIÓN DE LOS MODELOS DE DATOS
3. MODELO, ENTIDAD, RELACION
3.1 Introducción.
3.2 Entidades y conjuntos de entidades.
3.3 Relación y conjunto de relaciones.
3.4 Diagrama entidad relación.
3.5 Reducción de diagramas de entidad relación.
4. MODELO RELACIONA.
4.1 Definición
4.2 Estructuras de datos relacionales.
4.3 Llaves primarias y foráneas.
4.4 Reglas de integridad.
4.5 Lenguaje de base de datos.
4.6 Algebra relacional.
4.7 Lenguaje estructurado de consultas
5. NORMALIZACIÓN
5.1 Introducción.
5.2 Datos no normalizados.
5.3 Primera y segunda forma normal.
5.4 Tercera forma normal y forma normal de Boyce-Codd.
5.5 Modelo ELKA.
6. MODELO DE DATOS JERARQUICO
6.1 Conceptos básicos.
6.2 Diagramas de estructura de árbol.
6.3 Recuperación de la información.
6.4 Actualización.
1
7. MODELO DE DATOS DE RED.
7.1 Conceptos básicos.
7.2 Modelo CODASYL DBTG.
7.3 Operaciones y procesamiento de conjuntos DBTG.
BIBLIOGRÁFIA
-
Introducción a los sistemas de base de datos.
C.J. Date
Addison – Wesley
Ed. Iberoamericana. Edición. 3
2
BASE DE DATOS I
1. Introducción a los conceptos de base de datos.
Base de datos.
Definición:
-
conjunto de datos.
relacionados entre sí.
que se puedan almacenar.
Sin redundancia ( que no se repitan ).
Puedan ser compartidos.
Es un conjunto de datos relacionados entre sí, que pueden ser almacenados sin
redundancia y además puedan ser compartidos.
Definición de un sistema de base de datos
Sistema constituido por:
- HW { equipo físico de computo}
- SW { sistema operativo, base de datos management system, aplicaciones }.
- Base de Datos { definido en almacenamientos físicos }.
- Usuarios { programadores, administradores de la base de datos, finales }.
Es un sistema computarizado cuyo objetivo es llevar a cabo un mantenimiento de
archivos.
Definición de un sistema administrador de una base de datos
( Data Base Management System ).
El es sw que se encarga de crear un ambiente en el cual se pueda almacenar y
recuperar datos en forma sencilla (optimizar el uso de B.D).
OBJETIVOS DE LOS SISTEMAS DE BASE DE DATOS.
1. Se podrá usar los datos definidos en la base de datos de múltiples maneras. Un Sist.
De B. D. Va poder atender diversas necesidades de un conjunto de usuarios.
2. Flexibilidad de acceso a los dato. Diferentes maneras de poder accesar los datos
(diferentes rutas de acceso ).
3. Facilidades en el uso para los usuarios. El sistema ofrece facilidad para accesar los
datos del sist.
4. Claridad cada usuario sabe que datos a cuales va a tener acceso (va a manejar) por
que el sistema (admón. de Base de Datos). Les dice que esquemas de datos van a
requerir.
5. Desempeño del sistema. Atención rápida y eficiente a los pedidos del usuario.
6. Rápida atención a imprevistos. El sistema tiene un lenguaje de soporte que permite
solucionar imprevistos.
7. Disponibilidad constante de los datos para el usuario.
3
8. Protección a la inversión intelectual. Los programadores hacen una inversión
intelectual. Si se desarrolla un programa de aplicación este no debera cambiar si la
B.D. cambia.
9. Facilidades de cambio. La B.D. puede crecer, disminuir, cambiar sin que los
programas de aplicación se vean afectados.
10. Menor proliferación de dato. Que no haya redundancia en los datos. Implica que en
diferentes aplicaciones y en diferentes niveles se deba eliminar la redundancia de los
datos.
11. Coherencia en los datos. Que haya una relación importante definida en los datos
pero sin repetición de los mismos.
12. Reserva. El admón. De la base de datos va a tener una reserva de datos ( sist. De
seguridad) para evitar el acceso a todos los usuarios a datos que se consideran
confidenciales.
13. Protección y seguridad para la base de datos. El sistema debe tener protección
contra perdidas para la base de datos.
14. Disminución de costos. Estos es por la seguridad que proporciona las bases de datos.
1.2 Arquitectura de un sistema de B. D.
Lenguajes anfitriones. Para comunicación entre usuarios y sistema. Lenguajes que
pueden soportar la B.D. ej. Pascal, Cobol, etc. (para tener acceso a datos ).
Lenguaje de definición de datos (DDL) definición de los objetos
Definición de los objetos y las estructuras de los mismos
El sublenguaje
Del sistema de
La B.D. (DSL)
Lenguaje de manipulación de datos (DML) permite manejar los
datos a traves de una serie de consultas. Acceso Datos en forma
rápida. Se puede usar este lenguaje o por lenguajes anfitriones.
LA1
DSL
LA2
DSL
VISTA EXTERNA A
NIVEL EXTERNO
ESQUEMA EXTERNO
A
4
Definiciones de los conceptos básicos de la arquitectura anterior:
Lenguaje anfitrión .
Lenguaje del usuario ( COBOL, PL1, lenguaje de consulta, etc.).
Que incluye un sub-lenguaje de datos (D.S.L).
El D.S.L. es una combinación de dos lenguajes:
- Lenguaje de definición de datos (D.D.L) permite la definición o descripción de los
objetos de la base de datos
- Lenguaje de manipulación de datos (D.M.L.) que apoya el manejo o procesamiento
de esos objetos. La manipulación se lleva acabo mediante proposiciones de llamado
suministradas como parte del sistema administrador de la B.D. (D.B.M.S.)
Vista externa.
Contenido de la base de datos tal como la ve un usuario especifico. Para ese
usuario la vista ext. Es la B.D.
Esquema externo.
Definición de la vista externa a través de registros lógicos externos. El esquema
ext. Escribe usando la parte del lenguaje de definición de datos ( D.D.L) del D.S.L., la
definición de las proposiciones ejecutables (los llamados) que transfieren información a
la base de datos y desde esta se hace usando la parte del D.M.L.
Vista conceptual.
Representación del contenido total de información de la B.D., en forma
relativamente abstracta en comparación con la forma en la cual los datos se almacenan
físicamente. Se compone de ocurrencias múltiples de registros conceptuales, un registro
conceptual no siempre es idéntico a un registro externo ni aun registro almacenado.
Esquema conceptual.
Definición de la vista conceptual, por medio de los distintos tipos de registros
conceptuales, el esquema conceptual, se escribe utilizando el D.D.L. conceptual.
Vista externa.
Representación del nivel muy bajo de la D.B. en su totalidad, se compone
múltiples ocurrencias de tipos de registros internos (registros almacenados). La vista
interna se mantiene a un paso del nivel físico, ya que no atañe o registros físicos o
bloques ni a ninguna restricción especifica de dispositivos tales como capacidad de
registros o pistas.
Esquema interno.
Descripción de la vista interna, por medio de los diversos tipos de registros
almacenados, especificación de índices, representación de los campos almacenados,
definición de la secuencia física de los registros almacenado, etc. El esquema interno se
escribe con el D.D.L. interno.
5
Correspondencia externa conceptual.
Correspondencia entre una vista externa especifica y la vista conceptual.
Especifica de que manera los registros externos y los conceptuales se corresponden.
Correspondencia conceptual interna.
Define la correspondencia entre la vista conceptual y la vista interna. Especifica
de que manera los registros conceptuales y los campos se corresponden con sus contra
partes almacenadas. Si se cambia la estructura de la base de datos almacenada, la
correspondencia conceptual interna debe cambiarse en reciprocidad para que el esquema
conceptual no varíe.
D.B.M.S. (sistema de admón. De la base de datos).
Software que maneja todos los accesos a la base de datos.
1.3
-
INDEPENDENCIA DE LOS DATOS
Independencia física. El sistema debe tener la capacidad de si varia la B.D. no será
necesario cambiar los programas de aplicación.
Independencia lógica. Si el esquema conceptual cambia no deberá cambiar los
programas de aplicación.
Definición de independencia de los datos:
Es la capacidad que debe tener el sistema de si se varían el esquema conceptual
de la base de datos no será necesario cambiar los programas de aplicación.
1.4 RESPONSABILIDADES DEL ADMON DE LA B.D.
1. Definir el contenido de la B.D.
El administrador deberá definir las entidades y la información que considere
relevante de cada uno de ellas que se deberá almacenar en una base de datos.
Definición del esquema conceptual. (¿ que se va a guardar?).
2. Definición de las estructuras de almacenamiento.
Y las estrategias de acceso a la B.D.
(¿ como lo va a guardar ?).
Definición del esquema interno. Definición de la correspondencia entre el esquema
interno y el esquema conceptual.
3. Vinculación con los usuarios.
El administrador deberá vincularse con los diferentes usuarios para las necesidades
de los mismos y poder establecer el esquema externo. Además de la
correspondencia entre el esquema conceptual y el esquema externo.
4. controles de validación y de autorización.
Como extensión del esquema conceptual administrado deberá definir los procesos
de validación y los controles de autorización.
5. Estrategias de respaldo y recuperación.
El administrador debe diseñar las estrategias de respaldo y de recuperación de datos,
ante imprevistos, para evitar daños a la base de datos.
6. Controles de desempeño y respuestas a los cambios de requerimientos.
El administrador deberá definir sistema de control desempeño, además de estar
continuamente atendiendo a los posibles cambios de requerimientos.
6
II CLASIFICACIÓN DE LOS MODELOS DE DATOS.
MODELOS DE DATOS.
Son herramientas conceptuales para describir los datos su semántica (significado
de los datos), sus relaciones y sus limitaciones.
Lógicos: se utilizan en la descripción
De los datos en los niveles externo
y conceptual.
( son muy usados.)
Modelos
De
Datos
Basados
en objetos
Basados
en registros.
Físicos: descripción de los datos en el nivel interno.
no es necesario describir otra documentación a
Parte de la programación.
No se utilizan generalmente, porque en la realización
Del esquema interno la documentación debe ser
Suficiente para describir el desarrollo y el modelo de
Datos.
Modelos lógicos basados en objetos. La ventaja sobre los basados en registros en
esta flexibilidad para describir claramente las limitantes de los datos.
MODELO ENTIDAD-RELACIÓN
-
Modelos lógicos basados en registros.
- Modelo relacional
- Modelo de red
- Modelo jerárquico
Diferencias generales entre los modelos basados en registros:
Registro.
Cuenta habiente
Cuenta
Nombre
Dirección
No. Ch
No. Cta.
Saldo
Modelo entidad-relación
Es un modelo natural ya que se basa en la definición de objetos existentes a los
que les llaman entidades y las asociaciones entre estas entidades los define a través de
relaciones
7
RELACIÖN
Objeto
Existente
Cliente objeto
existente
Modelo Relacional
Describe los datos y las relaciones de los mismos a través de tablas
CLIENTE
Nom
#
PRODUCTOS
Edo
Nom.
#
$
Tabla que
Relaciona
Las
2 tablas
Modelo de redes
En este modelo los datos se escriben como registros y la conexión entre ellos se
define con el uso de apuntadores. La relación entre los registros se encuentra establecido
a través de conjuntos.
Modelo jerarquico
Los datos y la vinculación entre los mismos se establecen igual que el modelo
anterior (usando registros y apuntadores) sin embargo el modelo se organiza de acuerdo
a un modelo de arbol
Cliente
Registro padre
Relación 1:n
Producto
Registro hijo
III MODELO ENTIDAD - RELACIÓN
8
Entidad.
Es un objeto existente que puede ser diferenciado de otros. Puede ser físico o
conceptual.
Ejemplo: clientes, días festivos.
Conjunto de entidades.
Agrupación de entidades del mismo tipo ejemplo :
Todos las clientes se agrupan en el grupo llamado clientes.
Atributos.
Elementos que caracterizan una entidad.
Ejemplo: cliente_nom, estados.
Dominio.
Es el conjunto de valores que puede tomar o serle asignado un determinado
atributo. Ejemplo: el dominio de estados serian los edos. de la república.
El dominio de Nom_clientes serian todos los números enteros.
Conjuntos
Edos. de
la rep.
clientes
client
dominio
Atributo. (definición formal).
Es una función que mapea un conjunto de entidades a un dominio.
Ejemplo:
Juan Pérez
Producto. Conjunto de entidades
Producto_no, producto nombre, $ unitario atributos
324
Relacion
Relación.
Es la asociación entre entidades
Conjunto de relaciones.
Es la agrupación de relaciones del mismo tipo. Estos conjuntos pueden contar
también con atributos descriptivos.
Ejemplo: compra  conj. De relaciones
Juan Perez  producto no. 324
Compra : fecha de realización
unidades compradas
Atributos descriptivos.
9
Definición formal de una relación.
Es un subconjunto del producto cartesiano generado por los conjuntos de
entidades.
R <- { E1 * E2 * E3 *........En}
Limitantes de mapeo.
Son limitantes que se deban satisfacer al asociarse entidades de diferentes
conjuntos.
Analizaremos dos limitantes de mapeo.
Cardinalidad: adjetivos que indica cantidades de objetos.
Cardinalidad de mapeo es una limitante que define la cantidad de entidades de las que
se puede asociar otra entidad bajo una relación establecida.
Considérese un conjunto A de entidades y un conjunto B también de entidades, además
de una relación establecida entre los mismos.
Las cardinalidades que se pueden definir son:
a) Una a Una.
Una entidad del conjunto A se asocia con una entidad del conjunto B y una
entidad del conjunto B se asocia con una entidad del conjunto A.
A
B
A1
B1
A2
B2
b) Uno a Muchos.
Se define esta cardinalidad cuando una entidad en el conjunto A se puede asociar
con varias entidades del conjunto B, pero una entidad del conjunto B solo puede
asociarse con una entidad del conjunto A.
A
B
A1
B1
A2
B2
A3
B3
Productos -> clientes
1: N
un cliente solo puede comprar
un tipo de producto, pero un
producto puede ser vendido a
muchos clientes.
10
c) Muchos a Uno
Se define esta cardinalidad cuando una entidad del conjunto A se puede asociar a
uno del conjunto B, pero una entidad del conjunto B se puede asociar a varias
entidades del conjunto A.
A1
Producto  cliente
N:1
Un clie nte solo puede comprar varios
Tipo de producto, pero un tipo de
producto puede ser vendido a un
clientes.
B1
A2
B2
A3
A4
B3
d) Muchos a Muchos
Se define esta cardinalidad cuando una entidad del conjunto A puede asociarse
con varias entidades del conjunto B y una entidad del conjunto B puede ser
asociada en varias entidades del conjunto A.
A1
A2
A3
A4
A5
B1
B2
B3
B4
B5
Producto  cliente
Dependencia existencial.
Es otra limitante importante que se refiere para existir una entidad (subordinado)
es necesario que exista otra entidad (dominante).
Ejemplo:
Cuentas
transacciones
Cuenta_no
saldo
Tran_no
1
2
3
Dominante
trans_tipo
X
Y
V
importe
$
$
$
subordinado
Si se elimina cuenta las transacciones se quedan sin relación, por lo tanto es
cuenta una entidad dominante,(si no hay cuenta no hay transacción) sin embargo si se
elimina una transacción la cuenta sigue existiendo y es una entidad subordinada.
Llaves
Super llave. Es un conjunto de atributos que permiten diferenciar las entidades
dentro de un conjunto de entidades
Ejemplo:
11
En el conjunto de entidades CUENTA
C.no
{ Cuenta_no, saldo } -> super llave
saldo
{ Cuenta_no } super llave.
El saldo no puede ser super llave por que por
casualidad varios clientes pueden tener el
Mismo saldo. El número de cuenta si porque cada
Cliente tiene una llave diferente.
Llaves candidatas.
Son las super llaves mínimas, esto es, aquellas super llaves que no tienen un
subconjunto propio que sea super llave.
Super llave
{cuenta_no, saldo } Esta no puede ser llave candidata porque posee un subconjunto
propio que sea super llave que es {Cuenta_no.}
{cuenta-no }
puede ser llave candidata, por que dentro de este conjunto no hay
un subconjunto que sea super llave.
Llave primaria.
Es la llave candidata elegida por el administrador
En el ejemplo seria cuenta_no la llave primaria.
Conjunto de entidades débiles.
Es un conjunto cuyos atributos no permiten la definición de una llave primaria,
por lo tanto al conjunto de entidades que si lo permiten se llama entidad fuerte.
Ejemplo:
Fuerte: cuenta
Débil: transacción.
Definición de una llave primaria para un conjunto de entidades débiles.
La definición de esta llave se hace asociando la llave primaria de la entidad
fuerte con el discriminador de la entidad débil.
Un discriminador es un conjunto de atributos que distinguen a las entidades débiles que
están asociadas con una entidad fuerte.
Ejemplo:
Clienta
Cuenta_no
Transacciones
saldo
Trans_no
trans_tipo
importe
2030
Llave primaria: no.cuenta
Ejemplo
2030
1
2
3
1
2
no_trans.
x
y
x
x
x
1
Identifica que elementos de trans.
12
Se asocia con cuentas.
Trans_no.
Trans_tipo.
1
x
Importe
$
Definición de llaves primarias
La definición se hace asociando las llaves primarias de los conjuntos de
entidades que intervienen en esa relación.
Diagrama Entidad-Relación.
Se define con los siguientes elementos:
- Rectángulo. Para identificar conjunto de entidades
- Elipses. Para identificar atributos de entidades
- Rombos. Que definen las relaciones entre los conjuntos
- Flechas. Para definir las cardinalidades.
- Líneas. Para asociar atributos con conjuntos de entidades y estos con
relaciones
Notas :
- Cuando se trate de un conjunto de entidades débiles hay que dibujar un rectángulo
dentro de otro, además la línea que lo asocia con el conjunto de relaciones debe ser
doble.
- En la definición de atributos se debe subrayar la llave primaria. El discriminador se
subraya con un línea doble .
Ejemplos:
-
Defina el modelo conceptual de una base de datos usando el diagrama entidad
relación, para los siguientes incisos:
a) Considere una compañía que vende distintos productos clasificándolos por una
clave, un nombre y definiéndoles su precio unitario. La venta de los productos se
hace a nivel nacional, cobrándose dependiendo del estado una tasa o importe por
envío.
Lógicamente se requiere de información de los clientes como: nombre, dirección
No_cliente, etc.
cantidades
dirección
2
productos
M
M
ordenes
clientes
M
Nombre
cliente
No_cliente
Cve_prod
Nombre_prod
1. clien_es
2. precio. Prod
fecha
1
estado
13
b) sea una organización en la que cada cuenta habiente realizo una serie de
transacciones que pueden ser de tipo A,B,C,D.
La información de cada cuenta habiente requerida defínala usted.
Importe
saldo
No-cta
Nombre
transacciones
operación
Cuenta_habiente
Fecha
Tipo-trans.
No-trans.
=======
Caso especial:
Considere la definición del modelo conceptual para el caso en que se tenga que
asociar un conjunto de entidades consigo mismo:
Sea la definición de un conjunto de entidades llamadas personal, en donde cada
entidad de este conjunto puede relacionarse con los demás asumiendo un papel definido:
Trabajador o jefe ( o ambos).
Para ilustrarlo considere :
jefe
Cve_emp
PERSONAL
t
trabajador
Trabaja
con
R.F.C.
Nombre
Puesto
Depto
Llaves: (con respecto a la relación)
Primarias:
Cve_emp-jefe
Cve_emp_trabajador
14
Ejercicio1:
Desarrolle el modelo conceptual de la base de datos para una organización que
se dedica a rentar departamentos.
Descripción.
Sea una organización que se dedica a rentar departamentos, en donde no se
restringe el número de departamentos rentados por cualquier inquilino; los datos que
se le piden a este son:
El R.F.C., nombre, referencias comerciales y personales.
En cuanto a los departamentos, con la renta de un departamento. Se le asigna
una o más áreas determinadas de estacionamiento, a cada departamento se le identifica
con una clave, además se le señala el costo.
Se lleva un registro de la cantidad de los bienes dispuestos en cada departamento
usando códigos, donde cada código representa un objeto (cocina integral, comedor,
etc.).
Además se tiene un listado de los pagos ( Cve.de pago, descripción) por departamento.
Relación 1:N -> R1,R2, ....Rn
Relación N:N con las primeras letras da las entidades.
Falta diagrama
Entidades Fuertes
Inquilinos (rfc, nombre, refcom, ref per).
Depto (cve_dpto, costo).
Estacionamiento (Cve_est, des_bienes)
Pagos (Cve_pago, des_pago, fecha-pago).
Relación.
R1 (inquilino,depto)
R2 (depto, estacionamiento)
Dep_bien (depto, bienes, cant)
R3 (pagos, depto).
15
Ejercicio 2.
Defina un modelo conceptual de una base de datos para un sistema de control
presupuestal, bajo las siguientes consideraciones:
1. El presupuesto se elaboro en base a proyectos
2. El formato que se considera es:
Presupuesto por proyecto
Cve. Del proyecto:____
Nombre:_____
Descripción:______
Dpto. que coordina:______ Cve: ___
nombre:___________________
Empleado responsable del proyecto:_____ Cve:_____ nombre:_______
Desglose de conceptos
Cve
descripción
presupuesto
Total:____________
Empleados que participan .
Cve.
Nombre
Puesto
Cve puesto sueldo
% Participación
presupuesto
Total:_______________
3. Cada proyecto debe estar asignada a un departamento, y un departamento
puede tener a su cargo uno o mas proyectos.
4. Se asigna para cada proyecto a un empleado responsable y un empleado
puede ser responsable de mas de un proyecto.
5. En un proyecto pueden intervenir varios empleados y un empleado puede
intervenir en uno o mas proyectos. El presupuesto de cada empleado se
calcula multiplicando su porcentaje de participación por el sueldo.
6. El modelo debe contener toda la información que se presenta en los
formatos, con excepción de los campos calculados (totales y presupuestos).
Es importante que el modelo incluya una descripción de cada puesto.
16
Entidades fuertes.
- Proyecto ( Cve_proy, nombre, descripción)
- Departamento (Cve_depto., nombre)
- Empleado (Cve_emp., nombre)
- Conceptos (Cve_concepto, Desc_concepto)
- Puesto (Cve_puesto, sueldo, desc_puesto)
Relaciones:
- R1 (proyectos,deptos)
- Pro-emp (proyecto, empleado_part, por_part)
- R2 (empleado-responsable, proyecto)
- Pro-con (proyecto, concepto, cantidades)
- R3 (puesto, empleado)
- R4 (depto, empleado)
3
1
deptos
10
6
5
proyectos
8
2
4
empleados
9
11
7
12
15
conceptos
13
14
16
puestos
17
18
19
20
1. cve depto
2. nombre
3. Cve_proy
4. Nombre
5. Descripción
6. Cve_empr
7. Nombre
8. R1
9. Pro-emp
10. Cantidades
11.
12.
13.
14.
15.
16.
17.
18.
19.
20.
Pro_con
Por_part
Cve_concep
R2
R3
Desc_conc
Cve_puesto
Sueldo
Desc_puesto
R4
17
Ejemplo 3.
Desarrollo del modelo conceptual de la base de datos para una compañía que se
dedica a reparar aparatos eléctricos.
Descripción:
Sea una compañía en la que un cliente puede solicitar que se reparen varios
aparatos, para ello se dispone de un conjunto de empleados. Un empleado esta
capacitado para hacer reparaciones distintas, pero el ajuste de un aparato puede requerir
la intervención de varios empleados, en este ultimo caso se lleva un registro de las horas
del empleado dedicadas a reparar.
A cada empleado se le asigna equipo y mesa de trabajo (ambos identificables por
claves). Hay que considerar que por la reparación de determinado aparato se necesita
cierto tipo de refacciones (por cada tipo se tiene descripción y clave).
Además se lleva acabo los siguientes registros de información:
Para cliente: cve_cliente, nombre, dirección y teléfono
Para empleado: cve_empleado, nombre y dirección.
Para aparato: cve_aparato, descripción, fecha _entrada y fecha_salida.
-
Entidades:
Clientes (No_cliente, nombre, dirección, telefono)
Aparatos (Cve_aparato, descripción, fecha, fecha_sal)
Empleados (Cve_emp, nombre, dirección)
Refacciones (descripción, Cve_ref)
Equipo (Cve_equ, fecha_ent, fecha_recib)
Relaciones
-
R1 (aparatos, clientes)
Emp-apar (empleados, aparatos, hr_recibo, hr_entrega)
R2 (empleados, equipo)
R3 (empleados, mesa_trabajo)
Apar_refac (aparatos, refacciones, cantidad)
18
5
1
CLIENTES
2
6
APARATO
R1
8
3
REFACCIONES
10
9
1
1
4
1
3
1
7
1. Dirección
2. Tel
3. Nombre
4. No_cliente
5. Fecha_ent
6. Fecha_sal
7. Cantidad
8. Cve_aparato
9. Descripción
10. Apar_ref
11. Descripción
12. Cve_ref
R2
1
8
1
9
2
0
13.
14.
15.
16.
17.
18.
19.
20.
21.
22.
23.
24.
1
2
1
5
14
EMPLEADOS
EQUIPO
1
6
7
2
1
MESA_TRABAJO
R3
2
2
2
3
2
4
Hr_recibido
Emp_apar
Hr_entrega
Fecha_ent
Cve_equipo
Fecha_reg
Cve_emp
Nombre
Dirección
Fecha_ent
Cve_mesa
Fecha_recib
19
4) Jerarquía con el mismo tipo de registro de mas de un nivel.
No se permite que el mismo tipo de registro sea a la vez propietario y miembro de
un conjunto de DBTG.
EJ
EMP
ENLACE
EMP X
E1
E2
EMP 4
ENLACE
EMP X
E12
E13
Ejemplos de redes.
Modelo de redes en caso que las entidades sean diferentes:
* quizá falten apuntes *
Reducción del diagrama entidad relación a tablas
I.
Conjuntos de entidades fuertes
LLAVE
E
LLAVE
E1
E2
20
E1
E2
E
II.
Conjunto de entidades débiles
D
LLAVE F
F
DIS
D1
D2
D
D2
DIS
D1
CLAVE F
III Conjunto de relaciones
a) Cualquier caso.
R
R
1
E1
LLAVE
-E1
R
R1
R2
E2
LLAVE
- E2
R
2
LLAVEE1
LLAVE
- E2
b) cuando se relacionan con si misma
papel-1
E
papel-2
R
E
LLAVE_E
PAPEL_1
LLAVE_E R2
PAPEL_2
Reducción a tablas del ejercicio 3
Clientes
NO_CLIENTE NOMBRE DIRECCION TEL
Aparatos
CVE-APARATO DESCRIP FECHA-ENT FECHA-SAL
Refacciones
CVE_REF
DESCRIPCIÓN
Equipo
CVE_MESA FECHA-ENT
FECHA-RECIBO
21
mesa – trabajo
Empleados
CVE_EMP NOMBRE DIRECCION
CVE_MESA FECHA-ENT FECHA-RECIB
R1
R2
NO-CLIENTE CVE-APARATO
R3
CVE-EMP
CVE-EMP CVE-EQUIPO
Apar-ref
CVE-MESA
CVE-APARATO CVE-REF
CANTIDAD
Ejemplo:
Grado de relación cliente =3 (no-cliente,nombre,edo).
Grado de relación cargo =2 (estado,cargo-ent)
Archivo binario formado por reg del mismo tipo
Relación
Cliente
Tabla
Cliente
Archivo
Cliente
No
nombre edo
Cliente
reg 0 tupla 0
No
nombre edo
cliente
reg1 tupla 1
No nnombre edo
cliente
reg 2 tupla2
Dominio : El dominio de un atributo son todos los valores posibles que pueden tomar
dichos atributos
Ejemplo:
De la tabla anterior:
Domain
Número-cliente: char (3)
Número-cliente (1)=”c”
Domain
Nombre-cliente: char (30)
Domain
Edo-cliente: char (10)
22
{Ver, Qroo, Gto)
Relación clientes
(no-clientes: número-cliente;
nombre: nombre-cliente;
estado: estado-cliente)
Llaves.
Llaves candidatas: Es un conjunto de atributos que permiten distinguir una entidad de
otra o una asociación de entidades dentro de una relación.
Llave primaria: Es una llave candidata elegida por el administrador de la BD.
Llave alterna: son las llaves candidatas que no fueron elegidas.
Reglas de integridad:
1. Integridad de la entidad.
Ningún componente de un valor de una llave primaria puede ser nulo
Si su valor es nulo se puede identificar la tupla.
2. Integridad de referencia. (definición de llaves foráneas).
Sea D un dominio primario (sobre el que se define alguna llave primaria de un solo
atributo), en el ejemplo numero-cliente y estado-cliente y sea R1 una relación con
un atributo A que se define sobre D.
En el ejemplo:
R1  Cliente.
D  Edo-cliente
A estado.
Entonces, en cualquier instante dado, cada valor de A en R1 debe ser o bien
(a) Nulo, o bien
(b) igual a v, en donde v es el valor de la llave primaria de alguna tupla de relación R2
con llave primaria definida sobre D, R1 y R2 no son por fuerza distinta.
R1 cliente
No-cliente nombre
C01
Juan P
estado
Gro V
R2 cargo
estado cargo-ent
Qro
Puede ser igual
(a) puede ser nulo
Llave foránea: es un atributo como A, ejemplo para la relación de cliente la llave
foránea es estado.
Es un atributo cuyo dominio es igual al dominio de una llave primaria de otra relación.
23
Ejemplos:
Partes
No. Parte
proveedor
Nombre color peso
ciudad
No-prov. Nombre
edo
ciudad
a) Es el atributo ciudad llave foránea de la tabla partes? No, ciudad que
Ciudad debe ser la llave principal en otra relación.
b) Es el atributo ciudad llave foránea de la relación proveedor? No, misma causa
c) Es el atributo ciudad llave foránea de las dos relaciones? No, misma causa
d) Es el atributo ciudad simplemente un atributo? Si
Extensión de una relación.
Es equivalente a la cardinalidad. La extensión de una relación varía en función
del tiempo.
No de tuplas
Comprensión de una relación.
Es la parte permanente de la relación. No depende del tiempo.
Esta constituido por:
a) Estructura nominadora: Es la definición de la relación. Definición de sus atributos y
definición de sus dominios correspondientes a sus atributos.
b) Restricciones de integridad
Restricciones de las llaves
Integridad de referencia (restricciones)
Otras restricciones (particulares del modelo)
Restricciones de las llaves. Definición explícita y correcta de los atributos que definen
las llaves candidatas.
Integridad de referencia. Definición de las llaves foráneas.
Modelo relacional SYSTEM – R
Fue desarrollado en la IBM en los años 74-79 es el primer prototipo relacional
más completo sobre el cual otros sistemas han hecho referencia.
Se considera en el curso como un modelo para la aplicación de los diferentes
ejemplos.
24
Arquitectura del SYSTEM- R
Nivel
Externo
Usuario
structured query languaje.
SQL
- Lenguaje estructurado de consultas
VISTA A
Nivel
Conceptual TABLA DE
BASE B1
Nivel
Interno
ARCHIVO
ALMACENDO
A1
TABLA DE
BASE B2
VISTA B
TABLA DE
BASE B3
ARCHIVO
ALMACENDO
A2
TABLA DE
BASE B4
ARCHIVO
ALMACENDO
A3
Leng. De definición de
Datos (DDL ).
SQL Sub lenguaje
ARCHIVO
ALMACENDO
A4
Esq. Ext definición
De vistas
Esq. Conc. Defif de
Las tablas de base
Esq. Int. def. de los
Indices de los archivos
Leng. De manipulación de datos(DML)
- Esquema externo
Aplicación
consulta interactiva (UFI)
- Esquema conceptual
Ambiente de programación
SQL inmerso es mezclar
instrucciones en DML en
el lenguaje anfitrión (PLI,
COBOL).
El usuario puede relacionarse directamente por las vistas o por
las tablas base.
Vistas.
25
Son las tablas virtuales, generadas por ña combinación de atributos de las tablas
de base. Se definen en le nivel externo usando el DDL, del SQL. Es importante
considerar que las vistas representan una ventana de las tablas de base por lo que
cualquier modificación que se haga a los datos de una vista realmente se hará sobre las
tablas de base.
De esto se puede inferir que las vistas solamente se encuentran definidas en el
diccionario el sistema y no hay un archivo para cada una de ellas.
Tablas base.
Son las tablas que tienen existencia propia, esto es cada tabla corresponde a un
archivo del sistema.
La creación o destrucción de las tablas se hace usando el DDL del SQL.
Ejemplo.
Ver en le libro.
Archivos:
En la parte física del sistema representan a cada una de las tablas de base, de tal
manera que el nombre de un archivo corresponde al nombre de la tabla de base, los
registros del archivo a las tuplas y los campos de los registros a los atributos.
Leng. Subconjunto de un monoide sobre un alfabeto.
Algebra relacional:
Es una estructura sobre la que se basa cualquier lenguaje de un modelo
relacional.
En general representa a un conjunto de operaciones las que se pueden aplicar sobre las
relaciones.
Unión: (solo se pueden abrir tablas compatibles que tengan los mismos atributos
Conjunto de temas que están ordenadas y tienen los siguientes campos:
Clientes A
Cliente B
No- cliente
Nombre Estado
No-cliente
Nombre
Estado
C01
Juan Pérez Gto.
C01
Juan Pérez
Gto.
C02
Luis Glez. Gto
C03
Sofía López Ags.
Cliente_A union Cliente_B (0)
No-cliente
Nombre
Edo.
C01
C02
C03
Juan Pérez Gto.
Luis Glez.
Gto.
Sofía López Ags.
Intersección de relaciones.
Cliente A
intersección
No_cliente
Cliente _B
nombre
estado
26
C01
Juan Pérez
Gto.
Diferencia :
La diferencia entre las tablas A y B (A-B). Son las tuplas que corresponden a A
y no corresponden a B.
Cliente_A menos Cliente_B
No_cliente
nombre
C02
estado
Luis Glez
Qro.
Cliente_B menos Cliente_A
No_cliente
C03
nombre
estado
Sofía López
Ags.
Producto cartesiano
Es la relación de una tupla de una relación con las tuplas de otra tabla.
Las relaciones pueden o no ser compatibles.
Ejemplo:
Cliente A
No_cliente nombre
C01
Juan Pérez
C02
Luis Glez
relación A
No_cliente No_compra cuenta
C01
P1
20
C01
P2
18
C03
P1
12
estado
Gto
Qro
Grado 3
Cardinalidad = 2
Grado = 3
Cardinalidad = 3
Estas tablas no son compatibles:
Cliente_A veces Relación_A
No_cliente
C01
C01
C01
C02
C02
C02
nombre
estado No_cliente
Juan Pérez
Juan Pérez
Juan Pérez
Luis Glez
Luis Glez
Luis Glez
Gto
Gto
Gto
Qro
Qro
Qro
No_compra cuenta
C01
C01
C03
C01
C01
C03
P1
P2
P1
P1
P2
P1
20
18
12
20
18
12
Cardinalidad = 2 x 3 = 6
Grado = 3 + 3 = 6
Reunión.
27
Considera atributos comunes en las dos relaciones. No se pueden repetir
atributos. (se hace una reunión de los que son iguales en las 2 tablas.
Cliente_A Reunión Relación_A
No_cliente nombre
estado No_compra cuenta
C01
C01
Juan Pérez
Juan Pérez
Gto
Gto
P1
P2
20
18
Nota. Si no hay atributos comunes, la reunión es un conjunto vacío.
Si las dos tablas fueran equivalentes la reunión sera equivalente a la intersección.
Selección.
Se selecciona una tupla de la relación que cumpla con ciertas condiciones.
Definición. Relación donde condición
Ejemplo.
Relación
No_cliente
C01
C01
donde (No_cliente = C01)
No_compra Cantidad
P1
P2
20
18
Proyección.
¿ Como seleccionar algunas tuplas ?
la proyección se define:
Relación [atributos,atributos2] se genera un vector con los elementos
Del atributo.
Ejemplo:
Cliente_A [estado]
Gto
Qro
División .
Relación A Dividida por R_B ( R_B R- A)
La relación o división estará formada por atributos contenidos en la relación
“dividendo”. Por lo que se deduce que la relación “divisor” es un subconjunto de la
relación “dividendo”.
R_A
A
a1
a1
a1
a1
a2
a2
R_B
B
b1
b2
b3
b4
b1
b2
B
b1
ejemplo 1
R_A divide R_B
resultado
A
28
a3
b1
a3
b2
a4
b2
ejemplo 2 R_A divide R_B
R_A
A
a1
a1
a1
a1
a2
a2
a3
a3
a4
a1
a2
a3
R_B
B
b1
b2
b3
b4
b1
b2
b4
b3
b2
B
b1
b2
A
a1
a2
Ejemplo 3.
Si
R_B
A
B
a1
a3
b4
ejemplo 4
R_ A
R_B
A
B
a1
a1
a1
a1
b1
b2
b3
b4
C
resultado
B
C
A
b4
c1
a1
c1
Ejercicios :
Sean las siguientes tablas
Clientes
No-clientes
x
C1
C2
C3
C4
Cargos
nombre
Edo.
Sánchez.
Flores
Rojas
Pérez
Gto.
Mich
Gto
Qro.
Edo.
Gto.
Mich
Qro.
Jal.
Cargo_ent
6
8
10
7
29
C5
Robles
Jal.
Mex.
65
x
Ordenes
Productos
NC
N.P
Cant
NP
Nom_P color
C1
C1
C2
C2
C3
C3
C3
C3
C3
C4
C4
P1
P2
P2
P3
P1
P2
P3
P4
P5
P1
P3
2
3
4
1
3
1
4
2
1
1
3
P1
P2
P3
P4
P5
floppy
monitor
CPU
D.duro
Fuente
rojo
verde
rojo
azul
amarillo
precio_u
100
400
250
300
60
30
18 de febrero
1. Obtener todos los datos de los productos de color rojo productos donde
( color =’rojo’)
2. Los datos de los clientes del estado de Gto. Clientes donde
(estado = ‘ Guanajuato’).
3. Los nombres de los estados con cargo por entrega mayor que 7
(cargos donde cargo-ent > 7) [estado].
4. Los estados donde hay clientes [estado].
5. Los nombres de los clientes que compraron productos color rojo.
Productos donde (color =’rojo ’)
P1 floppy rojo 100
P3 CPU rojo 250
Productos
2
3
1
1
4
3
donde (color = ‘rojo’)
Floppy
rojo
100
Floppy
rojo
100
Floppy
rojo
100
CPU
rojo
250
CPU
rojo
250
CPU
rojo
250
Ordenes
C1
C3
C4
C2
C3
C4
Reunión
P1
P1
P1
P3
P3
P3
Clientes
reunión ordenes reunión productos donde (color = ‘rojo’)
Sánchez
Rojas
Pérez
Flores
Rojas
Pérez
Gto.
Gto.
Qro.
Mich
Gto.
Qro.
C1
C3
C1
C2
C3
C4
P1
2
Floppy rojo 100
(clientes reunión ordenes reunión productos donde (color =’rojo’))[nombre]
Sánchez
Rojas
.
.
.
6. Los nombres de los clientes que tienen un cargo por entrega > 7
(clientes reunión cargos
donde (cargo_ ent > 7 ) ) [ nombre]
7. Los nombres de los clientes que compraron todos los productos de color rojo
Ordenes [No_ cliente, NP] Divide(productos donde (color =’rojo’) ) [No_ producto]
31
(clientes reunión (ordenes[No_ cliente, NP] divide
(productos donde (color = ’rojo’)) [NP]) [nombres]
8. Obtener los nombres de los clientes que no compraron algunos de los productos de
los que compró el Sr. Sánchez.
Clientes. [NC]
(Clientes donde nombre = ’Sánchez’)
[No_cliente]  A
Clientes que compraron
algunos de los productos que
[NC] compro el Sr. Sánchez
(A reunión ordenes) [NP]  B
(B reunión ordenes) [N.C]  C
( ( Clientes [NC] menos C ) reunión clientes ) [ nombre]
9. Obtener todos los datos de los clientes
Cliente_ A.
10. Obtener los nombres y el estado de los clientes
Cliente_ A [Nombre, estado]
11. Obtener los nombres de los clientes del estado de Guanajuato.
( Clientes_ A donde estado = ‘Gto.’ ) ) [nombre]
12. Obtener los nombres de los clientes y el cargo de entrega de cada cliente:
a) Utilizando reunión
b) Utilizando producto cartesiano.
a) ( Cliente_ A reunión cargos) [Nombre, Cargo_ ent ]
No_cliente
C1
C2
C3
C4
C5
Nombre
Sánchez
Flores
Rojas
Pérez
Robles
Edo.
Gto.
Mich
Gto
Qro.
Jal.
Cargo_ ent.
6
8
6
10
7
b) Clientes veces Cargo
No_cliente
C1
C2
C3
C4
C5
Nombre
Sánchez
Flores
Rojas
Pérez
Robles
Clientes reunión
Edo.
Edo.
Gto. Gto.
Mich Mich.
Gto
Gto.
Qro.
Qro.
Jal.
Jal.
Cargo_ ent.
6
8
6
10
7
cargos =
32
Clientes veces Cargos donde (clientes. Edo = Cargo. edo)
A Reunión B => ( A veces B) donde (A.atrib.común = B. atrib. común)
Solución :
(( Clientes veces Cargos) donde (Clientes. Edo = Cargo. Edo.))
[Nombre, Cargo. ent]
13. Obtener una tabla semejante a ordenes que contenga el nombre del cliente en lugar
del número, y el nombre del producto en lugar del número
(( Clientes Reunión Ordenes) Reunión Productos)[Nombre, Nom_ P, Cant.]
14. Defina el enunciado para la siguiente operación
Clientes Alias x
Clientes Alias y
((x veces y) donde (x. Edo = y. Edo and x.No_ cliente>y.No_cliente))
[X. Nombre, y. Nombre].
Obtener una tabla donde se encuentren los nombres de las parejas de los clientes
cuyo estado es el mismo, evitando que se relacionen parejas con el mismo nombre.
No_cliente
C1
nombre
Sánchez
Edo.
Gto.
Ejercicios:
Considerando el ejemplo de s.sp.p.
Operaciones de recuperación
1. Obtenga números de proveedores y edo. Para los proveedores en París.
(S donde (ciudad = ’París’)) [S = número, edo.]
Select
From
Where
1.
S = Número, edo.
S
Ciudad = ‘París’
Recuperación simple
Obtenga los números de parte de todas las partes suministradas.
S.P[P_ Números]
Select Unique P_ Número
From SP
Condiciones
Op. relacionales
=
>/<
>=
And
Op. Lógicos.
33
<=
<>
Op. Especiales.
Or
* Comparar rangos nombre_ atributo[Not]
BETWEEN expresión_ 1 And expresión_ 2
* Comparar patrones atributos Matches “valor”
* Comparar valores
Atributo [Not] in ( v1,v2…)
Atributo operador relacional
ANY (v1,v2,v3 ….)
Atributo op. Relacional
ALL (v1,v2,v3 …)
Ejemplo:
- Atributo > ANY (v1,v2,v3,….)
Atributo mayor que cualquiera de los valores (verdadero sí se cumple la condición)
- Atributo = ANY(v1,v2,v3,….) equivalente atributo in (v1,v2,v3,….)
Atributo igual a cualquiera de los valores (verdadero sí se cumple la condición)
- Atributo >ALL (v1,v2,v3,…)
Atributo mayor que todos los valores.
Op. Existencial. [Not] exists (select …)
El op. Existencial si el argumento no es un conjunto vacio.
Ej. Exist (v1,v2,v3,…)
2.
Funciones agregadas
-
Count (*) genera el número de tuplas de una relación
Sum (atributo) suma del atributo especifico
AVG (atributo) promedio de los valores de un atributo determinado
Max (atributo) máximo valor de un atributo
Min (atributo) mínimo valor de un atributo
Ejercicio 3
3.
Recuperación calificada
Obtenga números de proveedor para los proveedores de París con edo > 20
Select S_ número
From S
Where ((ciudad = ‘París’) and (edo. > 20))
4.
Recuperación con ordenamiento.
Obtenga Números y edo. De los proveedores en París, en orden descendente de edo.
Select S_ número, edo.
From S
Where ciudad = ‘París’
34
Order Descending edo.
5.
Recuperación de mas de una tabla.
Para cada parte suministrada obtenga el número de la parte y de los nombres de todas
las ciudades que suministran la parte.
Select Unique SP. P_ número, P. Ciudad
From P, SP
Where SP. P_ número = P. P_ número
6.
Recuperación que implica una tabla consigo misma
Obtenga todas las parejas de números de proveedores tales que los dos proveedores
estén localizados en la misma ciudad.
Select Primero. S_ número, Segundo. S_ número
From S Primero, S Segundo
Where Primero. Ciudad = Segundo. Ciudad and Primero. S#
7.
Ejemplo de subconsultas
Obtenga nombres de proveedores para los proveedores que suministran la parte P2
(usando Subconsultas)
Select nomb_ S
From S
Where S_ número = ANY ( Select S_ número
From SP
Where P_ número = ‘P2’)
(sin consultas)
Select nomb_ S
From S, SP
Where S. S_ número SP. S número and SP. P. Num = ‘p2’
8.
Manejo de subconsultas.
Obtenga nums. De proveedores para los proveedores con edo < que el valor máximo
actual de estado en las tablas (significa que el estado de los proveedores seleccionados
es menor que algún valor actual de estado y por lo tanto menor que el máximo actual)
Select S_ número
From S
Where edo ANY ( Select Max (edo)
From S)
9.
Recuperación con niveles múltiples de anidamiento.
Obtenga nums. de proveedores para los proveedores que suministran al menos una parte
roja.
Select nom_ S
From S
35
Where S_ número in (Select S_ número
From SP
Where P_ número in (Select P_ número
From D
Where color = ‘rojo’)
10.
Recuperación usando ALL
Obtenga nombres de proveedores para los proveedores que no suministran la parte P2
Select nom_ S
From S
Where S_ número <> ALL ( Select
From SP
Where P_ número = ‘P2’)
11.
Recuperación usando exists.
Obtenga nombre de los proveedores para los proveedores que suministraron la parte P2
Select nom_ S
From S
Where exists
* referencia por bloques
(Select *
referencia a la relación definida en
From SP
el bloque externo (S) y ref. a la rel.
Where SP. S_ número = S. S_ número
del bloque interno (SP)
And SP. P_ número = ‘P2’)
No es necesario por que se considera que son referidos
A la tabla interna.
Si del bloque interno nos da un conjunto vacío no nos proporciona ningún nombre, si el
conjunto no es vacío nos da los nombres
Ejemplo:
#S
SP
Salazar
S1
S1 { S1 P2 200
Aldama
S5
S5 { 0 No nos proporcina el nombre que es conjunto vacío
12.
determine através de subconsultas y referencia por bloques que no suministraron
la parte P2
Select Nom_ S
From S
Where Not Exists
(Select *
From SP
Where S_ num = S. S_ num
And P_ num = ‘P2’ )
En este caso solo elige a Aldama y no a Salazar ni a Jaramillo.
36
13.
Referencias por bloques, subconsultas y uso de operador IN considerando los
dos enunciados anteriores.
a) Obtenga los nombres de proveedores que suministraron P2
Select Nom_ S
From S
Where ‘P2’ IN
(Select P_ número
From SP
Where ‘P2’ in
( Select P_ numero
From SP
Where S_ numero = S. S_ número)
b) Obtenga los nombres de proveedores que no proveen P2 ( utilizando ALL).
Select Nom_ S
From S
Where ‘ P2’ <> ALL
(Select P_ número
From SP
Where S_ núm. = S. S_ núm.)
Salazar_ es P2 <> AU ( P1 P2 P3 P4 P5 P6 )
P2 No es diferente a todos por que si es igual a un elemento y
por lo tanto no sé elige
Aldama si se elige
14
Aplicación de subconsultas, referencia por bloques y el operador NOT EXISTS
Obtenga número de proveedores para los proveedores que suministran todos las partes
(totales, que no exista una parte que no se suministren )
Select Núm._ S
From S
Where NOT EXISTS
( Select *
From P
Where NOT EXISTS
(Select *
From SP
Where S_ núm. = S. S_ núm. and P_ núm. = P. P_ núm.)
S
Salazar
Si
P
SP
P1
P2
S1 P1 300
S1 P2 200
falso
falso
Ningún P se selecciona Significa que este proveedor no tiene ninguna parte que
37
No provea todas las partes
Jaramillo S2 P1
P2
P3
P4
15
Esta es una forma de presentar la división
Es un conjunto no vacío por lo tanto no existe falso
por que no suministra todos los productos
Referencia por bloques, Subconsulta.
Select Unique S_ núm.
From SP. SPX
Where Not Exists
(Select *
From SP. SPY
Where S_ núm. = ‘S2’
Not Exists
( Select *
From SP
Where S_ núm. = SPX. S_ núm.
And P_ núm. = SPY. P_ núm.
Obtenga los números de los proveedores que suministran al menos todas las partes
suministradas por el proveedor S2.
16
Recuperación usando unión
Obtenga los números de parte para las partes que pesen mas de 18 lbs. O que
actualmente sean suministradas por el proveedor S2.
Select P_ núm.
From P.
Where Peso> 18 lbs. Unión.
(Select P_ núm.
From P
Where S. Núm. = ‘S2’)
17
Recuperación de valores computados.
Obtenga el número de parte y el peso de la parte en gramos para todas las partes. Los
pesos se dan en libras en la tabla P.
Nota:
La cláusula Select y la Where pueden incluir expresiones aritméticas que
comprendan campos, además de nombres de campos sencillos.
1 Lb. = 454 grs.
Select P_ número, peso*454
From P
18
Obtenga el número total de proveedores. Uso de la función integrada Count
38
Select Count (*)
From S
19
Obtenga la cantidad total de la parte P2 suministrada
Select SUM (CTD)
From SP
Where P_ número = ‘P2’
20
Uso de Group by
Para cada parte suministrada obtenga, obtenga en número de y la cantidad total
suministrada de la misma.
Nota: El operador Group by reordena conceptualmente la tabla de f rom en grupos de
modo que dentro de cualquier grupo todos los renglones tengan el mismo valor por el
campo de Group by
La cláusula Select se aplica a cada grupo de la tabla dividida y no a cada renglón de la
tabla original.
Select P_ número, Sun Cto
From Sp
Group by P_ número
21
Uso del Group by usando Having
Obtenga los números de partes para todas las partes suministradas por mas de un
proveedor. Considere antecedentes del problema anterior.
Nota: Having es para los grupos lo que Where es para los renglones si Having se
especifica también debe haberse especificado Group by
Las expresiones es una cláusula Having deben tomar un solo valor dentro del grupo.
Select P_ número
From SP
Group by P_ número
Having Count (*) > 1
22
Defina el número de partes para todas las partes tales que la cantidad
suministrada sea superior a 300 ( excluyendo del total todas las remesas para
las cuales la cantidad sea menor o igual a 200), obtenga además el número de la
parte la cantidad máxima de la parte suministrada y agregue el resultado en
orden descendente de número de parte dentro de esos valores de cantidad
máxima.
Select SP
Where CTD > 200
Group by P_ número
Having SUM (CTD)>300
Order by descending (P_ número)
39
23
Actualización de un solo registro
Cambie el color de 10 partes de P2 a amarillo, aumente su peso en cinco y ponga ciudad
en nulo.
Update P
Set
Color = ‘ amarillo ‘
Peso = ‘ peso + 5 ‘
Ciudad = null
Where P_ número = ‘ P2’
24
Actualización de registros múltiples.
Doble el estado de todos los proveedores de Londres
Update S
Set edo. = edo. * 2
Where Ciudad = ‘ Londres ‘
25
Actualización con una subconsulta
Ponga la cantidad en 0 para todos los proveedores de Londres
Update SP
Update SP
Set CFD = 0
Set CTD = 0
Where S_ número =
Where ‘ Londres ‘ =
( Select S_ núm.
(Select Ciudad
From S
From S
Where Ciudad = ‘Londres’)
Where S_ núm. = SP. Núm.



26
La vista debe derivarse de una sola tabla
Cada tupla distinta de la vista debe corresponder a una tupla diferente e identificable
de la tabla
Cada columna distinta de la vista debe corresponder a una columna diferente e
identificable de manera única en la tabla.
Actualización de tablas múltiples
Para el proveedor S2 cambie el número a S9
Update S
Update SP
Set S_ Núm. = ‘S9’
Set S_ Núm. = ‘S9’
Where S_ Núm. = ‘S2’
Where S_ Núm. = ‘S2’
27
Inserción ole un solo registro
Adicione la parte P7 ‘Arandela’ , ‘Gris’ , 2 , ‘Atenas ‘ a la tabla P
Insert
Into P ( P_ Núm., nom_ P, color, peso, ciudad )
Values (‘P1’ , ‘Arandela’, ‘Gris’, 2, ‘Atenas’)
40
28
Inserción de registros múltiples
Considere una tabla temporal ( una vista) en la que se tiene una columna llamada P_
Núm. Inserte en temp. Los números de parte de todas las partes suministradas por el
proveedor ‘ S2’
Insert
Into temp ( P_ Núm.)
Values
( Select P_ Núm.
From SP
Where S_ Núm. = ‘S2’)
29
Supresión de un solo registro.
Suprima el proveedor S1
Delete .
From S
Where S_ Núm.= ‘S1’
30
Delete
From Sp
Where S_ Núm. = ‘ S1’
Supresión de registros múltiples
Suprimir todas las remesas
Delete
From SP
Definición de vistas
Create View Cliente_ Gto (crea una vista llamada cliente_ Gto.)
As (Select No_ cliente, nombre, cd
From cliente
Where cd= ‘Gto’)
Todos los valores que se seleccionen se crea otra tabla (virtual), pero los cambios en
esta tabla afectan a la tabla original.
Características:
El nivel externo de una base de datos se define por su esquema externo, este
esquema se compone de definiciones de tablas y vistas. Una vista es una tabla virtual, es
decir, una tabla que no existe en realidad , si no que se deriva de una o más tablas.
Una vista es una ventana sobre datos reales, no una copia separada de los datos.
Los cambios en los datos reales son visibles a través de la vista, las operaciones contra
la vista se convierten en operaciones contra los datos reales esta conversión siempre es
posible para las proposiciones de recuperación, sin embargo no siempre es posible para
las operaciones de actualización, para las cuales hay ciertas restricciones.
Normalización
Es una metodología para normalizar los campos ( atributos ) de una tabla de tal
forma que se evite la redundancia.
41
Metodología
1. captura de información bajo un formato definido
Ordenes de clientes
Cliente: Número: C1
Estado: Texas
nombre: S. Sánchez
Cargo por envío: 6 dls.
Productos ordenados
Número
P1
P3
nombre
precio unitario
Floppy
H. Disk
cantidad
88
450
1
2
fecha
06/05
10/23
Supóngase que se tiene este formato para cada cliente
2 Definición de una tabla (datos normalizados)
Ordenes – clientes
No. Nombre
C1
C1
C2
C2
C2
C3
C4
C4
C5
C5
C6
C6
S. Sánchez
S. Sánchez
R. Rojas
R. Rojas
R. Rojas
B. Dilan
G. García
G. García
F. Flores
F. Flores
J. Jiménez
J. Jiménez
Edo.
Texas
Texas
California
California
California
N. Jer
Florida
Florida
Florida
Florida
California
California
Cargo * No.
entidad
6
6
8
8
8
65
5
5
5
5
8
8
P1
P3
P2
P3
P4
P2
P1
P4
P1
P3
P3
P4
Nombre p. Unit
Floppy
H. disk
Monitor
H. Disk
CPU
Monitor
Floppy
CPU
Floppy
H. Disk
H. Disk
CPU
88
450
150
450
349
150
88
349
88
450
450
349
cantidad fecha
1
2
1
3
2
1
2
1
1
1
2
1
06/05
10/23
03/16
03/16
03/16
08/20
07/28
08/09
06/28
05/16
05/24
05/24
42
La normalización de una tabla requiere satisfacer un conjunto especifico de
restricciones: formas normales
3.
PRIMERA FORMA NORMAL
Se dice que una tabla satisface la primera forma normal si pára cada atributo o
campo le corresponde un valor atómico.
La tabla anterior no satisface esta forma normal porque por ejemplo a C1 en el atributo
no_ producto, nom, p.u , cantidad tiene mas de un renglón
4 SEGUNDA FORMA NORMAL
Se establece cuando una tabla se satisface la forma normal y además los atributos no
primos tienen una dependencia funcional completa con respecto a la llave primaria
Atributo no primo. Son atributos que no forman parte de llaves candidatas.
De la tabla las llaves son no_ ctrol. y no_ prod todos los demás son atributos no primos.
Dependencia funcional. Se dice que un atributo x tiene dependencia funcional con
respecto a un atributo y si para cada valor de y existe un valor único de x.
Ejemplo
Y
x
No_ clientes 
nombre_ C (nombre depende funcionalmente del No_ Cliente)
No_ prod. 
nombre_ P (nombre prod depende funcionalmente del No_ prod)
No_ cliente 
estado
Edo.

cargo/ ent
No_ prod

precio unitario
No_ prod y No_ cte.
 cantidad
No_ prod y No_cte.
 fecha
No_ cliente y nombre  estado
No_ Prod y nombre

precio unitario
Nota: Cuando se tiene una dependencia completa el atributo del que se depende
funcionalmente se llama determinante.
Dependencia funcional completa:
Se dice que un atributo x tiene una dependencia funcional completa con respecto
a un atributo y si no existe añgún subconjunto de y que dependa x.
No_cliente y nombre  estado  no es una dependencia funcional completa,
porque
No_cliente  estado es un subconjunto de (faltan apuntes)
43
Diagrama de dependecias funcionales completas
Nombre
Nom_ prod
No_cliente
Precio_ unit
No_ producto
Estado
Cargo_ ent
Fecha
Cantidad
La segunda forma no se satisface porque solo fecha y cantidad son atributos no primos
que dependen de No_ cliente y No_ producto
Ordenes_ cliente ( No_ cliente, No_ producto, Fecha, Cantidad )
Producto ( No_ Producto, Nombre_ prod, Precio_ unitario)
Cliente ( No_ cliente, nombre_ estado, cargo_ entidad)
Atributo
No_ prod  precio unitario } dependencia completa
No_ prod, nomb_ prod  precio untitario
Hay un subconjunto de No_cliente del cual dependa cargo_ entidad: No entonces es
una dependencia funcional completa.
Diagrama de dependencia funcional aplicando la segunda forma normal
Ordenes
44
No_ clientes
Cantidad
No_ producto
Fecha
Producto
Cliente
precio_unit
No_ Producto
nombre
No_ cliente
Edo
nomb _ prod
Cargo_ ent
Las tablas después de aplicar la 2ª forma normal son los siguientes:
Ordenes
No_ clientes
C1
C1
C2
C2
C2
C3
C4
C4
C5
C5
C6
C6
No_ producto
P1
P3
P2
P3
P4
P2
P1
P4
P1
P3
P3
P4
Fecha
06/05
10/23
03/16
03/16
03/16
08/20
07/28
08/09
06/28
05/16
05/24
05/24
Cantidad
1
2
1
3
2
1
2
1
1
1
2
1
45
Producto
No_ producto
P1
P2
P3
P4
Precio_ Unit
Nomb_ prod
88
150
450
349
Floppy
Monitor
Hard disk
CPU
Clientes
No_ Cliente
Nombre
C1
C2
C3
C4
C5
C6
S. Sánchez
R. Rojas
B. Dilan
G. García
F. Flores
J. Jiménez
Edo.
Cargo_ ent
Texas
California
Nva. Jersey
Florida
Florida
California
6
8
6.5
5
5
8
Aplicación de la tercera forma normal..
La tercera forma normal se satisface si la segunda forma normal se cumple y
además
Las dependencias funcionales entre los atributos no primos y las llaves primarias no son
transitivas.
Dependencia transitiva.
Se dice que el atributo ‘x’ tiene una dependencia transitiva con respecto a un
atributo ‘y’, sí ‘x’ depende funcionalmente de ‘y’ y además depende funcionalmente de
otro atributo ’w’ al que a su vez depende funcionalmente de ‘y’
Factorizar las tablas para poder satisfacer la tercera forma normal.
Ordenes ( No_ Cliente, No_ producto, cantidad, fecha)
Producto ( No_ producto, Precio_ unit, nomb_ prod.)
Cliente (No_ cliente, nombre, edo)
Estado (edo, cargo_ ent)
Diagrama de dependencia para la tercera forma normal
Ordenes
No_ clientes
Cantidad
46
No_ producto
Fecha
Producto
Precio_ unit
No_producto
Nomb_ prod
Cliente
nombre
No_cliente
estado
Estado
estado
Cargo_ ent
Tablas después de aplicar la 1ª, 2ª y 3ª forma normal y son las tablas normalizadas
No_ clientes
C1
C1
C2
C2
C2
C3
C4
C4
C5
C5
C6
C6
No_ producto
P1
P3
P2
P3
P4
P2
P1
P4
P1
P3
P3
P4
Fecha
06/05
10/23
03/16
03/16
03/16
08/20
07/28
08/09
06/28
05/16
05/24
05/24
Cantidad
1
2
1
3
2
1
2
1
1
1
2
1
Producto
No_ producto
P1
P2
P3
P4
Precio_ Unit
88
150
450
349
Nomb_ prod
Floppy
Monitor
Hard disk
CPU
47
Clientes
No_ Cliente
C1
C2
C3
C4
C5
C6
Nombre
S. Sánchez
R. Rojas
B. Dilan
G. García
F. Flores
J. Jiménez
Edo.
Cargo_ ent
Texas
California
Nva. Jersey
Florida
Florida
California
6
8
6.5
5
5
8
Estado
Cargo_ent
6
8
6.5
5
5
8
Forma normal de Boyce Codd
Una tabla satisface la forma normal de boyce Codd es cuando todo lo que es
determinante se define como una llave candidata.
Ejemplo:
Nombre
No- Cliente
Estado
si nombre es determinante y si este es único se
Convierte en llave candidato y por lo tanto edo.
puede depender de nombre y No_ Prod,
No_ cliente
Ejemplo 2
Considere el siguiente diagrama de dependencias funcionales.
Ordenes
No_ clientes
Cantidad
No_ producto
Fecha
48
Ordenes (No_ cliente, Nombre, No_ producto, cantidad)
Se satisface la tercera forma normal.
La forma de Boyce Codd no se cumple debido a que No_cliente y nombre es la llave
candidato
Y en el dialogo no se considera así.
Factorizar:
Cliente (No_ cliente, nombre)
Si no_ cliente se elige como llave primaria entonces se usa:
Ordenes ( No_ Cliente, No_ producto, cantidad)
Si nombre se elige como llave primaria entonces se usa
Ordenes ( No_ producto, nombre, cantidad)
Diagrama de dependencia funcional aplicando la forma normal de Boyce Codd
Cliente
ordenes
No_ cliente
nombre
no_cliente
cantidad
No_ producto
Ejemplo 3
Considere la tabla empleados con los atributos E( estudiante). M (materia), P
(Profesor).
El significado de cada renglón de la tabla es que un estudiante determinado le enseña
una determinada materia el profesor indicado, se siguen las reglas semánticas:
 para cada materia a cada estudiante de la misma le enseña únicamente un profesor
 cada profesor enseña una materia (materia tienen dependencia de profesor)
 cada materia la enseñan varios profesores (profesor no tiene dependencia funcional
completa con respecto a materia)
tabla empleado
F
M
Salazar
Salazar
Jaramillo
Jaramillo
Matemáticas
Física
Matemáticas
Física
P
Blanco
González
Blanco
Pérez
49
a) Aplicando las reglas semánticas defina el diagrama de dependencias
funcionales
b) Determine si la relación satisface la tercera forma normal y la forma de B.C.
c) En caso necesario factorice tablas para que las formas normales sean
satisfechas
M
P
E
b) Satisface la tercera forma normal, no satisface la FNBC ( porque p es un
determinante y no es considerada como llave candidata)
c) Factorizar
Diagrama 1
Diagrama 2
E.M
P.M
E
P
M
M
Diagrama Elka
Atributo_ m
Atrib1, atrib2,…
1:1
1:n
Entidad
(Fuerte)
1:n
Ejemplo:
Representación
Entidades Fuertes
Clientes (No_ cliente, nombre, estado)
Producto ( No_ producto, nom_prod, precio_ unitario)
Cargos ( estados, cargo_ entidad)
Relaciones
1 : n
R1 ( Cargos, clientes)
Ordenes ( clientes, Producto, cant, fecha)
50
No prod
cantidad
nombre
producto
ordenes
clientes
fecha
No_ cliente
Nom prod
Prec unit
Estado
R1
cargos
estados
Cargo_ ent
Diagrama Elka.
Estado, cargo_ ent
cargo
(estado)
No_ cliente, nombre, est
cliente
(No_cliente)
No_ prod, nom_ prod, precio_unit
productos
(No_ producto)
51
No_ cliente, no_ prod, cant, fecha
ordenes
Definición de tablas
Cargos
Clientes
Estado Cargo_entidad
No_cliente Nombre Estado
Productos
No_ prod
nomb_ prod
Precio unit
Ordenes
No_ cliente
No_ producto
cantidad
fecha
Estas tablas satisfacen las formas de normalización por lo tanto están normalizadas
Ejemplo:
Modelo conceptual de la base de datos empleados.
Representación:
Entidades fuertes.
Empleado ( No_ empleado, nombre, RFC, depto, puesto)
Relación
Trabajo _ con ( No_ empjefe, No_ emptrab) n:n
Empleado
Puesto
No_ empjefe
Trabaja_con
No_emptrab
No_emp
nombre
RFC
Depto
Relación fuerte
No_empl, nombre, rfc, depto, puesto
empleado
(no_emp)
No_empjefe, no_emptrab
Trabaja con
52
Ejemplo:
Entidades fuertes
Depto (cve_ Depto, desc)
Alumnos (No_ control, nombre, semestre)
Maestros (cve_ maestro, nombre)
Materias ( cve_ mat, nombre, ht, Hp, no_cred)
Especialidad (cve_esp, descrip)
Entidades debiles
Grupo (No-grupo, horario, salón)
Relaciones
R1 (maestros, grupos)
R2 (materias, grupos)
R3 (especialidad, alumno)
R4 (depto, materias)
Lista (grupos, alumnos)
Diagrama entidad relación
7
8
1
9
1
1
10
2
R1
1
2
1
3
1
4
1
5
3
R2
1
6
lista
R4
4
1
7
1
8
1.
2.
3.
4.
5.
5
R3
Maestros
Grupos
Materias
Especialidad
Alumno
1
9
11. Salón
12. Cve_ mat
13. Nombre
14. HT
15. HP
2
0
6
2
1
2
2
2
3
21. semestre
22.Cve_ depto
23. desc
53
6. Departamento
7. Cve_ maestro
8. Nombre
9. No_ grupo
10. Horario
Diagrama elka
Cve_ maestro,
nombre
16. No_cred
17. Cve_ esp
18. Descrip
19. No_ ctrol
20. Nombre
Cve_mat, No_grupo
Salón, Cve_maestro
1
maestro
Grupos
2
Cve_mat, nombre,HT
HP,
No_cred,
cve_depto
materia
3
Cve_mat, No_grupo,
No_ crtrol
5
lista
4
Cve_maestro, nombre
6
especialidad
No_ctrol, nombre,
Semestre, Cve_ esp
Cve_depto, Desc
alumno
depto
1. Clave _ maestro
2. Clave _ materia
3. Clave _ materia, Número _ grupo
4. Número de control
5. Clave departamento
6. Clave especialidad
Definición de las tablas
Maestro
Materia
Cve_ maestro nombre
Cve_materia nombre Ht
HP No_ cred
Cve_ depto
Grupos
Cve_ mat
No_ grupo horario salón Cve_ maestro
Departamento
Alumno
54
Cve_ depto
Desc
No_ ctrol
Especialidad
Cve_ esp
nombre semestre cve_esp
lista
Descripción
Cve_ mat
No_ grupo
No_ control
Ejemplo 3
Representación general
Entidades fuertes
Inquilino ( rfc, nombre, ref_cor, ref_per)
Depto
(cve_depto, costo_ depto)
Estacionamiento ( cve_ est)
Bienes (código, descripción)
Pago
(cve_pago, descripción, pago)
Relaciones
R1 (inquilino, depto)
R2 (Depto, estacionamiento)
R3 (Depto, pago)
D_B ( Depto, bienes, cantidad)
Diagrama entidad relación
8
9
1
0
7
6
1
2
R1
1
2
1
1
DB
1
3
3
R2
R3
5
4
1
4
1.
2.
3.
4.
5.
Inquilino
Departamento
Estacionamiento
Bienes
Pago
1
5
1
6
11.
12.
13.
14.
15.
1
7
Refer_ cor
Refer_ per
Cantidad
Código
Descripción
55
6. RFC
7. Nombre
8. Cve_ depto
9. Costo_ depto
10. Cve_ est
Diagrama Elka
16. Cve_ pago
17. Descrip_ pago
rfc, nombre, refer_ cor
refer_ per
RFC
inquilino
Cve_ dpto, costo_depto clave
depto
rfc
Cve_est, cve_depto
depto
estación
Cve_ depto
Cve_ dpto, código
cantidad
Cve_pago,
descrip_pago, cve_dpto
D_B
pago
código
Código, descripción
bienes
Definición de tablas
Inquilino
RFC
Departamento
Nombre
Refer_ cor
Refer_ per
Cve_ depto
Estacionamiento
Cve_est
RFC
Pago
cve_depto
cve_pago descrip_ pago
D_ B
cve_ depto
Costo_ dpto
cve_ depto
Bienes
código
cantidad
código
descripción
56
MODELO DE REDES
Se define como una serie de registros entre los cuales se establece una liga, suo
organización se establece como una gráfica arbitraría.
El modelo CODASYL DBTG (Data Base Group, grupo de trabajo sobre una base de
datos)
Fue desarrollada a finales de los 60’s como un modelo estándar de redes por un grupo
de trabajo de programadores, las ultimas modificaciones a este modelo se hicierón en el
año 1978.
Arquitectura del modelo DBTG.
Aplicación A1 aplicación A2
aplicación B1 aplicación B2
aplicación B3
Leng anf
+
DML
Leng anf
+
DML
Leng anf
+
DML
Leng anf
+
DML
Leng anf
+
DML
ATU
ATU
ATU
ATU
ATU
Subesquema
A
Subesquema
B
DBMS
Construida y
Mantenida
el admón.
De datos
Esquema
esquema
de almacenamiento
Se definen subesquema (programas) que dan soporte a las aplicaciones ( los
subesquemas son parte de la base de datos formada por prog.)
Esquema: representa el esquema lógico total de la B.D.
: representa el esquema físico
DBMS: el que maneja todo el esquema.
57
Conjuntos DBTG:
Es la liga que se establece entre los dos registros, un registro propietario y un
registro miembro. Ejemplo.
Diagrama 0 de Bachman
registro
propietario
f
registro
Se debe buscar la forma de
establecer relaciones 1:n
siempre que hay conjuntos
Pro-miembro
n
registro
miembro
Construcción de conjuntos DBTG
Ejemplos jerárquicos.
La relación en los modelos jerárquicos es de hecho 1:n, representandose con las
siguientes alternativas:
1) Jerarquía con un nivel dependiente.
Se presenta cuando cumple la regla:
Un registro miembro solo puede participar en una concurrencia de un tipo de
conjunto DBTG.
Ejemplo:
Departamento
Jerarquía de un nivel
Si hay otra concurrencia
Del tipo D-E la s reglas E-1
y E-2 no pueden participar
Cada regla miembro solo puede
aparecer en una concurrencia
D1
D-E
Empleado
E-1
E-2
Jerarquía con mas de un nivel dependiente .
Un registro miembro puede participar simultaneamente en varias concurrencias
de diferentes tipos de conjuntos de DBTG.
D1
D-E
E-1
E-2
58
D-E
E1
D-E
E1
E1
E1
3) Jerarquía con mas de un tipo de registro con un nivel dependiente.
Un tipo de registro dado puede ser propietario de cualquier número de tipos de
conjuntos DBTG.
D1
D-E
D-E
E-1
E-1
E-2
E-2
Diagrama de Bochman
P
P-M
P-S
M
S
Clase de pertenencia en un conjunto DBTG
Inserción de registros de miembros al conjunto DBTG:
* Inserción manual << Connect >>
Clases de
Pertenencia
* Inserción automatica
Al generar el registro miembro se conecta al conjunto
Perteneciente.
Relación de registros miembros en la ocurrencia del
Conjunto DBTG .
* Fija << Fixed >>
* Obligatoria << Mandatory >>
* Opcional << Optional>>
59
Retención fija: El registro miembro pertenece a una ocurrencia única determinada de
un tipo de conjunto.
Retención obligatoria: El registro miembro puede pertenecer a cualquiera ocurrencia
de un tipo de conjunto DBTG.
Retención opcional: el registro miembro puede conectarse, desconectarse,
reconectarse o cualquier tipo de conjuntos en cualquier ocurrencia.
Ejemplos:
Registros
Nombre
Cuenta habiente
dirección
cd.
propietario
Cta hab cta
Número
miembro
saldo
Suc Cta
Nombre
Juan perez
saldo
Obregon 6
edo
propietario
cortazar
Cta hab cta
364
500
565
0
Suc Cta
Centro
565
99999
Número
Cuenta
0
Centro
Saldo
Move 565 to numero in cuenta
Move 0 to saldo in cuenta
Move centro to nombre in suc
Find only in sucursal using nombre
In sucursal
nombre
Sucursal
Juan
Pérez
Gto.
nombre
store cuenta
Move Juan Pérez to nombre in
Cuenta habiente
60
Cuenta habiente
Find only cuenta habiente using
Nombre in cuenta habiente.
Connect cuenta
Operación de inserción
Connect reg_ miembro to tipo_ com
Otras operaciones Reconnect
Disconnect
Reconnect: desconecta un registro miembro a la ocurrencia de un tipo de conjunto y lo
inserta en la otra ocurrencia del mismo tipo de conjunto.
Disconnect: elimina un registro miembro de la ocurrencia de un conjunto DBTG.
Insertion
Automatic
Manual
Retention
Fixed
no permite nada
Connect
Mandatory
Reconnect
Connect
Reconnect
Optional
Disconnect
Reconnect
Connect
Disconnet
Reconnect
Formas de seleccionar ocurrencias de un tipo de conjunto DBTG.
Hay tres formas de seleccionar la ocurrencia de un tipo de conjunto DBTG, a saber:
1. por aplicación
2. por valor
3. Estructurada
La forma elegida se define a través de una cláusula.
Ejemplo:
S
no_s
nombre
cd
Edo.
S_ SP
SP
No_s
Una ocurrencia
No_p
cantid
SS Juan Pérez
Celaya
Gto
Seleccionar la ocurrencia P1
61
S_ SP
S5
P3 750
S5
P2 300
Definir cláusula para selección de ocurrencia.
1) Set selection is by application
R
Insertar en la ocurrencia
DBTG del conjunto S_SP
S5
P6
700
Move ‘SS’ to no_s in sp
Move ‘P6’ to no_p in sp
Move ‘700’ to cant in sp
Move ‘S5’ to No_S in S
 localizar reg. Prop. Por su k
Find any S using No_s in S  buscar en el registro prop. En el com. De reg.
Store SP
singulares S
2) Set Selecction is by value of No_S in S
R
** move ‘S5’ to No_ S in S
Store SP.
3) Set selección is by estructural of No_s in SP = No_s in S
R
Store SP
Ordenamiento de los registros miembros en un conjunto DBTG.
Order is [ First / last/ prior/ next / sorted ]
1. Cuando no se especifica la cláusula order is, el registro miembro se inserta a la
ocurrencia especifica de un conjunto de manera arbitraria definida por le sistema.
2. Si se elige la opción first el sistema insertara el registro miembro al inicio.
3. Si se elige la opción last el registro miembro será insertado al final de los registros
existentes.
4. Si se elige la opción prior el registro miembro será insertado antes del actual de la
unidad de ejecución.
5. Si se elige la opción next el registro miembro será insertado después del actual de la
unidad de ejecución.
6. Si se elige la opción sorted, en el caso de los conjuntos que se han clasificado de
acuerdo a una llave definida, el registro miembro se insertara respetando dicha
clasificación
62
Resumen
Jerarquica (1:n)
Construcción
find …p
Red ( n:n)
Manual
connect mto c
Insertion is
Find ..d
Pertenencia
automatic
Store m
Fixed
Relation is mandatory (reconnect )
Optional ( reconnect, disconnect,
Connect )
Conjuntos
DBTG
propietario
Aplicación
Conjunto
Selección
Miembro
set selection value of <campo> in <p>
is by
Estructural <campo> in
<m> = <campo> in <P>
Ordenamiento
Conjuntos DBTG
Singulares
por omisión
first
last
order is next
prior
sorted
agrupan un tipo de registro
63
Ejemplo aplicación:
1. Shem name is proveedores y partes
2. .
3. record name is S
4. duplicates are not allowed for nors in S
5. .
6. Nors; type is character 5
7. Nors; type is character 20
8. Estatus; type is fixed decimal 3
9. Ciudad; type is character 15
10. .
11. Record name is P
12. Duplicates are not allowed for Nrop in P
13. .
14. Nrop; type is character 6
15. Nompar; type is character 20
16. Color, type is character 6
17. Peso; type fixed decimal 4, default is –1
18. Ciudad; type is character 15
19. .
20. record name is p
21. duplicates are not allowed for nors in sp, Norp in Sp
22. .
23. Nrop; type is character 5
24. Nrop; type is character 6
25. Ctp; type is fixed decimal 5
26. .
27. set name is S_SP
28. _ owner is S
29. _ order is sorted by defined keys duplicates are not allowed
30.
31. ._ member is SP
32. _ insertion is automatic
33. _ retention is fixed
34. _ key is ascending Nrop is SP
35. _ set selctión is by value of Nros in 6
36. .
37. set name is P_ sp
38. _ ower is p
39. order is sorted by defined key duplicates are not allowed
40. .
41. menber is SP
42. _ insertion is automatic
43. _ retention is fixed
44. key is ascending.. Nrop in SP
45. set selection is by value of Nrop in P
64
Nros
noms estatus
ciudad
S.SP
Rp:S
r.m: sp
Insertion
retencion
seleccion
llaves
ordenamiento
Nros Nrop ctd
P_PS
Nrop Nom p color peso cd
Indicadores de posición actual
Manejo de datos
DBTG (DML)
manejo de excepciones
Proposiciones de manejo de datos
Indicadores de posición actual.
Los indicadores de posición actual para una unidad se ejecución dada identifica
la ocurrencia de registro accesado mas recientemente por la unidad de ejecución para
los registros singulares, para los registros actuales correspondientes a la ocurrencia de
cada tipo de conjuntos y para la región definida por todos los registros singulares que es
considerada por la unidad de ejecución. Ejemplo:
S4
S
Jiménez 20 X
S_SP
SP
S4
P2
500
S4
P8
700
P_SP
65
P
P2 Perno Azul
Move s4 to Nros in S
Find any S using Nros in S
Find Firs Sp With in S_SP
Find owner SP With in P_SP
17
2
encontramos el renglón S como prop.
encontrar el 1er registro miembro
encontrar propietario de SP
Actual de la unidad de ejecución P_P2
Ocurrencia del registro S actual S_S4
Ocurrencia del registro SP actual SP_S4_P2
Ocurrencia del registro P actual P_P2
Ocurrencia del registro S_SP actual S_SP_P4
Ocurrencia del registro D_SP actual P_SP_P2
Registro actual de S_SP SP_S1,P2
Registro actual P_SP P_P2
Ocurrencia actual de la región S,SP,P P_P2
Manejo de excepciones
Dentro del modelo de redes codasyl DBTG el manejo de excepciones hace uso
de un registro especial llamado estado, al cual se le asigna el valor de cero si las
instrucciones se han ejecutado correctamente, en caso contrario el valor asignado es
diferente de cero y es dependiente del tipo de error. Para determinar el tipo de error es
necesario hacer referencia al manual de este sistema.
Proposiciones de manejo de datos:
GET (recuperar)
registros
Campos de registros
STORE ( almacenar)  en ocurrencias especificas de conjuntos DBTG
ERASE ( eliminación de registros)
MODIFY(cambios en registros existentes )
FIND (encontrar un archivo determinado)
CONNECT ( colocar un registro en una ocurrencia determinada de un conjunto DBTG)
DISCONNECT (
RECONNECT (
GET ( esta proposición recupera el actual de la unidad de ejecución)
Ejemplo determine toda la información del registro para el proveedor S4
Move ‘S4’ to Nro_s in S
66
Find any S using nro_S in S
Get S  recupera toda la información del registro sing S y lo pone en la RAM
Recupere solamente la información del nombre del proveedor y el número que le
corresponda.
Move ‘S4’ to Nro_ S in S
Find any S using Nro_S in S
Get nom_S in S
Nro_S in S.
STORE ( crea una nueva ocurrencia de registro y lo establece como actual en la unidad
de ejecución)
ejemplo: Crear la ocurrencia de SP: S5 / P6 / 700 y almacenar en los conjuntos S_SP y
P_PS considere una inserción automática.
Ocurrencia del registro S Actual S_S4
S5
P6
700
Move ‘S5’ to Nro_S in SP
Move ‘P6’ to Nro_P in SP
Move ‘700’ to cant in SP
Move ‘ S5’ to Nro_S in S
Find any S using Nro_S in S
Move ‘ P6’ to Nro_P in p
Find any P using Nro_P in P
Store SP
ERASE [ ALL]
Suprime el actual de la unidad de ejecución, suprime además del actual, todos
los registros miembros relacionados con el actual de ejecución.
Retention is optional. Suprime el registro, desconectándose todos
Los miembros del conjunto del cual es dueño;
Sin embargo estos registros pertenecen en la base
Datos
Sensibiliza
All
Retention is fixed . en este caso el registro y los registros
Miembros son eliminados de la D. B.
Retention is mandatory. Erase falla, el registro no puede
Eliminarse.
Ejemplo suprima la ocurrencia de S en P/ el proveedor S4
Move ‘ S4’ to Nro_S in S
Find any S using Nro_S in S
Erase S
MODIFY ( actualiza la unidad de ejecución)
67
Ejemplo adicione 10 al estado de proveedor S4
Move ‘S4’ to Nro-S in S
Find any S using Nro_S in S
Get S
Add 10 to edo in S
Modify S
CONNECT ( conecta el actual de la unidad de ejecución a una ocurrencia especifica
De un conjunto DBTG)
Ejemplo. Conecte la ocurrencia de S para el proveedor S4 a la ocurrencia del conjunto
X poseída por la ocurrencias x de X
X
x
conjunto
S4
Move ‘x’ to Nro_x in X
Find any X using Nro_x in x
Move ‘S4’ to Nro_S in S
Find any S using Nro_S in S
Connect S to Conjunto X
DISCONNECT ( desconecta el actual de ejecución de una ocurrencia DTBG)
Ejemplo: Desconecte la ocurrencia de S pa ra S4 de la ocurrencia del conjunto X que la
contiene.
Move ‘x’ to Nro_ x in X
Find any X using Nro-x in X
Move ‘S4’ to Nro_S in S
Find any S using Nro_S in s
Disconnect S from conjunto x
RECONNECT ( desconecta el actual de la unidad de ejecución de una ocurrencia
DBTG y lo conecta a otra del mismo tipo DBTG )
Ejemplo:
Desconecte la ocurrencia de s de la ocurrencia del conjunto_ x que la contiene (y) y
conéctela a la ocurrencia del conjunto x poseída por la ocurrencia de x de X
X
Y
Conjuto x
S4
X
X
Conjuto_x
S4
68
S
S
Move ‘x’ to Nro_x in X
Find any X using Nro_x in X
Move ‘S4’ to Nro_S in S
Find any S using Nro_S in S
Reconnect S with in conjunto_x
FIND ( localiza una ocurrencia de registro existente y lo establece como el actual en la
unidad de ejecución. )
A) Formato 1. Acceso dentro de un tipo de registro.
Ejemplo. Hallar todas las ocurrencias del registro S en los que el valor de ciudad =
Londres.
Move ‘ Londres ‘ to ciudad in S
Find any S using ciudad in S
Move ‘no’ to No_encontrate
Perform until No_encontrate = ‘Si’
Get S
_______
_______
Find duplicate using ciudad in S
End perform.
B) Formato 2 acceso al propietario
Ejemplo. Supóngase que el registro actual del conjunto P_SP es una ocurrencia
particular de SP, halle la correspondiente ocurrencia de P
P_ SP
Find owner with in P_SP
C) formato 3 acceso secuencial dentro de un conjunto o renglón
Ejemplo. Halle los valores de nom_ parte para las partes suministradas por el
proveedor S4
S4
S_ SP
69
S4Nro_s
No_P
Move ‘S4’ to
in SCant
P5 in S 70
Find any S using Nros
Move ‘no’ to no- encontrado = ‘si’
Find first SP with in S_SP
Perform until no-encontrado = ‘si’
Get SP
‘ adicionar una lista de números de partes ‘
Find next SP within in S S-SP
End perform
d) Formato 6. Acceso secuencial dentro de un conjunto DBTG.
Ejemplo. Halle la cantidad de la parte P5 suministrada por el proveedor S1.
Move ‘si’ to Nro_s in S
Find any S Nro_S in S
Move ‘PS’ to num_P in SP
Find SP within S_SP current usingnum_P in SP
Get Sp
------- { imprima la cantidad del registro SP
------S1
S1 P3 70
S1
P5
80
e) Formato 2
Acceso secuencial dentro de un conjunto DBTG.
Ejemplo: Halle todas las remesas para el proveedor S1 donde la cantidad sea 100
Move ‘S1’ to Nro_S in S
Find any S using Nro_S in S
Move ‘100’ to cant in SP
Find SP within S-SP current using cant in SP
Move ‘ no’ to no-encontrada
Perform until no-encontrada = ‘si’
Get SP
====== { obrener las remesas }
Find duplicate SP within S_SP using cant in SP
End perform
F) Formato 4
Uso de lista de guarda.
Find first / last within nombre de la lista de guarda
70
Lista de guarda. Es un objeto con nombre cuya función es guardar una lista ordenada
de valores de llave BD; no forman parte de la BD, son locales para la unidad de
ejecución que los usa.
Ejemplo.
Data división
DB proveedores within proveedores y partes
LD listaA limit is 15
Ld listaB limit is 20
===
===
Move ‘París’ to ciudad in S
Move zero to M
Move ‘no’ to no encontrado
Find any S using ciudad in S
Perform until no encontrado =‘si’
KEEP USING listaA
If estado in S > M
Move estado in S to M
End if
Find duplicate S using ciudad in S
End perform
Move M to estado in S
Move ‘no’ to listaA_vacio
Perform until listaA_vacia ‘si’
Find first within listaA
Free first within listaA
Modify estado in S
End_perform
Los valores de la llave DB. Se añaden a una lista de guarda por medio de la proposición
keep y se suprime por medio de la proposición free.
G) Uso de la cláusula de retención. ( Retaining)
El efecto de esta cláusula es evitar la actualización del indicador de posición
actual para el conjunto DBTG implicado.
Ejemplo. Para cada proveedor que suministre la parte P4, halle otra parte suministrada
por el mismo proveedor e imprima el número de proveedor, el nombre del proveedor y
el número de la parte (se considera que por proveedor solo existe una parte
diferente a P4)
Move ‘P4’ to Nro_P in P
Find any P using Nro_P in P
Move ‘no’ to no_mas
Perform until no-mas = ‘si’
11
Find next SP within S-SP
If no-mas not = ‘si’
Get S
71
Move ‘no’ to encontrado
Perform until encontrado = ‘si’
Find next SP within S_SP
Retaining P_SP currency
Get SP
If Nro_A in SP not = ‘P4’
Move ‘si’ to encontrado
End if
End perform.
(imprime Nro_S in S, nom S in S, Nomp in SP)
end if
End perform.
Cuando se ejecuta el find en la línea 11 se establece una ocurrencia de SP como la
actual de la unidad de ejecución. Esta ocurrencia, que es la ocurrencia de SP mas
recientemente accesada, también se convierte en el renglón actual de todos los
conjuntos DTBG en los que participa, incluyendo en particular el conjunto DBTG P_SP
Esto a su vez hace ocurrencia actual P_SP sea la que contiene esta concurrencia de SP.
De esta manera cuando se ejecuta el find en la línea 5 en la siguiente iteración del ciclo
exterior ( como un intento por hallar el siguiente proveedor de P4), la ocurrencia de
P__SP referida en esa proposición ya no será poseída por P 4. Para evitar esta situación,
el find de la linea 11 debe ampliarse con la incursión de una frase de retención
Retaining.
Modelo de datos jerárquico
Consiste en un conjunto de registros que se conectan entre si por medio de ligas.
Un registro es un conjunto de campos (atributos), c/u de los cuales contiene un solo
valor. El modelo jerárquico difiere del de red en cuanto a que los registros se organizan
para formar conjuntos de árboles, en vez de gráficas arbitrarias. El contenido de un
registro especifico puede repetirse en varios lugares, esta repetición puede darse tanto
en el mismo árbol como en árboles distintos. La repetición de registro tiene dos
desventajas principales:
a) Puede producirse una inconsistencia de los datos
b) Será inevitable el desperdicio de espacio
Diagrama de estructura de arbol
Especifica la estructura lógica general de la base de datos, se caracteriza por:
a) no tiene ciclos
b) las relaciones entre padre e hijo solo pueden ser 1:n o 1:1.
Ejemplo de un diagrama entidad relación y su correspondiente diagrama de estructura
de árbol.
72
CUENTA HABIENTE
NOMBRE
CUENTA
CTAHABCT
A
CD
NÚMERO
SALDO
CALLE
UENTA HABIENTE
CUENTA
NOMBRE
NÚMERO
CALLE
CD
SALDO
El esquema de la base de datos representa un conjunto de diagrama de árbol. Por cada
uno de estos diagramas, existe una sola instancia del árbol de B.D. la raíz de este árbol
es un nodo de trabajo. Los hijos de ese nodo son instancias reales de tipo registro, según
se especifique en el dialogo de estructura de árbol correspondiente.
Ejemplo.
73
CUENTA HABIENTE
BECK MAPLE SN.FCO
KATE NORTH SN.JOSE
DONE
S.HILL
P.ALTO
CUENTA
200 55
256 100000
347 667
301
10503
74
Descargar