Specifications
1. Introduction
1.1 Purpose:
The Software Requirement Specification document is meant to delineate the features of Database Switcher, so as to serve as a guide to the developers on one hand and a software validation document for the prospective client on the other.
1.2 Scope:
Database Switcher will allow the user to switch their datasets from one database to another. The databases and the schema that are in scope of DSwitch are:
In Scope:
i. Databases
a. SQLite 2.8.17
b. SQLite 3.6.10
c. MySQL 5.0.51
ii. Schema
a. Tables
b. Virtual Tables
c. Triggers
d. Indexes
e. Views
1.3 Definition, Acronyms and Abbreviation:
DSwitch – Database Switcher module is called DSwitch.
DB – Database.
GUI – Graphical User Interface.
TCP/IP - Transmission Control Protocol / Internet Protocol
1.4 Overview:
General description deals with product overview, product functions, user characteristics and general constraints. Specific requirements deal with external interface requirements, functional requirements, non-functional requirements and design constraints.
2. General Description
2.1 Product Overview:
Database Switcher module helps products switch their backend data store, by transparently migrating the entire datasets from one Open Source database to another.
2.2. Product Function
The main function of DSwitch is to switch the supported schema and their associated data from the source database to the target database. The currently supported databases are MySQL 5.0.51, SQLite 2.8.17 & SQLite 3.6.10.
2.3. User Characteristics
User: The user should have the knowledge of
a. In MySQL 5.0.51,
i. Hostname
ii. Username
iii. Password
b. In Interim (PostgreSQL),
i. Username
ii. Password
c. In SQLite (2.8.17 & 3.6.10)
i. Location of the database.
2.4. General Constraints
a. Will work only in LINUX.
b. Available only in English.
3. Specific Requirements
3.1. External interface requirements
3.1.1. User Interfaces
DSwitch GUI – The GUI enables the user to switch their datasets. The GUI provides options for
a. Selecting their source DB
b. Providing the required information to access the source DB
c. Providing the required information to access the interim DB
d. Selecting the target DB
e. Providing the required information to access the target DB.
f. Viewing the log.
g. Switching the datasets.
3.1.2 Communications Protocols
TCP/IP - All communication with the DB are done using TCP/IP.
3.1.3 Assumption and Dependency
PostgreSQL (7.*.* or 8.*.*) is installed and configured in the system.
3.1.4 Hardware Interfaces
Mouse, Keyboard, Monitor
3.1.5 Software Interfaces
Linux, DSwitch GUI
3.1.6 Database Requirements
PostgreSQL (7.*.* or 8.*.*) required for storing the datasets from source database temporarily.
3.2. Functional Requirements
3.2.1 Switch DB: The user can switch their datasets by clicking on the “SWITCH” button in the GUI. It extends the functionality of one of the use cases depending on the selection of Source and Target DB by the user:
a. SQLite 2.8.17 to Target DB
b. SQLite 3.6.10 to Target DB
c. MySQL 5.0.51 to Target DB
3.2.2 Check Log: The user can view the log of their switching process using the “LOG” button in the DSWitch GUI.
3.2.3 SQLite 2.8.17 to Target DB: The user can switch datasets from their SQLite 2.8.17 to either SQLite 3.6.10 or MySQL 5.0.51 using DSwitch.
3.2.4 SQLite 3.6.10 to Target DB: The user can switch datasets from their SQLite 3.6.10 to either SQLite 2.8.17 or MySQL 5.0.51 using DSwitch.
3.2.5 MySQL 5.0.51 to Target DB: The user can switch datasets from their MySQL 5.0.51 to either SQLite 2.8.17 or SQLite 3.6.10 using DSwitch.
3.3 Non-Functional Requirements
3.3.1 Availability
It is open source and available on the net.
3.3.2 Performance Requirements
a. Extraction time is dependent on the database’s query performance.
b. A 1MB database can take up to 45-50 seconds.
c. A 10MB database can take up to 8-9 minutes.
3.4 Design Constraints
a. DSwitch is only in English.
b. Procedures and functions in MySQL 5.0.51 will be extracted but will not be switched as SQLite (2.8.17 & 3.6.10) does not support them.
c. CHECK (expr) are parsed in MySQL 5.0.51 but are not enforced.
d. FOREIGN KEYS are parsed in SQLite (2.8.17 & 3.6.10) but are not enforced.
e. Tables containing data types that are not supported in the target DB will be dropped and logged.
Comments
Post new comment