SGBD
SGBD
SGBD
UNIDAD 1 .............................................................................................................................................. 8
1. INTRODUCCIÓN TEÓRICA........................................................................................................................ 8
1.1 Dato e Información ................................................................................................................. 8
1.2 ¿Qué es una base de datos? ................................................................................................... 8
1.3 El sistema de gestión de la base de datos .............................................................................. 9
1.4 Objetivos de los sistemas de bases de datos .......................................................................... 9
2. PLANIFICACIÓN Y DISEÑO DE BASES DE DATOS .......................................................................................... 11
2.1 Introducción Teórica ............................................................................................................. 11
2.2 Ciclo de vida de las Aplicaciones de bases de datos ............................................................. 12
2.3 Diseño de bases de datos...................................................................................................... 13
3. DISEÑO CONCEPTUAL DE BASES DE DATOS UTILIZANDO EL MODELO E-R ........................................................ 15
3.1 Modelos de datos ................................................................................................................. 15
3.2 El modelo E-R ........................................................................................................................ 15
3.3 Generalización, especialización y Agregación ...................................................................... 19
3.4 Técnica para el modelado entidad relación .......................................................................... 21
3.5 Ejercicios Resueltos ............................................................................................................... 21
4. DISEÑO LÓGICO DE BASES DE DATOS UTILIZANDO EL MODELO RELACIONAL .................................................... 23
4.1 Introducción Teórica ............................................................................................................. 23
4.2 El Modelo Relacional ............................................................................................................ 23
4.3 Conversión del diagrama E-R a tablas .................................................................................. 26
5. NORMALIZACIÓN DESDE EL PUNTO DE VISTA DEL DISEÑO LÓGICO DE UNA BASE DE DATOS ................................. 36
5.1 Introducción Teórica ............................................................................................................. 36
5.2 Dependencia Funcional ......................................................................................................... 36
5.3 ¿Qué es la Normalización? ................................................................................................... 38
5.4 Primera Forma Normal (1FN) ............................................................................................... 39
5.5 Segunda Forma Normal (2NF) .............................................................................................. 45
5.6 Tercera Forma Normal (3FN) ................................................................................................ 47
UNIDAD 2 ............................................................................................................................................ 51
1. INTRODUCCIÓN TEÓRICA...................................................................................................................... 51
1.1 ¿Qué es el lenguaje de consultas SQL? ................................................................................. 51
1.2 Breve Historia ....................................................................................................................... 51
1.3 Componentes del SQL ........................................................................................................... 53
2. ESTRUCTURA BÁSICA ........................................................................................................................... 54
3. ALIAS ............................................................................................................................................... 55
4. TIPOS DE DATOS ................................................................................................................................. 56
5. PREDICADOS Y CONECTORES ................................................................................................................. 56
6. TUPLAS DUPLICADAS ........................................................................................................................... 58
7. OPERACIONES DE CONJUNTO. ............................................................................................................... 59
INDICES
UNIDAD 3 ............................................................................................................................................ 72
1. INTRODUCCIÓN .................................................................................................................................. 72
1.1 Estructura de ficheros de Access ........................................................................................... 72
2. ELEMENTOS BÁSICOS DE ACCESS 2007 ................................................................................................... 73
2.1 La pantalla inicial .................................................................................................................. 73
2.2 La interfaz ............................................................................................................................. 73
3. CREAR, CERRAR Y ABRIR UNA BASE DE DATOS ........................................................................................... 75
3.1 Crear una base de datos mediante una plantilla .................................................................. 75
3.2 Crear una base de datos en blanco ....................................................................................... 76
4. CREAR TABLAS ................................................................................................................................... 77
4.1 Agregar una tabla ................................................................................................................. 77
4.2 Insertar una tabla, empezando en la vista Hoja de datos .................................................... 77
4.3 Insertar una tabla, empezando en la vista Diseño ................................................................ 78
4.4 La clave principal o clave primaria ....................................................................................... 81
4.5 Importar datos de otro origen .............................................................................................. 82
5. PROPIEDADES DE LOS CAMPOS .............................................................................................................. 83
5.1 Introducción .......................................................................................................................... 83
5.2 Tamaño del campo ............................................................................................................... 84
5.3 Formato del campo ............................................................................................................... 85
5.4 Lugares decimales ................................................................................................................ 86
5.5 Máscara de entrada ............................................................................................................. 86
5.6 Título ..................................................................................................................................... 87
5.7 Valor predeterminado .......................................................................................................... 87
5.8 Regla de validación ............................................................................................................... 87
5.9 Texto de validación ............................................................................................................... 88
5.10 Requerido.............................................................................................................................. 88
5.11 Permitir longitud cero ........................................................................................................... 88
5.12 Indexado ............................................................................................................................... 88
6. LAS RELACIONES ................................................................................................................................. 89
6.1 Tipos de relaciones de tabla ................................................................................................. 90
6.2 Descripción de la integridad referencial ............................................................................... 92
IIN
NDDIIC
CEED
DEEG
GRRÁ
ÁFFIIC
COOS
S
GRÁFICO 1 SISTEMA GESTOR DE BASES DE DATOS..................................................................................................... 9
GRÁFICO 2 REPRESENTACIÓN GRÁFICA DE UNA ENTIDAD.......................................................................................... 16
GRÁFICO 3 REPRESENTACIÓN GRÁFICA DE LOS ATRIBUTOS EN UNA ENTIDAD ............................................................... 16
GRÁFICO 4 RELACIÓN ENTRE DOS ENTIDADES ........................................................................................................ 17
GRÁFICO 5 RELACIÓN DE GRADO 3 O TERNARIA ..................................................................................................... 17
GRÁFICO 6 RELACIÓN 1 A 1............................................................................................................................... 18
GRÁFICO 7 RELACIÓN 1 A N .............................................................................................................................. 18
GRÁFICO 8 RELACIÓN N A N.............................................................................................................................. 18
GRÁFICO 9 EJEMPLOS DE GENERALIZACIÓN .......................................................................................................... 19
GRÁFICO 10 EJEMPLO DE AGREGACIÓN ............................................................................................................... 20
GRÁFICO 11 DIAGRAMA E-R DEL EJERCICIO 1 ....................................................................................................... 21
GRÁFICO 12 DIAGRAMA E-R DEL EJERCICIO 2 ....................................................................................................... 22
GRÁFICO 13 DIAGRAMA E-R DEL EJERCICIO 3 ....................................................................................................... 22
GRÁFICO 14 ENTIDAD ALUMNO ......................................................................................................................... 28
GRÁFICO 15 ESQUEMA E-R DE UNA FACTURA ....................................................................................................... 28
GRÁFICO 16 ESQUEMA E-R CON RELACIÓN UNO A UNO .......................................................................................... 30
GRÁFICO 17 ESQUEMA E-R CON RELACIÓN UNO A MUCHOS .................................................................................... 32
GRÁFICO 18 ESQUEMA E-R CON RELACIÓN MUCHOS A MUCHOS .............................................................................. 34
GRÁFICO 19 PANTALLA INICIAL DE ACCESS 2007 .................................................................................................. 73
GRÁFICO 20 CINTA DE OPCIONES ....................................................................................................................... 73
GRÁFICO 21 ENTORNO DE ACCESS 2007 ............................................................................................................. 75
GRÁFICO 22 OPCIÓN NUEVA BASE DE DATOS EN BLANCO ........................................................................................ 76
GRÁFICO 23 TABLA INICIAL DE LA BASE DE DATOS .................................................................................................. 76
GRÁFICO 24 GRUPO TABLAS DE LA FICHA CREAR ................................................................................................... 77
GRÁFICO 25 COMO CAMBIAR A LA VISTA DISEÑO .................................................................................................. 79
GRÁFICO 26 VISTA DISEÑO ............................................................................................................................... 79
GRÁFICO 27 CAMPOS DE LA TABLA PROFESORES ................................................................................................... 80
GRÁFICO 28 TIPOS DE DATOS DE LOS CAMPOS ...................................................................................................... 80
GRÁFICO 29 BOTÓN PARA AGREGAR LA CLAVE PRINCIPAL ........................................................................................ 81
GRÁFICO 30 ERROR DE CLAVE ............................................................................................................................ 82
GRÁFICO 31 GRUPO IMPORTAR DE LA FICHA DATOS EXTERNOS ............................................................................... 83
GRÁFICO 32 PROPIEDADES DE LOS CAMPOS.......................................................................................................... 84
GRÁFICO 33 FORMULARIO NOTAS ...................................................................................................................... 89
GRÁFICO 34 CAMPOS EN COMÚN ENTRE LAS TABLAS PROFESORES Y MATERIAS ........................................................... 90
GRÁFICO 35 BOTÓN RELACIONES DE LA PESTAÑA HERRAMIENTAS DE BASE DE DATOS. .................................................. 93
GRÁFICO 36 CUADRO DE DIÁLOGO MOSTRAR TABLAS ............................................................................................ 93
GRÁFICO 37 TABLAS AGREGADAS A LA VENTANA RELACIONES .................................................................................. 94
GRÁFICO 38 CUADRO DE DIÁLOGO MOSTRAR RELACIONES...................................................................................... 94
GRÁFICO 39 RELACIÓN UNA A VARIOS DE LA TABLA PROFESORES CON LA TABLA ALUMNOS ............................................ 95
GRÁFICO 40 BOTÓN MOSTRAR TABLA DE LA PESTAÑA DISEÑO ................................................................................. 95
GRÁFICO 41 MENÚ CONTEXTUAL DE UNA TABLA EN LA VENTANA RELACIONES ............................................................ 96
GRÁFICO 42 MENÚ CONTEXTUAL DE UNA RELACIÓN .............................................................................................. 96
GRÁFICO 43 CONSULTA SQL EN ACCESS.............................................................................................................. 99
GRÁFICO 44 BOTÓN DISEÑO DE CONSULTA DE LA PESTAÑA CREAR ............................................................................ 99
GRÁFICO 45 CUADRO DE DIÁLOGO MOSTRAR TABLA PARA CONSULTAS ...................................................................... 99
GRÁFICO 46 VENTANA VISTA DISEÑO DE CONSULTAS .......................................................................................... 100
GRÁFICO 47 BOTÓN EJECUTAR CONSULTAS........................................................................................................ 102
INDICES
SGBD
UNIDAD 1
Sistemas de Bases de Datos
U
UNNIID
DAAD
D11
Tema: Sistemas de Bases de Datos
1. Introducción Teórica
La base de datos es un gran almacén de datos que se define una sola vez y
que se utiliza al mismo tiempo por muchos departamentos y usuarios. La
base de datos no pertenece a un departamento, se comparte por toda la
organización.
8
UNIDAD 2
Lenguaje de Consultas SQL
1
DBMS: De las siglas en inglés Data Bases Management System cuya traducción al español es Sistemas
manejadores de bases de datos.
2
DDL: De las siglas en inglés Data Definition Language cuya traducción al español es Lenguaje de
definición de datos.
3
DML: De las siglas en inglés Data Manipulation Language cuya traducción al español es Lenguaje de
manipulación de datos
4
Inconsistencia de datos: Es cuando diversas copias de un mismo dato no concuerdan entre sí
ACTIVIDAD GRUPAL
Se pueden hacer malos diseños, pero una base de datos bien diseñada
contendrá información correcta, almacenará los datos más eficientemente y
será más fácil de gestionar y de mantener.
La base de datos.
El DBMS.
Los programas de aplicación.
Los dispositivos físicos (ordenadores, medios de almacenamiento,
etc.).
El personal que utiliza y que desarrolla el sistema.
Bajo esa perspectiva las etapas del ciclo de vida de una aplicación de bases
de datos son las siguientes:
ACTIVIDAD
Investigue cada una de las etapas del ciclo de vida del desarrollo del
software. Se evaluará: Portada, índice de contenidos, índice de gráficos (si
es que los hay), calidad de la teoría investigada, ejemplos, conclusiones,
recomendaciones y bibliografía.
5
Los diseñadores de la base de datos realizan el diseño lógico de la base de datos, debiendo identificar
los datos, las relaciones entre datos y las restricciones sobre los datos y sus relaciones. El diseñador de la
base de datos debe tener un profundo conocimiento de los datos de la empresa y también debe
conocer sus reglas de negocio. Las reglas de negocio describen las características principales de los datos
tal y como las ve la empresa.
6
Un diagrama o modelo entidad-relación (a veces denominado por su siglas en inglés E-R "Entity
relationship"). Se verá más adelante en detalle.
Para llevar a cabo esta etapa, se debe haber decidido cuál es el DBMS que
se va a utilizar, ya que el esquema físico se adapta a él. Entre el diseño
físico y el diseño lógico hay una realimentación, ya que algunas de las
decisiones que se tomen durante el diseño físico para mejorar las
prestaciones, pueden afectar a la estructura del esquema lógico. En
general, el propósito del diseño físico es describir cómo se va a implementar
físicamente el esquema lógico obtenido en la fase anterior.
Entidad y atributos
atributos. Por ejemplo puede ser una entidad el sustantivo persona pues el
mismo se diferencia de cualquier otra persona, incluso siendo gemelos.
O puede ser una entidad el sustantivo casa pues aunque sea exactamente
igual a otra, aún se diferenciará en su dirección.
ALUMNO
Gráfico 2 representación gráfica de una entidad
Una entidad puede ser un objeto con existencia física como: una persona,
un animal, una casa, etc. (entidad concreta), o un objeto con existencia
conceptual como: un puesto de trabajo, una asignatura de clases, un
nombre, etc. (entidad abstracta).
Hay dos tipos de entidades: fuertes y débiles. Una entidad débil es una
entidad cuya existencia depende de la existencia de otra entidad. Una
entidad fuerte es una entidad que existe pos sí sola y no depende de la
existencia de otras.
Teléfono Dirección
Código Nombres
ALUMNO
Gráfico 3 Representación gráfica de los atributos en una Entidad
Relación (Interrelación)
Teléfono Dirección
PERTENECE
ALUMNO CURSO
MADRE
PADRES
HIJO
PADRE
Gráfico 5 Relación de grado 3 o ternaria
Cardinalidad
La cardinalidad nos especifica los tipos de relaciones que existen entre las
entidades en el modelo E-R para establecer con esto las validaciones
necesarias para conseguir que los datos de la instancia7 correspondan con
la realidad.
7
Instancia: Valor único en un momento dado de una base de datos
Una entidad del tipo A solo se puede relacionar con una entidad del tipo B, y
viceversa.
MATRIMONIO
HOMBRE MUJER
Gráfico 6 Relación 1 a 1
b) Relación uno a muchos (1:N): Significa que una entidad del tipo A
puede relacionarse con cualquier cantidad de entidades del tipo B, y una
entidad del tipo B solo puede estar relacionada con una entidad del tipo A.
Gráfico 7 Relación 1 a N
Gráfico 8 Relación N a N
a) Generalización
IS A: Se lee ES UN
IS A
Salario Calificación
EMPLEADO ESTUDIANTE
IS A
Atributos individuales
Atributos individuales
ADMINISTRATIVO PROFESOR
8
La herencia es un tipo de relación entre una entidad "padre" y una entidad "hijo". La entidad "hijo"
hereda todos los atributos y relaciones de la entidad "padre". Por tanto, no necesitan ser representadas
dos veces en el diagrama.
b) Especialización
c) Agregación
Id
Horas Número
Nombre
USA
MAQUINARIA
Id
Gráfico 10 Ejemplo de Agregación
EDITORIAL PUBLICA
LIBRO
TIENE
LECTOR
Gráfico 12 Diagrama E-R del Ejercicio 2
Ejercicio 3
Se pretende crear una base de datos para almacenar información sobre los
proyectos que realizan en un curso. Los datos a tener en cuenta son:
Fecha Descripción
Tiempo
IdInforme IdTarea
Código
Nombre IdProyecto
Nombre
DIRIGE
PROYECTO ESTUDIANTE
Conceptos básicos
ALUMNOS
Claves: Como en una tabla, las tuplas pueden estar en cualquier orden, no
podemos referenciar una tupla concreta a mediante su posición entre las
Una clave primaria es aquella columna (pueden ser también dos columnas o
más) que identifica únicamente a esa fila. La clave primaria es un
identificador que va a ser único para cada fila. Se acostumbra poner la clave
primaria como la primera columna de la tabla pero esto no tiene que ser
necesario, si no es más una conveniencia. Muchas veces la clave primaria
es autonumérica.
Clave Candidata: En una tabla puede que tengamos más de una clave, en
tal caso se puede escoger una para ser la clave primaria, las demás claves
son las claves candidatas, además es la posible clave primaria. P.ej., en
nuestro caso de la tabla Alumnos, la clave puede ser tanto el atributo
Código, como el atributo Nombre
Clave Foránea: Una clave foránea es aquella columna que existiendo como
dependiente en una tabla, es a su vez clave primaria en otra tabla.
Clave Compuesta: Una clave compuesta es una clave que está compuesta
por más de una columna o campo.
Teléfono Dirección
Código Nombres
ALUMNO
Gráfico 14 Entidad Alumno
ALUMNO
FACTURA
LÍNEAS DE DETALLE
NÚMERO_ NÚMERO CANTIDAD CÓDIGO PRECIO
FACTURA LÍNEA ARTÍCULO UNITARIO
Con este método está claro cuáles son las instancias de LÍNEAS DE
DETALLE que se relacionan con cada Factura concreta, ya que partiendo del
Número de la Factura buscamos todas las tuplas de LÍNEAS DE DETALLE en
las que coincida su atributo Número de Factura. Por otro lado, averiguar a
qué Factura pertenece una Línea de Detalle es trivial, todo caso que se
conoce la clave de dicha Factura a través de Número de Factura.
«Una relación R del tipo uno a uno con atributos r1...rN que relaciona
entidades A y B de claves ai...ai+k y bj...bj+m, modifica la tabla de la entidad
A, añadiéndole como atributos los de la clave de B, y los suyos propios, esto
es bj...bj+m y r1...rN».
se representa mediante la relación ALQUILA, que en tal caso es del tipo uno
a uno.
Nombre Apellido
ALQUILA
CLIENTE CASILLERO ROPA
FechaAlquiler Duración
CLIENTE
CASILLERO DE ROPA
NÚMERO SITUACIÓN
CLIENTE
Por tanto, lo que en el diagrama E-R no era más que un dibujo que
relacionaba instancias de una entidad, lo hemos convertido en tablas y
atributos insertados en ellas que nos permiten «seguir el hilo» de las
instancias relacionadas.
«Una relación R del tipo uno a muchos con atributos r1...rN que relaciona
entidades A y B de claves ai...ai+k y bj...bj+m de manera que una instancia de
A se puede relacionar con muchas de B, modifica la tabla de la entidad B,
añadiéndole como atributos los de la clave de A, y los suyos propios, esto es
ai...ai+k y r1...rN».
FechaDeSalida
Situación
LugarDeSalida
Nacionalidad
COMPAÑIAS
VUELOS
COMPAÑIAS
VUELOS
Pues bien, tanto si se produce esa situación como si no, cuando se migra la
clave de una tabla a otra, nada nos impide renombrar los atributos en su
nueva ubicación. Por ejemplo, en el caso anterior, la tabla VUELOS podría
haber quedado como se ve en la figura: el atributo Nombre ha pasado a
llamarse Nombre de Compañía.
COMPAÑIAS
VUELOS
«Una relación R del tipo muchos a muchos con atributos r1...rN que
relaciona entidades A y B de claves ai...ai+k y bj...bj+m respectivamente, se
convierte en una tabla llamada R y compuesta por los atributos de las
claves de A y B, así como por los atributos propios de la relación R, esto es
ai...ai+k, bj...bj+m, y r1...rN. Los atributos ai...ai+k, bj...bj+m forman la clave de
la nueva tabla».
Nombre Apellido
MATRICULA
ALUMNO CLUB
ConvocatoriasAgotadas VecesMatriculado
ALUMNOS
CLUB
CÓDIGO NOMBRE
MATRÍCULA CLUB
ACTIVIDAD
Una vez creadas las tablas en el modelo relacional hay que verificarlas y
revisar si aún se puede reducir u optimizar de alguna manera.
ALUMNOS
ALUMNO CURSO PARALELO EDAD ESPECIALIDAD MATERIA
David Bustamante Décimo F 14 Básica Matemáticas III
David Bustamante Décimo F 14 Básica Computación III
David Bustamante Décimo F 14 Básica Inglés III
Polo García Octavo A 12 Básica CCNN I
Raúl Bolaños Noveno B 13 Básica Inglés II
Raúl Bolaños Noveno B 14 Básica CCSS II
Como vimos anteriormente, las relaciones pueden usarse como modelos del
“mundo real”, estos hechos del mundo real implican que no todo conjunto
de tuplas conforman una instancia válida del esquema de relación, aún
cuando los valores de las tuplas hayan sido tomados de los dominios
correctos. Por ejemplo, si tenemos el esquema:
ALUMNOS
9
Restricciones: Es una condición que obliga el cumplimiento de ciertas condiciones en la bases de datos.
Una dependencia funcional es una conexión entre uno o más atributos. Por
ejemplo si conocemos el valor de FechaDeNacimiento podemos conocer el
valor de Edad.
FechaDeNacimiento Edad
Las dependencias funcionales son afirmaciones del “mundo real” que nos
dicen qué instancias son válidas para un esquema R.
Grados de normalización
Una columna no puede tener múltiples valores. Los datos son atómicos. (Si
a cada valor de X le pertenece un valor de Y, entonces a cada valor de Y le
pertenece un valor de X)....
La primera forma normal (1NF o forma mínima) es una forma normal usada
en normalización de bases de datos. Una tabla de base de datos relacional
que se adhiere a la 1NF es una que satisface cierto conjunto mínimo de
criterios. Estos criterios se refieren básicamente a asegurarse que la tabla
10
Algunos de esos autores son: Ramez Elmasri y Shamkant B. Navathe)
11
Siguiendo el precedente establecido por Edgar.F. Codd, científico informático inglés (1923-2003) uno
de los padres de las bases de datos relacionales
12
Según como le define como la define Chris Date, Christopher Date, (nacido en 1941) es autor,
investigador y consultor independiente, especializado en la tecnología de bases de datos relacionales. Es
el investigador principal del modelo relacional de bases de datos de Edgar F. Codd. Trabajó en IBM.
13
Timestams: Es una secuencia de caracteres que denotan la hora y fecha (o alguna de ellas) en la cual
ocurrió determinado evento.
14
Vistas: Es el resultado de una consulta en de una o varias tablas utilizando un lenguaje propio de base
de datos llamado SQL, también se lo puede considerar una tabla virtual.
Una tabla que carece de una clave primaria. Esta tabla podría
acomodar filas duplicadas, en violación de la condición 3.
Una vista cuya definición exige que los resultados sean retornados en
un orden particular, de modo que el orden de la fila sea un aspecto
intrínseco y significativo de la vista. Esto viola la condición 1. Las
tuplas en relaciones verdaderas no están ordenadas una con respecto
de la otra.
Una tabla con por lo menos un atributo que pueda ser nulo. Un
atributo que pueda ser nulo estaría en violación de la condición 4,
que requiere a cada campo contener exactamente un valor de su
dominio de columna. Sin embargo, debe ser observado que este
aspecto de la condición 4 es controvertido.
Grupos repetidos
Un diseño que está inequívocamente en 1NF hace uso de dos tablas: una
tabla de cliente y una tabla de teléfono del alumno.
ALUMNO
TELÉFONOS DE
ALUMNOS
CODIGO TELÉFONO
1234 2832098
5678 2813145
5678 2831276
9101 4096473
Atomicidad
15
Hugh Darwen: Ex empleado de la IBM, estuvo involucrado en la historia de los modelos relacionales
desde su inicio, fue arquitecto principal de “Bussiness System 12, un sistema de gestión de datos que
estaba fielmente basado al modelo relacional.
Una relación está en 2FN si está en 1FN y si los atributos que no forman
parte de ninguna clave dependen de forma completa de la clave principal.
Es decir que no existen dependencias parciales.
16
RDBMS: Siglas en inglés de Relational Database Management System que traducido al español
significa Sistema administrador de bases de datos relacionales (SGBD), Las siglas de la materia
En términos levemente más formales: una tabla 1NF está en 2NF si y solo si
ninguno de sus atributos no principales (que no son clave) son
funcionalmente dependientes en una parte (subconjunto apropiado) de una
clave candidata. Observe que cuando una tabla 1NF no tiene ninguna clave
candidata compuesta (claves candidata consistiendo en más de un
atributo), la tabla está automáticamente en 2NF.
Ejemplo
Considere una tabla describiendo los clubes a los que asisten los alumnos:
ALUMNOS
ALUMNO CURSO
David Bustamante Décimo
Tomás Alarcón Primero de Bachillerato
Miguel Farfán Segundo de Bachillerato
CLUBES
ALUMNO CLUB
David Bustamante Fútbol
David Bustamante Ajedrez
David Bustamante Música
Tomás Alarcón Básquet
Humberto López Ajedrez
Humberto López Judo
Miguel Farfán Música
Campeones Intercolegiales
X contiene A, ó
X es una superclave, ó
A es un atributo primario (es decir, A está contenido dentro de una
clave candidato)
Ejemplo: Una tabla 2NF que falla en satisfacer los requisitos de la 3NF es:
Campeones Intercolegiales
17
Carlo Zaniolo: Nació en Vicenza, Italia. Es un estudioso de los sistemas de bases de datos relacionales
con uso para internet.
Campeones Intercolegiales
Colegios
SGBD
50
UNIDAD 2
Lenguaje de Consultas SQL
U
UNNIID
DAAD
D22
Tema: Lenguaje de consultas SQL
1. Introducción Teórica
51
UNIDAD 2
Lenguaje de Consultas SQL
22
ISO: Es la Organización Internacional para la estandarización, nacida en 1947, es el organismo
encargado de promover el desarrollo de normas internacionales de fabricación, comercio y
comunicación para todas las ramas industriales a excepción de la eléctrica y la electrónica.
ALUMNO
ALUMNO NOMBRE APELLIDO CÓDIGO
2. Estructura básica
SELECT
FROM
WHERE
Donde:
ri = relación (Tabla )
P = predicado (condición)
SELECT nombre
FROM alumno
WHERE apellido = “Martínez”
El resultado es:
23
Predicado: Es la condición que debe cumplir la cláusula WHERE.
NOMBRE
Martin
Pablo
3. Alias
Martin
Pablo
Usar alias en los atributos nos permite cambiar el nombre de los atributos
de la respuesta a la consulta.
Cuando asociamos un alias con una relación decimos que creamos una
variable de tupla. Estas variables de tuplas se definen en la cláusula FROM
después del nombre de la relación.
4. Tipos de datos
Decimal(n,m) - - - -
Float - - - -
5. Predicados y conectores
AND
OR
NOT
+ (Suma)
- (Resta)
* (Multiplicación)
/ (División)
El resultado sería:
NOMBRE CÓDIGO
Roberto 6401
Esteban 8064
Rubén 8975
Medardo 6224
Bruno 8765
Juan 8845
SELECT nombre
FROM alumno
WHERE (nombre LIKE "P%") OR (nombre LIKE "_ _ _ _ _ _")
El resultado sería:
NOMBRE
Martin
Pablo
Sandro
6. Tuplas duplicadas
El resultado sería:
APELLIDO
Martínez
Sánchez
Guerrón
Alemán
Brito
Abril
Mogrovejo
Méndez
Serrano
7. Operaciones de conjunto.
JUGADOR
JUGADORES CÓDIGO PUESTO NÚMERO_CAMISETA
1 5988 DELANTERO 9
2 5699 MEDIO 5
3 9656 ARQUERO 1
4 9872 DEFENSA 3
SELECT nombre
FROM alumno
WHERE apellido = "Martínez"
UNION
SELECT nombre
FROM alumno
WHERE apellido = "Serrano"
El resultado sería:
NOMBRE
Martin
Pablo
Juan
Ejemplo: Obtener todos los códigos de los que juegan al fútbol y, además,
están en la lista de la relación persona:
SELECT código
FROM alumno
INTERSECT
SELECT código
FROM jugador
Y el resultado sería:
CÓDIGO
5988
5699
8845
El resultado sería:
NOMBRE APELLIDO
Martin Martínez
Pablo Martínez
Juan Serrano
En conjuntos la frase << mayor que algún >> se representa en SQL por
(>SOME), también podría entenderse esto como << mayor que el menor de
>>, su sintaxis es igual que la del conector IN. SQL también permite las
comparaciones (>SOME), (=SOME) (>=SOME), (<=SOME) y (<>SOME).
Por omisión SQL lista los elementos en orden ascendente. Para especificar
el tipo de ordenación, podemos especificar DESC para orden descendente o
ASC para orden ascendente.
El resultado sería:
APELLIDO NOMBRE
Serrano Juan
Sánchez Roberto
Mogrovejo Saúl
Méndez Bruno
Martínez Pablo
Martínez Martin
Guerrón Esteban
Brito Sandro
Alemán Rubén
Abril Medardo
Promedios AVG
Mínimo MIN
Máximo MAX
Total SUM
Contar COUNT
PROFESIONALES
AÑOS_ VALOR_
PROFESIONAL CÉDULA CLUB
PROFESIONAL ACTUAL
El resultado sería:
Ejemplo: Determinar por cada club cual es el valor_actual del jugador más
caro de la relación PROFESIONALES
Hay ocasiones en las que es útil declara condiciones que se aplican a los
grupos más que a las tuplas. Para esto usamos la cláusula HAVING de SQL.
Ejemplo: Determinar por cada club cual es el valor_actual del jugador más
caro, pero con la condición de que este sea mayor a 10000 de la relación
PROFESIONALES.
CLUB JUGADOR_MAS_CARO
DEPORTIVO CUENCA 1200000,00
Si en la misma consulta aparece una cláusula WHERE y una cláusula
HAVING, primero se aplica el predicado de la cláusula WHERE, las tupla que
satisfacen el predicado WHERE son colocadas en grupos por la cláusula
GROUP BY. Después se aplica la cláusula HAVING a cada grupo.
11.1 Eliminación
DELETE FROM r
WHERE P
11.2 Inserción
INSERT INTO r1
VALUES (v1, v2,..., v)
Ejemplo: Insertar una tupla con los mismos valores de la tupla eliminada
en el ejemplo anterior en la relación alumno.
11.3 Actualizaciones
En ciertas ocasiones podemos desear cambiar los valores de una tupla sin
cambiar todos los valores en dicha tupla. Para este propósito usamos la
sentencia:
UPDATE r1
SET A1 = V1, A2 = V2,...,An = Vn
WHERE P
UPDATE jugador
SET número_camiseta = 7
WHERE número_camiseta = 5
12.1 Creación
Una relación en SQL se define usando la orden CREATE TABLE r(A1 D1, A2
D3,...,An Dn) Donde r es el nombre de la relación, cada Ai es el nombre de
un atributo del esquema de la relación r y Di es el tipo de dato de Ai. Una
relación recién creada está vacía. La orden INSERT puede usarse para
cargar la relación
12.2 Eliminación
Para eliminar una relación usamos la orden DROP TABLE r, esta orden
elimina toda la información sobre la relación sacada de la base de datos,
esta orden es más fuerte que DELET FROM r ya que esta ultima elimina
todas las tuplas pero no destruye la relación, mientras que la primera sí.
12.3 Actualización
Los ejercicios de ésta tarea se refieren a una sola base de datos, que se
compone de tres tablas: la tabla S, que representa a los proveedores; la
tabla P, que representa a las partes, y la tabla SP, que representa los
envíos de partes hechos por los proveedores. La clave primaria de la tabla
proveedor es S#, la clave primaria de la tabla partes es P#. Además,
supondremos que no pueden existir al mismo tiempo dos envíos del mismo
proveedor y de la misma parte, de modo que cada envío tiene una
combinación única de número de proveedor/número de parte (es decir es la
clave primaria combinada de la tabla SP).
P
P# PNOMBRE COLOR PESO CIUDAD
P1 Tuerca Rojo 12 Londres
P2 Perno Verde 17 París
P3 Birlo Azul 17 Roma
P4 Birlo Rojo 14 Londres
P5 Leva Azul 12 París
P6 Engrane Rojo 19 Londres
SP
S# P# CANT
S1 P1 300
S1 P2 200
S1 P3 400
S1 P4 200
S1 P5 100
S1 P6 100
S2 P1 300
S2 P2 400
S3 P3 200
S4 P2 200
S4 P4 300
S4 P5 400
SGBD
71
UNIDAD 3
Microsoft Access 2007
U
UNNIID
DAAD
D33
Tema: Access 2007
1. Introducción
Por ejemplo, hay plantillas que se pueden usar para realizar un seguimiento
de problemas, administrar contactos o gastos. Algunas plantillas contienen
varios registros de ejemplo que ayudan a mostrar su uso. Las plantillas de
base de datos pueden usarse tal cual o pueden personalizarse de modo que
se ajusten a las necesidades específicas del usuario.
3.2 Crear una base de datos en blanco
1. Inicie Access.
En la página Introducción a Microsoft Office Access, haga clic en Base
de datos en blanco.
Haga clic en Tabla para crear una tabla en blanco en la vista Hoja de datos.
Puede usar la vista Hoja de datos para comenzar a escribir datos
inmediatamente y para que Access cree la estructura de tabla, o bien,
puede usar la Vista Diseño para crear primero la estructura de tabla y, a
continuación, cambiar a la vista Hoja de datos para escribir los datos.
Independientemente de la vista en la que comience a trabajar, siempre
puede cambiar a la otra vista mediante los botones Ver en la barra de
estado de la ventana Access.
4.2 Insertar una tabla, empezando en la vista Hoja de datos
En la vista Hoja de datos, puede escribir los datos inmediatamente y dejar
que Access cree la estructura de tabla en segundo plano. Los nombres de
los campos se asignan por números (Campo1, Campo2, etc.) y Access
define el tipo de datos basándose en el tipo de los datos que se escriben.
en Nuevo campo.
4. Access muestra el panel Plantillas de campos, que contiene una lista
de los tipos de campos más comunes. Si arrastra uno de estos
Observa cómo una vez tengamos algún tipo de dato en la segunda columna,
la parte inferior de la ventana, la correspondiente a Propiedades del campo
se activa para poder indicar más características del campo.
A continuación pulsar la tecla ENTER para ir a la tercera columna de la
rejilla. Esta tercera columna no es obligatorio utilizarla ya que únicamente
sirve para introducir un comentario, normalmente una descripción del
campo de forma que la persona que tenga que introducir datos en la tabla
sepa qué debe escribir ya que este cometario aparecerá en la barra de
estado de la hoja de datos.
Repetir el proceso hasta completar la definición de todos los campos
(columnas) de la tabla.
4.4 La clave principal o clave primaria
Antes de guardar la tabla tendremos que asignar una clave principal.
Recuerda que la clave principal proporciona un valor único para cada fila de
la tabla y nos sirve de identificador de registros de forma que con esta clave
podamos saber sin ningún tipo de equivocación el registro al cual identifica.
No podemos definir más de una clave principal, pero podemos tener una
clave principal compuesta por más de un campo.
Para asignar una clave principal a un campo, seguir los siguientes pasos:
Hacer clic sobre el nombre del campo que será clave principal.
Hacer clic sobre el botón Clave principal en el marco Herramientas de la
pestaña Diseño.
A la izquierda del nombre del campo aparecerá una llave indicándonos que
dicho campo es la clave principal de la tabla.
Si queremos definir una clave principal compuesta (basada en varios
campos), seleccionar los campos pulsando simultáneamente la tecla CTRL y
el campo a seleccionar y una vez seleccionados todos los campos hacer clic
en el botón Clave principal.
Importante: Recordar que un campo o combinación de campos que
forman la clave principal de una tabla no puede contener valores nulos y no
pueden haber dos filas en la tabla con el mismo valor en el campo/s clave
principal.
Cuando intentemos insertar una nueva fila con valores que infrinjan estas
dos reglas, el sistema no nos deja crear la nueva fila y nos devuelve un
error de este tipo:
6. Las relaciones
Uno de los objetivos de un buen diseño de base de datos es eliminar
la redundancia de los datos (datos duplicados). Para lograr dicho
objetivo, conviene desglosar los datos en muchas tablas basadas en
temas para que cada hecho esté representado sólo una vez. A
continuación, se debe proporcionar a Microsoft Office Access 2007 los
medios para recopilar de nuevo la información desglosada (esto se
realiza colocando campos comunes en tablas que están relacionadas).
Sin embargo, para realizar este paso correctamente, primero deberá
comprender las relaciones existentes entre las tablas y, a
continuación, especificar dichas relaciones en la base de datos de
Office Access 2007.
Tras crear una tabla para cada tema en la base de datos, es preciso
proporcionar a Office Access 2007 los medios para recopilar de nuevo
esa información cuando sea necesario. Para ello, se colocan campos
comunes en las tablas que están relacionadas y se definen las
relaciones entre las tablas. De ese modo, se pueden crear consultas,
formularios e informes que muestren a la vez la información de varias
tablas. Por ejemplo, el formulario que se muestra a continuación
incluye información recopilada de varias tablas:
filas actualizadas y otras no. Por ello, Access incluye la opción Eliminar en
cascada los registros relacionados. Cuando se aplica la integridad
referencial, se selecciona la opción Actualizar en cascada los campos
relacionados y, a continuación, se actualiza una clave principal, Access
actualiza automáticamente todos los campos que hacen referencia a la clave
principal.
También es posible que tenga la necesidad válida de eliminar una fila y
todos los registros relacionados; por ejemplo, un registro Profesor y todas
las materias relacionadas de ese profesor. Por ello, Access incluye la opción
Eliminar en cascada los registros relacionados. Si aplica la integridad
referencial y selecciona la opción Actualizar en cascada los campos
relacionados y, a continuación, elimina un registro en la parte de la clave
principal de la relación, Access eliminará automáticamente todos los campos
que hagan referencia a la clave principal.
6.3 Crear una relación.
Para crear relaciones en Access 2007 primero deberemos acceder a la
ventana Relaciones deberemos hacer clic en el botón Relaciones que se
encuentra en la pestaña Herramientas de base de datos.
En la parte superior deben estar los nombres de las dos tablas relacionadas
(Profesores y Materias) y debajo de éstos el nombre de los campos de
relación (código y numero).
Hacer clic sobre la tabla para seleccionarla y hacer clic en el botón Ocultar
tabla en la pestaña Diseño, ver Gráfico 40.
6.6 Modificar relaciones.
Posicionarse en la ventana Relaciones y elegir entre estas dos formas:
Hacer clic con el botón derecho sobre la relación a modificar y elegir la
opción Modificar relación... del menú contextual que aparecerá,
Consultas de acción.
Son consultas que realizan cambios a los registros. Existen varios tipos de
consultas de acción, de eliminación, de actualización, de datos anexados y
de creación de tablas.
Consultas específicas de SQL.
Son consultas que no se pueden definir desde la cuadrícula QBE de Access
sino que se tienen que definir directamente en SQL.
Recuerde que las consultas tienen la siguiente sintaxis:
Parte Descripción
tabla Nombre de la tabla que contiene los campos de los cuales se seleccionan
los registros.
campo1, Nombres de los campos que contienen los datos que desea recuperar. Si
campo2 incluye más de un campo, se recuperan en el orden en que se han
enumerado.
alias1, alias2 Nombres que se utilizan como encabezados de columna en tabla en vez de
los nombres de columna originales.
expresióndet Nombre de la tabla o tablas que contienen los datos que se desean
abla recuperar.
basededatos Nombre de la base de datos que contiene las tablas de expresión de tabla
externa si éstas no están en la base de datos actual.
Por ejemplo para visualizar código y nombres de los estudiantes del Tercero
de bachillerato, paralelo E1, de la tabla Alumnos. La consulta sería:
Al entrar en la Vista Diseño de consulta nos pide primero las tablas de las
que la consulta sacará los datos con un cuadro de diálogo parecido al
siguiente:
misma forma las demás tablas. Finalmente hacer clic sobre el botón Cerrar
y aparecerá la ventana Vista Diseño de consultas.
condiciones. Por ejemplo precio > 100 y precio < 1200, aparecen los
registros cuyo precio está comprendido entre 101 y 1199.
En un criterio de búsqueda en el que las condiciones están unidas por el
operador O, el registro aparecerá en el resultado de la consulta si cumple al
menos una de las condiciones.
SGBD
108
UNIDAD 4
MySQL
U
UNNIID
DAAD
D44
Tema: MySQL
1. Introducción
El software MySQL proporciona un servidor de base de datos SQL
(Structured Query Language) muy rápido, multi-threaded, multiusuario y
robusto. El servidor MySQL está diseñado para entornos de producción
críticos, con alta carga de trabajo así como para integrarse en software para
ser distribuido. Además el software MySQL tiene una doble licencia: los
usuarios pueden elegir entre usar el software MySQL como un producto
Open Source bajo los términos de la licencia GNU General Public License o
pueden adquirir una licencia comercial estándar de MySQL.
2. Características
MySQL es un sistema de gestión de bases de datos.
MySQL es un sistema de gestión de bases de datos relacionales.
MySQL software es Open Source.
El servidor de base de datos MySQL es muy rápido, fiable y fácil de usar.
MySQL Server trabaja en entornos cliente/servidor o incrustados
Una gran cantidad de software de contribuciones está disponible para
MySQL.
3. Historia
Se empezó a utilizar con la intención de usar mSQL (el nombre original)
para conectar a nuestras tablas utilizando nuestras propias rutinas rápidas
de bajo nivel (ISAM). Sin embargo y tras algunas pruebas, llegamos a la
conclusión que mSQL no era lo suficientemente rápido o flexible para
nuestras necesidades. Esto provocó la creación de una nueva interfaz SQL
para nuestra base de datos pero casi con la misma interfaz API que mSQL.
Esta API fue diseñada para permitir código de terceras partes que fue
escrito para poder usarse con mSQL para ser fácilmente portado para el uso
con MySQL.
La derivación del nombre MySQL no está clara. Nuestro directorio base y un
gran número de nuestras bibliotecas y herramientas han tenido el prefijo
"my" por más de 10 años. Sin embargo, la hija del co-fundador Monty
Widenius también se llama My. Cuál de los dos dió su nombre a MySQL
todavía es un misterio, incluso para nosotros.
El nombre del delfín de MySQL (nuestro logo) es "Sakila", que fue elegido
por los fundadores de MySQL AB de una gran lista de nombres sugerida por
los usuarios en el concurso "Name the Dolphin" (ponle nombre al delfín). El
nombre ganador fue enviado por Ambrose Twebaze, un desarrollador de
software Open Source de Swaziland, África. Según Ambrose, el nombre
femenino de Sakila tiene sus raíces en SiSwate, el idioma local de
Swaziland. Sakila también es el nombre de una ciudad en Arusha, Tanzania.
4. Esquema de denominaciones
El esquema de denominaciones de MySQL emplea para las entregas
nombres consistentes en tres números y un sufijo; por ejemplo, mysql-
5.0.9-beta. Los números dentro del nombre de la entrega se interpretan
como sigue:
• El primer número (5) es la versión principal y describe el formato de
fichero. Todas las entregas de la versión 5 comparten el mismo formato
para sus ficheros.
• El segundo número (0) es el nivel de entrega. En conjunto, la versión
principal y el nivel de entrega constituyen el número de la serie.
• El tercer número (9) es el número de versión dentro de la serie. Se
incrementa para cada nueva entrega. Usualmente es deseable poseer la
última versión dentro de la serie que se está usando.
Para los cambios menores, el que se incrementa es el último número en la
denominación de la versión. Cuando se adicionan características de
importancia o aparecen incompatibilidades menores con versiones
precedentes, se incrementa el segundo número.
Cuando cambia el formato de los ficheros, se incrementa el primer número.
Las denominaciones de las entregas también incluyen un sufijo para indicar
el grado de estabilidad. Una entrega progresa a través de un conjunto de
sufijos a medida que mejora su estabilidad. Los posibles sufijos son:
• alpha indica que la entrega contiene características nuevas que no han
sido plenamente probadas. Asimismo, en la sección "Novedades" deberían
estar documentados los errores conocidos, aunque usualmente no los hay.
6. Comandos básicos
Un comando normalmente consiste en una sentencia SQL seguida de punto
y coma. (Hay excepciones donde el punto y coma puede omitirse. QUIT,
mencionado anteriormente, es una de ellas. Luego conocerá otras.)
Cuando ingresa un comando, MySQL lo envía al servidor para ser ejecutado
e imprime los resultados. A continuación muestra de nuevo el prompt
mysql> para informarle que está listo para otro comando.
La siguiente tabla muestra cada uno de los indicadores que podrá ver y
sintetiza lo que dicen acerca del estado en que se encuentra mysql:
PROMPT SIGNIFICADO
mysql> Listo para un nuevo comando.
-> Esperando la siguiente línea en un comando de múltiples líneas.
'> Esperando la siguiente línea, se encuentra abierta una cadena que
comienza con apostrofo (''').
"> Esperando la siguiente línea, se encuentra abierta una cadena que
comienza con comillas dobles ('"').
`> Esperando la siguiente línea, se encuentra abierta una cadena que
comienza con tilde ('`').
/*> Esperando la siguiente línea, se encuentra abierto un comentario que
comienza con /*.
Advierta que, al igual que QUIT, USE no necesita que ponga un punto y
coma al final (aunque puede hacerlo si lo desea). La sentencia USE tiene
otra particularidad: debe escribirse en una sola línea.
8. Crear y seleccionar una base de datos
Si el administrador crea su base de datos en el mismo momento que le
otorga privilegios, puede comenzar a utilizarla, de lo contrario necesitará
crearla:
En ambientes Unix, los nombres de las bases de datos son case sensitive (al
contrario que las palabras clave), de modo que siempre debe referirse a su
base de datos como colegio, y no Colegio, COLEGIO, o una variante similar.
Esto también se aplica a los nombres de tablas. Esta restricción no existe en
Windows, aunque puede utilizar el mismo esquema de mayúsculas cuando
se refiera a bases de datos y tablas en una consulta dada.
Al crear una base de datos, ésta no se selecciona para su uso, debe hacerlo
explícitamente. Para convertir a colegio en la base de datos actual, use este
comando:
Las bases de datos sólo necesitan ser creadas una sola vez, pero deben ser
seleccionadas cada vez que se inicia una sesión de mysql. Puede hacerse a
través del comando USE como se muestra en el ejemplo.
9. Creación de tablas
La creación de la base de datos ha sido una tarea sencilla, pero hasta ahora
permanece vacía, como le muestra SHOW TABLES:
Nombre del campo Tipo de dato del campo [NOT NULL|NULL] [DEFAULT valor
predeterminado] [AUTO_INCREMENT] [PRIMARY KEY] [COMMENT
‘comentarios’]
Gráfico 65 Crear una tabla con una clave primaria y una clave foránea
Aquí, un ejemplo más complejo, en el cual una tabla notas tiene claves
foráneas hacia otras dos tablas. Una de las claves foráneas hace referencia
a un índice de la tabla materias. La otra hace referencia a un índice de la
tabla alumnos:
B
BIIB
BLLIIO
OGGR
RAAFFÍÍA
A
Referencias bibliográficas
[1] C. Batini, S. Ceri, S.B. Navathe (1994) Diseño Conceptual de Bases de
Datos. Un enfoque de entidades-interrelaciones Addison-Wesley / Díaz de
Santos
[2] T. Connolly, C. Begg, A. Strachan (2000) Database Systems. A Practical
Approach to Design, Implementation and Management Addison-Wesley
Segunda Edición en 1998.
[3] C.J. Date (2001) Introducción a los Sistemas de Bases de Datos
Volumen I, Séptima Edición Addison-Wesley Iberoamericana Sexta Edición
en 2001.
[4] R. Elmasri, S.B. Navathe (2002) Sistemas de Bases de Datos. Conceptos
fundamentales Segunda Edición Addison-Wesley Iberoamericana. Tercera
Edición en 1999 (en inglés, por Addison-Wesley)
[5] M.J. Folk, B. Zoellick (1992) File Structures. Segunda Edición Addison-
Wesley
[6] G.W. Hansen, J.V. Hansen (1999) Diseño y Administración de Bases de
Datos Segunda Edición Prentice Hall
[7] M.J. Hernández (1997) Database Design for Mere Mortals Addison-
Wesley Developers Press
[8] Elmasri y Navathe (2002) Fundamentos de Sistemas de Bases de
Datos, 3ª edición, 2002 (Capítulo 7).
[9] Garcia-Molina, Ullman y Widom: “Database systems: the complete
book”. Prentice-Hall (Capítulo 3).
[10] A. de Miguel, P. Martínez, E. Castro, J.M. Cavero, D. Cuadra, A.
Iglesias y C. Nieto(1999) Diseño de Bases de Datos: Problemas Resueltos.
Capítulo 1.
Referencias URL
www.maestrosdelweb.com
www.tripod.lycos.com
www.mysql-hispano.org
www.programacion.com
122
Bibliografía
www.desarrolloweb.com
www.quegrande.org
www.sql.org
www.aulaclic.com
www.msdn2.microsoft.com.es
www.unsl.edu.er
www.fciencias.unam.mx
www.fdi.ucm.edu.mx
www.uazuay.edu.ec
www.cepeu.edu.py
www.wikypedia.com
Otras Referencias
Archivo Base de datos.pdf proporcionado por el Ing. Freddy Ávila del área
de Informática del CTS.