Learning Applied Artificial
Intelligence with Oracle
Oracle Database Tips by Donald Burleson
The highly-theoretical world
of artificial intelligence (AI) has been the traditional bastion of academia,
with graduate-level computer science students writing their dissertation on AI
theory, using non-procedural languages (Lisp, Prolog, etc.), and mile-long
algorithms. I've been implementing
expert systems, decision support systems and applied AI for over
20 years and I've seen the technology change dramatically, from incomprehensible
multi-page "if statements" to complex neural networks. My Masters
thesis was my first publication on expert systems, and I've been working with
these systems since completing grad school:
and Implementation of a Decision Support System for Academic Scheduling"
Applying science to
Many Oracle professional
misunderstand the application of scientific principles to solving Oracle
Some neophytes think that only
hard-and-fast mathematical "proofs" are useful for analyzing and forecasting
Oracle performance, and believe that if there is a single exception to a
decision rule, then the rule is wrong and not useful.
Analyzing Oracle performance uses the exact same techniques as the Oracle Data
Mining (ODM) product. Oracle data warehouse experts know that decision
rules can never be 100% accurate, and it's all-about creating rules,
analyzing their predictive probabilities and using heuristic techniques to solve
real-world Oracle database problems!
For Oracle database analysis, applied AI
falls into these categories:
Let's start with a quick review
of AI technology and then see how it is applied to Oracle.
Basics of applied artificial intelligence
Back in the 1970's, very few
people had ever seen a real computer. In the days before PC's and hand
calculators, computers cost millions of dollars and they were hidden in the
"glass house". Hence, most laymen had gross misconceptions about the real
power of AI. The movie "2001:
A Space Odyssey (1968)"
featured the HAL-2000, an AI computer with personality.
Playing on this false public
ELIZA project at MIT fooled hundreds of laymen. Properly presented,
most experimental subjects were impressed with ELIZA's intelligence!
In the real-world, AI software
still struggles with the mundane, tasks like parsing and deriving meaning human
English. Let's take a look why the HAL-2000 failed to materialize
according to Stanly Kubrick's premonition!
Today, artificial intelligence
centers around functional disciplines such as human cognition and game theory,
but we are starting to see some practical applications of complex decision
rules. Here is a great
history of artificial intelligence over the centuries.
As of 2015, there are three
types of intelligent systems that utilize Oracle databases:
- Decision Support Systems
- By definition, a Decision Support System (DSS) attempts to assist in the
solution of a "semi-structured" problem, a problem that has some decision
rules, but also relies on human intuition. The DSS takes care of
the structured component and leave the actual decision to the human expert.
MYCIN is a great example of a DSS, a tool that assists doctors in the
selection of antibiotic medicines, and
Ion, a DSS for Oracle DBA.
- Expert Systems -
Expert systems seek to codify expert knowledge and advice against a set of
circumstances. The well-structured decision rules are collected from a
human expert and then applied and validated against real-world data.
- Artificial Intelligence
- AI differs from DSS and expert systems in the sense that the AI
software automatically learns from its empirical experiences. It's this
experiential learning component that distinguishes AI, especially in the
area of simulating human cognition. For example, just like a toddler,
an AI routine might classify all 4-legged animals as "doggie", until it
refines it's decision rules.
- Artificial Stupidity
- Artificial stupidity (AS) is the use of automated technology to produce
ludicrous output. There are many primitive online systems for
artificial stupidity, such as my
Oracle Jargon Generator. For offshoots, we also see artificial
stupidity (See NASA,
the national artificial stupidity association) and
artificial artificial intelligence (a cute new Amazon name for a DSS).
For real-world AI and DSS
applications, the foremost newcomer is the
Amazon mechanical Turk,
a new Services Oriented Architecture (SOA) tool for incorporating human
intelligence into web services:
"Amazon Mechanical Turk
provides a web services API for computers to integrate "artificial
artificial intelligence" directly into their processing by making requests
Developers use the Amazon
Mechanical Turk web service to submit tasks to the Amazon Mechanical Turk
web site, approve completed tasks, and incorporate the answers into their
The Amazon mechanical Turk
works like a decision support system, using human experts to manage the
semi-structured and unstructured components of problem solving:
"Humans are much more
effective than computers at solving some types of problems, like finding
specific objects in pictures, evaluating beauty, or translating text. . .
Amazon Mechanical Turk is
being used to increase the quality of A9's BlockView pictures that show
users street-level pictures of businesses. These HITs ask people to select
from several photographs the one that best presents the front of a business.
Intelligence and expert systems using Oracle
However, there has been a AI
research that uses databases as their "persistence layer". Databases are
required in several areas of AI:
- Algorithm storage and
versioning - In AI, complex decision rules must be stored, modified
according to data inputs.
- Data Universe storage
- Most AI algorithms are validated using real-world heuristics.
Today, there are thousands of
AI routines that store their rules and data inside Oracle databases. Most
of these applied artificial intelligence are used to interpret real-world data.
An example is the
Data Mining ODM tool, which allows for the storage of chi-square multivariate
algorithms and allows them to be run against datasets stored within Oracle.
Artificial Intelligence and expert systems for Oracle Management
Oracle DBA's have always been
interested in automating their decision rules to build AI systems that simulate
their real-world behavior. In Oracle 10g, we see applied AI for the
automated tools such as ADDM and AMM, where database performance feedback is
sent to an AI engine which interprets and analyses the feedback and changes the
database configuration to meet current processing demands.
We also see the application of
decision rules to simulate human analysis in the STATSPACK analysis tools.
Oracle has developed intelligent advisors for the data buffer cache, pga, and
pools, incorporating them into all 10g AWR time-series performance reports.
We also see work in expert
systems to interpret time-series performance reports (STATSPACK and AWR (for
10g)). The idea is to simulate the behavior of a Oracle tuning expert.
The decision rules:
- Rule Identification
- Rule correlation to other
- Rule is weighted for
- Rule is generalized to
apply to all situations
- Rule is quantified and
programmed into the engine
Early efforts to simulate a
human expert provided limited success, but no researcher has yet been able to
model the "human intuition" shown by human experts.
Research Initiative for Oracle performance analysis
Finding internal Oracle
bottlenecks is very challenging. Analyzing a thousand-line Oracle
performance report is not
trivial, and many dozens of observation points may be required to formulate a
decision rule. Further, the generalization of these complex rules may make
them prone to "false positives", the reporting of a non-existent bottleneck.
The StatspackAnalyzer project
shows great promise as an expert system because of the large user base where
users submit their reports, evaluate the software's feedback, and suggest
refinements to the decision rules.
We also see the
Ion for Oracle, a decision support system for Oracle professionals. Ion
displays time-series metrics, allowing the human expert to visualize hidden
& Expert system databases in
In grad school, all IT and CS
students take courses like Operations Research where they learn to develop
complex decision rules and them apply them to real world datasets. Using
Oracle as the back-end storage of data and decision rules is a great way to
prepare for real-world applications of expert systems, DSS and AI. Also,
advanced statistics courses (multivariate analysis) are a good way to prepare
for a career in Oracle data mining and Business Intelligence (BI).