Upload
abigayle-cameron
View
219
Download
3
Tags:
Embed Size (px)
Citation preview
Copyright© 2004 Empress Software, Inc. All Rights Reserved.
Database Database
• A lasting collection of shared data organized to A lasting collection of shared data organized to support storage, retrieval, and modification by support storage, retrieval, and modification by application programsapplication programs
• Database consists of data and metadataDatabase consists of data and metadata
Data is actual user dataset
Metadata isData dictionaryExecutable logic
Database Database
• A lasting collection of shared data organized to A lasting collection of shared data organized to support storage, retrieval, and modification by support storage, retrieval, and modification by application programsapplication programs
• Database consists of data and metadataDatabase consists of data and metadata
Data is actual user dataset
Metadata isData dictionaryExecutable logic
Database Management SystemDatabase Management System
A reusable software component for A reusable software component for
managing and encapsulating one managing and encapsulating one
or more databases.or more databases.
Database Management SystemDatabase Management System
A reusable software component for A reusable software component for
managing and encapsulating one managing and encapsulating one
or more databases.or more databases.
Embedded DatabaseEmbedded Database
• Database hidden within an application• Unseen by users• Require no database administration• Can not be accessed by other applications or users
This presentation focuses on a niche of the embedded This presentation focuses on a niche of the embedded database market database market
• The Real-Time Systems marketThe Real-Time Systems market
Embedded DatabaseEmbedded Database
• Database hidden within an application• Unseen by users• Require no database administration• Can not be accessed by other applications or users
This presentation focuses on a niche of the embedded This presentation focuses on a niche of the embedded database market database market
• The Real-Time Systems marketThe Real-Time Systems market
Data is being collected and acted upon in real-time
Reaction to data is driven by the embedded database on the device itself rather than a back end server
Data is being collected and acted upon in real-time
Reaction to data is driven by the embedded database on the device itself rather than a back end server
Trends in the real-time embedded Trends in the real-time embedded market:market:
Devices have become more intelligent and Devices have become more intelligent and capable, and as a result:capable, and as a result:
• Devices need to hold and process large Devices need to hold and process large amount of dataamount of data
• What used to be hard-wired devices, now What used to be hard-wired devices, now have a on-device built-in operating systemhave a on-device built-in operating system
Trends in the real-time embedded Trends in the real-time embedded market:market:
Devices have become more intelligent and Devices have become more intelligent and capable, and as a result:capable, and as a result:
• Devices need to hold and process large Devices need to hold and process large amount of dataamount of data
• What used to be hard-wired devices, now What used to be hard-wired devices, now have a on-device built-in operating systemhave a on-device built-in operating system
Intelligent, knowledge based devicesIntelligent, knowledge based devices
Store and process large amount of dataStore and process large amount of data Bigger Flash, large storage micro Disks Bigger Flash, large storage micro Disks Larger and larger memoryLarger and larger memory More and faster processing powerMore and faster processing power
8 bit 8 bit 16 bit 16 bit 32 bit 32 bit 64 bit 64 bit
Intelligent, knowledge based devicesIntelligent, knowledge based devices
Store and process large amount of dataStore and process large amount of data Bigger Flash, large storage micro Disks Bigger Flash, large storage micro Disks Larger and larger memoryLarger and larger memory More and faster processing powerMore and faster processing power
8 bit 8 bit 16 bit 16 bit 32 bit 32 bit 64 bit 64 bit
Real-time Embedded SystemsReal-time Embedded Systems
Embedded real-time DBMS requirements:Embedded real-time DBMS requirements:
• ReliabilityReliability – Unattended operation 24/7 – Unattended operation 24/7
• PredictabilitPredictabilityy – Execution time and resource consumption – Execution time and resource consumption
• PerformancePerformance – Kernel level control, speed and operations– Kernel level control, speed and operations
• SizeSize – Small footprint and small memory usage– Small footprint and small memory usage
Embedded real-time DBMS requirements:Embedded real-time DBMS requirements:
• ReliabilityReliability – Unattended operation 24/7 – Unattended operation 24/7
• PredictabilitPredictabilityy – Execution time and resource consumption – Execution time and resource consumption
• PerformancePerformance – Kernel level control, speed and operations– Kernel level control, speed and operations
• SizeSize – Small footprint and small memory usage– Small footprint and small memory usage
Unattended operation 24/7Unattended operation 24/7
Run for extended periods of timeRun for extended periods of time• without performance degradationwithout performance degradation• without the aid of a system administratorwithout the aid of a system administrator
Data IntegrityData Integrity• Referential Constraints Referential Constraints • Range ChecksRange Checks• User-Defined functionsUser-Defined functions• Triggers and Stored ProceduresTriggers and Stored Procedures• TransactionsTransactions• Power Down RecoveryPower Down Recovery
Minimal Storage/Disk FragmentationMinimal Storage/Disk Fragmentation
Unattended operation 24/7Unattended operation 24/7
Run for extended periods of timeRun for extended periods of time• without performance degradationwithout performance degradation• without the aid of a system administratorwithout the aid of a system administrator
Data IntegrityData Integrity• Referential Constraints Referential Constraints • Range ChecksRange Checks• User-Defined functionsUser-Defined functions• Triggers and Stored ProceduresTriggers and Stored Procedures• TransactionsTransactions• Power Down RecoveryPower Down Recovery
Minimal Storage/Disk FragmentationMinimal Storage/Disk Fragmentation
Execution time and resource consumptionExecution time and resource consumption
Able to predictAble to predict • how long a database operation will takehow long a database operation will take• how much disk space the database will needhow much disk space the database will need
• User defined time limits on database callsUser defined time limits on database calls• Set a limit on the number of records returnedSet a limit on the number of records returned• Shared memory utility preset limitsShared memory utility preset limits
Execution time and resource consumptionExecution time and resource consumption
Able to predictAble to predict • how long a database operation will takehow long a database operation will take• how much disk space the database will needhow much disk space the database will need
• User defined time limits on database callsUser defined time limits on database calls• Set a limit on the number of records returnedSet a limit on the number of records returned• Shared memory utility preset limitsShared memory utility preset limits
Kernel level control, speed and operationsKernel level control, speed and operations
• Fast database engineFast database engine• Direct access to database structuresDirect access to database structures• Minimum overheadMinimum overhead• Shared memory, global buffers and mapped Shared memory, global buffers and mapped
filesfiles• In-memory databaseIn-memory database• Dirty readsDirty reads
Kernel level control, speed and operationsKernel level control, speed and operations
• Fast database engineFast database engine• Direct access to database structuresDirect access to database structures• Minimum overheadMinimum overhead• Shared memory, global buffers and mapped Shared memory, global buffers and mapped
filesfiles• In-memory databaseIn-memory database• Dirty readsDirty reads
Small footprint and small memory usageSmall footprint and small memory usage
Support for data storage in main memory or Support for data storage in main memory or
persistent storagepersistent storage
• SCSI, RAID, IDE, CD-RW, DVD-ROM, SCSI, RAID, IDE, CD-RW, DVD-ROM,
Compact Flash, etc.Compact Flash, etc.• Shared memory, Ram DiskShared memory, Ram Disk• In-memoryIn-memory
Small footprint and small memory usageSmall footprint and small memory usage
Support for data storage in main memory or Support for data storage in main memory or
persistent storagepersistent storage
• SCSI, RAID, IDE, CD-RW, DVD-ROM, SCSI, RAID, IDE, CD-RW, DVD-ROM,
Compact Flash, etc.Compact Flash, etc.• Shared memory, Ram DiskShared memory, Ram Disk• In-memoryIn-memory
Other special features:Other special features:
• Time Series IndexTime Series Index• Micro Second TimestampsMicro Second Timestamps• Persistent Stored ModulesPersistent Stored Modules• TriggersTriggers• Stored ProceduresStored Procedures• User Defined FunctionsUser Defined Functions• Two-Phase CommitTwo-Phase Commit• Dirty ReadsDirty Reads• Referential Constraints and Range CheckReferential Constraints and Range Check
Other special features:Other special features:
• Time Series IndexTime Series Index• Micro Second TimestampsMicro Second Timestamps• Persistent Stored ModulesPersistent Stored Modules• TriggersTriggers• Stored ProceduresStored Procedures• User Defined FunctionsUser Defined Functions• Two-Phase CommitTwo-Phase Commit• Dirty ReadsDirty Reads• Referential Constraints and Range CheckReferential Constraints and Range Check
Time Series Index
• alternative to B-tree indexing• used for continuously changing data index
distribution (ex. A real-time app which
must run continuously, indexing time or
date values, and there is no opportunity
to drop and recreate the index as it
grows)
Time Series Index
• alternative to B-tree indexing• used for continuously changing data index
distribution (ex. A real-time app which
must run continuously, indexing time or
date values, and there is no opportunity
to drop and recreate the index as it
grows)
Microsecond Timestamps
• for timestamping real-time events• marks time to 1 millionth of a second• maintains dates to the year 10000
Microsecond Timestamps
• for timestamping real-time events• marks time to 1 millionth of a second• maintains dates to the year 10000
Persistent Stored Modules (PSMs)• bring object-oriented capabilities to
relational DBMS• implements Universal Server Plug-Ins• DLLs containing User-Defined Functions,
Triggers, and Stored Procedures• stored as objects in DB schema and are
reusable• performs database or non-database
related operations
Persistent Stored Modules (PSMs)• bring object-oriented capabilities to
relational DBMS• implements Universal Server Plug-Ins• DLLs containing User-Defined Functions,
Triggers, and Stored Procedures• stored as objects in DB schema and are
reusable• performs database or non-database
related operations
Triggers
• automatically “fire” upon execution of
certain user-specified SQL statements• immediately sets into motion a pre-
defined set of events• associated with events such as table
insertions, updates, or deletes• important for autonomous or semi-
autonomous embedded systems
Triggers
• automatically “fire” upon execution of
certain user-specified SQL statements• immediately sets into motion a pre-
defined set of events• associated with events such as table
insertions, updates, or deletes• important for autonomous or semi-
autonomous embedded systems
Stored Procedures
• user-defined procedural database objects that can be invoked by any client program
• reusability and modularity enhance software engineering aspects of the application
• improve performance by reducing network overhead in client-server applications (Stored Procedures run from server side)
Stored Procedures
• user-defined procedural database objects that can be invoked by any client program
• reusability and modularity enhance software engineering aspects of the application
• improve performance by reducing network overhead in client-server applications (Stored Procedures run from server side)
User Defined FunctionsUser Defined Functions
• object-like, reusable functionsobject-like, reusable functions• offer powerful manipulation of Bulk dataoffer powerful manipulation of Bulk data• functions written in C, linked to Emp libsfunctions written in C, linked to Emp libs• create keyword invoked from Empress create keyword invoked from Empress
productsproducts• you can extend standard syntax, for you can extend standard syntax, for
example:example:select name from tableselect name from table
where where SIGNATURESIGNATURE (signal_data) (signal_data)APPROXIMATESAPPROXIMATES SIGNATURESIGNATURE
(input_data)(input_data)
User Defined FunctionsUser Defined Functions
• object-like, reusable functionsobject-like, reusable functions• offer powerful manipulation of Bulk dataoffer powerful manipulation of Bulk data• functions written in C, linked to Emp libsfunctions written in C, linked to Emp libs• create keyword invoked from Empress create keyword invoked from Empress
productsproducts• you can extend standard syntax, for you can extend standard syntax, for
example:example:select name from tableselect name from table
where where SIGNATURESIGNATURE (signal_data) (signal_data)APPROXIMATESAPPROXIMATES SIGNATURESIGNATURE
(input_data)(input_data)
Two-Phase Commit
• when a transaction begins its operations,
no other actions are allowed to interrupt
its operations• ensures distributed database is either
fully updated or fully unchanged• ensures data integrity in distributed
databases
Two-Phase Commit
• when a transaction begins its operations,
no other actions are allowed to interrupt
its operations• ensures distributed database is either
fully updated or fully unchanged• ensures data integrity in distributed
databases
Dirty Reads
• allows users to read data from Empress
database without placing any read locks• enables one user to read a record while
another user has placed an update lock
on the same record• users can fetch data without concern for
locks• increased retrieval speed
Dirty Reads
• allows users to read data from Empress
database without placing any read locks• enables one user to read a record while
another user has placed an update lock
on the same record• users can fetch data without concern for
locks• increased retrieval speed
Referential Constraints and Range Checks
• enforce data integrity• user can add, drop, or redefine attributes
without reloading data; simplifies database
maintenance
Referential Constraints and Range Checks
• enforce data integrity• user can add, drop, or redefine attributes
without reloading data; simplifies database
maintenance
ExamplesExamples
• Stand AloneStand Alone• Client/Server Client/Server
– Provides for bounded resource consumption Provides for bounded resource consumption
– Provides for deterministic responseProvides for deterministic response
DATABASE
EMPRESS DB ENGINEEMPRESS DB ENGINE
ERT APPLICATION
A D T
STAND ALONE MODEL
RTDC CLIENT/SERVER MODEL
DATA SOURCE
RTDC SERVER
DB ENGINE
N E T W O R K
RTDC Client
• Hard Real Time Data Ingest Mechanism
• Tiny Footprint (60 KB)
• Bounded Resource Consumption
• In-Memory only
• Available on most operating systems
can be ported to proprietary o/s
• Empress Unicode UTF-8 port
• Support for CREATE DATABASE and DROP
DATABASE SQL Command
• New Empress Data Type - INTEGER64
• Support for 32-bit & 64-bit Integer SEQUENCE
Data Type
• Implementation of PSM Repository
• Support Scalar Subquery in SELECT, INSERT
and UPDATE Statements
• READ_COMMITTED Transaction Isolation Level
• Performance Improvement for Applications
using Transaction Mode and Table Level
Locking
• Support for "ON DELETE/UPDATE"
CASCADE/SET NULL Functionality
• New 'empmkdb' Behavior
• Implementation of a Capability to Return a
ResultSet from a Stored Procedure in JDBC
Empress Embedded real-time DBMS:Empress Embedded real-time DBMS:
ReliableReliable –– Unattended operation 24/7Unattended operation 24/7
PredictablePredictable – – Execution time and resource consumptionExecution time and resource consumption
Excellent PerformanceExcellent Performance– – Kernel level control, speed and operationsKernel level control, speed and operations
Small FootprintSmall Footprint – – Small footprint and small memory usageSmall footprint and small memory usage
Empress Embedded real-time DBMS:Empress Embedded real-time DBMS:
ReliableReliable –– Unattended operation 24/7Unattended operation 24/7
PredictablePredictable – – Execution time and resource consumptionExecution time and resource consumption
Excellent PerformanceExcellent Performance– – Kernel level control, speed and operationsKernel level control, speed and operations
Small FootprintSmall Footprint – – Small footprint and small memory usageSmall footprint and small memory usage
with special features:with special features:
TimeSeries indexTimeSeries index Microsecond TimestampsMicrosecond Timestamps Persistent Stored ModulesPersistent Stored Modules
TriggersTriggers Stored ProceduresStored Procedures User Defined FunctionsUser Defined Functions
Two-Phase CommitTwo-Phase Commit Dirty ReadsDirty Reads Referential Constraints and Range checksReferential Constraints and Range checks
with special features:with special features:
TimeSeries indexTimeSeries index Microsecond TimestampsMicrosecond Timestamps Persistent Stored ModulesPersistent Stored Modules
TriggersTriggers Stored ProceduresStored Procedures User Defined FunctionsUser Defined Functions
Two-Phase CommitTwo-Phase Commit Dirty ReadsDirty Reads Referential Constraints and Range checksReferential Constraints and Range checks
www.EMPRESS.ruwww.EMPRESS.ruСистема управления реляционными
базам данных реального времени
Официальный дистрибьютор компании Empress Software Inc. на территории России и стран СНГ
SWD Software
Россия, Санкт-Петербург, пр. Ю.Гагарина, 23
(812) 373-02-60, 102-08-33