Database Concepts - Oracle

Transcription

Oracle DatabaseDatabase Concepts19cE96138-06April 2021

Oracle Database Database Concepts, 19cE96138-06Copyright 1993, 2021, Oracle and/or its affiliates.Primary Authors: Lance Ashdown, Donna Keesling, Tom Kyte, Joe McCormackContributors: Drew Adams, Ashish Agrawal, Troy Anthony, Vikas Arora, Jagan Athraya, David Austin,Thomas Baby, Vladimir Barriere, Hermann Baer, Srinagesh Battula, Nigel Bayliss, Tammy Bednar, VirginiaBeecher, Bjorn Bolltoft, Ashmita Bose, David Brower, Larry Carpenter, Lakshminaray Chidambaran, DebaChatterjee, Shasank Chavan, Tim Chien, Gregg Christman, Bernard Clouse, Maria Colgan, Carol Colrain,Nelson Corcoran, Michael Coulter, Jonathan Creighton, Judith D'Addieco, Mark Dilman, Kurt Engeleiter,Bjørn Engsig, Marcus Fallon, Steve Fogel, Jonathan Giloni, Naveen Gopal, Bill Habeck , Min-Hank Ho, LijieHeng, Bill Hodak, Yong Hu, Pat Huey, Praveen Kumar Tupati Jaganath, Sanket Jain, Prakash Jashnani,Caroline Johnston, Shantanu Joshi, Jesse Kamp, Vikram Kapoor, Feroz Khan, Jonathan Klein, AndreKruglikov, Sachin Kulkarni, Surinder Kumar, Paul Lane, Adam Lee, Allison Lee, Jaebock Lee, Sue Lee,Teck Hua Lee, Yunrui Li , Ilya Listvinski, Bryn Llewellyn, Rich Long, Barb Lundhild, Neil Macnaughton, VineetMarwah, Susan Mavris, Bob McGuirk, Joseph Meeks, Mughees Minhas, Sheila Moore, Valarie Moore, GopalMulagund, Charles Murray, Kevin Neel, Sue Pelski, Raymond Pfau, Gregory Pongracz, Vivek Raja, AshishRay, Bert Rich, Kathy Rich, Andy Rivenes, Scott Rotondo, Vivian Schupmann, Venkat Senaptai, ShrikanthShankar, Prashanth Shanthaveerappa, Cathy Shea, Susan Shepard, Kam Shergill, Mike Skarpelos, SachinSonawane, James Spiller, Suresh Sridharan, Jim Stenoish, Janet Stern, Rich Strohm, Roy Swonger, KamalTbeileh, Juan Tellez, Ravi Thammaiah, Lawrence To, Tomohiro Ueda, Randy Urbano, Badhri Varanasi, NickWagner, Steve Wertheimer, Patrick Wheeler, Doug Williams, James Williams, Andrew Witkowski, DanielWong, Hailing YuThis software and related documentation are provided under a license agreement containing restrictions onuse and disclosure and are protected by intellectual property laws. Except as expressly permitted in yourlicense agreement or allowed by law, you may not use, copy, reproduce, translate, broadcast, modify, license,transmit, distribute, exhibit, perform, publish, or display any part, in any form, or by any means. Reverseengineering, disassembly, or decompilation of this software, unless required by law for interoperability, isprohibited.The information contained herein is subject to change without notice and is not warranted to be error-free. Ifyou find any errors, please report them to us in writing.If this is software or related documentation that is delivered to the U.S. Government or anyone licensing it onbehalf of the U.S. Government, then the following notice is applicable:U.S. GOVERNMENT END USERS: Oracle programs (including any operating system, integrated software,any programs embedded, installed or activated on delivered hardware, and modifications of such programs)and Oracle computer documentation or other Oracle data delivered to or accessed by U.S. Governmentend users are "commercial computer software" or "commercial computer software documentation" pursuantto the applicable Federal Acquisition Regulation and agency-specific supplemental regulations. As such,the use, reproduction, duplication, release, display, disclosure, modification, preparation of derivative works,and/or adaptation of i) Oracle programs (including any operating system, integrated software, any programsembedded, installed or activated on delivered hardware, and modifications of such programs), ii) Oraclecomputer documentation and/or iii) other Oracle data, is subject to the rights and limitations specified in thelicense contained in the applicable contract. The terms governing the U.S. Government’s use of Oracle cloudservices are defined by the applicable contract for such services. No other rights are granted to the U.S.Government.This software or hardware is developed for general use in a variety of information management applications.It is not developed or intended for use in any inherently dangerous applications, including applications thatmay create a risk of personal injury. If you use this software or hardware in dangerous applications, then youshall be responsible to take all appropriate fail-safe, backup, redundancy, and other measures to ensure itssafe use. Oracle Corporation and its affiliates disclaim any liability for any damages caused by use of thissoftware or hardware in dangerous applications.Oracle and Java are registered trademarks of Oracle and/or its affiliates. Other names may be trademarks oftheir respective owners.Intel and Intel Inside are trademarks or registered trademarks of Intel Corporation. All SPARC trademarks areused under license and are trademarks or registered trademarks of SPARC International, Inc. AMD, Epyc,and the AMD logo are trademarks or registered trademarks of Advanced Micro Devices. UNIX is a registeredtrademark of The Open Group.This software or hardware and documentation may provide access to or information about content, products,and services from third parties. Oracle Corporation and its affiliates are not responsible for and expresslydisclaim all warranties of any kind with respect to third-party content, products, and services unless otherwiseset forth in an applicable agreement between you and Oracle. Oracle Corporation and its affiliates will notbe responsible for any loss, costs, or damages incurred due to your access to or use of third-party content,products, or services, except as set forth in an applicable agreement between you and Oracle.

ContentsPrefaceAudiencexxiDocumentation AccessibilityxxiRelated DocumentationxxiiConventionsxxiiChanges in This Release for Oracle Database Concepts1Changes in Oracle Database Release 19c, Version 19.1xxiiiChanges in Oracle Database Release 18c, Version 18.1xxivIntroduction to Oracle DatabaseAbout Relational Databases1-1Database Management System (DBMS)1-1Relational Model1-2Relational Database Management System (RDBMS)1-2Brief History of Oracle Database1-3Schema Objects1-4Tables1-5Indexes1-5Data Access1-6Structured Query Language (SQL)1-6PL/SQL and Java1-6Transaction Management1-7Transactions1-7Data Concurrency1-8Data Consistency1-8Oracle Database ArchitectureDatabase and Instance1-91-9Multitenant Architecture1-11Sharding Architecture1-14Database Storage Structures1-16iii

Physical Storage Structures1-16Logical Storage Structures1-17Database Instance StructuresOracle Database Processes1-18Instance Memory Structures1-18Application and Networking Architecture21-19Application Architecture1-19Oracle Net Services Architecture1-20Oracle Database Documentation RoadmapPart I1-181-21Oracle Database Documentation: Basic Group1-21Oracle Database Documentation: Intermediate Group1-22Oracle Database Documentation: Advanced Group1-22Oracle Relational Data StructuresTables and Table ClustersIntroduction to Schema Objects2-1Schema Object Types2-2Schema Object Storage2-4Schema Object Dependencies2-5SYS and SYSTEM Schemas2-7Sample Schemas2-8Overview of TablesColumns2-92-10Virtual Columns2-10Invisible Columns2-10Rows2-11Example: CREATE TABLE and ALTER TABLE Statements2-11Oracle Data Types2-13Character Data Types2-14Numeric Data Types2-16Datetime Data Types2-17Rowid Data Types2-18Format Models and Data Types2-19Integrity Constraints2-20Table Storage2-21Table Organization2-21Row Storage2-22Rowids of Row Pieces2-22Storage of Null Values2-23iv

Table CompressionBasic Table Compression and Advanced Row Compression2-23Hybrid Columnar Compression2-24Overview of Table Clusters2-28Overview of Indexed Clusters2-29Overview of Hash Clusters2-31Hash Cluster Creation2-31Hash Cluster Queries2-32Hash Cluster Variations2-33Hash Cluster Storage2-34Overview of Attribute-Clustered Tables2-35Advantages of Attribute-Clustered Tables2-36Join Attribute Clustered Tables2-37I/O Reduction Using Zones2-37Zone Maps2-37Purpose of Zones2-38How a Zone Map Works: Example2-38Attribute-Clustered Tables with Linear Ordering2-39Attribute-Clustered Tables with Interleaved Ordering2-40Overview of Temporary Tables2-42Purpose of Temporary Tables2-43Segment Allocation in Temporary Tables2-43Temporary Table Creation2-43Overview of External Tables32-232-44Purpose of External Tables2-44Data in Object Stores2-45External Table Access Drivers2-45External Table Creation2-46Overview of Blockchain Tables2-47Row Chains2-47Row Content2-48User Interface for Blockchain Tables2-49Overview of Immutable Tables2-49Overview of Object Tables2-50Indexes and Index-Organized TablesIntroduction to Indexes3-1Advantages and Disadvantages of Indexes3-2Index Usability and Visibility3-3Keys and Columns3-3v

Composite Indexes3-4Unique and Nonunique Indexes3-5Types of Indexes3-6How the Database Maintains Indexes3-7Index Storage3-7Overview of B-Tree IndexesBranch Blocks and Leaf BlocksIndex Scans3-93-10Full Index Scan3-10Fast Full Index Scan3-11Index Range Scan3-12Index Unique Scan3-12Index Skip Scan3-13Index Clustering Factor3-14Reverse Key Indexes3-16Ascending and Descending Indexes3-17Index Compression3-17Prefix Compression3-18Advanced Index Compression3-20Overview of Bitmap Indexes43-83-21Example: Bitmap Indexes on a Single Table3-22Bitmap Join Indexes3-24Bitmap Storage Structure3-26Overview of Function-Based Indexes3-27Uses of Function-Based Indexes3-27Optimization with Function-Based Indexes3-28Overview of Application Domain Indexes3-29Overview of Index-Organized Tables3-29Index-Organized Table Characteristics3-30Index-Organized Tables with Row Overflow Area3-33Secondary Indexes on Index-Organized Tables3-33Logical Rowids and Physical Guesses3-34Bitmap Indexes on Index-Organized Tables3-35Partitions, Views, and Other Schema ObjectsOverview of PartitionsPartition Characteristics4-14-2Partition Key4-2Partitioning Strategies4-2Partitioned Tables4-9vi

Segments for Partitioned Tables4-10Compression for Partitioned Tables4-10Partitioned IndexesLocal Partitioned Indexes4-11Global Partitioned Indexes4-14Partial Indexes for Partitioned TablesOverview of Sharded TablesSharded TablesOverview of ViewsCharacteristics of Views4-174-184-194-214-23Data Manipulation in Views4-23How Data Is Accessed in Views4-23Updatable Join Views4-25Object Views4-26Overview of Materialized Views4-26Characteristics of Materialized Views4-28Refresh Methods for Materialized Views4-29Complete Refresh4-29Incremental Refresh4-29In-Place and Out-of-Place Refresh4-30Query Rewrite4-30Overview of Sequences4-31Sequence Characteristics4-31Concurrent Access to Sequences4-32Overview of Dimensions4-33Hierarchical Structure of a Dimension4-33Creation of Dimensions4-34Overview of Synonyms54-114-35Data IntegrityIntroduction to Data Integrity5-1Techniques for Guaranteeing Data Integrity5-1Advantages of Integrity Constraints5-2Types of Integrity Constraints5-2NOT NULL Integrity Constraints5-3Unique Constraints5-4Primary Key Constraints5-6Foreign Key Constraints5-7Self-Referential Integrity ConstraintsNulls and Foreign Keys5-95-10vii

Parent Key Modifications and Foreign Keys5-10Indexes and Foreign Keys5-12Check ConstraintsStates of Integrity Constraints5-13When the Database Checks Constraints for Validity5-14Nondeferrable Constraints5-14Deferrable Constraints5-155-15Example: Insertion of a Value in a Foreign Key Column When No ParentKey Value Exists5-16Example: Update of All Foreign Key and Parent Key Values5-16Data Dictionary and Dynamic Performance ViewsOverview of the Data Dictionary6-2Views with the Prefix DBA6-3Views with the Prefix ALL6-3Views with the Prefix USER6-4The DUAL Table6-4Storage of the Data Dictionary6-5How Oracle Database Uses the Data Dictionary6-5Public Synonyms for Data Dictionary Views6-6Data Dictionary Cache6-6Other Programs and the Data Dictionary6-66-7Contents of the Dynamic Performance Views6-7Storage of the Dynamic Performance Views6-8Database Object MetadataPart II6-1Contents of the Data DictionaryOverview of the Dynamic Performance Views75-13Checks for Modified and Existing DataExamples of Constraint Checking65-126-8Oracle Data AccessSQLIntroduction to SQL7-1SQL Data Access7-2SQL Standards7-2Overview of SQL Statements7-3Data Definition Language (DDL) Statements7-3Data Manipulation Language (DML) Statements7-5viii

SELECT Statements7-6Joins7-7Subqueries7-8Transaction Control StatementsSession Control Statements7-10System Control Statement7-11Embedded SQL Statements7-11Overview of the Optimizer7-12Use of the Optimizer7-12Optimizer Components7-13Query Transformer7-15Estimator7-15Plan Generator7-15Access Paths7-16Optimizer Statistics7-17Optimizer Hints7-18Overview of SQL ProcessingStages of SQL Processing7-197-19SQL Parsing7-20SQL Optimization7-21SQL Row Source Generation7-21SQL Execution7-21Differences Between DML and DDL Processing87-97-22Server-Side Programming: PL/SQL and JavaIntroduction to Server-Side Programming8-1Overview of PL/SQL8-2PL/SQL Subprograms8-3Advantages of PL/SQL Subprograms8-3Creation of PL/SQL Subprograms8-5Execution of PL/SQL Subprograms8-6PL/SQL Packages8-7Advantages of PL/SQL Packages8-7Creation of PL/SQL Packages8-8Execution of PL/SQL Package Subprograms8-8PL/SQL Anonymous Blocks8-9PL/SQL Language Constructs8-10PL/SQL Collections and Records8-11Collections8-11Records8-12ix

How PL/SQL RunsOverview of Java in Oracle DatabaseOverview of the Java Virtual Machine (JVM)98-138-15Overview of Oracle JVM8-15Main Components of Oracle JVM8-16Java Programming Environment8-17Java Stored Procedures8-18Java and PL/SQL Integration8-18Overview of TriggersPart III8-128-20Advantages of Triggers8-21Types of Triggers8-21Timing for Triggers8-22Creation of Triggers8-23Example: CREATE TRIGGER Statement8-24Example: Invoking a Row-Level Trigger8-24Execution of Triggers8-27Storage of Triggers8-27Oracle Transaction ManagementData Concurrency and ConsistencyIntroduction to Data Concurrency and ConsistencyMultiversion Read Consistency9-19-2Statement-Level Read Consistency9-2Transaction-Level Read Consistency9-3Read Consistency and Undo Segments9-3Read Consistency and Deferred Inserts9-5Locking Mechanisms9-6ANSI/ISO Transaction Isolation Levels9-6Overview of Oracle Database Transaction Isolation LevelsRead Committed Isolation Level9-79-8Read Consistency in the Read Committed Isolation Level9-8Conflicting Writes in Read Committed Transactions9-8Serializable Isolation Level9-11Read-Only Isolation Level9-15Overview of the Oracle Database Locking Mechanism9-16Summary of Locking Behavior9-16Use of Locks9-17Lock Modes9-20Lock Conversion and Escalation9-21x

Lock Duration9-21Locks and Deadlocks9-22Overview of Automatic Locks9-23DML LocksRow Locks (TX)9-24Table Locks (TM)9-28Locks and Foreign Keys9-29DDL Locks9-32Exclusive DDL Locks9-32Share DDL Locks9-32Breakable Parse Locks9-33System Locks109-249-33Latches9-33Mutexes9-34Internal Locks9-34Overview of Manual Data Locks9-35Overview of User-Defined Locks9-36TransactionsIntroduction to Transactions10-1Sample Transaction: Account Debit and Credit10-2Structure of a Transaction10-3Beginning of a Transaction10-3End of a Transaction10-4Statement-Level Atomicity10-5System Change Numbers (SCNs)10-6Overview of Transaction Control10-6Transaction Names10-8Active Transactions10-9Savepoints10-10Rollback to Savepoint10-10Enqueued Transactions10-11Rollback of Transactions10-12Commits of Transactions10-13Overview of Transaction Guard10-14Benefits of Transaction Guard10-15How Transaction Guard Works10-15Lost Commit Messages10-15Logical Transaction ID10-16Transaction Guard: Example10-17xi

Overview of Application ContinuityBenefits of Application ContinuityUse Case for Application Continuity10-18Application Continuity for Planned Maintenance10-1910-20Overview of Autonomous Transactions10-21Overview of Distributed Transactions10-22Two-Phase Commit10-22In-Doubt Transactions10-23Oracle Database Storage StructuresPhysical Storage StructuresIntroduction to Physical Storage Structures11-1Mechanisms for Storing Database Files11-2Oracle Automatic Storage Management (Oracle ASM)11-3Oracle ASM Storage Components11-3Oracle ASM Instances11-5Oracle Managed Files and User-Managed FilesOverview of Data Files11-611-7Use of Data Files11-7Permanent and Temporary Data Files11-8Online and Offline Data Files11-9Data File StructureOverview of Control Files11-1011-11Use of Control Files11-11Multiple Control Files11-12Control File Structure11-12Overview of the Online Redo Log1210-18Application Continuity ArchitecturePart IV1110-1811-13Use of the Online Redo Log11-13How Oracle Database Writes to the Online Redo Log11-14Online Redo Log Switches11-14Multiple Copies of Online Redo Log Files11-16Archived Redo Log Files11-17Structure of the Online Redo Log11-18Logical Storage StructuresIntroduction to Logical Storage StructuresLogical Storage Hierarchy12-112-2xii

Logical Space Management12-3Locally Managed Tablespaces12-4Dictionary-Managed Tablespaces12-7Overview of Data BlocksData Blocks and Operating System Blocks12-712-7Database Block Size12-8Tablespace Block Size12-8Data Block FormatData Block OverheadRow Format12-912-912-10Data Block Compression12-13Space Management in Data Blocks12-14Percentage of Free Space in Data Blocks12-15Optimization of Free Space in Data Blocks12-16Chained and Migrated Rows12-18Overview of Index Blocks12-20Types of Index Blocks12-20Storage of Index Entries12-20Reuse of Slots in an Index Block12-21Coalescing an Index Block12-21Overview of Extents12-23Allocation of Extents12-23Deallocation of Extents12-25Storage Parameters for Extents12-26Overview of Segments12-27User Segments12-27User Segment CreationTemporary Segments12-2812-29Allocation of Temporary Segments for Queries12-30Allocation of Segments for Temporary Tables and Indexes12-30Undo Segments12-31Undo Segments and Transactions12-32Transaction Rollback12-34Temporary Undo Segments12-34Segment Space and the High Water MarkOverview of TablespacesPermanent Tablespaces12-3512-3812-38The SYSTEM Tablespace12-39The SYSAUX Tablespace12-40Undo Tablespaces12-40Shadow Tablespaces12-42xiii

Temporary TablespacesShared and Local Temporary Tablespaces12-46Default Temporary Tablespaces12-47Tablespace Modes1312-49Read/Write and Read-Only Tablespaces12-49Online and Offline Tablespaces12-50Tablespace File SizePart V12-4612-50Oracle Instance ArchitectureOracle Database InstanceIntroduction to the Oracle Database Instance13-1Database Instance Structure13-1Database Instance Configurations13-2Read/Write and Read-Only Instances13-3Duration of a Database Instance13-4Identification of a Database Instance13-5Oracle Base Directory13-6Oracle Home Directory13-6Oracle System Identifier (SID)13-7Overview of Database Instance Startup and ShutdownOverview of Instance and Database StartupConnection with Administrator Privileges13-813-813-9How an Instance Is Started13-10How a Database Is Mounted13-10How a Database Is Opened13-11Overview of Database and Instance Shutdown13-13Shutdown Modes13-14How a Database Is Closed13-15How a Database Is Unmounted13-15How an Instance Is Shut Down13-16Overview of Checkpoints13-16Purpose of Checkpoints13-17When Oracle Database Initiates Checkpoints13-17Overview of Instance Recovery13-18Purpose of Instance Recovery13-18When Oracle Database Performs Instance Recovery13-19Importance of Checkpoints for Instance Recovery13-19Instance Recovery Phases13-20Overview of Parameter Files13-21xiv

Initialization ParametersFunctional Groups of Initialization Parameters13-22Basic and Advanced Initialization Parameters13-22Server Parameter Files13-22Text Initialization Parameter Files13-23Modification of Initialization Parameter Values13-24Overview of Diagnostic Files13-26Automatic Diagnostic Repository13-26Problems and Incidents13-27ADR Structure13-27Alert Log13-29DDL Log13-30Trace Files13-30Types of Trace Files13-30Locations of Trace Files13-31Segmentation of Trace Files13-31Diagnostic DumpsTrace Dumps and Incidents1413-2113-3213-32Memory ArchitectureIntroduction to Oracle Database Memory Structures14-1Basic Memory Structures14-1Oracle Database Memory Management14-3Overview of the User Global Area14-4Overview of the Program Global Area (PGA)14-5Contents of the PGA14-6Private SQL Area14-6SQL Work Areas14-7PGA Usage in Dedicated and Shared Server ModesOverview of the System Global Area (SGA)Database Buffer Cache14-914-914-10Purpose of the Database Buffer Cache14-11Buffer States14-11Buffer Modes14-12Buffer I/O14-12Buffer Pools14-16Buffers and Full Table Scans14-18Redo Log Buffer14-20Shared Pool14-21Library Cache14-22xv

Data Dictionary Cache14-25Server Result Cache14-26Reserved Pool14-28Large Pool1514-28Large Pool Memory Management14-29Large Pool Buffers for Deferred Inserts14-29Java Pool14-31Fixed SGA14-31Optional Performance-Related SGA Subareas14-32In-Memory Area14-32Memoptimize Pool14-32Overview of Software Code Areas14-34Process ArchitectureIntroduction to Processes15-1Types of Processes15-1Multiprocess and Multithreaded Oracle Database Systems15-3Overview of Client Processes15-5Client and Server Processes15-5Connections and Sessions15-6Database Operations15-8Overview of Server Processes15-9Dedicated Server Processes15-9Shared Server Processes15-10How Oracle Database Creates Server Processes15-10Overview of Background ProcessesMandatory Background Processes15-1115-12Process Monitor Process (PMON) Group15-12Process Manager (PMAN)15-14Listener Registration Process (LREG)15-14System Monitor Process (SMON)15-14Database Writer Process (DBW)15-15Log Writer Process (LGWR)15-15Checkpoint Process (CKPT)15-17Manageability Monitor Processes (MMON and MMNL)15-18Recoverer Process (RECO)15-18Optional Background Processes15-18Archiver Processes (ARCn)15-19Job Queue Processes (CJQ0 and Jnnn)15-19Flashback Data Archive Process (FBDA)15-20xvi

Space Management Coordinator Process (SMCO)Slave Processes1615-21I/O Slave Processes15-21Parallel Execution (PX) Server Processes15-22Application and Oracle Net Services ArchitectureOverview of Oracle Application ArchitectureOverview of Client/Server Architecture16-116-1Advantages of a Client/Server Architecture16-316-4Clients16-4Application Servers16-4Database Servers16-5Service-Oriented Architecture (SOA)16-5Overview of Grid ArchitectureOverview of Oracle Net Services Architecture16-616-6How Oracle Net Services Works16-7The Oracle Net Listener16-7Service Names16-9Service Registration16-10Dedicated Server Architecture16-11Shared Server Architecture16-13Dispatcher Request and Response Queues16-14Restricted Operations of the Shared Server16-16Database Resident Connection PoolingOverview of the Program InterfacePart VI16-1Distributed ProcessingOverview of Multitier Architecture1715-2016-1716-18Program Interface Structure16-19Program Interface Drivers16-19Communications Software for the Operating System16-20Oracle Database Administration and Application DevelopmentTopics for Database Administrators and DevelopersOverview of Database SecurityUser Accounts17-117-1Privileges17-2Roles17-2Privilege Analysis17-3xvii

User Profiles17-4Database Authentication17-4Encryption17-5Network Encryption17-5Transparent Data Encryption17-5Oracle Data Redaction17-6Orientation17-7Oracle Database Vault17-7Virtual Private Database (VPD)17-7Oracle Label Security (OLS)17-8Data Access Monitoring17-8Database Auditing17-9Unified Audit Trail17-11Enterprise Manager Auditing Support17-12Oracle Audit Vault and Database Firewall17-12Overview of High AvailabilityHigh Availability and Unplanned Downtime17-1317-13Site Failures17-13Computer Failures17-14Storage Failures17-15Data Corruption17-16Human Errors17-17High Availability and Planned Downtime17-18System and Database Changes17-18Data Changes17-19Application Changes17-20Overview of Grid Computing17-21Database Server Grid17-22Scalability17-23Fault Tolerance17-23Services17-24Oracle Flex Clusters17-24Database Storage Grid17-25Overview of Data Warehousing and Business Intelligence17-25Data Warehousing and OLTP17-25Data Warehouse Architecture17-27Data Warehouse Architecture (Basic)17-27Data Warehouse Architecture (with a Staging Area)17-27Data Warehouse Architecture (with a Staging Area and Data Marts)17-28Overview of Extraction, Transformation, and Loading (ETL)17-29Business Intelligence17-30xviii

Analytic SQL17-30Analytic Views17-31OLAP17-32Oracle Advanced Analytics17-32Overview of Oracle Information Integration17-33Federated Access1817-34Distributed SQL17-34Database Links17-34Information Sharing17-35Oracle GoldenGate17-35Oracle Database Advanced Queuing (AQ)17-36Concepts for Database AdministratorsDuties of Database Administrators18-1Tools for Database Administrators18-2Oracle Enterprise Manager18-2Oracle Enterprise Manager Cloud Control18-2Oracle Enterprise Manager Database Express 12c18-3SQL*Plus18-3Tools for Database Installation and Configuration18-4Tools for Oracle Net Configuration and Administration18-4Tools for Data Movement and Analysis18-5SQL*Loader18-6Oracle Data Pump Export and Import18-7Oracle LogMiner18-9ADR Command Interpreter (ADRCI)Topics for Database AdministratorsBackup and Recovery18-1018-1018-10Backup and Recovery Techniques18-11Recovery Manager Architecture18-12Database Backups18-13Data Repair18-15Zero Data Loss Recovery Appliance18-19Memory Management18-21Automatic Memory Management18-22Shared Memory Management of the SGA18-23Memory Management of the Instance PGA18-24Summary of Memory Management Methods18-25Resource Management and Task SchedulingDatabase Resource Manager18-2718-27xix

19Oracle Scheduler18-29Performance and Tuning18-30Database Self-Monitoring18-31Automatic Workload Repository (AWR)18-31Automatic Database Monitor (ADDM)18-33Active Session History (ASH)18-33Application and SQL Tuning18-34Concepts for Database DevelopersDuties of Database Developers19-1Tools for Database Developers19-2SQL Developer19-2Oracle Application Express19-2Oracle JDeveloper19-3Oracle Developer Tools for Visual Studio .NET19-3Topics for Database Developers19-3Principles of Application Design and Tuning19-4Client-Side Database Programming19-5Embedded SQL19-5Client-Side APIs19-8Globalization Support19-10Globalization Support Environment19-11Oracle Globalization Development Kit19-13Unstructured Data19-14Overview of XML in Oracle Database19-14Overview of JSON in Oracle Database19-15Overview of LOBs19-18Overview of Oracle Text19-20Overview of Oracle Spatial and Graph19-21GlossaryIndexxx

PrefaceThis manual provides an architectural and conceptual overview of the Oracle databaseserver, which is an object-relational database management system.The book describes how the Oracle database server functions, and it lays aconceptual foundation for much of the practical information contained in othermanuals. Information in this manual applies to the Oracle database server runningon all operating systems.This preface contains these topics: Audience Documentation Accessibility Related Documentation ConventionsAudienceOracle Database Concepts is intended for technical users, primarily databaseadministrators and database application developers, who are new to Oracle Database.Typically, the reader of this manual has had experience managing or developingapplications for other relational databases.To use this manual, you must know the following: Relational database concepts in general Concepts and terminology in Introduction to Oracle Database The operating system environment under which you are running OracleDocumentation AccessibilityFor information about Oracle's commitment to accessibility, visit theOracle Accessibility Program website at http://www.oracle.com/pls/topic/lookup?ctx acc&id docacc.Access to Oracle SupportOracle customers that have purchased support have access to electronic supportthrough My Oracle Support. For information, visit http://www.oracle.com/pls/topic/lookup?ctx acc&id info or visit http://www.oracle.com/pls/topic/lookup?ctx acc&id trsif you are hearing impaired.xxi

PrefaceRelated DocumentationThis manual is intended to be read with the following manuals: Oracle Database 2 Day DBA Oracle Database 2 Day Developer's GuideFor more related documentation, see "Oracle Database Documentation Roadmap".Many manuals in the Oracle Database documentation set use the sample schemasof the database that is installed by default when you install Oracle Database. Referto Oracle Database Sample Schemas for information on how these schemas werecreated and how you can use them.ConventionsThe following text conventions are used in this manual:ConventionMeaningboldfaceBoldface type indicates graphical user interface elements associatedwith an action, or terms defined in text or the glossary.italicItalic type indicates manual titles, emphasis, or placeholder variables forwhich you supply particular values.monospaceMonospace type indicates commands within a paragraph, URLs, codein examples, text that appears on the screen, or text that you enter.xxii

Changes in This Release for OracleDatabase ConceptsThis preface contains: Changes in Oracle Database Release 19c, Version 19.1 Changes in Oracle Database Release 18c, Version 18.1Changes in Oracle Database Release 19c, Version 19.1Oracle Database Concepts for Oracle Database release 19c, version 19.1 has thefollowing changes.New FeaturesThe following major features are new in this release: Deferred insertsApplications can stream single-row inserts into special buffers stored in the largepool. The inserts are “deferred” because the database writes these buffers to datafiles asynchronously. The inserts are committed automatically and cannot be rolledback.See "Large Pool Buffers for Deferred Inserts". Hybrid partitioned tablesA table can contain internal and external partitions. Internal partitions consumespace inside the database (segments). External partitions are stored outside thedatabase using external table functionality. For example, a sales table mightcontain two partitions stored in data files and three partitions s

Changes in This Release for Oracle Database Concepts Changes in Oracle Database Release 19c, Version 19.1 xxiii Changes in Oracle Database Release 18c, Version 18.1 xxiv . Relational Database Management System \(RDBMS\)1-2. Brief History of Oracle Database1-3. Schema Objects1-4. Tables1-5. Indexes1-5. Data Access1-6. Structured Query Language .