base de datos i - hosting miarrobapacoglez.webcindario.com/bddatos i.doc · web viewbase de datos i...

100
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. 1

Upload: others

Post on 13-Mar-2020

0 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 2: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 3: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 4: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 5: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 6: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 7: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 8: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 9: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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.

Page 10: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 11: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 12: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 13: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 14: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 15: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 16: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 17: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 18: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 19: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 20: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 21: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 22: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 23: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

{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

Page 24: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 25: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 26: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 27: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 28: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 29: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 30: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 31: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 32: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

(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

Page 33: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 34: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

<= 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

Page 35: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 36: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 37: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 38: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 39: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 40: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 41: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 42: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 43: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 44: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 45: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 46: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 47: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 48: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 49: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 50: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 51: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 52: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 53: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 54: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 55: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 56: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 57: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 58: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 59: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 60: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 61: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 62: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 63: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 64: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 65: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 66: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 67: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 68: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 69: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 70: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 71: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 72: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 73: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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

Page 74: BASE DE DATOS I - Hosting Miarrobapacoglez.webcindario.com/BDDATOS I.doc · Web viewBASE DE DATOS I OBJETIVO GENERAL DEL CURSO. El alumno será capaz de comparar los diferentes modelos

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