Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
148 changes: 148 additions & 0 deletions data-platform/data-development/ROCK_SCHEMA_DDL.sql
Original file line number Diff line number Diff line change
@@ -0,0 +1,148 @@
-- DDL for ROCK_USR schema (only "ROCK_" prefixed tables)
--------------------------------------------------------

-- Table: ROCK_ARTISTS
CREATE TABLE "ROCK_USR"."ROCK_ARTISTS"
( "ARTIST_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
"ARTIST_NAME" VARCHAR2(200) COLLATE "USING_NLS_COMP" NOT NULL ENABLE,
"FORMED_YEAR" NUMBER(4,0),
"ORIGIN_COUNTRY" VARCHAR2(100) COLLATE "USING_NLS_COMP",
"GENRE" VARCHAR2(100) COLLATE "USING_NLS_COMP",
"STATUS" VARCHAR2(50) COLLATE "USING_NLS_COMP",
"BIOGRAPHY" CLOB COLLATE "USING_NLS_COMP",
"WEBSITE_URL" VARCHAR2(300) COLLATE "USING_NLS_COMP",
"CREATED_DATE" DATE DEFAULT SYSDATE,
PRIMARY KEY ("ARTIST_ID")
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ENABLE
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA"
LOB ("BIOGRAPHY") STORE AS SECUREFILE (
TABLESPACE "DATA" ENABLE STORAGE IN ROW 4000 CHUNK 8192
NOCACHE LOGGING NOCOMPRESS KEEP_DUPLICATES
STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;


-- Table: ROCK_ALBUMS
CREATE TABLE "ROCK_USR"."ROCK_ALBUMS"
( "ALBUM_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
"ARTIST_ID" NUMBER NOT NULL ENABLE,
"ALBUM_TITLE" VARCHAR2(200) COLLATE "USING_NLS_COMP" NOT NULL ENABLE,
"RELEASE_YEAR" NUMBER(4,0),
"GENRE" VARCHAR2(100) COLLATE "USING_NLS_COMP",
"LABEL" VARCHAR2(100) COLLATE "USING_NLS_COMP",
"CREATED_DATE" DATE DEFAULT SYSDATE,
PRIMARY KEY ("ALBUM_ID")
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ENABLE,
CONSTRAINT "FK_ROCK_ALBUMS_ARTIST" FOREIGN KEY ("ARTIST_ID")
REFERENCES "ROCK_USR"."ROCK_ARTISTS" ("ARTIST_ID") ENABLE
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ;


-- Table: ROCK_SONGS
CREATE TABLE "ROCK_USR"."ROCK_SONGS"
( "SONG_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
"ALBUM_ID" NUMBER NOT NULL ENABLE,
"SONG_TITLE" VARCHAR2(200) COLLATE "USING_NLS_COMP" NOT NULL ENABLE,
"DURATION" NUMBER(5,0),
"TRACK_NUMBER" NUMBER,
"CREATED_DATE" DATE DEFAULT SYSDATE,
"IS_SINGLE" CHAR(1) COLLATE "USING_NLS_COMP",
PRIMARY KEY ("SONG_ID")
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ENABLE,
CHECK (is_single IN ('Y','N')) ENABLE,
CONSTRAINT "FK_ROCK_SONGS_ALBUM" FOREIGN KEY ("ALBUM_ID")
REFERENCES "ROCK_USR"."ROCK_ALBUMS" ("ALBUM_ID") ENABLE
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ;


-- Table: ROCK_CONCERTS
CREATE TABLE "ROCK_USR"."ROCK_CONCERTS"
( "CONCERT_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
"ARTIST_ID" NUMBER NOT NULL ENABLE,
"VENUE" VARCHAR2(200) COLLATE "USING_NLS_COMP",
"CITY" VARCHAR2(100) COLLATE "USING_NLS_COMP",
"COUNTRY" VARCHAR2(100) COLLATE "USING_NLS_COMP",
"CONCERT_DATE" DATE,
"TOUR_NAME" VARCHAR2(200) COLLATE "USING_NLS_COMP",
"ATTENDANCE" NUMBER,
"CONCERT_STATUS" VARCHAR2(50) COLLATE "USING_NLS_COMP",
"NOTES" CLOB COLLATE "USING_NLS_COMP",
"CREATED_DATE" DATE DEFAULT SYSDATE,
PRIMARY KEY ("CONCERT_ID")
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ENABLE,
CONSTRAINT "FK_ROCK_CONCERTS_ARTIST" FOREIGN KEY ("ARTIST_ID")
REFERENCES "ROCK_USR"."ROCK_ARTISTS" ("ARTIST_ID") ENABLE
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA"
LOB ("NOTES") STORE AS SECUREFILE (
TABLESPACE "DATA" ENABLE STORAGE IN ROW 4000 CHUNK 8192
NOCACHE LOGGING NOCOMPRESS KEEP_DUPLICATES
STORAGE(INITIAL 262144 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)) ;


-- Table: ROCK_SETLIST_SONGS
CREATE TABLE "ROCK_USR"."ROCK_SETLIST_SONGS"
( "SETLIST_ID" NUMBER GENERATED BY DEFAULT AS IDENTITY MINVALUE 1 MAXVALUE 9999999999999999999999999999 INCREMENT BY 1 START WITH 1 CACHE 20 NOORDER NOCYCLE NOKEEP NOSCALE NOT NULL ENABLE,
"CONCERT_ID" NUMBER NOT NULL ENABLE,
"SONG_ID" NUMBER,
"POSITION" NUMBER,
"NOTES" VARCHAR2(500) COLLATE "USING_NLS_COMP",
PRIMARY KEY ("SETLIST_ID")
USING INDEX PCTFREE 10 INITRANS 20 MAXTRANS 255 COMPUTE STATISTICS
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ENABLE,
CONSTRAINT "FK_ROCK_SETLIST_CONCERT" FOREIGN KEY ("CONCERT_ID")
REFERENCES "ROCK_USR"."ROCK_CONCERTS" ("CONCERT_ID") ENABLE,
CONSTRAINT "FK_ROCK_SETLIST_SONG" FOREIGN KEY ("SONG_ID")
REFERENCES "ROCK_USR"."ROCK_SONGS" ("SONG_ID") ENABLE
) DEFAULT COLLATION "USING_NLS_COMP" SEGMENT CREATION IMMEDIATE
PCTFREE 10 PCTUSED 40 INITRANS 10 MAXTRANS 255
NOCOMPRESS LOGGING
STORAGE(INITIAL 65536 NEXT 1048576 MINEXTENTS 1 MAXEXTENTS 2147483645
PCTINCREASE 0 FREELISTS 1 FREELIST GROUPS 1
BUFFER_POOL DEFAULT FLASH_CACHE DEFAULT CELL_FLASH_CACHE DEFAULT)
TABLESPACE "DATA" ;
Original file line number Diff line number Diff line change
@@ -0,0 +1,51 @@
# Globally Distributed Database (GDD)

A distributed database is a database scaling technique based on horizontal partitioning of data across multiple independent physical databases. Each physical database in such a configuration is called a shard. From the perspective of an application, a distributed database looks like a single database; the number of shards, and the distribution of data across those shards, are completely transparent to the application.

A sharded table is partitioned across all shards of the distributed database. Table partitions on each shard are not different from partitions that could be used in an Oracle database that is not sharded.

Key benefits of Oracle Globally Distributed Database:

- Linear Scalability : The Oracle Globally Distributed Database shared–nothing architecture eliminates performance bottlenecks and provides unlimited scalability (up to 1000 shards scaling support);

- Extreme Availability and Fault Isolation: The failure or slow-down of one shard does not affect the performance or availability of other shards. An unplanned outage or planned maintenance of a shard impacts only the availability of the data on that shard;

- Geographical Distribution of Data: Globally Distributed Database enables you to deploy a global database, where a single logical db could be distributed over multiple geographies, making it possible to satisfy data privacy regulatory requirements (Data Sovreignity) as well as allows to store particular data close to its consumers (Data Proximity).

Globally Distributed Database has a flexible deployment model, embracing the Shared-Nothing architecture. Because the database shards do not share any resources, the shards can exist anywhere on a variety of on-premises and cloud systems.

You can choose to deploy all of the shards on-premises, have them all in the cloud, or you can split them up between cloud and on-premises systems to suit your needs.

Shards can be deployed on all database deployment models such as single instance, Exadata, and Oracle RAC.

Oracle Globally Distributed Database relies on replication for availability. Oracle Globally Distributed Database provides various means of replication depending on your needs:

- Oracle Data Guard.

- Raft Replication.


Replication provides high availability, disaster recovery, and additional scalability for reads.
A unit of replication can be a shard, a part of a shard, or a group of shards. You can choose either Oracle Data Guard or Raft replication to replicate your data.
Oracle Globally Distributed Database automatically deploys the specified replication topology to the procured systems, and enables data replication. Replication is declaratively specified using GDSCTL command syntax.

Reviewed: 1.09.2025


# Table of Contents

1. [Useful Links](#useful-links)


# Useful Links

- [Globally Distributed Database in 23ai](https://docs.oracle.com/en/database/oracle/oracle-database/23/shard/changes-oracle-database-23ai.html#GUID-BDC14D70-C513-4EC3-B1A4-AA0616290800)


# License

Copyright (c) 2025 Oracle and/or its affiliates.

Licensed under the Universal Permissive License (UPL), Version 1.0.

See [LICENSE](https://github.com/oracle-devrel/technology-engineering/blob/main/LICENSE) for more details.