Este documento describe los diferentes tipos de sistemas de gestión de bases de datos (SGBD), incluyendo SGBD relacionales como Oracle, Sybase y DB2, así como SGBD orientados a objetos. Explica las características clave de los SGBD, los modelos de datos subyacentes y los estándares de la industria. También compara las ventajas e inconvenientes de los SGBD relacionales frente a los lenguajes de programación y propone que los SGBD orientados a objetos pueden superar algunas de las limitaciones de los S
TEST DE RAVEN es un test conocido para la personalidad.pdf
Tema LOS SGBD O DBMS.pptx
1. Base de Datos - I
Los SGBD-DBMS
MSc. Ing. Johnny Albert
Rodríguez Cartagena
Docente :
2. ARQUITECTURA DE LOS
SGBD
Desde la aparición de los
primeros gestores de base de datos se intentó llegar
a un acuerdo para que
hubiera una estructura común para todos ellos, a fin
de que el aprendizaje y
manejo de este software fuera más provechoso y
eficiente.
El acuerdo nunca se ha conseguido del todo, no hay
estándares aceptados del
todo. Aunque sí hay unas cuentas propuestas de
estándares que sí funcionan
como tales.
3. Organismos de estandarización
Los intentos por conseguir una estandarización han
estado promovidos por organismos de todo tipo.
Algunos son estatales, otros privados y otros
promovidos por los propios usuarios. Los tres que
han tenido gran relevancia en el campo de las
bases de datos son ANSI/SPARC/X3, CODASYL
y ODMG.
4. ISO
ISO (International Organization for
Standardization).
Es un organismo internacional de definición de
estándares de gran prestigio.
6. JTC1
(Joint Technical Committee).
Comité formado por los dos organismos anteriores
encargado de diversos proyectos. En el campo de
las bases de datos, el subcomité SC21 posee un
grupo de trabajo llamado WG 3 que se dedica a las
bases de datos. Este grupo de trabajo es el que
define la estandarización del lenguaje SQL entre
otras cuestiones.
7. Modelo ANSI/X3/SPARC
El grupo ANSI ha marcado la referencia para la
construcción de SGBD. Se basa en los estudios anteriores
en los que se indicaban tres niveles de abstracción de la
base de datos. ANSI profundiza más en esta idea y define
cómo debe ser el proceso de creación y utilización de estos
niveles.
En el modelo ANSI se indica que hay tres modelos
(externo, conceptual e interno) entendiendo por
modelo las normas que permiten crear esquemas (diseños
de la base de datos).
8. Esquemas externos
Los esquemas externos reflejan la información
preparada para el usuario final, el esquema
conceptual refleja los datos y relaciones de la base
de datos y el esquema interno la preparación de los
datos para ser almacenados.
9. Esquema conceptual
El esquema conceptual contiene la información
lógica de la base de datos. Su estructuración y las
relaciones que hay entre los datos. Se trata de la
propuesta teórica de los datos (es quizá la más
importante).
10. Esquema interno
El esquema interno contiene información sobre
cómo están almacenados los datos en disco. Es el
esquema más cercano a la organización real de los
datos.
13. Funciones SGBD
■ Definir una base de datos: consiste en especificar los
tipos de datos, estructuras y restricciones para
datos que se almacenarán.
los
■ Construir una base de datos: es el proceso de
almacenar los datos sobre algún medio de
almacenamiento.
■ Manipular una base de datos: incluye funciones como
consulta, actualización, etc. de bases de datos.
14. CLASIFICACIÓN POR GRUPOS
Gran volumen . Soluciones corporativas que requieran una
base de datos muy potente, estable y escalable, capaz de
soportar una carga de trabajo muy severa: Oracle, Sybase y
DB2.
Unix SQL . Bases de datos SQL comerciales (OpenBase SQL,
PrimeBase) o de uso libre (mSQL, mySQL, PostgreSQL).
Soluciones de bajo coste y rendimiento ~ptimo.
Soluciones Microsoft . SQL Server utilizando las herramientas
del fabricante (Visual InterDev) o desde otros lenguajes.
Velocidad crítica . Para soluciones locales de cientos de miles
de registros, en donde la velocidad en las búsquedas es crítica:
PardigmaSoft Valentina.
Desarrollo rápido . Integrando el entorno de programaci~n y
la base de datos: 4th Dimension, FileMaker.
■
■
■
■
■
15. Oracle I
■ Herramienta cliente/servidor para la gestión
de Bases de Datos
■ Gran potencia
■ Elevado precio (Empresas grandes
normalmente)
■ Utilización:
■ Instalación de la herramienta servidor (Oracle 8i)
■ Atacar a la base de datos desde otros equipos con
herramientas de desarrollo como Oracle Designer
y Oracle Developer, que son las herramientas
básicas de programaci~n sobre Oracle.
16. Oracle II
■ Sistema de
relacional
■ Destaca
gestión de base de datos
■ Soporte de transacciones
■ Estabilidad
■ Escalabilidad
■ Soporte multiplataforma.
17. Oracle III
■ El servidor Oracle soporta SQL para la
definición y manipulación de datos. También
posee un lenguaje de procedimiento llamado
PL/SQL, que controla el flujo del SQL, uso de
variables y manejo
■ Una base de datos
disponible para los
iniciado el servidor
base de datos.
de errores.
Oracle no estará
usuarios si no se ha
Oracle y se haya abierto la
18. Oracle IV
■ Oracle a partir de la versi~n 10g Release 2,
cuenta con 6 ediciones:
■ Oracle
■ Oracle
■ Oracle
■ Oracle
■ Oracle
■ Oracle
Database
Database
Database
Database
Database
Database
Enterprise Edition(EE).
Standard Edition (SE).
Standard Edition One (SE1).
Express Edition (XE).
Personal Edition (PE).
Lite Edition (LE).
19. Sybase I
■ Compañía dedicada al desarrollo
tecnología de la información.
■ Ofrece diversos productos:
■ Gestores de bases de datos
■ Integración de Datos
■ Desarrollo de Aplicaciones
■ Modelamiento y metadatos
■ Soluciones móviles
de
20. Sybase II
■ Gestores de bases de datos
■ Adaptive Server Enterprise: un motor de de base
de datos empresarial de alto rendimiento y
escalabilidad
■ Adaptive Server Anywhere: una base de datos
para computación móvil y departamental
■ Sybase IQ: una base de datos para Inteligencia
Empresarial y Almacenes de Datos
21. DB2
■ Marca comercial, propiedad de IBM, bajo la
cual se comercializa un sistema de gesti~n de
base de datos.
■ Características:
■ Automatización (permite eliminar tareas rutinarias
y permitiendo que el almacenamiento de datos
sea más ligero, utilizando menos hardware y
reduciendo las necesidades de consumo de
alimentación y servidores)
■ La memoria se ajusta y se optimiza el rendimiento
del sistema
22. MySQL I
■ Sistema de gestión de base de datos
relacional, multihilo y multiusuario.
■ Desarrolla MySQL como software libre
en un esquema de licenciamiento dual.
■ MySQL es muy utilizado en aplicaciones
web, como Drupal o phpBB, en
plataformas
23. MySQL II
■ Las siguientes características son
implementadas únicamente por MySQL:
Múltiples motores de almacenamiento (MyISAM,
Merge, InnoDB, BDB, Memory/heap, MySQL
Cluster, Federated, Archive, CSV, Blackhole y
Example en 5.x), permitiendo al usuario escoger la
que sea más adecuada para cada tabla de la base
de datos.
Agrupación de transacciones, reuniendo múltiples
transacciones de varias conexiones para
incrementar el número de transacciones por
segundo.
■
■
24. MySQL III
■ La serie en desarrollo de MySQL Server
actualmente, es la 5.1 a la cual se
añaden nuevas características en
relación a la serie 5.0.
■ Actualmente, se puede descargar la
serie 5.0.27.
25. Postgresql
■ Base de datos orientada a objetos, es decir, una
ORDBMS.
■ Herencia de tablas
■ Postgres usa un modelo cliente-servidor conocido
como proceso por usuario una sesión de postgres
consiste en los siguientes procesos cooperativos de
Unix (programas):
■ Un proceso demonio supervisor (postmaster)
■ La aplicaci~n sobre la que trabaja el usuario (frontend, Ej.:
psl)
■ Uno o más servidores de base de datos en segundo plano(el
mismo progreso postgres)
26. Interbase
■ Esta es una buena base de datos con 16 años de experiencia
el sector de las bases de datos comerciales, existen muchas
herramientas de pago para Interbase.
■ Casi todos los gestores de Backup soportan Interbase (como
ArcServe).
■ Tiene también gestores remotos para Windows de muy alta
calidad,
■ Interbase cuenta tiene la mayoría de funcionalidades de una
base de datos comercial:
■ Triggers
■ Tratamiento especial de blobs
■ Backup On-line, gran escalabilidad
■ Bases de datos de solo lectura (para ponerlas en CD-Rom),
integridad referencial en cascada o el autotunning. dispone, de
soporte directo para PHP.
en
27. FileMaker
Aplicación multiplataforma (Windows y Mac) de base de datos
relacional de FileMaker Inc.
■
FileMaker integra el motor de la base de datos con la interfaz,
■
lo que permite a los usuarios modificar la base de datos al
arrastrar elementos (campos, pestañas, botones...) a las
pantallas o formas que provee la interfaz.
FileMaker evolucion de una aplicación de MS-DOS, que se
desarrolló primariamente para Apple Macintosh.
Desde 1992 está disponible para Microsoft Windows y se puede
utilizar como un ambiente heterogéneo. FileMaker está
disponible para desktop, servidor y configuraciones web.
■
■
28. Microsoft SQL Server I
■ Sistema para la gestión de bases de
datos producido por Microsoft basado
en el modelo relacional. Sus lenguajes
para consultas son T-SQL y ANSI SQL.
Microsoft SQL Server constituye la
alternativa de Microsoft a otros
potentes sistemas gestores de bases de
datos como son Oracle o MySQL.
29. Microsoft
■ Características:
SQL Server II
Soporte de transacciones.
Escalabilidad, estabilidad y seguridad.
Soporta procedimientos almacenados.
Incluye también un potente entorno gráfico de
administración, que permite el uso de comandos DDL
gráficamente.
Permite trabajar en modo cliente-servidor, donde la
■
■
■
■
y DML
■
informaci~n y datos se alojan en el servidor y los terminales
o clientes de la red s~lo acceden a la informaci~n.
Además permite administrar informaci~n de otros servidores
de datos.
■
30. Microsoft
■ Desventajas
SQL Server III
MSSQL usa Address Windowing Extensión (AWE)
para hacer el direccionamiento de 64-bit. Esto le
impide usar la administración dinámica de
memoria y s~lo le permite alojar un máximo de
64GB de memoria compartida.
MSSQL no maneja compresión de datos (en SQL
Server 2005 y 2000, solamente la versión 2008
Enterprise Edition incluye esta característica), por
lo que ocupa mucho espacio en disco.
MSSQL está atado a la plataforma del sistema
operativo sobre la cual se instala.
■
■
■
34. Que es lo que falta?????
- los SGBD o DBMS (Orientados a
Objetos)
35. SGBD relacionales (SGBDR)
Más de 20 años de usar SGBD relacionales en la industria:
prototipos (75) y productos (80).
Modelo simple (tablas), programas y datos separados.
Bases teóricas sólidas:
Relaciones n-arias R D1 D2 ... Dn.
Soporte matemático: álgebra y calculo relacional.
Dependencias funcionales (semántica de la relación).
Tecnología madura:
Optimización de consultas,
Indexación,
Administración de la concurrencia y de transacciones (ACID).
36. SGBDR (2)
Seguridad en el funcionamiento: recuperación.
Acceso transparente a los datos: persistencia sistemática.
Lenguaje SQL:
Lenguaje declarativo (especificar el qué y no el cómo).
Estándares: SEQUEL (76), ANSI SQL (86), SQL1 (89), SQL2 (92),
SQL3.
Herramientas para el desarrollo de aplicaciones: SQL / REPORT,
SQL /FORMS.
SGBD relacionales distribuidos (SQL server).
37. Debilidades de los SGBDR
Semántica pobre (modelo plano):
Tipos de datos: alfanuméricos y restricciones de integridad.
Datos sin operaciones: procedimientos no almacenados.
Ausencia de extensibilidad:
No hay tipos del usuario (tipos complejos).
Funciones del SGBD (caja negra cerrada).
Lenguaje de manipulación de datos “incompleto”:
SQL es un lenguaje de consulta.
SQL no es un lenguaje de programación.
Problemas de impedancia entre LMD y los lenguajes de programación:
Declarativo vs. procedural.
Conjuntos vs. elementos (conversiones).
38. Lenguajes de programación (LP)
Datos y programas integrados: unidad de trabajo write (no hay
manejo de transacciones).
Un solo nivel de abstracción vs. Niveles interno y externo
(Arquitectura ANSI / SPARC).
Lenguaje completo desde el punto de vista de la máquina de Turing.
39. LP (2)
Lenguajes expresivos: modularidad, herencia, tipos, etc.
Administración de la memoria central: optimización de código,
administración de la memoria cache, garbage collector, etc.
Persistencia de la memoria (variables) en bloques y acceso a estos
bloques por escritura y lectura explicita.
40. LP vs. LMD
Inconvenientes:
Dos lenguajes a aprender.
Dos estilos de programación.
Conversiones de datos entre la base y el espacio de trabajo del
programa.
Escoger entre las operaciones del SGBD y las del programa.
Comunicaciones frecuentes entre los procesos cliente y servidor.
Solución: SGBD OO (objetos del disco a la pantalla).
Datos + comportamiento.
Lenguaje de consultas: OQL.
41. Bases de datos OO
Conceptos OO aplicadas sobre las bases de datos.
No hay teoría o apoyo matemático (salvo la teoría del LP).
Orígenes:
IA (modelos centrados en objetos: frame, facets).
LP OO: Smalltalk, Modula, ADA, LISP+, C++, EIFFFEL, etc.
BD (objeto, entidad) y modelos semánticos (relaciones de
herencia, generalización, composición, etc.).
42. Reglas de oro
Reglas de base:
Persistencia.
Manejo de disco.
Fiabilidad, seguridad.
Compartir datos.
Consulta ad-hoc.
Reglas SGBD OO:
Objetos complejos (ID).
Tipos o clases.
Encapsulación.
Herencia.
Sobre carga y ligado dinámico.
SGBD completo y extensible.
43. Acoplamiento de LP y SGBD
Punto de vista LP:
Lenguajes de programación persistentes o BD.
Sistemas: Galileo, PS-Algol, Adaplex, Napier88, Pjama, etc.
Punto de vista BD:
Lenguaje de programación OO + BD.
Sistemas: Gemstone, ORION, Itasca, O2, Versant, Poet, Jasmine, etc.
44. Extensión del modelo relacional
SGBD relacionales extendidos:
Principios del relacional + valores complejos.
Sistemas: VERSO, ORACLE, ILLUSTRA, UniSQL, etc.
SGBD deductivos:
Principios del relacional + lógica de primer orden.
Sistemas: RDL, LDL, NAIL, etc.
SGBD extensibles:
Principios del relacional + administración de módulos.
Sistemas: Exodus, Genesis, etc.
45. Plan
Introducción
Modelos
Modelo de datos (estructura, parte estática)
Modelo de comportamiento (operaciones, parte dinámica)
Modelo de nombres (puntos de entrada en la BD)
Modelo de persistencia (datos persistentes o no)
Programación de aplicaciones
46. Object Database Management Group
(ODMG) (1)
Grupo de desarrollo de SGBD orientados a objetos
Ligado (más o menos) a la OMG (Object Management
Group)
Creado a mediados de 1991 para definir los estándares
de las BD orientadas a objetos
Aparición de “The ODMG-93 Standard”
Revisiones ODMG 95, 97, 99 (ODMG 3.0 + Java)
47. Object Database Management Group
(ODMG) (2)
Object Design, Sun Microsystems, ONTOS, O2,
Technology / Ardent Soft., Objectivity, Versant,
Gemstone, Computer Associates, ObjectStore,
InterSystems CACHE, etc.
Asegurar una portabilidad sobre los diferentes productos
de estas compañías
Normalizar el modelo de datos a objetos y los lenguajes
48. ODMG-93, 95, 97 (v 2.0), 99 (v 3.0)
Object Model
Object Data Definition Language (ODL)
Object Manipulation Language (OML)
Object Query Language (OQL)
Interfaces con C++, Smalltalk, Java
49. Modelo de datos
Objetos complejos: atómico, tuple, bags, sets, lists, ...
Asociaciones entre objetos (1:1, 1:N, N:M)
Identificador de objeto: independencia del valor, referencia,
compartir
Clase / tipo: caracterizar los objetos de la misma
naturaleza
Herencia: especialización – relación “is a” (“es un”),
orden parcial sobre los tipos / clases
Independencia lógica, física
50. Objeto
Encapsulación: métodos r_name, w_name, etc.
Valor es privado y puede ser complejo: tuple, set, list
Identificador único: p1, v1, v2, v3
Métodos = interfaz del objeto
Les objetos reciben mensajes y ejecutan operaciones
p1
tuple(name: "France",
capital: v1,
towns: set(v1, v2, v3) )
r_name
w_name
r_capital
add_town
...
52. Objetos y valores
Objeto con un valor complejo
Identificador de objeto
(i, atom) i.e. integer, float, bit, char, string, …
(i, tuple(a1: i1, a2 : i2, ... an : in))
(i, set( i1, i2, … in))
(i, list(i1, i2, … in))
list
struct
atom
set
53. Identificador de objeto
Referencia única: cada objeto tiene un identificador
único para toda su vida:
El identificador es independiente del valor.
Permite compartir los objetos.
El identificador es un valor que permite identificar los
objetos y crear grafos de composición (permitiendo
ciclos).
Identidad e igualdad son dos conceptos diferentes.
54. Objetos
Un objeto que representa a
Francia:
(p1, struct( name: “France”,
capital: v1,
towns: set<v1, v2, v3>)
(v1, struct(name: "Paris",
town_state: p1,
population: 9000000))
(v2, struct(name: "Lyon",
town_state: p1,
population: 1260000))
(v3, struct(name: "Grenoble",
town_state: p1,
population: 400000))
55. Grafo de composición de objetos
p1
"France" set( • , • , • )
name towns
capital
"Paris" 9 000 000
town_state
population
v1
"Grenoble"
400000
name
v3
"Lyon" 1 260 000
v2
population
population
town_state
town_state
name
name
56. Clase
Objeto es una instancia de una clase
Valor es una instancia de un tipo
Métodos de clase
Country
tuple(name: string,
capital: Town,
towns: set(Town) )
r_name
w_name
r_capital
add_town
...
58. Grafo de composición de clases
class Country
struct( name: string,
capital: Town,
towns: set<Town> )
…
end;
class Town
struct( name: string,
town_state: Country,
population: integer )
…
end;
Town
Country
59. ODMG: Object Model (1)
OBJECT: caracterizado por un tipo (INTERFACE) que le asocia un
estado y un comportamiento. Un objeto es una instancia de una
clase.
Estado: definido por un conjunto de valores que el objeto lleva en
sus propiedades (atributos, y / o varios otros objetos). Los valores
de las propiedades pueden cambiar a lo largo del tiempo.
Comportamiento: definido por un conjunto de operaciones
ejecutables sobre el objeto.
Bases de datos: interfaces y clases definidas en ODL y objetos.
60. ODMG: Object Model (2)
Un tipo tiene una especificación externa (propiedades, operaciones,
excepciones) y una o varias implantaciones (aspectos internos).
INTERFACE: especificación abstracta del comportamiento.
CLASE: especificación abstracta del comportamiento y del estado.
INTERFACE CLASS Literal
Operaciones Estado (Propiedades)
61. ODMG: Objeto
Un objeto tiene un identificador único (en una base)
Atomic_object definido por el usuario
Collection_object de tipo:
set<t>, bag<t>, list<t>, array<t>, dictionary<t>
t puede ser un tipo de objeto o de literal
Structured_object
Date, Interval, Time, TimeStamp
62. ODMG: Literal
Una Literal (valor) no tiene identificador. No es en
general referenciable y está incluida en un objeto.
Atomic_literal:
long, float, boolean, char, string, short, octet, etc.
Collection_literal:
set<t>, bag<t>, list<t>, array<t>, dictionary<t>
Structured_literal:
date, interval, time, timestamp
Structure:
struct Address { unsigned short num;
string street; string city }
63. ODMG: Jerarquía de tipos
Tipo Literal
Atomic_literal
long, short
float
char
string
boolean
enum<>
Collection_literal
set <>
bag <>
list <>
array <>
dictionary <>
Structured_literal
date
time
timestamp
interval
structure <>
Tipo Objeto
Atomic_object
Collection_object
Set <>
Bag <>
List <>
Array <>
Dictionary <>
Structured_object
Date
Time
Timestamp
Interval
Nota: Atención con date, Date
64. ODMG: Interfaz
interface Student-IF {
attribute string name;
attribute string student_id;
attribute Address address;
relationship Set<Section> takes inverse Section::is_taken_by;
boolean register_for_course(in unsigned short course,
in unsigned short Section)
raises (unsatisfied_prerequisites, section_full, course_full)
}
Student-IF define por una interfaz que especifica:
- los atributos (abstractos)
- las relaciones (o ligas) con otros tipos de objetos
- las operaciones
65. ODMG: Atributo
Toma por valor una literal
Un atributo tiene un nombre y un tipo (de valores)
asociados
No forzosamente almacenado
Ejemplo: atributo short edad en una interfaz significa que puede
ser almacenado o calculado ... instrumentado como método
No hay referencia a través de los atributos
66. ODMG: Asociaciones
Un objeto puede ser ligados con otros objetos a través de relaciones
Relaciones binarias y bi-direccionales 1-1, 1-N, N-M
Relación: par de encabezados con nombres de tipos y funciones de
acceso en los dos sentidos
teaches en Professor y is_taught_by en Section funciones
inversas una de otra
El sistema administra la integridad referencial
Section Professor
is_taught_by
teaches
67. ODMG: Clase (1)
Class Professor {
attribute string name;
attribute integer faculty_id;
attribute Salary annual_salary;
attribute enum Rank{full, associate,assistant} rank;
relationship Set<Section> teaches inverse Section::is_taught_by;
...
}
Estructuras de datos para la representación de las instancias.
Métodos que operan sobre estas estructures de datos.