The history of a ~40 years old database
by Georgi D. Sotirov 2017-05-26
 Before Oracle
 Version 1 (never released)
 Version 2 (first commercial RDBMS)
 Version 3 (portability)
 Version 4 (concurrency)
 Version 5 (data distribution)
 Version 5.1
 Version 6 (scalability)
 Versions 6.1 and 6.2
 Version 7.0 (stored program units)
 Version 7.1
 Version 7.2
 Version 7.3
 Version 8 (objects & partitioning)
 Version 8i (Internet computing)
 Version 9i (clustering)
 Version 10g (grid computing)
 Version 11g R1 (growing the grid)
 Version 11g R2 (consolidate & compress)
 Version 12c (plugging into the cloud)
 Oracle for developers today
 Sources
 He dropped from colleague twice to finally become a programmer. Worked as
such first part time. In Ampex (where his boss was Bob Miner and where he
met Ed Oates) he worked on CIA project code named “ORACL”), then moved to
Precision Instruments (where he met with Bruce Scott);
 In June 1977 Larry co-founded Software Development Laboratories (SDL) with
Bob Miner and Ed Oates to implement SDR Forms consulting project (estimated
for 3 people and 2 years). He invested $1200 of his own money (from the total
investment of $2000);
 He got inspired by Edgar F. Codd’s paper on relational database systems called
“A Relational Model of Data for Large Shared Data Banks” and saw the
commercial potential, so he decided to start such a product;
 Larry learns about IBM Sequel, so SDL’s first attempt was to make IBM
System/R compatible product, but IBM kept the error codes for their DBMS a
secret;
 In June 1979 SDL was renamed to Relational Software Inc. (RSI);
 In 1982 RSI was renamed Oracle Systems Corporation after it’s flagship
product the Oracle database and later become just Oracle Corporation.
Edward “Ed” Oates
Founder
b. 1946
Bruce Scott
employee #4
b. ????
Robert “Bob” Miner
Founder
1941-1994
Lawrence “Larry” Ellison
Founder
b. 1944
No. Name Net worth (USD) Age Nat. Source(s) of wealth
1 Bill Gates $86.0 billion 61 Microsoft
2 Warren Buffett $75.6 billion 86 Berkshire Hathaway
3 Jeff Bezos $72.8 billion 53 Amazon.com
4 Amancio Ortega $71.3 billion 80 Inditex, Zara
5 Mark Zuckerberg $56.0 billion 32 Facebook
6 Carlos Slim $54.5 billion 77 América Móvil, Grupo Carso
7 Larry Ellison $52.2 billion 72 Oracle Corporation
8 Charles Koch $48.3 billion 81 Koch Industries
8 David Koch $48.3 billion 76 Koch Industries
10 Michael Bloomberg $47.5 billion 75 Bloomberg L.P.
 Written in assembly and runs on PDP-11 under RSX, in 128K of memory
 Had separation between database and user processes code
 Completed somewhere in 1978, but never “officially” released
 Probably released to CIA
 Considered the first official version, because Oracle’s cofounders
“knew no one would want to buy version 1”
 Developed also on PDP-11’s assembler language MACRO-11, so still
not portable
 The first commercial SQL database
 Featured basic SQL functionality - joins, subqueries and some
unique extensions at the time such as outer joins and hierarchical
queries (i.e. CONNECT BY)
 Simple server without support for transactions. Reliability was left
to the “future”
 First customers were USA Air Force and Central Intelligence Agency
(CIA) Advanced Technology Division. Bruce Scott (employee #4)
said in an interview “No idea of what they used it for”
 First 32-bit RDBMS
 Support for transactions (COMMIT and ROLLBACK)
 Non-blocking reads (data concurrency), but still no read
consistency
 Featured UFI (User Friendly Interface) that later become
SQL*Plus
 Featured IAF (Interactive Application Facility) that later
become Oracle*Forms
 SQL used for data dictionary (according to Bruce Scott)
 Rewritten in back then rather new C language for even more portability (i.e. each system with a C compiler
potentially could be used to build the database, so it could run in mainframes, minicomputers, and PCs)
 More reliable and more portable (Apple and IBM PC
version that ran on MS-DOS in less than 640k)
 Offers read consistency for faster database
 Introduces export/import utilities
 Introduces report writer for creating reports based on
query
 First client/server database
 Distributed & clustered:
 SQL*Net v1 for network connections
 SQL*Connect for heterogeneous database environments (i.e. connections to different
Oracle versions and non-Oracle databases)
 Portability:
 Able to go beyond 640k limit on PC
 Macintosh support
 Auditing support
 IOR (Initiate Oracle) utility for starting and stopping databases
 Distributed queries for access data in remote databases
(through DB links)
 SQL*Plus for data access and reporting
 SQL*Forms for simple application deployment
 Server rewritten
 Row level locking (instead of entire table locks)
 Online (hot) backup/recovery (no need to shutdown the
database to back it up)
 SQL*DBA (for start, stop and manage databases)
 On-Line Transaction Processing (OLTP) performance
enhancements
 Introduction of PL/SQL language
 B*Tree indexes implemented
 Rollback segments introduced
 Tablespaces concept introduced
 There was never an Oracle 6.1 production release. However, a 6.1 version was made
available to selected beta customers running on clustered hardware. Apparently the
database was so busy checking block status's between the machines that it killed the
systems it ran on
 Parallel server (to provide scalability, high availability and transparency to power
Online Transaction Processing or OLTP)
 Referential integrity constraints (primary & foreign keys, check constraints and
default values)
 Stored procedures, functions, packages and database triggers
 View compilation
 User defined (UDF) SQL functions
 Roles (for security)
 Cost Based Optimizer (CBO)
 SQL*Net v2 (incompatible with v1)
 Advanced Data replication – Snapshots
 Automatic 2 Phase commit (2PC) for XA transactions
 VARCHAR2 up to 2000 bytes, CHAR up to 255 bytes
 First ANSI/ISO SQL92 (entry level)
 Dynamic SQL (through DMBS_SQL system package)
 Parallel Query Options - query, index creation, data loading (Enterprise only!)
 Server manager for starting/stopping databases
 Read only tablespaces
 Resizable, autoextend data files
 Subquery in FROM clause (Inline view)
 PL/SQL Wrapper utility (for converting PL/SQL code to portable object code)
 PL/SQL cursor variables
 Parallel Create Table As (CREATE TABLE AS)
 Job queues (through DBMS_JOB)
 DBMS_APPLICATION_INFO package
 Partitioned Views
 Bitmapped indexes
 Standby database (replica of main database for failover)
 Updatable Join Views (with some restrictions)
 Index rebuilds
 Spatial Data Option - SDO (for storing and retrieving geographical or location information)
 Trigger compilation & debug
 Hash joins, antijoins
 Dependencies (between PL/SQL objects)
 Histograms
 SQL Trace
 Object types (CREATE TYPE & CREATE TYPE BODY)
 Support for SQL3 (SQL-99)
 Support for calling external procedures
 Range partitioning for tables and indexes
 VARCHAR2 up to 4000 bytes, CHAR up to 2000 bytes. Up to 1000 columns per table
 Parallel DML statements (UPDATE and DELETE)
 Index Organized tables (IOTs)
 Deferred integrity constraint checking (until end of transaction)
 Any VIEW updateable (INSTEAD OF triggers on views)
 PL/SQL debugging through DBMS_DEBUG
 EXECUTE IMMEDIATE replaces DBMS_SQL
 Drop column on table (finally!!!!!)
 Temporary tables support (truncated at the end of a transaction or session)
 Euro Symbol support in NLS
 Standby database (with auto shipping and application of redo logs and read only capabilities)
 New partitioning features: merge partitions into one, updatable partition keys (allow movement of
rows between partitions), can use LOBS in partitioned tables. Hash partitioning and Composite
partitioning (sub partitions)
 JSQL (Java-based SQL database statements)
 Integrated Java VirtualMachine (JVM), support for EJB (Enterprise JavaBeans)
 Enterprise Manager v2 delivered - completely rewritten in Java
 Virtual Private Database (VPD) a.k.a Fine Grained Access Control (FGAC) or Row-
level Security (RLS) for masking data
 New CASE statement in SQL similar to the Decode() function
 New PL/SQL encrypt/decrypt package introduced
 Many new SQL analytical functions like lag, lead and rank
 Statspack - used for performance monitoring
 PL/SQL Server Pages (PSP's) like Active Server Pages (ASP)
 Native support for Java2
 Java Server Pages (JSP) engine (8.1.7)
 Static HTTP server (Apache) included (8.1.7)
 PLSQL Gateway introduced for deploying PL/SQL based solutions on the Web
 New Database Character Set Migration utility included
 Enterprise Manager Enhancements - including new HTML based reporting and
Advanced Replication functionality included
 MemStat - A new utility for analyzing Java Memory footprints
 JVM Accelerator to improve performance of Java code
 Real Application Clusters (RAC) for expanding performance, scalability and availability
of the database
 List partitioning - partitioning on a list of values
 PL/SQL programs can be natively compiled to binaries
 Cost Based Optimizer (CBO) now also considers memory and CPU, not only disk access
cost as before
 Build in XML Developers Kit (XDK). New data types for XML (XMLType), URI's, etc. XML
integrated with AQ
 On-line table and index reorganization
 Scrolling cursor support (allows fetching backwards in a result set)
 Flashback query (dbms_flashback.enable), so one can query data as it looked at some
point in the past
 Java JDK 1.3 used inside the database (JVM)
 XML DB (Oracle is now a standards compliant XML database)
 Oracle Streams - new data sharing/replication feature (can potentially replace
Oracle Advance Replication and Standby Databases)
 Oracle Data Guard Enhancements (SQL Apply mode - logical copy of primary
database, automatic failover)
 Data segment compression (compress keys in tables - only when loading data)
 Grid computing - an extension of the clustering feature (Real Application Clusters)
 Manageability (self-tuning features), performance and scalability improvements
 Automated Storage Management (ASM)
 Flashback operations available on row, transaction, table or database level
 Recycle bin (ability to restore dropped objects)
 New 'drop database' statement
 New database scheduler - DBMS_SCHEDULER
 Support for bigfile tablespaces that are up to 8 Exabytes in size
 Datapump - faster data movement with expdp and impdp commands
 Transparent Data Encryption (for encrypting table columns data)
 Async COMMIT (e.g. COMMIT WRITE BATCH NOWAIT statement)
 Support for regular expressions in SQL and PL/SQL
 Oracle Express (XE) edition
Notes:
 First 64-bits version for Linux
 Oracle's rule based optimizer is still available in 10g, but no longer supported
 New data types (binary XML, DICOM medical images, 3D spatial and RFID)
 Automatic SQL tunning and self-learning capabilities
 Virtual columns support (with indexes and partitioning)
 Support for Read Only Tables
 SQL and PL/SQL result caching (in SGA)
 Can specify trigger firing order (with FOLLOWS-clause)
 Compound triggers - a trigger can be before, after, row and statement all in one
 New CONTINUE statement - starts the next iteration of the loop
 New composite partition types: Range/Range, List/Range, List/Hash, and List/List
 Advanced Compression (support compression on INSERT, UPDATE and DELETE
operations, RMAN, Datapump, network traffic, etc.)
 Many performance improvements (up to 70% for RAC, 30-50% for Streams, etc.),
availability and security improvements (e.g. case sensitive passwords, Kerberos
authentication, etc.)
 Real Application Testing (RAT) for replying database loads and analyzing performance
before database upgrade, hardware replacements and OS changes
 Oracle Total Recall (based on Flashback)
 In R2:
 Edition Based Redefinition (EBR) for online database applications upgrades
 Oracle RAC One Node, solution for consolidating less mission critical databases on the
grid with most of the redundancy and availability provided by RAC
 Improved data compression ratios (up to 20x)
 Automation of key systems management activities
 New multitenant architecture (for database consolidation in private or public clouds)
 Container databases (CDB) with embedded Pluggable Databases (PDB)
 Automatic Data Optimization (ADO) with heat maps to identify hot, warm and cold data and give possibilities for
compression and tier data
 In-Database archiving (of “inactive” rows) and Temporal Validity (previously Total Recall)
 Data redaction policies (to protect sensitive data)
 Adaptive Query Optimizations (for runtime adjustment of execution plans)
 Increased Size Limit for VARCHAR2, NVARCHAR2 and RAW Data Types (to 32 767 bytes)
 Online move of data files and partitions
 Generated as identity columns (to replace sequences for id columns)
 In-line PL/SQL functions and procedures (in WITH clause)
 Top N Query with FETCH FIRST clause
 JSON support
 Approximate Count Distinct (with APPROX_COUNT_DISTINCT SQL function)
 In-Memory option (columnar store and processing)
 Approximate Query Enhancements (approximation on session level,
approx_percentile, deterministic flag)
 Improved JSON support in SQL and PL/SQL
 Length of identifier names increased form 30 to 128 bytes
 PL/SQL Code Coverage for measuring how much of code is covered by (automatic)
tests
 Mark Old Code as “Not For Use“ (with pragma deprecate)
 White listing of callers (with ACCESSIBLE BY clause)
 Unicode 7.0 support
 Mature and powerful SQL language implementation (with many extensions)
 PL/SQL language for application development inside the database
 Application Express for rapid web application development
 Java running in the database, middle tier or client
 XML support for data and processing
 Oracle Call Interface (OCI) for low-level, efficient coding in C and C++
 Precompilers (Pro*C/C++, Pro*COBOL and Pro*Fortran) for traditional client-server
applications
 Oracle Forms and Reports for graphical interfaces and reporting still available
 SQL Developer GUI for application development
 Brief History of Oracle Database from Oracle Docs;
 Oracle’s 30th Anniversary timeline;
 History of Oracle (to v3) by Scott Hollows;
 The History of Oracle article by Burleson Consulting, 2015;
 Evolution slides from Tuning capabilities in SQL Developer by Horia Berca, Oracle
Romania (presented on BGOUG Autumn 2015);
 The least used features of Oracle database by Julian Dontcheff (presented on
BGOUG Autumn 2012);
 Evolution slides from Adaptive Query Optimization in DB12c by Horia Berca, Oracle
Romania (presented on BGOUG Autumn 2015);
 Wikipedia articles Oracle Corporation, Oracle Database, Larry Ellison and others;
Georgi D. Sotirov
http://sotirov-bg.net/~gsotirov/
@gdsotirov

Oracle's history

  • 1.
    The history ofa ~40 years old database by Georgi D. Sotirov 2017-05-26
  • 2.
     Before Oracle Version 1 (never released)  Version 2 (first commercial RDBMS)  Version 3 (portability)  Version 4 (concurrency)  Version 5 (data distribution)  Version 5.1  Version 6 (scalability)  Versions 6.1 and 6.2  Version 7.0 (stored program units)  Version 7.1  Version 7.2  Version 7.3  Version 8 (objects & partitioning)  Version 8i (Internet computing)  Version 9i (clustering)  Version 10g (grid computing)  Version 11g R1 (growing the grid)  Version 11g R2 (consolidate & compress)  Version 12c (plugging into the cloud)  Oracle for developers today  Sources
  • 3.
     He droppedfrom colleague twice to finally become a programmer. Worked as such first part time. In Ampex (where his boss was Bob Miner and where he met Ed Oates) he worked on CIA project code named “ORACL”), then moved to Precision Instruments (where he met with Bruce Scott);  In June 1977 Larry co-founded Software Development Laboratories (SDL) with Bob Miner and Ed Oates to implement SDR Forms consulting project (estimated for 3 people and 2 years). He invested $1200 of his own money (from the total investment of $2000);  He got inspired by Edgar F. Codd’s paper on relational database systems called “A Relational Model of Data for Large Shared Data Banks” and saw the commercial potential, so he decided to start such a product;  Larry learns about IBM Sequel, so SDL’s first attempt was to make IBM System/R compatible product, but IBM kept the error codes for their DBMS a secret;  In June 1979 SDL was renamed to Relational Software Inc. (RSI);  In 1982 RSI was renamed Oracle Systems Corporation after it’s flagship product the Oracle database and later become just Oracle Corporation.
  • 4.
    Edward “Ed” Oates Founder b.1946 Bruce Scott employee #4 b. ???? Robert “Bob” Miner Founder 1941-1994 Lawrence “Larry” Ellison Founder b. 1944 No. Name Net worth (USD) Age Nat. Source(s) of wealth 1 Bill Gates $86.0 billion 61 Microsoft 2 Warren Buffett $75.6 billion 86 Berkshire Hathaway 3 Jeff Bezos $72.8 billion 53 Amazon.com 4 Amancio Ortega $71.3 billion 80 Inditex, Zara 5 Mark Zuckerberg $56.0 billion 32 Facebook 6 Carlos Slim $54.5 billion 77 América Móvil, Grupo Carso 7 Larry Ellison $52.2 billion 72 Oracle Corporation 8 Charles Koch $48.3 billion 81 Koch Industries 8 David Koch $48.3 billion 76 Koch Industries 10 Michael Bloomberg $47.5 billion 75 Bloomberg L.P.
  • 5.
     Written inassembly and runs on PDP-11 under RSX, in 128K of memory  Had separation between database and user processes code  Completed somewhere in 1978, but never “officially” released  Probably released to CIA
  • 6.
     Considered thefirst official version, because Oracle’s cofounders “knew no one would want to buy version 1”  Developed also on PDP-11’s assembler language MACRO-11, so still not portable  The first commercial SQL database  Featured basic SQL functionality - joins, subqueries and some unique extensions at the time such as outer joins and hierarchical queries (i.e. CONNECT BY)  Simple server without support for transactions. Reliability was left to the “future”  First customers were USA Air Force and Central Intelligence Agency (CIA) Advanced Technology Division. Bruce Scott (employee #4) said in an interview “No idea of what they used it for”
  • 7.
     First 32-bitRDBMS  Support for transactions (COMMIT and ROLLBACK)  Non-blocking reads (data concurrency), but still no read consistency  Featured UFI (User Friendly Interface) that later become SQL*Plus  Featured IAF (Interactive Application Facility) that later become Oracle*Forms  SQL used for data dictionary (according to Bruce Scott)  Rewritten in back then rather new C language for even more portability (i.e. each system with a C compiler potentially could be used to build the database, so it could run in mainframes, minicomputers, and PCs)
  • 8.
     More reliableand more portable (Apple and IBM PC version that ran on MS-DOS in less than 640k)  Offers read consistency for faster database  Introduces export/import utilities  Introduces report writer for creating reports based on query
  • 9.
     First client/serverdatabase  Distributed & clustered:  SQL*Net v1 for network connections  SQL*Connect for heterogeneous database environments (i.e. connections to different Oracle versions and non-Oracle databases)  Portability:  Able to go beyond 640k limit on PC  Macintosh support  Auditing support  IOR (Initiate Oracle) utility for starting and stopping databases
  • 10.
     Distributed queriesfor access data in remote databases (through DB links)  SQL*Plus for data access and reporting  SQL*Forms for simple application deployment
  • 11.
     Server rewritten Row level locking (instead of entire table locks)  Online (hot) backup/recovery (no need to shutdown the database to back it up)  SQL*DBA (for start, stop and manage databases)  On-Line Transaction Processing (OLTP) performance enhancements  Introduction of PL/SQL language  B*Tree indexes implemented  Rollback segments introduced  Tablespaces concept introduced
  • 12.
     There wasnever an Oracle 6.1 production release. However, a 6.1 version was made available to selected beta customers running on clustered hardware. Apparently the database was so busy checking block status's between the machines that it killed the systems it ran on  Parallel server (to provide scalability, high availability and transparency to power Online Transaction Processing or OLTP)
  • 13.
     Referential integrityconstraints (primary & foreign keys, check constraints and default values)  Stored procedures, functions, packages and database triggers  View compilation  User defined (UDF) SQL functions  Roles (for security)  Cost Based Optimizer (CBO)  SQL*Net v2 (incompatible with v1)  Advanced Data replication – Snapshots  Automatic 2 Phase commit (2PC) for XA transactions  VARCHAR2 up to 2000 bytes, CHAR up to 255 bytes
  • 14.
     First ANSI/ISOSQL92 (entry level)  Dynamic SQL (through DMBS_SQL system package)  Parallel Query Options - query, index creation, data loading (Enterprise only!)  Server manager for starting/stopping databases  Read only tablespaces
  • 15.
     Resizable, autoextenddata files  Subquery in FROM clause (Inline view)  PL/SQL Wrapper utility (for converting PL/SQL code to portable object code)  PL/SQL cursor variables  Parallel Create Table As (CREATE TABLE AS)  Job queues (through DBMS_JOB)  DBMS_APPLICATION_INFO package
  • 16.
     Partitioned Views Bitmapped indexes  Standby database (replica of main database for failover)  Updatable Join Views (with some restrictions)  Index rebuilds  Spatial Data Option - SDO (for storing and retrieving geographical or location information)  Trigger compilation & debug  Hash joins, antijoins  Dependencies (between PL/SQL objects)  Histograms  SQL Trace
  • 17.
     Object types(CREATE TYPE & CREATE TYPE BODY)  Support for SQL3 (SQL-99)  Support for calling external procedures  Range partitioning for tables and indexes  VARCHAR2 up to 4000 bytes, CHAR up to 2000 bytes. Up to 1000 columns per table  Parallel DML statements (UPDATE and DELETE)  Index Organized tables (IOTs)  Deferred integrity constraint checking (until end of transaction)  Any VIEW updateable (INSTEAD OF triggers on views)
  • 18.
     PL/SQL debuggingthrough DBMS_DEBUG  EXECUTE IMMEDIATE replaces DBMS_SQL  Drop column on table (finally!!!!!)  Temporary tables support (truncated at the end of a transaction or session)  Euro Symbol support in NLS  Standby database (with auto shipping and application of redo logs and read only capabilities)  New partitioning features: merge partitions into one, updatable partition keys (allow movement of rows between partitions), can use LOBS in partitioned tables. Hash partitioning and Composite partitioning (sub partitions)  JSQL (Java-based SQL database statements)  Integrated Java VirtualMachine (JVM), support for EJB (Enterprise JavaBeans)  Enterprise Manager v2 delivered - completely rewritten in Java
  • 19.
     Virtual PrivateDatabase (VPD) a.k.a Fine Grained Access Control (FGAC) or Row- level Security (RLS) for masking data  New CASE statement in SQL similar to the Decode() function  New PL/SQL encrypt/decrypt package introduced  Many new SQL analytical functions like lag, lead and rank  Statspack - used for performance monitoring  PL/SQL Server Pages (PSP's) like Active Server Pages (ASP)  Native support for Java2
  • 20.
     Java ServerPages (JSP) engine (8.1.7)  Static HTTP server (Apache) included (8.1.7)  PLSQL Gateway introduced for deploying PL/SQL based solutions on the Web  New Database Character Set Migration utility included  Enterprise Manager Enhancements - including new HTML based reporting and Advanced Replication functionality included  MemStat - A new utility for analyzing Java Memory footprints  JVM Accelerator to improve performance of Java code
  • 21.
     Real ApplicationClusters (RAC) for expanding performance, scalability and availability of the database  List partitioning - partitioning on a list of values  PL/SQL programs can be natively compiled to binaries  Cost Based Optimizer (CBO) now also considers memory and CPU, not only disk access cost as before  Build in XML Developers Kit (XDK). New data types for XML (XMLType), URI's, etc. XML integrated with AQ  On-line table and index reorganization  Scrolling cursor support (allows fetching backwards in a result set)  Flashback query (dbms_flashback.enable), so one can query data as it looked at some point in the past
  • 22.
     Java JDK1.3 used inside the database (JVM)  XML DB (Oracle is now a standards compliant XML database)  Oracle Streams - new data sharing/replication feature (can potentially replace Oracle Advance Replication and Standby Databases)  Oracle Data Guard Enhancements (SQL Apply mode - logical copy of primary database, automatic failover)  Data segment compression (compress keys in tables - only when loading data)
  • 23.
     Grid computing- an extension of the clustering feature (Real Application Clusters)  Manageability (self-tuning features), performance and scalability improvements  Automated Storage Management (ASM)  Flashback operations available on row, transaction, table or database level  Recycle bin (ability to restore dropped objects)  New 'drop database' statement  New database scheduler - DBMS_SCHEDULER  Support for bigfile tablespaces that are up to 8 Exabytes in size  Datapump - faster data movement with expdp and impdp commands
  • 24.
     Transparent DataEncryption (for encrypting table columns data)  Async COMMIT (e.g. COMMIT WRITE BATCH NOWAIT statement)  Support for regular expressions in SQL and PL/SQL  Oracle Express (XE) edition Notes:  First 64-bits version for Linux  Oracle's rule based optimizer is still available in 10g, but no longer supported
  • 25.
     New datatypes (binary XML, DICOM medical images, 3D spatial and RFID)  Automatic SQL tunning and self-learning capabilities  Virtual columns support (with indexes and partitioning)  Support for Read Only Tables  SQL and PL/SQL result caching (in SGA)  Can specify trigger firing order (with FOLLOWS-clause)  Compound triggers - a trigger can be before, after, row and statement all in one  New CONTINUE statement - starts the next iteration of the loop  New composite partition types: Range/Range, List/Range, List/Hash, and List/List  Advanced Compression (support compression on INSERT, UPDATE and DELETE operations, RMAN, Datapump, network traffic, etc.)
  • 26.
     Many performanceimprovements (up to 70% for RAC, 30-50% for Streams, etc.), availability and security improvements (e.g. case sensitive passwords, Kerberos authentication, etc.)  Real Application Testing (RAT) for replying database loads and analyzing performance before database upgrade, hardware replacements and OS changes  Oracle Total Recall (based on Flashback)  In R2:  Edition Based Redefinition (EBR) for online database applications upgrades  Oracle RAC One Node, solution for consolidating less mission critical databases on the grid with most of the redundancy and availability provided by RAC  Improved data compression ratios (up to 20x)  Automation of key systems management activities
  • 27.
     New multitenantarchitecture (for database consolidation in private or public clouds)  Container databases (CDB) with embedded Pluggable Databases (PDB)  Automatic Data Optimization (ADO) with heat maps to identify hot, warm and cold data and give possibilities for compression and tier data  In-Database archiving (of “inactive” rows) and Temporal Validity (previously Total Recall)  Data redaction policies (to protect sensitive data)  Adaptive Query Optimizations (for runtime adjustment of execution plans)  Increased Size Limit for VARCHAR2, NVARCHAR2 and RAW Data Types (to 32 767 bytes)  Online move of data files and partitions  Generated as identity columns (to replace sequences for id columns)  In-line PL/SQL functions and procedures (in WITH clause)  Top N Query with FETCH FIRST clause  JSON support  Approximate Count Distinct (with APPROX_COUNT_DISTINCT SQL function)  In-Memory option (columnar store and processing)
  • 28.
     Approximate QueryEnhancements (approximation on session level, approx_percentile, deterministic flag)  Improved JSON support in SQL and PL/SQL  Length of identifier names increased form 30 to 128 bytes  PL/SQL Code Coverage for measuring how much of code is covered by (automatic) tests  Mark Old Code as “Not For Use“ (with pragma deprecate)  White listing of callers (with ACCESSIBLE BY clause)  Unicode 7.0 support
  • 29.
     Mature andpowerful SQL language implementation (with many extensions)  PL/SQL language for application development inside the database  Application Express for rapid web application development  Java running in the database, middle tier or client  XML support for data and processing  Oracle Call Interface (OCI) for low-level, efficient coding in C and C++  Precompilers (Pro*C/C++, Pro*COBOL and Pro*Fortran) for traditional client-server applications  Oracle Forms and Reports for graphical interfaces and reporting still available  SQL Developer GUI for application development
  • 30.
     Brief Historyof Oracle Database from Oracle Docs;  Oracle’s 30th Anniversary timeline;  History of Oracle (to v3) by Scott Hollows;  The History of Oracle article by Burleson Consulting, 2015;  Evolution slides from Tuning capabilities in SQL Developer by Horia Berca, Oracle Romania (presented on BGOUG Autumn 2015);  The least used features of Oracle database by Julian Dontcheff (presented on BGOUG Autumn 2012);  Evolution slides from Adaptive Query Optimization in DB12c by Horia Berca, Oracle Romania (presented on BGOUG Autumn 2015);  Wikipedia articles Oracle Corporation, Oracle Database, Larry Ellison and others;
  • 31.

Editor's Notes

  • #2 `
  • #4 “It’s all about Larry. This was Larry’s company” Bruce Scott Author Interview Larrys wants SDL to be a software company by the Cullinet model (see https://en.wikipedia.org/wiki/Cullinet )
  • #5 Fathers of Oracle Edward Oates “did not write any Oracle code”, but helped fund development and allowed Bob and Bruce to focus on Oracle database development. Retired from Oracle in 1996 Robert Miner is author and architect of Oracle up to v3. He served as first president. “The Database Engine Guy” (Disk I/O, Storage, Btree indexes). Died in 1994 Bruce Scott is co-author and co-architect of Oracle v1-3. Rewrote Oracle v3 in C. “The SQL Guy”. He’s also known for the SCOTT schema (EMP and DEPT tables) with password TIGER. Tiger was the name of his daughter's cat. Tables were based on demo data in IBM SQL Publication Left before v3 shipped Lawrence Ellison was Oracle’s CEO until 2014. One of world’s richest man that acted as visionary for Oracle with his charisma and high competitiveness.
  • #7 “was really not usable as a database” Dave Roberts, CIA
  • #8 Simultaneous access of the same data by many users. A multiuser database management system must provide adequate concurrency controls so that data cannot be updated or changed improperly, compromising data integrity. “PDP market quickly moves to VAX” Bruce Scott “No other languages considered” Bruce Scott v3 “wasn’t very reliable… in the database world there are couple of things that you can never do… One is you cant lose data and the other is you cant return wrong answers” Larry Ellison “v3 definitely used SQL for data dictionary, not sure about v2” Bruce Scott
  • #9 A consistent view of data seen by a user. For example, in statement-level read consistency the set of data seen by a SQL statement remains constant throughout statement execution.
  • #10 Parallel server later to become Real Application Cluster (RAC) in 9i
  • #11 The Oracle distributed database management system architecture lets you access data in remote databases using Oracle Net and an Oracle Database server. You can identify a remote table, view, or materialized view by appending @dblink to the end of its name. The dblink must be a complete or partial name for a database link to the database containing the remote table, view, or materialized view. See https://docs.oracle.com/database/121/SQLRF/queries010.htm#SQLRF52359
  • #12 Prior to the hot backup feature, database administrators were required to shutdown the database to back it up. PL/SQL without stored procedures and triggers A Rollback Segment is a database object containing before-images of data written to the database.
  • #24 Cluster – many machines into one; Grid – each node is relatively independent of others; Cloud – aggregation of computing power and resources.