Lecture 1 - Slide - Lecture 01 - Course Objectives and Overview - For Student
Lecture 1 - Slide - Lecture 01 - Course Objectives and Overview - For Student
Cơ sở dữ liệu
Giới thiệu về CSDL
Khóa học này sẽ giúp ích cho công việc của bạn như thế nào?
Mục tiêu khóa học
• Đại số quan hệ
• Kiến trúc kĩ thuật của nhà kho dữ liệu
• Công cụ ETL
• Các kỹ thuật lập trình nâng cao trong SQL
Trọng số điểm
▪ Chuyên cần: 10 %
▪ Kiểm tra giữa khóa / Bài tập nhóm: 30 %
▪ Kiểm tra cuối khóa: 60%
Tài liệu tham khảo
• [1] Phan Tấn Quốc, Nguyễn Thị Uyên Nhi, Giáo trình Cơ sở dữ liệu, NXB
ĐHQG TPHCM, ISBN: 978-604-73-7236-2, 2019
• [2] Malik, U., Goldwasser, M. and Johnston, B., 2019. SQL for Data
Analytics. Birmingham: Packt Publishing, Limited.
• [4] Kimball, R., Ross, M., 2013. The Data Warehouse Toolkit. 3rd ed.
Hoboken: John Wiley & Sons.
Yêu cầu
• Đi học đầy đủ
• Đừng ngần ngại đặt câu hỏi khi có thắc mắc về khóa học(!)
Giới thiệu về CSDL
Dữ liệu có cấu trúc Dữ liệu bán cấu trúc Dữ liệu phi cấu trúc
Kho dữ liệu giao dịch và phân tích
Orders
OrderID CustomerID OrderDate
Giao dịch dữ liệu là thông tin theo dõi các tương tác liên quan đến hoạt động của tổ chức.
• Tính nguyên tử (Atomicity) - Một giao dịch có nhiều
thao tác khác biệt thì hoặc là toàn bộ các thao tác hoặc
là không một thao tác nào được hoàn thành.
• Tính nhất quán (Consistency) - Một giao dịch hoặc là
sẽ tạo ra một trạng thái mới và hợp lệ cho dữ liệu, -$
hoặc trong trường hợp có lỗi sẽ chuyển toàn bộ dữ liệu
về trạng thái trước khi thực thi giao dịch.
+$
Giao dịch dữ liệu
Giao dịch dữ liệu là thông tin theo dõi các tương tác liên quan đến hoạt động của tổ chức.
• Tính cô lập (Isolation) - Một giao dịch đang thực thi và
chưa được xác nhận phải bảo đảm tách biệt khỏi các
giao dịch khác.
• Tính bền vững (Durability) - Dữ liệu được xác nhận sẽ
được hệ thống lưu lại sao cho ngay cả trong trường -$
hợp hỏng hóc hoặc có lỗi hệ thống, dữ liệu vẫn đảm
bảo trong trạng thái chuẩn xác.
+$
Phân tích dữ liệu
Công việc phân tích được sử dụng để phân tích dữ liệu nhằm đưa ra quyết định.
Quy trình xử lý dữ liệu là việc chuyển đổi dữ liệu thô (Raw Data) thành thông tin có ý
nghĩa.
Xử lý theo nhóm: Dữ liệu được thu Xử lí hàng ngày
thập thành một nhóm. Toàn bộ dữ liệu (batch daily job)
nhóm sẽ được xử lý tại một thời điểm
trong tương lai. Tất cả đầu vào Tất cả đầu ra
Xử lý trực tiếp: Dữ liệu trực tiếp Tải lên hệ thống Tải lên hệ thống
được xử lý tại thời điểm hiện tại.
▪ Trước khi cơ sở dữ liệu tồn tại, dữ liệu được ghi lại trên giấy. Chúng ta có danh
sách, tạp chí, sổ cái và tài liệu lưu trữ chứa hàng trăm ngàn hoặc thậm chí hàng
triệu hồ sơ chứa trong tủ hồ sơ.
▪ 1960: IBM đã phát triển mô hình phân cấp, một trong những hệ thống sớm nhất.
▪ 1969: Các nhà khoa học tại CODASYL đã phát minh mô hình mạng.
▪ 1970: Codd đã giới thiệu thuật ngữ "cơ sở dữ liệu quan hệ" trong bài nghiên cứu
của ông.
▪ 1976: P.Chen đề xuất mô hình cơ sở dữ liệu mới được gọi là mô hình thực thể dữ
liệu, hoặc ER (Entity-Relationship).
▪ 1980: Ngôn ngữ truy vấn có cấu trúc, hay còn biết đến là SQL, trở thành ngôn ngữ
truy vấn tiêu chuẩn.
Cơ sở dữ liệu quan hệ là gì?
▪ Cơ sở dữ liệu quan hệ (Relational Database) là một tập hợp dữ liệu được lưu trữ
trong máy tính. Dữ liệu này thường được cấu trúc theo cách làm cho dữ liệu dễ
dàng truy cập.
▪ Cơ sở dữ liệu quan hệ là một loại cơ sở dữ liệu. Cơ sở dữ liệu quan hệ được sắp
xếp theo cấu trúc cho phép người dùng xác định và truy cập dữ liệu dễ dàng cơ sở
dữ liệu. Thông thường, dữ liệu trong cơ sở dữ liệu quan hệ được tổ chức thành
các bảng.
Các trường hợp sử dụng cơ sở dữ liệu quan hệ
Kho dữ liệu:
Dữ liệu được nhập từ nhiều nguồn và được sắp xếp theo cấu trúc
IoT:
Mặc dù thường được coi là dữ liệu phi quan hệ, dữ liệu từ IoT có thể được sắp xếp theo cấu trúc và
có tính nhất quán
Đặc điểm của dữ liệu quan hệ
Bảng (Table)
Customers Dữ liệu được lưu trữ trong một bảng
CustomerID CustomerName CustomerPhone (Table)
100 Muisto Linna XXX-XXX-XXXX
101 Noam Maoz XXX-XXX-XXXX Bảng bao gồm các hàng (Rows) và cột
102 Vanja Matkovic XXX-XXX-XXXX (Columns)
103 Qamar Mounir XXX-XXX-XXXX
104 Zhenis Omar XXX-XXX-XXXX Tất cả các hàng có cùng số cột (Columns)
105 Claude Paulet XXX-XXX-XXXX
106 Alex Pettersen XXX-XXX-XXXX Mỗi cột (Row) được xác định bởi một kiểu
107 Francis Ribeiro XXX-XXX-XXXX dữ liệu (Datatype)
Đặc điểm của dữ liệu quan hệ
Thực thể (Entity)
Customers
CustomerID CustomerName CustomerPhone
100 Muisto Linna XXX-XXX-XXXX
101 Noam Maoz XXX-XXX-XXXX
102 Vanja Matkovic XXX-XXX-XXXX
103 Qamar Mounir XXX-XXX-XXXX
104 Zhenis Omar XXX-XXX-XXXX
105 Claude Paulet XXX-XXX-XXXX
106 Alex Pettersen XXX-XXX-XXXX
Thực thể (Entity) là một chủ thể, đối tượng vật lý (ví dụ: khách hàng hoặc sản phẩm) hoặc phi vật lý(ví dụ: đơn đặt
hàng).
Các thực thể (Entity) được kết nối bởi các mối quan hệ tương tác với nhau. Ví dụ: khách hàng có thể đặt hàng cho một
sản phẩm.
Đặc điểm của dữ liệu quan hệ
Chuẩn hóa dữ liệu (Data Normalization)
Customers Orders
CustomerID CustomerName CustomerPhone OrderID CustomerName CustomerPhone
100 Muisto Linna XXX-XXX-XXXX AD100 Noam Maoz XXX-XXX-XXXX
101 Noam Maoz XXX-XXX-XXXX AD101 Noam Maoz XXX-XXX-XXXX
102 Vanja Matkovic XXX-XXX-XXXX AD102 Noam Maoz XXX-XXX-XXXX
103 Qamar Mounir XXX-XXX-XXXX AX103 Qamar Mounir XXX-XXX-XXXX
104 Zhenis Omar XXX-XXX-XXXX AS104 Qamar Mounir XXX-XXX-XXXX
105 Claude Paulet XXX-XXX-XXXX AR105 Claude Paulet XXX-XXX-XXXX
106 Alex Pettersen XXX-XXX-XXXX MK106 Muisto Linna XXX-XXX-XXXX
▪ Mọi người thường nghĩ về cơ sở dữ liệu quan hệ (Relational Database) như một tập
hợp các bảng (Table), mỗi bảng (Table) chứa các hàng (Row) và cột (Column). Nó
trông giống như một bảng tính excel thông thường.
▪ Thuật ngữ chính thức cho một cột (Column) là một thuộc tính (Attribute) và đối
với một hàng (Row) là một bản ghi (record).
▪ Khóa chính (Primary key) là một khóa độc nhất (Unique key) được sử dụng để
nhanh chóng định vị các hàng theo cơ sở dữ liệu. Ví dụ: trường “Mã sinh viên”
trong bảng Sinh viên là khóa chính (Primary key).
▪ Khóa ngoại (Foreign key) là một cột (hoặc tập hợp các cột) trong một bảng, tham
chiếu đến khóa chính trong một bảng khác. Ví dụ: cột “Mã sinh viên" trong bảng
"Điểm" tham chiếu đến cột "Mã sinh viên" trong bảng "Sinh viên".
▪ Chỉ mục (index) là một cấu trúc cơ sở dữ liệu giúp tìm bản ghi nhanh hơn và dễ
dàng hơn, giống như một mục lục của một cuốn sách.
Giới thiệu về CSDL
Ví dụ:
## Customer 1 ID: 1
Name: Mark Hanson
Telephone: [ Home: 1-999-9999999, Business: 1-888-8888888, Cell: 1-777- 7777777 ]
Address: [ Home: 121 Main Street, Some City, NY, 10110,
Business: 87 Big Building, Some City, NY, 10111 ]
## Customer 2 ID: 2
Title: Mr
Name: Jeff Hay
Telephone: [ Home: 0044-1999-333333, Mobile: 0044-17545-444444 ]
Address: [ UK: 86 High Street, Some Town, A County, GL8888, UK,
US: 777 7th Street, Another City, CA, 90111 ]
Nhiều thực thể trong cùng tập hợp với các trường Tồn tại dưới dạng lược đồ Thường được xác định bằng cách gán nhãn mỗi
khác nhau không phải dạng bảng trường với tên mà nó đại diện
Trường hợp sử dụng cơ sở dữ liệu phi quan hệ
Thường được sử dụng để trích xuất tổ chức dữ liệu và phân loại hoặc xác định "cấu trúc"
Thường được sử dụng kết hợp với mô hình học máy để "trích xuất dữ liệu" bằng cách sử dụng:
Phân tích văn bản
Phân tích cảm xúc khách hàng (Sentiment Analysis)
Thị giác máy tính (Computer Vision)
NoSQL là gì?
36
Quy trình thiết kế cơ sở dữ liệu
Mô hình dữ liệu
Tài liệu tham khảo: "Fundamentals of Database Systems" by Ramez Elmasri, Shamkant B. Navathe - Part 2-
Chaper 3,4 37
Quy trình thiết kế cơ sở dữ liệu
38
Quy trình thiết kế cơ sở dữ liệu
1. Khảo sát nhu cầu và các nguyên tắc trong kinh doanh
▪ Xác định các yêu cầu cơ sở dữ liệu: liệt kê các thuộc tính cần được
quản lý và sắp xếp chúng theo thực thể.
▪ Phân loại và mô tả thông tin về thực thể đó.
▪ Xác định mối quan hệ giữa các thực thể.
▪ Xác định các giao dịch sẽ được thực hiện trên các dữ liệu thực thể.
▪ Xác định các quy tắc kinh doanh để đảm bảo tính toàn vẹn dữ liệu.
39
Quy trình thiết kế cơ sở dữ liệu
40
Quy trình thiết kế cơ sở dữ liệu
42
Ba cấp độ của Mô hình hóa Dữ liệu
Tài liệu tham khảo: Chapter 1 - "Data Modeling Essentials" 3rd ed - G. Simsion, G. Witt 43
Các bước thực hiện mô hình hóa Dữ liệu
STT Tên bước Hoạt động cần thực hiện Kết quả
1 Khảo sát yêu cầu và trích xuất - Xác định yêu cầu của cơ sở dữ liệu Xác định được nhu cầu của
nguyên tắc kinh doanh - Phân loại và mô tả các thông tin về đối tượng đó người dùng. Đảm bảo các nhu
(Extracting business rules) - Xác định mối liên kết giữa các đối tượng cầu đủ tốt trong hoạt động
- Xác định các giao dịch sẽ được thực hiện trên các đối tượng dữ liệu đó triển khai.
- Xác định các quy tắc nghiệp vụ, đảm bảo tính toàn vẹn của dữ liệu
2 Thiết kê mô hình khái niệm - Khảo sát nhu cầu thực tế Mô hình mô tả các đối tượng,
(Conceptual Model Design) - Thiết lập mô hình dữ liệu cấu trúc và các ràng buộc của
- Kiểm soát và chuẩn hóa mô hình dữ liệu trong cơ sở dữ liệu.
3 Thiết kế mô hình logic - Ánh xạ các thực thể và mối quan hệ từ mô hình khái niệm thành các Mô tả chi tiết cách thức dữ
(Logical Model Design) bảng tương ứng trong mô hình logic. liệu được tổ chức thành các
bảng, trường cụ thể.
4 Thiết kế mô hình vật lý - Dựa trên lược đồ logic đã có, kết hợp với các đặc điểm của hệ quản trị CSDL Cung cấp cho người dùng
(Physical Model Design) để lựa chọn các loại bảng, kiểu dữ liệu phù hợp. cách dữ liệu được lưu trữ trên
một nền tảng hệ quản trị
CSDL cụ thể.
44
Tóm tắt nội dung buổi học