Documenti di Didattica
Documenti di Professioni
Documenti di Cultura
Formación
11.11.2017
Índice (I)
1. Introducción_
Access vs Excel
Access frente a otras BBDD
Otras BBDD
Uso de la Base de datos
2. Diseño de la BD_
Modelado conceptual
El modelo Entidad/Relación
Claves primarias
Ejercicios de modelo conceptual
Modelo físico
1ª Forma normal
2ª Forma normal
3ª Forma normal
Tipos de datos
Ejercicios de modelo físico
2
DISCOVER, DISRUPT, DELIVER
Índice (II)
3. SQL_
SELECT
Agregados
Subqueries
Vistas
UNION
Álgebra relacional: producto cartesiano
INNER JOIN. LEFT JOIN. FULL OUTER JOIN
Convirtiendo datos: CAST
Funciones de fecha
Funciones de cadena
4. Conceptos avanzados_
Cambiar datos: INSERT, UPDATE, DELETE
Funciones de usuario
Optimización de consultas
3
DISCOVER, DISRUPT, DELIVER
Introducción: Access vs Excel 1
Estructura de información
Rapidez de proceso
Coherencia de datos
Multiusuario
4
Introducción: Access frente a otras BBDD 2
Ventajas
• Interfaz de usuario muy sencilla
y potente
• Fácil de instalar en cualquier
PC
• Gran comunidad de usuarios
• Posibilidad de macros potentes
Desventajas
• Poco escalable en tamaño y
usuarios
• No es cliente/servidor
• Lenguaje SQL no estándar
• Pobre tolerancia a fallos
5
Introducción: Otras BBDD 3
ad
cliente y servidor cliente y conseguir
servidor corporativo servidor servidor
corporativos • Fácil de instalar corporativos corporativo
• Fácil de instalar y utilizar • Fácil de instalar • Poco amigable
y utilizar • Gran potencia y utilizar para
• Gran comunidad • Muy amigable desarrolladores
• No muy potente para y usuarios
desarrolladores • Potentísimo
y usuarios
6
Introducción: Uso de la BD 4
OLTP
Datawarehouse
SQL Interfaz
gráfico
Clientes
ad hoc Uso directo
7
Índice
1. Introducción_
Access vs Excel
Access frente a otras BBDD
Otras BBDD
Uso de la Base de datos
2. Diseño de la BD_
El modelo Entidad/Relación
Claves primarias
Ejercicios de modelo conceptual
Modelo físico
1ª Forma normal
2ª Forma normal
3ª Forma normal
Tipos de datos
Ejercicios de modelo físico
8
DISCOVER, DISRUPT, DELIVER
Diseño de la BD: El modelo Entidad/Relación (I) 5
Entidad
• Objeto, una cosa sobre la que la BD guarda
información. En general, una tabla de la BD.
Atributo
• Un dato referido a una entidad. Clásicamente, un
campo. En general, una columna de la BD.
Clave primaria
• Identificación única en una tabla (Primary Key, PK)
Relación
• Forma en que se enlazan las entidades
Diseño de la BD: El modelo Entidad/Relación (II) 6
Entidad
Relación
Clave primaria
Atributo
Diseño de la BD: El modelo Entidad/Relación (IV) 7
Diseño de la BD: El modelo Entidad/Relación (V) 8
Diseño de la BD: Claves 9
• Clave primaria
ID_
Cli
ent
e • Claves candidatas
NIF
ID_Cliente
NIF+Nombre
NIF+Nombre+Apellidos • Superclaves
ID_Cliente+Dirección
ID_Cliente+NIF
Diseño de la BD: Ejercicio (identificar claves) 10
• Se puede pensar en una tabla como una hoja Excel con filas y
columnas
Clave
Atributos primaria
Entidad
NIF_Profesor Nombre
1 Rick Sanchez
2 Birdperson
Diseño de la BD: Modelado físico (IV) 24
NIF Nombre
1 Rick
3 Morty
• Numéricos:
• Integrales:
• Autonumérico
• Entero largo
• Entero corto
• Byte
• Decimal
• Número grande
• Moneda
• Texto:
• Texto corto (hasta 255 caracteres)
• Texto largo (ilimitado)
• Fecha
• Lógico
• Archivos:
• Adjunto
• Objeto OLE
Diseño de la BD: Ejercicios de modelo físico (I) 30
Diseño de la BD: Ejercicios de modelo físico (II) 31
Diseño de la BD: Ejercicios de modelo físico (III) 32
Diseño de la BD: Ejercicios de modelo físico (IV) 33
Diseño de la BD: Ejercicios de modelo físico (V) 34
Índice (II)
3. SQL_
SELECT
Agregados
Subqueries
Vistas
UNION
Álgebra relacional: producto cartesiano
INNER JOIN. LEFT JOIN. FULL OUTER JOIN
Convirtiendo datos
Funciones de fecha
Funciones de cadena
4. Conceptos avanzados_
Cambiar datos: INSERT, UPDATE, DELETE
Funciones de usuario
Optimización de consultas
3
DISCOVER, DISRUPT, DELIVER 3
SQL: SELECT 35
CAMPOS
FROM PC
TABLAS
WHERE ( precio < 500 AND precio > 100 ) OR precio < 50
ORDEN
3
4
SQL: SELECT. Alias. Condiciones 36
Alias
3
5
SQL: SELECT (I) 37
• Encontrar todos los barcos cuya clase termina por la letra 'o'
• Encontrar todos los barcos cuya clase termina por la letra 'o', pero no por 'go'
3
6
SQL: SELECT (II) 38
• Si la eslora es mayor que 15, poner 'grande', menor que 15, 'pequeño' e igual a
15, 'mediano';y nombre de todas las clases.
3
7
SQL: AGREGADOS 39
• Para sumar o contar campos se usan las funciones de agregado: SUM, COUNT,
AVG, MIN, MAX
3
8
SQL: AGREGADOS (II) 40
3
9
SQL: AGREGADOS (III) 41
• Encontrar el modelo, velocidad y capacidad de disco de todos los PC's con
precio inferior a 500
• Encontrar el modelo, velocidad y disco duro de los PC's con CD 12x o 24x y
precios menores que 600
4
0
SQL: Subqueries 42
SUBQUERY
SUBQUERY
4
1
SQL: UNION 43
4
2
SQL: UNION y Subqueries 44
4
3
SQL: SELECT (III) 45
• Encontrar las marcas que fabrican PC's pero no portátiles
4
4
SQL: SELECT (IV) 46
4
5
SQL: SELECT (V) 47
• Encontrar el producto (PC, Portátil o impresora) con el precio más alto de todos
4
6
SQL: Álgebra relacional. Producto cartesiano 48
• El producto cartesiano A x B es la combinación de todas las filas de A con todas
las filas de B
AxB
A B
a b c d
a b c d
1 2 2 4
1 2 2 4
1 2 3 3
2 1 3 3
2 1 2 4
2 1 3 3
4
7
SQL: INNER JOIN 49
TIPO DE JOIN
CAMPOS
FROM Producto INNER JOIN PC
ORIGEN DE DATOS
ON PC.modelo = Producto.modelo
• Un INNER JOIN es un producto cartesiano del que se eliminan las filas que no
cumplen la condición
4
8
SQL: LEFT JOIN 50
NombreEmpleado IDEmpleado NombreDepartamento
Harry 3415 Financiero
Sally 2241 Ventas
George 3401 Financiero
Harriet 2202 Ventas NombreDepartamento Jefe
Tim 1123 Ejecutivo Ventas Harriet
Producción Charles
4
9
SQL: SELECT (VI) 51
• Encontrar los tamaños de disco duro que son iguales en dos o más PC's
5
0
SQL: SELECT (VII) 51
Para el modelo de varios movimientos diarios, sacar la suma de ingresos y la
suma de gastos en cada punto cada día
5
1
SQL: SELECT (VIII) 52
Para el modelo de un sólo movimiento diario, sacar el saldo actual en cada punto
5
2
SQL: SELECT (IX) 53
Batallas para las que hay al menos 3 barcos de algún país.
5
3
SQL: SELECT (X) 54
Barcos que resultaron dañados en alguna batalla y tomaron parte en una batalla
posterior
5
4
SQL: SELECT (XI) 55
Nombre, número de cañones y desplazamiento de todos los barcos que tomaron
parte en Guadalcanal
5
5
SQL: Convirtiendo datos 56
Precio medio de los portátiles, poniendo antes el literal 'Precio medio = '
• CBool( expression )
• CByte( expression )
• CCur( expression )
• CDate( expression )
• CDbl( expression )
• CDec( expression )
• CInt( expression )
• CLng( expression )
• CSng( expression )
• CStr( expression )
5
6
SQL: Funciones de fecha (I) 57
La fecha de dentro de 7 días
5
7
SQL: Funciones de fecha (II) 58
5
8
SQL: Funciones de cadena (I) 59
• CHR, ASC
• LEFT (caracteres,entero). RIGHT
• INSTR (comienzo,cadenabuscada,cadenadondebuscamos)
• LEN
• MID (cadena, comienzo, final)
5
9
SQL: Funciones de cadena (II) 60
• STRREVERSE
• REPLACE (dondebuscamos,cadenabuscada, reemplazo,comienzo,cuantos)
• REPLICATE (carácter,veces)
• LTRIM, RTRIM,TRIM
6
0