This repository contains the implementation of a distributed system step by step applied to a website of company. All topics viewed during the distributed databases course 2017-2 ESCOM IPN are covered.
- Distributed Databases (An Overview)
- Mueblerias Quetzal (Sales and Inventory System Management)
- Multidatabase System (Managing a Heterogeneous System)
- Fragmentation (Leading to a Distributed Database)
A distributed database is a database in which not all storage devices are attached to a common processor. It may be stored in multiple computers, located in the same physical location; or may be dispersed over a network of interconnected computers. A distributed database system consists of loosely coupled sites that share no physical components.
Two processes ensure that the distributed databases remain up-to-date and current: replication and duplication.
-
Replication: involves using specialized software that looks for changes in the distributive database. Once the changes have been identified, the replication process makes all the databases look the same.
-
Duplication: on the other hand, has less complexity. It basically identifies one database as a master and then duplicates that database.
This system has been developed for a company named **Mueblerías Quetzal S.A. de C.V.** with the purpose of create an application which supports inventory control, retail, user registration. Providing to the company a fast and efficient tool and help it to get into e-commerce.
The development of this project was made with the following features grouped in the Database Server and Web Server:
Database Server Features
- Apache/2.4.6 (CentOS) OpenSSL/1.0.1 e-flips
- Database client version: libmysql - mysqllnd 5.0.12-dev
- PHP extension: MySQL improved extension (mysqli)
- PHP extension: phpMyAdmin v4.6.6
- PHP version: 7.0.8
Web Server Features
- Apache/2.4.6 (CentOS) OpenSSL/1.0.1 e-flips item 20
- PHP extension: MySQL improved extension (mysqli)
- PHP version: 7.0.8
- JavaScript version: ECMAScript 6 (JS 2015)
- HTML version: 5
- CSS version: 3
A multidatabase system solution has been developed which allows **Teatro Aktuar** company manage the furniture rented from **Mueblerias Quetzal**, in order to improve their performance and operations related with inventory.
The development of this project was made with the following features grouped in the Database Server and Web Server:
Database Server Features (Mueblerias Quetzal)
- Server: localhost vía UNIX socket
- Server type: MariaDB
- Server version: 10.1.20-MariaDB - MariaDB Server
- Protocol version: 10
- Server charset: utd-8 Unicode (utf-8)
Database Server Features (Teatro Aktuar)
- Server: ocalhost vía UNIX socket
- Server type: MariaDB
- Server version: 10.1.20-MariaDB - MariaDBServer
- Protocol version: 10
- Server charset: utd-8 Unicode (utf-8)
Web Server Features (Teatro Aktuar)
- Apache/2.4.6 (CentOS) OpenSSL/1.0.1 e-flips item 20
- Database client version: libmysql - mysqlnd 5.0.12-dev
- PHP extension: MySQL improved extension (mysqli), curl, mbstring
- PHP extension: phpMyAdmin v4.6.6
- PHP version: 7.0.8
In this stage the company needed to have its database fragmented, this feature of the database server allows defining groups of names or index keys within a table, each group or fragment can be stored in a separate database associated with a specific physical disk. From the perspective of an end user (or client application) fragmented tables are identical to a non-fragmented table, therefore providing "transparency" and "replication" to the distributed system.
Fragmentation provides the following features to the system:
- Single User Response Time
- Concurrence
- Transparency to End User
- Availability
- Backup and Restoration Features
- Faster Loading Data
This is the team that made Mueblerias Quetzal and its extensions possible:
David Flores Casanova | Eric Alejandro López Ayala | Daniel Isaí Ortega Zuñiga |
---|---|---|
System Architect and Fullstack Developer |
Fullstack Developer and Documenter |
System Architect and Fullstack Developer |