Oracle Database 11gR2 Para Desarrolladores

Oracle es marca registrada de Oracle Corporation y sus filiales. Otros nombres pueden ser marcas comerciales de sus resp

Views 101 Downloads 1 File size 7MB

Report DMCA / Copyright

DOWNLOAD FILE

Recommend stories

Citation preview

Oracle es marca registrada de Oracle Corporation y sus filiales. Otros nombres pueden ser marcas comerciales de sus respectivos propietarios. El material contenido en este documento, ha sido elaborado en base a información disponible de manera abierta en la web, se aclara, que no existe autoría que deba ser adjudica de forma directa o indirecta al presentador de esta exposición, la cuál debe ser utilizada, sólo con fines didácticos.

Ronald Vargas, oracledbacr.blogspot.com

1

Ronald Vargas, oracledbacr.blogspot.com

2

Ronald Vargas Q., Technical Sales Consultant, Netsoft Oracle VAD Costa Rica y Guatemala

Blog: oracledbacr.blogspot.com +53000 visitas – – – – – – – – – – – –

Oracle Database 11gR2 Sales-PreSales Specialist Assessment Oracle Database Security 11gR2 Sales-PreSales Specialist Assessment Oracle Real Application Clusters 11g PreSales Specialist Assessment Oracle GoldenGate Presales Specialist Assessment Consultor DBA ORACLE / INFORMIX+20 años Instructor de Oracle University, Top 10 Latinoamérica 2005 Fundador ORAUGCRC Miembro IOUC, Comunidad Oracle Hispana, OracleMania Representante LAOUC Expositor OTN TOUR DAY 2011 LAD Profesor ULACIT Primer Centroamericano Nominado a Oracle ACE

Ronald Vargas, oracledbacr.blogspot.com

3

Oracle Database 11gR2 para Desarrolladores • 1977 Software Development Laboratories, Proculsora de Oracle, es fundada por Larry Ellison, Bob Miner y Ed Oates. • 1978 Oracle Version 1, escrita en lenguaje de programación Ensamblador, corre en un PDP-11 de RSX, con 128K de memoria. Implementación separada en el código para la base de datos y en el código del usuario. Oracle V1 nunca fue oficialmente liberada.

Ronald Vargas, oracledbacr.blogspot.com

4

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

5

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

6

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

7

Oracle Database 11gR2 para Desarrolladores • • • • • • • •

Escalabilidad Alta Disponibilidad Seguridad Contingencia Rendimiento Respaldos y Recuperación Administración Migración

Ronald Vargas, oracledbacr.blogspot.com

8

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

9

Ronald Vargas, oracledbacr.blogspot.com

10

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

11

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

12

Ronald Vargas, oracledbacr.blogspot.com

13

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

14

Ronald Vargas, oracledbacr.blogspot.com

15

Oracle Database 11gR2 para Desarrolladores Retos que enfrenta el mejoramiento de la seguridad – – – –

El dba no debe porque ser dios Mitigar el riesgo de delito cibernético Eliminar el riesgo de robo de información Maquillar la data en ambientes de desarrollo – Control de manejo de políticas de acceso a los datos – Implementar manejo seguro de datos históricos

Ronald Vargas, oracledbacr.blogspot.com

16

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

17

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

18

Ronald Vargas, oracledbacr.blogspot.com

19

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

20

Ronald Vargas, oracledbacr.blogspot.com

21

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

22

Ronald Vargas, oracledbacr.blogspot.com

23

Oracle Database 11gR2 para Desarrolladores La creciente demanda de TI dentro de la empresa ha establecido una relación crítica entre el éxito de la empresa y la disponibilidad de la infraestructura de TI.

Ronald Vargas, oracledbacr.blogspot.com

24

Oracle Database 11gR2 para Desarrolladores

61% Incremento Informationweek.com encuesta revela, una disminución del 11% en el número de incidentes de soporte. La mayoría dijo que la principal razón, se debió a una infraestructura más estable.

Ronald Vargas, oracledbacr.blogspot.com

25

Oracle Database 11gR2 para Desarrolladores

Prioridades Financieras Reducir costos 24%

58%

Se entiende que la eficiencia se da cuando se menos recursos noutilizan saben a que para lograr un mismo objetivo.

corresponden sus costos

Mejorar eficiencia 20%

Mejor Eficacia 17%

LaEso eficacia hace referencia a nuestra significa que no se puede llevar a cabo capacidad para lograr lo que nos el análisis costo-beneficio o incluso determinar retorno de inversión, lo que hace difícil justificar proponemos. y obtener el apoyo a nuevas inversiones.

Ronald Vargas, oracledbacr.blogspot.com

26

Oracle Database 11gR2 para Desarrolladores La no disponibilidad de una aplicación o dato crítico puede implicar un costo significativo para las empresas en términos de: – Pérdida de productividad e ingresos – Clientes insatisfechos – Mala imagen corporativa

99,9% = 43.8 minutos/mes u 8,76 horas/año ("tres nueves") 99,99% = 4.38 minutos/mes o 52.6 minutos/año ("cuatro nueves") 99,999% = 0.44 minutos/mes o 5.26 minutos/año ("cinco nueves")

Ronald Vargas, oracledbacr.blogspot.com

27

Oracle Database 11gR2 para Desarrolladores Por tanto, una infraestructura de TI altamente disponible es un factor de éxito crítico para las empresas de la economía actual, que se mueve con rapidez y está « siempre activa »

Ronald Vargas, oracledbacr.blogspot.com

28

Oracle Database 11gR2 para Desarrolladores Parte de estas cosas las podemos alcanzar apoyados en:

La ciencia y tecnología Tecnología para: Ahorrar, Confiar y Diferenciar – ACD Las estrategias deben estar basadas en: – Sentido común – Información actual y histórica ( estudios de mercado y experiencia ) – Background de cada uno de nosotros

Ronald Vargas, oracledbacr.blogspot.com

29

Oracle Database 11gR2 para Desarrolladores « Mundo de las empresas desnudas » Todo el mundo lo sabe todo

Ronald Vargas, oracledbacr.blogspot.com

30

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

31

Ronald Vargas, oracledbacr.blogspot.com

32

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

33

Oracle Database 11gR2 para Desarrolladores Oracle Corporation reclama el haber sido: – – – – – – – –

The first commercially available SQL-based database (1979) The first database to support symmetric multiprocessing (SMP) (1983) The first distributed database (1986) The first database product tested to comply with the ANSI SQL standard (1993) The first 64-bit database (1995) The first database to incorporate a native JRE (1998) The first proprietary RDBMS to become available on Linux (1998) The first database to support XML (1999)

Ronald Vargas, oracledbacr.blogspot.com

34

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

35

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

36

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

37

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

38

Oracle Database 11gR2 para Desarrolladores Instance

Memory structures

User process

SGA

Database buffer cache

Server process

Processes

DBWn

CKPT

LGWR

Shared pool

Redo log buffer

SMON

PMON

Library cache Data dictionary cache ARCn

RECO

Others

Database

Storage structures

Data files

Control files

Ronald Vargas, oracledbacr.blogspot.com

Online redo log files 39

Oracle Database 11gR2 para Desarrolladores Server process 1

Server process 2

PGA

Background process

PGA

Data dictionary cache

Shared SQL area Library cache

SGA

Other Shared pool

Redo log buffer Database buffer cache Java pool

PGA

Streams pool

I/O buffer

Free memory

Response queue

Request queue

Large pool

Oracle Database Memory Structures Ronald Vargas, oracledbacr.blogspot.com

40

Oracle Database 11gR2 para Desarrolladores – Is part of the SGA – Holds copies of data blocks that are read from data files – Is shared by all concurrent users

Instance SGA

Database buffer cache

DBWn

CKPT

LGWR

Shared pool

Redo log buffer

SMON

PMON

Ronald Vargas, oracledbacr.blogspot.com

Library cache Data dictionary cache ARCn

RECO

Others

41

Oracle Database 11gR2 para Desarrolladores – Is a circular buffer in the SGA – Holds information about changes made to the database – Contains redo entries that have the information to redo changes made by operations such as DML and DDL Instance SGA

Database buffer cache

DBWn

CKPT

LGWR

Shared pool

Redo log buffer

SMON

PMON

Ronald Vargas, oracledbacr.blogspot.com

Library cache Data dictionary cache ARCn

RECO

Others

42

Oracle Database 11gR2 para Desarrolladores – Is a portion of the SGA – Contains: • Library cache – Shared SQL area

• Data dictionary cache • Control structures Instance SGA

Database buffer cache

DBWn

CKPT

LGWR

Shared SQL area

Shared pool Library cache

Redo log buffer

SMON

Data dictionary cache

PMON

ARCn

RECO

Library cache

Data dictionary cache

Other

Others

Ronald Vargas, oracledbacr.blogspot.com

43

Oracle Database 11gR2 para Desarrolladores – User process • Is started when a database user or a batch process connects to Oracle Database

– Database processes • Server process: Connects to the Oracle instance and is started when a user establishes a session • Background processes: Are started when an Oracle instance is started Instance

Process Architecture

SGA

Database buffer cache

PGA User process

Server process

Shared pool

Redo log buffer

Library cache Data dictionary cache

Background processes DBWn

CKPT

LGWR

Ronald Vargas, oracledbacr.blogspot.com

SMON

PMON

ARCn

RECO

Others 44

Oracle Database 11gR2 para Desarrolladores Database Writer Process (DBWn) • Writes modified (dirty) buffers in the database buffer cache to disk: – Asynchronously while performing other processing – Periodically to advance the checkpoint

DBWn

Database buffer cache

Database writer process Ronald Vargas, oracledbacr.blogspot.com

Data files

45

LogWriter Process (LGWR) – Writes the redo log buffer to a redo log file on disk – Writes: • When a user process commits a transaction • When the redo log buffer is one-third full • Before a DBWn process writes modified buffers to disk

LGWR Redo log buffer

LogWriter process

Ronald Vargas, oracledbacr.blogspot.com

Redo log files

46

Checkpoint Process (CKPT) – Records checkpoint information in • Control file • Each data file header

CKPT

Control file

Checkpoint process

Data files

Ronald Vargas, oracledbacr.blogspot.com

47

System Monitor Process (SMON) – Performs recovery at instance startup – Cleans up unused temporary segments

SMON

Instance

System Monitor process

Temporary segment

Ronald Vargas, oracledbacr.blogspot.com

48

Process Monitor Process (PMON) – Performs process recovery when a user process fails • Cleans up the database buffer cache • Frees resources that are used by the user process

– Monitors sessions for idle session timeout – Dynamically registers database services with listeners

PMON Process Monitor process

User Failed user process Database buffer cache Ronald Vargas, oracledbacr.blogspot.com

49

Archiver Processes (ARCn) – Copy redo log files to a designated storage device after a log switch has occurred – Can collect transaction redo data and transmit that data to standby destinations

ARCn

Archiver process

Copies of redo log files

Ronald Vargas, oracledbacr.blogspot.com

Archive destination

50

Ronald Vargas, oracledbacr.blogspot.com

51

Oracle Database 11gR2 para Desarrolladores

Control files

Parameter file

Password file

Data files

Backup files

Online redo log files

Archived redo log files

Alert log and trace files Ronald Vargas, oracledbacr.blogspot.com

52

Estructuras Lógicas y Físicas – RDBMS Oracle

La unidad mínima de almacenamiento es el objeto conocido con el nombre de tabla – Tabla: es un objeto bidimensional, compuesto de columnas y registros

Ronald Vargas, oracledbacr.blogspot.com

53

Cómo se ejecuta una sentencia en una base de datos Oracle

?

Ronald Vargas, oracledbacr.blogspot.com

54

Oracle Parseo El parseo es un proceso mediante el cuál, el optimizador de consultas del motor de la base de datos Oracle establece: – – – –

Revisión de la sintaxis de la instrucción SQL Obtención de privilegios para ejecutar la sentencia Modo de recuperación de los datos ( explain plan ) Presentación de la salida de ejecución ( fetch )

Ronald Vargas, oracledbacr.blogspot.com

55

Oracle Parseo Explain plan: – Software Parseo – Hardware Parseo

Ronald Vargas, oracledbacr.blogspot.com

56

Oracle Parseo

Ronald Vargas, oracledbacr.blogspot.com

57

Oracle Parseo • Oracle < 7.0 Optimización basada en regla ( RULE ) • Oracle > 7.0 Optimización basada en regla y optimización basada en costo ( RULE / COST ) • Oracle 11g superior Optimización basada en costo, RULE no es soportado.

Ronald Vargas, oracledbacr.blogspot.com

58

El optimizador de la base de datos Oracle y el manejo de índices

Ronald Vargas, oracledbacr.blogspot.com

59

Oracle optimización

Ronald Vargas, oracledbacr.blogspot.com

60

Oracle optimización

Ronald Vargas, oracledbacr.blogspot.com

61

Oracle optimización Cualquier consulta en Oracle Database, que devuelva más

del 5%

los registros de una tabla es FTS por regla

Full Table Scan

Ronald Vargas, oracledbacr.blogspot.com

62

Ronald Vargas, oracledbacr.blogspot.com

63

AWR - Repositorio de Carga de Trabajo, para monitoreo de la base de datos

Oracle

Ronald Vargas, oracledbacr.blogspot.com

64

AWR - Oracle El AWR, repositorio de carga de trabajo de Oracle, es la evolución del reporte STATSPACK a partir de las bases de datos versión Oracle 10g. Fue desarrollado por el equipo de Oracle Technical Support y requiere para ser interpretado, un nivel de experiencia significativo. El AWR trabaja en conjunto con el ADDM (Active Database Diagnostic Monitor) y puede ser empleado desde línea de comando o desde el OEM ( Database Control DBCA ). Ronald Vargas, oracledbacr.blogspot.com

65

AWR - Oracle

Ronald Vargas, oracledbacr.blogspot.com

66

Oracle Auto-Tuning

Ronald Vargas, oracledbacr.blogspot.com

67

Oracle Auto-Tuning Desde Oracle 10g características de afinamiento: • Oracle 10g Grid • Nuevo 10g Enterprise Manager (OEM), interface Web • AWR and ASH incorporado dentro de las opciones OEM Performance Pack and Diagnostic Pack • Automated Session History (ASH • Automatic Database Diagnostic Monitor (ADDM) • Automatic Workload Repository (AWR) • SQLTuning Advisor • SQLAccess Advisor

Ronald Vargas, oracledbacr.blogspot.com

68

Oracle Auto-Tuning Oracle 11g características de afinamiento: • • • •

SQL Performance Analyzer 11g Compression SQL optimization improvements Automatic Memory Tuning El afinamiento

del PGA fue introducido en Oracle 9i. El afinamiento automático del SGA por primera vez en Oracle 10g. In 11g, toda la memoria puede ser automáticamente ajustada, al setearse un único parámetro.

PGA, SGA y procesos de S.O.

• AWR Baselines • Adaptive Metric Baselines Ronald Vargas, oracledbacr.blogspot.com

69

Oracle Database 11gR2 para Desarrolladores Auto-Tuning

Advisory Instrumentation

Ronald Vargas, oracledbacr.blogspot.com

70

Ronald Vargas, oracledbacr.blogspot.com

71

Ronald Vargas, oracledbacr.blogspot.com

72

Ronald Vargas, oracledbacr.blogspot.com

73

Oracle Database 11gR2 para Desarrolladores Sentencia básica: SELECT * FROM scott.employees;

95% Sentencias son a dos o más tablas Cuando se hace una consulta a más de una tabla es requerido, que exista alguna manera de relacionar los registros de cada una de las tablas involucradas en la consulta. A esta relación se le conoce con el nombre de MODELO RELACIONAL Ronald Vargas, oracledbacr.blogspot.com

74

Oracle Database 11gR2 para Desarrolladores

DEPARTMENTS

JOB_HISTORY EMPLOYEE_ID (PK,FK) START_DATE (PK) END_DATE JOB_ID (FK) DEPARTMENT_ID (FK)

EMPLOYEES EMPLOYEE_ID (PK) FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID (FK) SALARY COMMISION_PCT MANAGER_ID (FK) DEPARTMENT_ID (FK)

DEPARTMENT_ID (PK) DEPARTMENT_NAME MANAGER_ID LOCATION_ID (FK)

LOCATIONS LOCATION_ID (PK) STREET_ADDRESS POSTAL_CODE CITY STATE_PROVINCE COUNTRY_ID (FK)

COUNTRIES JOBS JOB_ID (PK) JOB_TITLE MIN_SALARY MAX_SALARY

COUNTRY_ID (PK) COUNTRY_NAME REGION_ID (FK)

REGIONS REGION_ID (PK) REGION_NAME

Ronald Vargas, oracledbacr.blogspot.com

75

Oracle Database 11gR2 para Desarrolladores Tabla_1 ==== 1000000 Tabla_2 ==== 5000 En la cláusula FROM, en que orden van las tablas? a) FROM Tabla_1, Tabla_2 b) FROM Tabla_2, Tabla_1

Ronald Vargas, oracledbacr.blogspot.com

76

Oracle Database 11gR2 para Desarrolladores La respuesta correcta es: B) FROM Tabla_2, Tabla_1

Oracle “Parsea” las tablas de derecha a izquierda. Las demás tablas lo hacen de izquierda a derecha ( orden dispuesto en la cláusula FROM )

Ronald Vargas, oracledbacr.blogspot.com

77

Oracle Database 11gR2 para Desarrolladores Tabla_1 ==== 10000000 Tabla_2 ==== 5000 Tabla_3 ==== 2500000

Tabla 1 FK ------ Tabla_3 Tabla_2 FK ----- Tabla_3 Tabla_1 Tabla_2

En la cláusula FROM, en que orden van las tablas? a) FROM Tabla_1, Tabla_2, Tabla_3 b) FROM Tabla_2, Tabla_1, Tabla_3 c) FROM Tabla_3, Tabla_2, Tabla_1 d) FROM Tabla_3, Tabla_1, Tabla_2 Ronald Vargas, oracledbacr.blogspot.com

78

Oracle Database 11gR2 para Desarrolladores La respuesta correcta es: A) y B)

La tabla PIVOTE, es la tabla que es intercepción entre las tablas. La tabla que tiene elementos de todas las tablas involucradas para poder hacer la relación.

Ronald Vargas, oracledbacr.blogspot.com

79

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

80

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

81

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

82

Oracle Database 11gR2 para Desarrolladores Rendimiento de una base de datos Oracle, esta dada por la ecuación:

CPU + MEMORIA + I/0 Recuperación de datos en memoria es 1/10000 mejor

que hacerlo a disco

Ronald Vargas, oracledbacr.blogspot.com

83

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

84

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

85

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

86

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

87

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

88

Oracle Database 11gR2 para Desarrolladores Microprocesadores CISC: objetivo alcanzar la velocidad a través de un conjunto rico de instrucciones, que necesitan menos pasos para completar una tarea. Microprocesadores RISC: requieren más instrucciones para completar una determinada tarea, pero se centran en la reducción del número de ciclos que tarda en completar la misma.

Tiempo muerto entre instrucciones

RISC

CISC

10%

>50%

Costo Servidor sin NAS/SAN RISC

CISC

> $20.000,00

$7.000,00

Sistemas Operativos

RISC

CISC

UNIX ( Solaris, AIX,HP/UX)

WINDOWS/LINUX

Ronald Vargas, oracledbacr.blogspot.com

89

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

90

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

91

Oracle Database 11gR2 para Desarrolladores Express Edition

Standard Edition One

Standard Edition

Enterprise Edition

Non-Oracle developers, open source developers, new DBAs, students, non-Oracle ISVs, hw vendors

Low-price option for SMB/LOB Deployments, ISVs who need a supported Oracle database

Full-featured database for SMBs with optional clustering support (up to 4 CPUs)

Large-scale Enterprises that demand high-performance BI (ETL, DW, OLTP), security, scalability, availability, etc.

FREE

$180/user (min. 5) or $5,800 per Processor (CPU)**

$350/user (min.10) or $17,500 per Processor (CPU)**

$950/user (min. 25) or $47,500 per Core** (multipliers apply)

< 20 users

< 400 users

400-1000 users

> 1000 users

Uses 1 CPU < 4GB DB size 1 instance per CPU Use up to 1GB RAM

2 CPU

Single or clustered up to 4 CPUs

4+ CPUs

Free OTN Community Forum

< 500GB DB size*

> 500 GB DB size* < 500 GB DB size*

Fee-based Support available

Fee-based Support available

Ronald Vargas, oracledbacr.blogspot.com

Fee-based Support available

92

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

93

Oracle Database 11gR2 para Desarrolladores Tipos de bases de datos en Oracle • OLTP - transaccional • OLAP – procesamiento por lotes (DW ) • Multipropósito – transaccional y reportería

Ronald Vargas, oracledbacr.blogspot.com

94

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

95

Oracle Database 11gR2 para Desarrolladores Rendimiento RDBMS Fórmula= CPU+MEMORIA+I/O Tipo Procesador ( INTEL, AMD, RISC ) + Sistema Operativo ( Windows, Linux, Unix )

Memoria: 1. Caché sistema operativo ( 40%) 2. Instancia de la base de datos ( - 50% memoria física ) 3. Memoria de procesos background ( 90MB a 145MB ) 4. Memoria usuarios conectados a la base de datos ( Cliente/Servidor, Web – 3 capas, múlti-hilo ( JAVA ) 5. Procesos de respaldo y monitoreo 6. Instancia ASM ( 280MB a 350MB ) APLICATIVO

CONSUMO

Java

12-15MB

Página de Oracle JSP

32 MB

Serverlet

24 MB

Forms & Reports Ronald Vargas, oracledbacr.blogspot.com

15 a 20 MB 96

Oracle Database 11gR2 para Desarrolladores Ejemplo1: Servidor para BD Oracle 11gR2, con 50 usuarios cliente/servidor Developer. S.O.: LINUX con 4GB RAM FISICO:

Caché: 1.6GB

Instancia: 800MB

Background: 108MB

800MB+108MB+1.1GB = 2GB

Usuarios:50x 22MB=1.1GB

Libres= 400MB

Ronald Vargas, oracledbacr.blogspot.com

97

Oracle Database 11gR2 para Desarrolladores Insuficiente memoria

Intercambio de contexto

Swaping

Ronald Vargas, oracledbacr.blogspot.com

Bajo rendimiento

98

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

99

Oracle Database 11gR2 para Desarrolladores Redundant Array of Independent Disks

Ronald Vargas, oracledbacr.blogspot.com

100

Ronald Vargas, oracledbacr.blogspot.com

101

Oracle Database 11gR2 para Desarrolladores WITH dept_costs AS ( SELECT d.department_name, SUM(e.salary) AS dept_total FROM employees e JOIN departments d ON e.department_id = d.department_id GROUP BY d.department_name), avg_cost AS ( SELECT SUM(dept_total)/COUNT(*) AS dept_avg FROM dept_costs) SELECT * FROM dept_costs WHERE dept_total > (SELECT dept_avg FROM avg_cost) ORDER BY department_name;

Ronald Vargas, oracledbacr.blogspot.com

102

Declaración para Múltiples INSERT

Target_a

Sourcetab

Subquery

INSERT ALL INTO target_a VALUES(…,…,…) INTO target_b VALUES(…,…,…) INTO target_c VALUES(…,…,…) SELECT … FROM sourcetab WHERE …;

Target_b

Target_c Ronald Vargas, oracledbacr.blogspot.com

103

Tipos deINSERT • Los diferentes tipos de INSERT múltitablas son: – – – –

Incondicional INSERT Condicional INSERT ALL Pivoteado INSERT Condicional INSERT FIRST

Ronald Vargas, oracledbacr.blogspot.com

104

Multitable INSERT Statements • Syntax for multitable INSERT: INSERT [conditional_insert_clause] [insert_into_clause values_clause] (subquery)



conditional_insert_clause:

[ALL] [FIRST] [WHEN condition THEN] [insert_into_clause values_clause] [ELSE] [insert_into_clause values_clause]

Ronald Vargas, oracledbacr.blogspot.com

105

Incondicional INSERT ALL – Select the EMPLOYEE_ID, HIRE_DATE, SALARY, and MANAGER_ID values from the EMPLOYEES table for those employees whose EMPLOYEE_ID is greater than 200. – Insert these values into the SAL_HISTORY and MGR_HISTORY tables by using a multitable INSERT.

INSERT ALL INTO sal_history VALUES(EMPID,HIREDATE,SAL) INTO mgr_history VALUES(EMPID,MGR,SAL) SELECT employee_id EMPID, hire_date HIREDATE, salary SAL, manager_id MGR FROM employees WHERE employee_id > 200;

Ronald Vargas, oracledbacr.blogspot.com

106

Conditional INSERT ALL: Example Hired before 1995 EMP_HISTORY

Employees With sales commission

EMP_SALES

Ronald Vargas, oracledbacr.blogspot.com

107

Conditional INSERT ALL INSERT ALL WHEN HIREDATE < '01-JAN-95' THEN INTO emp_history VALUES(EMPID,HIREDATE,SAL) WHEN COMM IS NOT NULL THEN INTO emp_sales VALUES(EMPID,COMM,SAL) SELECT employee_id EMPID, hire_date HIREDATE,

salary SAL, commission_pct COMM FROM employees

Ronald Vargas, oracledbacr.blogspot.com

108

Conditional INSERT FIRST: Example Scenario: If an employee salary is 2,000, the record is inserted into the SAL_LOW table only.

Salary < 5,000 SAL_LOW

5000 select count(*) from movto_h; COUNT(*) ---------6445961

Ronald Vargas, oracledbacr.blogspot.com

119

Indices virtuales SQL> create index v_movto_h_nofisico on movto_h(no_fisico) nosegment; Index created. SQL> explain plan for 2 select count(distinct no_fisico) from movto_h; Explained.

Ronald Vargas, oracledbacr.blogspot.com

120

Indices virtuales SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT -----------------------------------------------------------------------------------Plan hash value: 891170817 -----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 21381 (3)| 00:04:17 | | 1 | SORT GROUP BY | | 1 | 7 | | | | 2 | TABLE ACCESS FULL| movto_h | 6445K| 43M| 21381 (3)| 00:04:17 | -----------------------------------------------------------------------------9 rows selected.

Ronald Vargas, oracledbacr.blogspot.com

121

Indices virtuales SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000; Explained. SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------Plan hash value: 891170817 -----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 21547 (3)| 00:04:19 | | 1 | SORT GROUP BY | | 1 | 7 | | | |* 2 | TABLE ACCESS FULL| movto_h | 322K| 2203K| 21547 (3)| 00:04:19 | ------------------------------------------------------------------------------

Predicate Information (identified by operation id): PLAN_TABLE_OUTPUT -----------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO") create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico)) nosegment;

Index created. SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000; Explained.

Ronald Vargas, oracledbacr.blogspot.com

123

Indices virtuales SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------Plan hash value: 891170817 -----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 21547 (3)| 00:04:19 | | 1 | SORT GROUP BY | | 1 | 7 | | | |* 2 | TABLE ACCESS FULL| movto_h | 322K| 2203K| 21547 (3)| 00:04:19 | -----------------------------------------------------------------------------Predicate Information (identified by operation id): PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO") SQL> alter session set "_use_nosegment_indexes"=TRUE; Session altered. SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000; Explained.

Ronald Vargas, oracledbacr.blogspot.com

125

Indices virtuales SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------Plan hash value: 2481667387 -------------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -------------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 7 (0)| 00:00:01 | | 1 | SORT GROUP BY | | 1 | 7 | | | |* 2 | INDEX FAST FULL SCAN| V_movto_h_NOFISICO | 322K| 2203K| 7 (0)| 00:00:01 | -------------------------------------------------------------------------------------------Predicate Information (identified by operation id): PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO") SELECT index_owner, index_name 2 FROM dba_ind_columns 3 WHERE index_name NOT LIKE 'BIN$%' 4 MINUS 5 SELECT owner, index_name 6 FROM dba_indexes; INDEX_OWNER -----------------------------PRUEBAS21 PRUEBAS21 PRUEBAS21

INDEX_NAME ----------------------------V_movto_h_NOFISICO V_movto_h_NOFISICO2 V_ARINMN

Ronald Vargas, oracledbacr.blogspot.com

127

Indices virtuales SQL> drop index v_movto_h_nofisico; Index dropped. SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000; Explained.

Ronald Vargas, oracledbacr.blogspot.com

128

Indices virtuales SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ------------------------------------------------------------------------------------Plan hash value: 11771441 -------------------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| -------------------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 10 (0)| | 1 | SORT GROUP BY | | 1 | 7 | | | 2 | TABLE ACCESS BY INDEX ROWID| movto_h | 322K| 2203K| 10 (0)| |* 3 | INDEX RANGE SCAN | V_movto_h_NOFISICO2 | 58014 | | 2 (0)|

Time

|

00:00:01 | | 00:00:01 | 00:00:01 |

-------------------------------------------------------------------------------------PLAN_TABLE_OUTPUT -------------------------------------------------------------------------------------Predicate Information (identified by operation id): --------------------------------------------------3 - access(TO_NUMBER("NO_FISICO") select count(*) from movto_h; COUNT(*) ---------6445961 drop index v_movto_h_nofisico2; create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico)) nosegment; drop index v_movto_h_nofisico2; create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico)); SQL> drop index v_movto_h_nofisico2; Index dropped.

Ronald Vargas, oracledbacr.blogspot.com

130

Indices virtuales SQL> SQL> set timing on; SQL> SQL> create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico)) nosegment; Index created. Elapsed: 00:00:00.03

SQL> drop index v_movto_h_nofisico2; Index dropped. Elapsed: 00:00:00.02

Ronald Vargas, oracledbacr.blogspot.com

131

Indices virtuales SQL> create index v_movto_h_nofisico2 on movto_h(to_number(no_fisico));

Index created. Elapsed: 00:01:09.56 SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000; Explained. Elapsed: 00:00:00.01

Ronald Vargas, oracledbacr.blogspot.com

132

Indices virtuales SQL> select * from table(dbms_xplan.display); PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------Plan hash value: 891170817 -----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 21547 (3)| 00:04:19 | | 1 | SORT GROUP BY | | 1 | 7 | | | |* 2 | TABLE ACCESS FULL| movto_h | 322K| 2203K| 21547 (3)| 00:04:19 | -----------------------------------------------------------------------------Predicate Information (identified by operation id): PLAN_TABLE_OUTPUT

-----------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO") alter session set "_use_nosegment_indexes"=FALSE; Session altered. Elapsed: 00:00:00.01 SQL> explain plan for 2 select count(distinct no_fisico) from movto_h where no_fisico < 10000; Explained. Elapsed: 00:00:00.01

SQL> select * from table(dbms_xplan.display);

Ronald Vargas, oracledbacr.blogspot.com

134

Indices virtuales PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------Plan hash value: 891170817 -----------------------------------------------------------------------------| Id | Operation | Name | Rows | Bytes | Cost (%CPU)| Time | -----------------------------------------------------------------------------| 0 | SELECT STATEMENT | | 1 | 7 | 21547 (3)| 00:04:19 | | 1 | SORT GROUP BY | | 1 | 7 | | | |* 2 | TABLE ACCESS FULL| movto_h | 322K| 2203K| 21547 (3)| 00:04:19 | -----------------------------------------------------------------------------Predicate Information (identified by operation id): PLAN_TABLE_OUTPUT ----------------------------------------------------------------------------------2 - filter(TO_NUMBER("NO_FISICO") show user USER is "DEMO_LAB" SQL> desc employees Name ----------------------------------------EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID SQL> SQL>

Null? Type -------- ---------------------------NUMBER(6) VARCHAR2(20) NOT NULL VARCHAR2(25) NOT NULL VARCHAR2(25) VARCHAR2(20) NOT NULL DATE NOT NULL VARCHAR2(10) NUMBER(8,2) NUMBER(2,2) NUMBER(6) NUMBER(4)

Ronald Vargas, oracledbacr.blogspot.com

140

Columnas Virtuales 1 insert into employees(employee_id, first_name, last_name, email, hire_date, job_id) 2* values (&empleado_id, '&nombre', '&apellido', '&email', to_date('&nacimiento','dd-mm-yyyy'), &id_empleado) SQL> / Enter value for empleado_id: 1 Enter value for nombre: Ronald Enter value for apellido: Vargas Enter value for email: [email protected] Enter value for nacimiento: 03-09-1968 Enter value for id_empleado: 10 old 2: values (&empleado_id, '&nombre', '&apellido', '&email', to_date('&nacimiento','dd-mm-yyyy'), &id_empleado) new 2: values (1, 'Ronald', 'Vargas', '[email protected]', to_date('03-09-1968','dd-mm-yyyy'), 10) 1 row created. SQL> commit; Ronald Vargas, oracledbacr.blogspot.com

141

Columnas Virtuales SQL> select * from employees; EMPLOYEE_ID FIRST_NAME LAST_NAME ----------- -------------------- ------------------------EMAIL PHONE_NUMBER HIRE_DATE JOB_ID ------------------------- -------------------- --------- ---------- ---------COMMISSION_PCT MANAGER_ID DEPARTMENT_ID -------------- ---------- ------------1 Ronald Vargas [email protected] 03-SEP-68 10

Ronald Vargas, oracledbacr.blogspot.com

SALARY

142

Columnas Virtuales SQL> update employees set salary=200000; 1 row updated. SQL> commit; Commit complete. SQL> select * from employees;

EMPLOYEE_ID FIRST_NAME LAST_NAME ----------- -------------------- ------------------------EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY ------------------------- -------------------- --------- ---------- ---------COMMISSION_PCT MANAGER_ID DEPARTMENT_ID -------------- ---------- ------------1 Ronald Vargas [email protected] 03-SEP-68 10 200000 Ronald Vargas, oracledbacr.blogspot.com

143

Columnas Virtuales SQL> alter table employees add IMPUESTO_RENTA as (nvl(salary,0)*0.10); Table altered. SQL> desc employees Name ----------------------------------------EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID IMPUESTO_RENTA

Null? Type -------- ---------------------------NUMBER(6) VARCHAR2(20) NOT NULL VARCHAR2(25) NOT NULL VARCHAR2(25) VARCHAR2(20) NOT NULL DATE NOT NULL VARCHAR2(10) NUMBER(8,2) NUMBER(2,2) NUMBER(6) NUMBER(4) NUMBER

Ronald Vargas, oracledbacr.blogspot.com

144

Columnas Virtuales SQL> set linesize 200 SQL> select employee_id, first_name, last_name, salary, impuesto_renta from employees; EMPLOYEE_ID FIRST_NAME LAST_NAME SALARY IMPUESTO_RENTA ----------- -------------------- ------------------------- ---------- -------------1 Ronald Vargas 200000 20000

SQL> update employees set salary=400000 where employee_id=1; 1 row updated. SQL> commit; Commit complete.

Ronald Vargas, oracledbacr.blogspot.com

145

Columnas Virtuales SQL> select employee_id, first_name, last_name, salary, impuesto_renta from employees; EMPLOYEE_ID FIRST_NAME LAST_NAME SALARY IMPUESTO_RENTA ----------- -------------------- ------------------------- ---------- -------------1 Ronald Vargas 400000 40000 SQL>

Ronald Vargas, oracledbacr.blogspot.com

146

Columnas Virtuales SQL> alter table employees add email_sugerido as (substr(first_name,1,1)||'.'||last_name||'@'||'laboratorio.com'); Table altered. SQL> / FIRST_NAME LAST_NAME SALARY IMPUESTO_RENTA EMAIL_SUGERIDO -------------------- ------------------------- ---------- -------------- ----------------------------Ronald Vargas 400000 40000 [email protected]

SQL> update employees set first_name='Manuel' where impuesto_renta=40000; 1 row updated. SQL> commit; Commit complete.

Ronald Vargas, oracledbacr.blogspot.com

147

Columnas Virtuales SQL> select first_name, last_name, salary, impuesto_renta, email_sugerido from employees; FIRST_NAME LAST_NAME SALARY IMPUESTO_RENTA EMAIL_SUGERIDO -------------------- ------------------------- ---------- -------------- -------------------------Manuel Vargas 400000 40000 [email protected]

SQL> desc employees Name ----------------------------------------EMPLOYEE_ID FIRST_NAME LAST_NAME EMAIL PHONE_NUMBER HIRE_DATE JOB_ID SALARY COMMISSION_PCT MANAGER_ID DEPARTMENT_ID IMPUESTO_RENTA EMAIL_SUGERIDO

Null? Type -------- ---------------------------NUMBER(6) VARCHAR2(20) NOT NULL VARCHAR2(25) NOT NULL VARCHAR2(25) VARCHAR2(20) NOT NULL DATE NOT NULL VARCHAR2(10) NUMBER(8,2) NUMBER(2,2) NUMBER(6) NUMBER(4) NUMBER VARCHAR2(41)

Ronald Vargas, oracledbacr.blogspot.com

148

Oracle Database 11gR2 para Desarrolladores

Nuevas características de la versión

Oracle 11gR2 ( Top 5 )

Ronald Vargas, oracledbacr.blogspot.com

149

Nuevas características de la versión Oracle 11gR2

Top #5 Nuevo Oracle Enterprise Manager 11g

Ronald Vargas, oracledbacr.blogspot.com

150

Nuevo OEM 11g Oracle Enterprise Manager (OEM) ha introducido un buen número de características de administración con un nuevo interfaz GUI OEM. Interfaz OEM para aplicaciones de terceros EN 11g, OEM interfaces para Siebel y PeopleSoft Corp. – “en una única plataforma. " OEM desinstalar instalaciones exitosas o fallidas de Oracle. OEM cuenta con una interfaces para conectarse directamente con My Oracle Support. Una vez que el diagnóstico automático (ADR) ha detectado y reportado un problema crítico, el DBA puede interrogar al ADR y generar un informe de la fuente del problema, y en algunos casos, incluso poner en práctica las reparaciones.

Ronald Vargas, oracledbacr.blogspot.com

151

Nuevas características de la versión Oracle 11gR2

Top #4 In-Memory Parallel Execution

Ronald Vargas, oracledbacr.blogspot.com

152

In-Memory Parallel Execution Como su nombre indica, In-memory parallel execution, se basa en la ejecución en paralelo en la base de datos, de un proceso de exploración o recuperación de gran cantidad de datos o pedazos de piezas de una tabla, dividiendo la tarea de exploración, en varios procesos para cada una las piezas de una tabla.

Ronald Vargas, oracledbacr.blogspot.com

153

Nuevas características de la versión Oracle 11gR2

Top #3 Oracle Result Cache

Ronald Vargas, oracledbacr.blogspot.com

154

Oracle Result Cache Result Cache permite el almacenamiento en caché de consultas SQL y código PL/SQL, así como los resultados de funciones, en un área específica de memoria. Oracle ha mejorado el soporte de almacenamiento en caché para técnicas de programación comunes; por ejemplo, tablas temporales de almacenamiento en caché, sub-consultas escalares y matrices asociativas. En 11g, Oracle ha extendido su caché de resultados a la arquitectura del servidor y cliente. Las tres nuevas áreas de retención son: 1. query result cache; 2. PL/SQL function result cache 3. client OCI result cache.

Ronald Vargas, oracledbacr.blogspot.com

155

Nuevas características de la versión Oracle 11gR2

Top #2 Flashback Data Archive

Ronald Vargas, oracledbacr.blogspot.com

156

Flashback para una rápida recuperación de un Error Humano

Flashback Query

Flashback Tables

Flashback Database

Ronald Vargas, oracledbacr.blogspot.com

Flashback Data Archive y Transaction

157

Flashback Data Archive • Forma práctica y fácil de agregar “dimensión tiempo” a sus datos

Select * from orders AS OF ‘Midnight 31-Dec-2010’

• Para seguimiento cambios, ILM, auditoria, compliance, …

• Consulte datos “AS OF” cualquier momento del pasado • Almacenamiento y Recuperación eficiente de datos undo

Archive Tables

ORDERS

User Tablespaces

Ronald Vargas, oracledbacr.blogspot.com

Flashback Data Archive

Total Recall

158

Nuevas características de la versión Oracle 11gR2

Top #1 Real Application Testing

Ronald Vargas, oracledbacr.blogspot.com

159

Real Application Testing Cumple con las expectativas de niveles de servicio de usuarios

Reducción del tiempo, los riesgos, y el costo de los cambios con Real Application Testing

Replay

Capture

Workload

Ronald Vargas, oracledbacr.blogspot.com

160

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

161

Oracle Database 11gR2 para Desarrolladores Licenciamiento de Productos Oracle – Productos con la palabra “Standard”, por procesador (socket físico ) – Productos con la palabra “Enterprise” ó sin la palabra “Standard” por core – Productos Standard y Enterprise con NUP - Usuarios nombrados- con base a los mínimos

Licencias requeridas para Productos Enterprise ( Procesadores * cores ) / Factor Conversión Ronald Vargas, oracledbacr.blogspot.com

162

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

163

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

164

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

165

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

166

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

167

Ronald Vargas, oracledbacr.blogspot.com

168

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

169

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

170

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

171

Oracle Database 11gR2 para Desarrolladores Wireless / Mobile Portal

DCPDS

3rd Party Oracle_DCPDS.JPG

Batch Processing

Data Aggregation/Synch BAM

Mainframe

Database

Warehouse

Ambientes Heterogéneos

Oracle Database 11gR2 para Desarrolladores Flexible Architecture

Application Stove Piping

PROCESS receive SCOPE

getSSN getRati ng

FLOW

/ =+| -

% =* |/

/ =+| -

% =+ |-

SOA

invoke

invoke receive

receive

select

review end

Dos conceptos básicos: Services: También conocidos como componentes, funciones de negocio, o “web services” Ejemplos: Crear un pedido Borrar una cuenta Orchestration: Combinación de los servicios dentro de los procesos de negocio Ventajas: Build and integrate quickly – Sin desarrollo o creación de código de software Fácil manipulación de errores y presentación

IT Solution: Service Oriented Architecture Construyendo aplicaciones efectivamente

Oracle Database 11gR2 para Desarrolladores Fusion Effect

Richer Experience

More Adaptable

More Interoperable

ERP/ Legacy Apps

Portal

Web Application PKI Dashboards

Process Flow Logic

Security Reliability Logging Failover Dynamic Routing

Custom Apps & Services

WS API MONITORING

USER INTERFACE

Web services PROCESS ORCHESTRATION

SERVICE BUS

BUSINESS SERVICES

BAM

PORTAL JSR-168

BPEL

WS-Security

XML/XML Schema

JMX

Struts/JSF

XSLT/XQuery

WS-Policy, SAML

WSDL/WSIF

Web Services Mgmt

SOAP

JCA

JMS

SOA Today Leverages Open Standards Rooted from XML

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

175

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

176

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

177

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

178

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

179

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

180

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

181

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

182

Quiénes son: ? Izquierda a derecha: Ed Oates, Bruce Scott, Bob Miner y Larry Ellison celebrando el 1er Aniversario de la compañía.

Bruce Scott -el del queque- fué el empleado #4 de la compañía y fue co-autor y co-arquitecto de las versiones, Oracle V1, V2 y V3. El esquema SCOTT (tablas EMP y DEPT), con el password TIGER, fueron creadas por él.

Ronald Vargas, oracledbacr.blogspot.com

Edward Oates, dejó la compañía en 1996, actualmente forma parte del cuerpo de directores del Zoológico de San Francisco. Bob Miner, fue diagnósticado con cáncer en 1992 y murió en noviembre de 1994. 183

Oracle Database 11gR2 para Desarrolladores

Ronald Vargas, oracledbacr.blogspot.com

184