SlideShare une entreprise Scribd logo
1  sur  49
Télécharger pour lire hors ligne
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

Contenu connexe

Tendances

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 DatosHector Martinez
 
PRESENTACIÓN SQL
PRESENTACIÓN SQLPRESENTACIÓN SQL
PRESENTACIÓN SQLed0594
 
6. SQL structured query language
6. SQL   structured query language6. SQL   structured query language
6. SQL structured query languageMarcelo Herrera
 
6. sql structured query language
6. sql   structured query language6. sql   structured query language
6. sql structured query languageYoly QC
 
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 BDHector Martinez
 

Tendances (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
 

Similaire à Sistemas de Información II

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 serverJorge 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 datosCarlos Castillo (ChaTo)
 
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 ServerSuarezJhon
 
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 -2020Laura Noussan Lettry
 
Tres gestores de bases de datos
Tres gestores de bases de datosTres gestores de bases de datos
Tres gestores de bases de datossatakin_armando7
 
Unidad I- Introducción.pptx
Unidad I- Introducción.pptxUnidad I- Introducción.pptx
Unidad I- Introducción.pptxdffdfsd
 
4. sql (autoguardado)
4. sql (autoguardado)4. sql (autoguardado)
4. sql (autoguardado)felpe33
 
Bases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminBases de datos, Mysql y phpMyadmin
Bases de datos, Mysql y phpMyadminJuan Manuel Zalazar
 

Similaire à Sistemas de Información II (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
 

Dernier

El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FJulio Lozano
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdfEDNAMONICARUIZNIETO
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docxMagalyDacostaPea
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Gonella
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfmiriamguevara21
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Gonella
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías productommartinezmarquez30
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfHannyDenissePinedaOr
 
Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3Gonella
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdflizcortes48
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfMaritza438836
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.karlazoegarciagarcia
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2Eliseo Delgado
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAJesus Gonzalez Losada
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docxMagalyDacostaPea
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAlejandrino Halire Ccahuana
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajeKattyMoran3
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Angélica Soledad Vega Ramírez
 

Dernier (20)

El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/FEl PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
El PROGRAMA DE TUTORÍAS PARA EL APRENDIZAJE Y LA FORMACIÓN INTEGRAL PTA/F
 
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdfNUEVO PLAN Y PROGRAMAS DE ESTUDIO  2022.pdf
NUEVO PLAN Y PROGRAMAS DE ESTUDIO 2022.pdf
 
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
4° UNIDAD 2 SALUD,ALIMENTACIÓN Y DÍA DE LA MADRE 933623393 PROF YESSENIA CN.docx
 
Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2Apunte de clase Pisos y Revestimientos 2
Apunte de clase Pisos y Revestimientos 2
 
Acuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdfAcuerdo 05_04_24 Lineamientos del CTE.pdf
Acuerdo 05_04_24 Lineamientos del CTE.pdf
 
Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1Apunte de clase Pisos y Revestimientos 1
Apunte de clase Pisos y Revestimientos 1
 
historieta materia de ecologías producto
historieta materia de ecologías productohistorieta materia de ecologías producto
historieta materia de ecologías producto
 
Programa sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdfPrograma sintetico fase 2 - Preescolar.pdf
Programa sintetico fase 2 - Preescolar.pdf
 
Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3Apunte de clase Pisos y Revestimientos 3
Apunte de clase Pisos y Revestimientos 3
 
Cuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdfCuadernillo de actividades eclipse solar.pdf
Cuadernillo de actividades eclipse solar.pdf
 
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdfPROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
PROGRAMACIÓN CURRICULAR - DPCC- 5°-2024.pdf
 
Sesión ¿Amor o egoísmo? Esa es la cuestión
Sesión  ¿Amor o egoísmo? Esa es la cuestiónSesión  ¿Amor o egoísmo? Esa es la cuestión
Sesión ¿Amor o egoísmo? Esa es la cuestión
 
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.ENSEÑAR ACUIDAR  EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
ENSEÑAR ACUIDAR EL MEDIO AMBIENTE ES ENSEÑAR A VALORAR LA VIDA.
 
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
PÉNSUM ENFERMERIA 2024 - ECUGENIUS S.A. V2
 
HISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICAHISPANIDAD - La cultura común de la HISPANOAMERICA
HISPANIDAD - La cultura común de la HISPANOAMERICA
 
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE     9-4-24 (1).docx
4° SES MATE DESCOMP. ADIT. DE NUMEROS SOBRE CASOS DE DENGUE 9-4-24 (1).docx
 
Amor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdfAmor o egoísmo, esa es la cuestión por definir.pdf
Amor o egoísmo, esa es la cuestión por definir.pdf
 
¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx¿Amor o egoísmo? Esa es la cuestión.pptx
¿Amor o egoísmo? Esa es la cuestión.pptx
 
libro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguajelibro grafismo fonético guía de uso para el lenguaje
libro grafismo fonético guía de uso para el lenguaje
 
Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...Contextualización y aproximación al objeto de estudio de investigación cualit...
Contextualización y aproximación al objeto de estudio de investigación cualit...
 

Sistemas de Información II

  • 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