SlideShare una empresa de Scribd logo
Sistemas de Información II
Tema 2. Sistemas
gestores de bases de
datos
Bibliografía:
Elmasri y Navathe: “Fundamentos de Sistemas de Bases de
  Datos”
      3ª edición, 2002 (Capítulo 2).
Garcia-Molina, Ullman y Widom: “Database systems: the
  complete book”. Prentice-Hall (Capítulo 1).
                      Carlos Castillo
                        UPF – 2008

                                                          1
Agenda
Objetivos DBMS
Tipos de DBMS
Arquitectura de tres esquemas
Independencia de datos
Resolución de consultas
Transacciones
Interfaces de usuario


                                2
Objetivos DBMS
Software debe permitir:
  Crear bases de datos y esquemas
    Data-definition language
  Preguntar sobre los datos
    Query language
  Almacenar los datos de forma persistente
  Controlar el acceso de múltiples usuarios




                                              3
Tipos de DBMS
Según modelo de datos
  Sistemas gestores de datos relacionales
  Sistemas gestores de datos orientados a
  objetos
  Sistemas gestores de datos objeto-
  relacionales
Según número de usuarios
  Monousuario
  Multiusuario
Según número de sitios
  Centralizado
  Distribuído                               4
Modelo general
Cliente-servidor
  Servidor: gestiona la base de datos
  Cliente: permite enviar comandos al
  servidor
Otras arquitecturas
  Múltiples capas para llegar al servidor
  Distribuída
  Paralela
  etc.

                                            5
Arquitectura general




                     Mayor abstracción
  Nivel de vistas



  Nivel conceptual



    Nivel físico




                                         6
Arquitectura detallada
   Usuario 1                        Usuario 2

Vista 1                       Vista 2
Esquema externo               Esquema externo



               Esquema conceptual


                Esquema interno




                                                7
Nivel interno
Estructura física de almacenamiento
Todos los detalles de cómo el DBMS
utiliza
  el disco duro
  la memoria, etc.
Tema principal
  El sistema debe ser rápido en responder y
  eficiente en el uso de espacio
Administrador de la base de datos

                                              8
Nivel conceptual
Estructura lógica de almacenamiento
Diseño conceptual de la base de datos
  Tablas, columnas, etc.
Tema principal
  El diseño debe reflejar conceptualmente el
  problema a modelar
Administradores de datos



                                               9
Nivel externo
Vistas sobre las tablas
Requiere sólo acceso parcial a los datos
Público objetivo
  Desarrolladores de aplicaciones
  Usuarios finales
Tema principal
  Cada vista debe reflejar adecuadamente la
  parte de los datos que interesa a cada uno


                                               10
Definición: Esquema de la
         base de datos




Descripción de la estructura de la base de
                  datos.




                                             11
Definición: Esquema interno



Descripción de la organización física de los
datos: estructuras de datos en disco y rutas
                 de acceso.

         [= descripción de bajo nivel]



                                               12
Ejemplo de esquema interno
[root@machine mysql]# pwd
/var/lib/mysql

[root@machine mysql]# ls -lah
total 405M
drwxr-xr-x 14 mysql mysql 4.0K Dec 18 20:22 .
drwxr-xr-x 28 root root 4.0K Dec 22 2006 ..
drwx------ 2 mysql mysql 4.0K Apr 25 2007 test
drwx------ 2 mysql mysql 4.0K Jun 20 2006 mysql

[root@machine mysql]# ls -lah test/
-rw-rw---- 1 mysql mysql 8.4K 2008-01-07 21:37 comunitat.frm
-rw-rw---- 1 mysql mysql 452 2008-01-07 21:37 comunitat.MYD
-rw-rw---- 1 mysql mysql 1.0K 2008-01-07 22:42 comunitat.MYI
-rw-rw---- 1 mysql mysql 8.7K 2008-01-07 21:37 municipi.frm
-rw-rw---- 1 mysql mysql 379K 2008-01-07 21:37 municipi.MYD
-rw-rw---- 1 mysql mysql 1.0K 2008-01-07 22:42 municipi.MYI


                                                               13
MyISAM storage
[root@machine test]# file comunitat.*
comunitat.frm: MySQL table definition file Version 10
comunitat.MYD: DBase 3 data file (130048 records)
comunitat.MYI: MySQL MISAM compressed data file Version 1
[root@machine test]# myisamchk --verbose --description comunitat
MyISAM file:       comunitat
Record format:       Packed
Character set:      latin1_swedish_ci (8)
File-version:     1
Creation time:      2008-01-07 20:37:40
Status:          changed,sorted index pages
Data records:               19 Deleted blocks:             0
Datafile parts:            19 Deleted data:               0
Datafile pointer (bytes):      6 Keyfile pointer (bytes):    3
Datafile length:           452 Keyfile length:         1024
Max datafile length: 281474976710654 Max keyfile length: 17179868159
Recordlength:               57
table description:
Key Start Len Index Type                  Rec/key       Root Blocksize
                                                                   14
Definición: Esquema
            conceptual


 Descripción de la estructura lógica de la
 base de datos completa (ej.: a través de
diagramas entidad-relación). Se omiten los
    detalles del almacenamiento físico.

    [= descripción general de alto nivel]


                                             15
Definición: Esquema externo



Descripción de la estructura lógica de una
parte de la base de datos que es de interés
           a un grupo particular.

   [= descripción específica de alto nivel]



                                              16
Tarea de la base de datos



Mantener la coherencia entre estos
esquemas
Mantener independencia de los datos




                                      17
Definición: Independencia
         física de datos




El esquema conceptual no es afectado por
   cambios al esquema físico de datos.




                                           18
Definición: Independencia
         lógica de datos



Algunos elementos del esquema externo no
  son afectados por cambios al esquema
               conceptual.




                                           19
Independencia de datos
Independencia lógica de datos
  Agregar más columnas no afecta las vistas
  Modificar columnas sólo afecta las vistas
  que incluyen esas columnas
Independencia física de datos
  Si el DBMS modifica su organización
  interna de ficheros, no pasa nada con el
  esquema conceptual (sucede cuando hay
  un cambio de versión, o al migrar a otro
  DBMS)

                                              20
Consultas a bases de datos




                             21
Lenguajes
Según área
  Vistas, definición de datos, manipulación
  de datos, etc..
Según nivel
  Alto nivel: no procedimientos
  Bajo nivel: procedimientos




                                              22
Lenguajes para interactuar
     con bases de datos
Lenguaje para definir vistas
  Ej.: lenguaje de reportes
Lenguaje para definir datos
  CREATE ...
Lenguaje para definir almacenamiento
  Para escoger un cierto esquema interno
Lenguaje para manipulación de datos
  SELECT, UPDATE, ...


                                           23
Lenguajes en la práctica
Lenguaje para definir vistas
  SQL
  O algún lenguaje propietario para reportes
Lenguaje para definir datos
  SQL
Lenguaje para definir almacenamiento
  Extensiones propietarias de SQL
Lenguaje para manipulación de datos
  SQL
                                               24
Dialectos de SQL -- Limit
MYSQL, PostgreSQL      ORACLE


SELECT columns         SELECT * FROM (
FROM tablename           SELECT
ORDER BY key ASC           ROW_NUMBER() OVER (ORDER BY key ASC) AS
LIMIT n                     rownumber, columns
                         FROM tablename
                       )
                       WHERE rownumber <= n




          Fuente: http://troels.arvin.dk/db/rdbms/
                                                                     25
Dialectos de SQL -- Limit/skip
MYSQL, PostgreSQL     ORACLE


SELECT columns        SELECT * FROM (
FROM tablename          SELECT
ORDER BY key ASC          ROW_NUMBER() OVER (ORDER BY key ASC) AS
LIMIT n OFFSET skip        rownumber, columns
                        FROM tablename
                      )
                      WHERE rownumber > skip and rownumber <= (n+skip)




                                                                         26
Dialectos de SQL - Multi-insert
INSERT INTO tablename
 VALUES (0,'foo') , (1,'bar') , (2,'baz');


Sí:                               No:
  PostgreSQL                         MSSQL
  MySQL                              Oracle
  DB2




                                              27
Dialectos de SQL
     Autoincrement (Oracle)
CREATE TABLE mytable (
  mytable_id INTEGER PRIMARY KEY,
  ... -- (other columns)
);
 
CREATE SEQUENCE mytable_seq;
 
CREATE TRIGGER mytable_seq_trigger
BEFORE INSERT ON mytable FOR EACH ROW
BEGIN
  IF (:new.mytable_id IS NULL) THEN
    SELECT mytable_seq.nextval INTO :new.mytable_id
    FROM DUAL;
  END IF;
END;
                                                      28
Dialectos de SQL
            Autoincrement
MySQL
  CREATE TABLE tablename (
    columnname INTEGER AUTO_INCREMENT PRIMARY KEY
    ...
  )
DB2 / STANDARD
CREATE TABLE tablename (
  tablename_id INTEGER GENERATED BY DEFAULT AS IDENTITY
  ...
)

 PostgreSQL
 CREATE TABLE tablename (
   tablename_id SERIAL,
   ...
 )                                                        29
DBMS con procedimientos
       (ejemplo de PL/SQL)
DECLARE
   x NUMBER := 100;
BEGIN
   FOR i IN 1..10 LOOP
      IF MOD(i,2) = 0 THEN     -- i is even
         INSERT INTO temp VALUES (i, x, 'i is even');
      ELSE
         INSERT INTO temp VALUES (i, x, 'i is odd');
      END IF;
      x := x + 100;
   END LOOP;
   COMMIT;
END;




                                                   30
Interfaces de usuario
Intérprete de comandos
Formularios
Interfaces gráficas
  Interfaces parametrizadas
  Web
Interfaces en lenguaje natural




                                 31
MySQLadmin (Web)




                   32
phpMyAdmin




             33
34
35
MySQLadmin (cliente)




                       36
Resolución de consultas




                          37
Usuarios, aplicaciones            Resolución de
                                      consultas
   Intérprete             Gestor de
   consultas              transacciones


 Solución de la           Registro y
 consulta                 recuperación



Administrador            Buffers o
almacenamiento           almacenamiento
                         temporal


Almacenamiento
Ficheros o Log                               38
Ejecución de una consulta
 Consulta en SQL -> compilador
 Plan de ejecución de la consulta
   Se puede recuperar usando “explain
   QUERY”
 Ejemplo explain en postgres:
EXPLAIN SELECT * FROM agenda;
 Seq scan on agenda (cost=5, rows=5)
EXPLAIN SELECT * FROM agenda
 WHERE nacimiento > 1985;
 Idx scan on agenda (cost=2, rows=5)
                                        39
Ejemplo en MS SQL Server
     SELECT * FROM Employee e, Person c
     WHERE e.ContactID = c.ContactID ORDER BY c.LastName


Sort(ORDER BY:([c].[LastName] ASC))
|-Nested Loops(Inner Join, OUTER REFERENCES:([e].[ContactID], [Expr1004])
  WITH UNORDERED PREFETCH)
  |--Clust Index Scan(OBJECT:([Employee].[PK_Employee_EmployeeID] AS [e]))
  |--Clust Index Seek(OBJECT:([Person].[PK_Contact_ContactID] AS [c]),
     SEEK:([c].[ContactID]=[Employee].[ContactID] as [e].[ContactID])
     ORDERED FORWARD)




             http://en.wikipedia.org/wiki/Query_plan
                                                                        40
Planificador de consultas
Buscar el mejor orden
Puede ser difícil en consultas complejas
  Ej.: nombre de las sucursales en Madrid en
  que trabajen empleados de más de 64
  años
  Conviene primero filtrar lo más restrictivo
  Pasar pocos datos de una etapa a otra
Recorrer columnas indexadas primero
Optimización de consultas

                                                41
Consultas y buffers
Procesador de consultas
  Solicita fragmentos al administrador de
  buffers
  Fragmentos son índices, filas, etc.
Administrador de buffers
  Usar la memoria apropiadamente
Procesamiento de transacciones
  Control de concurrencia
    Hasta qué punto podemos admitir dos usuarios
    haciendo algo al mismo tiempo
  Registro y recuperación en caso de fallas
                                                   42
Transacciones
Ejemplo: mover dinero de una cuenta
bancaria a otra, ¿se quita a una cuenta
primero o se agrega a la otra?
  BEGIN TRANSACTION y END TRANSACTION
Registro y recuperación en caso de
fallas
  Cada cambio es almacenado
  separadamente
  Se deshacen los cambios de las
  transacciones que quedaron “a medias”
Control de concurrencia
  Bloquear y desbloquear tablas           43
Ejemplo transacciones
BEGIN
 x.saldo=x.saldo - 10
 y.saldo=y.saldo + 10
END

BEGIN
 z=y.saldo
 y.saldo=z + 40
END

                            44
Falla 1: transacción a medias
BEGIN
 x.saldo=x.saldo - 10
---falla de energía---

Recuperación (rollback):
 x.saldo=x.saldo + 10




                                 45
Falla 2: interferencia de
         transacciones
ORDEN DE EJECUCIÓN
 x.saldo=x.saldo – 10
 z=y.saldo
 y.saldo=y.saldo + 10
 y.saldo=z+40 ---ERROR---




                                46
Transacciones (A.C.I.D.)
Atomicidad
  Se ejecuta toda la transacción o nada
Consistencia
  Antes y después de la transacción la base
  de datos está consistente
Isolation (aislamiento)
  Cada transacción debe aparecer como algo
  separado de otras transacciones
Durabilidad
  Una vez hecha la transacción ésta es
  durable                                     47
Utilidades adicionales de un
            DBMS
Importar-exportar datos
Copia de respaldo
Reorganización de ficheros
Control de rendimiento
  Ej.: creación de nuevos índices




                                    48
Resumen
Niveles interno-conceptual-externo
Interpretación de consultas pasa por
varios procesos
Lo más complejo es el procesamiento
de transacciones




                                       49

Más contenido relacionado

La actualidad más candente

Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosAdministración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Hector Martinez
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQL
ed0594
 
6. SQL structured query language
6. SQL   structured query language6. SQL   structured query language
6. SQL structured query language
Marcelo Herrera
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
Yoly QC
 
Tablespaces En Oracle
Tablespaces En OracleTablespaces En Oracle
Tablespaces En Oracle
Jesús Armand Calejero Román
 
Presentación1
Presentación1Presentación1
Presentación1
Diego Sanchez Hernandez
 
Administración de Oracle - Tema 3 - Creación de la BD
Administración de Oracle - Tema 3 - Creación de la BDAdministración de Oracle - Tema 3 - Creación de la BD
Administración de Oracle - Tema 3 - Creación de la BD
Hector Martinez
 

La actualidad más candente (7)

Administración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de DatosAdministración de Oracle - Tema 4 - Interacción con la Base de Datos
Administración de Oracle - Tema 4 - Interacción con la Base de Datos
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQL
 
6. SQL structured query language
6. SQL   structured query language6. SQL   structured query language
6. SQL structured query language
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query language
 
Tablespaces En Oracle
Tablespaces En OracleTablespaces En Oracle
Tablespaces En Oracle
 
Presentación1
Presentación1Presentación1
Presentación1
 
Administración de Oracle - Tema 3 - Creación de la BD
Administración de Oracle - Tema 3 - Creación de la BDAdministración de Oracle - Tema 3 - Creación de la BD
Administración de Oracle - Tema 3 - Creación de la BD
 

Similar a F:\basesdatos teo2 sistemas_db

Administracion de base de datos
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
Ayde Hernandez Lara
 
Base de datos en microsoft sql server
Base de datos en microsoft sql serverBase de datos en microsoft sql server
Base de datos en microsoft sql server
Jorge Paredes Toledo
 
Bases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datosBases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datos
Carlos Castillo (ChaTo)
 
04 -bases_de_datos_-_arquitectura_de_tres_niveles
04  -bases_de_datos_-_arquitectura_de_tres_niveles04  -bases_de_datos_-_arquitectura_de_tres_niveles
04 -bases_de_datos_-_arquitectura_de_tres_niveles
Elkin Alfredo Albarracin Navas
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
Carlos Mancilla
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL Server
SuarezJhon
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
Laura Noussan Lettry
 
Introducción SQL : Primera semana
Introducción SQL : Primera semanaIntroducción SQL : Primera semana
Introducción SQL : Primera semana
Manuel Lamarche Fabio
 
Bases de datos
Bases de datosBases de datos
Bases de datos
JUAN JOSE MADRIGAL RUIZ
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
Berenice Quintero
 
Actividad4cosdac
Actividad4cosdacActividad4cosdac
Actividad4cosdac
Omega Andraph
 
Exposicion Mysql
Exposicion MysqlExposicion Mysql
Exposicion Mysql
Hugo Palma G
 
Tres gestores de bases de datos
Tres gestores de bases de datosTres gestores de bases de datos
Tres gestores de bases de datos
satakin_armando7
 
Unidad I- Introducción.pptx
Unidad I- Introducción.pptxUnidad I- Introducción.pptx
Unidad I- Introducción.pptx
dffdfsd
 
Unidad iv ddl
Unidad iv ddlUnidad iv ddl
Unidad iv ddl
Orlando Verdugo
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
felpe33
 
Base de datos CBTis 75
Base de datos CBTis 75Base de datos CBTis 75
Base de datos CBTis 75
Daniela Villanueva
 
BD
BDBD
Bases de datos
Bases de datos Bases de datos
Bases de datos
Millercris Alamo
 
Bases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminBases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadmin
Juan Manuel Zalazar
 

Similar a F:\basesdatos teo2 sistemas_db (20)

Administracion de base de datos
Administracion de base de datosAdministracion de base de datos
Administracion de base de datos
 
Base de datos en microsoft sql server
Base de datos en microsoft sql serverBase de datos en microsoft sql server
Base de datos en microsoft sql server
 
Bases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datosBases de Datos - Parte 2/10 Sistemas de bases de datos
Bases de Datos - Parte 2/10 Sistemas de bases de datos
 
04 -bases_de_datos_-_arquitectura_de_tres_niveles
04  -bases_de_datos_-_arquitectura_de_tres_niveles04  -bases_de_datos_-_arquitectura_de_tres_niveles
04 -bases_de_datos_-_arquitectura_de_tres_niveles
 
Manual practicosql
Manual practicosqlManual practicosql
Manual practicosql
 
Base de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL ServerBase de Datos en Microsoft SQL Server
Base de Datos en Microsoft SQL Server
 
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
POOABD (POO Aplicada a B Datos) - RDBMS parte 2 -2020
 
Introducción SQL : Primera semana
Introducción SQL : Primera semanaIntroducción SQL : Primera semana
Introducción SQL : Primera semana
 
Bases de datos
Bases de datosBases de datos
Bases de datos
 
Base de Datos
Base de DatosBase de Datos
Base de Datos
 
Actividad4cosdac
Actividad4cosdacActividad4cosdac
Actividad4cosdac
 
Exposicion Mysql
Exposicion MysqlExposicion Mysql
Exposicion Mysql
 
Tres gestores de bases de datos
Tres gestores de bases de datosTres gestores de bases de datos
Tres gestores de bases de datos
 
Unidad I- Introducción.pptx
Unidad I- Introducción.pptxUnidad I- Introducción.pptx
Unidad I- Introducción.pptx
 
Unidad iv ddl
Unidad iv ddlUnidad iv ddl
Unidad iv ddl
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)
 
Base de datos CBTis 75
Base de datos CBTis 75Base de datos CBTis 75
Base de datos CBTis 75
 
BD
BDBD
BD
 
Bases de datos
Bases de datos Bases de datos
Bases de datos
 
Bases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminBases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadmin
 

Último

Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
JimmyDeveloperWebAnd
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
AlexDeLonghi
 
Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
Alejandrino Halire Ccahuana
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
JorgeVillota6
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
100078171
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
EricaCouly1
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
LudmilaOrtega3
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
JonathanCovena1
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
YeniferGarcia36
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
josseanlo1581
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
Mónica Sánchez
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
Sandra Mariela Ballón Aguedo
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
romina395894
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
ROCIORUIZQUEZADA
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
RAMIREZNICOLE
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
shirherrer
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
karlafreire0608
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CARMENSnchez854591
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Demetrio Ccesa Rayme
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Alejandrino Halire Ccahuana
 

Último (20)

Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdfCompartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
Compartir p4s.co Pitch Hackathon Template Plantilla final.pptx-2.pdf
 
Camus, Albert - El Extranjero.pdf
Camus, Albert -        El Extranjero.pdfCamus, Albert -        El Extranjero.pdf
Camus, Albert - El Extranjero.pdf
 
Escuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdfEscuela Sabática. El conflicto inminente.pdf
Escuela Sabática. El conflicto inminente.pdf
 
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsadUrkuninaLab.pdfsadsadasddassadsadsadasdsad
UrkuninaLab.pdfsadsadasddassadsadsadasdsad
 
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docxRETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
RETROALIMENTACIÓN PARA EL EXAMEN ÚNICO AUXILIAR DE ENFERMERIA.docx
 
La vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primariaLa vida de Martin Miguel de Güemes para niños de primaria
La vida de Martin Miguel de Güemes para niños de primaria
 
Prueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infanciaPrueba/test conoce tus heridas de la infancia
Prueba/test conoce tus heridas de la infancia
 
La necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdfLa necesidad de bienestar y el uso de la naturaleza.pdf
La necesidad de bienestar y el uso de la naturaleza.pdf
 
Liturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptxLiturgia día del Padre del siguiente domingo.pptx
Liturgia día del Padre del siguiente domingo.pptx
 
Manual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HCManual de procedimiento para gráficos HC
Manual de procedimiento para gráficos HC
 
Hablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes CuadernilloHablemos de ESI para estudiantes Cuadernillo
Hablemos de ESI para estudiantes Cuadernillo
 
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZACORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
CORREOS SEGUNDO 2024 HONORIO DELGADO ESPINOZA
 
Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...Este documento contiene, el programa completo de un acto para realizar la pro...
Este documento contiene, el programa completo de un acto para realizar la pro...
 
1° T3 Examen Zany de primer grado compl
1° T3 Examen Zany  de primer grado compl1° T3 Examen Zany  de primer grado compl
1° T3 Examen Zany de primer grado compl
 
pueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptxpueblos originarios de chile presentacion twinkl.pptx
pueblos originarios de chile presentacion twinkl.pptx
 
200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural200. Efemerides junio para trabajar en periodico mural
200. Efemerides junio para trabajar en periodico mural
 
Los Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres VivosLos Dominios y Reinos de los Seres Vivos
Los Dominios y Reinos de los Seres Vivos
 
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptxCONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
CONCURSOS EDUCATIVOS 2024-PRESENTACIÓN ORIENTACIONES ETAPA IE (1).pptx
 
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
Inteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdfInteligencia Artificial  y Aprendizaje Activo FLACSO  Ccesa007.pdf
Inteligencia Artificial y Aprendizaje Activo FLACSO Ccesa007.pdf
 
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docxLecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
Lecciones 10 Esc. Sabática. El espiritismo desenmascarado docx
 

F:\basesdatos teo2 sistemas_db

  • 1. Sistemas de Información II Tema 2. Sistemas gestores de bases de datos Bibliografía: Elmasri y Navathe: “Fundamentos de Sistemas de Bases de Datos” 3ª edición, 2002 (Capítulo 2). Garcia-Molina, Ullman y Widom: “Database systems: the complete book”. Prentice-Hall (Capítulo 1). Carlos Castillo UPF – 2008 1
  • 2. Agenda Objetivos DBMS Tipos de DBMS Arquitectura de tres esquemas Independencia de datos Resolución de consultas Transacciones Interfaces de usuario 2
  • 3. Objetivos DBMS Software debe permitir: Crear bases de datos y esquemas Data-definition language Preguntar sobre los datos Query language Almacenar los datos de forma persistente Controlar el acceso de múltiples usuarios 3
  • 4. Tipos de DBMS Según modelo de datos Sistemas gestores de datos relacionales Sistemas gestores de datos orientados a objetos Sistemas gestores de datos objeto- relacionales Según número de usuarios Monousuario Multiusuario Según número de sitios Centralizado Distribuído 4
  • 5. Modelo general Cliente-servidor Servidor: gestiona la base de datos Cliente: permite enviar comandos al servidor Otras arquitecturas Múltiples capas para llegar al servidor Distribuída Paralela etc. 5
  • 6. Arquitectura general Mayor abstracción Nivel de vistas Nivel conceptual Nivel físico 6
  • 7. Arquitectura detallada Usuario 1 Usuario 2 Vista 1 Vista 2 Esquema externo Esquema externo Esquema conceptual Esquema interno 7
  • 8. Nivel interno Estructura física de almacenamiento Todos los detalles de cómo el DBMS utiliza el disco duro la memoria, etc. Tema principal El sistema debe ser rápido en responder y eficiente en el uso de espacio Administrador de la base de datos 8
  • 9. Nivel conceptual Estructura lógica de almacenamiento Diseño conceptual de la base de datos Tablas, columnas, etc. Tema principal El diseño debe reflejar conceptualmente el problema a modelar Administradores de datos 9
  • 10. Nivel externo Vistas sobre las tablas Requiere sólo acceso parcial a los datos Público objetivo Desarrolladores de aplicaciones Usuarios finales Tema principal Cada vista debe reflejar adecuadamente la parte de los datos que interesa a cada uno 10
  • 11. Definición: Esquema de la base de datos Descripción de la estructura de la base de datos. 11
  • 12. Definición: Esquema interno Descripción de la organización física de los datos: estructuras de datos en disco y rutas de acceso. [= descripción de bajo nivel] 12
  • 13. Ejemplo de esquema interno [root@machine mysql]# pwd /var/lib/mysql [root@machine mysql]# ls -lah total 405M drwxr-xr-x 14 mysql mysql 4.0K Dec 18 20:22 . drwxr-xr-x 28 root root 4.0K Dec 22 2006 .. drwx------ 2 mysql mysql 4.0K Apr 25 2007 test drwx------ 2 mysql mysql 4.0K Jun 20 2006 mysql [root@machine mysql]# ls -lah test/ -rw-rw---- 1 mysql mysql 8.4K 2008-01-07 21:37 comunitat.frm -rw-rw---- 1 mysql mysql 452 2008-01-07 21:37 comunitat.MYD -rw-rw---- 1 mysql mysql 1.0K 2008-01-07 22:42 comunitat.MYI -rw-rw---- 1 mysql mysql 8.7K 2008-01-07 21:37 municipi.frm -rw-rw---- 1 mysql mysql 379K 2008-01-07 21:37 municipi.MYD -rw-rw---- 1 mysql mysql 1.0K 2008-01-07 22:42 municipi.MYI 13
  • 14. MyISAM storage [root@machine test]# file comunitat.* comunitat.frm: MySQL table definition file Version 10 comunitat.MYD: DBase 3 data file (130048 records) comunitat.MYI: MySQL MISAM compressed data file Version 1 [root@machine test]# myisamchk --verbose --description comunitat MyISAM file: comunitat Record format: Packed Character set: latin1_swedish_ci (8) File-version: 1 Creation time: 2008-01-07 20:37:40 Status: changed,sorted index pages Data records: 19 Deleted blocks: 0 Datafile parts: 19 Deleted data: 0 Datafile pointer (bytes): 6 Keyfile pointer (bytes): 3 Datafile length: 452 Keyfile length: 1024 Max datafile length: 281474976710654 Max keyfile length: 17179868159 Recordlength: 57 table description: Key Start Len Index Type Rec/key Root Blocksize 14
  • 15. Definición: Esquema conceptual Descripción de la estructura lógica de la base de datos completa (ej.: a través de diagramas entidad-relación). Se omiten los detalles del almacenamiento físico. [= descripción general de alto nivel] 15
  • 16. Definición: Esquema externo Descripción de la estructura lógica de una parte de la base de datos que es de interés a un grupo particular. [= descripción específica de alto nivel] 16
  • 17. Tarea de la base de datos Mantener la coherencia entre estos esquemas Mantener independencia de los datos 17
  • 18. Definición: Independencia física de datos El esquema conceptual no es afectado por cambios al esquema físico de datos. 18
  • 19. Definición: Independencia lógica de datos Algunos elementos del esquema externo no son afectados por cambios al esquema conceptual. 19
  • 20. Independencia de datos Independencia lógica de datos Agregar más columnas no afecta las vistas Modificar columnas sólo afecta las vistas que incluyen esas columnas Independencia física de datos Si el DBMS modifica su organización interna de ficheros, no pasa nada con el esquema conceptual (sucede cuando hay un cambio de versión, o al migrar a otro DBMS) 20
  • 21. Consultas a bases de datos 21
  • 22. Lenguajes Según área Vistas, definición de datos, manipulación de datos, etc.. Según nivel Alto nivel: no procedimientos Bajo nivel: procedimientos 22
  • 23. Lenguajes para interactuar con bases de datos Lenguaje para definir vistas Ej.: lenguaje de reportes Lenguaje para definir datos CREATE ... Lenguaje para definir almacenamiento Para escoger un cierto esquema interno Lenguaje para manipulación de datos SELECT, UPDATE, ... 23
  • 24. Lenguajes en la práctica Lenguaje para definir vistas SQL O algún lenguaje propietario para reportes Lenguaje para definir datos SQL Lenguaje para definir almacenamiento Extensiones propietarias de SQL Lenguaje para manipulación de datos SQL 24
  • 25. Dialectos de SQL -- Limit MYSQL, PostgreSQL ORACLE SELECT columns SELECT * FROM ( FROM tablename   SELECT ORDER BY key ASC     ROW_NUMBER() OVER (ORDER BY key ASC) AS LIMIT n rownumber, columns   FROM tablename ) WHERE rownumber <= n Fuente: http://troels.arvin.dk/db/rdbms/ 25
  • 26. Dialectos de SQL -- Limit/skip MYSQL, PostgreSQL ORACLE SELECT columns SELECT * FROM ( FROM tablename   SELECT ORDER BY key ASC     ROW_NUMBER() OVER (ORDER BY key ASC) AS LIMIT n OFFSET skip rownumber, columns   FROM tablename ) WHERE rownumber > skip and rownumber <= (n+skip) 26
  • 27. Dialectos de SQL - Multi-insert INSERT INTO tablename VALUES (0,'foo') , (1,'bar') , (2,'baz'); Sí: No: PostgreSQL MSSQL MySQL Oracle DB2 27
  • 28. Dialectos de SQL Autoincrement (Oracle) CREATE TABLE mytable (   mytable_id INTEGER PRIMARY KEY,   ... -- (other columns) );   CREATE SEQUENCE mytable_seq;   CREATE TRIGGER mytable_seq_trigger BEFORE INSERT ON mytable FOR EACH ROW BEGIN   IF (:new.mytable_id IS NULL) THEN     SELECT mytable_seq.nextval INTO :new.mytable_id     FROM DUAL;   END IF; END; 28
  • 29. Dialectos de SQL Autoincrement MySQL   CREATE TABLE tablename (     columnname INTEGER AUTO_INCREMENT PRIMARY KEY     ...   ) DB2 / STANDARD CREATE TABLE tablename (   tablename_id INTEGER GENERATED BY DEFAULT AS IDENTITY   ... ) PostgreSQL CREATE TABLE tablename (   tablename_id SERIAL,   ... ) 29
  • 30. DBMS con procedimientos (ejemplo de PL/SQL) DECLARE x NUMBER := 100; BEGIN FOR i IN 1..10 LOOP IF MOD(i,2) = 0 THEN -- i is even INSERT INTO temp VALUES (i, x, 'i is even'); ELSE INSERT INTO temp VALUES (i, x, 'i is odd'); END IF; x := x + 100; END LOOP; COMMIT; END; 30
  • 31. Interfaces de usuario Intérprete de comandos Formularios Interfaces gráficas Interfaces parametrizadas Web Interfaces en lenguaje natural 31
  • 34. 34
  • 35. 35
  • 38. Usuarios, aplicaciones Resolución de consultas Intérprete Gestor de consultas transacciones Solución de la Registro y consulta recuperación Administrador Buffers o almacenamiento almacenamiento temporal Almacenamiento Ficheros o Log 38
  • 39. Ejecución de una consulta Consulta en SQL -> compilador Plan de ejecución de la consulta Se puede recuperar usando “explain QUERY” Ejemplo explain en postgres: EXPLAIN SELECT * FROM agenda; Seq scan on agenda (cost=5, rows=5) EXPLAIN SELECT * FROM agenda WHERE nacimiento > 1985; Idx scan on agenda (cost=2, rows=5) 39
  • 40. Ejemplo en MS SQL Server SELECT * FROM Employee e, Person c WHERE e.ContactID = c.ContactID ORDER BY c.LastName Sort(ORDER BY:([c].[LastName] ASC)) |-Nested Loops(Inner Join, OUTER REFERENCES:([e].[ContactID], [Expr1004]) WITH UNORDERED PREFETCH) |--Clust Index Scan(OBJECT:([Employee].[PK_Employee_EmployeeID] AS [e])) |--Clust Index Seek(OBJECT:([Person].[PK_Contact_ContactID] AS [c]), SEEK:([c].[ContactID]=[Employee].[ContactID] as [e].[ContactID]) ORDERED FORWARD) http://en.wikipedia.org/wiki/Query_plan 40
  • 41. Planificador de consultas Buscar el mejor orden Puede ser difícil en consultas complejas Ej.: nombre de las sucursales en Madrid en que trabajen empleados de más de 64 años Conviene primero filtrar lo más restrictivo Pasar pocos datos de una etapa a otra Recorrer columnas indexadas primero Optimización de consultas 41
  • 42. Consultas y buffers Procesador de consultas Solicita fragmentos al administrador de buffers Fragmentos son índices, filas, etc. Administrador de buffers Usar la memoria apropiadamente Procesamiento de transacciones Control de concurrencia Hasta qué punto podemos admitir dos usuarios haciendo algo al mismo tiempo Registro y recuperación en caso de fallas 42
  • 43. Transacciones Ejemplo: mover dinero de una cuenta bancaria a otra, ¿se quita a una cuenta primero o se agrega a la otra? BEGIN TRANSACTION y END TRANSACTION Registro y recuperación en caso de fallas Cada cambio es almacenado separadamente Se deshacen los cambios de las transacciones que quedaron “a medias” Control de concurrencia Bloquear y desbloquear tablas 43
  • 44. Ejemplo transacciones BEGIN x.saldo=x.saldo - 10 y.saldo=y.saldo + 10 END BEGIN z=y.saldo y.saldo=z + 40 END 44
  • 45. Falla 1: transacción a medias BEGIN x.saldo=x.saldo - 10 ---falla de energía--- Recuperación (rollback): x.saldo=x.saldo + 10 45
  • 46. Falla 2: interferencia de transacciones ORDEN DE EJECUCIÓN x.saldo=x.saldo – 10 z=y.saldo y.saldo=y.saldo + 10 y.saldo=z+40 ---ERROR--- 46
  • 47. Transacciones (A.C.I.D.) Atomicidad Se ejecuta toda la transacción o nada Consistencia Antes y después de la transacción la base de datos está consistente Isolation (aislamiento) Cada transacción debe aparecer como algo separado de otras transacciones Durabilidad Una vez hecha la transacción ésta es durable 47
  • 48. Utilidades adicionales de un DBMS Importar-exportar datos Copia de respaldo Reorganización de ficheros Control de rendimiento Ej.: creación de nuevos índices 48
  • 49. Resumen Niveles interno-conceptual-externo Interpretación de consultas pasa por varios procesos Lo más complejo es el procesamiento de transacciones 49