SlideShare a Scribd company logo
1 of 15
Download to read offline
CoreDB

A plug-in based, extensible database solution.


By Huangtao (Sean) Xiong (Now Research Engineer at NICTA)
   Xu Zhao (Now Software Engineer at Ryarc Digital)
   Van Munin Chhieng (Now Software Engineer at MQ Group)


   Service Oriented Computing Research Group
   School of Computer Science And Engineering
Architecture
Overview
   Performs powerful object relational mapping.
   Offers developers:
       Query on databases      – CoreDB Base
       Trace historical data   – CoreDB Tracing
       Apply security policies – CoreDB Security
       And do fulltext search – CoreDB FulltextSearch
    programmatically.
CoreDB Object Relational Mapping
   Abstracts relational databases to java objects:
        Database          – DatabaseSchema
        DB tables         – EntityClass
        DB table column – AttributeClass
        Table data row    – EntityInstance
   Easily build DB connection and generate DB mapping
    By creating EntityController Object
    String path = “credential.txt”; // stores DB connection parameters
    IEntityController iec= new EntityController(path);
   No Mapping configuration file, all mappings stored in memory
   No table beans and daos will be generated
    Get Table definition object by calling EntityClass ec = iec.getEntityClass(tableName);
    Get Table columns object by calling ec.getAttributeClasses();
    Or get particular column: iec.getAttributeClass(tableName, columnName);
CoreDB Base

Query on Database (CRUD Operations)
   CRUD on Data:
    CoreDB Base offers developers to create, read, update
    and delete data rows and do joins among tables
    programmatically.
   CRUD on Data Schema:
    CoreDB Base offers developers to create tables, get table
    definitions, update tables (add/update/delete columns)
    and delete tables programmatically
Example – Create a data row

   // set the table name
    String tableName = “the name of table”;
   // create entity instance object for the table
    EntityInstance entity = iec.createEntityInstanceFor(tableName);
   // to set the value of columns
    entity.set(columnName, columnValue);
   //for example, set value for a string type column 'FirstName'
    entity.set("FirstName", “John”);
   // Insert into DB
    iec.createEntity(entity);
Example – Create a table
   // Create a list of AttributeClasses (Columns)
    List<AttributeClass> acl = new LinkedList<AttributeClass>();
    AttributeClass ac = AttributeClass(“ColumnName”, Integer.class);
    ac. setPrimaryKey(true); ac. setAutoIncrement(true);
    acl.add(ac);
   // Create index for table
    List<IndexClass> icl = new LinkedList<IndexClass>();
    IndexClass indexClass = new IndexClass(ac, true); // true means unique index
    icl.add(indexClass);
   // Create an EntityClass Object (table)
    EntityClass ec = new EntityClass(“TableName”, acl, icl);
   // Create table in DB
    iec.deployDefinition(ec);
CoreDB Tracing

   Extends CoreDB Base
   Developers can read all the historical data and know
    who is the operator for every data modification
   Can be easily applied on existing Data tables.
    By calling iec.initializeMode(true, Mode.TRACING);
   Do not do any modification on existing Data tables
   Can be easily de-tracing – remove tracing.
User Case

John Simth is the CEO of company A and he has been worked in A for 12
years. He was promoted twice from Manager to Director (in 2000) and
then CEO (in 2004) over the past 12 years.

HR's record in data table 'employee'

   ID    FN     LN       DOB          Address     Tel        Title    Salary    Start date


   001   John    Simth   13/07/1963   Queens st    1234567      CEO     500 k   02/02/1999
User Case with Tracing

      HR's record in data table 'employee'
       ID      FN           LN         DOB           Address       Tel           Title            Salary         Start date


       001     John          Simth      13/07/1963    Queens st      1234567          CEO           500 k         02/02/1999




      HR's tracing record (between 01/01/1999 and currnet)

ID     FN       LN               DOB          Address      Tel           Title           Salary            Start date   Last          Last
                                                                                                                        Updated       Update
                                                                                                                        By            Date
001     John        Simth        13/07/1963    Queens st     1234567           CEO          500 k          02/02/1999      Linda      04/04/2004

001     John        Simth        13/07/1963     King st      1234567       Director         300 k          02/02/1999      Linda      02/02/2001

001     John        Simth        13/07/1963     Park St        1234567     Manager          150 k          02/02/1999         Linda   02/02/1999
CoreDB Security
   Extends CoreDB Base
   Offers data access controlling (CRUD)
        Controlling on users
                     User group level
                      


                    user level


        Security on Data
                   Data rows
                      


                  Table columns


   Can be easily applied on existing Data tables.
    By calling iec.initializeMode(true, Mode.SECURITY);
   Do not do any modification on existing Data tables
   Can be easily removed
User Case with Security

HR's record in data table 'employee' (Viewed by HR Administrator)
 ID    FN      LN       DOB          Address      Tel         Title         Salary     Start date


 001   John     Simth   13/07/1963    Queens st     1234567       CEO           ***    02/02/1999




HR's record in data table 'employee' (Viewed by Payroll Adviser)
 ID    FN      LN       DOB          Address      Tel         Title         Salary     Start date


 001   John     Simth         ***     Queens st     1234567       CEO          500 k   02/02/1999




HR's record in data table 'employee' (Viewed by other employees)
 ID    FN      LN       DOB          Address      Tel         Title         Salary     Start date


 001    John    Simth         ***        ***        1234567           CEO        ***    02/02/1999
CoreDB Fulltext Search

   Extends CoreDB Base
   Applies Fulltextsearch on tables OR table columns
   Index data can be stored in DB, File or Memory
   Easily build FTS index and remove FTS index
   Supports CUD operations with index
   Supports FUZZ read and result Entities will be sorted by
    similarity
   Compatible with Luence Query Syntax
What's the next?

   CoreDB DataCube
   Researcheres and Engineers in SOC are working on
    CoreDB extensions
   Probably will be open source soon????
Thank you!

Questions are welcome!!

More Related Content

Viewers also liked

Company presentation
Company presentationCompany presentation
Company presentationJames Hilbert
 
Phase 2b emerge study of cdx 011
Phase 2b emerge study of cdx 011Phase 2b emerge study of cdx 011
Phase 2b emerge study of cdx 011James Hilbert
 
Saras's - Planning tool
Saras's - Planning toolSaras's - Planning tool
Saras's - Planning toolhsceunice
 
Docetaxel Versus Docetaxel/Cisplatin in NSCLC
Docetaxel Versus Docetaxel/Cisplatin in NSCLCDocetaxel Versus Docetaxel/Cisplatin in NSCLC
Docetaxel Versus Docetaxel/Cisplatin in NSCLCJames Hilbert
 
Lovenox trial scheduling
Lovenox trial schedulingLovenox trial scheduling
Lovenox trial schedulingJames Hilbert
 
Novel therapies in hcc
Novel therapies in hccNovel therapies in hcc
Novel therapies in hccJames Hilbert
 

Viewers also liked (9)

Company presentation
Company presentationCompany presentation
Company presentation
 
Phase 2b emerge study of cdx 011
Phase 2b emerge study of cdx 011Phase 2b emerge study of cdx 011
Phase 2b emerge study of cdx 011
 
Saras's - Planning tool
Saras's - Planning toolSaras's - Planning tool
Saras's - Planning tool
 
Docetaxel Versus Docetaxel/Cisplatin in NSCLC
Docetaxel Versus Docetaxel/Cisplatin in NSCLCDocetaxel Versus Docetaxel/Cisplatin in NSCLC
Docetaxel Versus Docetaxel/Cisplatin in NSCLC
 
Goldman mnta
Goldman mntaGoldman mnta
Goldman mnta
 
Lovenox trial scheduling
Lovenox trial schedulingLovenox trial scheduling
Lovenox trial scheduling
 
Novel therapies in hcc
Novel therapies in hccNovel therapies in hcc
Novel therapies in hcc
 
Optr 04052011
Optr 04052011Optr 04052011
Optr 04052011
 
Nsclc 2nd line
Nsclc 2nd lineNsclc 2nd line
Nsclc 2nd line
 

Recently uploaded

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Farhan Tariq
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...itnewsafrica
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch TuesdayIvanti
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Alkin Tezuysal
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Kaya Weers
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFMichael Gough
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesBernd Ruecker
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfAarwolf Industries LLC
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityIES VE
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfROWELL MARQUINA
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Strongerpanagenda
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Mark Goldstein
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentMahmoud Rabie
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Nikki Chapple
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfIngrid Airi González
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality AssuranceInflectra
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...Wes McKinney
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkPixlogix Infotech
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI AgeCprime
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observabilityitnewsafrica
 

Recently uploaded (20)

Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...Genislab builds better products and faster go-to-market with Lean project man...
Genislab builds better products and faster go-to-market with Lean project man...
 
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...Abdul Kader Baba- Managing Cybersecurity Risks  and Compliance Requirements i...
Abdul Kader Baba- Managing Cybersecurity Risks and Compliance Requirements i...
 
2024 April Patch Tuesday
2024 April Patch Tuesday2024 April Patch Tuesday
2024 April Patch Tuesday
 
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
Unleashing Real-time Insights with ClickHouse_ Navigating the Landscape in 20...
 
Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)Design pattern talk by Kaya Weers - 2024 (v2)
Design pattern talk by Kaya Weers - 2024 (v2)
 
All These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDFAll These Sophisticated Attacks, Can We Really Detect Them - PDF
All These Sophisticated Attacks, Can We Really Detect Them - PDF
 
QCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architecturesQCon London: Mastering long-running processes in modern architectures
QCon London: Mastering long-running processes in modern architectures
 
Landscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdfLandscape Catalogue 2024 Australia-1.pdf
Landscape Catalogue 2024 Australia-1.pdf
 
Decarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a realityDecarbonising Buildings: Making a net-zero built environment a reality
Decarbonising Buildings: Making a net-zero built environment a reality
 
QMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdfQMMS Lesson 2 - Using MS Excel Formula.pdf
QMMS Lesson 2 - Using MS Excel Formula.pdf
 
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better StrongerModern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
Modern Roaming for Notes and Nomad – Cheaper Faster Better Stronger
 
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
Arizona Broadband Policy Past, Present, and Future Presentation 3/25/24
 
Digital Tools & AI in Career Development
Digital Tools & AI in Career DevelopmentDigital Tools & AI in Career Development
Digital Tools & AI in Career Development
 
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
Microsoft 365 Copilot: How to boost your productivity with AI – Part two: Dat...
 
Generative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdfGenerative Artificial Intelligence: How generative AI works.pdf
Generative Artificial Intelligence: How generative AI works.pdf
 
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance[Webinar] SpiraTest - Setting New Standards in Quality Assurance
[Webinar] SpiraTest - Setting New Standards in Quality Assurance
 
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
The Future Roadmap for the Composable Data Stack - Wes McKinney - Data Counci...
 
React Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App FrameworkReact Native vs Ionic - The Best Mobile App Framework
React Native vs Ionic - The Best Mobile App Framework
 
A Framework for Development in the AI Age
A Framework for Development in the AI AgeA Framework for Development in the AI Age
A Framework for Development in the AI Age
 
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security ObservabilityGlenn Lazarus- Why Your Observability Strategy Needs Security Observability
Glenn Lazarus- Why Your Observability Strategy Needs Security Observability
 

Core db framework

  • 1. CoreDB A plug-in based, extensible database solution. By Huangtao (Sean) Xiong (Now Research Engineer at NICTA) Xu Zhao (Now Software Engineer at Ryarc Digital) Van Munin Chhieng (Now Software Engineer at MQ Group) Service Oriented Computing Research Group School of Computer Science And Engineering
  • 3. Overview  Performs powerful object relational mapping.  Offers developers:  Query on databases – CoreDB Base  Trace historical data – CoreDB Tracing  Apply security policies – CoreDB Security  And do fulltext search – CoreDB FulltextSearch programmatically.
  • 4. CoreDB Object Relational Mapping  Abstracts relational databases to java objects:  Database – DatabaseSchema  DB tables – EntityClass  DB table column – AttributeClass  Table data row – EntityInstance  Easily build DB connection and generate DB mapping By creating EntityController Object String path = “credential.txt”; // stores DB connection parameters IEntityController iec= new EntityController(path);  No Mapping configuration file, all mappings stored in memory  No table beans and daos will be generated Get Table definition object by calling EntityClass ec = iec.getEntityClass(tableName); Get Table columns object by calling ec.getAttributeClasses(); Or get particular column: iec.getAttributeClass(tableName, columnName);
  • 5. CoreDB Base Query on Database (CRUD Operations)  CRUD on Data: CoreDB Base offers developers to create, read, update and delete data rows and do joins among tables programmatically.  CRUD on Data Schema: CoreDB Base offers developers to create tables, get table definitions, update tables (add/update/delete columns) and delete tables programmatically
  • 6. Example – Create a data row  // set the table name String tableName = “the name of table”;  // create entity instance object for the table EntityInstance entity = iec.createEntityInstanceFor(tableName);  // to set the value of columns entity.set(columnName, columnValue);  //for example, set value for a string type column 'FirstName' entity.set("FirstName", “John”);  // Insert into DB iec.createEntity(entity);
  • 7. Example – Create a table  // Create a list of AttributeClasses (Columns) List<AttributeClass> acl = new LinkedList<AttributeClass>(); AttributeClass ac = AttributeClass(“ColumnName”, Integer.class); ac. setPrimaryKey(true); ac. setAutoIncrement(true); acl.add(ac);  // Create index for table List<IndexClass> icl = new LinkedList<IndexClass>(); IndexClass indexClass = new IndexClass(ac, true); // true means unique index icl.add(indexClass);  // Create an EntityClass Object (table) EntityClass ec = new EntityClass(“TableName”, acl, icl);  // Create table in DB iec.deployDefinition(ec);
  • 8. CoreDB Tracing  Extends CoreDB Base  Developers can read all the historical data and know who is the operator for every data modification  Can be easily applied on existing Data tables. By calling iec.initializeMode(true, Mode.TRACING);  Do not do any modification on existing Data tables  Can be easily de-tracing – remove tracing.
  • 9. User Case John Simth is the CEO of company A and he has been worked in A for 12 years. He was promoted twice from Manager to Director (in 2000) and then CEO (in 2004) over the past 12 years. HR's record in data table 'employee' ID FN LN DOB Address Tel Title Salary Start date 001 John Simth 13/07/1963 Queens st 1234567 CEO 500 k 02/02/1999
  • 10. User Case with Tracing HR's record in data table 'employee' ID FN LN DOB Address Tel Title Salary Start date 001 John Simth 13/07/1963 Queens st 1234567 CEO 500 k 02/02/1999 HR's tracing record (between 01/01/1999 and currnet) ID FN LN DOB Address Tel Title Salary Start date Last Last Updated Update By Date 001 John Simth 13/07/1963 Queens st 1234567 CEO 500 k 02/02/1999 Linda 04/04/2004 001 John Simth 13/07/1963 King st 1234567 Director 300 k 02/02/1999 Linda 02/02/2001 001 John Simth 13/07/1963 Park St 1234567 Manager 150 k 02/02/1999 Linda 02/02/1999
  • 11. CoreDB Security  Extends CoreDB Base  Offers data access controlling (CRUD)  Controlling on users User group level   user level  Security on Data Data rows   Table columns  Can be easily applied on existing Data tables. By calling iec.initializeMode(true, Mode.SECURITY);  Do not do any modification on existing Data tables  Can be easily removed
  • 12. User Case with Security HR's record in data table 'employee' (Viewed by HR Administrator) ID FN LN DOB Address Tel Title Salary Start date 001 John Simth 13/07/1963 Queens st 1234567 CEO *** 02/02/1999 HR's record in data table 'employee' (Viewed by Payroll Adviser) ID FN LN DOB Address Tel Title Salary Start date 001 John Simth *** Queens st 1234567 CEO 500 k 02/02/1999 HR's record in data table 'employee' (Viewed by other employees) ID FN LN DOB Address Tel Title Salary Start date 001 John Simth *** *** 1234567 CEO *** 02/02/1999
  • 13. CoreDB Fulltext Search  Extends CoreDB Base  Applies Fulltextsearch on tables OR table columns  Index data can be stored in DB, File or Memory  Easily build FTS index and remove FTS index  Supports CUD operations with index  Supports FUZZ read and result Entities will be sorted by similarity  Compatible with Luence Query Syntax
  • 14. What's the next?  CoreDB DataCube  Researcheres and Engineers in SOC are working on CoreDB extensions  Probably will be open source soon????