BÀI GIẢNG TUẦN 1
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
MySQL level A
Nội dung
TỔNG QUAN VỀ CƠ SỞ DỮ LIỆU
1. Dữ liệu (Data) và Cơ sở dữ liệu (Database) 2. Hệ quản trị CSDL (DBMS)
3. Hệ quản trị CSDL quan hệ (RDBMS)
4. Mô hình CSDL quan hệ và phi quan hệ
5. Ngôn ngữ SQL
❖ Hiểu về các khái niệm:
➢ Dữ liệu, cơ sở dữ liệu.
➢ Hệ quản trị CSDL quan hệ (RDBMS) và hệ quản trị CSDL (DBMS)
➢ CSDL quan hệ và phi quan hệ
➢ Ngôn ngữ SQL
❖ Phân biệt được sự khác biệt giữa hai hệ quản trị.
❖ Biết được hệ quản trị CSDL MySQL, Công cụ làm việc Workbench
Mục tiêu bài học
Dữ liệu và Cơ sở dữ liệu
MySQL level A
Dữ liệu (Data)
■ Ví dụ: Doanh thu thuần của công ty vinamilk Việt Nam Quý 2 năm 2020 và Quý 2 năm 2021 được cho dưới đây:
Đơn vị tính (tỷ đồng) Q2/2020 Q2/2021
Doanh thu thuần 15.716 15.495
Trong nước 13.251 13.364
Ngoài nước 2.465 2.131
Lợi nhuận gộp 6.854 7138
Dữ liệu (Data)
Từ bảng trên, chúng ta có thể rút ra những thông tin gì?
Một số thông tin từ ví dụ trên:
- Công ty: Vinamilk Việt Nam - Thời gian: Q2/2020 và Q2/2021
- Bảng đưa ra các thông tin: Doanh thu và Lợi nhuận - Doanh thu thuần Q2/2020: 15.716 tỷ đồng
- Doanh thu thuần Q2/2021: 15.495 tỷ đồng
- Doanh thu được tính trong 2 khu vực: Trong nước và nước ngoài
- Từ bảng dữ liệu ta có thể so sánh các chỉ số Doanh thu và Lợi nhuận giữa Q2/2020 và Q2/2021
Dữ liệu là gì?
Dữ liệu (Data)
● Khái niệm: Dữ liệu (data) có nghĩa là thông tin về một thành phần nào đó trong bất kỳ lĩnh vực, công việc nào.
● Dữ liệu được biểu diễn dưới nhiều dạng khác nhau hay còn gọi là kiểu dữ liệu:
○ Dạng số (Number)
○ Dạng chữ (Text)
○ Ký hiệu (Char)
○ Hình ảnh (Image)
○ Ngày tháng (Date, Datetime),...
Dữ liệu (Data)
Thực hành 1:
Có những kiểu dữ liệu nào được mô tả trong bảng sau đây?
Thực hành
Dữ liệu (Data)
Thực hành 2:
Dưới đây là bảng lương của một nhân viên.
Có những dữ liệu nào được mô tả trong bảng?
Thực hành
Cơ sở dữ liệu (Database)
Ví dụ: Cơ sở dữ liệu Danh Sách Nhân Viên bao gồm: STT, Họ đệm, Tên, Năm
sinh, Nơi Sinh, Phái, Chức vụ:
Cơ sở dữ liệu (Database)
Ví dụ: Cơ sở dữ liệu quản lý bán hàng
gồm các dữ liệu về 3 đối tượng là Sản phẩm, Khách hàng và Đơn hàng:
- Sản phẩm: ID sản phẩm, Tên sản phẩm, Nhà cung cấp
- Khách hàng: Tên công ty, Tên liên hệ, Họ
- Đơn hàng: ID đơn hàng, Khách hàng,
Nhân viên
Cơ sở dữ liệu (Database)
● CSDL lưu trữ dữ liệu có tổ chức.
● Người dùng truy cập trên máy tính.
● Lưu trữ dưới dạng bảng.
● Một CSDL có thể bao gồm 1 hoặc nhiều bảng khác nhau.
● Các cột trong bảng gọi là các trường dữ liệu.
Cơ sở dữ liệu (Database)
Thực hành:
Cơ sở dữ liệu quản lý Sinh viên, Môn học và Học phần bao gồm các trường dữ liệu nào?
Cơ sở dữ liệu (Database)
Thực hành:
Cho cơ sở dữ liệu quản lý nhân sự gồm các lược đồ:
- NHANVIEN: MaNV, HoTen, NgaySinh, QueQuan, GioiTinh, DiaChi, MaPB, MaCV, SDT,...
- PHONGBAN: MaPB, TenPB, DiaChi,...
- CHUCVU: MaCV, TenCV,...
- LUONG: MaNV, ChamCong, MucLuong, Thuong, TroCap, TongLuong, BaoHiem,...
- THOIHANCONGTAC: MaNV, MaCV, NgayNhanChuc - TRINHDOHOCVAN: MaNV, TenTrinhDo, ChuyenNganh,..
Thực hành
Yêu cầu:
Liệt kê các bảng và các trường dữ liệu của từng bảng
Cơ sở dữ liệu (Database)
Ưu điểm khi lưu trữ dữ liệu vào CSDL:
- Giảm dư thừa dữ liệu
- Tránh vấn đề không nhất quán dữ liệu - Dữ liệu được lưu trữ có thể được chia sẻ - Các chuẩn có thể được thiết lập và duy trì - Tính toàn vẹn dữ liệu được duy trì
- Bảo mật dữ liệu có thể được thực thi
User
Database
Cho phép truy xuất thông tin
Lưu trữ thông tin
Hệ quản trị CSDL (DBMS)
❖ DBMS (Databases Management Systems): Hệ quản trị cơ sở dữ liệu (DBMS) là một gói phần mềm được thiết kế để lưu trữ, thao tác, truy xuất và quản lý dữ liệu trong cơ sở dữ liệu.
DBMS thường thao tác với dữ liệu của chính nó.
❖ DBMS lưu trữ tất cả dữ liệu trong một tệp cơ sở dữ liệu.
❖ Trong DBMS các tệp có liên quan đến nhau.
Hệ quản trị cơ sở dữ liệu (DBMS)
Một số công cụ DBMS phổ biến:
Xếp hạng các hệ quản trị CSDL phổ biến nhất thế giới năm 2022*
Thông tin chi tiết
Hệ quản trị CSDL (DBMS)
MySQL level A
Hệ quản trị cơ sở dữ liệu (DBMS)
DBMS Microsoft Excel
Cập nhật dữ liệu (thêm, sửa, xóa) Có Có
Tạo CSDL Có Có
Tạo Thủ tục, Hàm theo yêu cầu Có Có
Cho phép nhiều người dùng truy
cập vào CSDL cùng lúc
Có KhôngTính bảo mật
Nâng cao tính bảo mật cho CSDLKhông cho phép mỗi người vào với một mật khẩu khác nhau
Quy mô dữ liệu
Quản trị dữ liệu nhiều (ví dụhơn 1 triệu dòng) Gặp vấn đề với dữ liệu nhiều
Cơ sở dữ liệu Hệ quản trị cơ sở dữ liệu Đơn vị sản xuất
Lưu trữ Dữ liệu cơ bản Quản trị CSDL Đơn vị cụ thể xây dựng hệ
quản trị CSDL
Chức năng
➢ Chứa dữ liệu.
➢ Có các khái niệm cơ bản như:
○ Bảng: Sheet
○ Thuộc tính: Cột trong Excel
○ Bản ghi: Hàng
➢ Quản trị Người dùng
➢ Tạo CSDL
➢ Thực hiện truy vấn dữ liệu
➢ Quản trị truy cập từ xa,...
Bản chất Files lưu trữ (Chữ viết, con số, hình
ảnh, âm thanh…) Phần mềm, ứng dụng
VD: Oracle, Microsoft SQL Server, MySQL Server,...
Ví dụ Retail_Sales MySQL Server Oracle Corporation
Order_management Microsoft SQL Server Microsoft
So sánh CSDL (Database) và Hệ quản trị CSDL (DBMS)
Hệ quản trị CSDL quan hệ (RDBMS)
MySQL level A
Hệ quản trị CSDL quan hệ (RDBMS)
Một hệ quản trị CSDL quan hệ (RDBMS) là một hệ quản trị CSDL được xây dựng trên mô hình quan hệ.
Quan hệ là gì? Mô hình quan hệ là gì?
➢ Ví dụ về một Quan hệ:
● Một quan hệ gồm:
● Khóa chính
● Các cột
● Các hàng dữ liệu
● Phạm vi thuộc tính
Hệ quản trị CSDL quan hệ (RDBMS)
Quan hệ là Bảng:
● Bảng lưu dữ liệu về một đối tượng, bao gồm nhiều cột và hàng.
● Các cột gọi là các trường dữ liệu.
+----+---+---+---+---+
| ID | TEN | TUOI | DIA_CHI | LUONG | +----+---+---+---+---+
| 1 | Toan | 22 | Ha Noi | 2000.00 |
| 2 | Thao | 21 | Vinh Phuc | 1500.00 |
| 3 | Huy | 23 | Quang Ninh| 2000.00 | +----+---+---+---+---+
➢ Chương trình sau đây là một ví dụ về một bảng Nhan_Vien:
● Các trường trong bảng bao gồm: ID, TEN, TUOI, DIA_CHI, LUONG.
● Khóa chính là ID.
Hệ quản trị CSDL quan hệ (RDBMS)
● Trong mỗi trường sẽ lưu trữ mỗi bản ghi của một dòng. Dưới đây là một bản ghi (hay dòng dữ liệu)
+---+---+---+---+---00----+
| 1 | Huy | 23 | Quang Ninh | 2000.00 | +---+---+---+---+---+
● Cột là một thực thể thẳng đứng trong một bảng có chứa tất cả các thông tin liên kết với một trường cụ thể trong một bảng. Dưới đây là một cột DIA_CHI trong bảng Nhan_Vien.
| DIA_CHI | +---+
| Ha Noi |
| Vinh Phuc |
| Quang Ninh|
+---+
Bảng Quan hệ
Hàng Bản ghi
Cột Trường
Các thuật ngữ tương đương
Hệ quản trị CSDL quan hệ (RDBMS)
Thực hành 1: Xây dựng Quan hệ CUSTOMERS
Hệ quản trị CSDL quan hệ (RDBMS)
Mối quan hệ
Mối quan hệ (Relationship): tạo ra mối liên kết giữa hai bảng nhằm xác định mối liên quan giữa các trường dữ liệu của hai bảng.
➢ Ví dụ: Mối quan hệ giữa
hai bảng dữ liệu.
●
Hai bảng có mối quan hệ
với nhau thông qua thuộc
tính CustomerID.
Một số hệ quản trị CSDL quan hệ
Hệ quản trị CSDL quan hệ Công cụ làm việc với CSDL Đơn vị hay sử dụng
Oracle SQL Developer Doanh nghiệp lớn,ngân hàng, tổ chức quốc tế,...
MySQL Workbench Người mới bắt đầu,Trường học, ngân hàng,...
SQL Server Management Studio (SSMS)
Người mới bắt đầu, Trường học, doanh nghiệp,...
pgAdmin III
Doanh nghiệp, tài chính ngân
hàng, sản xuất – kinh doanh,
công nghệ web,...
DBMS RDBMS
Lưu trữ Lưu trữ dữ liệu dưới dạng file VD file Excel, word,...
Dữ liệu được lưu trữ trong mô hình quan hệ (trong bảng).
Khóa và chỉ mục
Không sử dụng. Các bảng có một id được gọi là Primary Key và các giá trị dữ liệu được lưu trữ trong dạng các bảng
Bình
thường hóa
Không được thực hiện RDBMS sử dụng chuẩn hóa để giảm hoặc loại bỏ sự dư thừa.
Ràng buộc DBMS không áp dụng bất cứ ràng buộc nào với việc thao tác và toàn vẹn dữ liệu
Ràng buộc về toàn vẹn dữ liệu (integrity constraint) với 4 thuộc tính ACID (Atomicity, Consistency, Isolation và Durability)
Sửa đổi Sửa đổi trong dữ liệu là phức tạp. Sửa đổi trong dữ liệu là dễ dàng và đơn giản.
Điểm khác biệt giữa DBMS và RDBMS
DBMS RDBMS
Truy cập dữ liệu
Tiêu thụ nhiều thời
gian hơn. Nhanh hơn so với DBMS.
Dữ liệu
DBMS thích hợp cho các hoạt động nhỏ mà
xử lý lượng dữ liệu nhỏ. Nó hỗ trợ đơn
người dùng
RDBMS được thiết kế để xử lý lượng dữ liệu lớn. Nó hỗ
trợ đa người dùng
Ví dụ Các ví dụ của DBMS là file system, xml, …
Các ví dụ của RDBMS là mysql, postgre, sql server,
oracle
Điểm khác biệt giữa DBMS và RDBMS
Mô hình CSDL quan hệ và phi quan hệ
MySQL level A
Cơ sở dữ liệu quan hệ
● CSDL quan hệ là một mô hình quan hệ, Không có các liên kết vật lý.
● Dữ liệu được lưu trong các hàng và các cột. Các bảng được liên kết với nhau bởi các thuộc tính (cột).
● Dữ liệu trong 2 bảng thông qua một trường chung.
Ví dụ 1:
○ Bảng MƯỢN SÁCH có mối quan hệ với Bảng NGƯỜI MƯỢN thông qua thuộc tính SỐ THẺ
○ Bảng MƯỢN SÁCH có mối quan hệ với Bảng SÁCH thông qua thuộc tính MÃ SỐ SÁCH
Cơ sở dữ liệu quan hệ
Ví dụ : Cơ sở dữ liệu quan hệ (RDBMS) cho Quản lý bán hàng
CSDL quản lý bán hàng gồm các thực thể sau:
● Hàng hóa
● Chất liệu hàng hóa
● Hóa đơn
● Chi tiết Hóa đơn
● Nhân viên bán hàng
● Khách hàng
Các quan hệ được liên kết với nhau bằng các liên kết giữa khóa chính và khóa ngoại
Ví dụ : khóa ngoại Machatlieu ở bảng tblHang và khóa chính Machatlieu ở bảng tblChatlieu
Cơ sở dữ liệu phi quan hệ (NoSQL)
● NoSQL là nơi lưu trữ dữ liệu của mình theo các cặp Key - Value.
● Dữ liệu có thể bị trùng lặp do một số node sẽ lưu cùng thông tin giống nhau.
● Phi quan hệ sẽ không có ràng buộc nào cho việc nhất quán dữ liệu.
● Có 4 mô hình lưu trữ dữ liệu phổ biến thường gặp nhất :
❖ Document Store
❖ Key - Values stores
❖ Wide column stores
❖ Graph Store
Cơ sở dữ liệu phi quan hệ (NoSQL)
● Ví dụ :
Đây là ví dụ về key - values
store. Trong đó với mỗi key sẽ
tương ứng với values kế bên
tạo thành một mô hình lưu trữ
dữ liệu
Cơ sở dữ liệu phi quan hệ (NoSQL)
● Ví dụ : Đây là ví dụ về mô hình
Graph Store.
Trong đó với mỗi các thực thể sẽ được liên kết với nhau thông qua các thuộc tính tạo thành một mô hình dạng đồ thị.
Mô hình Graph Store
Một số hệ quản trị CSDL phi quan hệ
Ngôn ngữ làm việc phổ biến Công cụ làm việc với CSDL Đơn vị hay sử dụng
MongoDB
Nhà phát triển phần mềm, kiến trúc sư và quản trị viên, Chuyên gia Database
Redis Tổ chức quốc tế, Doanh nghiệp lớn...
Canssandra Những doanh nghiệp làm về ứng dụng chat, iot,...
Elasticsearch
Các công ty lớn như Quora, Github, Netflix, Pixaybay, Facebook, Wiki, Adobe...
So sánh cơ sở dữ liệu quan hệ với phi quan hệ
Tiêu chí Cơ sở dữ liệu quan hệ (SQL) Cơ sở dữ liệu phi quan hệ (NoSQL) Ngôn ngữ Query SQL (Structured Query Language) Không có ngôn ngữ Query
Loại hình SQL databases là cơ sở dữ liệu dựa trên bảng NoSQL databases có thể dựa trên tài liệu, cặp khóa-giá trị, cơ sở dữ liệu biểu đồ
Khả năng mở rộng Có thể mở rộng theo chiều dọc Có thể mở rộng theo chiều ngang Mục đích sử dụng Được thiết kế dành cho các ứng dụng xử lý giao
dịch trực tuyến trong giao dịch có độ ổn định cao và thích hợp để xử lí phân tích trực tuyến
Được thiết kế để phục vụ phân tích dữ liệu có cấu trúc chưa hoàn chỉnh.
Lựa chọn sử dụng Dự án đã có yêu cầu dữ liệu rõ ràng xác định quan hệ logic có thể được xác định trước
Dự án yêu cầu dữ liệu không liên quan, khó xác định, đơn giản mềm dẻo khi đang phát triển
Mã nguồn Một sự kết hợp của mã nguồn mở như Postgres &
MySQL, và thương mại như Oracle Database.
Open-source
Các hãng sản xuất MySQL, Oracle , SQL Server, Oracle,... MongoDB, DynamoDB...
Ngôn ngữ SQL
MySQL level A
Một số điều cần biết về ngôn ngữ SQL
❖ SQL = Structured Query Language
❖
Ngôn ngữ truy vấn dữ liệu (thế hệ 4)
❖
Chia làm 4 loại:
➢
DML: cập nhật dữ liệu
➢
DDL: định nghĩa cấu trúc
➢
DCL: phân quyền
➢
TCL: điều khiển giao dịch
Lớp thực thi các lệnh SQL
Ngôn ngữ lập trình thế hệ thứ 4
Ngôn ngữ lập trình thế hệ thứ tư - Fourth-generation language (4GL):
- Được biết đến với tên “Ngôn ngữ truy vấn dữ liệu”.
- Là ngôn ngữ được đánh giá gần với ngôn ngữ của con người nhất hiện nay.
- Thân thiện với lập trình viên hơn và nâng cao hiệu quả lập trình với việc sử dụng các cụm từ tiếng Anh dễ hiểu.
- Nhiều ngôn ngữ 4GL được liên kết với cơ sở dữ liệu và xử lý dữ liệu, cho phép
phát triển hiệu quả các hệ thống định hướng kinh doanh.
Một số điều cần biết về ngôn ngữ SQL
SQL cho phép chúng ta:
● Truy vấn SQL theo nhiều cách, sử dụng các câu lệnh bằng tiếng Anh.
● Người sử dụng có thể truy cập dữ liệu từ hệ thống quản trị CSDL quan hệ.
● Cho phép người dùng mô tả dữ liệu.
● Cho phép người dùng định nghĩa dữ liệu trong cơ sở dữ liệu và thao tác khi cần.
● Cho phép người dùng tạo và xóa cơ sở dữ liệu và bảng.
● Cho phép người dùng tạo một view, stored procedure, function trong một CSDL.
● Cho phép người dùng phân quyền trên tables, procedures, và views.
Ví dụ câu lệnh SQL tạo bảng NHAN_VIEN
Hệ quản trị CSDL MySQL
MySQL level A
Hệ quản trị CSDL MySQL
● Hệ quản trị CSDL quan hệ
● Top 2 thế giới về sử dụng
● Cài đặt máy chủ/máy tính
● Free
MySQL là gì ?
Giới thiệu về môi trường truy vấn MySQL Workbench
● MySQL Workbench chính là một chương trình giúp cho người lập trình có thể giao tiếp với hệ cơ sở dữ liệu MySQL Server thay vì phải sử dụng các lệnh Command-line phức tạp và mất thời gian.
● MySQL Workbench được thiết kế đơn giản, dễ sử dụng và có thể thích ứng với nhiều hệ điều hành như Window, MacOS, Linux, Ubuntu,...
MySQL Workbench là gì ?
Tại sao phải cài đặt ?
● Dễ sử dụng và linh hoạt hơn khi sử dụng trên command-line
● Hiệu năng cao
● Hệ quản trị tiêu chuẩn
● Độ bảo mật cao
Giới thiệu về môi trường truy vấn MySQL Workbench
Giao diện sau khi thiết lập thành công
Phân biệt các khái niệm sau Thực hành
Khái niệm DBMS DB Ngôn
ngữ
Công cụ làm việc
Tên sản phẩm
Hãng sản xuất
1 MySQL
2 MySQL Server 3 MySQL Workbench 4 MySQL Database 5 Microsoft SQL
6 Microsoft SQL Server 7 Microsoft SQL Database
8 Microsoft SQL Server Management Studio
9 SQL
10 PL SQL