La descarga está en progreso. Por favor, espere

La descarga está en progreso. Por favor, espere

ADMINISTRACÓN DE BASE DE DATOS Jaroslav Reznik Tomas Ochmann.

Presentaciones similares


Presentación del tema: "ADMINISTRACÓN DE BASE DE DATOS Jaroslav Reznik Tomas Ochmann."— Transcripción de la presentación:

1 ADMINISTRACÓN DE BASE DE DATOS Jaroslav Reznik Tomas Ochmann

2 ABD - Primera práctica Creación de la Base de Datos y carga inicial  DDL (data definition language) CREATE, DROP, ALTER triggers grants Estudio de Indices  Indices para los atributos candidatos Reorganización de la BD  lógica y física

3 Creación de la BD I. Creación de la Base de Datos  DDL script create database oraXE  Nombre de la base de dato oraXE  Tamaño del bloque 8192B  Tamaño de memoria 80M  raíz a ficheros de BD C:\oraclexe\oradata\oraXE Creación de usuario  CREATE USER ABDDBA IDENTIFIED BY clave

4 Creación de la BD II. Derecho de conexión a BD GRANT "CONNECT" TO ABDDBA ; Derecho de la BD GRANT DROP ANY TRIGGER TO ABDDBA ; GRANT UPDATE ANY TABLE TO ABDDBA ; GRANT ALTER ANY TRIGGER TO ABDDBA ; GRANT ALTER ANY TABLE TO ABDDBA ; GRANT SELECT ANY TABLE TO ABDDBA ; GRANT CREATE ANY TABLE TO ABDDBA ; GRANT CREATE ANY TRIGGER TO ABDDBA ; GRANT DROP ANY TABLE TO ABDDBA ;

5 Creación de la BD III. Creación de las tablas de la BD  Según un diagrama entidad-relación  DDL CREATE TABLE nombre...  atencion_medica  paciente  motivo  medico  clinica  consulta

6 Creación de la BD III. Carga de datos  Recuperación Falta dato necesario (trigger) Trigger before insert Hay que quedar integridad de la BD create or replace trigger puesto_null before insert on personal for each row when ( (new.puesto is NULL)) begin :new.puesto := 'falta!!!'; end; /

7 Creación de la BD IV. Tablas externas para cargar datos de ficheros ORGANIZATION EXTERNAL ( TYPE ORACLE_LOADER DEFAULT DIRECTORY MIDIRECTORIO ACCESS PARAMETERS ( records delimited by newline fields ( cod_clinica POSITION( 1:6) INTEGER EXTERNAL, direccion POSITION( 7:66) CHAR, ciudad POSITION ( 67:96) CHAR, telefono POSITION( 97:105) CHAR ) LOCATION ( 'clinica.txt' ) REJECT LIMIT UNLIMITED;

8 Estudio de indices I. Datos pegueños y grandes 3 sentencias de Select 1 sentencia de Update Medida de los Tiempos  Sin cláves foráneas  Con cláves foráneas  Atributos candidatos

9 Estudio de indices II. Creación de claves primarios  ALTER TABLE paciente ADD CONSTRAINT paciente_pk PRIMARY KEY (cod_paciente); Creación de claves foráneas  ALTER TABLE atencion_medica ADD CONSTRAINT atencion_medica_paciente_fk FOREIGN KEY (cod_paciente) REFERENCES paciente (cod_paciente); Indices para atributos candidatos  Atributo candidato – sentencia SQL contiene atributo en WHERE parte

10 Estudio de indices III. Mejor tiempos  Claves primarios y secundarios Datos pegueños  indice cod_paciente en tabla atencio_medico  indice operacione en tabla paciente  indice fecha_nac en tabla paciente Datos grandes  Todos indices sin turno en tabla madico

11 ABD - Segunda práctica Catálogo de la Base de Datos  Tres vistas para ABD sobre catálogo  Para indices y tablas Ejecución de Transacciones Concurrentes  Estudio detallado de la ejecución de transactiones

12 Catálogo de la Base de Datos I. Catálogo  almacena metadata de la BD estructura de la Base de Datos indices... Vistas  CREATE VISTA nombre AS SELECT...  muchas vista de cátalogo DBA_TABLES DBA_INDEXES...

13 Catálogo de la Base de Datos II. Vista A  Por cada indice: nombre del indice nombre de la tabla a la que indexa si es único o no y por cada atributo  el nombre  la posición  el tipo de datos  la longitud del atributo

14 Catálogo de la Base de Datos III. Vista A CREATE VIEW VISTA_A AS SELECT DISTINCT DBA_INDEXES.INDEX_NAME, DBA_INDEXES.TABLE_NAME, DBA_INDEXES.UNIQUENESS, DBA_IND_COLUMNS.COLUMN_NAME AS ATRIBUTE_NAME, DBA_IND_COLUMNS.COLUMN_POSITION AS ATRIBUTE_POSITION, DBA_TAB_COLUMNS.DATA_TYPE AS ATRIBUTE_TYPE, DBA_IND_COLUMNS.COLUMN_LENGTH AS ATRIBUTE_LENGTH FROM DBA_INDEXES, DBA_IND_COLUMNS, DBA_TAB_COLUMNS WHERE (DBA_INDEXES.INDEX_NAME=DBA_IND_COLUMNS.INDEX_NAME) AND (DBA_IND_COLUMNS.COLUMN_NAME=DBA_TAB_COLUMNS.COLUMN_NAME) AND (DBA_INDEXES.OWNER='ABDDBA') ORDER BY DBA_INDEXES.INDEX_NAME;

15 Catálogo de la Base de Datos IV. Vista B  Por cada indice: nombre del indice nombre de la tabla a la que indexa si está activo o no la longitud total de clave de indice

16 Catálogo de la Base de Datos V. Vista B CREATE VIEW VISTA_B AS SELECT DBA_INDEXES.INDEX_NAME, DBA_INDEXES.TABLE_NAME, STATUS AS ACTIVE, (SELECT SUM(COLUMN_LENGTH)+COUNT(*) FROM DBA_IND_COLUMNS WHERE INDEX_NAME=DBA_INDEXES.INDEX_NAME) AS OVERALL_LENGTH FROM DBA_INDEXES WHERE (DBA_INDEXES.OWNER='ABDDBA') ORDER BY INDEX_NAME;

17 Catálogo de la Base de Datos VI. Vista C  Por cada tabla en la BD: nombre de l tabla cuenta de columnas tamaño de columna la longitud TABLE_NAME COLUMNS COLUMNS_LENGTH NUM_ROWS TOTAL_LENGTH

18 Catálogo de la Base de Datos VII. Vista C CREATE VIEW VISTA_C AS SELECT DBA_TABLES.TABLE_NAME, (SELECT COUNT(DBA_TAB_COLS.COLUMN_NAME) FROM DBA_TAB_COLS WHERE (DBA_TABLES.TABLE_NAME=DBA_TAB_COLS.TABLE_NAME)) AS COLUMNS, (SELECT SUM(DBA_TAB_COLS.DATA_LENGTH) FROM DBA_TAB_COLS WHERE (DBA_TABLES.TABLE_NAME=DBA_TAB_COLS.TABLE_NAME)) AS COLUMNS_LENGTH, DBA_TABLES.NUM_ROWS, (SELECT SUM(DBA_TAB_COLS.DATA_LENGTH)*DBA_TABLES.NUM_ROWS FROM DBA_TAB_COLS WHERE (DBA_TABLES.TABLE_NAME=DBA_TAB_COLS.TABLE_NAME)) AS TOTAL_LENGTH FROM DBA_TABLES WHERE (DBA_TABLES.OWNER='ABDDBA') ORDER BY DBA_TABLES.TABLE_NAME;

19 Catálogo de la Base de Datos VIII. Privilegios para usuario ABDDBA GRANT SELECT ON DBA_INDEXES TO ABDDBA; GRANT SELECT ON DBA_IND_COLUMNS TO ABDDBA; GRANT SELECT ON DBA_TAB_COLUMNS TO ABDDBA; GRANT SELECT ON DBA_TABLES TO ABDDBA; GRANT SELECT ON DBA_TAB_COLS TO ABDDBA; GRANT CREATE VIEW TO ABDDBA;

20 Ejecución de Trans. Concurentes I. Isolation levels en Oracle  READ COMMITED por defecto en Oracle nonrepeatable query  SERIARIZABLE más restrictivo Mode  READ ONLY Solo para lectura

21 Ejecución de Trans. Concurentes II. Transactiones  SET TRANSACTION ISOLATION LEVEL  READ COMMITED  SERIARIZABLE NAME 'nombre'  COMMIT Termina transaction y aplica a la BD  ROLLBACK Termina transaction y deshecho

22 Ejecución de Trans. Concurentes III. ISOLATION LEVEL READ COMMITED  lectura – lectura no hay ninguna problema  lectura-escritura lee solo datos que están commited, nonrepeatable read  esctritura - escritura puede ocurrir un interbloqueo

23 Ejecución de Trans. Concurentes IV. ISOLATION LEVEL SERIARIZABLE  lectura – lectura no hay ninguna problema  lectura-escritura datos en lo mismo estado como en momento de empieza de transaction – repeatable read  esctritura - escritura puede ocurrir un interbloqueo – un error ORA-08177: can't serialize access for this transaction

24 Ejecución de Trans. Concurentes V. INTERBLOQUEO  dos transactiones concurentes T1 y T2  en mismo tiempo misma fila  fila cerrada por T1  T2 no puede hacer cambios COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITED NAME 'T1'; UPDATE CLINICA SET CIUDAD='Sevilla' WHERE COD_CLINICA='1'; SELECT * FROM CLINICA WHERE COD_CLINICA='1' OR COD_CLINICA='2'; UPDATE CLINICA SET CIUDAD='Madrid' WHERE COD_CLINICA='2'; SELECT * FROM CLINICA WHERE COD_CLINICA='1' OR COD_CLINICA='2'; COMMIT; COMMIT; SET TRANSACTION ISOLATION LEVEL READ COMMITED NAME 'T2'; UPDATE CLINICA SET CIUDAD='Praha' WHERE COD_CLINICA='2'; SELECT * FROM CLINICA WHERE COD_CLINICA='1' OR COD_CLINICA='2'; UPDATE CLINICA SET CIUDAD='Brno' WHERE COD_CLINICA='1'; SELECT * FROM CLINICA WHERE COD_CLINICA='1' OR COD_CLINICA='2'; COMMIT;

25 ABD – Artículo I. Diferentes entre SGBD  Varios presentación de datos  Diferentes lenguas  Fecha y tiempo  Triggers and procedures Precio de cambio  costa dinero  costa tiempo

26 ABD – Artículo II. Morpheus  Architectura SGBD independiente 3 principales partes  Core  Metadata model  Database abstraction layer Access contol subsystem  Derechos de ususarios

27 ABD – Artículo III. Resultados de Morpheus  Implementacion en PHP  Pruebas del tiempo  Buenos resultados con muchos datos y usuarios  Posible uso en Web o televisión digital


Descargar ppt "ADMINISTRACÓN DE BASE DE DATOS Jaroslav Reznik Tomas Ochmann."

Presentaciones similares


Anuncios Google