Database 101
Database?
The tool help us store and retrive
DATA & INFOMATION
When you should use Database?
When shouldn't use DB
File
- Easy to use
- Hard to search
Database
- Hard to use
- Easy to programing
The data flow
Raw data
Processing
Store in database
Query, analysis
Data presentation
Raw data
Processing
Store data
Query, analysis
SELECT Orders.OrderID, Customers.CustomerName, Orders.OrderDate
FROM Orders
INNER JOIN Customers
ON Orders.CustomerID=Customers.CustomerID;
SELECT COUNT(ProductID)
FROM Products;
!https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_join
!https://www.w3schools.com/sql/trysql.asp?filename=trysql_select_count
Data presentation
Data flow in EyeQ?
Design database
Conceptual data model of Magento1.9 (UML)
Design database
Conceptual data mode
Logical data model
Physical data model
Conceptual data model
Determining data to be stored
(Detail of data)
Determining data relationships between tables
Result of this step is : UML, entity relationship
QA: So why we should break data to tables?
Example: Customer & Shipping Address
Benefits:
Avoid duplicate data
More flexibaal
Easy to maintain and scale up
Cons:
Some time it make more complex to query data
4 address column vs address table
Logical data model
Translate conceptual data model to DBMS schema!
Entity–relationship model
CREATE TABLE `CheckInOut` (
`UserFullCode` int(11) DEFAULT NULL,
`UserEnrollNumber` int(11) DEFAULT NULL,
`TimeDate` varchar(50) DEFAULT NULL,
`TimeStr` varchar(50) DEFAULT NULL,
`TimeType` varchar(10) DEFAULT NULL,
`TimeSource` varchar(4) DEFAULT NULL,
`MachineNo` int(11) DEFAULT NULL,
`CardNo` varchar(60) DEFAULT NULL,
KEY `ospos_checkinout_ibfk_1` (`UserFullCode`),
CONSTRAINT `ospos_checkinout_ibfk_1` FOREIGN KEY (`UserFullCode`) REFERENCES `ospos_people` (`person_id`) ON DELETE CASCADE ON UPDATE CASCADE
) ENGINE=InnoDB DEFAULT CHARSET=latin1;
Document model
{
"_id" : ObjectId("5bf7d071441dac019ff79232"),
"user" : ObjectId("5bf7d071441dac019ff7922f"),
"imageId" : "visitorImageId1",
"oldFaceId" : "exampleVisitor1",
"newFaceId" : "exampleVisitor1",
"actionType" : "action Example1",
"createdAt" : ISODate("2018-06-01T17:00:00.000Z"),
"__v" : 0,
"updatedAt" : ISODate("2018-11-23T10:03:35.389Z")
}
Models
Which modal that I should choose and why?
- Relational model
- Entity–relationship model
- Enhanced entity–relationship model
- Object model
- Document model
- Entity–attribute–value model
- Choose data model
- Conceptual data
- Implement
Physical data model
The feature of DBMS!
Q&A
Warm up
Unilever muốn xây dựng hệ thống phát hiện các hành động bất thường để tăng cường an ninh.
Đây là kết quả của việc phân tích yêu cầu từ khách hàng:
- Có nhiều camera quan sát, mỗi camera có địa chỉ IP kết nối, vị trí của camera
- Mỗi khi có sự kiện bất thường xảy ra, cần lưu lại thông tin camera nào ghi lại, loại hành động bất thường, một đoạn video của hành động, thời điểm xảy ra hành động
What data we should store in database? 🤔
Camera
- name
- rtsp
- location
Alert
- camera
- type
- storagePath of video
- time
Previous Question
- Sự giống và khác nhau giữa các data model?
- Data model là gì?
- Tại sao lại chọn data modal đó?
Data model ( mô hình dữ liệu ) là tập các khái niệm để mô tả cấu trúc của CSDL, cũng như các ràng buộc trên cơ sở dữ liệu ấy.
- Entity–relationship model
( Mô hình thực thể kết hợp ) - Relational model
( Mô hình quan hệ ) - Object model
( Mô hình đối tượng ) - Document Object model
( Mô hình đối tượng tài liệu )
Some types of data model
Tại sao lại chọn data model đó?
Về bản chất, mục tiêu chung của data model là tổ chức cách lưu trữ dữ liệu.
Sự khác nhau của các model là ở cách tổ chức dữ liệu.
Một data model được được chọn thì phải phù hợp nhất với bài toán đang cần giải quyết.
MongoDB: truy xuất dữ liệu nhanh, dễ mở rộng
MySql: Dữ liệu toàn vẹn, ràng buộc chặt chẽ
FaceID and ImageID
Coming up
- Relational model
- Basic concepts
- Design your first database
- SQL language
- Database in action
Relational model
Mô hình dữ liệu quan hệ được Edgar Frank Codd đề xuất vào năm 1970. Do tính chất đơn giản và xây dựng trên nền tảng toán học vững chắc nên mô hình quan hệ được sử dụng rộng rãi từ thập niên 80 cho tới nay.
Nhiều hệ thống đang sử dụng mô hình quan hệ như Oracle của Oracle, Sql Server của Microsoft.
Các hệ thống thực tế đang sử dụng mô hình này: TIKI, Lazada...
SQL Language
SQL ( Structured Query Language ) là ngôn ngữ truy vấn mang tính cấu trúc.
Nó được thiết kế để quản lý dữ liệu trong một hệ thống quản lý cơ sở dữ liệu quan hệ (RDBMS).
SQL Language
Table : là một bảng dữ liệu 2 chiều được đặt tên, có một số cột và một số dòng dữ liệu.
Column : là tập các thuộc tính của bảng đó
Row : là một bộ dữ liệu trong một bảng
Primary key : Khoá chính là một loại ràng buộc để định danh duy nhất mỗi row trong table
Khóa ngoại : của một table được xem như con trỏ trỏ tới khóa chính của table khác.
Design your first database!
Database in action
https://sqliteonline.com/
SQL Language
https://www.w3schools.com/sql/default.asp
Database101
By Bùi Minh Vũ
Database101
- 300