base de datos i - hosting miarrobapacoglez.webcindario.com/bddatos i.doc · web viewbase de datos i...
TRANSCRIPT
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 datos1.2 Objetivos de los sistemas de base de datos1.3 Arquitectura de los sistemas de base de datos1.4 Independencia de los datos1.5 Responsabilidades del administrador de una base de datos
2. CLASIFICACIÓN DE LOS MODELOS DE DATOS
3. MODELO, ENTIDAD, RELACION3.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ÓN5.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 JERARQUICO6.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. DateAddison – WesleyEd. 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 Lenguaje de manipulación de datos (DML) permite manejar losLa B.D. (DSL) datos a traves de una serie de consultas. Acceso Datos en forma
rápida. Se puede usar este lenguaje o por lenguajes anfitriones.
NIVEL EXTERNO
4
LA1DSL
LA2DSL
VISTA EXTERNA A
ESQUEMA EXTERNO A
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 Basados en objetos
De los datos en los niveles externo y conceptual. Basados
( son muy usados.) en registros. Modelos
De Físicos: descripción de los datos en el nivel interno. Datos 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. NombreDirecciónNo. Ch
Cuenta 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
Cuenta habiente
Modelo RelacionalDescribe los datos y las relaciones de los mismos a través de tablas
CLIENTE PRODUCTOS
Modelo de redesEn 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 jerarquicoLos 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
Registro padre
Relación 1:n
Registro hijo
III MODELO ENTIDAD - RELACIÓN
8
Cliente objetoexistente
ObjetoExistente
RELACIÖN
Nom # Edo Nom. # $
Tabla queRelaciona Las 2 tablas
Cliente
Producto
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
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 atributos324
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. 324Compra : fecha de realización unidades compradas
Atributos descriptivos.
9
clientesEdos. de la rep.
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
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
Productos -> clientes 1: N
un cliente solo puede comprarun tipo de producto, pero unproducto puede ser vendido a muchos clientes.
10
A1
A2
B1
B2
A1
A2
A3
B1
B2
B3
c) Muchos a UnoSe 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.
Producto clienteN:1
Un cliente solo puede comprar variosTipo de producto, pero un tipo de producto puede ser vendido a un clientes.
d) Muchos a MuchosSe 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.
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
Dominante 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.
LlavesSuper llave. Es un conjunto de atributos que permiten diferenciar las entidades
dentro de un conjunto de entidadesEjemplo:
11
A1
A2
A3
A4
B1
B2
B3
A1A2A3A4A5
B1B2B3B4B5
123
$$$
XYV
Cuenta_no saldo Tran_no trans_tipo importe
En el conjunto de entidades CUENTA
{ Cuenta_no, saldo } -> super llave
{ Cuenta_no } super llave.El saldo no puede ser super llave por que por casualidad varios clientes pueden tener elMismo 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: cuentaDé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 Transacciones
Llave primaria: no.cuenta no_trans.Ejemplo 2030 1 Identifica que elementos de trans.
12
C.no saldo
Cuenta_no saldo
2030
Trans_no trans_tipo importe
1 x2 y3 x1 x2 x
Se asocia con cuentas. Trans_no. Trans_tipo. Importe 1 x $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.
M M
M
1. clien_es2. precio. Prod
13
productos ordenes
clientes
Cve_prod Nombre_prod fechaNo_cliente
Nombrecliente
estado
1
2
cantidades dirección
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.
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
t trabajador
Llaves: (con respecto a la relación)Primarias: Cve_emp-jefe
Cve_emp_trabajador
14
Cuenta_habiente operación
transacciones
NombreNo-cta Fecha Tipo-trans. No-trans.
=======
Importesaldo
PERSONAL Trabaja con
Cve_emp
R.F.C.
Nombre Puesto Depto
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, ....RnRelación N:N con las primeras letras da las entidades.
Falta diagrama
Entidades FuertesInquilinos (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 proyectos2. El formato que se considera es:
Presupuesto por proyectoCve. 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 % Participación presupuesto Cve puesto sueldo
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)
1. cve depto 11. Pro_con2. nombre 12. Por_part3. Cve_proy 13. Cve_concep4. Nombre 14. R25. Descripción 15. R36. Cve_empr 16. Desc_conc7. Nombre 17. Cve_puesto8. R1 18. Sueldo 9. Pro-emp 19. Desc_puesto10. Cantidades 20. R4
17
deptos8
proyectos9
empleados
puestos
15
14
20
1
2
3 4 5
conceptos
11
10
13
16
12
6 7
17
1918
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éfonoPara 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
1. Dirección 13. Hr_recibido2. Tel 14. Emp_apar3. Nombre 15. Hr_entrega4. No_cliente 16. Fecha_ent5. Fecha_ent 17. Cve_equipo6. Fecha_sal 18. Fecha_reg7. Cantidad 19. Cve_emp8. Cve_aparato 20. Nombre9. Descripción 21. Dirección10. Apar_ref 22. Fecha_ent11. Descripción 23. Cve_mesa12. Cve_ref 24. Fecha_recib
19
CLIENTES APARATO REFACCIONES
EQUIPOEMPLEADOS MESA_TRABAJO
R1
R3
10
14
R2
2
1
3 4
5 6
8 911
12
7
13
15
16 1
7
18
24
23
22
21
20
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.
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
20
EJ
EMP
ENLACE
EMP X
E1 E2
EMP 4
ENLACE
EMP X
E12 E13
LLAVE E
E2 E1
LLAVE E1 E2
E
II. Conjunto de entidades débiles
D
III Conjunto de relaciones
a) Cualquier caso.
R
b) cuando se relacionan con si misma
papel-1
papel-2
Reducción a tablas del ejercicio 3
Clientes Refacciones
Aparatos Equipo
21
F D
CLAVE F
D2 D1
DIS
LLAVE F DIS D1 D2
E1 E2R
LLAVE-E1
R1
R2
LLAVE- E2
R2LLAVE-E1
LLAVE- E2
R1
E RE
LLAVE_E LLAVE_E R2 PAPEL_1 PAPEL_2
NO_CLIENTE NOMBRE DIRECCION TEL CVE_REF DESCRIPCIÓN
CVE-APARATO DESCRIP FECHA-ENT FECHA-SAL CVE_MESA FECHA-ENT FECHA-RECIBO
Empleados mesa – trabajo
R1 R2
R3 Apar-ref
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 tipoRelaciónClienteTablaClienteArchivo reg 0 tupla 0 reg1 tupla 1 reg 2 tupla2Cliente
Dominio : El dominio de un atributo son todos los valores posibles que pueden tomar dichos atributosEjemplo: 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
CVE_EMP NOMBRE DIRECCION CVE_MESA FECHA-ENT FECHA-RECIB
NO-CLIENTE CVE-APARATO CVE-EMP CVE-EQUIPO
CVE-EMP CVE-MESA CVE-APARATO CVE-REF CANTIDAD
No nombre edo Cliente
No nombre edocliente
No nnombre edocliente
{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 nuloSi 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-clienteA 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 R2 cargoNo-cliente nombre estado estado cargo-entC01 Juan P Gro V 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 proveedor
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 causac) Es el atributo ciudad llave foránea de las dos relaciones? No, misma causad) 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 – RFue 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
No. Parte Nombre color peso ciudad No-prov. Nombre edo ciudad
Arquitectura del SYSTEM- R
Usuario structured query languaje.
Nivel - Lenguaje estructurado de consultas Externo
Nivel Conceptual
Nivel Interno
Leng. De definición de Esq. Ext definiciónDatos (DDL ). De vistas
Esq. Conc. Defif de Las tablas de base
SQL Sub lenguaje Esq. Int. def. de los Indices de los archivos
Leng. De manipulación de datos(DML)- Esquema externo Aplicación
consulta interactiva (UFI)
Ambiente de programación SQL inmerso es mezclar
- Esquema conceptual 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
SQL
VISTA A VISTA B
TABLA DE BASE B1
TABLA DE BASE B2
TABLA DE BASE B3
TABLA DE BASE B4
ARCHIVO ALMACENDO A1
ARCHIVO ALMACENDO A2
ARCHIVO ALMACENDO A3
ARCHIVO ALMACENDO A4
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 BNo- cliente Nombre Estado No-cliente Nombre EstadoC01 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 Juan Pérez Gto. C02 Luis Glez. Gto. C03 Sofía López Ags.
Intersección de relaciones. Cliente A intersección Cliente _B
No_cliente 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 estado
C02 Luis Glez Qro.
Cliente_B menos Cliente_A
No_cliente nombre estado
C03 Sofía López Ags.
Producto cartesianoEs 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 relación ANo_cliente nombre estado No_cliente No_compra cuenta C01 Juan Pérez Gto C01 P1 20C02 Luis Glez Qro C01 P2 18
C03 P1 12 Grado 3 Cardinalidad = 2 Grado = 3
Cardinalidad = 3Estas tablas no son compatibles:
Cliente_A veces Relación_A
No_cliente nombre estado No_cliente No_compra cuenta C01 Juan Pérez Gto C01 P1 20 C01 Juan Pérez Gto C01 P2 18 C01 Juan Pérez Gto C03 P1 12C02 Luis Glez Qro C01 P1 20 C02 Luis Glez Qro C01 P2 18C02 Luis Glez Qro C03 P1 12
Cardinalidad = 2 x 3 = 6Grado = 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_ANo_cliente nombre estado No_compra cuenta C01 Juan Pérez Gto P1 20 C01 Juan Pérez Gto P2 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 donde (No_cliente = C01)No_cliente No_compra Cantidad C01 P1 20 C01 P2 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 R_B A B Ba1 b1a1 b2 b1 ejemplo 1a1 b3 R_A divide R_Ba1 b4 resultadoa2 b1 Aa2 b2
28
a3 b1 a1 a3 b2 a2a4 b2 a3ejemplo 2 R_A divide R_B
R_A R_B A B Ba1 b1a1 b2 b1a1 b3 a1 b4 b2a2 b1 Aa2 b2a3 b4 a1 a3 b3 a2a4 b2
Ejemplo 3.Si R_B A
B a1 b4 a3
ejemplo 4
R_ A R_B resultado
A B C B C A
a1 b1 b4 c1 a1a1 b2a1 b3a1 b4 c1
Ejercicios :
Sean las siguientes tablas
Clientes Cargos
No-clientes nombre Edo. Edo. Cargo_ent
C1 Sánchez. Gto. Gto. 6 C2 Flores Mich Mich 8 C3 Rojas Gto Qro. 10 C4 Pérez Qro. Jal. 7
29
x
C5 Robles Jal. Mex. 65
Ordenes Productos
NC N.P Cant NP Nom_P color precio_u
C1 P1 2 P1 floppy rojo 100C1 P2 3 P2 monitor verde 400C2 P2 4 P3 CPU rojo 250C2 P3 1 P4 D.duro azul 300C3 P1 3 P5 Fuente amarillo 60C3 P2 1C3 P3 4C3 P4 2C3 P5 1C4 P1 1C4 P3 3
30
x
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 100P3 CPU rojo 250
Ordenes Reunión Productos donde (color = ‘rojo’) C1 P1 2 Floppy rojo 100C3 P1 3 Floppy rojo 100 C4 P1 1 Floppy rojo 100C2 P3 1 CPU rojo 250C3 P3 4 CPU rojo 250C4 P3 3 CPU rojo 250
Clientes reunión ordenes reunión productos donde (color = ‘rojo’)
Sánchez Gto. C1 P1 2 Floppy rojo 100Rojas Gto. C3Pérez Qro. C1Flores Mich C2 Rojas Gto. C3Pérez Qro. C4
(clientes reunión ordenes reunión productos donde (color =’rojo’))[nombre]
SánchezRojas...
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 que compraron (Clientes donde nombre = ’Sánchez’) algunos de los productos que [No_cliente] A[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 Nombre Edo. Cargo_ ent. C1 Sánchez Gto. 6 C2 Flores Mich 8 C3 Rojas Gto 6 C4 Pérez Qro. 10 C5 Robles Jal. 7
b) Clientes veces Cargo No_cliente Nombre Edo. Edo. Cargo_ ent. C1 Sánchez Gto. Gto. 6 C2 Flores Mich Mich. 8 C3 Rojas Gto Gto. 6 C4 Pérez Qro. Qro. 10 C5 Robles Jal. Jal. 7
Clientes reunión 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ónClientes Alias xClientes 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 nombre Edo. C1 Sánchez 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 S = Número, edo.From S Where Ciudad = ‘París’
1. Recuperación simple
Obtenga los números de parte de todas las partes suministradas.S.P[P_ Números]
Select Unique P_ NúmeroFrom SP
Condiciones=>/< And
Op. relacionales >= Op. Lógicos.
33
<= Or<>
* Comparar rangos nombre_ atributo[Not] BETWEEN expresión_ 1 And expresión_ 2
Op. Especiales. * Comparar patrones atributos Matches “valor”* Comparar valores
Atributo [Not] in ( v1,v2…)Atributo operador relacionalANY (v1,v2,v3 ….)Atributo op. RelacionalALL (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 > 20Select S_ númeroFrom SWhere ((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 SWhere 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. CiudadFrom P, SPWhere 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úmeroFrom S Primero, S SegundoWhere 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_ SFrom SWhere S_ número = ANY ( Select S_ número
From SPWhere P_ número = ‘P2’)
(sin consultas)Select nomb_ SFrom S, SPWhere 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úmeroFrom SWhere 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_ SFrom S
35
Where S_ número in (Select S_ númeroFrom SPWhere P_ número in (Select P_ número
From DWhere color = ‘rojo’)
10. Recuperación usando ALL
Obtenga nombres de proveedores para los proveedores que no suministran la parte P2Select nom_ SFrom SWhere S_ número <> ALL ( Select
From SPWhere P_ número = ‘P2’)
11. Recuperación usando exists.
Obtenga nombre de los proveedores para los proveedores que suministraron la parte P2Select nom_ SFrom SWhere 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 nombresEjemplo:
#S SPSalazar 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_ SFrom 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_ SFrom SWhere ‘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_ SFrom SWhere ‘ 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._ SFrom SWhere 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 P SP
Salazar Si P1 S1 P1 300 falso P2 S1 P2 200 falso
Ningún P se selecciona Significa que este proveedor no tiene ninguna parte que
37
No provea todas las partes
Jaramillo S2 P1 Esta es una forma de presentar la división P2 P3 Es un conjunto no vacío por lo tanto no existe falso P4 por que no suministra todos los productos
15 Referencia por bloques, Subconsulta.
Select Unique S_ núm.From SP. SPXWhere 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*454From 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 SPWhere 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 byLa 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 CtoFrom SpGroup 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úmeroFrom SPGroup by P_ númeroHaving 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 SPWhere CTD > 200Group by P_ númeroHaving SUM (CTD)>300Order 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 PSet 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 LondresUpdate SSet edo. = edo. * 2Where Ciudad = ‘ Londres ‘
25 Actualización con una subconsulta
Ponga la cantidad en 0 para todos los proveedores de LondresUpdate SP Update SPSet CFD = 0 Set CTD = 0Where 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.
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. 26 Actualización de tablas múltiples
Para el proveedor S2 cambie el número a S9Update S Update SPSet 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
InsertInto 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’InsertInto 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 S1Delete . Delete From S From SpWhere S_ Núm.= ‘S1’ Where S_ Núm. = ‘ S1’ 30 Supresión de registros múltiples
Suprimir todas las remesasDelete 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ónEs una metodología para normalizar los campos ( atributos ) de una tabla de tal
forma que se evite la redundancia.
41
Metodología1. captura de información bajo un formato definido
Ordenes de clientes
Cliente: Número: C1 nombre: S. Sánchez Estado: Texas Cargo por envío: 6 dls.
Productos ordenados
Número nombre precio unitario cantidad fecha
P1 Floppy 88 1 06/05 P3 H. Disk 450 2 10/23
Supóngase que se tiene este formato para cada cliente
2 Definición de una tabla (datos normalizados)
Ordenes – clientesNo. Nombre Edo. Cargo * No. Nombre p. Unit cantidad fecha
entidad
C1 S. Sánchez Texas 6 P1 Floppy 88 1 06/05C1 S. Sánchez Texas 6 P3 H. disk 450 2 10/23C2 R. Rojas California 8 P2 Monitor 150 1 03/16 C2 R. Rojas California 8 P3 H. Disk 450 3 03/16C2 R. Rojas California 8 P4 CPU 349 2 03/16C3 B. Dilan N. Jer 65 P2 Monitor 150 1 08/20C4 G. García Florida 5 P1 Floppy 88 2 07/28C4 G. García Florida 5 P4 CPU 349 1 08/09C5 F. Flores Florida 5 P1 Floppy 88 1 06/28C5 F. Flores Florida 5 P3 H. Disk 450 1 05/16C6 J. Jiménez California 8 P3 H. Disk 450 2 05/24C6 J. Jiménez California 8 P4 CPU 349 1 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 xNo_ clientes nombre_ C (nombre depende funcionalmente del No_ Cliente)No_ prod. nombre_ P (nombre prod depende funcionalmente del No_ prod) No_ cliente estadoEdo. cargo/ entNo_ prod precio unitarioNo_ prod y No_ cte. cantidadNo_ prod y No_cte. fechaNo_ cliente y nombre estadoNo_ 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
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 completaNo_ 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
Nom_ prod
Precio_ unit
No_cliente
No_ producto
Nombre
Estado
Cargo_ ent
Fecha
Cantidad
No_ clientes Cantidad
No_ producto Fecha
Producto Clienteprecio_unit nombre
No_ Producto No_ cliente nomb _ prod
Las tablas después de aplicar la 2ª forma normal son los siguientes:
Ordenes
No_ clientes No_ producto Fecha Cantidad
C1 P1 06/05 1C1 P3 10/23 2C2 P2 03/16 1C2 P3 03/16 3C2 P4 03/16 2C3 P2 08/20 1C4 P1 07/28 2C4 P4 08/09 1C5 P1 06/28 1C5 P3 05/16 1C6 P3 05/24 2C6 P4 05/24 1
45
Edo
Cargo_ ent
Producto
No_ producto Precio_ Unit Nomb_ prod
P1 88 FloppyP2 150 MonitorP3 450 Hard diskP4 349 CPU
Clientes
No_ Cliente Nombre Edo. Cargo_ ent
C1 S. Sánchez Texas 6C2 R. Rojas California 8C3 B. Dilan Nva. Jersey 6.5C4 G. García Florida 5C5 F. Flores Florida 5C6 J. Jiménez California 8
Aplicación de la tercera forma normal..La tercera forma normal se satisface si la segunda forma normal se cumple y
ademásLas 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_ unitNo_producto
Nomb_ prod
Cliente
Estado estado Cargo_ ent
Tablas después de aplicar la 1ª, 2ª y 3ª forma normal y son las tablas normalizadas
No_ clientes No_ producto Fecha Cantidad
C1 P1 06/05 1C1 P3 10/23 2C2 P2 03/16 1C2 P3 03/16 3C2 P4 03/16 2C3 P2 08/20 1C4 P1 07/28 2C4 P4 08/09 1C5 P1 06/28 1C5 P3 05/16 1C6 P3 05/24 2C6 P4 05/24 1
Producto
No_ producto Precio_ Unit Nomb_ prod
P1 88 FloppyP2 150 MonitorP3 450 Hard diskP4 349 CPU
47
No_cliente
nombre
estado
Clientes
No_ Cliente Nombre Edo. Cargo_ ent
C1 S. Sánchez Texas 6C2 R. Rojas California 8C3 B. Dilan Nva. Jersey 6.5C4 G. García Florida 5C5 F. Flores Florida 5C6 J. Jiménez California 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 si nombre es determinante y si este es único se Convierte en llave candidato y por lo tanto edo.
No- Cliente puede depender de nombre y No_ Prod, Estado No_ cliente
Ejemplo 2Considere 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 usaOrdenes ( 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 3Considere 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 P
Salazar Matemáticas BlancoSalazar Física GonzálezJaramillo Matemáticas BlancoJaramillo Física Pérez
a) Aplicando las reglas semánticas defina el diagrama de dependencias funcionales
49
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
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
Diagrama ElkaAtributo_ m
1:11:n
(Fuerte) 1:n
Ejemplo:
RepresentaciónEntidades 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
M
E
P
E
M
P M
Atrib1, atrib2,…
Entidad
Diagrama Elka.
(estado)
(No_cliente) (No_ producto)
51
clientes
nombre
ordenes
producto
No_ cliente Estadofecha
cantidad
Nom prod Prec unit
No prod
R1
cargos
estados Cargo_ ent
Estado, cargo_ entcargo
No_ cliente, nombre, estcliente
No_ prod, nom_ prod, precio_unitproductos
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 normalizadasEjemplo: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
No_ empjefe
No_emptrab
Relación fuerte
(no_emp)
52
No_ cliente, no_ prod, cant, fechaordenes
Empleado Trabaja_con
Puesto
No_emp
nombre RFC Depto
No_empl, nombre, rfc, depto, puesto
empleado
No_empjefe, no_emptrab
Trabaja con
Ejemplo:
Entidades fuertesDepto (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 debilesGrupo (No-grupo, horario, salón)RelacionesR1 (maestros, grupos)R2 (materias, grupos)R3 (especialidad, alumno)R4 (depto, materias)Lista (grupos, alumnos)
Diagrama entidad relación
1. Maestros 11. Salón 21. semestre2. Grupos 12. Cve_ mat 22.Cve_ depto3. Materias 13. Nombre 23. desc4. Especialidad 14. HT5. Alumno 15. HP6. Departamento 16. No_cred7. Cve_ maestro 17. Cve_ esp
53
1 2
6
3
5 4
R1
R2
R3
R4
lista
7 8 9 10 11
12
13
14
15
16
17
18
19
20
21
22
23
8. Nombre 18. Descrip9. No_ grupo 19. No_ ctrol10. Horario 20. NombreDiagrama elka
1 2
3
5
4
6
1. Clave _ maestro 4. Número de control2. Clave _ materia 5. Clave departamento3. Clave _ materia, Número _ grupo 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
Cve_ depto Desc No_ ctrol nombre semestre cve_esp
54
Cve_ maestro, nombre
Cve_mat, No_grupoSalón, Cve_maestro
No_ctrol, nombre,Semestre, Cve_ esp
Cve_maestro, nombre
Cve_mat, nombre,HTHP, No_cred, cve_depto
Cve_depto, Desc
maestro Grupos materia
alumnoespecialidad depto
Cve_mat, No_grupo, No_ crtrol
lista
Especialidad lista
Cve_ esp Descripción Cve_ mat No_ grupo No_ control
Ejemplo 3
Representación generalEntidades 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)
RelacionesR1 (inquilino, depto)R2 (Depto, estacionamiento)R3 (Depto, pago)D_B ( Depto, bienes, cantidad)
Diagrama entidad relación
1. Inquilino 11. Refer_ cor2. Departamento 12. Refer_ per3. Estacionamiento 13. Cantidad4. Bienes 14. Código5. Pago 15. Descripción6. RFC 16. Cve_ pago7. Nombre 17. Descrip_ pago
55
1 2
5 4
3R1
R2
DB
R3
11
67
12
8 910
13
14
15 1
617
8. Cve_ depto9. Costo_ depto10. Cve_ estDiagrama Elka
claveRFC depto
Cve_ depto
código
Definición de tablas
Inquilino Departamento
RFC Nombre Refer_ cor Refer_ per Cve_ depto Costo_ dpto RFC
Estacionamiento Pago
Cve_est cve_depto cve_pago descrip_ pago cve_ depto
D_ B Bienes
cve_ depto código cantidad código descripción
56
rfc, nombre, refer_ correfer_ per
Cve_ dpto, costo_deptorfc
Cve_est, cve_depto
Cve_ dpto, códigocantidad
Cve_pago, descrip_pago, cve_dpto
Código, descripción
estacióninquilino
bienes
pagoD_B
depto
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
Construida y Mantenida el admón.De datos
esquemade 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
Leng anf + DML
ATU
Subesquema A
Leng anf + DML
ATU
Leng anf + DML
ATU
Leng anf + DML
ATU
Leng anf + DML
ATU
Subesquema B
DBMS
Esquema
Conjuntos DBTG:Es la liga que se establece entre los dos registros, un registro propietario y un
registro miembro. Ejemplo.Diagrama 0 de Bachman
registrof Se debe buscar la forma de
establecer relaciones 1:nregistro siempre que hay conjuntos
nregistro
Construcción de conjuntos DBTGEjemplos 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 concurrenciaDel tipo D-E la s reglas E-1
Empleado y E-2 no pueden participar Cada regla miembro solo puede aparecer en una concurrencia
Jerarquía con mas de un nivel dependiente .Un registro miembro puede participar simultaneamente en varias concurrencias
de diferentes tipos de conjuntos de DBTG.
58
propietario
Pro-miembro
miembro
D1
E-1 E-2
D-E
D-E D-E
E1 E1 E1 E1
D1
E-1 E-2
D-E
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.
Diagrama de Bochman
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>>
Retención fija: El registro miembro pertenece a una ocurrencia única determinada de un tipo de conjunto.
59
D1
E-1 E-2
D-E E-1 E-2
D-E
P
P-M P-S
M S
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
Cuenta habiente propietario
miembro
propietario
Move 565 to numero in cuentaMove 0 to saldo in cuentaMove centro to nombre in sucFind only in sucursal using nombre
In sucursal
Sucursal store cuenta Move Juan Pérez to nombre inCuenta habiente
Cuenta habiente Find only cuenta habiente usingNombre in cuenta habiente.
60
Cta hab cta
Nombre dirección cd.
Número saldo
Suc Cta
Nombre saldo edo
Cta hab cta
Juan perez Obregon 6 cortazar
364 500
Suc Cta
Centro 99999 Gto.
565 0
565
0
Centro
JuanPérez
Número
Saldo
Cuenta
nombre
nombre
Connect cuentaOperación de inserción Connect reg_ miembro to tipo_ comOtras 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 ConnectReconnect 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ón2. por valor3. Estructurada
La forma elegida se define a través de una cláusula.Ejemplo:
S
SP
Una ocurrencia
Seleccionar la ocurrencia P1Insertar en la ocurrencia DBTG del conjunto S_SP
61
no_s nombre cd Edo.
S_ SP
No_s No_p cantid
SS Juan Pérez Celaya Gto
S_ SP
S5 P3 750 S5 P2 300 S5 P6 700
Definir cláusula para selección de ocurrencia.1) Set selection is by application
Move ‘SS’ to no_s in spR Move ‘P6’ to no_p in sp
Move ‘700’ to cant in spMove ‘S5’ to No_S in S localizar reg. Prop. Por su kFind 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 SR ** move ‘S5’ to No_ S in S Store SP.
3) Set selección is by estructural of No_s in SP = No_s in SRStore 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 Red ( n:n) find …p
Manual connect mto c
Insertion is
Find ..dPertenencia automatic
Store m
Fixed Relation is mandatory (reconnect )
Optional ( reconnect, disconnect, Connect )
Conjuntos DBTG
Aplicación
Conjunto
Selección set selection value of <campo> in <p> Miembro is by
Estructural <campo> in <m> = <campo> in <P>
por omisión first last
Ordenamiento order is next prior sorted
Conjuntos DBTG agrupan un tipo de registro Singulares
63
propietario
Ejemplo aplicación:1. Shem name is proveedores y partes 2. .3. record name is S4. duplicates are not allowed for nors in S5. .6. Nors; type is character 57. Nors; type is character 208. Estatus; type is fixed decimal 39. Ciudad; type is character 1510. .11. Record name is P 12. Duplicates are not allowed for Nrop in P13. .14. Nrop; type is character 615. Nompar; type is character 2016. Color, type is character 617. Peso; type fixed decimal 4, default is –118. Ciudad; type is character 1519. .20. record name is p21. duplicates are not allowed for nors in sp, Norp in Sp22. .23. Nrop; type is character 524. Nrop; type is character 625. Ctp; type is fixed decimal 526. .27. set name is S_SP28. _ owner is S29. _ order is sorted by defined keys duplicates are not allowed30.31. ._ member is SP32. _ insertion is automatic33. _ retention is fixed 34. _ key is ascending Nrop is SP35. _ set selctión is by value of Nros in 636. .37. set name is P_ sp38. _ ower is p39. order is sorted by defined key duplicates are not allowed40. .41. menber is SP42. _ insertion is automatic43. _ retention is fixed 44. key is ascending.. Nrop in SP45. set selection is by value of Nrop in P
64
P_PS
S_SP
P_SP
S.SP
Rp:Sr.m: spInsertionretencionseleccionllaves ordenamiento
Indicadores de posición actual
Manejo de datos manejo de excepciones DBTG (DML)
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:
S
SP
P
65
Nros noms estatus ciudad
Nros Nrop ctd
Nrop Nom p color peso cd
S4 Jiménez 20 X
S4 P2 500 S4 P8 700
P2 Perno Azul 17 2
Move s4 to Nros in SFind any S using Nros in S encontramos el renglón S como prop.Find Firs Sp With in S_SP encontrar el 1er registro miembroFind owner SP With in P_SP encontrar propietario de SP
Actual de la unidad de ejecución P_P2Ocurrencia del registro S actual S_S4Ocurrencia del registro SP actual SP_S4_P2Ocurrencia del registro P actual P_P2Ocurrencia del registro S_SP actual S_SP_P4Ocurrencia del registro D_SP actual P_SP_P2Registro actual de S_SP SP_S1,P2Registro actual P_SP P_P2Ocurrencia actual de la región S,SP,P P_P2
Manejo de excepcionesDentro 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 SFind any S using nro_S in SGet S recupera toda la información del registro sing S y lo pone en la RAM
66
Recupere solamente la información del nombre del proveedor y el número que le corresponda.Move ‘S4’ to Nro_ S in SFind any S using Nro_S in SGet 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
Move ‘S5’ to Nro_S in SPMove ‘P6’ to Nro_P in SPMove ‘700’ to cant in SPMove ‘ S5’ to Nro_S in SFind any S using Nro_S in SMove ‘ P6’ to Nro_P in pFind any P using Nro_P in PStore 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 Retention is fixed . en este caso el registro y los registros All 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 SFind any S using Nro_S in SErase S
MODIFY ( actualiza la unidad de ejecución)
67
S5 P6 700
Ejemplo adicione 10 al estado de proveedor S4
Move ‘S4’ to Nro-S in SFind any S using Nro_S in SGet SAdd 10 to edo in SModify 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
Move ‘x’ to Nro_x in XFind any X using Nro_x in xMove ‘S4’ to Nro_S in SFind any S using Nro_S in SConnect 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 XFind any X using Nro-x in XMove ‘S4’ to Nro_S in SFind any S using Nro_S in sDisconnect 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 X
S S
68
conjunto
S4
Y X
S4 S4
Conjuto x Conjuto_x
Move ‘x’ to Nro_x in XFind any X using Nro_x in XMove ‘S4’ to Nro_S in SFind any S using Nro_S in SReconnect 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 SFind any S using ciudad in SMove ‘no’ to No_encontratePerform 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
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
69
P_ SP
S_ SP
S4
S4 No_P Cant P5 70
Move ‘S4’ to Nro_s in SFind any S using Nros in SMove ‘no’ to no- encontrado = ‘si’Find first SP with in S_SPPerform until no-encontrado = ‘si’ Get SP‘ adicionar una lista de números de partes ‘Find next SP within in S S-SPEnd 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 SFind any S Nro_S in SMove ‘PS’ to num_P in SPFind SP within S_SP current usingnum_P in SPGet Sp------- { imprima la cantidad del registro SP-------
e) Formato 2 Acceso secuencial dentro de un conjunto DBTG.
Ejemplo: Halle todas las remesas para el proveedor S1 donde la cantidad sea 100Move ‘S1’ to Nro_S in SFind any S using Nro_S in SMove ‘100’ to cant in SPFind SP within S-SP current using cant in SPMove ‘ no’ to no-encontradaPerform until no-encontrada = ‘si’Get SP====== { obrener las remesas }Find duplicate SP within S_SP using cant in SPEnd perform
F) Formato 4 Uso de lista de guarda.
Find first / last within nombre de la lista de guarda
70
S1
S1 P3 70 S1 P5 80
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 15Ld listaB limit is 20======Move ‘París’ to ciudad in SMove zero to MMove ‘no’ to no encontrado Find any S using ciudad in SPerform until no encontrado =‘si’
KEEP USING listaAIf estado in S > M
Move estado in S to MEnd ifFind duplicate S using ciudad in SEnd perform Move M to estado in SMove ‘no’ to listaA_vacioPerform until listaA_vacia ‘si’
Find first within listaAFree first within listaAModify 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 PFind any P using Nro_P in PMove ‘no’ to no_masPerform until no-mas = ‘si’11 Find next SP within S-SP
If no-mas not = ‘si’Get SMove ‘no’ to encontrado
71
Perform until encontrado = ‘si’Find next SP within S_SPRetaining P_SP currencyGet SPIf Nro_A in SP not = ‘P4’
Move ‘si’ to encontradoEnd 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_SPEsto 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 datosb) 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 ciclosb) 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
UENTA HABIENTE
CUENTA
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 HABIENTECTAHABCTA
CUENTA
NOMBRE
CALLE
CD SALDONÚMERO
NOMBRE CALLE CD
NÚMERO SALDO
74
CUENTA HABIENTE
BECK MAPLE SN.FCO KATE NORTH SN.JOSE DONE S.HILL P.ALTO
CUENTA
200 55 256 100000 347 667 301 10503