Descargar la presentación
La descarga está en progreso. Por favor, espere
Publicada porCiriaco Magdaleno Modificado hace 10 años
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
Presentaciones similares
© 2025 SlidePlayer.es Inc.
All rights reserved.