Está en la página 1de 65

Tema 1: Introducción

Base de datos Ricardo Marín Daza

Msc. Dirección de Sistemas de Información Universidad Cádiz-España

Ingeniero de Sistemas – Universidad del Norte - Barranquilla

rmarind@gmail.com
1
Introducción
1. Información y datos. Historia.
2. Ficheros vs. Bases de datos
3. Sistemas gestores de bases de datos (SGBD)
4. Bases de datos con información geográfica
5. Visión de los datos
6. Modelo relacional de bases de datos (DIA)
7. Diseño de bases de datos
8. Lenguajes de consulta: QBE, SQL
9. Arquitectura de un SGBD (DBMS)
10. Rendimiento
11. Aplicaciones

2
1. Información y datos
La información se registra mediante datos.
 Los datos se pueden mecanizar.
Los datos se interpretan para obtener una
información (observación mundo real).
 Son recopilados como hechos o evidencias.
 Adquieren significado a partir de su
procesamiento.
Es necesario un almacenamiento pemanente.

3
1. Información y datos
Diferencias: analicemos este caso,

dato:29 información: 29º

Como es simplemente un número, Si especificamos que este es la


no tiene en sí mismo ningún temperatura actual de Barranquilla
significado especial (valor en Octubre 22...
atómico). Nos encontramos con un valor
Para que este valor sea útil, es agregado: “Nublado”
necesario interpretarlo en
referencia a algún contexto
particular…
1. Información y datos
Siendo más formales:
dato información
Los datos son hechos o cosas del
Es el resultado del análisis de los
mundo, lo suficientemente
datos.
importantes como para ser
registrados. Por ejemplo, un satélite colecciona
datos (valores numéricos), que
Son recopilados como situaciones
una vez volcados en un mapa, son
o evidencias.
interpretados por un experto que
Adquieren significado a partir de identifica los diferentes usos del
su procesamiento para convertirse suelo en determinada región del
en información. mundo.
Al hablar de datos, hacemos
referencia a un concepto amplio
que puede incluir: texto,
imágenes, sonido, reglas de
decisión, etc.
1. Información y datos
Inferimos:

• INFORMACION es cualitativamente más que los DATOS y esto es


necesariamente así ya que la información debe servirle al usuario para tomar
decisiones.
• Debe tener utilidad, condición que no siempre se cumple con los datos.
• Para disponer de información, se requiere de un proceso analítico sobre el dato.
• Al contar con Datos confiables y consistentes podemos generar Información que
nos permita tomar las decisiones más convenientes.
• A partir de la información podemos generar Conocimiento, que no es más que:
Información + Valor.
• Hasta llegar al tope de la pirámide de valor, la Sabiduría, estatus en el cual
contamos con la información valiosa en el momento, lugar y tiempo adecuados
para la generación de ventajas competitivas.

Ver pirámide de Valor


1. Información y datos
Pirámide de Valor:

Pirámide de construcción del conocimiento utilizada en IT para minería de datos, BI (Business Intelligence) y gestión
de la TI. En la IT se han ido asimilando como capas base de la pirámide (valores agregados) sin las cuales no se
podría llegar a la cúspide del conocimiento que es la sabiduría => Sociedad del Conocimiento.
1. Información y datos
Avances:

• En las últimas décadas se han realizado importantes avances en la formalización


de los modelos que definen la estructura organizativa de los datos, permitiendo
su almacenamiento, manipulación y consulta.
• Estos avances han permitido llegar al concepto de Base de datos relacional.

• Una Base de datos es un conjunto de información relacionada que pertenece a


una organización y que está agrupada como un todo.

• En la base de datos de una juguetería, por ejemplo, estará reunida la


información de los juguetes (precio, cantidad en stock), así como los datos de
los proveedores (dirección, teléfono, saldo deudor), clientes (si se desea llevar
información individualizada de cada uno de ellos), empleados (salarios, cargos,
comisiones de los vendedores), contabilidad (cobranzas, pagos, liquidaciones),
etc. Tener “agrupada como un todo” esta información trae muchos beneficios,
como reducir la redundancia y la inconsistencia de los datos guardados.
rmarind@gmail.com
TALLER Nº 1
Con base en el video, la bibliografía entregada, exploraciones propias por Internet, y tu propio aporte
interpretativo, contesta:

1. Explica con tus propias palabras lo que es una Base de datos, ilústralo con un ejemplo particular tuyo.
2. Explica que entiendes por almacenamiento “Sistematicamente” (no transcribas textualmente del video)
3. Por que crees que con la llegada de los computadores las base de datos aumentaron su importancia?
4. Explica lo que comprendiste de un Sistema Gestor de Base de datos (SGBD ó DBMS) y que puedes hacer
con el?
5. Aclara con tu propia opinión que diferencia hay entre tener una base de datos en Cinta magnética y tenerla
en Disco duro? Cómo crees que se guardaban los datos en los años 40’s, antes de medios magnéticos?
6. Explica por qué las Base de datos Relacionales cambiaron la historia en la informática y los computadores?
7. Haz un corto resumen de la historia de las base de datos a partir de los años 70’s… hasta nuestros días.
8. Explica con tus propias palabras la diferencia que hay entre una Base de datos Relacional y una Base de
datos No Relacional y define, para ti las ventajas y desventajas de estas. Utiliza un ejemplo (diferente al
del video).
9. Explica (sin transcribir) qué entendiste por SQL (DDL, DML, DCL) ?
10. Expresa tu propia conclusión acerca de las base de datos SQL y No SQL y cuales crees son las más
usadas actualmente ?

9
Datos
Tipo de información representada con
datos:
 Atómica:
 Números (enteros, coma flotante)
 Cadenas de caracteres
 Estructurada:
 Números complejos (partes real e imaginaria)
 Registros del Tránsito
 Ej: auto_particular(matrícula,modelo,color)

10
Datos
Información geográfica y espacial:
 Datos por líneas (raster):

11
Datos
Información geográfica y espacial:
 Datos vectoriales

12
Datos, Historia (1/6)

 En los 60, cuando las computadoras


empezaron a desarrollarse, la atención estaba
centrada en la resolución de problemas
particulares: si era necesario procesar
información, se programaba especialmente
una aplicación particular que solucionaba el
requerimiento, inmantenible y aislado.

 Un ejemplo típico era la


liquidación de sueldos de empleados: una
tarea manual muy repetitiva que se
automatiza para bajar el costo del
procesamiento.
Ver VIDEO Historia

13
Datos, Historia (2/6)

 Como el objetivo era la resolución de


problemas, se prestaba poca consideración al
almacenamiento de datos.

 Normalmente se archivaban en un formato


específico (no-estándar) para cada aplicación.
En otras palabras, cada programador
trabajaba con un formato de datos propio.

 Este sistema fue adecuado mientras las


aplicaciones permanecieron independientes.
14
Datos, Historia (3/6)

 Los problemas comenzaron cuando fue necesario


compartir información y los formatos que usaban las
aplicaciones, no eran compatibles. Ejemplo: en una
empresa había varias aplicaciones que guardaban
datos en formatos diferentes. “Compras” mantenía la
información sobre los artículos comprados; “Almacén”,
sobre los que estaban en stock y “Ventas” sobre los
artículos vendidos.

 Por más que en los tres casos se hablara de los


mismos datos (los artículos que la empresa
comercializaba), no se podía compartir esa
información, ya que las aplicaciones que había
desarrollado cada sector, guardaba la información en
un formato distinto que servía en forma especifica
para cada caso. 15
Datos, Historia (4/6)
 Para solucionar este inconveniente, las organizaciones se
veían obligadas a exportar los datos a los diferentes
formatos que requería cada aplicación, tarea que era de por
sí bastante engorrosa y no siempre posible.

 Pero el principal problema era que se debía mantener


varias copias de la misma información en los diferentes
formatos que requerían las aplicaciones existentes.

 Este procedimiento, inevitablemente creaba redundancia de


información: imaginen en una empresa, la cantidad de
veces que era necesario guardar el nombre de cada uno de
los productos. A su vez, traía aparejado inconsistencia, ya
que múltiples copias conllevan inevitablemente a errores.
Por supuesto, el costo de mantenimiento era altísimo: sí un
cliente cambiaba de dirección había que cambiar el dato en 16
tantos archivos como aplicaciones hubiera. caso.
Datos, Historia (5/6)

 Cuando la ciencia de
la computación y la tecnología avanzaron (70’s), se
extendió la necesidad de crear un sistema al cual
accedieran todas las aplicaciones de la organización.

 Se pretendía, por ejemplo, que al ingresar los datos de un


cliente, este registro sirviera a todos los sectores y que si
este cliente cambiaba de domicilio, todas las aplicaciones lo
registraran. Por supuesto, esta aspiración era
absolutamente legítima e imperiosa.

 En definitiva, se buscaba que todas los sistemas en una


organización (ventas, contabilidad, compras, etc.)
compartieran un sólo almacén de datos.
17
Datos, Historia (6/6)

 Es así como nace el Database Management System (DBMS)


o Sistema de Gestión de Base de Datos, un sistema que
servia de proveedor de datos a diversas aplicaciones.
 Este modelo fue propuesto originariamente en 1970 por un
matemático de IBM, Edward Codd.
 Importante que, aunque previamente habían surgido otros
modelos (como el modelo jerárquico de datos, o
 el de red), fueron las “Bases de Datos Relacionales” las
adoptadas expresamente por casi todos los sistemas
comerciales conocidos.
 Gracias a su coherencia y facilidad de uso, el modelo se ha
convertido a partir de los años 80 en el más empleado.
Surgieron los SGDB para PC. Principales DBMS-80’s

Línea de tiempo

18
2.  Ficheros vs. Bases de datos

Fichero: almacenamiento persistente (no


volátil) de datos usado para representar
información.
 Ejemplos: Ficheros de texto, documentos XML

Base de datos: colección persistente de


datos relacionados usada para representar
información.
 Ejemplos MS Access, MS SQL Server, MySQL,
PostgreSQL, Oracle, IBM DB2

19
Ficheros vs. Bases de datos SGBD = DBMS

Cobol

PL/I

BASIC

20
Ficheros secuenciales
Acceso
serializado
Applic ation

Appl ic atio n

Application

Cola aplicaciones para


acceso a los datos

Archivo Application

199712150007 Widget 100 4 400


199712150007 Thingamabob 275 1 275
199712150008 Widget 100 3 300

21
Problemas de las
organizaciones de ficheros
Redundancia e inconsistencia de datos
Costes de mantenimiento de los programas:
 Dificultad en el acceso. Cada consulta de datos
implica generalmente escribir un nuevo
programa
 Aislamiento de datos. Formatos diferentes y en
medios diferentes
 Integridad. Para implementar restricciones de
integridad es necesario modificar todos los
programas que accedan a los datos

22
Problemas de las
organizaciones de ficheros
Atomicidad.
 Cuando hay un fallo informático (corte de
corriente, error de disco, ...) se puede
producir una inconsistencia en una
transferencia bancaria. La transferencia
debe ser una operación atómica (ocurre
totalmente o no ocurre).

23
Problemas de las
organizaciones de ficheros
·   Acceso concurrente.

Trabajo con
una copia de Trabajo con una
los datos copia de los datos

Application

Archivo Archivo
Application

Yo
199712150007 Widget 100 4 400 también! 199712150007 Widget 100 4 400
199712150007 Thingamabob 275 1 275
199712150007 Thingamabob 275 1 275
199712150008 Widget 100 3 300
199712150008 Widget 100 3 300

Application

Archivo

199712150007 Widget 100 4 400

199712150007 Thingamabob 275 1 275

199712150008 Widget 100 3 300

24
Problemas de las
organizaciones de ficheros
Las bases de datos solucionan los problemas
de los ficheros.

Sin embargo, no sustituyen a los ficheros en


todas las aplicaciones.
 Por ejemplo: ficheros temporales, datos no
relacionados.
 Además, las bases de datos se implementan con
ficheros.

25
Problemas de las
organizaciones de ficheros
Los ficheros se prefieren a los SGBD
cuando:
 BD y aplicaciones simples, bien definidas
y sin visos de cambio.
 Requisitos de tiempo real que no pueden
cubrir los SGBD.
 No se requiere acceso concurrente.

26
TALLER Nº 2
Con base en el tema de Historia visto, la bibliografía entregada, exploraciones propias por Internet, y tu propio
aporte interpretativo, conteste:

1. ¿Qué postuló Codd en un ya famoso artículo de 1970 a partir del cual se desarrollaron las Bases de Datos
Relacionales?
2. ¿Por qué todos los software de bases de datos declaran ser relacionales?
3. ¿Cuáles son las cuatro diferencias principales entre un sistema de procesamiento de archivos y un SGBD?
4. se han descrito las diferentes ventajas principales de un sistema gestor de bases de datos. ¿Cuáles serán
sus principales inconvenientes?
5. Explíquese la diferencia entre independencia de datos física y lógica.
6. Haga una lista de las cinco responsabilidades del sistema gestor de la base de datos. Para cada
responsabilidad explíquense los problemas que ocurrirían si no se realizara esa función
7. ¿Cuáles son las cinco funciones principales del administrador de la base de datos?
8. Lístense siete lenguajes de programación que sean procedimentales y dos que sean no procedimentales.
¿Qué grupo es más fácil de aprender a usar? Explíquese la respuesta.
9. Lístense los seis pasos principales que se deberían dar en la realización de una base de datos para una
empresa particular
10. Construya una línea de tiempo propia de la evolución de los SGBD

27
3. Sistemas gestores de
bases de datos (SGBDs)

Usuario 1 ... Usuario n Aplicación 1 ... Aplicación m

SGBD

BD 1 ... BD k

28
Tipos de SGBDs
Relacionales.
Orientados a objetos.
Geográficos.
Temporales.
XML.

29
Los SGBDs proporcionan:

C oncurrencia
I ntegridad
Seguridad
30
Concurrencia a nivel de fila
¡Estoy
leyendo la 3ª Last First
fila! Name Name Address Phone
Adams Bobby 1426 Main 555-1423
Adams Sandy 214 Cisco Lane 555-4297
¡Estoy Application
Brown Terry 45 River Walk 555-8495
cambiando Caldwell Simone 122 42ND ST 555-5367
la 6ª fila! Fridrich John 956 Billings 555-4311
Gaines Lois 6094 Beaker 555-0945
Jones Larry 567 Yale Ave. 555-6932
Jones Larry 240 Boston Blvd. 555-5390
Application

¡Estoy Jones LaVerne South Star Route 555-2345


leyendo la 8ª
Mitchell Jean 504 1ST Ave. 555-1777
fila y luego la
modificaré! Mitchell Ted 504 1ST Ave. 555-1778
Smith Diana 2253 Dahlia 555-6098
Smith Grace 983 Fairfax 555-8764
Wise Sara 9023 Colorado Blvd. 555-3242

Application

31
Transacción (unidad de trabajo)
El programa transfiere 1000€ desde la cuenta A a la B

Logical Unit of Work

UPDATE A UPDATE B

X X X
COMMIT

A 2000 1000 1000 1000


B 3000 3000 4000 4000

UPDATE A UPDATE B

X X X
ROLLBACK

A 2000 1000 1000 2000


B 3000 3000 4000 3000

32
Integridad
Restricciones de integridad:
 Dominio.
 Clave primaria.
 Clave externa.
 Definidas por el usuario.

 Acceso a través de Lenguajes de


programación

33
Seguridad
Un SGBD es un sistema software capaz de
manejar grandes colecciones de datos:
 Relacionados.
 Compartidos.
 Persistentes.
Aseguran su fiabilidad y privacidad.
 Usuarios.
 Roles.
 Restricciones de acceso.
 Auditoría (Repositorios, Journal, Log’s eventos)

34
Ventajas
Como consecuencia de estas características se
obtienen las siguientes ventajas:
 Independencia Lógica y Física Datos & Apps
 Normalización (Redundancia mínima, Repositorio
común)
 Tiempo de desarrollo de aplicaciones reducido.
 Flexibilidad.
 Facilidad para añadir o eliminar datos necesarios.
 Disponibilidad inmediata de las actualizaciones de
datos para todos los usuarios.
 Consultas complejas.
 Respaldo y recuperación 35
SGBDs
 SQL/DS de IBM, 1981
 ORACLE de RSI, 1981
 DB2 de IBM, 1983
 Informix, 1985
 Sybase, 1991 Gestores de ficheros
 MS SQL Server (1989, 1992) ("databases")
 MS Access (1992)  DBase
 MySQL (1995)  Paradox
 PostgreSQL (1995)
 HyperSQL (2001) IBM: Industrial Business Machines
RSI: Relational Software, Inc.
MS: Microsoft
36
SGBDs con extensiones espaciales
 MS SQL Server 2008. Free/Commercial
 Oracle Spatial. Commercial
 PostgreSQL (PosGIS). Open-source
 MySQL Spatial Extensions. Open-source
 IBM DB2 Spatial Extender. Commercial
 IBM DB2 Geodetic Extender. Commercial
 Informix Spatial DataBlade. Commercial
 Informix Geodetic DataBlade. Commercial
 Spatial Query Server for Sybase. Commercial

37
4.  Bases de datos con
información geográfica

38
Tipos de datos SGBDRs
Texto
Memo
Numérico
Autonumérico
Fecha/Hora
Moneda
Sí/No
Objeto OLE
Hipervínculo

39
Tipos de datos SGBDRs espaciales
MS SQL Server Spatial Query Server (for Sybase)
 Circle
 geography  Ellipse
 geometry  Point - a point in 2D space. (x,y) plane.
 Voxel - a point in 3D space. (x,y,z)
volume.
 Polygon
 Polygon(n)
 Polygon set
 Gpolygon
 Gpolygon(n)
 Gpolygon_set
 Line
 Line(n)
 Line_set
 Rectangle
 Rectangle_set
 Llbox
 Llbox_set
40
5. Visión de los datos
Objetivo de un SGBD:
 Proporcionar una visión abstracta de los datos
 Se ocultan los detalles de cómo se almacenan y
mantienen los datos.

Niveles:
 Físico
 Cómo se almacenan los datos.
 Lógico
 Qué datos y qué relaciones se almacenan.
 Vistas
 Subconjunto del nivel lógico.

41
CREATE VIEW BLUEDEP AS

Vistas SELECT *
FROM EMPL
WHERE DEP LIKE 'BLU%;

SELECT JOB, SAL


JOB SAL DEP
S 31000 BLU FROM BLUEDEP
M 32000 RED
S 30000 BLU WHERE JOB <> 'M';
C 27000 GRE Columns and rows
S 33000 GRE defined by BLUEDEP
M 31000 BLU
JOB SAL
S 32000 RED S 31000 BLU
S 30000 BLU S 31000
C 28000 GRE
M 31000 BLU S 30000
S 30000 RED C 27000
M 33000 GRE C 27000 BLU
S 29000 BLU S 29000
S 31000 RED
S 35000 GRE
C 27000 BLU
S 29000 RED
S 29000 BLU
42
6. Modelo relacional
Los modelos de datos se usan para poder
definir una interpretación de los datos
conforme a su estructura, relaciones y
operaciones que se les pueden aplicar.
Def: Colección de conceptos que se usan para
describir la estructura de una BD.
La estructura son los tipos de datos, las
relaciones y las restricciones.
Llevan asociados operaciones básicas.

43
Modelo relacional
Se usa una colección de tablas para
representar los datos y sus relaciones.
RDBMS = Sistema de Gestión de Bases de Datos Relacionales

"RELACION" = TABLA

PROPIET1.TABLA_A PROPIET2.TABLA_B
COL1 COL2 COL3 COL1 COL2 COL3
Una "BBDD
ABC 7 1987-11-14 ABC 7 1987-11-14
DEF 4 1963-01-01 relacional" DEF 4 1963-01-01
GHI 6 1946-07-12 es una "BBDD GHI 6 1946-07-12
JKL 7 1951-12-30 de Tablas" JKL 7 1951-12-30
MNO 0 1992-08-12 MNO 0 1992-08-12
44
7. Diseño de bases de datos
Proceso de creación de un esquema de
la base de datos.
Fases:
 Conceptual.
 Lógico.
 Físico.

45
Conceptual: Modelo entidad-relación

M A LOCATION 1
Dept HAS MANY
DEPTS
Locations
1 11 1

MANY
1 M1 EMPLOYEES M
WORK ON
Employees MANY Projects
M 1M PROJECTS
1

1 M
Skills

46
Lógico: Relaciones (modelo relacional)

Depts(Id, Name)
Employees(Id, Name, Address)
Skills(Id, Skill)

Belongs(IdEmployee, IdDept)
Has(IdEmployee, IdSkills)

47
Físico: Tablas, vistas e índices
TABLE
EMPL

INDEX VIEW
NDX1 BLUEDEP

INDEX INDEX
NDX2 NDX3

48
8. Lenguajes de consulta
QBE (Query By Example)
 Gráfico.

SQL (Structured Query Language)


 Textual.

49
Lenguaje gráfico QBE

50
Lenguaje SQL
 Es el lenguaje de facto para
el acceso a los datos en las
bases de datos relacionales.

 Se divide en tres partes:


 Lenguaje de definición de
datos (DDL)
 Lenguaje de manipulación de
datos (DML)
 Lenguaje de control de datos
(DCL)

51
SQL
CREATE DATABASE MTIGDB;

USE MTIGDB;

CREATE TABLE Districts


(DistrictName nvarchar(20),
DistrictGeo geometry);

INSERT INTO Districts (DistrictName, DistrictGeo)


VALUES ('Downtown',
geometry::STGeomFromText
('POLYGON ((0 0, 150 0, 150 150, 0 150, 0 0))', 0));

SELECT StreetName, DistrictName


FROM Districts d, Streets s
WHERE s.StreetGeo.STIntersects(DistrictGeo) = 1
ORDER BY StreetName;

52
9. Arquitectura de un SGBD
Componentes del sistema
 Concurrencia.
 Gestor de almacenamiento
 Procesamiento de consultas
 Estructuras de datos

53
Usuarios normales

Usuarios
(administrativos, Programadores de Usuarios Administrador de
cajeros aplicaciones avanzados base de datos
automáticos, ...)

Interfaces de Programas de Consulta Esquema de base


aplicaciones aplicación de datos

Procesador de consultas
Precompilador del Compilador del Intérprete del DDL
DML incorporado DML

Sistema de gestión de bases de datos


Código objeto de Motor de
los programas de evaluación de
aplicación consultas

Gestor Gestor de

Gestor de almacenamiento
de memoria
transacciones intermedia

Gestor
de
ficheros

Almacenamiento en disco
Índices Datos estadísticos

Diccionario de
datos
Ficheros de datos
54
Procesamiento de consultas
Programa

¿QUÉ?
¿CÓMO?

Optimizador

Estadísticas
Catálogo

Módulo EJECUCIÓN Camino


carga Acceso

55
10. Rendimiento
Índices sobre datos atómicos.
 Índices secuenciales
 Índices B
 Índices B+
Índices sobre datos geográficos.
 Árboles k-d
 Árboles cuadráticos (quad-trees)
 Árboles R

56
Índices secuenciales
Clave Clave
Cajones
Clave primaria secundaria
primaria Valores Índice
secundario 1 B
Índice
A 2 D
primario A
A 2 A
B
A 3 C
B
C
B 4 D
B D
C 4 B
B E
D 4 E
B
5 D
E
C 6 C
D 6 B
D
E

57
Índices B+
Clustered Index Non-clustered Index
Root Page
25 61 88 25 61 88

Non-leaf
8 13 25 33 45 61 67 75 88 Pages 8 13 25 33 45 61 67 75 88

Leaf Pages

data row data row data row data row data row data row data row data row
data row data row data row data row data row data row data row data row
data row data row data row data row data row data row data row data row
data row data row data row data row data row data row data row data row

58
Árboles k-d

59
Árboles cuadráticos

60
Árboles R

61
11. Aplicaciones
Programas de aplicación
 Python, Java, C#, C++, …
Formularios
API de acceso a la BD
Dominios de aplicación
 Sistemas de información geográfica
 Inventario (Stocks)
 Facturación
 Medicina (BOT)
 Construcción
 … 62
Ciclo de vida de las aplicaciones
NECESIDADES

ANALISIS ANALISIS
DATOS PROCESOS

DISEÑO
DISEÑO
BBDD
PROCESOS
RELACIONALES
CAPACITY PLANNING
PERFORMANCE ESTIMATES

AJUSTE AJUSTE
MODELO DATOS CREACIÓN MODELO PROCESOS

PRUEBA

PASO A
PRODUCCION

63
Final

64
Principales DBMS 80’s+
 Retrieve Btrieve MsJET DAO ADO SQL
 Dbase ISAM Paradox Oracle

 FoxBase Access SQLServer Db2


 Rbase Informix
 Aproach Firebird InterBase Sqlite Sybase ASE
 Posgress ODBC Pervasive
 MySql
 MariaDB
 MongoDB
 FireBase

Timeline
65

También podría gustarte