Data Models in DBMS
Data Models in DBMS
Data models in Database Management Systems (DBMS) define how data is logically
structured, organized, and manipulated. They are essential for database design, serving as a
blueprint for how data is stored, accessed, and related.
json
CopyEdit
{
"CustomerID": 1,
"Name": "John Doe",
"Orders": [
{"OrderID": 101, "Amount": 250},
{"OrderID": 102, "Amount": 450}
]
}
Advantages:
o Ideal for NoSQL databases.
o Easily scalable and flexible.
Disadvantages:
o Lack of relational integrity.
Implementation: MongoDB, CouchDB.
Let me know if you want detailed examples, diagrams, or SQL implementations for these data
models!
Diagram:
css
CopyEdit
Company
├── Department A
│ ├── Employee 1
│ ├── Employee 2
├── Department B
├── Employee 3
├── Employee 4
Implementation:
Hierarchical databases use parent-child pointers, but we can simulate this using relational tables.
Table: Departments
sql
CopyEdit
CREATE TABLE Departments (
DeptID INT PRIMARY KEY,
DeptName VARCHAR(100)
);
Table: Employees
sql
CopyEdit
CREATE TABLE Employees (
EmpID INT PRIMARY KEY,
EmpName VARCHAR(100),
DeptID INT,
FOREIGN KEY (DeptID) REFERENCES Departments(DeptID)
);
Diagram:
rust
CopyEdit
City A <--> City B <--> City C
\ |
\----> City D
Implementation:
Table: Cities
sql
CopyEdit
CREATE TABLE Cities (
CityID INT PRIMARY KEY,
CityName VARCHAR(100)
);
Table: Routes
sql
CopyEdit
CREATE TABLE Routes (
RouteID INT PRIMARY KEY,
FromCityID INT,
ToCityID INT,
Distance INT,
FOREIGN KEY (FromCityID) REFERENCES Cities(CityID),
FOREIGN KEY (ToCityID) REFERENCES Cities(CityID)
);
3. Relational Data Model
Diagram:
rust
CopyEdit
Customers
|
Orders ----> OrderDetails ----> Products
Implementation:
Table: Customers
sql
CopyEdit
CREATE TABLE Customers (
CustomerID INT PRIMARY KEY,
Name VARCHAR(100),
Email VARCHAR(100)
);
Table: Orders
sql
CopyEdit
CREATE TABLE Orders (
OrderID INT PRIMARY KEY,
OrderDate DATE,
CustomerID INT,
FOREIGN KEY (CustomerID) REFERENCES Customers(CustomerID)
);
Table: Products
sql
CopyEdit
CREATE TABLE Products (
ProductID INT PRIMARY KEY,
ProductName VARCHAR(100),
Price DECIMAL(10, 2)
);
Table: OrderDetails
sql
CopyEdit
CREATE TABLE OrderDetails (
OrderDetailID INT PRIMARY KEY,
OrderID INT,
ProductID INT,
Quantity INT,
FOREIGN KEY (OrderID) REFERENCES Orders(OrderID),
FOREIGN KEY (ProductID) REFERENCES Products(ProductID)
);
Diagram:
lua
CopyEdit
Members -- Borrows -- Loans -- Contains -- Books
Implementation:
Table: Members
sql
CopyEdit
CREATE TABLE Members (
MemberID INT PRIMARY KEY,
MemberName VARCHAR(100)
);
Table: Books
sql
CopyEdit
CREATE TABLE Books (
BookID INT PRIMARY KEY,
Title VARCHAR(100),
Author VARCHAR(100)
);
Table: Loans
sql
CopyEdit
CREATE TABLE Loans (
LoanID INT PRIMARY KEY,
MemberID INT,
BookID INT,
LoanDate DATE,
ReturnDate DATE,
FOREIGN KEY (MemberID) REFERENCES Members(MemberID),
FOREIGN KEY (BookID) REFERENCES Books(BookID)
);
Diagram:
mathematica
CopyEdit
Cart {
CartID
Items: [Item1, Item2, ...]
}
Item {
ItemID
ProductName
Quantity
}
Implementation:
Object-oriented models are used in systems like MongoDB. Here’s how it looks in JSON:
json
CopyEdit
{
"CartID": 1,
"Items": [
{
"ItemID": 101,
"ProductName": "Laptop",
"Quantity": 1
},
{
"ItemID": 102,
"ProductName": "Mouse",
"Quantity": 2
}
]
}
Diagram:
css
CopyEdit
Blog {
BlogID
Title
Content
Comments: [Comment1, Comment2, ...]
}
Comment {
CommentID
Author
Message
}
Implementation:
json
CopyEdit
{
"BlogID": 1,
"Title": "Introduction to Data Models",
"Content": "This is an article about data models.",
"Comments": [
{
"CommentID": 1,
"Author": "Alice",
"Message": "Great article!"
},
{
"CommentID": 2,
"Author": "Bob",
"Message": "Very helpful."
}
]
}