conceptos basicos sobre base de datos
Post on 15-Dec-2015
14 Views
Preview:
DESCRIPTION
TRANSCRIPT
UNIDAD 1. CONCEPTOS BASICOS DE BASES DE DATOS.
a) OBJETIVOS ESPECIFICOS: Reconocer las ventajas del uso de una base
de datos relacional.
b) Síntesis conceptual del contenido de la unidad.
Una base de datos es un conjunto de archivos creados de manera lógica y que
están diseñados y relacionados para satisfacer necesidades específicas de una
situación. En este capitulo veremos algunas ventajas que presentan las bases de
datos sobre los sistemas de archivo.
Comparación de las Base de Datos y los sistemas de archivo:
Los Sistemas de Base de Datos permiten administrar la información de las
organizaciones con algunas ventajas con respecto a algunos inconvenientes que
presentan los sistemas de archivo.
Las base de datos buscan evitar la repetición de la información y pérdida de la
integridad de los datos; además de contar con mecanismo que brindan un alto
grado de seguridad.
Los conceptos explicados a continuación son dificultades presentados con los
sistemas de archivo, pero que son muy bien manejados por las bases de datos.
Control de Redundancia e inconsistencia de los datos:
El hecho de que un archivo tenga información similar a la que existe en otro
archivo, provoca duplicidad de información y aumenta la posibilidad de tener
información inconsistente dentro de la base de datos. Por ejemplo: Un cliente
podría tener su nombre en un archivo de cuentas corrientes y también aparecer en
las cuentas de ahorro, es posible que las copias de los registros pertenecen a un
mismo clientes no coincidan. Estos errores provocan duplicidad e inconsistencia de
los datos respectivamente.
Datos Centralizados:
Las bases de datos nos permiten corregir el problema de tener información dispersa
en distintos archivos y con distintos formatos, evitando que se tenga que duplicar
1
y hasta triplicar los programas de aplicación que cumplen la misma función;
provocando un esfuerzo mayor en recursos tanto humano como tecnológico,
además de complicar el mantenimiento de los programas de aplicación. Al tener la
información centralizada en una misma base de datos los distintos programas de
aplicación van a leer la misma información.
Control en la Integridad de los datos:
Las integridades son las condiciones que garantizan la consistencia de los datos.
Por esto los datos almacenados en la base de datos necesitan satisfacer ciertas
relaciones de consistencia. Por Ejemplo: El saldo de una cuenta no puede ser
menor que una cantidad determinada. Estas ligaduras pueden cumplirse en la
codificación de los programas de aplicación, pero esto se complica al añadir nuevas
ligaduras, ya que seria necesario contemplarlo en cada programa. A diferencia si
contemplamos estas integridades a nivel de las base de datos, cada programa de
aplicación estaría obligado a cumplirlas ya que se controlaría por archivo y no por
aplicación.
Control en los Problemas de Atomicidad:
Los fallos a los que están sujetos los sistemas de computadora, implican que una
transacción o conjunto de transacciones queden inconclusas, provocando
inconsistencias en los datos. Para esta situación la base de datos consideran el
concepto de atomicidad, es decir, una transacción ocurre por completo o que no
ocurra en lo absoluto . Por ejemplo en la ejecución del proceso de planilla un fallo
podría provocar que se aplicaran ciertos descuentos y otros no. En el ambiente de
datos Oracle se emplean dos conceptos para hacer cumplir la atomicidad. Cuando
un proceso se ejecute cada transacción esta en uno de dos estado: guardo físico o
guardado lógico. El guardado lógico implica que los cambios realizados en la base
de datos están solo comprometidos, el guardado físico implica que los cambios
realizados en la base de datos son efectuados realmente y no se puede revocar las
actualizaciones. Cuando un registro esta en guardado lógico se puede restablecer a
su estado normal con la instrucción Rolback. Para que una actualización pase de
su estado lógico a su estado físico se usa la instrucción commit. En ambiente Oracle
existen instrucciones que ejecutan implícitamente la instrucción commit.
2
A una transacción no se le debe aplicar la instrucción commit hasta que se halla
ejecutado en su totalidad.
Control de los Problemas de Seguridad:
No todos los usuarios de un Sistema deben poder accesar todos los datos de la
organización para esta situación es necesario clasificar los usuarios según sus
jerarquías y necesidades, las bases de datos cuentan con mecanismos para
garantizar estos objetivos.
Visión de los Datos:
Un Sistema de Gestión de Base de datos (SGBD) un sistema que permite crear y
manejar un conjunto de archivo; además facilita que a través de programas de
aplicación los usuarios puedan acceder y dar mantenimiento a la información
existente en estos archivos.
El propósito principal de un sistema de base de datos es proporcionar a los usuarios
una visión abstracta de los datos, o sea que el sistema esconde al usuario el cómo
se almacenan y mantienen los datos en la base de datos.
Abstracción de los Datos:
Existen tres niveles de abstracción de datos que como se menciono ocultan al
usuario ciertos detalles de la base de datos y también permiten facilitan la
representación de los datos en la base de datos y la forma como los usuarios
manejan estos. Estos niveles son:
Nivel Físico: Es el nivel mas bajo de abstracción y describe como se
almacenan realmente los datos. Aquí se describen las estructuras de datos
de bajo nivel.
En este nivel un registro cliente, cuenta o empleado se puede describir como
un bloque de posiciones almacenados consecutivamente (palabra, byte).
Nivel Lógico: Describe que datos se almacenan en la base de datos y que
relaciones existen entre esos datos. Para el caso particular de Oracle se
definen los archivos con sus campos y tipos de campos.
3
Nivel de Vista: El usuario de una base de datos debe acceder sólo
información que necesita para realizar su trabajo. Aquí los usuarios ven un
conjunto de programas de aplicación que esconden los detalles de los tipos
de datos y permiten manipular los datos de la base de datos. Para
ejemplificar este nivel de abstracción podemos referirnos al hecho de facturar
cuando realizamos una compra.
Independencia de los Datos:
La independencia de los datos es la capacidad de mantener una independencia
entre los niveles de datos, es decir, que si un nivel de datos se modifica en nivel
siguiente no se debe afectar. Existen dos independencia de este tipo:
Independencia Física: Es la capacidad para modificar el esquema físico sin
provocar que los programas de aplicación tengan que reescribirse, estas
modificaciones se realizan mas que todo por asuntos de rendimiento.
Independencia Lógica de Datos: Es la capacidad para modificar el esquema lógico
sin provocar que los programas de aplicación tengan que reescribirse.
La independencia de datos lógica es más difícil de proporcionar que la
independencia de datos física, ya que los programas de aplicación son fuertemente
dependientes de la estructura lógica de los archivos y datos que accedan.
4
c) Bibliografía Específica Obligatoria.
Fundamentos de Bases de datos
Abraham Silberchatz.
Tercera Edición.
McGraw Gill.
e)Actividades de aprendizaje
1.1 Investigación: Las bases de datos cuentan con herramientas de desarrollo, que permiten una mejor utilización de sus componentes
Mencione cuatro bases de datos con su software nativos para desarrollar
aplicaciones.
Mencione al menos dos ventajas al usar sus software nativos para
desarrollar aplicaciones.
Menciona cuál es la base de datos más utilizadas a nivel corporativo.
Los conceptos que se le solicitan investigar contribuyen y son necesarios para reforzar su conocimiento en este curso. Además de los términos solicitados para investigar debe agregar aquellos conceptos que no conoce o que desea ampliar.
1. Para cada uno de los conceptos explicados como ventajas de las bases de
datos, de un definición de lo que usted a entendido de cada uno de ellos;
además menciona al menos una consecuencia negativa relaciona a ellos.
f) Autoevaluación
Encierre en un circulo la respuesta que usted considere apropiado.
1. Si su nombre se encuentra escrito tres veces en un sistema, podemos decir que
no encontramos con un problema de :
a. Integridad
b. Atomicidad
c. Duplicidad
2. Si en el momento en que se calcula su índice se computa sólo una parte de sus
calificaciones podemos decir que existe un problema de :
a. Integridad
b. Atomicidad
c. Duplicidad
3. Cuando la secretaria ingresa nuestras calificaciones al sistema, ella se encuentra
trabajando en el siguiente nivel.
5
a. Lógico
b. Físico
c. De Vista
4. Si su nombre se encuentra en un archivo escrito de una forma diferente a como
aparece en otro archivo sabemos que es un problema de:
a. Repetición y atomicidad
b. Repetición e integridad
c. Repetición e inconsistencia.
5. Al momento de crear las tablas o archivos para la base de datos estamos
trabajando en el nivel :
a. De Vista
b. Físico
c. Lógico.
6
UNIDAD. MODELADO DE DATOS Y MODELADO DE RELACIONES.
a) Objetivo Especifico:
Entender y aplicar conceptos básicos sobre el modelado de datos y el
modelado de relaciones.
b) Síntesis conceptual del contenido de la unidad
El llevar procesos y procedimientos de las organizaciones , a un ambiente computarizado,
requiere de un estudio detallado de las distintas situaciones presentados en estos procesos y
procedimiento. No es precisamente automatizar los procesos existentes, sino que incluye la
revisión de los procesos actuales con el fin de optimizar la operatividad de la organización.
Es a través del análisis y modelado de datos que establecemos los cimientos de un sistema
computacional. En esta unidad veremos algunos conceptos que son de suma importancia al
momento de modelar y analizar datos.
MODELADO DE DATOSEs una colección de herramientas conceptuales para describir los datos, las
relaciones entre ellas, la semántica de los datos y las ligaduras de consistencia.
Los modelos de datos generalmente se clasifican en tres grupos: Modelos lógicos
basados en objeto, modelos basados en registro y modelos físicos.
Modelos lógicos basados en objetos:
Los modelos lógicos basados en objetos se usan para describir datos en los niveles
lógicos y de vista. Proporcionar capacidades estructurales muy flexibles y permiten
que las ligaduras de datos sean especificadas explícitamente. Existen varios
modelos de este tipo pero nos limitaremos a estudiar al modelo Entidad-relación
Modelo Entidad Relación:
Esta basado en una percepción del mundo real que consta de una colección de
objetos básicos llamados entidad y de relaciones entre estos objetos básicos. Una
entidad es una cosa u objeto en el mundo real que es distinguible de otro objeto y
que tiene atributos particulares que permitan describir sus características. Por
ejemplo el objeto persona, el objeto cliente, etc. Tienen características (atributos)
distinguibles.
7
Los atributos del objeto cliente podrían ser cedula, nombre, apellido, sexo. Por otro
lado una
relación es una asociación entre varias entidades. Por ejemplo, podemos tener la
entidad cliente que puede tener relación con la entidad cuenta.
Además de entidades y relaciones el modelo entidad relación representan ciertos
ligaduras que las bases de datos deben cumplir. Entre estos podemos mencionar
las correspondencias de cordinalidad, que expresan el número de entidad con las
que otra entidad se puede asociar .
Si tenemos la entidad factura y la entidad detalle_factura, podemos decir que aquí
se cumple una relación uno a muchos de factura hacia detalle_factura, ya que una
factura puede tener muchos detalles.
Factura Detalle_Factura
Número Número
Clientes Articulo
Fecha Cantidad
Pago
Un diagrama entidad relación se puede utilizar para representar de manera total
la estructura lógica de una base de datos.
Los componentes básicos del diagrama entidad relación
- Rectángulo: Que representa el conjunto de entidades
- Eclipses : Que representa atributos
- Rombo: Representa relación entre conjunto de entidades
- Líneas: que conecta los elementos que componen un diagrama entidad
relación.
8
Cliente Cuenta
Veamos el esquema E-R para un cliente que tiene una cuenta.
Modelos lógicos basados en registros:
Representan la estructura lógica completa de la base de datos, así como también
una descripción de alto nivel de la implementación.
Se llaman así debido a que la base de datos se estructura en registros de formato
fijo de diferentes tipos. En cada registro se define un número fijo de campos o
atributos y cada campo tiene una longitud fija. Entre estos modelos podemos
mencionar algunos: Modelo de Red, modelo Jerárquico y modelo relacional.
Para efectos del curso se estará desarrollando el modelado relacional. En este
modelo se usa una colección de tablas para representar tanto los datos como las
relaciones entre esos datos.
Trabajo práctico: Desarrolle una base de datos relacional utilizando las tablas de
factura y detalle factura. Use como guía el ejemplo de la página 7 del libro
Fundamentos de Base ded Datos de Henry Korth.
9
dni
Calle-cliente
Npmbre-cliente
Calle-cliente
Saldo
Número
Cueta
Cliente Cuenta
Lenguaje de Base de Datos:
Para este aspecto se van a necesitar dos lenguajes.
Lenguaje de definición de datos(LDD), permite expresar el esquema de la
base de datos. Este lenguaje crea un conjunto de archivos y los almacena en los
diccionarios de datos
Lenguaje de manipulación de datos : Son los lenguajes que permiten accesar o
manipular los datos existentes en las bases de datos.
Practica Práctico.
1. Realice el diagrama entidad relación para las siguientes tablas: Estudiantes,
Asignaturas.
Coloque sus atributos
Establezca las relaciones
2. Para el diagrama entidad relación construya su diccionario de datos.
10
2.3 Modelo Entidad Relación:
Existen tres conceptos básicos que emplea el modelo entidad relación: conjunto de
entidades, conjunto de relaciones y atributos.
Conjunto de entidades: Como se ha explicado, una entidad tiene un conjunto de
propiedades y los valores de este conjunto de propiedades pueden identificar un
registro(entidad) de forma unívoca. Por ejemplo, la cédula identifica de manera
única a cada ciudadano en la república. Las entidades pueden ser una persona, un
libro, las entidades también pueden ser abstractas como unas vacaciones, un
préstamo, etc.
Un conjunto de entidades es la totalidad de la entidades del mismo tipo que
comparten las misma propiedades o atributos. El conjunto de todas las personas
que tienen cuenta en un banco serian el conjunto de las entidades cliente. Las
extensiones individuales que constituyen un conjunto se llaman extensiones del
conjunto de entidades.
ALGUNOS TIPOS DE ATRIBUTOS
Definir los tipos de atributos es de suma importancia al momento de realizar el
análisis de una situación, ya que esta definición permite establecer criterios que
afectan directamente el diseño final de la base de datos.
Un atributo en el modelo E-R puede ser clasificado como sigue:
Atributos Simples y Compuestos: Los atributos simples son aquellos que no
están divididos en sub-partes. Los atributos compuestos son aquellos que se
pueden dividir en subpartes, por ejemplo, nombre, cédula. Los atributos
compuestos son ventajosos para una representación mas clara de modelado,
pero son desventajosas al momento de consultar los datos. Para el caso del
nombre podemos tener en la entidad simplemente el nombre, sin embargo
podemos subdividirlos en nombre y apellido. De igual forma la cédula puede
ser dividida en provincia, clase, tomo, folio.
Atributos Univalorados y Multivalorados: Los atributos univalorados son
aquellos que van a tener un solo valor para una entidad. Por ejemplo, el
nombre podría tener el valor Juan para una entidad, podría haber otro nombre,
tal vez Luis, pero sería para otra entidad. Los atributos multivalorados son
11
aquellos que pueden tener un número variado de valores para una entidad
específica. Podemos citar la situación de un asegurado que puede tener bajo su
condición varios asegurados, como también puede que no tenga ninguno.
Los atributos Nulos o Requeridos: Son aquellos campos que pueden en un
momento determinado no tener valor dentro de la entidad. De igual forma
existen atributos que obligatoriamente requieren tener valores dentro de la
entidad. Todos los campos que son llaves dentro de una entidad requieren
valor. Los atributos apartado, teléfono pueden ser ejemplo de campos nulos.
Los atributos Derivados o Resultantes: Los valores de este tipo de
atributos se pueden derivar de otros atributos o entidades, como ejemplo
podemos obtener el ITBM si conocemos el costo total de la factura, o la edad de
una persona que puede obtenerse si estuviéramos su fecha de nacimiento. Los
atributos derivados que sabemos forman parte del análisis del sistema, no se
colocan en las entidades.
Identificación de Llaves
Es importante distinguir en conjunto de entidades cada entidad. Y para esto como
se ha explicado, es necesario identificar en cada entidad el atributo o los atributos
que permiten distinguir cada registro, esta identificación se conoce como llave
primaria.
Veamos la siguiente ilustración
Cédula Nombre Edad Dirección
02-423-13 Juan Ríos 26 Colón
03-45-15 Pedro Castro 26 Panamá
09-00-189 Mario Díaz 45 San José
Al momento de seleccionar una llave para una entidad debemos estar seguro que
esta llave no se va ha repetir para ningún registro en el conjunto de entidades. Si
12
escogiéramos de los atributos de la ilustración, descartaríamos el atributo nombre
porque muchas personas podrían tener el mismo nombre, al igual que la edad y la
dirección.
Sin lugar a duda la llave primaria sería la cédula ya que esta es una identificación
única para cada persona.
Una entidad A, puede tener un campo que es llave en otra entidad B, sin embargo,
puede que en la entidad B no sea llave, o sea llave en conjunto con otros atributos ,
o puede ser llave foránea, o puede que sea ambas llaves.
Una llave foránea es aquella que hace referencia a una llave primaria o llave única
de otra entidad.
Ilustremos lo expuesto con los siguientes ejemplos:
Estudiante
(Cédula, Nombre, Fecha_nacimiento, Teléfono)
Calificaciones
(Cédula, Cod_asignatura, Año, Semestre, Calificación)
En la tabla de estudiante la llave será la cédula, esta tabla va ha contener la
información de todos los estudiantes, y cada estudiante tendrá un solo registro en
esta tabla.
Al analizar la tabla de calificaciones, no podemos escoger la cédula como llave
primaria ya que la relación entre estas entidades es de uno a muchos de
estudiantes hacia calificaciones y esto ocasiona que en la tabla de estudiantes se
repita muchas veces la cédula de los estudiantes. Igual pasaría si escogiéramos la
asignatura como la llave primaria, ya que la asignatura podría ser dada por muchos
estudiantes así que ésta se repetiría.
Para asegurarnos una identificación para la tabla Calificaciones debemos escoger
como llave los atributos Cédula y Asignatura.
13
Modelado de Relaciones:
El modelado de relaciones representa la forma como las entidades interactúan
entre ellas.
Correspondencia de cardinalidad:
Expresa el número de entidades a las que otra entidad puede estar asociada vía
un conjunto de relaciones.
Las relaciones de cardinalidad que se explicarán serán de tipo binaria, y se detallan
a continuación:
Uno a Uno: Es aquella en que una entidad A se asocia a lo máximo con una sola
entidad B.
La asociación entre la Entidad Escuela ---------Director es un ejemplo de este
caso, este caso es aplicable a las escuelas públicas tiene un solo un director y
estos a su vez pueden dirigir sólo una escuela.
Uno a varios: Es aquella en que una entidad A se asocia con varias entidades A.
Y la entidad B puede estar asociado exclusivamente a una entidad A. El caso
contrario es la relación Varios a Uno. La relación entre el empleado y los
cheques que se le han pagado es un ejemplo de esta situación. Otro ejemplo
aplicable a esta situación es la del estudiante y sus calificaciones, ya que un
estudiante puede tener muchas calificaciones.
Varios a Varios: Una entidad A y una entidad B pueden estar asociadas entre
ellas muchas veces. La relación entre la entidad estudiante y la entidad Profesor
nos ilustra el caso.
La ilustración de esta situación es propicia para explicar una regla de análisis, que
especifica que cuando existe una relación muchos a muchos se genera una
nueva entidad. Esta nueva entidad estará conformada por las llaves primarias
de las tablas relacionadas y los atributos que tiene estas entidades en común.
Veamos un ejemplo:
Estudiantes Profesor
Cedula Codigo
14
Nombre Nombre
Dirección Dirección
Telefono Telefono
Sexo Sexo
Fecha_Nacimiento Categoría
Titulo.
Al aplicar la regla de cardinalidad debemos considerar en primera instancia
seleccionar las llaves primarias de las tablas involucradas que para este caso es la
cédula y el código, entonces estos campos conformarían la llave de la tabla
resultante. Esta tabla también va ha contener los atributos que tiene las tablas en
común, si analizamos un poco más nos damos cuenta que los atributos en común
de estas tablas puede ser asignatura, calificación, año, semestre.
Dependencia de existencia:
La dependencia de existencia puede ser parcial o total. Las dependencia totales
son aquellas en las entidades dependen exclusivamente de otras. Las
dependencias parciales son aquellas en puede que exista o no la relación. Para
que exista una calificación es necesario que exista un estudiante es un ejemplo de
dependencia total. Como ejemplo dependencia parcial cita el caso del estudiantes
y su representante, ya que pueden ser sus padres o no.
Entidades débiles y la Herencia de atributos
Esta situación la analizaremos considerando un las entidades de facturas y detalla facturas.
Facturas Detalles
Numero_Factura Articulo
Fecha Cantidad
Cliente Descuento
T_Pago
15
Podemos observar que en la tablas Detalle no existen atributos suficiente para
formar una llave primaria, ha este tipo de entidad se le conoce como entidad débil,
estas entidades van entonces ha depender de la entidades fuertes a las que
estén asociadas o relacionadas.
Para estos casos es necesario identificar en las entidades débiles un discriminante,
que es el atributo o conjunto de atributos que permites distinguir un grupo de
registro en la entidad.
Entonces la llave primaria de una entidad débil esta formado por la llave primaria
de la entidad fuerte más el discriminante de la entidad débil. Al momento de
escoger el discriminante debe ser un atributo representativo y estar seguros que
este atributo en conjunto con la entidad fuerte puede conformarme una llave
primaria para la entidad. En este caso podemos escoger como discriminante.
Finalmente la entidad débil queda así:
Detalles
Numero_Factura
Articulo
Cantidad
Descuento
Trabajo Práctico:
Realice la representación de la entidad cuentas con los atributos que usted
considere necesarios y cuya entidad fuerte es bancos con la llave primaria código
de banco
16
c) Bibliografía Específica Obligatoria.
Fundamentos de base de datos.
Abraham Silberschatz
Tercera Edisión.
e) ACTIVIDADES DE APRENDIZAJE.
2.1 Antes de iniciar la primera unidad se realizará un examen evaluativo de la
primera unidad, que incluye el contenido del temario, las investigaciones y el
términos del vocabulario.
2.2 Al colocar los atributos a la entidad estudiantes y calificaciones debe
considerar el tipo de relaciones que existe entre éstas. Para entenderlo mejor
lea el apartado de los tipos de cardinalidad.
2.3 Para los atributos que usted considere , debe mencionar por qué los
considera de ese tipo y en qué entidad los podría colocar.
Ejemplo: La el sexo es un atributo simple, porque no se subdivide y se podría
colocar en la entidad estudiantes.
2.4 Las relaciones de cardinalidad deben ser ejemplificadas de la siguiente
manera
ACUDIENTE ESTUDIANTE
Cod_acudiente PK Cod_acudiente FK
Nombre Cod_estudiante PK
Dirección Nombre
Apellido
Dirección
Teléfono
Debe aplicar el concepto de llave primaria. Herencia de atributos Llave foránea.
2.5 Colocar los atributos a cada entidad y las llaves foráneas y primarias.; además de los
atributos que se heredan.
17
2.6 Debe ejemplificar la situación de cardinalidad entre una entidad fuerte y una entidad débil.
AUTOEVALUACION
Encierre en un circula la letra que corresponda a la respuesta correcta.
1.Al establecer una relación entre la tabla departamento y la tabla empleados
podemos decir que existe una cardinalidad :
a. Uno a Uno
b. Muchos a Muchos
c. Uno a muchos
Explique su elección_______________________________________________________
__________________________________________________________________________
2. La relación entre la entidad doctor y la entidad paciente es de tipo:
a. Uno a Uno
b. Muchos a Muchos
c. Uno a muchos
Explique su elección_______________________________________________________
_________________________________________________________________________
3. Si tenemos el seguro social y deseamos segregarlo, es un atributo:
a. Derivado
b. Simple
c. compuesto
4. Cual de los siguientes campos podría estar nulo en la entidad Paciente:
a. Edad.
b. Nombre
c. Dirección.
5. Al encontrar una relación de cardinalidad muchos a muchos se produce la
siguiente situación
a. Se elimina una de las dos entidades
b. Se crea una tabla nueva
c. Se provoca una atomicidad.
6. El elemento que identifica de manera única una entidad es:
a. Llave Primaria
18
b. Llave foránea
c. Llave candidata.
7. El elemento que se heredad de una entidad fuerte a una entidad débil se llama
a. Llave Primaria
b. Llave foránea
c. Llave candidata.
8. La llave que hace referencia desde una entidad débil hacia una entidad fuerte
es:
a. Llave Primaria
b. Llave foránea
c. Llave candidata.
9. Si tengo el salario por hora y las horas trabaja, puedo obtener la cantidad a
pagar, estos atributos se le conoce como:
a. Multivalorados
b. Simples
c. Compuestos.
10.Si tengo la relación entre la entidad sucursal y departamento, la entidad débil
sería
a. Sucursal
b. Departamento
c. Ninguna de las dos.
19
III UNIDAD. NORMALIZACION Y CREACION DE TABLAS.
a) Objetivo Específico:
Comprender el análisis y modelación de datos, y su representación en
una Base de Datos Relacional.
b) Síntesis Conceptual del contenido de la Unidad
Las técnicas de normalización permiten optimizar el análisis y diseño de datos para
la realización de sistemas computacionales. En este apartado se explican y
aplican. Además se usaran las características que permitan la creación de una
base de datos con todos sus componentes de integridad.
NORMALIZACION.
La normalización es de suma importancia al momento de realizar el análisis y
diseño de una situación, para su posterior representación en un esquema de base
de datos.
La normalización permite almacenar y representa complejas situaciones de
usuario en estructuras de datos simples, estables y más pequeñas.
La normalización generalmente se lleva hasta su tercera forma normal, aunque
algunas veces se lleva hasta su cuarta forma normal. La normalización busca
reducir el espacio de almacenamiento y hacer más fácil el manejo de los datos en
la base de datos.
Algunas veces cuando normalizamos algunas entidades, muy por el contrario de
reducir la repetición de información lo que se haces es ocupar más espacio de
almacenamiento.
Primera Forma Normal.
Consiste en la identificación de una llave primaria y la eliminación de los grupos
repetitivos.
Consideremos el siguiente ejemplo:
Estudiante(Cedula, nombre-estudiante, Dirección, teléfono, calificación, Asignatura,
Puntos
Año, semestre, Edad, Acudiente, nombre_asignatura, cod_profesor,
nom_profesor)
20
Si le aplicamos las formas normales a esta entidad nos damos cuenta que tiene
una serie de anomalías que necesitan ser corregidas para ser considera como
entidad correctamente normalizada.
Podríamos iniciar ubicando la llave primaria y sacando los campos que están
asociados únicamente a esta llave, entonces quedarían separado el resto de los
campos y la entidad estudiante como sigue:
Estudiantes(Cédula, Nombre-estudiante, Dirección, Teléfono, Edad, Acudiente)
Podemos ver que la existe campos que están asociados a la clave primaria pero que
también están asociados a otros campos.
Materia(Cédula, Cod_asignatura, Puntos, Año, Semestre, Nombre_asignatura,
cod_profesor, nom_profesor)
La llave primaria de estudiante se repite en la entidad materia, esto se debe a que
en la entidad materia no se cuenta con atributos suficiente para conformar una
llave primaria. Entonces se pasa la llave primaria de la entidad fuerte(dominante),
y esta conjuntamente con la asignatura conformarían la llave de la entidad
asignaturas_estudiantes, cod_asignatura, pero si consideraremos que el estudiante
puede repetir una asignatura entonces la llave debe incluir el año y e semestre. En
este paso la entidad estudiante se encuentra normalizada, esto lo comprobamos
cuando le aplicamos las formas normales y esta las cumple.
Segunda Forma Normal:
Este forma normal elimina todas las dependencias parciales y se colocan en otra
relación.
Una dependencia parcial es aquella en que uno o más atributos dependen de una
parte de la llave. Para est ejemplo el nombre de la asignatura es dependiente del
código de la asignatura que es parte de la llave, sin embargo no depende de la
cédula que es el otro elemento de la llave.
Al separar la asignatura quedaría así:
Asignaturas (cod_asignaturas, nombre_asignatura)
Asignaturas_Estudiantes (Cedula, cod_asignatura, Año, Semestre, Calificación,
Puntos, cod_profesor, nom_profesor)
21
Observe que la llave primaria de asignaturas_estudiantes no se hereda en la tabla
Asiganturas, debido a que esta cuenta con el criterio código asignatura que es
suficiente para identificar un registro, siempre que se considere que el código de la
asignatura nos e va a repetir.
En este punto la entidad original que teníamos se le ha aplicado la primera y
segunda forma normal y han resultado tres entidades.
1) Estudiantes(Cédula, Nombre-estudiante, Dirección, Teléfono, Edad, Acudiente).
2) Asignaturas (Cod_asignaturas, nombre_asignatura).
3) Asignaturas_Astudiantes (Cedula, cod_asignatura, Año, Semestre,
Calificación, Puntos, cod_profesor, nom_profesor).
Tercera Forma Normal:
Se deben eliminar todas las dependencias transitorias. Las dependencias
transitorias son aquellas en que un atributo no llave es dependiente de otro
atributo no llave. Si consideramos que en el análisis aparece el código del
profesor y el nombre del profesor, podemos ver que el nombre del profesor
depende del código del profesor y el código del profesor no es llave ni parte de
la llave. Entonces es necesario sacar este atributo junto al atributo relacionado
en una entidad aparte. Profesor (cod_profesor, nombre_profesor).
3) Asignaturas_Astudiantes (Cedula, cod_asignatura, Año, Semestre,
Calificación, Puntos, cod_profesor)
4) Profesor(cod_profesor, nom_profesor).
Cuarta Forma Normal:
La dependencia funcional multivalorada es el fundamento para la FN4. Y tal
como se ha mencionado cuando se ubican atributos multivalorados en una
entidad, esto da como resultado una nueva entidad.
Estudiantes_TesisCedula
Num_tesis
Tema
Area
22
Especialidad
El tema de la tesis puede ser cambiado en varias ocasiones, este hecho va ha
depender del estudiante, por tanto no sabemos si el estudiante va ha cambiar uno,
dos o N cantidad de temas, esto provoca que se cree una tabla nueva.
Estudiantes_Tesis
Tema
Cedula Num_Tesis
Num_tesis Tema
Area Estatus
Especialidad
De esta manera cada tesis esta asociada un tema y cuando veces el estudiante
cambie de tema no es necesario actualizar ni repetir el registro del la tabla
estudiante_tesis, sino que se actualiza en la tabla Tema.
Creación de Tablas.
Investigación.
Defina y ejemplifique los distintos tipos de datos empleados en Oracle.
Investigue otras formas de crear llaves primarias.
Recordemos que el texto y el contexto explicado anteriormente tiene como objetivo
la creación del diseño de una base de datos, que permita la creación de tablas con
relaciones de integridad que cumpla con las necesidades de las organizaciones.
En esta sección veremos la creación de distintos objetos de base de datos, que
permiten el manejo de información para una organización.
La creación de una tabla no es más que la representación de una entidad y sus
relaciones en la base de datos. Esta compuesta por la siguiente instrucción
Create table nombre_tabla
(nombre_atributo tipo_atributo(largo_atributo) requerido o no.
Creación de la tabla Asignaturas.
23
Create table asignaturas
(cod_asignatura varchar2(5) not null,
Nombre_asignatura varchar2(30) not null,
Clave varchar(10),
Constraint PK_asignatura primary key (cod_asignatura))
Observe que la sintaxis para la creación de la llave que usamos es:
Constraint nombre_llave primary key(campos_llaves)).
Debemos mencionar que existen diferentes sintaxis para la creación de tablas, al
igual que para la creación de constraint, pero usaremos los expuestos por motivos
funcionales.
Para la creación de relación entre tablas es necesario usar las llaves foráneas.
Cuando se crea un conjunto de tablas recuerde que se mantiene la relación de
jerarquía, por tanto se deben crear primero las tablas dominantes y posteriormente
las tablas subordinadas. Si necesitamos borrar una tabla lo debemos hacer de
manera inversa , primero la tablas hijas y posteriormente las tablas padres.
La sintaxis para la creación de llave foránea es:
Constraint nombre_llave foreign key(atributos_foráneos)
References tabla_referenciada(campos_referenciados).
Veamos la explicación con el ejemplo de la normalización.
Como ya creamos la tabla de asignatura, ahora crearemos la tabla de estudiantes.
Debe crear la llave primaria para esta tabla.
Create table estudiante
(Cedula varchar2(13) not null,
Nombre varchar2(30 not null,
Dirección varchar2(30) not null,
Teléfono varchar2(8),
Edad varchar2(2) not null,
Acudiente varchar2(30) not null,
)
24
Ahora crearemos la tabla estudiantes_ asignatura que mantiene una relación de
llave foránea:
Create table estudiantes_asignatura
(Cedula varchar2(13) not null,
Cod_asignatura varchar2(5) not null,
A_lec varchar2(4) not null,
S_lec varchar2(1) not nul,
Calificacion varchar2(1) not null,
Constraint pk_est_asig primary key (cedula, cod_asignatura),
Constraint fk_est foreign key (cedula) references estudiantes (cedula),
Constraint fk_asig foreign key (cod_asignatura) references asignaturas
(cod_asignatura)
Ligaduras de Integridad:
Bancos Cuentas
Cod_banco
Descripción
Cod_banco
N_cuenta
Monto_Inicial
Monto_actual
Fecha_apertura
estatus
Proporcionan un medio para asegurarse que las actualizaciones hechas a las base
de datos por los usuarios autorizados, no provoquen la pérdida de la consistencia
de los datos
25
Ligaduras de Dominio:
Estas ligaduras van a determinar los valores que debe tener un campo, así como los
tipos, máscaras y formatos que llevarán. Una definición de dominio no sólo
permite verificar los valores introducidos en la base de datos, sino examinar
también r consultas. Ilustrando la explicación podemos citar el caso en que una
cuneta no se puede abrir con un monto menor a B/. 100.00 , entonces el conjunto
dominio para el atributo monto serían todos los valores mayores B/. 100.00, Otro
ejemplo puede ser el estado de las cuentas que podrían estar en tres estado
Activa, Inactiva, y Congelada; entonces el dominio del atributo condición en la
tabla cuenta, serían los tres valores mencionados.
El lograr el cumplimiento de los dominios antes expuestos debe emplearse la
instrucción check conjuntamente con la creación del dominio.
Check(Monto_inicial >=50,00)
Este dominio está obligando que todos los monto de apertura no puedan ser
menores de 50.00
Trabajo Práctico
Muestre atributos que pueden tener un conjunto de atributos
específicos que constituyen su dominio.
Investigue como determinar que todos los valores carácter se guarden
en mayúscula.
26
Integridad Referencial
Esta integridad se da más que todo a nivel de SQL con el uso de las instrucciones
de llaves primarias y llaves foráneas. Como ejemplo, no podemos tener un banco
en la tabla cuenta si este no se encuentra en la tabla de bancos.
Asertos:
Expresa una condición que se desea que la base de datos satisfaga siempre. De
hecho la ligaduras de dominio y la integridad referencial son dos tipos de asertos,
pero existen muchas condiciones que no se pueden determinar mediante estos
conceptos, por eso es necesario utilizar otro tipo de condiciones.
Un caso de estudio puede ser que el monto de un cheque debe ser menor al
monto en existencia de la cuenta.
Disparadores(Trigger):
Es una orden que el sistema ejecuta de forma automática como efecto secundario
de la de la modificaciones de las bases de datos.
Para diseñar un mecanismo disparador es necesario cumplir dos requisitos:
Especificar las condiciones en que se va ha ejecutar el disparador.
Especificar las acciones que van ha ejecutarse cuando se ejecute el disparador.
27
c) Bibliografía Específica Obligatoria.
Fundamentos de base de datos.
Abraham Silberschatz
Tercera Edisiòn.
d) Bibliografía Complementaria
Oracle Manual de Referencias
George Koch.
e)actividades de aprendizaje.
3.1 Tabla 1.
Automóvil
Cod_propietario
Placa
Nombre_propietario
Modelo
Color
Año
Destino_viaje
N_viaje
Cod_conductor
Costo
Cod_pasajero
Nombre_pasajero
Cod_conductor
Nombre_conductor
Telefono Propietario.
3.2 Una Universidad le ha pedido a usted que diseñe un sistema que le permita
llevar un control estadístico de todos los egresados. Realice un análisis que
le permita a esta Universidad obtener información útil.
28
3.3 El disquete que entregará, debe contener el scripts que se necesita para crear
las tablas que han resultado del análisis hecho en la parte 2. Este actividad se
evaluará ejecutando el archivo de los scripts en la base de datos.
f) AUTOEVALUACIÓN.
Encierre en un circulo la letra que contiene la respuesta correcta.
1. Si dentro de dentro de la tabla encuentro que un atributo
depende sólo de una parte de la tabla es una dependencia de tipo:
a. Transitoria
b. Total.
c. Parcial.
2. Los atributos multivalorados están relacionados con la forma
normal
a. Primera
b. Tercera
c. Cuarta
3. Al momento de crear un disparador debo saber:
a. Si falla una integridad
b. Si viola la llave primaria
c. El momento en que debe disparar.
4. Uno de los objetivos principales de la normalización es :
a. Duplicar la información
b. Aumentar la integridad
c. Facilitar el manejo de la información.
5. La integridad referencial en la normalización se da principalmente a través
a. Los Dominios
b. Las llaves primarias y foráneas
c. Los controles.
29
IV UNIDAD. CONCEPTOS BASICOS DE SQL.
a) Objetivo Específico:
Reconocer y utilizar las funciones del lenguaje SQL, enfatizando en el
lenguaje SQL de Oracle.
b) Síntesis Conceptual del contenido de la asignatura.La información que se encuentra almacenada en la base de datos requiere de
herramientas que permitan que pueda ser manipulada. Para este fin se utiliza el
lenguaje de manipulación de datos S.Q.L. y las instrucciones básicas que permiten
son manejo.
Historia del Lenguaje.
El lenguaje SQL aparece inicialmente en 1970 en los laboratorios de IBM, y fue
conocido con el nombre de Sequel, pero este lenguaje ha evolucionado y su
nombre cambió a SQL (Lenguaje Estructurado de consulta), actualmente
numeroso productos son compatibles con él.
Aunque el SQL se considera un lenguaje de consulta, contiene muchas otras
características, como por ejemplo: definir las estructuras de los datos,
modificación de los datos en la base de datos y para la definición de las ligaduras
de seguridad.
Estructura Básica
La estructura básica de una expresión SQ consiste de tres cláusulas: select,
from, where
Select: Se utiliza para obtener los atributos deseados de una consulta.
From: Lista las relación(es), que van ha estar involucradas en una consulta.
Where: Establece las condiciones que han de cumplirse al momento de hacer una
consulta, esta cláusula es optativa, por tanto puede aparecer o no en una consulta.
La sintaxis de estas tres cláusulas básicas es :
select atributo1, atributo2, atributo3, atributon...
from Tabla1, Tabla2, Tabla1n....
where Condición1
30
Condición2
Condiciónn.....
Usando el ejemplo de las tablas cuenta y banco se puede ilustrar lo expuesto:
1. Muestre el detalle de cada banco,
salida: codigo y nombre.
Select Codigo, Descripcion
From bancos.
2. Muestre el detalle cada cuenta.
Salida: Cod_banco, número_cuenta, monto_inicial
Select cod_banco, N_cuenta, monto_inicial.
From cuentas
Con estos dos ejemplos de expuestos hemos visto claramente el funcionamiento de
las instrucciones select y from .
Veamos como funciona la instrucción Where.
Suponga que desea obtener solamente detalle de las cuentas para el banco 01.
Entonces necesita condicionar en la cláusula where por este valor para el código
del banco
Select * from cuentas
Where cod_banco = ’01’
Esta consulta nos mostraría toda la información de las cuentas pero solamente
para el banco ‘01’. Usamos el comidin *, que nos permite seleccionar todos los
campos de una tabla. De igual forma pudimos haber hecho la siguiente consulta:
Select Cod_banco, N_cuenta, Monto_Inicial, Monto_actual ,Fecha_apertura
from cuentas
Where cod_banco = ’01’
El resultado sería el mismo.
31
Se usa el comodín cuando se desea obtener todos los detalles de una tabla, pero
no puede usarse cuando se desea consultar más de una tabla.
También puede usarse el comodín para escoger todos los campos de una tabla y
realizar una operación matemática sobre un campo específico.
Ejemplo:
Seleccione todas las cuentas que están activas y muestre el 5% del monto actual de
cada una.
Select *, (monto_actual *.05)
From cuentas
Where estatus = ‘A’
Investigación:
Explique y ejemplifique el uso de las instrucciones AND y OR en formato
sencillas y anidadas.
Explique y ejemplifique de las cláusulas IN y BETWEEN.
Establecer Relación entre varias tablas:
Nota: Esta investigación está detallada en la descripción de las actividades.Las relaciones entre tablas no son más que relaciones de integridad que ya hemos
mencionado.
Esta relaciones se establecen generalmente entre las llaves de las tablas,
específicamente de la llave primaria a la llave foránea. Esto no indica que no
se puedan establecer relaciones entre campos que sean no llave, pero si deben ser
del mismo tipo o deben ser convertidos a campos del mismo tipo.
Como convertir un campo a un tipo determinado:
Para realizar esta operación usamos las instrucción: to_char(campo),
to_date(campo), to number(campo).
Selección el detalle de los bancos, mostrando el código el banco como un campo
numérico
Select to_number(cod_banco), descripción
From bancos.
32
Para establecer la relación entre la tabla bancos y la tabla cuenta, vemos
claramente que tienen un atributo que es llave primaria en una tabla y llave foránea
en la otra, el campo cod_banco, entonces podemos usar este campo para
establecer la relación, y deducimos que la relación entre dos tablas generalmente
se establece entre los campos llaves.
Muestre el detalle de las cuentas que tiene cada banco: Nombre_banco ,
número_cuenta, monto_actual.
Observe que es necesario usar ambas tablas para poder realizar la consulta ya que
el en nombre del banco no se encuentra en la tabla cuenta, y los campos
número_cuenta y monto_actual no se encuentran en la tabla banco.
Veamos la relación
Select descripcion, N_cuenta, Monto_actual
From bancos, cuentas
Where cod_banco = cod_banco.
Para efectos del ejemplo la relación está bien establecida, pero funcionalmente no
es correcta ya que el lenguaje se confunde al encontrarse con el código de banco
ya que este atributo existe en ambas tablas, entonces es necesario especificar de
que tabla es cada atributo cuando el atributo se encuentra en más de una tablas
que intervienen en la consulta. Podemos lograr esto colocando el nombre de la
entidad al lado izquierdo de cada atributo separándolo con un punto.
Select descripcion, N_cuenta, Monto_actual
From bancos, cuentas
Where bancos.cod_banco = cuentas.cod_banco.
Este ejemplo es correcto, pero no es práctico al momento de realizar la consulta, ya
que resultaría tedioso escribir el nombre de cada entidad. Podemos utilizar el
concepto de los alias para diferenciar los campos de cada tabla y disminuir
esfuerzo al escribir n la consulta y eficiencia al momento de consultar la misma.
Los alias son sinónimos temporales(dentro de la consulta) para cada tabla y como
se mencionó anteriormente, se declaran colocándolo a la derecha de cada tabla
separada por un espacio y la izquierda de cada atributo separada por punto.
33
Select descripcion, N_cuenta, Monto_actual
From bancos a, cuentas b
Where a.cod_banco = b.cod_banco.
Podemos realizar consultas que implican un poco mas de complejidad en el where,
pero que si estudiamos detenidamente nos damos cuenta que es sucesión lógica
de lo que sabemos.
Muestre el detalle de las cuentas que tiene cada banco, cuando la cuenta este
activa y tenga un monto_actual mayor que B/. 100.000.00
Select descripcion nombre, N_cuenta cuenta, Monto_actual Monto
From bancos a, cuentas b
Where a.cod_banco = b.cod_banco.
And estatus = ‘A’
And monto_actual >= 100000
Observe que hemos introducido un concepto nuevo que es el renombramiento de
los atributos, esto podemos hacerlo con el fin de no aparezca el nombre de la
columna como está en la base de datos sino el que nosotros le especifiquemos.
34
c)Bibliografía
Apliqe SQL
James R Groff, Paul N Weinberg
Mc Graw Hill
d)Bibliografía Complementaria
Fundamentos de Bases de datos
Abraham Silberchatz.
Tercera Edición.
McGraw Gill.
Manual de Referencia Oracle
George Koch.
e) Actividades de Aprendizaje
Departamento Empleado
Cod_departamento Departamento
Nombre Cedula
Cedula_jefe Nombre
Salario
Estatus
4.1
1. En basado en las tablas de departamentos y empleados, realice los siguientes
SQL.
a) Muestre el detalle de cada departamento.
Salida: Cod_departamento Nombre
b. Seleccione el detalle solamente para el departamento 21.
Salida: Cod_departamento Nombre
c. Seleccione el detalle de cada empleado para los empleados activos.
Salida: Departamento Cedula Nombre Salario
d. Muestre el detalle de todos los empleados que pertenecen al departamento 15.
Salida: Departamento Cedula Nombre Salario
e. Seleccione los empleados del departamento 21 que ganan más de 500. dólares.
Salida: Departamento Cedula Nombre Salario
35
4.2 Al realizar la investigación de la página 36 sobre las cláusulas IN y Between
debe realizar los siguientes SQL.
a) Muestre el detalle de los empleados que estan activos o de licencia (Activos =
‘A’, Licencias = ‘L’). In.
Salida: Departamento Cedula Nombre Salario
b) Muestre el detalle de aquellos empleados que gana entre 500 y 800 dólares.
Between
Salida: Departamento Cedula Nombre Salario
f) AUTOEVALUACION
1. Para que una consulta nos muestre solamente la cuenta
47, debemos emplear la instrucción:
a. Where
b. From
c. Having
2. Para escoger dos tablas en una consulta debemos especificarlas en la cláusula
a. Where
d. From
e. Having
3. Para distinguir dos campos que tienen el mismo nombre en una consulta,
usamos
a. Distinct
a. Alias
b. Where
4. Para establecer las relaciones entre dos tablas debemos relacionar:
a. Llave primarias y llaves primarias
b. Llaves primarias y llaves foránesa
c. Llaves foráneas y llaves foráneas.
5. Si deseo consultar sólo las cuentas ‘001’ y ‘005’, debemos usar la instrucción :
a. Between
b. In
c. Or
36
6. Si deseo obtener las cuentas que tienen un monto inicial en un rango de 100.00
a 1000.00 debemos emplear la instrucción
a. Between
b. In
c. Or
37
V UNIDAD. FUNCIONES Y VISTAS LOGICAS.
a) Objetivo Específico :
Practicar el uso de funciones avanzadas del SQL
b) Síntesis Conceptual del contenido de la asignatura.
Además de realizar consultas sencillas, el SQL es la herramienta por excelencia
para realizar consultas complejas o con detalle especiales al momento de brindar
información. Estudiaremos algunas funciones avanzadas en el del SQL.
Las funciones nos permiten elaborar consultas que tienen un grado de
complejidad considerable, aunque también son usadas para realizar cualquier
consulta de manera más sencilla. Por su parte las vistas lógicas permitenobtener
resultados de varias tablas en una sóla además de brindar niveles de seguridad al
permitir sólo consultar la información.
Funciones de grupo:
Las funcione de grupos permiten realizar operaciones sobre un grupo de datos, son
múltiples las funciones existentes pero veremos los ejemplos de las funciones:
SUM(), COUNT(),MAX,MIN.
Esta funciones trabajan relacionadas muy directamente a la función principal de
agrupamiento group by. La cual agrupa una cantidad de valores de acuerdo a
atributos especificados .
38
Usaremos las tabla para ejemplificar las funciones de grupo
Bancos
Cod_banco Descripcion
01 Nacional
02 Extranjero
03 Popular
Cuentas
Cod_banc
o
N_cuentas Monto_inicia
l
Monto_actua
l
Fecha_ap
01 0012 4550.00 20.00 23/01/2002
01 0015 550.00 220.00 13/02/2002
01 0013 4550.00 20.00 23/01/2002
03 0059 5250.00 180.00 20/02/2001
02 0508 789.00 154.00 25/06/2001
03 0023 7892.00 178.00 30/02/2002
03 0021 789.00 210.00 25/02/2002
02 0054 897.00 56.00 20/02/2002
01 0004 1245.00 160.00 20/03/2001
La orden group by se omite con las funciones de grupo cuando se quiere obtener
todos los registros de la tabla, suponga que usted desea contar cuantos bancos
existen. Definitivamente necesitamos usar la instrucción, la consulta sería como
sigue:
Select count(*) from bancos.
De igual manera si necesitamos saber cuantas cuentas existe, basta con escribir la
sentencia básica: Select count(*) from cuentas.
Pero si quisiéramos saber cuantos cuentas tiene cada bancos, requerimos usar la
sentencia group, de la siguiente manera:
Select cod_banco, count(*) from cuentas
Group by cod_bancos.
39
Esta consulta mostraría cada banco con el total de cuentas que tiene, para nuestro
ejemplo la salida sería como sigue:
Cod count(*)
01 4
02 2
03 3
Los ejemplos expuestos de funciones de grupo son aplicables a cualquier
instrucción de agrupamiento, tales como average, promedios, etc.
Subconsultas:
Las subcolsulta son la descomposición de consultas en porciones más pequeñas,
pero que al final generan los resultas de manera conjunta. Las subconsultas
también son usadas para realizar consultas que tienen un nivel alto de
complejidad.
Siguiendo el ejemplo de expuesto suponga que desea obtener aquellas cuentas
que tienen un monto inicial mayor que el de la cuenta 0050, entonces realizamos
la consulta de esta forma:
Select Cod_banco, n_cuenta, monto_inicial
From cuentas
Where monto_inicial > (select monto_inicial
From cuentas
Where n_cuenta = ‘0050’).
La cláusula In funciona también como un tipo de subconsulta, veamos un
ejemplo.
Muestre todos los bancos que tiene un monto_actual menor de 100.00
Select cod_banco, descripción
From bancos
Where cod_banco IN (select cod_banco
From cuentas
Where monto_actua < 100.00).
40
La clausula Exists es otro ejemplo de subconsulta, y podemos ilustrarla con el
mismo ejemplo aterior.
Muestre todos los bancos que tiene un monto_actual menor de 100.00
Select cod_banco, descripción
From bancos
Where cod_banco exists (select cod_banco
From cuentas
Where monto_actua < 100.00).
41
Investigación:
Defina y ejemplifique el uso de cada una de las siguientes instrucciones:
Having
Creación de vistas
Clausula Like
Utilización de Instrucciones para actualizar, modificar y borrar registro de la base
de datos.
42
c) Bibliografía Especifica
Apliqe SQL
James R Groff, Paul N Weinberg
Mc Graw Hill
d) Bibliografía Complementaria
Manual de Referencia Oracle
George Koch.
Fundamentos de Bases de datos
Abraham Silberchatz.
Tercera Edición.
McGraw Gill.
e) Actividades de aprendizaje.
5.1 Para la investigación asignada debe describir textualmente cada concepto y además
ejemplicar su uso.
5.2
Selecciones todas aquellas cuentas que iniciaron con el mismo monto.
Selecciones todos aquellos bancos que no tiene cuenta.
Seleccione todos los bancos que tienen más de una cuenta.
Seleccione los bancos que tienen un monto total mayor de 10000.
f) Autoevaluación.
43
8. Proyecto Final
El proyecto final tiene como objetivo primordial practicar y desarrollar los
conocimientos adquiridos a través del curso.
Para este propósito se ha seccionado el desarrollo del mismo en fases, ya que de
esta manera se puede dar un mejor apoyo y seguimiento al mismo. El estudiante
deberá hacer un esfuerzo para realizar este proyecto lo más real posible, ya que
redundará en beneficio de su formación profesional.
Cada estudiante deberá presentar un caso de estudio, o situación que requiera de
un análisis para desarrollar un sistema. Esta primera fase se presentará al
profesor, el cuál deberá considerar si es funcional o no trabajar está situación como
tema de proyecto. La fecha limite para la presentación de esta parte es hasta la
quinta 4 semana. En esta fase de deben entregar, la descripción del sistema, las
posibles consideraciones a tomar en cuanta en el análisis, los posibles
inconvenientes, y el alcance del sistema.
La segunda fase consiste en realizar la modelación del sistema, en esta fase se
debe presentar el diagrama relacional en su estado físico, el diccionario de datos,
las llaves de cada entidad y los scripts necesarios para crear estas tablas en la base
de datos.
Esta presentación es sólo en papel, y deben ser evaluadas por el profesor para su
posterior ejecución en la base de datos. La fechas máxima para la presentación de
esta fase es hasta la 9 semana
La tercera fase es la presentación formal del proyecto y debe ser entregado un
disquete con los scripts que ejecutan las tablas. La evaluación se hará ejecutando
el archivo de los script sobre la base de datos. Es necesario entregar también
los scripts que insertan, modifican y borran información de la bases de datos. La
semana antes del examen final es la fecha para entregar este proyecto.
44
top related