Documentos de Académico
Documentos de Profesional
Documentos de Cultura
1. CONCEPTOS BASICOS
2. INTRODUCCION
2.1. Sistemas de Ficheros
2.2. Sistemas de Bases de Datos
2.3. Historia de los Sistemas de Bases de Datos
2.4. Sistema de Gestin de Base de Datos (SGBD)
2.4.1. Servicios de SGBD
2.5. Papeles en el entorno de Base de Datos
2.5.1. Administrador de Base de Datos
2.5.2. Diseador de Base de Datos
2.5.3. Programadores de Aplicaciones
2.5.4. Usuarios finales
2.6. Ventajas e Inconvenientes de los Sistemas de Bases de Datos
2.6.1. Ventajas por la integracin de datos
2.6.2. Ventajas por la existencia del SGBD
2.6.3. Inconvenientes de los Sistemas de Bases de Datos
2.7. Independencia de los datos
2.7.1. Independencia fsica de datos
2.7.2. Independencia lgica de datos
2.8. Lenguaje de Definicin de datos
2.9. Lenguaje de Manipulacin de datos
2.10. Manejador de Bases de datos (DBMS)
2.10.1. Funciones principales de un DBMS
2.11. Administrador de Bases de Datos
2.12. Usuarios de la Base de datos
2.13. Objetivos de los Sistemas de Bases de Datos
2.14. Modelos de datos
2.14.1. Modelos lgicos basados en objetos
2.14.2. Modelos lgicos basados en registros
2.14.3. Modelos fsicos de datos
2.15. Estructura general del Sistema
3. ARQUITECTRA DE LOS SISTEMAS DE BASES DE DATOS
3.1. Niveles de Abstraccin
3.1.1. Nivel Interno o Fsico
3.1.2. Nivel Conceptual
3.1.3. Nivel externo o Vistas
3.2. Independencia de los datos
4. LENGUAJES DE LOS SISTEMAS DE GESTION DE BASES DE DATOS
4.1. Lenguaje de Definicin de datos LDD o DDL
4.2. Lenguaje de Manejo de Datos LMD o DML
4.3. Lenguajes de Cuarta Generacin
4.4. Clasificacin de los Sistemas de Gestin de Bases de Datos
2006 Pagina 1
2006 Pagina 2
2006 Pagina 3
Instancia: Al 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:
{Vendedor: Nombre, puesto, salario, RFC}
{Articulo: Clave, costo, descripcin}
Instancia:
Usuarios de las bases de datos: 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.
Programa de Aplicacin: es el conjunto de programas que se desarrollan para que una
computadora realice cualquier trabajo controlado por el usuario.
Entidad: todo objeto que puede poseer caractersticas sobre los cuales se toman inters
de conocimiento.
Atributo: consiste en las caractersticas que hacen a una entidad: Ejemplo. La entidad
ALUMNO cuenta con los atributos Nombre, Cdula de Identidad, Carrera, Curso.
2006 Pagina 4
2. INTRODUCCION
En este captulo se presentan los sistemas de bases de datos, haciendo antes un repaso
por sus predecesores, los sistemas de ficheros. Aunque los sistemas de ficheros se han
quedado obsoletos, hay dos buenas razones para estudiarlos. En primer lugar, el conocer
los problemas de este tipo de sistemas nos previene de volver a cometerlos. En segundo
lugar, si en algn momento fuera necesario convertir un sistema de ficheros en un sistema
de bases de datos, comprender cmo trabaja este sistema puede ser una ayuda esencial.
Para trabajar de un modo ms efectivo, surgieron las bases de datos y los sistemas de
gestin de bases de datos (SGBD), tambin conocido como Sistema Manejador de
Base de Datos. (DBMS).
Una base de datos es un conjunto de datos almacenados entre los que existen relaciones
lgicas y ha sido diseada para satisfacer los requerimientos de informacin de una
empresa u organizacin. En una base de datos, adems de los datos, tambin se
almacena su descripcin.
La base de datos es un gran almacn de datos que se define una sola vez y que se utiliza
al mismo tiempo por muchos departamentos y usuarios. En lugar de trabajar con ficheros
desconectados e informacin redundante, todos los datos se integran con una mnima
cantidad de duplicidad. La base de datos no pertenece a un departamento, se comparte
por toda la organizacin. Adems, la base de datos no slo contiene los datos de la
2006 Pagina 5
A diferencia de los sistemas de ficheros, 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.
los usuarios.
Los sistemas jerrquico y de red constituyen la primera generacin de los SGBD. Pero
estos sistemas presentan algunos inconvenientes:
La produccin de varios SGBD relacionales durante los aos ochenta, como DB2 y
SLQ/DS de IBM, y ORACLE de ORACLE Corporation.
Hoy en da, existen cientos de SGBD relacionales, tanto para microordenadores como
para sistemas multiusuario, aunque muchos no son completamente fieles al modelo
relacional.
Otros sistemas relacionales multiusuario son INGRES de Computer Associates, Informix
de Informix Software Inc. y Sybase de Sybase Inc. Ejemplos de sistemas relacionales de
microordenadores son Paradox y dBase IV de Borland, Access de Microsoft, FoxPro y
R:base de Microrim.
Los SGBD relacionales constituyen la segunda generacin de los SGBD. Sin embargo, el
modelo relacional tambin tiene sus fallos, siendo uno de ellos su limitada capacidad al
modelar los datos. Se ha hecho mucha investigacin desde entonces tratando de resolver
este problema. En 1976, Chen present el modelo entidad-relacin, que es la tcnica ms
utilizada en el diseo de bases de datos. En 1979, Codd intent subsanar algunas de las
deficiencias de su modelo relacional con una versin extendida denominada RM/T (1979)
y ms recientemente RM/V2 (1990). Los intentos de proporcionar un modelo de datos que
represente al mundo real de un modo ms fiel han dado lugar a los modelos de datos
semnticos.
2006 Pagina 10
2006 Pagina 11
el acceso interfiera entre ellos de modo que se pierda informacin o, incluso, que se
pierda la integridad. La mayora de los SGBD gestionan el acceso concurrente a la
base de datos y garantizan que no ocurran problemas de este tipo.
Complejidad. Los SGBD son conjuntos de programas muy complejos con una gran
funcionalidad. Es preciso comprender muy bien esta funcionalidad para poder sacar
un buen partido de ellos.
Tamao. Los SGBD son programas complejos y muy extensos que requieren una
gran cantidad de espacio en disco y de memoria para trabajar de forma eficiente.
Coste econmico del SGBD. El coste de un SGBD vara dependiendo del entorno
y de la funcionalidad que ofrece. Por ejemplo, un SGBD para un ordenador
personal puede costar 500 euros, mientras que un SGBD para un sistema
multiusuario que d servicio a cientos de usuarios puede costar entre 10.000 y
100.000 euros. Adems, hay que pagar una cuota anual de mantenimiento que
suele ser un porcentaje del precio del SGBD.
Coste del equipamiento adicional. Tanto el SGBD, como la propia base de datos,
pueden hacer que sea necesario adquirir ms espacio de almacenamiento.
Adems, para alcanzar las prestaciones deseadas, es posible que sea necesario
adquirir una mquina ms grande o una mquina que se dedique solamente al
SGBD. Todo esto har que la implantacin de un sistema de bases de datos sea
ms cara.
Vulnerable a los fallos. El hecho de que todo est centralizado en el SGBD hace
que el sistema sea ms vulnerable ante los fallos que puedan producirse.
2006 Pagina 15
La figura muestra el DBMS como interfase entre la base de datos fsica y las peticiones
del usuario. El DBMS 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 manejador 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.
Artculo:
Descripcin
Costo
Clave
2006 Pagina 19
Smbolo
Representa
Ahora te preguntaras cmo se representan las relaciones entre las entidades en este
modelo?
Existen dos formas de representarla; pero para ello necesitamos definir que es una llave
primaria: Es un atributo el cual definimos como atributo principal, es una forma nica de
identificar a una entidad. Por ejemplo, el RFC de un empleado se distingue de otro por que
los RFC no pueden ser iguales.
Ahora si, las formas de representar las relaciones en este modelo son:
1. Haciendo una tabla que contenga cada una de las llaves primarias de las
entidades involucradas en la relacin.
Tomando en cuenta que la llave primaria del empleado es su RFC, y la llave primaria del
articulo es la Clave.
2006 Pagina 21
2006 Pagina 22
2006 Pagina 23
2006 Pagina 24
La mayora de los SGBD no distinguen del todo los tres niveles. Algunos incluyen detalles
del nivel fsico en el esquema conceptual. En casi todos los SGBD que se manejan vistas
de usuario, los esquemas externos se especifican con el mismo modelo de datos que
describe la informacin a nivel conceptual, aunque en algunos se pueden utilizar
diferentes modelos de datos en los niveles conceptual y externo.
Hay que destacar que los tres esquemas no son ms que descripciones de los mismos
datos pero con distintos niveles de abstraccin. Los nicos datos que existen realmente
estn a nivel fsico, almacenados en un dispositivo como puede ser un disco. En un SGBD
basado en la arquitectura de tres niveles, cada grupo de usuarios hace referencia
exclusivamente a su propio esquema externo. Por lo tanto, el SGBD debe transformar
cualquier peticin expresada en trminos de un esquema externo a una peticin
expresada en trminos del esquema conceptual, y luego, a una peticin en el esquema
interno, que se procesar sobre la base de datos almacenada. Si la peticin es de una
obtencin (consulta) de datos, ser preciso modificar el formato de la informacin extrada
de la base de datos almacenada, para que coincida con la vista externa del usuario. El
proceso de transformar peticiones y resultados de un nivel a otro se denomina
correspondencia o transformacin. Estas correspondencias pueden requerir bastante
tiempo, por lo que algunos SGBD no cuentan con vistas externas.
En los SGBD que tienen la arquitectura de varios niveles es necesario ampliar el catlogo
o diccionario, de modo que incluya informacin sobre cmo establecer la correspondencia
entre las peticiones de los usuarios y los datos, entre los diversos niveles. El SGBD utiliza
2006 Pagina 25
2006 Pagina 26
4.1.
Una vez finalizado el diseo de una base de datos y escogido un SGBD para su
implementacin, el primer paso consiste en especificar el esquema conceptual y el
esquema interno de la base de datos, y la correspondencia entre ambos. En muchos
SGBD no se mantiene una separacin estricta de niveles, por lo que el administrador de la
base de datos y los diseadores utilizan el mismo lenguaje para definir ambos esquemas,
es el lenguaje de definicin de datos (LDD). El SGBD posee un compilador de LDD
cuya funcin consiste en procesar las sentencias del lenguaje para identificar las
descripciones de los distintos elementos de los esquemas y almacenar la descripcin del
esquema en el catlogo o diccionario de datos. Se dice que el diccionario contiene
metadatos: describe los objetos de la base de datos.
Cuando en un SGBD hay una clara separacin entre los niveles conceptual e interno, el
LDD slo sirve para especificar el esquema conceptual. Para especificar el esquema
interno se utiliza un lenguaje de definicin de almacenamiento (LDA). Las
correspondencias entre ambos esquemas se pueden especificar en cualquiera de los dos
lenguajes. Para tener una verdadera arquitectura de tres niveles sera necesario disponer
de un tercer lenguaje, el lenguaje de definicin de vistas (LDV), que se utilizara para
especificar las vistas de los usuarios y su correspondencia con el esquema conceptual.
4.2.
Una vez creados los esquemas de la base de datos, los usuarios necesitan un lenguaje
que les permita manipular los datos de la base de datos: realizar consultas, inserciones,
eliminaciones y modificaciones. Este lenguaje es el que se denomina lenguaje de manejo
de datos (LMD).
Hay dos tipos de LMD: los procedurales y los no procedurales. Con un LMD procedural
el usuario (normalmente ser un programador) especifica qu datos se necesitan y cmo
hay que obtenerlos. Esto quiere decir que el usuario debe especificar todas las
operaciones de acceso a datos llamando a los procedimientos necesarios para obtener la
2006 Pagina 27
4.3.
Lenguajes de muy alto nivel que se utilizan para generar el cdigo de la aplicacin.
Los lenguajes SQL y QBE son ejemplos de 4GL. Hay otros tipos de 4GL:
4.4.
El criterio principal que se utiliza para clasificar los SGBD es el modelo lgico en que se
basan. Los modelos lgicos empleados con mayor frecuencia en los SGBD comerciales
2006 Pagina 29
Un tercer criterio es el nmero de sitios en los que est distribuida la base de datos. Casi
todos los SGBD son centralizados: sus datos se almacenan en un solo computador. Los
SGBD centralizados pueden atender a varios usuarios, pero el SGBD y la base de datos
en s residen por completo en una sola mquina. En los SGBD distribuidos la base de
datos real y el propio software del SGBD pueden estar distribuidos en varios sitios
conectados por una red. Los SGBD distribuidos homogneos utilizan el mismo SGBD en
mltiples sitios. Una tendencia reciente consiste en crear software para tener acceso a
varias bases de datos autnomas preexistentes almacenadas en SGBD distribuidos
heterogneos. Esto da lugar a los SGBD federados o sistemas multibase de datos en los
que los SGBD participantes tienen cierto grado de autonoma local. Muchos SGBD
distribuidos emplean una arquitectura cliente-servidor.
Un cuarto criterio es el coste del SGBD. La mayor parte de los paquetes de SGBD cuestan
entre 10.000 y 100.000 euros. Los sistemas monousuario ms econmicos para
microcomputadores cuestan entre 100 y 3.000 euros. En el otro extremo, los paquetes
ms completos cuestan ms de 100.000 euros.
Por ltimo, los SGBD pueden ser de propsito general o de propsito especfico. Cuando
el rendimiento es fundamental, se puede disear y construir un SGBD de propsito
especial para una aplicacin especfica, y este sistema no sirve para otras aplicaciones.
Muchos sistemas de reservas de lneas areas son SGBD de propsito especial y
pertenecen a la categora de sistemas de procesamiento de transacciones en lnea
(OLTP), que deben atender un gran nmero de transacciones concurrentes sin imponer
excesivos retrasos.
2006 Pagina 31
5. MODELO ENTIDAD-RELACIN
Es uno de los modelos lgicos basados en objetos y por lo tanto se enfoca
primordialmente a los niveles conceptuales y de visin. Una de las caractersticas de este
modelo es que permite representar con claridad las limitantes de los datos. El modelo
Entidad-Relacin es en esencia una herramienta para representar el mundo real por
medio de simbologas y expresiones determinadas.
5.1.
Una entidad es un objeto que existe y puede ser distinguido de otro objeto. Una entidad
puede ser concreta (un libro, un automvil etc.) o abstracta (fecha, edad, etc.).
Las entidades guardan datos sobre objetos en particular que los usuarios pueden
preguntar o pueden modificar. Las entidades son el punto de arranque para un modelo de
datos. Asegrese de que usted tiene bien claro el alcance y propsito de cada entidad,
antes de preocuparse por sus atributos. Puesto que una entidad es una agregacin de
atributos, una vez que se ha pensado cuidadosamente sobre el propsito de una entidad,
entonces sus atributos debern ponerse claros.
Las entidades son representadas grficamente como un rectngulo, el nombre de la
entidad se coloca dentro de l. Ahora imagine que el rectngulo contienen muchos puntos.
Cada punto representa una instancia individual de la entidad. Ninguna instancia
independiente es representada dos veces.
Mery
Lar
Ceir
Alice
CLIENTE
CLIENTE
Bob
Hila
Mary
Carol
Stan
PROPIEDADES: Una entidad es cualquier objeto acerca del cual queremos registrar
informacin. De donde se desprende que las entidades (incluidos los vnculos) poseen
propiedades que corresponden a la informacin que deseamos registrar sobre ellas. Por
ejemplo, los proveedores tienen localidades, las partes tienen pesos, los proyectos tienen
prioridades, las asignaciones (de empleados a proyectos) tienen fechas de inicio, etc. Por
lo tanto, dichas propiedades deben estar representadas en la base de datos.
Relaciones: Las relaciones son asociaciones entre entidades. Una relacin se traza como
una lnea entre una entidad y otra. Los nombres de relacin son extremadamente
2006 Pagina 32
importantes debido a que son capaces de expresar mucho de las polticas y el significado
del negocio cuando son nombradas adecuadamente. El hecho de que se haya trazado
una lnea ya informa al lector que existe una relacin o asociacin. En una base de datos
relacional, las relaciones permiten evitar la existencia de datos redundantes.
Atributo: Es alguna caracterstica de una entidad. Ejemplo Un paciente puede tener
muchos atributos, tales como apellidos, nombre, calle, etc.
Registro: Es un conjunto de concepto de datos que tienen algo en comn con la entidad
descripta.
Dominio: Una entidad puede tomar un conjunto de valores permitido al que se le conoce
como dominio del atributo, es decir, son los posibles valores que un atributo puede asumir.
Llave: Es uno de los conceptos de datos de un registro que se usan para identificar un
registro.
Clave Principal (PK): Es aquella que identifica en forma nica a un registro, por ejemplo
puede utilizar cliente_id para identificar a cada cliente de una empresa en donde el
numero asignado a cliente no puede repetirse para otra instancia de cliente.
Metadatos: Son datos a cerca de los datos del archivo o base de datos. Los metadatos
describen el nombre dado y la longitud asignada a cada concepto de datos. Los metdatos
tambin describen la longitud y composicin de cada uno de los registros.
Diagrama de Entidad Relacin: Es la representacin grfica de las entidades (objeto) y
la relacin existente entre cada entidad, las relaciones grafican los requerimientos
mnimos y mximos (cardinalidad) que definen las reglas del negocio.
Un conjunto de entidades es un grupo de entidades del mismo tipo. Una entidad puede
pertenecer a ms de un conjunto de entidades a la vez. Por ejemplo, la entidad persona
puede ser parte de los conjuntos de entidades alumnos, empleados, clientes etc.
Una entidad se distingue de otra porque posee ciertas caractersticas que la hacen nica.
A estas caractersticas se les conoce como atributo. El rango de valores validos para un
atributo determinado ser conocido como dominio del atributo.
Ejemplo:
Entidad Empleado X
Atributo:
-RFC
-Nombre
-Salario (2000...10,000)
-Edad (18...60)
2006 Pagina 33
Una entidad se describe por un conjunto de parejas en el siguiente formato (atributo, valor
del dato); debiendo especificarse una pareja por cada atributo de la entidad.
Ejemplo:
{(Nombre, Juan), (Edad, 15), (Carrera, LI)}
5.2.
Tipos de Entidades
Entidad independiente:
es una entidad cuyas instancias pueden identificarse
singularmente sin determinar su relacin a otra entidad, pero cuando ciertas entidades se
relacionan con otras, pueden identificarse instancias de entidades que dependen de otra.
Entidad dependiente: Es una entidad cuya instancias no pueden identificarse de forma
singular sin determinar su relacin a otra entidad o entidades. Las entidades dependiente
o entidad nios incluyen todos o una porcin de la clave primaria, y confa en los atributos
extranjeros emigrados para la entidad.
5.3.
Una relacin es una asociacin entre varias entidades. Un conjunto de relaciones un grupo
de relaciones del mismo tipo.
La mayora de las relaciones son BINARIAS; no obstante, pueden existir relaciones que
incluyan a ms de dos conjuntos de entidades.
Normalmente asocian a dos conjuntos de entidades y la relacin tendr una funcin
determinada; a esta se le denomina papel. Normalmente se utilizan los papeles para
etiquetar y as reconocer las relaciones establecidas.
Las relaciones tambin pueden tener atributos descriptivos, en cuyo caso, la relacin se
describe indicando la pareja (atributo, ultimo valor del atributo) sobre la relacin.
5.4.
Limitantes de Mapeo
Ejemplo:
UNA A UNA
Alumnos Tesis
A
B
UNA A MUCHAS
MUCHAS A UNA
MUCHAS A
MUCHAS
2006 Pagina 35
5.5.
Llaves Primarias
2006 Pagina 36
Ejemplo:
Fuerte
Dbil
Fuerte
5.6.
Diagramas de Entidad-Relacion
Son esquemas que nos permitan representar conjunto de entidades y sus relaciones
mediante la siguiente simbologa.
2006 Pagina 37
5.7.
Notas:
a) Las entidades dbiles se sealan como rectngulos de doble pared
b) Los papeles se indican etiquetando las lneas que conectan a los rectngulos con los
rombos.
Ejercicios:
Represente mediante Diagramas E-R las siguientes situaciones:
-- Un vdeo club mantiene el control de sus clientes utilizando los siguientes datos: numero
de credencial, nombre, direccin y telfono; l catalogo de pelculas contiene para cada
cassette los datos clave, titulo, clasificacin y costo de renta.
2006 Pagina 38
A fin de imprimir los pagares y mantener un control de rentas, se registran tambin las
fechas de renta y la cantidad de das que el cliente mantendr la pelcula.
5.8.
Puede darse el caso de que una relacin sea binaria: es decir, que asocie a ms de dos
conjunto de entidades. En estos casos la nica variacin para representar el modelo
consiste en que se establecer CARDINALIDAD para cada pareja de conjuntos de
entidades.
2006 Pagina 39
5.9.
Con el objeto de observar instancias de las bases de datos, los diagramas E-R se
convierten en tablas, Se obtiene una tabla por cada conjunto de entidades o de relaciones.
Existen reglas bien definidas para la conversin de los elementos de un diagrama E-R a
tablas:
a) ENTIDADES FUERTES.- Se crea una tabla con una columna para cada atributo del
conjunto de entidades.
b) ENTIDADES DBILES.- Se crea una tabla que contiene una columna para los atributos
que forman la llave primaria de la entidad fuerte a la que se encuentra subordinada.
c) RELACIN.- se crea una tabla que contiene una columna para cada atributo descriptivo
de la relacin y para cada atributo que conforma la llave primaria de las entidades que
estn relacionadas.
Convierta a tablas y muestre instancias donde pueda observarse la CARDINALIDAD del
diagrama E-R en el caso del vdeo club.
2006 Pagina 40
2006 Pagina 41
2006 Pagina 42
5.11. Agregacin
Es una tcnica que permite representar a un bloque de entidades relacionadas como si fueran un
solo conjunto de entidades; permitiendo as la relacin entre conjunto de relaciones.
2006 Pagina 43
6. MODELO RELACIONAL
Este modelo opera en los niveles conceptuales y de visin, y tiene la caracterstica de que
los resultados de un diseo muestran caractersticas bien definidas que sern tiles para
la implementacin del nivel conceptual.
Operadores tradicionales: Estas requieren que las tablas a operar tengan la misma
cantidad de atributos y que sus dominios correspondientes sean semejantes o
congruentes.
a. UNION.- Constituye una tabla que contiene a todas las tuplas que aparecen en una
o ambas tablas <tabla1>union<tabla2>
b. INTERSECCION.- Produce un atabla que contiene a aquellas tuplas que aparecen
en ambas tablas <tabla1>intersec<tabla2>
c. DIFERENCIA.-Produce un atabla que contiene todas las tuplas de la primera tabla
operando que no aparecen en la segunda <tabla1>minus<tabla2>
d. PRODUCTO CARTESIANO.- Produce un atabla que contiene todas las posibles
concatenaciones entre los elementos de las tablas involucradas
<tabla1>times<tabla2>
Operaciones especiales:
a. SELECT.- Es un formato que permite extraer tuplas que satisfacen una condicin
<tabla>where<condicin>
b. PROJECT.- Es un formato que nos permite filtrar atributos en la tabla resultante,
especificando aquellos que se desea obtener. <tabla>[<lista de atributos>]
c. JOIN.- Construye una tabla a partir de dos tablas especificas, obteniendo todas las
posibles combinaciones entre los elementos de estas y mostrando aquellas que
satisfagan una condicin determinada <tabla1>join<tabla2>where<condicion>
Nota: Esta operacin es semejante a una consulta sobre tabla global cuando se
involucran dos tablas y una condicin de filtro.
d. DIVIDE.-Toma dos tablas una de grado (M+N) y la otra de grado(N). construye una
tabla de grado M que contiene todos los valores m de la relacin (M+N) cuyo
complemento es igual a todos los valores de la relacin de orden N.
<tabla1>DIVIDE<tabla2>
Ejercicios:
a. Mostrar una lista que contenga los nombres y costos de las pelculas en existencia:
videos[nombre, costo]
b. Se desea conocer el nombre y domicilio de todos los clientes infantiles
(clientes where estado = 'infantil')[nombre, domicilio]
c. Se desea conocer el nombre de las pelculas que no son para nios
(videos where clasificacin = 'a')[titulo]
2006 Pagina 45
d. Se desea la lista de los ttulos que cuestan mas de 10.00 de pelculas para adultos
((videos where costo>10.00)where clasif='c')[titulo]
FORMATOS SQL
Data Definicin Language (DDL ) Lenguaje de definicin de Datos
Crear Tablas
CREATE TABLE
Tipos de datos Validos
CHAR (<LONG>)[VAR]
FLOAT
INTEGER
SMALLINT
Crear ndices
CREATE INDEX
Borrar ndices
DROP <nom>indice> Modificar Tablas (expandirlas)
ALTER TABLE
Eliminar Tablas
DROP TABLE <nom.tabla>
2006 Pagina 46
Tablas
CREATE TABLE persona
(
nombre(CHAR(40) VAR, NO NULL),
edad(SMALLINT, NONULL),
estatura(FLOAT, NO NULL),
telefono(CHAR(7))
)
Indices
Por nombre
CREATE INDEX ind_nom ON persona
(
nombre
)
Por estatura sin llaves repetidas, descendente
CREATE UNIQUE INDEX ind_est ON persona
(
estatura desc
)
Por edad (primero mas jvenes); edades repetidas, por estatura (primero la mas
alta)
CREATE INDEX ind_ed_est ON persona
(
edad,estatura desc
)
Modificaciones
ALTER TABLE persona
ADD FIELD direccin(CHAR(30), VAR, NO NULL)
2006 Pagina 47
Consultas
En una tabla
SELECT [UNIQUE] <lista de campos/*>
FROM <nom>tabla>
[WHERE <condicin>]
[ORDER BY <campo> [asc/des]]
Funciones integradas en select/where
COUNT(*) conteo
SUM(<campo>) total(acumulador)
AVG(<campo>) promedio
MAX(<campo>) mximo
MIN(<campo>) mnimo
2006 Pagina 48
2006 Pagina 49
2006 Pagina 50
Ejemplos:
1. Muestre el nombre y estado de los clientes cuyo numero de credencial es mayor a 100
select nombre estado
form clientes
where nc>100
2. Se desea conocer la cantidad de clientes de cada estado
select estado, count(*)
from clientes
group by estado
3. Se desea consultar los nombres de las pelculas que cuestan menos de 15.00 que
no son infantiles.
Select titulo
From videos
Where (costo < 15.00 and clasificacion = "a'')
Consultas en varias tablas
En tabla global
select [unique] <lista campos /*>
from <lista de tablas>
where <condicin>
Este tipo de consultas se realiza sobre un atabla global que resulta de todas las
combinaciones posibles entre las tuplas de las tablas involucradas.
La condicin en el formato debe aprovecharse para colocar un filtro que permita
que solo tas tuplas o combinaciones de estas que sean requeridas, se muestren;
esto se logra por medio de las columnas con valor semejante o de las relaciones
establecidas.
Si un campo se encuentra en ms de una tabla, su referencia puede formarse con
el formato tabla campo.
Ejemplo:
Se desea conocer la lista de los distintos ttulos rentados el 8 oct 97
Select unique video.tiulo
From renta,videos
Where (renta.fecha = '8/oct/97' and renta.clave = video.clave)
Los discriminadores any/all son opcionales y se pueden combinar con un operador
relacional o con in/not in en este tipo de consultas se procesa primeramente la tabla
mas interna(tabla2) de la cual obtiene una salida determinada; los datos que se
obtienen en esta salida se relacionan mediante el discriminador con los datos de la
tabla externa, produciendo as la salida final.
2006 Pagina 51
Ejemplo:
Se desea mostrar los ttulos de las pelculas que han sido rentadas por lo mas de
dos dias
Select videos.titulo
From videos,renta
Where (videos.clave=renta.clave) and (renta.dias>2)
En subconsultas
select videos.titulo
form videos
where clave in ( select clave
from rentas
where renta.dias >2)
El formato puede extenderse creando subconsultas en multinivel. Se asume el
mismo criterio de resolver a partir de la tabla mas interna e ir relacionando los
resultados con la tabla externa inmediata sucesivamente.
Ejemplo:
se desea conocer el domicilio de los clientes que han rentado pelculas para
adolescentes.
Select clientes.domicilio
Form clientes
Where nc in (select nc
From renta
Where clave in (select clave
From videos
Where clasificacion='b' ))
En uniones
Una unin permite consultar los resultados de dos o mas tablas en una sola salida; cuando
los resultados de las tablas son semejantes (muestran la misma informacin) se suprimen
las salidas redundantes, operando as como una unin de conjuntos.
Ejemplo:
se desea obtener una lista de clientes y de pelculas se desea incorporar solo a los
clientes infantiles y a las pelculas que pueden ser rentadas por estos.
Select nombre
From clientes
Where estado='infantil'
Select titulo
Union From videos
Where clasificacion = 'a'
2006 Pagina 52
6.6. VISTAS
Son una especie de tablas virtuales; es decir no existen fsicamente sino que forman
mediante la seleccin y/o filtrado de los componentes de otras tablas, una vista puede ser
definida en base a una lista previa. Esto significa que pueden crearse dependencia entre
las vistas.
Formato de definicin de vistas
CREATE VIEW<nombre vista>
[(identif_campo1, identif_campo2,...)]
AS<operacin de consulta>
Ejemplo: se desea crear una vista para obtener los nombres y domicilios de los
clientes adultos es deseable el establecimiento de las cabeceras nombre del cliente,
domicilio del cliente.
CREATE VIEW cliente_adulto
(nombre del cliente, domicilio del cliente)
As(select nombre,domicilio
From clientes
Where estado = 'adulto')
Como puede verse, la especificacin de los identificadores es opcional; si estos se omiten
se asumirn los nombres de los campos extrados en la consulta.
2006 Pagina 53
La operacin de consulta permite todos los formatos validos de consulta en SQL con
excepcin del group by.
Cuando una vista es definida en base a otra, se dice que es dependiente de esta por lo
tanto, se suprimir automticamente la vista dependiente si se suprime la vista original.
Eliminacin de vistas
Drop view <nombre tabla>
Ejemplo: suponga que se desea crear una vista dependiente de la vista cliente
adulto que contenga solamente a los clientes que viven sobre forjadores. Se
desean los mismos campos y la vista ser llamada cliente_adulto_forjadores.
Create view cliente_adulto_forjadores
AS (select *
From cliente_adulto
Where domicilio_del_cliente like 'forjadores%')
~
~
drop view cliente_adulto
(se eliminara tambin la vista cliente_adulto_forjadores, puesto que es
dependiente de cliente_adulto.)
La eliminacin de una tabla provoca tambin la eliminacin automtica de todas las listas
que se hayan definido haciendo referencia a ella.
2006 Pagina 54
7.1.
7.2.
Integridad de entidad
La integridad de entidad define una fila como nica para una entidad, es la que fuerza la
integridad de la columna o columnas de los identificadores o la clave principal de una
entidad mediante ndices primarios o PRIMARY KEY (PK) y claves compuestas
Clave primaria, principal o Primary Key, es aquella que identifica en forma nica a un
registro. Por ejemplo puede utilizar cliente_id para identificar a cada cliente de la
empresa, en donde el nmero asignado a cada cliente no puede repetirse para otra
instancia de cliente.
2006 Pagina 55
Clave Principal (PK), Columna o conjunto de columnas que identifican de forma exclusiva
todas las filas de una tabla. Las claves principales no permiten valores nulos. Dos filas no
pueden tener el mismo valor de clave principal, por lo que un valor de clave principal
siempre identifica a una sola fila de una tabla o entidad.
Clave compuesta o concatenada, cuando no es posible identificar un registro en forma
nica mediante el uso de uno de los atributos (campo) que se encuentra en un registro, se
puede construir una clave seleccionando o combinando dos o ms atributos (campo) del
mismo registro y que se utilizar como clave primaria para identificar al registro como
nico.
7.3.
Integridad referencial
Cambiar valores en una tabla principal de manera que queden registros hurfanos
en una tabla relacionada.
2006 Pagina 56
7.4.
2006 Pagina 57
8.
PROBLEMAS
o
Repeticin de datos del alumno en cada prstamo
2006 Pagina 58
Versin 3
PROBLEMAS
No es posible determinar fechas de prestamos de un libro a aun alumno en
particular.
o
Solo se registran alumnos con prestamos o se desperdicia atributo clasif.
o
Repetir datos del alumno por el prstamo o reutilizar el campo clasif, lo
ultimo tiene dos problemas:
MODELO PTIMO.
Total
Completa
Transitiva
Dependencia Total
La dependencia es una relacin funcional que penetra en el universo de posibilidades. La
dependencia no puede deducirse solamente de los datos de muestra, ya que estos son
necesariamente incompletos, sino que debe ser inherente al comportamiento del sistema.
Por ejemplo, si los datos revelan que cada uno de nuestro proveedores tiene exactamente
una planta y que todas estas plantas estn en diferentes ciudades, podemos asumir una
dependencia total entre proveedor, planta y ciudad. Es decir, dada una ciudad, la misma
est asociada con un proveedor, y dado este proveedor estar asociado con una ciudad.
En la prctica, solamente cuando un nuevo proveedor se incorpore con una planta en la
misma ciudad que uno de nuestros antiguos proveedores, resultar claro que no existe
dicha dependencia total. Esto no podra ser deducido a partir de los datos previos. Puede
asumirse a partir de nuestro conocimiento global de proveedores y ciudades.
Ejemplo
Si una de las variables es al mismo tiempo la clave, como consecuencia todo valor de
ambas variables es nico en cualquier tupla de la relacin. Por ejemplo, consideremos un
archivo de personal donde cada uno delo empleados es identificado de tres maneras:
Su nombre
Su nmero de seguro Social
Su nmero de empleado
Los tres pueden representar una dependencia total. Tanto el nmero de seguro social
como el nmero de empleado identifican al individuo en forma nica. El nmero de seguro
social atae a la poblacin completa de trabajadores de los Estados Unidos. El nmero de
empleado se aplica solamente al personal de la empresa en particular. El nombre puede
no ser totalmente nico y la dependencia total existe solamente cuando cada empleado
tiene un nombre nico.
Si el nmero de empleado es la clave de la relacin, el nmero de seguro social es
sinnimo de aquel. Podemos en consecuencia decir que el nmero de seguro social, el no
clave, es totalmente dependiente de la clave, y es una clave candidata.
Si los nombres de todos nuestros empleados son nicos, tambin pueden ser claves
candidatas. Sin embargo, puede existir alguna duplicacin, dos personas llamadas Juan
Prez, por ejemplo. Dado que sta es una posibilidad, no puede establecerse una
2006 Pagina 60
Ejemplo
Como un ejemplo de dependencia completa, consideremos el caso de una orden de
compra. Supongamos que esta orden de compra se describe mediante tres variables que
son de inters para nosotros:
Los pedidos describen en consecuencia una orden por medio de varias partes diferentes,
y para cada una distinta cantidad asociada. El sistema contable ve varios pedidos
diferentes. La misma parte puede aparecer en distintos pedidos y, cuando ello sucede,
pueden estar asociadas distintas cantidades con la misma parte.
Una tupla de la base de datos relacional contendr un NOC, un nmero de parte y una
cantidad. La cantidad es completamente dependiente del NOC y del nmero de parte.
Resulta claro que el nmero de pedido no es suficiente para determinar la cantidad ( todas
las partes de un determinado pedido no tienen la misma cantidad). Anlogamente, un
nmero de parte no es suficiente para determinar la cantidad ordenada, dadp que
diferentes pedidos pueden requerir distintas cantidades de dicha parte. Por lo tanto, en
nuestro ejemplo, la cantidad no es dependiente solamente del NOC o del nmero de parte,
es completamente dependiente de ambos.
Puede imaginarse, aunque no es muy probable, el caso de que cada vez que ordenamos
una parte la ordenemos solamente por una cantidad como una docena, o tres gruesas o
cualquier otro valor fijo. Si esto ocurre para todas las partes y para todos los pedidos de
nuestro sistema, en consecuencia no existir dependencia completa.
Dependencia Transitiva
La dependencia transitiva se aplica a tres o ms variables.
Consideremos el caso de solo tres variables y llammoslas S,T y V.
Diremos que S es la variable independiente si los valores de S determinan tanto a T como
a V. Su smbolo es como sigue:
2006 Pagina 61
T;
Ejemplo
Consideremos un ejemplo que asocia cursos con departamento y con escuela. En
consecuencia, canto ser dictado por el departamento de msica en la Escuela de Artes y
Ciencias; hidrulica ser dictada por Ingeniera Civil en la Escuela de Ingeniera;
impuestos ser dictado por el departamento contable en la Escuela de Administracin.
Llamemos
S al curso
T al Departamento
V a la Escuela
Por lo tanto
S
8.4. NORMALIZACIN
El diseo lgico de la base de datos, que incluye las tablas y sus relaciones, es la clave de
una base de datos relacional optimizada. Un buen diseo lgico de la base de datos
puede ser la base de un rendimiento ptimo de la aplicacin y de la base de datos. Un
diseo lgico deficiente puede comprometer el rendimiento de todo el sistema.
La normalizacin de un diseo lgico de la base de datos implica la utilizacin de mtodos
formales para separar los datos en varias tablas relacionadas. Las bases de datos
normalizadas se caracterizan por tener un mayor nmero de tablas estrechas (con pocas
columnas). Un nmero escaso de tablas anchas (con ms columnas) suele ser una
caracterstica comn de las bases de datos no normalizadas.
La Normalizacin es una tcnica de correccin de errores para los modelos de
informacin y no una tcnica de construccin.
La normalizacin es un conjunto de mtodos desarrollado por Edgar F. Codd a principios
de los setenta para extender la expectativa de vida de las aplicaciones representando los
datos en un formato relacional no redundante. En la teora del diseo de bases de datos
relacionales, las reglas de normalizacin identifican ciertos atributos que deben estar
presentes o ausentes en una base de datos bien diseada.
2006 Pagina 62
Grupo
repetid
Nombre de campo
Recibo Nro.
Nombre
Apellido
Nro. telfono
Fecha recepcin
Fecha entrega
Hora entrega
Tipo prenda
Tipo servicio
Cantidad
Precio unitario
Tipo prenda
Tipo servicio
Cantidad
Precio unitario
Observacin
Valor
1376
Hilmac
Lauths
0528 3222
13/05/02
14/05/02
15:00
Camisa p/ hombre
Lavado
10
500 Gs
Saco sport
Lavado seco
1
15000 Gs.
Manchas, pelos de gatos
2006 Pagina 63
PEDIDO
Nro.
Nombre
Recibo
cliente
1376 Hilmac
DETALLE PEDIDO
Nro.
Recibo(F Tip. Prenda
K)
(FK)
Camisa p/
1376 hombre
1376
Saco sport
Apellido
cliente
Lauths
Nro.
Fecha
Fecha
Hora
Telfono
recep.
promet.
promet.
05283222 13/05/2002 14/05/2002
15:00
Tip.
Servicio(FK)
Cantidad
Lavado
10
Lavado seco
Precio
Unit.
Observaci
n
500 ninguna
Manchas,
pelos de
15000 gato
2006 Pagina 64
PEDIDO
Nro.
Recibo
1376
Nombre
cliente
Hilmac
Apellido
cliente
Lauths
Nro.
Fecha
Fecha
Hora
Telfono
recep.
promet.
promet.
5283222 13/05/2002 14/05/2002
15:00
DETALLE PEDIDO
Nro.
Recibo
Tip. Prenda Tip. Servicio Cantidad
Camisa p/
1376
hombre
Lavado
10
1376
Saco sport
Lavado seco
Precio
Unit.
Observaci
n
500 ninguna
Manchas,
pelos de
15000 gato
2006 Pagina 65
TIPO SERVICIO
Tip.
Servicio(P Tip. Prenda
K)
(FK)
Camisa p/
Lavado
hombre
Lavado
seco
Saco sport
Precio Unit.
500
15000
2006 Pagina 66
Nombre
Hilmac
Apellido
Lauths
Nro.
Telfono
5283222
Nro cliente
(FK)
223
Fecha recep.
13/05/2002
Fecha
promet.
14/05/2002
Hora
promet.
15:00
Cantidad
Precio
Unit.
PEDIDO
Nro. Recibo
1376
DETALLE
PEDIDO
Tip. Prenda
Nro. Recibo(FK)
(FK)
Camisa p/
1376
hombre
1376
TIPO SERVICIO
Tip. Servicio
(PK)
Lavado
Lavado seco
Saco sport
Tip. Prenda
(FK)
Camisa p/
hombre
Saco sport
Tip. Servicio
(FK)
Lavado
10
Lavado seco
Observaci
n
500 ninguna
Manchas,
pelos de
15000 gato
Precio Unit.
500
15000
Gran cantidad de los atributos que andan flotando por el sistema pueden ser
reunidos con sus entidades madres si simplemente se toma uno el tiempo de usar una
2006 Pagina 67
fuerte dosis de sentido comn y preguntarse es este atributo propio de esta entidad?. En
nuestro caso, el estudio de pedido - es nombre de cliente un atributo de pedido?. La
respuesta es No, es un atributo de Cliente. A la mayora de nuestros clientes les dieron
nombre sus padres mucho antes de que decidieran llevar algo a lavar a nuestra
lavandera. El nombre del cliente no es un atributo de pedido de tintorera.
2006 Pagina 68
9. MODELO DE RED
9.1.
CONCEPTOS BASICOS
Una base de datos de red se compone por una coleccin de registras que se conectan
entre si por medio de ligas.
Un registro equivale a una entidad y un campo a un atributo del modelo entidad relacin.
Los campos contienen exclusivamente valores atmicos. Una liga es una relacin que se
establece solamente entre dos registros; es decir; debe utilizarse una liga para cada
relacin entre una pareja de registros.
Ejemplo:
CLIENTES CUENTAS
9.2.
2006 Pagina 69
RED
CLIENTE CUENTA
El caso anterior muestra la conversin del modelo entidad relacin al modelo de red para
una relacin simple donde no existen atributos descriptivos en la relacin.
CASOS ESPECIALES
a) LA RELACIN TIENE ATRIBUTOS DESCRIPTIVOS
E-R
D. E. D. RED
2006 Pagina 70
D. E. D. RED
2006 Pagina 71
2006 Pagina 72
2006 Pagina 73
CONJUNTOS DBTG
Son representaciones ms concisas del modelo de red; representan genricamente
entre registros.
Una de las aplicaciones mas extendidas de los conjuntos DBTG es la de los grupos
2006 Pagina 74
2006 Pagina 75
2006 Pagina 76
Ejemplo:
2006 Pagina 77
CASOS PARTICULARES
2006 Pagina 78
2006 Pagina 79
REGISTROS VIRTUALES.
Dado que en las relaciones muchos a muchos existe demasiada repeticin de datos, se
maneja el concepto de registro virtual. Un registro virtual es aquel que no se escribe
fsicamente en el medio, sino que es una referencia (liga) a un registro existente en forma
previa su representacin es :
La razn de utilizar registros virtuales es evitar la repeticin de los datos, lo cual traera
consigo los siguientes inconvenientes:
-Redundancia, en consecuencia desperdicio de espacio de almacenamiento.
-Alto riesgo de inconsistencia durante las actualizaciones.
2006 Pagina 80