You are on page 1of 18

DATABASE MANAGEMENT SYSTEM

(ASSIGNMENT)

Student Name: Ayesha Rahim


Student ID: BB-6868
Instructor: Sir Asif
Course Code: CS 261
Project Detail information – (Assignment Work Done)

The project appears to be facing significant challenges related to the manual management of IT
assets. This manual process can lead to delays in the issuance of equipment to new hires, inaccurate
inventory records, and the potential loss of equipment.

To address these challenges, the project may benefit from implementing a digital asset
management system that can automate many of the current manual processes. Such a system can
streamline the issuance of IT equipment to new hires, provide accurate and up-to-date inventory
records, and facilitate timely repairs and maintenance of faulty equipment. This would not only
improve the efficiency of the IT department but also help to prevent delays in the overall project
operations.

Additionally, the project may benefit from conducting a thorough review of its procurement
processes to ensure that equipment is being purchased in a timely and cost-effective manner. The
procurement department could work closely with the IT department to identify the most commonly
requested equipment and establish vendor relationships to ensure that these items are readily
available when needed. This can help to prevent delays in the issuance of equipment to new hires
and ensure that the project is getting the best value for its IT investments.

Finally, the project may want to consider implementing a centralized database or system for
tracking the issuance and return of IT assets. Such a system can provide real-time visibility into
the location and status of all IT assets, allowing the IT department to better manage inventory and
respond quickly to any issues that arise. This can also help to reduce the risk of loss or theft of IT
equipment and ensure that the project is making the most of its IT investments.
TABLE OF CONTENTS

1. Scope of Your work …………………………………………..5


o Complete ER Diagram ………………………………5
o Transform ER Diagram Into Database by writing DDL’
And write queries for insertion of data using DML... ……..6
2. Objective of Work done …………………………………………....13
3. About Database Management System ……………………………..13
4. History ……………………………………………………………..14
o Traditional Approach ………….........................................14
o Evolution………………………………………………….14
o Security …………………………………………………..15
5. Types of Database System ………………………………….............16
6. Comparison of Different DBMS ………………………………………17
1. Scope of Your work

o Complete ER Diagram:
o Transform ER Diagram Into Database by writing DDL, and write queries
for insertion of data using DML :

Create tables using DDL:

CREATE TABLE employees (


employee_id INT PRIMARY KEY,
first name VARCHAR(50),
last name VARCHAR(50),
Email VARCHAR(100),
hire date DATE,
Designation VARCHAR(225)
);

CREATE TABLE locations (


location_id INT PRIMARY KEY,
city VARCHAR(50),
state VARCHAR(50),
country VARCHAR(50),
postal_code VARCHAR(20)
);
CREATE TABLE offices (
office_id INT PRIMARY KEY,
office_name VARCHAR(50),
location_id INT,
phone_number VARCHAR(20),
manager_name VARCHAR(50)
);
CREATE TABLE regions (
region_id INT PRIMARY KEY,
region_name VARCHAR(50),
country_id INT,
currency_code VARCHAR(10),
language VARCHAR(50)
);
CREATE TABLE departments (
department_id INT PRIMARY KEY,
department_name VARCHAR(50),
manager_id INT,
location_id INT,
budget DECIMAL(10,2)
);
CREATE TABLE it_assets (
asset_id INT PRIMARY KEY,
asset_name VARCHAR(50),
asset_type VARCHAR(50),
purchase_date DATE,
cost DECIMAL(10,2)
);

CREATE TABLE rcit (


rcit_id INT PRIMARY KEY,
rcit_name VARCHAR(50),
region_id INT,
phone_number VARCHAR(20),
email VARCHAR(50) );

CREATE TABLE project_office (


office_id INT PRIMARY KEY,
office_name VARCHAR(50),
location_id INT,
manager_id INT,
budget DECIMAL(10,2)
);

CREATE TABLE vendors (


vendor_id INT PRIMARY KEY,
vendor_name VARCHAR(50),
phone_number VARCHAR(20),
email VARCHAR(50)
);
Insert data into tables using DML:

INSERT INTO employees (employee_id, first_name, last_name, email, hire_date, designation)


VALUES (1, 'Ali ', 'Khan', 'alikhane@example.com', '2022-01-01', 'Manager'),
(2, 'fatima', 'Ali', 'fatimaali@example.com', '2022-01-02', 'Salesperson'),
(3, 'Ahmad', 'Asif', 'ahmadasif@example.com', '2022-01-03', 'Accountant'),
(4, 'Ahzam', 'Ahmad', 'ahzamahamd@example.com', '2022-01-04', 'Developer');
INSERT INTO locations (location_id, city, state, country, postal_code)
VALUES
(1, 'New York City', 'New York', 'United States', '10001'),
(2, 'Los Angeles', 'California', 'United States', '90001'),
(3, 'London', 'England', 'United Kingdom', 'SW1A 2AA'),
(4, 'Paris', 'Ile-de-France', 'France', '75001'),
(5, 'Tokyo', 'Tokyo', 'Japan', '100-0001');

INSERT INTO offices (office_id, office_name, location_id, phone_number, manager_name)


VALUES (1, 'New York', 1, '+1-212-555-1234', 'John Smith'),
(2, 'London', 2, '+44-20-555-1234', 'Jane Doe'),
(3, 'Tokyo', 3, '+81-3-555-1234', 'David Lee'),
(4, 'Sydney', 4, '+61-2-555-1234', 'Karen Chen');
INSERT INTO regions (region_id, region_name, country_id, currency_code, language)
VALUES
(1, 'Europe', 1, 'EUR', 'European languages');
(2, 'Asia', 2, 'USD', 'Asian languages');
(3, 'North America', 3, 'USD', 'English');

INSERT INTO departments (department_id, department_name, manager_id, location_id,


budget)
VALUES
(1, 'Sales', 1001, 1, 50000.00),
(2, 'Marketing', 1002, 2, 75000.00),
(3, 'Engineering', 1003, 3, 100000.00);

INSERT INTO it_assets (asset_id, asset_name, asset_type, purchase_date, cost)


VALUES (1, 'Laptop', 'Computer', '2022-01-15', 1200.00),
(2, 'Monitor', 'Display', '2022-02-10', 300.00),
(3, 'Printer', 'Peripherals', '2022-03-05', 150.00),
(4, 'Mouse', 'Peripherals', '2022-04-01', 30.00);
INSERT INTO vendors (vendor_id, vendor_name, contact_name, phone_number, email)
VALUES
(1, 'ABC Corp', 'John Smith', '123-456-7890', 'john@abccorp.com'),
(2, 'XYZ Inc', 'Jane Doe', '555-555-5555', 'jane@xyzinc.com'),
(3, 'Acme Enterprises', 'Bob Johnson', '888-888-8888', 'bob@acme.com'),
(4, 'Global Solutions', 'Samantha Lee', '777-777-7777', 'samantha@globalsolutions.com');

INSERT INTO project_office (office_id, office_name, location_id, manager_id, budget)


VALUES (1, 'New York Project Office', 1, 101, 1000000.00),
(2, 'Los Angeles Project Office', 2, 102, 800000.00),
(3, 'London Project Office', 3, 103, 1200000.00),
(4, 'Singapore Project Office', 4, 104, 900000.00);
INSERT INTO rcit (rcit_id, rcit_name, region_id, phone_number, email)
VALUES
(1, 'RCIT Americas', 1, '(555) 123-4567', 'rcitamericas@example.com'),
(2, 'RCIT Europe', 2, '(555) 234-5678', 'rciteurope@example.com'),
(3, 'RCIT Asia-Pacific', 3, '(555) 345-6789', 'rcitasia@example.com'),
(4, 'RCIT Middle East and Africa', 4, '(555) 456-7890', 'rcitmea@example.com');

Database Diagram:
2. Objective of Work done

The goal of the work done in the project-based organization's IT department is to successfully
and efficiently manage the acquisition, distribution, upkeep, and inventory of IT assets, such as
laptops, desktop computers, and internet devices, for personnel spread across numerous locations
and departments. Whether they work in close-knit offices or out in the country, the IT
department wants to make sure that every employee has access to the IT tools they need to do
their jobs.
The general goal of the IT department's work is to make sure that IT assets are managed
effectively and smoothly throughout the project-based organization, while also giving staff
members the support they need and keeping detailed records of asset acquisition, issuance,
maintenance, and inventory.

3. About Database Management System


A database management system (DBMS) is a piece of software that allows you to create,
manage, and organise databases. It allows users to interact with the database through an
interface, letting them to store, retrieve, alter, and delete data in a structured and organised
manner.
A database management system (DBMS) often includes several critical components, such as:
A database is a collection of data maintained in a structured type. Text, numbers, photos,
videos, and other forms of data can all be included. Tables are used to organise the data,
which is then separated into rows and columns.
Data Definition Language (DDL): This DBMS component allows users to create the
structure of the database by establishing tables, describing data types, defining relationships
between columns, and imposing restrictions on the database.
Data Manipulation Language (DML):
Users can interact with the data stored in the database using the Data Manipulation Language
(DML) feature of the DBMS. Users can query data using SQL (Structured Query Language)
or any other query language supported by the DBMS to insert, update, remove, and retrieve
data.
Data Security: DBMS features like user authentication, access control, and data encryption
are available to protect the data in the database. This protects the data's integrity and
confidentiality by ensuring that only authorized users can access and modify the data.
Some popular examples of DBMS are Oracle Database, Microsoft SQL Server, MySQL,
PostgreSQL, and MongoDB.

4. History
The history of database management systems (DBMS) dates back to the 1960s when the first
concept of a database was introduced. Charles Bachman developed the Integrated Data Store
(IDS) in the early 1960s, which was based on the network data model. In the late 1960s, IBM
developed the first hierarchical database model. In the 1970s and 1980s, attempts were made to
build database systems with integrated hardware and software. The underlying philosophy was
that such integration would improve performance and reduce costs. During the year 1970, the
relational database model was developed by Edgar Codd. Since then, the development of
DBMSs has played an outsized role in the history of software development and in the creation
and growth of the software industry. Today, databases are an essential part of modern computing
and are used in a wide range of applications.

a.Traditional Approach:
The traditional approach of database management systems (DBMS) refers to the early models
and methods used to manage data in databases before the emergence of modern DBMS. It
included hierarchical and network data models, file-based storage, procedural languages, and
limited data integrity and security features. However, this approach had limitations in terms of
complexity, scalability, and data management capabilities compared to modern approaches,
such as the relational model, SQL-based languages, and advanced data management features.
Despite its contributions, the traditional approach has been largely replaced by more advanced
and efficient DBMS technologies that offer enhanced data management capabilities and
improved security features.

b. Evolution:
The evolution of database management systems (DBMS) refers to the progression and
development of data storage, retrieval, and management technologies over time. It can be
summarized as follows:
Pre-relational Models: Early data models such as hierarchical and network models were
developed in the 1960s, organizing data in tree-like and graph-like structures, respectively.
Relational Model: The relational model was introduced in the 1970s, organizing data into
tables with rows and columns, and using keys to establish relationships between tables. This
led to the widespread adoption of relational DBMS in the 1980s.
Commercial Relational DBMS: In the 1980s, commercial relational DBMS products became
widely accessible, offering advanced features like transaction management, data integrity, and
query optimization.
Object-oriented DBMS: In the 1990s, object-oriented DBMS emerged, allowing for more
flexible and extensible data modeling with objects, properties, and behavior.
NoSQL DBMS: In the 2000s, NoSQL DBMS emerged as an alternative to relational
databases, offering scalability, performance, and flexibility advantages for distributed and
unstructured data.
NewSQL DBMS: In the 2010s, NewSQL DBMS combined scalability of NoSQL with ACID
properties of relational databases, offering advanced features for modern data-intensive
applications.
Cloud-based and Blockchain-based DBMS: Recent advancements include cloud-based
DBMS for scalable and flexible data management in the cloud, and blockchain -based DBMS
for decentralized and distributed data management in blockchain networks.
The evolution of DBMS has been driven by advancements in technology, changing data
management requirements, and the need for more efficient and reliable data management
solutions to meet the evolving needs of businesses and applications.

c. Security:
Here are some key points about security in Database Management Systems (DBMS):
Authentication: It is the process of verifying the identity of users accessing the DBMS,
typically through username and password combinations or other credentials.
Authorization: It involves granting or restricting access privileges to different users or user
groups based on their roles or permissions. This ensures that users can only perform actions
they are allowed to.
Encryption: It involves converting data into a coded form to prevent unauthorized access or
data breaches. Encryption techniques like SSL/TLS can be used to secure data in transit, while
techniques like data-at-rest encryption can protect data stored on disks.
Auditing: It involves monitoring and recording activities in the DBMS, such as user logins,
data modifications, and access attempts, to detect and investigate potential security breaches.
Backup and Recovery: Regularly backing up the database and implementing a robust
recovery plan can help protect against data loss due to accidental deletion, hardware failure,
or other incidents.
Role-Based Access Control (RBAC): It involves assigning permissions to users based on their
roles or job responsibilities, rather than individual user accounts. This helps ensure that users
only have access to the data and operations that are necessary for their job functions.
Data Masking: It involves obscuring sensitive data, such as credit card numbers or social
security numbers, in order to prevent unauthorized access or data leaks.
Patching and Updates: Regularly applying patches and updates to the DBMS software helps
to fix known security vulnerabilities and protect against potential exploits.
Physical Security: Securing the physical infrastructure hosting the DBMS, such as servers,
network switches, and data centers, through measures like access controls, surveillance, and
environmental protections.
User Education: Educating users about best practices for data security, such as using strong
passwords, avoiding sharing credentials, and being cautious about granting permissions, can
help prevent security incidents caused by human error.
These are some of the key aspects of security in DBMS. Implementing appropriate security
measures is crucial in protecting the confidentiality, integrity, and availability of data stored
in a database.

5. Types of Database Management System


There are several types of database systems, each with its own unique features and use cas es.
Here are some common types:
Relational Database Management System (RDBMS): This is the most common type of
database system, where data is organized into tables with rows and columns. RDBMS uses
Structured Query Language (SQL) to manage and manipulate data. Examples of RDBMS
include MySQL, Oracle Database, Microsoft SQL Server, and PostgreSQL.
NoSQL Database Management System: As the name suggests, these are database systems
that do not follow the traditional relational model. Instead, they use various data models such
as document, column-family, key-value, or graph to store and manage data. Examples of
NoSQL databases include MongoDB, Cassandra, Redis, and Neo4j.
Object-Oriented Database Management System (OODBMS): These database systems are
designed to work with object-oriented programming languages and store data in the form of
objects, which can have attributes and methods. Examples of OODBMS include Caché,
ObjectDB, and Versant.
Hierarchical Database Management System: These database systems use a hierarchical
structure to organize data, where data is stored in a tree-like structure with parent-child
relationships. Examples of hierarchical databases include IBM's Information Management
System (IMS) and Windows Registry.
Network Database Management System: Similar to hierarchical databases, network databases
also use a tree-like structure to organize data, but they allow for more complex relationships
between data entities. Examples of network databases include Integrated Data Store (IDS) and
Integrated Data Management System (IDMS).
Distributed Database Management System (DDBMS): These database systems are designed
to work across multiple interconnected computers, often referred to as a network or a cluster.
DDBMS allows for distributed storage and processing of data, providing high scalability and
fault tolerance. Examples of DDBMS include Apache Cassandra, Google Spanner, and
Amazon DynamoDB.
Data Warehouse: These are specialized database systems used for large-scale data analytics
and reporting. Data warehouses are designed to handle huge amounts of data and provide fast
and efficient querying and analysis capabilities. Examples of data warehouses include
Snowflake, Amazon Redshift, and Google BigQuery.
Time-Series Database Management System: These database systems are optimized for
handling time-stamped data, such as sensor data, log files, and financial market data.
Examples of time-series databases include InfluxDB, OpenTSDB, and Prometheus.
Spatial Database Management System: These database systems are designed to store and
manage spatial or geographic data, such as maps, geographical coordinates, and spatial
relationships. Examples of spatial databases include PostGIS, Oracle Spatial, and ESRI's
ArcGIS.
In-Memory Database Management System: These database systems store data primarily in
memory, which allows for faster access and processing times compared to traditional disk-
based databases. Examples of in-memory databases include SAP HANA, MemSQL, and
VoltDB.

6. Comparison of Different DBMS


Let's compare different types of database management systems (DBMS) based on various
criteria:
Data Model:
Relational DBMS (RDBMS): Uses a relational data model where data is organized into tables
with rows and columns, and relationships are defined using keys. Examples include MySQL,
PostgreSQL, Oracle, Microsoft SQL Server.
NoSQL DBMS: Uses a variety of data models such as document, columnar, key-value, and
graph. Examples include MongoDB, Cassandra, Redis, Neo4j.
Scalability:
RDBMS: Typically vertically scalable, meaning they can handle increasing loads on a single
server by adding more hardware resources like CPU, RAM, etc. Horizontal scalability can be
achieved through sharding or partitioning, but it may not be as efficient as in NoSQL DBMS.
NoSQL DBMS: Designed for horizontal scalability, meaning they can handle increasing loads
by adding more servers to the system, making them more suitable for handling large-scale
data and high-traffic applications.
Flexibility:
RDBMS: Offers structured data storage with predefined schemas, making them suitable for
applications with fixed data structures and strict data integrity requirements.
NoSQL DBMS: Offers flexibility in handling unstructured, semi-structured, and changing
data with dynamic schemas, making them suitable for applications that require handling
diverse and evolving data types.
Performance:
RDBMS: Typically optimized for complex queries and transactions, making them suitable for
applications that require ACID (Atomicity, Consistency, Isolation, Durability) compliance,
such as financial and banking systems.
NoSQL DBMS: Typically optimized for high-speed read/write operations and horizontal
scalability, making them suitable for applications that require high throughput and low
latency, such as real-time analytics and social media.
Data Consistency:
RDBMS: Provides strong consistency, ensuring that data is always in a valid state and follows
defined constraints. Updates are immediately reflected across the system.
NoSQL DBMS: Provides eventual consistency, meaning that data may be inconsistent across
different replicas or nodes for a certain period of time, but eventually becomes consistent.
This makes them suitable for applications that prioritize high availability and partition
tolerance over strong consistency.
Use Cases:
RDBMS: Suitable for applications that require complex data relationships, transactional
integrity, and data consistency, such as e-commerce, finance, and ERP systems.
NoSQL DBMS: Suitable for applications that require handling large-scale data, high
write/read throughput, and flexibility in data modeling, such as social media, gaming, and IoT
systems.
Community and Ecosystem:
RDBMS: Have mature and established communities with extensive support, documentation,
and tools available. They have been widely used in the industry for decades.
NoSQL DBMS: Have relatively newer communities and ecosystems compared to RDBMS,
but are rapidly growing with active development and adoption in various industries.

You might also like