Professional Documents
Culture Documents
Manual de Asignatura
Basado en Competencias Profesionales
Base de Datos I
Enero 2012
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Contenido
INTRODUCCIN .................................................................................. 6
UNIDAD TEMTICA I FUNDAMENTOS DE BASES DE DATOS. ......................... 7
1.1 Conceptos Bsicos. ................................................................................................................. 8
1.2 Modelos de Bases de Datos .................................................................................................... 9
1.2.1 Modelos Fsicos De Datos................................................................................. 9
1.2.2 Modelos Lgicos Basados En Registros ......................................................... 10
1.2.3 Modelos Lgicos Basados En Objetos ............................................................ 11
1.3
1.4
1.5
1.6
1.6.1
1.7
1.8
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
3.1.4 Relaciones....................................................................................................... 36
3.1.5 Clave primaria, alternativa y Fornea ............................................................. 38
3.2 Transformacin del modelo E-R, EE-R al Modelo Relacional. ........................................... 38
3.2.1 Manejo de Entidad Dbiles. ............................................................................. 39
3.3 Esquema de una relacin. ..................................................................................................... 39
3.4 lgebra Relacional ............................................................................................................... 40
3.4.1 Operacin de Seleccin o Restriccin. ............................................................ 41
3.4.2 Operacin de Proyeccin. ............................................................................... 41
3.4.3 Composicin de operaciones relacionales ...................................................... 42
3.4.4 Operacin Unin ............................................................................................ 42
3.4.5 Operacin diferencia de conjuntos .................................................................. 44
3.4.6 Operacin Producto Cartesiano. ..................................................................... 44
3.5 Actividad 3 Transformacin al modelo relacional ............................................................... 47
3.6 Actividad 4 Transformacin del ER al Relacional. ............................................................. 47
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
REFERENCIAS .................................................................................. 95
ANEXOS ............................................................................................. 95
Anexo 1. Formato Requerimientos de Informacin. .................................................................. 95
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
INTRODUCCIN
DESARROLLO
El manual est compuesto por 7 unidades temticas:
I.
II.
III.
IV.
V.
VI.
VII.
Cada uno de estas unidades cuenta con informacin que sustenta cada uno de los temas
contenido en la unidad. Esta informacin en su mayora ha sido colectada de libros, sitios de
internet, para brindar al alumno informacin seria y de calidad. Se integran prcticas a los temas
para fortalecer el aprendizaje significativo del alumno.
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Temas
Conceptos Bsicos
Anlisis de
requerimientos de
base de datos.
Saber
Saber hacer
Ser
Analtico
Disciplinado
Sistemtico
Organizado
Capaz de sintetizar
Hbil para el trabajo en
equipo.
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Tolerante
Proactivo
Hbil para comunicarse de
forma oral y escrita
Capaz de sintetizar
Resultado de aprendizaje:
Elaborar a partir de un problema planteado, un listado de requerimientos de la base de datos, que
incluya:
Clasificacin de los datos de acuerdo a su funcin.
Estructura bsica de los datos.
Tcnica de recoleccin empleada.
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Separacin y aislamiento de los datos: Cuando los datos se separan en distintos archivos, es
ms complicado acceder a ellos, ya que el programador de aplicaciones debe sincronizar el
procesamiento de los distintos archivos implicados para asegurar que se extraen los datos
correctos.
Duplicacin de datos. La redundancia de datos existente en los sistemas de archivos hace que
se desperdicie espacio de almacenamiento y lo que es ms importante: puede llevar a que se
pierda la consistencia de los datos. Se produce una inconsistencia cuando copias de los
mismos datos no coinciden.
Dependencia de datos. Ya que la estructura fsica de los datos (la definicin de los archivos y
de los registros) se encuentra codificada en los programas de aplicacin, cualquier cambio en
dicha estructura es difcil de realizar. El programador debe identificar todos los programas
afectados por este cambio, modificarlos y volverlos a probar, lo que cuesta mucho tiempo y
est sujeto a que se produzcan errores. A este problema, tan caracterstico de los sistemas de
archivos, se le denomina tambin falta de independencia de datos lgica-fsica.
Formatos de archivos incompatibles. Ya que la estructura de los archivos se define en los
programas de aplicacin, es completamente dependiente del lenguaje de programacin. La
incompatibilidad entre archivos generados por distintos lenguajes hace que los archivos sean
difciles de procesar de modo conjunto.
Consultas fijas y proliferacin de programas de aplicacin. Desde el punto de vista de los
usuarios finales, los sistemas de archivos fueron un gran avance comparados a los sistemas
manuales. A consecuencia de esto, creci la necesidad de realizar distintos tipos de consultas
de datos. Sin embargo, los sistemas de archivos son muy dependientes del programador de
aplicaciones: cualquier consulta o informe que se quiera realizar debe ser programado por l.
Por lo que surge el manejo de informacin en bases de datos. Una base de datos es una recopilacin de
informacin relativa a un asunto o un propsito particular, como el seguimiento de pedidos de clientes o
el mantenimiento de una coleccin de msica.
8
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Modelo jerrquico
Es similar al modelo de red en cuanto a las relaciones y datos, ya que estos se representan por
medio de registros y sus ligas. La diferencia radica en que estn organizados por conjuntos de rboles en
lugar de grficas arbitrarias.
Modelo relacional
En este modelo se representan los datos y las relaciones entre estos, a travs de una coleccin de
tablas, en las cuales los renglones (tuplas) equivalen a cada uno de los registros que contendr la base
10
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
de datos y las columnas corresponden a las caractersticas (atributos) de cada registro localizado en la
tupla;
Consideremos una empresa que requiere controlar a los vendedores y las ventas que ellos realizan; de
este problema determinamos que los objetos o entidades principales a estudiar son el empleado
(vendedor) y el artculo (que es el producto en venta).
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
1.3
Para disear una base de datos debemos establecer un proceso que nos permita plasmar el mundo real
mediante una serie de datos. En primer lugar la imagen que obtenemos del mundo real se denomina
modelo conceptual y consiste en una serie de elementos que definen lo que queremos plasmar del
mundo real en una base de datos.
Comenzando con algunos conceptos bsicos para el mejor entendimiento del mismo, se manejarn
definiciones de trminos que involucran a las bases de datos:
Datos: Conjunto de caracteres con algn significado, pueden ser numricos, alfabticos, o
alfanumricos.
Informacin: Es un conjunto ordenado de datos los cuales son manejados segn la necesidad del
usuario, para que un conjunto de datos pueda ser procesado eficientemente y pueda dar lugar a
informacin, primero se debe guardar lgicamente en archivos.
Campo: Es la unidad ms pequea a la cual uno puede referirse en un programa. Desde el punto
de vista del programador representa una caracterstica de un individuo u objeto.
Registro: Coleccin de campos de iguales o de diferentes tipos.
Archivo: Coleccin de registros almacenados siguiendo una estructura homognea.
En otras palabras una base de datos es un conjunto exhaustivo no redundante de datos estructurados y
organizados independientemente de su utilizacin y su implementacin. Las bases de datos proporcionan
la infraestructura requerida para los sistemas de apoyo a la toma de decisiones y para los sistemas de
informacin estratgicos, ya que estos sistemas explotan la informacin contenida en las bases de datos
de la organizacin para apoyar el proceso de toma de decisiones o para lograr ventajas competitivas. Por
este motivo es importante conocer la forma en que estn estructurados las bases de datos y su manejo.
En este marco se puede definir una base de datos como:
Conjunto o coleccin de archivos interrelacionados, cuyo contenido engloba a la informacin
concerniente de una organizacin, de tal manera que los datos estn disponibles para los usuarios, una
de las finalidades de las bases de datos es eliminar la redundancia o por lo menos minimizarla.
1.4
Las funciones principales de un sistema de base de datos es disminuir los siguientes aspectos:
Redundancia e inconsistencia de datos. Puesto que los archivos que mantienen almacenada la
informacin son creados por diferentes tipos de programas de aplicacin existe la posibilidad de que si
no se controla detalladamente el almacenamiento, se pueda originar un duplicado de informacin, es
decir que la misma informacin sea ms de una vez en un dispositivo de almacenamiento. Esto aumenta
12
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
los costos de almacenamiento y acceso a los datos, adems de que puede originar la inconsistencia de los
datos, es decir, diversas copias de un mismo dato no concuerdan entre s. Por ejemplo: que se actualiza
la direccin de un cliente en un archivo y que en otros archivos permanezca la anterior.
Dificultad para tener acceso a los datos. Un sistema de base de datos debe contemplar un entorno de
datos que le facilite al usuario el manejo de los mismos. Supngase un banco, y que uno de los gerentes
necesita averiguar los nombres de todos los clientes que viven dentro del cdigo postal 78733 de la
ciudad. El gerente pide al departamento de procesamiento de datos que genere la lista correspondiente.
Puesto que esta situacin no fue prevista en el diseo del sistema, no existe ninguna aplicacin de
consulta que permita este tipo de solicitud, esto ocasiona una deficiencia del sistema.
Aislamiento de los datos. Puesto que los datos estn repartidos en varios archivos, y estos no pueden
tener diferentes formatos, es difcil escribir nuevos programas de aplicacin para obtener los datos
apropiados.
Anomalas del acceso concurrente. Para mejorar el funcionamiento global del sistema y obtener un
tiempo de respuesta ms rpido, muchos sistemas permiten que mltiples usuarios actualicen los datos
simultneamente. En un entorno as la interaccin de actualizaciones concurrentes puede dar por
resultado datos inconsistentes. Para prevenir esta posibilidad debe mantenerse alguna forma de
supervisin en el sistema.
Problemas de seguridad. La informacin de toda empresa es importante, aunque unos datos lo son ms
que otros, por tal motivo se debe considerar el control de acceso a los mismos, no todos los usuarios
pueden visualizar alguna informacin, por tal motivo para que un sistema de base de datos sea confiable
debe mantener un grado de seguridad que garantice la autentificacin y proteccin de los datos. En un
banco por ejemplo, el personal de nominas solo necesita ver la parte de la base de datos que tiene
informacin respecto a los distintos empleados del banco y no a otro tipo de informacin.
Instancias y esquemas. Con el paso del tiempo la informacin que se va acumulando y desechando en la
base de datos, ocasiona que est cambie.
Instancia. Es el estado que presenta una base de datos en un tiempo dado. Vemoslo como una
fotografa que tomamos de la base de datos en un tiempo t, despus de que transcurre el tiempo
t la base de datos ya no es la misma.
Esquema. Es la descripcin lgica de la base de datos, proporciona los nombres de las entidades
y sus atributos especificando las relaciones que existen entre ellos. Es un banco en el que se
inscriben los valores que irn formando cada uno de los atributos. El esquema no cambia, los que
varan son los datos y con esto tenemos una nueva instancia.
Ejemplo:
Considerando el ejemplo del vendedor que vende artculos, esquema e instancia segn nuestro ejemplo,
quedara:
Esquema
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Como podemos observar el esquema nos muestra la estructura en el cual se almacenaran los datos, en
este caso en registros cuyos nombres de campos son: por parte del vendedor (Nombre, puesto, salario,
RFC) y por el artculo (Clave, costo, descripcin); La instancia representa a una serie de datos
almacenados en los registros establecidos por el esquema, estos datos varan, no permanecen fijos en el
tiempo.
1.5
Denominado por sus siglas como: DBA, Database Administrator. Es la persona encargada y que tiene el
control total sobre el sistema de base de datos, sus funciones principales son:
Podemos definir a los usuarios como toda persona que tenga todo tipo de contacto con el sistema de
base de datos desde que este se disea, elabora, termina y se usa.
Los usuarios que accedan una base de datos pueden clasificarse como:
1.6
La recoleccin de datos se refiere al uso de una gran diversidad de tcnicas y herramientas que pueden
ser utilizadas por el analista para desarrollar los sistemas de informacin, los cuales pueden ser la
observacin, las entrevistas, el cuestionario, la encuesta, el diagrama de flujo y el diccionario de datos.
Estos instrumentos se aplican en un momento en particular, con la finalidad de buscar informacin que
ser til.
14
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Observacin.
La observacin, permite al analista determinar que se est haciendo, como se est haciendo, quien lo
hace, cuando se lleva a cabo, cunto tiempo toma, dnde se hace y por qu se hace.
Preparacin para la observacin
1.
2.
3.
4.
Secuela de la observacin
1.
2.
Entrevista.
Las entrevistas se utilizan para recabar informacin en forma verbal, a travs de preguntas que propone
el analista. Quienes responden pueden ser gerentes o empleados, los cuales son usuarios actuales del
sistema existente, usuarios potenciales del sistema propuesto o aquellos que proporcionarn datos o
sern afectados por la aplicacin propuesta. El analista puede entrevistar al personal en forma individual
o en grupos.
En otras palabras, la entrevista es un intercambio de informacin que se efecta cara a cara. Es un canal
de comunicacin entre el analista y la organizacin; sirve para obtener informacin acerca de las
necesidades y la manera de satisfacerlas, as como consejo y comprensin por parte del usuario para
toda idea o mtodo nuevos.
15
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Preparacin de la Entrevista
1.
2.
3.
4.
5.
Cuestionarios
Los cuestionarios proporcionan una alternativa muy til para la entrevista; sin embargo, existen ciertas
caractersticas que pueden ser apropiadas en algunas situaciones e inapropiadas en otra. Al igual que la
entrevistas, deben disearse cuidadosamente para una mxima efectividad.
Cuestionario Abierto
Al igual que las entrevistas, los cuestionarios pueden ser abiertos y se aplican cuando se quieren conocer
los sentimientos, opiniones y experiencias generales; tambin son tiles al explorar el problema bsico,
por ejemplo, un analista que utiliza cuestionarios para estudiar los mtodos de verificacin de crdito, es
un medio. El formato abierto proporciona una amplia oportunidad para quienes respondan escriba las
razones de sus ideas. Algunas personas sin embargo, encuentran ms fcil escoger una de un conjunto de
respuestas preparadas que pensar por s mismas.
Cuestionario Cerrado
El cuestionario cerrado limita las respuestas posibles del interrogado. Por medio de un cuidadoso estilo
en la pregunta, el analista puede controlar el marco de referencia. Este formato es el mtodo para
obtener informacin sobre los hechos.
1.7
INSTRUCCIONES
Desarrollar un mapa conceptual del tema: Conceptos bsicos deber incluir todos los conceptos
16
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
vistos en clase.
INDICADOR O
DESCRIPCIN
VARIABLE
Datos
generales
Ortografa y
redaccin
Presentacin
Aspectos
generales
CUMPLE
NO
FORMA
Asignatura, Unidad temtica, Nombre de la
actividad, Nombre del alumno(os), matrcula,
nombre del profesor, fecha.
Ortografa sin errores.
PORCENTAJE
5
10
Legible
Portada con los datos generales, encabezado
y pie de pgina a partir de la segunda pgina
especificando el nombre de la carrera y
nombre de la actividad.
10
1.8
40
20
10
100
NOMBRE DE LA PRCTICA:
UNIDAD TEMTICA:
TEMA:
OBJETIVO DE LA PRCTICA:
Requerimientos de Informacin
I. Fundamentos de Bases de Datos.
Anlisis de requerimientos de base de datos.
Implementar un instrumento que le permita obtener
informacin y establecer los requerimientos para resolver el
problema planteado.
TIEMPO DE LA PRCTICA:
2 Hrs
FECHA:
DESCRIPCIN:
17
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
El alumno deber disear y construir un instrumento que permita obtener datos para establecer
los requerimientos a partir de los cuales se construir el modelo entidad relacin.
Problemas sugeridos:
1. Determine qu datos necesita para llevar el inventario de productos de una tiendita de
abarrotes.
2. Determine qu datos necesita si quiere llevar el control de los datos personales del grupo
donde est usted inscrito.
3. Determine qu datos necesita si desea realizar un control de los oficios que se emiten en
la direccin de la carrera.
Entregue por escrito en el formato previamente establecido y dado por el profesor de asignatura
sus requerimientos de informacin. (Revise anexo 1)
MATERIALES Y EQUIPOS:
Computadora
PROCEDIMIENTO:
1. Organizarse en equipo mximo de 3 personas
2. Analice y determine los requerimientos de informacin necesarios para resolver el
problema planteado por el profesor.
3. Presente su reporte de trabajo bajo las siguientes condiciones:
Elabore su reporte en un documento en un archivo de Word con letra arial de 10 o 12
pts. para el texto y de 12 o 14 pts. para ttulos y estructurar el contenido de la siguiente
manera:
Portada
ndice
Introduccin
Desarrollo
Conclusin
Bibliografa
La extensin mxima del documento a entregar es de 6 hojas, incluyendo portada.
CUESTIONARIO
REFERENCIAS
18
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
CUMPLE
DESCRIPCIN
SI
NO
PORCENTAJE
ACTITUD (SER)
Puntualidad
Trabajo en
equipo
5
5
CONOCIMIENTO (SABER)
Requisitos de
Informacin
Requisitos de
Informacin
20
20
20
30
100
EVALUACIN: LA AUSENCIA PARCIAL O TOTAL DE ALGN INCISO TENDR UNA PENALIZACIN ACORDE A LA
PUNTUACIN SEALADA EN CADA INCISO
OBSERVACIN:
EVALUADOR
(NOMBRE Y
FIRMA)
Temas
Saber
Saber hacer
Ser
19
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Temas
Saber
Saber hacer
Ser
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Hbil para comunicarse de
forma oral y escrita
Capaz de sintetizar
modelo
Resultado de aprendizaje:
Elaborar un documento a partir de un problema planteado que contenga:
Diagrama entidad-relacin (E-R)
Diagrama entidad-relacin extendido (EE-R).
20
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
2.1.2 Relaciones
Una entidad se puede asociar o relacionar con ms entidades a travs de relaciones, Una relacin es la
asociacin que existe entre dos a ms entidades.
Por ejemplo, consideremos una empresa que requiere controlar a los vendedores y las ventas que ellos
realizan; de este problema determinamos que los objetos o entidades principales a estudiar son el
empleado (vendedor) y el artculo (que es el producto en venta), y las caractersticas o atributos que los
identifican son:
Empleado:
Nombre
Puesto
Salario
R.F.C.
Artculo:
Descripcin
Costo
Clave
21
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Smbolo
Representa
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Ntese en este caso que el extremo punteado de la flecha de la relacin de A y B, indica una entidad A
conectada a muchas entidades B.
23
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
24
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Ejemplo:
Tomando el ejemplo del libro de fundamentos de base de datos de Henry F. Korth.
Donde:
Se tiene las entidades Cta_Ahorro y Cta_Cheques, ambas tienen los atributos semejantes de No_Cta y
Saldo, aunque adems de estos dos atributos, Cta_Ahorro tiene el atributo Tasa_Interes y Cta_Cheques
el atributo Saldo_Deudor. De todos estos atributos podemos juntar (generalizar) No_Cta y Saldo que son
iguales en ambas entidades.
Entonces tenemos:
Podemos leer esta grfica como: La entidad Cta_Ahorro hereda de la entidad CUENTA los atributos
No_Cta y saldo, adems del atributo de TasaInteres, de forma semejante Cta_cheque tiene los atributos
de No_Cta, Saldo y SaldoDeudor.
25
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
26
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
2.2.2 Especializacin.
El proceso por el que se definen las diferentes subclases de una superclase se conoce como
especializacin. El conjunto de subclases se define basndonos en caractersticas diferenciadoras de las
ocurrencias de entidad de la superclase.
Por ejemplo, el conjunto se subclases
{SECRETARIA, INGENIERO, TECNICO} es una especializacin de la superclase
EMPLEADO mediante la distincin del tipo de trabajo en cada ocurrencia de entidad. Podemos tener
varias especializaciones de una misma entidad basndonos en distintos criterios. Por ejemplo, otra
especializacin de EMPLEADO podra dar lugar a las subclases ASALARIADO y SUBCONTRATADO,
dependiendo del tipo de contrato.
La especializacin de un tipo de entidad en un conjunto de subtipos puede ser total o parcial
Especializacin total. Representa el hecho de que las entidades que son reconocidas en el
problema que se est representando son de alguno de los subtipos especializados, no existiendo
entidades que no pertenezcan a alguno, varios o todos estos subtipos de entidad.
Especializacin parcial: representa el hecho de que pueden existir entidades que pertenezcan al
tipo de entidad y no a ninguno de los subtipos en los cuales este tipo de entidad est
especializado. Es decir, describe un refinamiento incompleto del problema que se representa,
debido a un conocimiento incompleto del mismo y/o una simplificacin de la representacin del
mismo.
Por lo tanto se pueden representar cuatro tipos de interrelaciones jerrquicas que se representaran
mediante el modelo EE-R:
Total sin solapamiento: La siguiente figura muestra el tipo de entidad Persona el cual puede ser
especializada en dos subtipos de entidad Hombre y Mujer de forma tal y sin solapamiento. Una
entidad persona podr pertenecer al subtipo Hombre o al subtipo Mujer necesariamente; es
decir, no existir una Persona que no sea de alguno de estos dos subtipos y adems de forma
exclusiva, por lo que una entidad pertenecer a uno y slo uno de estos subtipos.
27
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Total con solapamiento: La siguiente figura representa un refinamiento total con solapamiento
en el que un tipo de entidad Empresa se ha redefinido en dos subtipos Pblica y Privada. Se est
representando el hecho de que podrn existir en el dominio del problema entidades que puedan
ser consideradas tanto del tipo Pblica como Privada, o bien de ambos tipos al mismo tiempo y,
adems el hecho de que no podrn existir entidades que no puedan ser especializadas en alguno
de estos dos subtipos.
28
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Parcial con solapamiento: en la siguiente figura se representa a un tipo de entidad Persona que
puede ser refinado en dos subtipos Trabajador y Estudiante de forma parcial con solapamiento.
Este ejemplo representa que una entidad Persona puede ser del tipo Trabajador y/o del tipo
Estudiante y que adems pueden existir entidades Persona que no puedan clasificarse en
ninguno de estos dos subtipos.
En los dos ltimos ejemplos, los subtipos de entidad incorporan nuevos atributos mediante los cuales
pueden diferenciarse entidades pertenecientes a los distintos subtipos (o del tipo de entidad general en
el caso en que la especializacin no sea total). Igualmente podran existir atributos pertenecientes al tipo
de interrelacin jerrquica cuya funcin fuera de esta diferenciacin de las entidades pertenecientes a
los subtipos.
29
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Puntualidad
Ortografa y
redaccin
DESCRIPCIN
CUMPLE
S
NO
FORMA
Entrega en tiempo y forma establecida
Ortografa sin errores.
PORCENTAJE
10
10
CONTENIDO
Presentacin Presenta los conceptos solicitados
Organiza su informacin para tener la
Desarrollo
correcta relacin de los conceptos
Representa de manera correcta los
Representacin
conceptos
TOTAL
10
40
20
10
100
INSTRUCCIONES
Dados los siguientes planteamientos Genere el modelo Entidad Relacin o el modelo Entidad
Relacin Extendido, segn sea el caso.
30
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Planteamientos:
Disear una base de datos que contenga informacin relativa a todas las carreteras de un
determinado pas. Sabiendo que:
1. En dicho pas las carreteras se encuentran divididas en tramos.
2. Un tramo siempre pertenece a una nica carretera y no puede cambiar de carretera.
3. Un tramo puede pasar por varios trminos municipales, siendo un dato de inters
4. el km. del tramo por el que entra en dicho termino municipal y el km. por el
5. que sale.
6. Existen una serie de areas en las que se agrupan los tramos, cada uno de los cuales no
puede pertenecer a ms de un rea.
Se desea disear una base de datos para una Universidad que contenga informacin sobre los
Alumnos, las Asignaturas y los Profesores. Teniendo en cuenta las siguientes restricciones:
1. Una asignatura puede estar impartida por muchos profesores (no a la vez) ya que pueden
existir grupos.
2. Un profesor puede dar clases de muchas asignaturas.
3. Un alumno puede estar matriculado en muchas asignaturas.
4. No existen asignaturas con el mismo nombre.
5. Un alumno no puede estar matriculado en la misma asignatura con dos profesores
distintos.
Disear una base de datos para una sucursal bancaria que contenga informacin sobre los
clientes, las cuentas, las sucursales y las transacciones producidas. Teniendo en cuenta las
siguientes restricciones:
1. Una transaccin viene determinada por su nmero de transaccin, la fecha y la cantidad.
2. Un cliente puede tener muchas cuentas.
3. Una cuenta puede tener muchos clientes.
4. Una cuenta slo puede estar en una sucursal.
Disear una base de datos que refleje toda la informacin necesaria para la gestin de las lneas
de metro de una determinada ciudad. Los supuestos semnticos considerados son los siguientes:
1. Una lnea est compuesta por una serie de estaciones en un orden determinado, siendo
muy importante recoger la informacin de ese orden.
2. Cada estacin pertenece al menos a una lnea, pudiendo pertenecer a varias.
3. Una estacin nunca deja de pertenecer a una lnea a la que anteriormente perteneca (P/E
La Merced, que pertenece a la lnea 1, nunca podr dejar de pertenecer a esta lnea).
4. Cada estacin puede tener varios accesos, pero consideramos que un acceso solo puede
pertenecer a una estacin.
5. Un acceso nunca podr cambiar de estacin.
6. Cada lnea tiene asignados una serie de trenes, no pudiendo suceder que un tren este
asignado a mas de una lnea, pero s que no est asignado a ninguna (P/E si se encuentra
en reparacin).
31
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Disear una base de datos que refleje toda la informacin la informacin necesaria para
almacenar la informacin relativa a algunos aspectos del campeonato de ftbol considerando los
supuestos semnticos siguientes:
1. Un jugador pertenece a un nico equipo y no hay dos jugadores con el mismo nombre.
2. Un jugador puede actuar en varios puestos distintos, pero en un determinado partido slo
puede jugar en un puesto.
3. Es obligatorio en todo momento que un jugador pertenezca a un equipo determinado y no
podr cambiar de equipo a lo largo del campeonato.
Disear una base de datos que guarde la informacin de una empresa dedicada al alquiler de
automviles. Los supuestos semnticos son los siguientes:
1. Un determinado cliente puede tener en un momento dado varias reservaciones de
alquiler.
2. Una reservacin la realiza un nico cliente, pero puede involucrar a varios coches.
3. Es importante registrar la fecha de comienzo de la reservacin y la de terminacin.
4. Todo coche tiene siempre asignado un determinado de garaje, que no puede cambiar.
5. En la base de datos pueden existir clientes que no hayan hecho ninguna reserva.
Disear una base de datos que guarde la informacin de una compaa: los empleados,
departamentos y proyectos de una empresa, de acuerdo con los siguientes requisitos:
1. La compaa est organizada en departamentos. Cada departamento tiene un nombre
nico, un nmero nico y un empleado que la dirige e interesa guardar la fecha en que
dicho empleado comenz a dirigir el departamento.
2. Un departamento puede estar distribuido en vario lugares.
3. Cada departamento controla un cierto nmero de proyectos, cada uno de los cuales tiene
un nombre y un nmero nicos, y se realiza en un slo lugar.
4. Se almacena el nombre, nmero de la Seguridad Social, direccin, salario, sexo y fecha de
nacimiento de cada empleado. Todo empleado est asignado a un departamento, pero
puede trabajar en varios proyectos que no tienen porque ser del mismo departamento.
Nos interesa saber el nmero de horas que un empleado trabaja en cada proyecto a los
que est asignado.
5. Tambin se quiere guardar la informacin de los familiares de cada empleado para
administrar el seguro que poseen. Almacenaremos el nombre, sexo y fecha de nacimiento
y su parentesco con el empleado.
INDICADOR O
VARIABLE
Puntualidad
Ortografa y
redaccin
Aspectos
generales
DESCRIPCIN
FORMA
Entrega en tiempo y forma establecida
Ortografa sin errores.
De igual manera, se le pide que considere la
siguiente forma de entrega:
CUMPLE
S
NO
PORCENTAJE
10
10
10
32
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
40
20
10
100
33
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
MODELO RELACIONAL
Objetivo: El alumno transformar un diagrama E-R o EE-R a un modelo relacional para realizar consultas.
Temas
Conceptos del
modelo relacional
Saber
Describir los conceptos,
funcin y representacin
de: Dominios, atributos,
tuplas y relaciones.
Saber hacer
Establecer dominios para
las relaciones.
Ser
Analtico
Disciplinado
Sistemtico
Organizado
Capaz de sintetizar
Describir el procedimiento
para realizar las
Operaciones bsicas
(seleccionar, proyectar,
renombrar).
Describir el procedimiento
para realizar las
Operaciones adicionales
(conjuntos, reunin,
divisin).
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Tolerante
Proactivo
Capaz de sintetizar
Realizar consultas a travs Analtico
del lgebra relacional.
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Tolerante
Proactivo
Capaz de sintetizar
Resultado de aprendizaje:
Realizar un reporte a partir de un problema planteado que contenga:
Transformacin de un diagrama E-R o EE-R a un modelo relacional que incluya: Definicin de
dominios (tipo de datos), Claves primarias y forneas, Relaciones.
Diseo de consultas empleando lgebra relacional.
34
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Nombre
Esteban Bentez Prez
Luis Flores Aguilar
Virginia Prez Ruiz
Telefono
2654554
2547823
2356897
CP
72600
72450
78458
Relacin
Cliente
3.1.1 Atributos
Los atributos sirven de nombre a las columnas de la relacin; es decir, generalmente describen el
significado de las entradas de las columnas situada debajo de ellos.
Nombre
Telefono
CP
Atributos simples y compuestos. Los atributos simples no estn divididos en otros atributos. Los
atributos compuestos, en cambio, se pueden dividir en subpartes, por ejemplo: Nombre podra
estar estructurado como un atributo compuesto que consiste en nombre, apellido-paterno,
apellido-materno.
Atributos univalorados y multivalorados. Los atributos univalorados tienen un solo valor para
una entidad concreta, por ejemplo el atributo CP para una entidad cliente especfico, referencia
un nico cdigo postal. Se considera un atributo multivalorado porque en ocasiones un atributo
tiene un conjunto de valores para una entidad especfica, en el caso de un conjunto de entidades
empleado con el atributo nombre-subordinado, cualquier empleado particular puede tener, uno
o ms subordinados.
Atributos nulos. Se usa cuando una entidad no tiene un valor para un atributo. Por ejemplo, si un
empleado en particular no tiene subordinados, el valor nombre-subordinado para este empleado
ser nulo.
Atributo derivado. El valor para este tipo de atributo se puede derivar de los valores de otros
atributos o entidades. Por ejemplo: considrese que el conjunto de entidades empleado tiene
como atributos fecha-comienzo y antigedad, que representan el primer da en que el empleado
comenz a trabajar para el banco y el tiempo total en que el empleado lleva trabajando para el
35
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
3.1.2 Dominios.
Un dominio D es un conjunto finito de valores homogneos y atmicos V1, V2, , Vn, caracterizado por un
nombre, decimos valores homogneos porque son todos del mismo tipo y atmicos porque son
indivisibles en lo que al modelo se refiere; es decir, si se descompusiesen, perderan la semntica a ellos
asociada.
Por ejemplo podemos definir el dominio materias, cuyo conjunto de valores podra ser: Bases de Datos,
Sistemas Operativos, Lenguajes de programacin, matemticas, etc.
3.1.3 Tuplas.
A los renglones de una relacin, si no son el rengln del encabezado que contiene los atributos, se les da
el nombre de tuplas. Una tupla tiene un componente para cada uno de los atributos de la relacin.
Las tuplas representan los objetos y la relacin a la que pertenecen representa su clase.
3.1.4 Relaciones
El elemento central del modelo relacional es la relacin. Una relacin tiene un nombre, un conjunto de
atributos que representan sus propiedades y un conjunto de tuplas que incluyen los valores que cada
uno de los atributos toma para cada elemento de la relacin.
No se deben confundir los conceptos de tabla y de relacin, ya que una tabla es solo una forma de
representar a una relacin. Y adems:
36
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Las relaciones nominadas o con nombre, adems se dividen en otros dos grupos por su duracin:
a) Persistentes
Son aquellas relaciones cuya definicin (esquema de relacin) permanece en la base de datos,
borrndose solamente mediante una accin explcita del usuario.
o
Vistas: Son relaciones derivadas que se definen dando un nombre a una expresin de
consulta. Se pueden tomar como relaciones virtuales, en el sentido de que no tienen
datos almacenados, sino que lo nico que se almacena es su definicin en trminos de
otras relaciones con nombre, las cuales pueden ser relaciones base, vistas o
instantneas.
Instantneas: son relaciones derivadas al igual que las vistas; es decir, se definen en
trminos de otras relaciones nominadas, pero tienen datos propios almacenados, los
cuales son el resultado de ejecutar la consulta especificada o de guardar una relacin
base.
b) Temporales
Una relacin temporal desaparece de la base de datos en un cierto momento sin necesidad de una
accin de borrado especfica por el usuario.
o
Autnomas: este tipo de relacin no se deriva de otra, al igual que las relaciones base.
o
o
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Una relacin puede tener ms de una clave candidata, entre las cuales se debe distinguir las claves:
Clave primaria: es aquella candidata que el usuario escoger, por consideraciones ajenas al
modelo relacional, para identificar las tuplas de la relacin. Cuando slo existe una clave
candidata, sta ser la clave primaria.
Claves alternativas o secundarias: son aquellas claves candidatas que no han sido escogidas
como clave primaria.
Clave Fornea: Se denomina clave fornea o ajena de una relacin (R1) a un conjunto no vaco de
atributos cuyos valores han de coincidir con los valores de la clave primaria de otra relacin(R2).
La clave ajena y la correspondiente clave primaria deben estar definidas sobre el mismo dominio.
Todo atributo de una entidad en el modelo E-R se transforma en un campo dentro la tabla,
manteniendo las claves primarias.
Las relaciones con cardinalidad mxima N:M se transforman en una nueva tabla, cuya llave
primaria estar formada por la unin de los atributos primarios de las entidades que relaciona.
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Los atributos multivaluados dan lugar a una nueva relacin cuya clave primaria es la llave
primaria de la entidad a la que pertenece mas el nombre del atributo multivaluado.
La relacin del conjunto entidad dbil W tambin habr de incluir no slo los atributos de W, sino
tambin los atributos llave de los restantes conjuntos entidad que contribuyan a formar la llave
de W.
Las relaciones en que aparezca el conjunto entidad dbil W habrn de utilizar como llave de
Mtodos sus atributos llave, entre ellos los de otros conjuntos entidad que contribuyan a la llave
de W.
Cuando se introducen atributos adicionales para construir la llave de un conjunto entidad dbil, se tendr
mucho cuidado para no utilizar dos veces un mismo nombre.
Nombre
Esteban Bentez Prez
Telfono
2654554
CP
72600
39
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
2547823
2356897
72450
78458
Tanto el esquema como las tuplas de una relacin son conjuntos, no listas; y de ah que no importe el
orden en que sean presentadas. Se pueden enumerar las tuplas en cualquiera de sus rdenes posibles y
la relacin sigue siendo la misma.
Esteban Bentez Prez
2654554
2654554
2654554
72600
72600
72600
A la cantidad de tuplas que existen dentro de la relacin se le conoce como cardinalidad; es decir, es el
nmero total de renglones de la relacin.
Operadores tradicionales:
o Unin
o Interseccin
o Diferencia
o Producto Cartesiano.
Operadores Especiales:
o Restriccin o seleccin
o Proyeccin
o Reunin
o Divisin
40
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Nombre_sucursal
PLAZA DEL SOL
CENTRO
PLADA DORADA
PLAZA DORADA
PLAZA LORETO
Importe
900
1500
1500
1300
2000
Nombre_sucursal
PLADA DORADA
PLAZA DORADA
Importe
1500
1300
En general, se permiten las comparaciones que utilizan , =, <, <=, >, >= en el predicado de la seleccin.
Adems, se pueden combinar varios predicados en uno mayor utilizando las conectivas y (^) y o (v).
nombre_sucursal=<<Plaza Dorada>> ^importe >1200 (prstamo)
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Importe
900
1500
1500
1300
1000
2000
Num_cuenta
C-102
C-103
Joaqun
Martn
Abril
C-104
C-105
C-106
Nom_cliente
Ramiro
Ral
Joaqun
Sandra
Guillermo
Num_prestamo
P-16
P-17
P-18
P-19
P-20
42
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Se conoce la manera de averiguar los nombres de todos los clientes con prstamo en el banco
nom_cliente (prestatario)
Tambin se conoce la manera de averiguar el nombre de todos los clientes en el banco:
nom_cliente (impositor)
Para contestar a la consulta hace falta la unin de estos dos conjuntos; es decir, hacen falta todos los
nombres de clientes que aparecen en alguna de las dos relaciones o en ambas. Estos datos se pueden
averiguar mediante la operacin binaria unin, denotada, como en la teora de conjuntos, por U. por
tanto la expresin buscada es:
nom_cliente (prestatario)
nom_cliente (impositor)
Las relaciones 1 y 2 deben ser de la misma aridad. Es decir, deben tener el mismo nmero de
atributos.
Los dominios de los atributos i-simos de relacin1 y de relacin2 deben ser iguales para todo i
43
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
nom_cliente (prestatario)
prstamo.nombre_sucursal,
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
relacin. Esta simplificacin no genera ambigedad alguna. Por tanto, se puede escribir el esquema de la
relacin como de r como:
(nom_cliente, prestatario.Num_prestamo, nombre_sucursal, prestamo.num_prestamo, importe)
El acuerdo de denominaciones precedente exige que las relaciones que sean argumentos de la
operacin de producto cartesiano tengan nombres diferentes. Esta exigencia causa problemas en
algunos casos, como cuando se desea calcular el producto cartesiano de una relacin consigo misma. Se
producen un problema similar si se utiliza el resultado de una expresin del algebra relacional en un
producto cartesiano, dado que har falta un nombre para la relacin para poder hacer referencia a sus
atributos.
Supngase que desea averiguar los nombres de todos los clientes que tienen concedido un prstamo en
la sucursal de Plaza Dorada. Se necesita para ello informacin de las relaciones prstamo y prestatario
Prstamo
Numero_prestamo
P-11
P-14
P-15
P-16
P-17
P-18
Prestatario
Nombre_sucursal
PLAZA DEL SOL
CENTRO
PLADA DORADA
PLAZA DORADA
CENTRO
PLAZA LORETO
Importe
900
1500
1500
1300
1000
2000
Nom_cliente
Ramiro
Ral
Joaqun
Sandra
Guillermo
Numero_prestamo
P-16
P-17
P-15
P-19
P-20
Si se escribe:
nombre_sucursal=<<Plaza Dorada>> (prestatario x prstamo)
Teniendo una relacin que solo atae a la sucursal de Plaza dorada. Sin embargo la columna nom_cliente
puede contener clientes que no tengan concedido ningn prstamo en la sucursal mencionada (Si no se
ve el motivo por el cual esto es cierto, recurdese que el producto cartesiano toma todos los
emparejamientos posibles de una tupla de prestatario con una tupla de prstamo).
Dado que la operacin de producto cartesiano asocia todas las tuplas de prstamo con todas las tuplas
de prestatario, se sabe que , si un cliente tiene concedido un prstamo en la sucursal de Plaza Dorada,
hay alguna tupla prestatario X prstamo que contiene el nombre y que prestatario.numero_prestamo =
prestamo.numero_prestamo. Por tanto si escribimos:
prestatario.numero_prestamo=prestamo.numero_prestamo( nombre_sucursal=<<Plaza Dorada>> (prestatario x prstamo))
45
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Slo se obtienen las tuplas de prestatario X prstamo que corresponden a los clientes que tienen
concedido un prstamo en la sucursal de Plaza Dorada.
Finalmente, dado que slo se desea obtener nom_cliente, se realiza una proyeccin:
nom_cliente( prestatario.numero_prestamo=prestamo.numero_prestamo( nombre_sucursal=<<Plaza Dorada>> (prestatario x
prstamo)))
46
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Puntualidad
Ortografa y
redaccin
DESCRIPCIN
CUMPLE
NO
PORCENTAJE
FORMA
Entrega en tiempo y forma establecida
Ortografa sin errores.
10
5
Aspectos
generales
CONTENIDO
Presentacin Aplica las reglas de transformacin
Organiza su informacin para tener la
Desarrollo
correcta relacin de los conceptos
Representa de manera correcta los
Representacin
conceptos
TOTAL
20
40
20
5
100
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Ejercicio 3:
El Ministerio de Educacin y Ciencia desea mantener informacin acerca de todos los cuadros que
se encuentran en las pinacotecas mexicanas y toda la informacin relacionada con ellos.
De cada pinacoteca se desea saber el nombre (nico), la ciudad en la que se encuentra, la
direccin y los metros cuadrados que tiene.
Cada pinacoteca tiene una serie de cuadros de los que se quiere guardar su cdigo, nombre,
medidas, fecha en que fue pintado y tcnica utilizada para pintarlo.
Cada cuadro es pintado por un determinado pintor (nombre, pas, ciudad, fecha de nacimiento y
fecha de fallecimiento). Un pintor puede tener a otro como maestro, un maestro puede serlo de
varios (o de ninguno).
Los pintores pueden pertenecer o no a una escuela de la que se desea saber su nombre, en que
pas y fecha en que apareci.
Los pintores pueden tener tambin uno o varios mecenas que los protegen de los que se desea
saber (nombre, pas, ciudad de nacimiento, fecha de fallecimiento, fecha en que se inicia y fecha
en que termina el mecenazgo). A su vez un mismo mecenas puede serlo de varios pintores. Se
desea recoger la relacin que existe entre un pintor y su mecenas.
INDICADOR O
VARIABLE
Puntualidad
Ortografa y
redaccin
DESCRIPCIN
FORMA
Entrega en tiempo y forma establecida
Ortografa sin errores.
CUMPLE
S
NO
PORCENTAJE
10
5
Aspectos
generales
20
49
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
CONTENIDO
Presentacin Aplica las reglas de transformacin
Organiza su informacin para tener la
Desarrollo
correcta relacin de los conceptos
Representa de manera correcta los
Representacin
conceptos
TOTAL
40
20
5
100
50
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Temas
Saber
Saber hacer
Restricciones de
Integridad
Identificar los
Determinar las restricciones
conceptos y
de integridad en una BD
aplicaciones de las
Relacional.
restricciones de
integridad (de dominio,
de unicidad y de
integridad referencial).
Normalizacin
Ser
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Capaz de sintetizar
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Hbil para comunicarse
de forma oral y escrita
Capaz de sintetizar
Resultado de aprendizaje:
Elaborar un reporte a partir de un modelo relacional, que incluya:
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Existen una serie de caractersticas de una relacin que han de cumplirse obligatoriamente, por lo que se
trata de restricciones inherentes, y estas son las siguientes:
No hay dos tuplas iguales (de donde se deduce la obligatoriedad de la clave primaria).
El orden de las tuplas no es significativo.
El orden de los atributos no es significativo.
Cada atributo slo puede tomar un nico valor del dominio sobre el que est definido, no
admitiendo por tanto los grupos repetitivos.
Ningn atributo que forme parte de la clave primaria de una relacin puede tomar un valor nulo.
Clave primaria: La declaracin de un atributo como clave primaria de una relacin es una
restriccin semntica que responde a la necesidad del usuario de imponer que los valores del
conjunto de atributos que constituyen la llave primaria no se repitan en la relacin ni tampoco
tomen valores nulos.
Unicidad (UNIQUE): mediante la cual se indica que los valores de un conjunto de atributos no
pueden repetirse en una relacin. Esta restriccin permite la definicin de claves alternativas.
Obligatoriedad (NOT NULL): se indica que el conjunto de atributos no admite valores nulos.
Integridad referencial (FOREIGN KEY): Todo el valor de llave fornea debe concordar con un
valor de la clave primaria referenciada.
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
La integridad referencial es una importante restriccin semntica que viene impuesta por el mundo real,
siendo el usuario quien la define al describir el esquema relacional, y el modelo la reconoce sin necesidad
de que se programa ni de que se tenga que escribir ningn procedimiento para obligar a su
cumplimiento.
Adems de definir las claves ajenas, hay que determinar las consecuencias que pueden tener ciertas
operaciones (borrar y modificar) realizadas sobre las tuplas de la relacin referenciada; pudiendo
distinguir las siguientes opciones:
Operacin restringida: el borrado de las tuplas de la relacin que contiene la clave referenciada
slo se permite si no existen tuplas con ese valor en la relacin que contiene la clave ajena.
Operacin con transmisin en cascada (CASCADE): el borrado de tuplas de la relacin que
contiene la clave candidata referenciada, lleva consigo el borrar en cascada las tuplas de la
relacin que contiene la clave ajena.
Operacin con puesta a nulos (SET NULL): el borrado de tuplas de la relacin que contiene la
clave candidata referenciada lleva consigo poner a nulos los valores de las claves ajenas de la
relacin que referencia. Esta opcin slo es posible cuando el atributo que es clave ajena admite
valores nulos.
Operacin con puesta a valor por defecto (SET DEFAULT): el borrar tuplas de la relacin que
contiene la clave candidata referenciada lleva consigo poner el valor por defecto a la clave ajena
de la relacin que referencia, valor por defecto que habra sido definido al crear la tabla
correspondiente.
Existen otras restricciones llamadas de rechazo, en las que el usuario formula una condicin mediante un
predicado definido sobre un conjunto de atributos de tuplas o de dominios, el cual debe ser verificado
por los correspondientes objetos en toda operacin de actualizacin para que el nuevo estado constituya
una ocurrencia vlida del esquema; en caso de que la operacin intente violar la condicin se impide que
la operacin se lleve a cabo (es decir, se produce un rechazo de la operacin).
Se pueden distinguir dos restricciones de rechazo, segn la condicin afecte a un nico elemento de la
base de datos o a ms de uno.
53
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Ventajas de la normalizacin:
Por ejemplo:
Normalizacin CERO (No aplicada ninguna regla de normalizacin)
54
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
usuarios
nombre
empresa
direccion_empresa
url1
url2
Joe
ABC
1 Work Lane
abc.com
xyz.com
Jill
XYZ
1 Job Street
abc.com
xyz.com
Observe los campos url1 y url2 Qu haremos cuando en nuestra aplicacin necesitemos una tercera url?
Quieres tener que aadir otro campo/columna a tu tabla y tener que reprogramar toda la entrada de
datos? Obviamente no, se debe crear sistema funcional que pueda crecer y adaptarse fcilmente a los
nuevos requisitos.
Sin embargo se est rompiendo un punto de la 1FN cuando repetimos los campos url1 y url2, tambin se
repite la clave primaria. La regla tres bsicamente significa que tenemos que poner un campo tipo
contador autoincrementable para cada registro. De otra forma, si tuviramos dos usuarios llamados de la
misma forma como los diferenciaramos. Una vez que se aplica el primer nivel de F/N tenemos la
siguiente tabla:
Usuarios
user_id
nombre
empresa
direccin_empresa
url
Joe
ABC
1 work lane
abc.com
Joe
ABC
1 work lane
Xyz.com
Jill
XYZ
1 job street
abc.com
Jill
XYZ
1 job street
Xyz.com
55
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Crear tablas separadas para aquellos grupos de datos que se aplican a varios registros.
Hemos separado el campo url en otra tabla, de forma que podemos aadir ms en el futuro si tener que
duplicar los dems datos. Tambin vamos a usar nuestra clave primaria para relacionar estos campos:
urls
Usuarios
user_id
nombre
empresa
direccion_empresa
Jos
ABC
1 work lane
Mara
XYZ
1 job street
url_id
relUserId
url
abc.com
xyz.com
abc.com
xyz.com
Ahora se tienen tablas separadas y la clave primaria en la tabla usuarios, user_id, est relacionada ahora
con la clave externa en la tabla urls, relUserId. Pero si quiere aadir otro empleado a la empresa ABC, se
duplicaran el nombre de la empresa y su direccin, entonces se aplica la 3FN.
Urls
emprId
empresa
direccion_empresa
url_id
RelUserId
url
ABC
1 work lane
abc.com
XYZ
1 job street
xyz.com
abc.com
xyz.com
usuarios
user_id
nombre
relEmpresaId
Joe
Jill
empresa
emprId empresa
direccion_empresa
ABC
1 work lane
XYZ
1 job street
56
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Ahora las tablas de usuarios y urls pueden crecer todo lo que quieran sin duplicacin ni corrupcin de
datos. La mayora de los desarrolladores dicen que el tercer nivel de F/N es suficiente, que nuestro
esquema de datos puede manejar fcilmente los datos obtenidos de una cualquier empresa en su
totalidad, y en la mayora de los casos esto ser cierto.
Sin embargo en nuestra tabla urls, el campo url tiene valores duplicados. Esto es perfectamente
aceptable si la entrada de datos de este campo es solicitada al usuario en nuestra aplicacin para que
teclee libremente su url, y por lo tanto es slo una coincidencia que Joe y Jill teclearon la misma url.
Pero qu pasa si en lugar de entrada libre de texto usramos un men desplegable con 20 o incluso ms
urls predefinidas? Entonces tendramos que llevar nuestro diseo de BD al siguiente nivel de F/N, el
cuarto, muchos desarrolladores lo pasan por alto porque depende mucho de un tipo muy especfico de
relacin, la relacin 'varios-con-varios', la cual an no hemos encontrado en nuestra aplicacin.
Observa las tablas de la 1FN. Suponemos que ponemos el campo url en una tabla separada, y cada vez
que introducimos un registro en la tabla usuarios tambin introducimos una sola fila en la tabla urls.
Entonces tendramos una relacin uno-a-uno: cada fila en la tabla usuarios tendra exactamente una fila
correspondiente en la tabla urls. Para los propsitos de nuestra aplicacin no sera til la normalizacin.
En la 2FN. Nuestras tablas permiten a un slo usuario tener asociadas varias urls. Esta es una relacin
uno-con-varios, el tipo de relacin ms comn, y hasta que se nos present el dilema del Tercer Nivel de
F/N. la nica clase de relacin que necesitamos.
La relacin varios-con-varios, sin embargo, es ligeramente ms compleja. Observa en nuestro ejemplo del
Tercer Nivel de F/N que tenemos a un usuario relacionado con varias urls. Como dijimos, vamos a
cambiar la estructura para permitir que varios usuarios estn relacionados con varias urls y as
tendremos una relacin varios-con-varios. Veamos como quedaran nuestras tablas antes de seguir con
este planteamiento:
usuarios
url_relations
user_id
nombre
relEmpresaId
relationId
relatedUrlId
relatedUsedId
Joe
Jill
Urls
urlId
url
abc.com
xyz.com
57
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Para disminuir la duplicacin de los datos, hemos creado una tabla que slo tiene claves externas y
primarias url_relations. Hemos sido capaces de remover las entradas duplicadas en la tabla urls creando
la tabla url_relations.
Puntualidad
Aspectos
generales
DESCRIPCIN
CUMPLE
NO
FORMA
Entrega en tiempo y forma establecida
La forma de entrega es la siguiente:
10
CONTENIDO
Aplica las reglas de normalizacin
Organiza su informacin para tener la
Desarrollo
correcta relacin de los conceptos
Representa de manera correcta los
Representacin
conceptos
TOTAL
PORCENTAJE
25
Presentacin
50
10
5
100
58
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Temas
Fundamentos de los
SGBD.
Saber
Definir el concepto,
caractersticas y tipos
de SGBD.
Saber hacer
Seleccionar el SGBD de
acuerdo a las necesidades
del proyecto.
Identificar los
principales SGBD.
Ser
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Capaz de sintetizar
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Capaz de sintetizar
Resultado de aprendizaje:
Realizar un documento que incluya ejercicios prcticos de manipulacin de una base de datos a travs
de un SGB:
59
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Propsito:
El propsito general de los sistemas de gestin de base de datos es el de manejar de manera clara,
sencilla y ordenada un conjunto de datos.
Objetivos:
Existen distintos objetivos que deben cumplir los SGBD:
Abstraccin de la informacin. Los SGBD ahorran a los usuarios detalles acerca del
almacenamiento fsico de los datos. Da lo mismo si una base de datos ocupa uno o cientos de
archivos, este hecho se hace transparente al usuario.
Independencia. La independencia de los datos consiste en la capacidad de modificar el esquema
(fsico o lgico) de una base de datos sin tener que realizar cambios en las aplicaciones que se
sirven de ella.
Redundancia mnima. Un buen diseo de una base de datos lograr evitar la aparicin de
informacin repetida o redundante. De entrada, lo ideal es lograr una redundancia nula; no
obstante, en algunos casos la complejidad de los clculos hace necesaria la aparicin de
redundancias.
Consistencia. En aquellos casos en los que no se ha logrado esta redundancia nula, ser
necesario vigilar que aquella informacin que aparece repetida se actualice de forma coherente,
es decir, que todos los datos repetidos se actualicen de forma simultnea.
Seguridad. La informacin almacenada en una base de datos puede llegar a tener un gran valor.
Los SGBD deben garantizar que esta informacin se encuentra asegurada frente a usuarios
malintencionados, que intenten leer informacin privilegiada; frente a ataques que deseen
manipular o destruir la informacin; o simplemente ante las torpezas de algn usuario
autorizado pero despistado. Normalmente, los SGBD disponen de un complejo sistema de
permisos a usuarios y grupos de usuarios, que permiten otorgar diversas categoras de permisos.
Integridad. Se trata de adoptar las medidas necesarias para garantizar la validez de los datos
almacenados. Es decir, se trata de proteger los datos ante fallos de hardware, datos introducidos
por usuarios descuidados, o cualquier otra circunstancia capaz de corromper la informacin
almacenada.
Respaldo y recuperacin. Los SGBD deben proporcionar una forma eficiente de realizar copias de
seguridad de la informacin almacenada en ellos, y de restaurar a partir de estas copias los datos
que se hayan podido perder.
Control de la concurrencia. En la mayora de entornos (excepto quizs el domstico), lo ms
habitual es que sean muchas las personas que acceden a una base de datos, bien para recuperar
informacin, bien para almacenarla. Y es tambin frecuente que dichos accesos se realicen de
forma simultnea. As pues, un SGBD debe controlar este acceso concurrente a la informacin,
que podra derivar en inconsistencias.
Tiempo de respuesta. Lgicamente, es deseable minimizar el tiempo que el SGBD tarda en
darnos la informacin solicitada y en almacenar los cambios realizados.
El SGBD es tambin conocido como Manejador de Bases de Datos o DBMS por sus siglas en Ingls.
60
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
La figura muestra el SGBD denotado por DBMS como interfase entre la base de datos fsica y las
peticiones del usuario. El SGBD interpreta las peticiones de entrada/salida del usuario y las manda al
sistema operativo para la transferencia de datos entre la unidad de memoria secundaria y la memoria
principal.
En s, un sistema gestor de base de datos es el corazn de la base de datos ya que se encarga del control
total de los posibles aspectos que la puedan afectar.
Todos los SGBD no presentan la misma funcionalidad, depende de cada producto existen SGBD libres y
comerciales entre los ms comunes tenemos:
SGBD libres:
PostgreSQL
MySQL
Firebird
SQLite
Sybase ASE Express Edition para Linux (Edicin gratuita para Linux)
SGBD comerciales:
dBase
FileMaker
Fox Pro
IBM DB2 Universal Database (DB2 UDB)
IBM Informix
MAGIC
Microsoft SQL Server
Open Access
Oracle
Paradox
PervasiveSQL
Progress (DBMS)
Sybase ASE
Sybase ASA
61
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Sybase IQ
WindowBase
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Una forma grfica de representar los componentes antes mencionados y la relacin que existe entre
ellos sera la siguiente.
El SGBD es la aplicacin que interacciona con los usuarios de los programas de aplicacin y la base de
datos. En general, un SGBD proporciona los siguientes servicios:
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
o
o
o
o
o
A diferencia de los sistemas de archivos, el SGBD gestiona la estructura fsica de los datos y su
almacenamiento. Con esta funcionalidad, el SGBD se convierte en una herramienta de gran utilidad. Sin
embargo, desde el punto de vista del usuario, se podra discutir que los SGBD han hecho las cosas ms
complicadas, ya que ahora los usuarios ven ms datos de los que realmente quieren o necesitan, puesto
que ven la base de datos completa. Conscientes de este problema, los SGBD proporcionan un mecanismo
de vistas que permite que cada usuario tenga su propia vista o visin de la base de datos. El lenguaje de
definicin de datos permite definir vistas como subconjuntos de la base de datos.
Las vistas, adems de reducir la complejidad permitiendo que cada usuario vea slo la parte de la base de
datos que necesita, tienen otras ventajas:
Las vistas proporcionan un nivel de seguridad, ya que permiten excluir datos para que ciertos
usuarios no los vean.
Las vistas proporcionan un mecanismo para que los usuarios vean los datos en el formato que
deseen.
Una vista representa una imagen consistente y permanente de la base de datos, incluso si la base
de datos cambia su estructura.
Puntualidad
Aspectos
generales
Presentacin
DESCRIPCIN
FORMA
Entrega en tiempo y forma establecida
La forma de entrega es la siguiente:
Elabore el documento en un archivo de
Word estructurado de la siguiente manera:
- Portada
- Aplicacin del mapa mental
CONTENIDO
Aplica los conceptos vistos en la unidad
CUMPLE
S
NO
PORCENTAJE
10
25
50
64
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
10
5
100
65
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Unidad Temtica 6
Objetivo: El alumno construir una BD utilizando el Lenguaje de Definicin de Datos (DDL) para la
creacin y modificacin de su esquema
Temas
Introduccin a SQL.
Saber
Saber hacer
Identificar el concepto y
funcionalidad del SQL.
Identificar las
caractersticas de los
lenguajes de DDL y DML.
Creacin del
esquema de una BD.
Modificacin del
esquema de una BD.
Modificar el esquema de
la BD mediante el
Lenguaje SQL.
Ser
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Hbil para comunicarse
de forma oral y escrita
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Resultado de aprendizaje:
Realizar un documento que incluya ejercicios prcticos de manipulacin de una base de datos a travs
de un SGB:
66
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Los DLL que permiten crear y definir nuevas bases de datos, campos e ndices.
Los DML que permiten generar consultas para ordenar, filtrar y extraer datos de la base de datos.
Comandos DLL
Comando
Descripcin
CREATE
Utilizado para crear nuevas tablas, campos e ndices
DROP
Empleado para eliminar tablas e ndices
Utilizado para modificar las tablas agregando campos o cambiando la definicin de los
ALTER
campos.
Comandos DML
Comando
Descripcin
Utilizado para consultar registros de la base de datos que satisfagan un criterio
SELECT
determinado
INSERT
Utilizado para cargar lotes de datos en la base de datos en una nica operacin.
UPDATE Utilizado para modificar los valores de los campos y registros especificados
DELETE
Utilizado para eliminar registros de una tabla de una base de datos
Clusulas
Las clusulas son condiciones de modificacin utilizadas para definir los datos que desea seleccionar o
manipular.
Clusula
Descripcin
FROM
Utilizada para especificar la tabla de la cual se van a seleccionar los registros
Utilizada para especificar las condiciones que deben reunir los registros que se van a
WHERE
seleccionar
GROUP BY Utilizada para separar los registros seleccionados en grupos especficos
HAVING
Utilizada para expresar la condicin que debe satisfacer cada grupo
ORDER BY Utilizada para ordenar los registros seleccionados de acuerdo con un orden especfico
67
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
column_name3 data_type,
....
);
Dnde table_name, es el identificador de la nueva tabla. column_name1, es el nombre del atributo o
identificador del primer campo de la tabla. Y finalmente data_type, es el tipo de dato para cada columna
o atributo.
Ejemplo:
CREATE TABLE Personas
(
Id_P int,
nombre varchar(255),
apellido varchar(255),
direccin varchar(255),
Ciudad varchar(255)
);
Numricos exactos
bigint
bit
decimal
int
money
numeric
smallint
smallmoney
tinyint
Numricos aproximados
float
real
Fecha y Hora
date
datetime
datetime2
datetimeoffset
smalldatetime
time
69
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Cadena de caracteres
char
text
varchar
Cadena de caracteres unicode
nchar
ntext
nvarchar
Cadenas binarias
binary
image
varbinary
La restriccin NOT NULL, obliga a una columna a no aceptar valores nulos. Es decir, el campo est
siempre obligado a contener un valor, lo impide que no se pueda agregar un registro o actualizar sin
colocar un valor en ste campo.
Ejemplo:
CREATE TABLE Personas
(
Id_P int NOT NULL,
nombre varchar(255) NOT NULL,
apellido varchar(255),
direccin varchar(255),
Ciudad varchar(255)
);
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Ejemplo 2:
CREATE TABLE Personas
(
Id_P int NOT NULL PRIMARY KEY,
nombre varchar(255) NOT NULL,
apellido varchar(255),
direccin varchar(255),
Ciudad varchar(255)
);
71
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Type
Id_P
int(11)
NO PRI NULL
nombre varchar(255) NO
NULL
NULL
NULL
Ciudad
NULL
varchar(255) YES
2 Hrs
FECHA:
DESCRIPCIN:
MATERIALES Y EQUIPOS:
Computadora
73
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
PROCEDIMIENTO:
En primer lugar entrar al monitor MySQL, escriba la instruccin: Mysql u root mysql
Crearemos una base de datos con el nombre de: iniciobase.
create database iniciobase;
S la instruccin es correcta le debe de aparecer la siguiente oracin:
Query OK, 1 row affected (0.00 sec)
La cual indica que la base de datos ha sido creada con xito. Como se ve a continuacin:
Para poder trabajar sobre la base de datos creada utililice el siguiente comando:
USE iniciobase;
74
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Utilizaremos el comando SHOW TABLES para comprobar que se ha creado la tabla mascotas.
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
primaria. La clasula not null es obligatoria para los atributos que forman parte de una llave
primaria:
Create table empleado (
-> idempleado mediumint unsigned not null,
-> nombre varchar(20),
-> sueldo int unsigned,
-> primary key(idempleado));
Muestre una lista de las tablas existentes en la base de datos.
Muestre la descripcin de la tabla empleado.
Por ltimo muestre las bases de datos con las cuales cuenta.
CUESTIONARIO
REFERENCIAS
DESCRIPCIN
CUMPLE
SI
NO
PORCENTAJE
ACTITUD (SER)
Puntualidad
10
CONOCIMIENTO (SABER)
Requisitos de
Informacin
40
40
100
EVALUACIN: LA AUSENCIA PARCIAL O TOTAL DE ALGN INCISO TENDR UNA PENALIZACIN ACORDE A LA
PUNTUACIN SEALADA EN CADA INCISO
OBSERVACIN:
EVALUADOR
(NOMBRE Y
FIRMA)
76
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
2 Hrs
FECHA:
DESCRIPCIN:
Utilice la base de datos creada en la prctica de la unidad V nomina y cree las tablas faltantes para
que su BD quede como siguiente:
Empleado
PK idEmpleado
Trabaja
Depto
mediumint
FK IdEmpleado
mediumint
Nombre
char (20)
FK IdDepto
mediumint
Sueldo
int
FechaIngreso
PK IdDepto
Depto
mediumint
char (20)
Date
MATERIALES Y EQUIPOS:
Computadora con programa MYSQL
PROCEDIMIENTO:
Entrar al monitor MySQL, escriba la instruccin: Mysql u root mysql
Cargue la base de datos nomina: USE nomina;
Muestres las tablas que tiene hasta ahora en su base de datos: SHOW TABLES;
Muestre la estructura de la tabla Empleado: DESCRIBE empleado;
Borre la tabla Empleado para definirla indicando que no se permitirn valores nulos para el atributo
idempleado y que este mismo atributo es la llave primaria. La clasula not null es obligatoria para los
atributos que forman parte de una llave primaria:
Create table empleado (
-> idempleado mediumint unsigned not null,
-> nombre varchar(20),
-> sueldo int unsigned,
-> primary key(idempleado));
77
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Nombre
Departamento
Sueldo
IdDepto
10000
Depto
1 Compras
5000
2 Ventas
8500
3 Recursos Materiales
13100
9500
Trabaja
IdEmpleado
1
2
3
4
5
IdDepto
2
2
3
1
1
FechaIngreso
25-feb-10
14-may-08
10-ago-05
09-oct-11
04-dic-11
CUESTIONARIO
REFERENCIAS
78
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
DESCRIPCIN
CUMPLE
SI
NO
PORCENTAJE
ACTITUD (SER)
Puntualidad
10
CONOCIMIENTO (SABER)
Requisitos de
Informacin
40
40
100
EVALUACIN: LA AUSENCIA PARCIAL O TOTAL DE ALGN INCISO TENDR UNA PENALIZACIN ACORDE A LA
PUNTUACIN SEALADA EN CADA INCISO
OBSERVACIN:
EVALUADOR
(NOMBRE Y
FIRMA)
79
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Tipo
CHAR
CHAR
INT
CHAR
Longitud
5
35
30
INDICADOR O
VARIABLE
Puntualidad
Presentacin
Desarrollo
DESCRIPCIN
FORMA
Realiza la actividad en el tiempo establecido
por el profesor
CONTENIDO
Aplica los conceptos vistos en la unidad
Los resultados son los esperados
TOTAL
CUMPLE
S
NO
PORCENTAJE
25
20
55
100
80
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Temas
Saber
Saber hacer
Consultas y vistas
Instrucciones de
actualizacin
Actualizar la BD mediante
SQL.
Ser
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Capaz de sintetizar
Analtico
Hbil para el trabajo en
equipo
Disciplinado
Sistemtico
Organizado
Proactivo
Capaz de sintetizar
Resultado de aprendizaje:
Elaborar un cuadernillo que contenga los scripts para generar:
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Pero, si lo que necesitamos en seleccionar todas las columnas de la tabla persona, lo que escribimos es lo
siguiente:
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
char(50)
Sales
float
Date
datetime
y ahora deseamos insertar una fila adicional en la tabla que represente los datos de ventas para Los
ngeles el 10 de enero de 1999. En ese da, este negocio tena $900 dlares estadounidenses en ventas.
Por lo tanto, utilizaremos la siguiente escritura SQL:
INSERT INTO Store_Information (store_name, Sales, Date)
VALUES ('Los Angeles', 900, '10-Jan-1999')
El segundo tipo de INSERT INTO nos permite insertar filas mltiples en una tabla. A diferencia del ejemplo
anterior, donde insertamos una nica fila al especificar sus valores para todas las columnas, ahora
utilizamos la instruccin SELECT para especificar los datos que deseamos insertar en la tabla. Si est
pensando si esto significa que est utilizando informacin de otra tabla, est en lo correcto. La sintaxis es
la siguiente:
INSERT INTO "tabla1" ("columna1", "columna2", ...)
SELECT "columna3", "columna4", ...
FROM "tabla2"
Note que esta es la forma ms simple. La instruccin entera puede contener fcilmente clusulas
WHERE, GROUP BY, y HAVING, as como tambin uniones y alias que se vern ms adelante.
Entonces por ejemplo, si deseamos tener una tabla Store_Information, que recolecte la informacin de
ventas para el ao 1998, y ya conoce en donde reside la fuente de datos en tabla Sales_Information
table, ingresaremos:
INSERT INTO Store_Information (store_name, Sales, Date)
SELECT store_name, Sales, Date
FROM Sales_Information
WHERE Year(Date) = 1998
Aqu hemos utilizado la sintaxis de Servidor SQL para extraer la informacin anual por medio de una
fecha. Otras bases de datos relacionales pueden tener sintaxis diferentes. Por ejemplo, en Oracle,
utilizar to_char (date,'yyyy')=1998.
83
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
250 07-Jan-1999
700 08-Jan-1999
y notamos que las ventas para Los ngeles el 08/01/1999 es realmente de 500 en vez de 300 dlares
estadounidenses, y que esa entrada en particular necesita actualizarse. Para hacerlo, utilizamos el
siguiente SQL:
UPDATE Store_Information
SET Sales = 500
WHERE store_name = "Los Angeles"
AND Date = "08-Jan-1999"
La tabla resultante se vera:
Tabla Store_Information
store_name Sales Date
Los Angeles 1500 05-Jan-1999
San Diego
250 07-Jan-1999
700 08-Jan-1999
84
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
En este caso, hay slo una fila que satisface la condicin en la clusula WHERE. Si hay mltiples filas que
satisfacen la condicin, todas ellas se modificarn.
Tambin es posible UPDATE mltiples columnas al mismo tiempo. La sintaxis en este caso se vera como
la siguiente:
UPDATE "nombre_tabla"
SET colonne 1 = [[valor1], colonne 2 = [valor2]
WHERE {condicin}
250 07-Jan-1999
700 08-Jan-1999
y decidimos no mantener ninguna informacin sobre Los ngeles en esta tabla. Para lograrlo, ingresamos
lo siguiente:
DELETE FROM Store_Information
WHERE store_name = "Los Angeles"
Ahora el contenido de la tabla se vera,
Tabla Store_Information
store_name Sales Date
San Diego
250 07-Jan-1999
85
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Boston
700 08-Jan-1999
86
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Con esto especificamos que seleccionamos (select) todos (*) desde la tabla, la tabla ser sustituida por el
nombre de nuestra tabla o base de datos, supongamos que tenemos una tabla llamada Clientes y que
dentro tenemos los datos de todos nuestros clientes, para poder hacer uso de ellas, haramos esto:
Select * From clientes
Lo que hemos hecho es seleccionar con el Select todos los registros (clientes) que tiene la base de datos,
pues le hemos puesto el asterisco (*) que significa que lo extraiga todo, o sea que extraiga todos los
clientes que tuviramos en ese momento dentro de la base de clientes, pues con el from le decimos que
de donde tiene que extraerlo todo es desde la base clientes.
87
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Esta orden, lo que hace es extraer uno a uno todos los clientes e ir comprobando que en el campo
Nombre, se encuentre o no JUAN, si se encuentra, entonces lo seleccionar para mostrarlo despus, si
no estuviera dicho nombre entonces lo ignorara, como es obvio el ahorro de tiempo es muy grande.
Pero adems, la clausula Where tiene unos parmetros para hacer ms completo su uso:
SELECT * FROM clientes WHERE edad>=28 AND edad<=36
Esto selecciona todos los clientes con edades comprendidas entre los 28 y los 36 aos.
SELECT * FROM clientes WHERE provincia='MADRID' OR provincia='VALENCIA OR provincia=
'BARCELONA'
Esto selecciona todos los campos de la tabla 'clientes', pero los registros de todos los clientes de las
provincias de 'MADRID', 'VALENCIA' o 'BARCELONA'.
SELECT nombre, apellidos FROM clientes WHERE edad>=18
Esto selecciona los campos 'nombre' y 'apellidos' de la tabla clientes, escogiendo a aquellos clientes que
sean de mayor de edad.
SELECT * FROM clientes WHERE edad BETWEEN 18 AND 45
Esto selecciona todos los clientes con edades comprendidas entre los 18 y los 45 aos.
SELECT * FROM cuentas WHERE fecha=#7/1/97#
Esto selecciona los apuntes de 'cuentas' realizados el 1 de Julio de 1997 (la fecha ha de indicarse en
ingls (mes/da/ao)).
SELECT * FROM cuentas WHERE fecha BETWEEN #7/1/97# AND #7/31/97#
Selecciona los apuntes de 'diario' realizados en Julio de 1.997.
SELECT * FROM clientes WHERE nombre LIKE 'JU*'
Esto selecciona los clientes cuyo nombre comience con los caracteres 'JU'.
SELECT * FROM clientes WHERE apellidos LIKE '*AM'
Esto selecciona los clientes cuyos apellidos terminen con los caracteres 'AM'.
SELECT * FROM clientes WHERE apellidos LIKE '*GARCI*'
Esto selecciona los clientes cuyos apellidos contengan, en cualquier posicin, los caracteres 'GARCI'.
88
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
89
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
incluido en la instruccin SELECT, siempre y cuando la instruccin SELECT incluya al menos una funcin
SQL agregada.
Todos los campos de la lista de campos de SELECT deben o bien incluirse en la clusula GROUP BY o como
argumentos
de
una
funcin
SQL
agregada.
Una vez que GROUP BY ha combinado los registros, HAVING muestra cualquier registro agrupado por la
clusula GROUP BY que satisfaga las condiciones de la clusula HAVING.
HAVING es similar a WHERE, determina qu registros se seleccionan. Una vez que los registros se han
agrupado utilizando GROUP BY, HAVING determina cules de ellos se van a mostrar.
SELECT "nombre_columna 1", SUM("nombre_columna 2")
FROM "nombre_tabla"
GROUP BY "nombre_columna 1"
HAVING (condicin de funcin aritmtica)
91
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
En ese esquema, la informacin aparece descompuesta en tablas. Sin embargo, para un usuario en un
departamento de marketing, podra ser que le fuese ms til tener la informacin de las ventas de los
productos acumuladas, simplemente.
CREATE VIEW resumenproductos AS
select p.id, p.nombre, sum(cantidad) AS total
from producto as p, lineas_pedido as l
where (l.producto = p.id)
group by l.producto order by total desc
Despus de definir la vista, podremos utilizar resumenproductos como si fuese una tabla ms. Por
ejemplo la sentencia:
select * from resumenproductos
Nos devolver el resultado de la consulta que define la vista.
Como segundo ejemplo, puede que una persona en Contabilidad solamente necesite el resumen
econmico de los pedidos. En ese caso, podremos definir una vista como la siguiente utilizando una
subconsulta correlacionada:
CREATE VIEW resumenpedidos (usuario, nombre, pedido, fecha, total) AS SELECT c.usuario, c.nombre,
p.numpedido, p.fecha, (SELECT SUM(precio*cantidad) FROM LINEAS_PEDIDO as x WHERE (x.cliente =
p.cliente) and (x.pedido=p.numpedido))FROM CLIENTES as C, PEDIDOS as PWHERE p.cliente = c.usuario
92
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
usuario
agarcia
jlopez
jlopez
nombre
Ana Garcia
Juan Lopez
Juan Lopez
pedido
1
1
2
Fecha
2008-11-05
2008-02-10
2008-02-11
total
40
65
null
Ntese que cuando un pedido no tiene lneas asociadas, aparecer un nulo en la subconsulta. La consulta
puede hacerse tambin mediante agrupamiento con la siguiente consulta:
SELECT c.usuario, c.nombre, p.numpedido, p.fecha, sum(cantidad*precio)
FROM clientes as c, pedidos as p, lineas_pedido as l
WHERE (c.usuario = p.cliente) and (p.cliente = l.cliente) and (p.numpedido=l.pedido)
GROUP BY p.cliente, p.numpedido
En este caso se evita la aparicin de nulos, ya que la clusula GROUP BY no crear un subgrupo en el caso
de que no haya lneas de pedido.
Lgicamente, los beneficios de las vistas se obtienen al combinar su definicin con el sistema de permisos
del gestor de base de datos. Siguiendo el ejemplo, daramos permiso a los usuarios en Marketing sobre la
vista resumenproductos, y permisos a los usuarios de Contabilidad sobre resumenpedidos.
Dado que las vistas aparecen como tablas, pueden aparecer en otras consultas. Es importante tener esto
en cuenta cuando se estn diseando consultas, dado que puede afectar al rendimiento. Para ello,
algunos gestores de bases de datos tienen sintaxis extendidas para controlar cmo se representan
internamente las vistas.
Por ejemplo, MySQL tiene una clusula ALGORITHM que puede acompaarse de tres valores:
MERGE,TEMPTABLE o UNDEFINED, con el siguiente significado:
Con MERGE, el texto de las sentencias que hagan referencia a una vista se fusiona con el texto de
la definicin de la vista, de modo que las partes de la definicin de la vista reemplazan a las
partes correspondientes de la sentencia.
Con TEMPTABLE, los resultados de la vista se recuperan en una tabla temporal, que se usa
despus para ejecutar la consulta.
El uso de TEMPTABLE consume un espacio temporal adicional, pero puede tener un mejor rendimiento
ya que despus de hacer la copia de los datos en la tabla temporal, se usa sta y se libera la tabla o tabla
93
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
Cat_Especialidad
REGP
001-A
Nombre
ANA LPEZ
Direccin
3 SUR 104
Telefono
2-98-76-89
REGES
1
Especialidad
Pediatra
002-D
2 ORTE 125
2-98-75-89
Dentista
003-J
DANIEL
GARCA
JUAN GMEZ
2-69-85-78
General
004-T
TOMS RUZ
16 OTIENTE
105
31 ORIENTE
174
2-96-85-74
Cardilogo
Medico
REGM
F01
NOM_D
LUIS RUIZ
DIR
3 SUR 102
TEL
2-36-25-14
REGES
2
J02
JORGE PREZ
3 ORTE 123
2-78-96-54
G03
OSCAR
GARCA
SONIA JUREZ
2 SUR 178
2-41-52-36
3 SUR 897
2-47-25-98
S04
Cat_Examenes
Examenes
REGE
1
TIPO
SANGUNEO
COSTO
450
RAYOS X
720
ULTRASONIDO
450
GENERAL
730
REGP
PEGE
REGM
001-A
002-D
4
2
F01
J02
003-J
004-T
3
4
G03
F01
BASE DE DATOS
TECNOLOGAS DE LA INFORMACIN Y COMUNICACIN
g)
h)
i)
j)
k)
INDICADOR O
VARIABLE
Puntualidad
Presentacin
Desarrollo
CUMPLE
S
NO
DESCRIPCIN
FORMA
Realiza la actividad en el tiempo establecido
por el profesor
CONTENIDO
Aplica los conceptos vistos en la unidad
Los resultados son los esperados
TOTAL
PORCENTAJE
25
20
55
100
REFERENCIAS
ANEXOS
Descripcin
Alias
Longitud
Valores
Un dato puede
conocerse con diferentes
nombres, El uso de los
alias deben evitar
confusin. Aqu se
registraran todos los
alias
Cantidad de
espacio que
necesita para cada
dato.
En algunos
proceso solo se
permiten valores
de datos
especficos
95