210 ngày học Oracle
Table of contents
- Buổi 1: Giới thiệu về cơ sở dữ liệu
- Buổi 2: Mô hình quan hệ và ERD
- Buổi 3: Cú pháp SQL cơ bản
- Buổi 4: Truy vấn dữ liệu với SELECT
- Buổi 5: Hàm và toán tử trong SQL
- Buổi 6: Nối bảng (JOIN)
- Buổi 7: Truy vấn con (Subquery)
- Buổi 8: Hàm nhóm (Aggregate function)
- Buổi 9: Nhóm dữ liệu (GROUP BY) và lọc nhóm (HAVING)
- Buổi 10: Các lệnh DDL nâng cao
- Buổi 11: Giới thiệu về Oracle Application Express (APEX)
- Buổi 12: Tạo ứng dụng đầu tiên với APEX
- Buổi 13: Xây dựng giao diện người dùng trong APEX
- Buổi 14: Xử lý dữ liệu và logic nghiệp vụ trong APEX
- Buổi 15: Bảo mật và triển khai ứng dụng APEX
- Buổi 16: Giới thiệu về JSON
- Buổi 17: Làm việc với JSON trong SQL (Phần 1)
- Buổi 18: Làm việc với JSON trong SQL (Phần 2)
- Buổi 19: Lưu trữ dữ liệu JSON trong Oracle
- Buổi 20: Truy vấn dữ liệu JSON trong Oracle
- Buổi 21: Tích hợp dữ liệu (Data Integration) - Tổng quan
- Buổi 22: ETL (Extract, Transform, Load)
- Buổi 23: ELT (Extract, Load, Transform)
- Buổi 24: Data replication và Data virtualization
- Buổi 25: Data Integration trong Oracle
- Buổi 26: Tổng quan về bảo mật cơ sở dữ liệu
- Buổi 27: Xác thực và phân quyền trong Oracle
- Buổi 28: Mã hóa dữ liệu trong Oracle
- Buổi 29: Kiểm tra (Auditing) trong Oracle
- Buổi 30: Các biện pháp bảo mật khác trong Oracle
- Buổi 31: Tổng quan về tính khả dụng của cơ sở dữ liệu
- Buổi 32: Sao lưu và phục hồi cơ sở dữ liệu (Phần 1)
- Buổi 33: Sao lưu và phục hồi cơ sở dữ liệu (Phần 2)
- Buổi 34: Oracle Data Guard
- Buổi 35: Oracle Real Application Clusters (RAC)
- Buổi 36: Tổng quan về tối ưu hóa hiệu năng cơ sở dữ liệu
- Buổi 37: Giám sát hiệu năng cơ sở dữ liệu với AWR
- Buổi 38: Giám sát hiệu năng cơ sở dữ liệu với ASH
- Buổi 39: Tối ưu hóa truy vấn SQL (Phần 1)
- Buổi 40: Tối ưu hóa truy vấn SQL (Phần 2)
- Buổi 41: Giới thiệu về PL/SQL
- Buổi 42: Biến, hằng số và kiểu dữ liệu trong PL/SQL
- Buổi 43: Cấu trúc điều khiển IF-THEN-ELSE và CASE
- Buổi 44: Vòng lặp LOOP, WHILE, và FOR
- Buổi 45: Xử lý ngoại lệ (EXCEPTION)
- Buổi 46: Thủ tục (Procedure) trong PL/SQL
- Buổi 47: Hàm (Function) trong PL/SQL
- Buổi 48: Gói (Package) trong PL/SQL
- Buổi 49: Trigger trong PL/SQL
- Buổi 50: Quản lý và tối ưu hóa PL/SQL
- Buổi 51: Giới thiệu về Machine Learning
- Buổi 52: Giới thiệu về Oracle Machine Learning (OML)
- Buổi 53: Tiền xử lý dữ liệu với OML4SQL
- Buổi 54: Xây dựng mô hình phân loại với OML4SQL
- Buổi 55: Xây dựng mô hình hồi quy với OML4SQL
- Buổi 56: Giới thiệu về cơ sở dữ liệu đồ thị
- Buổi 57: Giới thiệu về Oracle Graph
- Buổi 58: PGQL cơ bản
- Buổi 59: PGQL nâng cao
- Buổi 60: PGQL nâng cao (tiếp theo)
- Buổi 61: Giới thiệu về cơ sở dữ liệu không gian
- Buổi 62: Giới thiệu về Oracle Spatial
- Buổi 63: Truy vấn dữ liệu không gian với Oracle Spatial
- Buổi 64: Phân tích dữ liệu không gian với Oracle Spatial
- Buổi 65: Xây dựng ứng dụng không gian với Oracle Spatial
- Buổi 66: Kiến trúc Oracle Database
- Buổi 67: Cài đặt Oracle Database trên Linux
- Buổi 68: Cài đặt Oracle Database trên Windows
- Buổi 69: Quản lý tablespace
- Buổi 70: Quản lý datafile
- Buổi 71: Quản lý control file và redo log file
- Buổi 72: Quản lý instance
- Buổi 73: Quản lý listener
- Buổi 74: Quản lý dịch vụ
- Buổi 75: Quản lý người dùng và phân quyền
- Buổi 76: Tổng quan về bảo mật Oracle Database
- Buổi 77: Quản lý người dùng và phân quyền
- Buổi 78: Mã hóa dữ liệu (Data Encryption)
- Buổi 79: Kiểm soát truy cập mạng (Network Security)
- Buổi 80: Auditing
- Buổi 81: Tổng quan về tối ưu hóa hiệu năng
- Buổi 82: Giám sát hiệu năng với Automatic Workload Repository (AWR)
- Buổi 83: Giám sát hiệu năng với Active Session History (ASH)
- Buổi 84: Tối ưu hóa index
- Buổi 85: Tối ưu hóa truy vấn SQL với hint
- Buổi 86: Tối ưu hóa truy vấn SQL với query rewrite
- Buổi 87: Tối ưu hóa bộ nhớ đệm (buffer cache)
- Buổi 88: Tối ưu hóa I/O
- Buổi 89: Tối ưu hóa mạng
- Buổi 90: Tối ưu hóa ứng dụng
- Buổi 91: Giới thiệu về Tuning Oracle
- Buổi 92: Các nguyên tắc cơ bản của Tuning Oracle
- Buổi 93: Giám sát và phân tích hiệu năng với AWR và ASH
- Buổi 94: Sử dụng SQL Tuning Advisor
- Buổi 95: Sử dụng SQL Trace và Explain Plan
- Buổi 96: Tối ưu hóa SQL với các kỹ thuật nâng cao (Phần 1)
- Buổi 97: Tối ưu hóa SQL với các kỹ thuật nâng cao (Phần 2)
- Buổi 98: Sử dụng SQL Tuning Advisor (STA)
- Buổi 99: Sử dụng SQL Access Advisor (SAA)
- Buổi 100: Sử dụng SQL Performance Analyzer (SPA)
- Dự án 1: Hệ thống quản lý nhân sự (10 buổi)
- Dự án 2: Hệ thống quản lý bán hàng (10 buổi)
- Dự án 3: Hệ thống quản lý kho (10 buổi)
- Dự án 4: Hệ thống quản lý thư viện (10 buổi)
- Dự án 5: Hệ thống thương mại điện tử (10 buổi)
- Dự án 5: Hệ thống thanh toán trực tuyến (10 buổi)
- Dự án 6: Hệ thống quản lý bệnh viện (10 buổi)
- Dự án 7: Hệ thống ngân hàng (10 buổi)
- Dự án 8: Hệ thống đặt vé máy bay (10 buổi)
- Dự án 9: Hệ thống quản lý trường học (10 buổi)
- Dự án 10: Hệ thống phân tích mạng xã hội (10 buổi)
Buổi 1: Giới thiệu về cơ sở dữ liệu
Các loại mô hình cơ sở dữ liệu (quan hệ, phân cấp, mạng, hướng đối tượng).
Khái niệm về dữ liệu, thông tin, cơ sở dữ liệu.
Lợi ích và ứng dụng của cơ sở dữ liệu.
Bài tập:
Nghiên cứu về lịch sử phát triển của cơ sở dữ liệu.
So sánh các mô hình cơ sở dữ liệu khác nhau.
Đưa ra ví dụ về ứng dụng cơ sở dữ liệu trong thực tế.
Buổi 2: Mô hình quan hệ và ERD
Các thành phần của mô hình quan hệ (bảng, thuộc tính, khóa chính, khóa ngoại).
Mối quan hệ giữa các bảng (một-một, một-nhiều, nhiều-nhiều).
Vẽ sơ đồ ERD (Entity-Relationship Diagram).
Bài tập:
Thiết kế ERD cho một hệ thống quản lý sinh viên.
Thiết kế ERD cho một hệ thống quản lý thư viện.
Thiết kế ERD cho một hệ thống bán hàng trực tuyến.
Buổi 3: Cú pháp SQL cơ bản
Các lệnh DDL (Data Definition Language): CREATE, ALTER, DROP.
Các lệnh DML (Data Manipulation Language): SELECT, INSERT, UPDATE, DELETE.
Bài tập:
Tạo một bảng
students
với các cộtid
,name
,age
.Chèn một vài bản ghi vào bảng
students
.Cập nhật thông tin của một sinh viên trong bảng
students
.
Buổi 4: Truy vấn dữ liệu với SELECT
Lọc dữ liệu với mệnh đề WHERE.
Sắp xếp dữ liệu với mệnh đề ORDER BY.
Bài tập:
Viết câu lệnh SQL để lấy danh sách tất cả sinh viên có tuổi lớn hơn 20.
Viết câu lệnh SQL để lấy danh sách sinh viên sắp xếp theo tên tăng dần.
Viết câu lệnh SQL để lấy danh sách 10 sinh viên có điểm trung bình cao nhất.
Buổi 5: Hàm và toán tử trong SQL
Các hàm xử lý chuỗi, số, ngày tháng.
Các toán tử số học, so sánh, logic.
Bài tập:
Viết câu lệnh SQL để lấy tên sinh viên viết hoa toàn bộ.
Viết câu lệnh SQL để tính tuổi của sinh viên từ ngày sinh.
Viết câu lệnh SQL để kiểm tra một chuỗi có chứa một từ khóa cụ thể hay không.
Buổi 6: Nối bảng (JOIN)
Các loại JOIN (INNER JOIN, LEFT JOIN, RIGHT JOIN, FULL JOIN).
Sử dụng JOIN để kết hợp dữ liệu từ nhiều bảng.
Bài tập:
Viết câu lệnh SQL để lấy danh sách sinh viên và lớp học mà họ đang theo học, sử dụng INNER JOIN.
Viết câu lệnh SQL để lấy danh sách tất cả các lớp học, bao gồm cả những lớp chưa có sinh viên đăng ký, sử dụng LEFT JOIN.
Viết câu lệnh SQL để lấy danh sách tất cả sinh viên và điểm số của họ trong một môn học cụ thể, sử dụng RIGHT JOIN.
Buổi 7: Truy vấn con (Subquery)
Khái niệm về truy vấn con và các loại truy vấn con.
Sử dụng truy vấn con để lọc và tính toán dữ liệu.
Bài tập:
Viết câu lệnh SQL để tìm sinh viên có điểm trung bình cao nhất, sử dụng truy vấn con.
Viết câu lệnh SQL để tìm các lớp học có số lượng sinh viên đăng ký nhiều hơn một số lượng cho trước, sử dụng truy vấn con.
Viết câu lệnh SQL để tìm các sản phẩm có giá cao hơn giá trung bình của tất cả các sản phẩm, sử dụng truy vấn con.
Buổi 8: Hàm nhóm (Aggregate function)
Các hàm nhóm phổ biến (COUNT, SUM, AVG, MIN, MAX).
Sử dụng hàm nhóm để tính toán thống kê trên dữ liệu.
Bài tập:
Viết câu lệnh SQL để đếm số lượng sinh viên trong mỗi lớp học.
Viết câu lệnh SQL để tính tổng số tiền bán được của mỗi sản phẩm.
Viết câu lệnh SQL để tìm giá trị lớn nhất và nhỏ nhất của một cột trong bảng.
Buổi 9: Nhóm dữ liệu (GROUP BY) và lọc nhóm (HAVING)
Sử dụng GROUP BY để nhóm dữ liệu theo một hoặc nhiều cột.
Sử dụng HAVING để lọc các nhóm dữ liệu.
Bài tập:
Viết câu lệnh SQL để tìm các lớp học có số lượng sinh viên lớn hơn 5.
Viết câu lệnh SQL để tìm các sản phẩm có tổng số lượng bán được lớn hơn 100.
Viết câu lệnh SQL để tìm các khách hàng đã mua nhiều hơn 3 sản phẩm khác nhau.
Buổi 10: Các lệnh DDL nâng cao
Tạo và quản lý các ràng buộc (constraints) trên bảng (PRIMARY KEY, FOREIGN KEY, UNIQUE, CHECK, NOT NULL).
Tạo và quản lý view (cơ sở dữ liệu ảo).
Tạo và quản lý sequence (dãy số tự động).
Bài tập:
Tạo một bảng
orders
với các ràng buộc khóa chính, khóa ngoại, và kiểm tra tính hợp lệ của dữ liệu.Tạo một view để hiển thị thông tin về sản phẩm và số lượng đã bán.
Tạo một sequence để sinh mã đơn hàng tự động.
Buổi 11: Giới thiệu về Oracle Application Express (APEX)
APEX là gì? Ưu điểm và nhược điểm của APEX.
Kiến trúc của APEX và các thành phần chính (workspace, application, page, component).
Cài đặt và cấu hình APEX.
Bài tập:
Cài đặt APEX trên máy tính của bạn hoặc sử dụng APEX trên Oracle Cloud.
Tạo một workspace mới trong APEX.
Khám phá giao diện làm việc của APEX và các tính năng cơ bản.
Buổi 12: Tạo ứng dụng đầu tiên với APEX
Tạo một ứng dụng mới trong APEX.
Tạo các trang (page) và các thành phần (component) cơ bản (report, form, chart, ...).
Kết nối ứng dụng với cơ sở dữ liệu.
Bài tập:
Tạo một ứng dụng APEX đơn giản để quản lý danh sách sản phẩm.
Thêm một trang để hiển thị chi tiết sản phẩm.
Thêm một form để tạo và chỉnh sửa sản phẩm.
Buổi 13: Xây dựng giao diện người dùng trong APEX
Sử dụng Page Designer để thiết kế giao diện.
Sử dụng các thành phần có sẵn (button, text field, select list, ...).
Tùy chỉnh giao diện bằng CSS.
Bài tập:
Tạo một trang đăng nhập cho ứng dụng.
Tạo một trang hiển thị danh sách sản phẩm theo dạng bảng.
Tạo một trang hiển thị biểu đồ thống kê doanh số bán hàng.
Buổi 14: Xử lý dữ liệu và logic nghiệp vụ trong APEX
Sử dụng SQL và PL/SQL để truy vấn và xử lý dữ liệu.
Sử dụng Dynamic Actions để tạo các tương tác trên trang.
Sử dụng Validations để kiểm tra tính hợp lệ của dữ liệu.
Bài tập:
Viết một dynamic action để cập nhật tổng tiền khi người dùng thay đổi số lượng sản phẩm trong giỏ hàng.
Viết một validation để kiểm tra định dạng email của người dùng khi đăng ký.
Viết một process để tính toán và cập nhật doanh số bán hàng hàng tháng.
Buổi 15: Bảo mật và triển khai ứng dụng APEX
Các phương pháp xác thực người dùng trong APEX.
Phân quyền truy cập dựa trên vai trò.
Triển khai ứng dụng APEX lên môi trường production.
Bài tập:
Cài đặt xác thực người dùng bằng tài khoản APEX hoặc cơ sở dữ liệu.
Phân quyền truy cập cho các trang và chức năng khác nhau trong ứng dụng.
Tìm hiểu về các phương pháp triển khai ứng dụng APEX (export/import, SQL scripts).
Buổi 16: Giới thiệu về JSON
JSON là gì? Cấu trúc của JSON (object, array, value).
Các kiểu dữ liệu trong JSON (string, number, boolean, null, object, array).
So sánh JSON với XML.
Bài tập:
Tạo một file JSON đơn giản chứa thông tin về một người (tên, tuổi, địa chỉ).
Sử dụng một công cụ trực tuyến để kiểm tra tính hợp lệ của file JSON.
Chuyển đổi một file XML đơn giản sang JSON.
Buổi 17: Làm việc với JSON trong SQL (Phần 1)
Các hàm JSON trong Oracle SQL:
JSON_VALUE
: Trích xuất một giá trị scalar từ JSON.JSON_QUERY
: Trích xuất một hoặc nhiều giá trị từ JSON theo một đường dẫn (path).JSON_EXISTS
: Kiểm tra sự tồn tại của một đường dẫn trong JSON.
Bài tập:
Tạo một bảng
employees
với một cộtdata
kiểu JSON để lưu trữ thông tin nhân viên.Chèn một vài bản ghi vào bảng
employees
với dữ liệu JSON.Sử dụng các hàm
JSON_VALUE
,JSON_QUERY
,JSON_EXISTS
để truy vấn thông tin nhân viên từ cộtdata
.
Buổi 18: Làm việc với JSON trong SQL (Phần 2)
Các hàm JSON trong Oracle SQL (tiếp theo):
JSON_TABLE
: Biến đổi dữ liệu JSON thành các hàng và cột trong một bảng ảo.JSON_ARRAYAGG
: Tạo một mảng JSON từ các giá trị.JSON_OBJECTAGG
: Tạo một object JSON từ các cặp key-value.
Bài tập:
Sử dụng
JSON_TABLE
để trích xuất thông tin chi tiết về các kỹ năng của nhân viên từ cộtdata
.Sử dụng
JSON_ARRAYAGG
để tạo một mảng JSON chứa danh sách các sản phẩm đã mua của một khách hàng.Sử dụng
JSON_OBJECTAGG
để tạo một object JSON chứa thông tin thống kê về doanh số bán hàng theo tháng.
Buổi 19: Lưu trữ dữ liệu JSON trong Oracle
Các kiểu dữ liệu JSON trong Oracle (
JSON
,JSON_ARRAY
,JSON_OBJECT
).Sử dụng các ràng buộc (constraints) để kiểm tra tính hợp lệ của dữ liệu JSON.
Tạo index trên các cột JSON để tăng tốc độ truy vấn.
Bài tập:
Tạo một bảng
products
với một cộtdetails
kiểu JSON để lưu trữ thông tin chi tiết về sản phẩm.Thêm ràng buộc
IS JSON
vào cộtdetails
để đảm bảo chỉ lưu trữ dữ liệu JSON hợp lệ.Tạo một index hàm (function-based index) trên cột
details
để tăng tốc độ truy vấn.
Buổi 20: Truy vấn dữ liệu JSON trong Oracle
Sử dụng các hàm JSON để lọc, sắp xếp, và tính toán trên dữ liệu JSON.
Sử dụng
JSON_TABLE
để kết hợp dữ liệu JSON với các bảng quan hệ khác.Bài tập:
Viết câu lệnh SQL để tìm các sản phẩm có giá lớn hơn một giá trị cho trước, sử dụng
JSON_VALUE
.Viết câu lệnh SQL để tìm các sản phẩm thuộc một danh mục cụ thể, sử dụng
JSON_EXISTS
.Viết câu lệnh SQL để lấy danh sách sản phẩm và thông tin chi tiết của chúng, sử dụng
JSON_TABLE
.
Buổi 21: Tích hợp dữ liệu (Data Integration) - Tổng quan
Khái niệm về tích hợp dữ liệu và tầm quan trọng của nó trong doanh nghiệp.
Các loại tích hợp dữ liệu (ETL, ELT, data replication, data virtualization).
Các thách thức trong tích hợp dữ liệu (heterogeneity, data quality, data security).
Bài tập:
Nghiên cứu về các trường hợp sử dụng tích hợp dữ liệu trong các ngành công nghiệp khác nhau.
So sánh các loại tích hợp dữ liệu và ưu nhược điểm của từng loại.
Tìm hiểu về các công cụ và nền tảng tích hợp dữ liệu phổ biến.
Buổi 22: ETL (Extract, Transform, Load)
Quy trình ETL và các bước thực hiện.
Các công cụ ETL phổ biến (Oracle Data Integrator, Informatica PowerCenter, Talend).
Các kỹ thuật trích xuất, chuyển đổi và tải dữ liệu.
Bài tập:
Sử dụng Oracle Data Integrator hoặc một công cụ ETL khác để thực hiện một quy trình ETL đơn giản.
Tìm hiểu về các thành phần của một quy trình ETL (data source, data target, mapping, transformation, ...).
Thực hành các kỹ thuật chuyển đổi dữ liệu như làm sạch dữ liệu, chuẩn hóa dữ liệu, và làm giàu dữ liệu.
Buổi 23: ELT (Extract, Load, Transform)
Quy trình ELT và sự khác biệt so với ETL.
Ưu điểm và nhược điểm của ELT.
Các công cụ ELT phổ biến (Oracle Autonomous Data Warehouse, Snowflake, Google BigQuery).
Bài tập:
Tìm hiểu về các khái niệm cơ bản của ELT.
So sánh ETL và ELT và xác định khi nào nên sử dụng mỗi loại.
Nghiên cứu về các trường hợp sử dụng ELT trong các doanh nghiệp lớn.
Buổi 24: Data replication và Data virtualization
Data replication: Sao chép dữ liệu từ một nguồn đến một hoặc nhiều đích.
Data virtualization: Tạo một lớp trừu tượng trên nhiều nguồn dữ liệu khác nhau.
Ưu điểm và nhược điểm của từng phương pháp.
Bài tập:
Tìm hiểu về các công cụ và kỹ thuật data replication.
Tìm hiểu về các công cụ và nền tảng data virtualization.
So sánh data replication và data virtualization và xác định khi nào nên sử dụng mỗi phương pháp.
Buổi 25: Data Integration trong Oracle
Các công cụ và tính năng tích hợp dữ liệu trong Oracle (Oracle Data Integrator, GoldenGate, ...).
Tích hợp dữ liệu giữa các hệ thống Oracle và các hệ thống khác.
Bài tập:
Tìm hiểu về Oracle Data Integrator và các tính năng của nó.
Sử dụng Oracle Data Integrator để tích hợp dữ liệu giữa hai bảng trong Oracle Database.
Tìm hiểu về Oracle GoldenGate và cách sử dụng nó để sao chép dữ liệu theo thời gian thực.
Buổi 26: Tổng quan về bảo mật cơ sở dữ liệu
Các khái niệm cơ bản về bảo mật cơ sở dữ liệu (confidentiality, integrity, availability).
Các mối đe dọa bảo mật phổ biến (unauthorized access, data leakage, data corruption).
Các lớp bảo mật trong Oracle (network security, database security, operating system security).
Bài tập:
Nghiên cứu về các tiêu chuẩn bảo mật cơ sở dữ liệu như ISO/IEC 27001 và NIST SP 800-53.
Đọc các bài báo và tài liệu về các vụ tấn công cơ sở dữ liệu gần đây.
Phân tích các lỗ hổng bảo mật tiềm ẩn trong một ứng dụng cơ sở dữ liệu đơn giản.
Buổi 27: Xác thực và phân quyền trong Oracle
Các phương pháp xác thực người dùng (password-based, certificate-based, Kerberos, ...).
Các vai trò (role) và quyền (privilege) trong Oracle.
Cấp và thu hồi quyền truy cập cho người dùng và vai trò.
Bài tập:
Tạo một người dùng mới trong Oracle và cấp cho họ quyền truy cập vào một số bảng cụ thể.
Tạo một vai trò mới và gán các quyền cần thiết cho vai trò đó.
Thử nghiệm các kịch bản truy cập cơ sở dữ liệu với các người dùng và vai trò khác nhau.
Buổi 28: Mã hóa dữ liệu trong Oracle
Các thuật toán mã hóa phổ biến (AES, DES, 3DES, RSA).
Mã hóa dữ liệu ở mức cột (Transparent Data Encryption - TDE).
Mã hóa dữ liệu ở mức bảng (Tablespace Encryption).
Bài tập:
Mã hóa một cột chứa thông tin nhạy cảm (ví dụ: số thẻ tín dụng) trong một bảng.
Mã hóa toàn bộ một tablespace chứa dữ liệu quan trọng.
Tìm hiểu về các công cụ quản lý khóa (key management) trong Oracle.
Buổi 29: Kiểm tra (Auditing) trong Oracle
Giới thiệu về kiểm tra và tầm quan trọng của nó trong bảo mật cơ sở dữ liệu.
Các loại kiểm tra trong Oracle (standard auditing, fine-grained auditing).
Cấu hình kiểm tra để theo dõi các hoạt động truy cập và thay đổi dữ liệu.
Bài tập:
Kích hoạt kiểm tra tiêu chuẩn (standard auditing) trong Oracle.
Xem các bản ghi kiểm tra trong bảng
aud$
.Cấu hình kiểm tra chi tiết (fine-grained auditing) để theo dõi các hoạt động cụ thể trên một bảng hoặc một cột.
Buổi 30: Các biện pháp bảo mật khác trong Oracle
Data masking: Che giấu dữ liệu nhạy cảm khi truy vấn.
Database firewall: Ngăn chặn truy cập trái phép từ bên ngoài.
Virtual Private Database (VPD): Áp dụng chính sách bảo mật dựa trên người dùng và ngữ cảnh.
Bài tập:
Thực hiện data masking cho một cột chứa thông tin nhạy cảm.
Tìm hiểu về Oracle Database Firewall và cách cấu hình nó.
Tìm hiểu về VPD và cách sử dụng nó để bảo vệ dữ liệu.
Buổi 31: Tổng quan về tính khả dụng của cơ sở dữ liệu
Khái niệm về tính khả dụng (availability) và các chỉ số đo lường (uptime, downtime, MTBF, MTTR).
Tầm quan trọng của tính khả dụng trong các ứng dụng doanh nghiệp.
Các yếu tố ảnh hưởng đến tính khả dụng (hardware failure, software failure, human error, natural disasters).
Bài tập:
Tìm hiểu về các chỉ số đo lường tính khả dụng và cách tính toán chúng.
Nghiên cứu về các vụ mất dữ liệu hoặc gián đoạn dịch vụ do sự cố cơ sở dữ liệu gây ra.
Phân tích các yếu tố có thể ảnh hưởng đến tính khả dụng của một hệ thống cơ sở dữ liệu cụ thể.
Buổi 32: Sao lưu và phục hồi cơ sở dữ liệu (Phần 1)
Các loại sao lưu (full backup, incremental backup, archive log backup).
Các phương pháp sao lưu (physical backup, logical backup).
Các công cụ sao lưu trong Oracle (RMAN, Data Pump).
Bài tập:
Thực hiện một bản sao lưu đầy đủ (full backup) của cơ sở dữ liệu Oracle.
Thực hiện một bản sao lưu tăng dần (incremental backup) của cơ sở dữ liệu Oracle.
Tìm hiểu về các tùy chọn cấu hình sao lưu trong RMAN.
Buổi 33: Sao lưu và phục hồi cơ sở dữ liệu (Phần 2)
Các bước phục hồi cơ sở dữ liệu từ bản sao lưu.
Phục hồi cơ sở dữ liệu đến một thời điểm cụ thể (point-in-time recovery).
Phục hồi cơ sở dữ liệu từ các lỗi logic (flashback database, flashback table, flashback query).
Bài tập:
Thực hiện phục hồi cơ sở dữ liệu từ một bản sao lưu đầy đủ.
Thực hiện phục hồi cơ sở dữ liệu đến một thời điểm cụ thể trước khi xảy ra lỗi.
Sử dụng flashback query để khôi phục dữ liệu bị xóa nhầm.
Buổi 34: Oracle Data Guard
Oracle Data Guard là gì? Các thành phần của Data Guard (primary database, standby database).
Các chế độ bảo vệ dữ liệu (maximum protection, maximum availability, maximum performance).
Cấu hình và quản lý Data Guard.
Bài tập:
Thiết lập một cấu hình Data Guard đơn giản với một primary database và một standby database.
Thử nghiệm chuyển đổi (switchover) và chuyển đổi dự phòng (failover) giữa primary và standby database.
Tìm hiểu về các tính năng nâng cao của Data Guard như Real-Time Apply và Active Data Guard.
Buổi 35: Oracle Real Application Clusters (RAC)
Oracle RAC là gì? Kiến trúc của RAC.
Ưu điểm và nhược điểm của RAC.
Cài đặt và cấu hình RAC.
Bài tập:
Tìm hiểu về các khái niệm cơ bản của RAC (cluster, node, instance, shared storage).
Nghiên cứu về các yêu cầu phần cứng và phần mềm để cài đặt RAC.
Tìm hiểu về các công cụ quản lý RAC (Oracle Clusterware, CRS, ASM).
Buổi 36: Tổng quan về tối ưu hóa hiệu năng cơ sở dữ liệu
Các yếu tố ảnh hưởng đến hiệu năng cơ sở dữ liệu (phần cứng, phần mềm, thiết kế cơ sở dữ liệu, truy vấn SQL).
Các cấp độ tối ưu hóa (cấp độ hệ thống, cấp độ cơ sở dữ liệu, cấp độ ứng dụng).
Các bước trong quá trình tối ưu hóa hiệu năng.
Bài tập:
Nghiên cứu về các chỉ số đo lường hiệu năng cơ sở dữ liệu (throughput, response time, latency).
Tìm hiểu về các công cụ giám sát hiệu năng cơ sở dữ liệu của Oracle (AWR, ASH, Statspack).
Phân tích một báo cáo hiệu năng cơ sở dữ liệu đơn giản và xác định các vấn đề tiềm ẩn.
Buổi 37: Giám sát hiệu năng cơ sở dữ liệu với AWR
Automatic Workload Repository (AWR) là gì?
Cấu hình và thu thập dữ liệu AWR.
Các báo cáo AWR quan trọng (AWR report, ADDM report).
Bài tập:
Kích hoạt AWR trong cơ sở dữ liệu Oracle.
Tạo một báo cáo AWR và phân tích các thông tin trong báo cáo.
Sử dụng ADDM (Automatic Database Diagnostic Monitor) để phân tích các vấn đề về hiệu năng.
Buổi 38: Giám sát hiệu năng cơ sở dữ liệu với ASH
Active Session History (ASH) là gì?
Truy vấn dữ liệu ASH bằng SQL.
Phân tích dữ liệu ASH để xác định các phiên làm việc và câu lệnh SQL gây ảnh hưởng đến hiệu năng.
Bài tập:
Truy vấn dữ liệu ASH để tìm các phiên làm việc đang chờ đợi (waiting) trên một sự kiện cụ thể.
Truy vấn dữ liệu ASH để tìm các câu lệnh SQL tiêu tốn nhiều CPU hoặc I/O nhất.
Sử dụng ASH để phân tích nguyên nhân gốc rễ của một vấn đề hiệu năng cụ thể.
Buổi 39: Tối ưu hóa truy vấn SQL (Phần 1)
Các nguyên tắc cơ bản để viết truy vấn SQL hiệu quả.
Sử dụng index để tăng tốc độ truy vấn.
Các loại index (B-tree index, bitmap index, function-based index).
Bài tập:
Giải thích tại sao việc sử dụng index có thể cải thiện hiệu năng truy vấn.
Tạo các index cho các cột thường được sử dụng trong mệnh đề WHERE và JOIN.
So sánh hiệu năng của truy vấn trước và sau khi tạo index.
Buổi 40: Tối ưu hóa truy vấn SQL (Phần 2)
Sử dụng các gợi ý (hint) để điều khiển cách thức thực thi truy vấn.
Viết lại truy vấn (query rewrite) để tối ưu hóa kế hoạch thực thi.
Sử dụng các công cụ của Oracle để phân tích và tối ưu hóa truy vấn (SQL Tuning Advisor, SQL Access Advisor).
Bài tập:
Sử dụng hint để ép Oracle sử dụng một index cụ thể cho một truy vấn.
Viết lại một truy vấn phức tạp thành nhiều truy vấn đơn giản hơn để cải thiện hiệu năng.
Sử dụng SQL Tuning Advisor để đề xuất các cách tối ưu hóa truy vấn.
Buổi 41: Giới thiệu về PL/SQL
PL/SQL là gì? Tại sao nên sử dụng PL/SQL?
Ưu điểm của PL/SQL so với SQL thuần.
Cấu trúc cơ bản của một khối PL/SQL (DECLARE, BEGIN, END).
Bài tập:
Viết một khối PL/SQL đơn giản để in ra thông điệp "Hello, World!".
Viết một khối PL/SQL để tính tổng hai số được nhập từ người dùng.
Viết một khối PL/SQL để kiểm tra một số có phải là số chẵn hay không.
Buổi 42: Biến, hằng số và kiểu dữ liệu trong PL/SQL
Khai báo biến và gán giá trị.
Các kiểu dữ liệu cơ bản (NUMBER, VARCHAR2, DATE, BOOLEAN, ...).
Hằng số và các quy tắc đặt tên.
Bài tập:
Khai báo các biến để lưu trữ thông tin về một sinh viên (mã số, họ tên, ngày sinh, điểm trung bình).
Viết một khối PL/SQL để tính toán và hiển thị tuổi của sinh viên.
Viết một khối PL/SQL để kiểm tra xem điểm trung bình của sinh viên có đạt yêu cầu tốt nghiệp hay không.
Buổi 43: Cấu trúc điều khiển IF-THEN-ELSE và CASE
Câu lệnh IF-THEN-ELSE: Thực hiện các hành động khác nhau dựa trên điều kiện.
Câu lệnh CASE: Đơn giản hóa việc so sánh nhiều điều kiện.
Bài tập:
Viết một khối PL/SQL để kiểm tra xem một số có phải là số dương, số âm hay số 0.
Viết một khối PL/SQL để xếp loại học lực của sinh viên dựa trên điểm trung bình.
Viết một khối PL/SQL để tính thuế thu nhập cá nhân dựa trên mức thu nhập.
Buổi 44: Vòng lặp LOOP, WHILE, và FOR
Vòng lặp LOOP: Vòng lặp vô hạn, cần có điều kiện thoát.
Vòng lặp WHILE: Lặp lại một khối lệnh khi một điều kiện còn đúng.
Vòng lặp FOR: Lặp lại một khối lệnh một số lần xác định.
Bài tập:
Viết một khối PL/SQL để in ra các số từ 1 đến 10.
Viết một khối PL/SQL để tính tổng các số chẵn từ 1 đến 100.
Viết một khối PL/SQL để in ra bảng cửu chương.
Buổi 45: Xử lý ngoại lệ (EXCEPTION)
Các loại ngoại lệ (predefined exception, user-defined exception).
Khối EXCEPTION để bắt và xử lý ngoại lệ.
Tuyên bố (RAISE) và xử lý ngoại lệ do người dùng định nghĩa.
Bài tập:
Viết một khối PL/SQL để xử lý ngoại lệ chia cho 0 (
ZERO_DIVIDE
).Viết một khối PL/SQL để xử lý ngoại lệ khi truy cập vào một chỉ số không hợp lệ của mảng (
SUBSCRIPT_OUTSIDE_LIMIT
).Tạo một ngoại lệ do người dùng định nghĩa và sử dụng nó để kiểm tra tính hợp lệ của dữ liệu nhập vào.
Buổi 46: Thủ tục (Procedure) trong PL/SQL
Cú pháp và cách tạo thủ tục (procedure) trong PL/SQL.
Các loại tham số (IN, OUT, IN OUT).
Gọi và thực thi thủ tục từ các khối PL/SQL khác hoặc từ SQL.
Bài tập:
Viết một procedure để tính tổng của hai số nguyên được truyền vào dưới dạng tham số IN.
Viết một procedure để cập nhật thông tin của một sinh viên trong cơ sở dữ liệu, sử dụng tham số IN OUT.
Viết một procedure để in ra danh sách tất cả các sinh viên trong cơ sở dữ liệu.
Buổi 47: Hàm (Function) trong PL/SQL
Cú pháp và cách tạo hàm (function) trong PL/SQL.
Giá trị trả về của hàm.
Gọi và sử dụng hàm trong các khối PL/SQL khác hoặc trong SQL.
Bài tập:
Viết một hàm để tính giai thừa của một số nguyên dương.
Viết một hàm để kiểm tra xem một số có phải là số hoàn hảo hay không.
Viết một hàm để tính tuổi của một người dựa trên ngày sinh.
Buổi 48: Gói (Package) trong PL/SQL
Khái niệm về gói (package) và các thành phần của nó (specification, body).
Ưu điểm của việc sử dụng package (tái sử dụng mã, đóng gói, bảo mật).
Tạo và sử dụng package.
Bài tập:
Tạo một package chứa các procedure và function liên quan đến quản lý sinh viên.
Sử dụng package để thêm, sửa, xóa và tìm kiếm sinh viên.
Tìm hiểu về các package được cung cấp sẵn trong Oracle (DBMS_OUTPUT, UTL_FILE, ...).
Buổi 49: Trigger trong PL/SQL
Khái niệm về trigger và các loại trigger (DML trigger, DDL trigger, database event trigger).
Cú pháp và cách tạo trigger.
Sử dụng trigger để kiểm soát và thực hiện các hành động khi có sự kiện xảy ra trên cơ sở dữ liệu.
Bài tập:
Viết một trigger để tự động cập nhật ngày giờ sửa đổi của một bản ghi khi nó được cập nhật.
Viết một trigger để ngăn chặn việc xóa dữ liệu khỏi một bảng.
Viết một trigger để kiểm tra tính hợp lệ của dữ liệu trước khi chèn hoặc cập nhật vào một bảng.
Buổi 50: Quản lý và tối ưu hóa PL/SQL
Sử dụng PL/SQL Developer hoặc SQL Developer để phát triển và gỡ lỗi PL/SQL.
Sử dụng các công cụ của Oracle để phân tích và tối ưu hóa hiệu suất của PL/SQL (PL/SQL Profiler, Explain Plan).
Bài tập:
Tìm hiểu về các tính năng gỡ lỗi trong PL/SQL Developer hoặc SQL Developer.
Sử dụng PL/SQL Profiler để phân tích hiệu suất của một khối PL/SQL.
Sử dụng Explain Plan để xem kế hoạch thực thi của một câu lệnh SQL trong PL/SQL.
Buổi 51: Giới thiệu về Machine Learning
Khái niệm về Machine Learning (ML) và các loại bài toán ML (học có giám sát, học không giám sát, học tăng cường).
Quy trình xây dựng một mô hình ML (thu thập dữ liệu, tiền xử lý dữ liệu, huấn luyện mô hình, đánh giá mô hình, triển khai mô hình).
Bài tập:
Nghiên cứu về các ứng dụng của Machine Learning trong các lĩnh vực khác nhau (tài chính, y tế, marketing, ...).
Tìm hiểu về các thuật toán Machine Learning phổ biến (hồi quy tuyến tính, cây quyết định, SVM, mạng nơ-ron).
Thực hành xây dựng một mô hình Machine Learning đơn giản bằng Python hoặc R.
Buổi 52: Giới thiệu về Oracle Machine Learning (OML)
OML là gì? Các thành phần của OML (OML4SQL, OML4R, OML4Py).
Ưu điểm của việc sử dụng OML (tích hợp với Oracle Database, hiệu năng cao, dễ sử dụng).
Bài tập:
Cài đặt và cấu hình OML trong Oracle Database.
Khám phá giao diện người dùng của OML (OML Notebooks).
Thực hiện một ví dụ đơn giản sử dụng OML4SQL để xây dựng một mô hình dự đoán.
Buổi 53: Tiền xử lý dữ liệu với OML4SQL
Các kỹ thuật tiền xử lý dữ liệu (làm sạch dữ liệu, xử lý giá trị thiếu, mã hóa dữ liệu, ...).
Sử dụng các hàm SQL trong OML4SQL để tiền xử lý dữ liệu.
Bài tập:
Chuẩn bị một tập dữ liệu để huấn luyện mô hình (ví dụ: dữ liệu khách hàng, dữ liệu bán hàng).
Sử dụng OML4SQL để làm sạch và chuẩn hóa dữ liệu.
Phân chia tập dữ liệu thành tập huấn luyện và tập kiểm tra.
Buổi 54: Xây dựng mô hình phân loại với OML4SQL
Các thuật toán phân loại trong OML4SQL (Naive Bayes, Decision Tree, Random Forest, SVM, ...).
Đánh giá hiệu suất của mô hình phân loại (độ chính xác, độ nhạy, độ đặc hiệu, ...).
Bài tập:
Sử dụng OML4SQL để xây dựng một mô hình phân loại khách hàng thành các nhóm khác nhau dựa trên hành vi mua hàng.
Đánh giá hiệu suất của mô hình bằng cách sử dụng tập kiểm tra.
Tìm hiểu về các tham số của thuật toán và cách điều chỉnh chúng để cải thiện hiệu suất mô hình.
Buổi 55: Xây dựng mô hình hồi quy với OML4SQL
Các thuật toán hồi quy trong OML4SQL (hồi quy tuyến tính, hồi quy đa thức, hồi quy logistic, ...).
Đánh giá hiệu suất của mô hình hồi quy (RMSE, R-squared, ...).
Bài tập:
Sử dụng OML4SQL để xây dựng một mô hình dự đoán doanh số bán hàng dựa trên dữ liệu lịch sử.
Đánh giá hiệu suất của mô hình bằng cách sử dụng tập kiểm tra.
Tìm hiểu về các tham số của thuật toán và cách điều chỉnh chúng để cải thiện hiệu suất mô hình.
Buổi 56: Giới thiệu về cơ sở dữ liệu đồ thị
Cơ sở dữ liệu đồ thị là gì? Tại sao nên sử dụng cơ sở dữ liệu đồ thị?
Các khái niệm cơ bản của đồ thị (đỉnh, cạnh, thuộc tính).
Các loại cơ sở dữ liệu đồ thị (property graph, RDF graph).
Bài tập:
Nghiên cứu về các ứng dụng của cơ sở dữ liệu đồ thị trong các lĩnh vực khác nhau (mạng xã hội, phát hiện gian lận, ...).
Tìm hiểu về các hệ quản trị cơ sở dữ liệu đồ thị phổ biến (Neo4j, JanusGraph, Amazon Neptune).
Vẽ một đồ thị đơn giản để mô tả mối quan hệ giữa các bạn bè trên Facebook.
Buổi 57: Giới thiệu về Oracle Graph
Oracle Graph là gì? Các tính năng của Oracle Graph.
PGQL (Property Graph Query Language) là gì?
Bài tập:
Cài đặt và cấu hình Oracle Graph.
Tạo một đồ thị đơn giản trong Oracle Graph.
Viết các truy vấn PGQL để tìm kiếm và duyệt đồ thị.
Buổi 58: PGQL cơ bản
Cú pháp và các mệnh đề cơ bản của PGQL (MATCH, WHERE, RETURN).
Các hàm và toán tử trong PGQL.
Bài tập:
Viết truy vấn PGQL để tìm tất cả các đỉnh (vertex) trong đồ thị.
Viết truy vấn PGQL để tìm tất cả các cạnh (edge) giữa hai đỉnh cụ thể.
Viết truy vấn PGQL để tìm tất cả các đỉnh có một thuộc tính (property) cụ thể.
Buổi 59: PGQL nâng cao
Các mệnh đề và hàm nâng cao của PGQL (OPTIONAL MATCH, UNWIND, shortestPath, ...).
Sử dụng PGQL để thực hiện các phân tích đồ thị phức tạp.
Bài tập:
Viết truy vấn PGQL để tìm đường đi ngắn nhất giữa hai đỉnh.
Viết truy vấn PGQL để tìm các thành phần liên thông trong đồ thị.
Viết truy vấn PGQL để tính toán các chỉ số trung tâm của đồ thị (degree centrality, betweenness centrality, ...).
Buổi 60: PGQL nâng cao (tiếp theo)
- Bài tập:
Viết truy vấn PGQL để tìm các cộng đồng (community) trong đồ thị.
Sử dụng PGQL để phân tích các mối quan hệ trong một mạng xã hội (ví dụ: tìm bạn chung, tìm người có ảnh hưởng).
Tìm hiểu về các thư viện và công cụ hỗ trợ phân tích đồ thị trong Oracle Graph.
Buổi 61: Giới thiệu về cơ sở dữ liệu không gian
Dữ liệu không gian là gì? Các loại dữ liệu không gian (điểm, đường thẳng, đa giác).
Các hệ tọa độ địa lý và chiếu không gian.
Các ứng dụng của cơ sở dữ liệu không gian (GIS, quản lý tài sản, định vị).
Bài tập:
Tìm hiểu về các hệ tọa độ địa lý phổ biến (WGS84, UTM).
Nghiên cứu về các ứng dụng của cơ sở dữ liệu không gian trong các lĩnh vực khác nhau.
Vẽ một bản đồ đơn giản bằng cách sử dụng một công cụ GIS miễn phí.
Buổi 62: Giới thiệu về Oracle Spatial
Oracle Spatial là gì? Các tính năng của Oracle Spatial.
Kiểu dữ liệu SDO_GEOMETRY.
Các hàm và toán tử không gian trong Oracle SQL.
Bài tập:
Cài đặt và cấu hình Oracle Spatial.
Tạo một bảng chứa dữ liệu không gian (điểm, đường thẳng, đa giác) trong Oracle.
Sử dụng các hàm không gian để tính toán khoảng cách, diện tích, và các phép toán không gian khác.
Buổi 63: Truy vấn dữ liệu không gian với Oracle Spatial
Sử dụng các hàm không gian để tìm kiếm các đối tượng không gian gần nhất, chứa trong, giao nhau, ...
Sử dụng các index không gian để tăng tốc độ truy vấn.
Bài tập:
Viết câu lệnh SQL để tìm các nhà hàng nằm trong bán kính 5km từ một vị trí cụ thể.
Viết câu lệnh SQL để tìm các đường phố giao nhau với một đường phố khác.
Tạo một index không gian cho một bảng chứa dữ liệu không gian.
Buổi 64: Phân tích dữ liệu không gian với Oracle Spatial
Sử dụng các hàm không gian để tính toán các chỉ số không gian (diện tích, chu vi, chiều dài, ...).
Sử dụng các hàm không gian để thực hiện các phép biến đổi không gian (buffer, convex hull, ...).
Bài tập:
Tính toán diện tích của một đa giác.
Tạo một vùng đệm (buffer) xung quanh một điểm.
Tìm bao lồi (convex hull) của một tập hợp các điểm.
Buổi 65: Xây dựng ứng dụng không gian với Oracle Spatial
Sử dụng các công cụ và thư viện để hiển thị dữ liệu không gian trên bản đồ (OpenLayers, Leaflet, Google Maps API).
Xây dựng các ứng dụng web hoặc di động sử dụng dữ liệu không gian từ Oracle.
Bài tập:
Hiển thị các điểm dữ liệu không gian trên bản đồ bằng OpenLayers hoặc Leaflet.
Xây dựng một ứng dụng web đơn giản để tìm kiếm các địa điểm gần nhất.
Tích hợp Google Maps API vào ứng dụng web để hiển thị dữ liệu không gian.
Buổi 66: Kiến trúc Oracle Database
Các thành phần chính của Oracle Database (instance, database, tablespace, datafile, control file, redo log file).
Kiến trúc bộ nhớ của Oracle Database (SGA, PGA).
Các tiến trình nền (background process) trong Oracle Database.
Bài tập:
Tìm hiểu về các thành phần chính của Oracle Database và chức năng của chúng.
Vẽ sơ đồ kiến trúc của Oracle Database.
Tìm hiểu về các tiến trình nền quan trọng trong Oracle Database (DBWn, LGWR, CKPT, ...).
Buổi 67: Cài đặt Oracle Database trên Linux
Các bước cài đặt Oracle Database trên Linux.
Cấu hình môi trường (biến môi trường, file cấu hình).
Tạo cơ sở dữ liệu mới.
Bài tập:
Cài đặt Oracle Database 19c hoặc 21c trên máy ảo Linux (CentOS, Ubuntu, ...).
Cấu hình các biến môi trường
ORACLE_HOME
,ORACLE_SID
,PATH
.Tạo một cơ sở dữ liệu mới và kết nối đến nó bằng SQL*Plus.
Buổi 68: Cài đặt Oracle Database trên Windows
Các bước cài đặt Oracle Database trên Windows.
Cấu hình môi trường (biến môi trường, dịch vụ).
Tạo cơ sở dữ liệu mới.
Bài tập:
Cài đặt Oracle Database 19c hoặc 21c trên máy tính Windows.
Cấu hình các biến môi trường
ORACLE_HOME
,ORACLE_SID
,PATH
.Tạo một cơ sở dữ liệu mới và kết nối đến nó bằng SQL*Plus.
Buổi 69: Quản lý tablespace
Tablespace là gì? Các loại tablespace (SYSTEM, SYSAUX, UNDO, TEMP, ...).
Tạo, thay đổi kích thước, và xóa tablespace.
Quản lý phân bổ không gian trong tablespace (Locally Managed Tablespace, Dictionary Managed Tablespace).
Bài tập:
Tạo một tablespace mới cho dữ liệu ứng dụng.
Thêm một datafile vào tablespace.
Thay đổi kích thước của tablespace.
Buổi 70: Quản lý datafile
Datafile là gì? Vai trò của datafile trong lưu trữ dữ liệu.
Tạo, thay đổi kích thước, và xóa datafile.
Di chuyển datafile sang vị trí mới.
Bài tập:
Tạo một datafile mới cho tablespace
USERS
.Thay đổi kích thước của một datafile.
Di chuyển một datafile sang một ổ đĩa khác.
Buổi 71: Quản lý control file và redo log file
Control file là gì? Chứa thông tin về cấu trúc vật lý của cơ sở dữ liệu.
Redo log file là gì? Chứa thông tin về các thay đổi đã được thực hiện trên cơ sở dữ liệu.
Tạo, thay đổi kích thước, và quản lý control file và redo log file.
Bài tập:
Tìm hiểu về các thông tin được lưu trữ trong control file.
Thêm một control file mới vào cơ sở dữ liệu.
Tìm hiểu về các nhóm redo log và cách quản lý chúng.
Buổi 72: Quản lý instance
Instance là gì? Các thành phần của instance (SGA, PGA, background processes).
Khởi động và tắt instance.
Giám sát trạng thái của instance.
Bài tập:
Khởi động và tắt instance bằng SQL*Plus.
Sử dụng câu lệnh
SELECT
để truy vấn thông tin về instance.Tìm hiểu về các tham số khởi tạo (initialization parameters) của instance.
Buổi 73: Quản lý listener
Listener là gì? Vai trò của listener trong việc kết nối client đến cơ sở dữ liệu.
Cấu hình listener.
Khởi động, dừng và giám sát listener.
Bài tập:
Cấu hình listener để lắng nghe trên một cổng cụ thể.
Kiểm tra trạng thái của listener bằng lệnh
lsnrctl
.Tìm hiểu về các tham số cấu hình của listener.
Buổi 74: Quản lý dịch vụ
Các dịch vụ trong Oracle Database (OracleService, OracleMTSRecoveryService, ...).
Tạo, cấu hình và quản lý dịch vụ.
Bài tập:
Tạo một dịch vụ mới cho cơ sở dữ liệu.
Cấu hình dịch vụ để tự động khởi động khi hệ thống khởi động.
Tìm hiểu về các công cụ quản lý dịch vụ trong Oracle (Oracle Enterprise Manager, srvctl).
Buổi 75: Quản lý người dùng và phân quyền
Tạo, sửa đổi và xóa người dùng.
Cấp và thu hồi quyền truy cập cho người dùng.
Quản lý vai trò (role) và hệ thống quyền (privilege).
Bài tập:
Tạo một người dùng mới và cấp cho họ quyền truy cập vào một số bảng cụ thể.
Tạo một vai trò mới và gán các quyền cần thiết cho vai trò đó.
Thực hiện các thao tác cấp và thu hồi quyền truy cập cho người dùng và vai trò.
Buổi 76: Tổng quan về bảo mật Oracle Database
Các nguyên tắc bảo mật cơ sở dữ liệu (Confidentiality, Integrity, Availability - CIA).
Các lớp bảo mật trong Oracle Database (network, database, operating system).
Các mối đe dọa bảo mật phổ biến (SQL Injection, unauthorized access, data leakage).
Bài tập:
Nghiên cứu về các tiêu chuẩn bảo mật cơ sở dữ liệu như ISO/IEC 27001 và NIST SP 800-53.
Tìm hiểu về các cuộc tấn công cơ sở dữ liệu nổi tiếng trong lịch sử.
Phân tích các lỗ hổng bảo mật tiềm ẩn trong một ứng dụng cơ sở dữ liệu đơn giản.
Buổi 77: Quản lý người dùng và phân quyền
Tạo, sửa đổi và xóa người dùng trong Oracle Database.
Cấp và thu hồi quyền truy cập (privileges) cho người dùng.
Quản lý vai trò (roles) và gán vai trò cho người dùng.
Bài tập:
Tạo một người dùng mới và cấp cho họ quyền SELECT trên một bảng cụ thể.
Tạo một vai trò mới và gán quyền INSERT, UPDATE, DELETE trên một bảng khác.
Thu hồi quyền truy cập của một người dùng vào một bảng.
Buổi 78: Mã hóa dữ liệu (Data Encryption)
Các thuật toán mã hóa phổ biến (AES, DES, 3DES, RSA).
Mã hóa dữ liệu trong suốt (Transparent Data Encryption - TDE).
Mã hóa dữ liệu ở mức cột (Column Encryption).
Bài tập:
Mã hóa một cột chứa thông tin nhạy cảm (ví dụ: số thẻ tín dụng) bằng TDE.
Mã hóa một cột chứa thông tin nhạy cảm bằng Column Encryption.
Tìm hiểu về các chế độ mã hóa khác nhau trong Oracle Database.
Buổi 79: Kiểm soát truy cập mạng (Network Security)
Cấu hình Oracle Net Listener để giới hạn truy cập từ các địa chỉ IP cụ thể.
Sử dụng tường lửa (firewall) để bảo vệ Oracle Database.
Sử dụng các giao thức mạng an toàn như SSL/TLS để mã hóa lưu lượng truy cập.
Bài tập:
Cấu hình Oracle Net Listener để chỉ cho phép truy cập từ một số địa chỉ IP nhất định.
Cài đặt và cấu hình tường lửa để bảo vệ Oracle Database.
Thiết lập kết nối SSL/TLS giữa ứng dụng client và Oracle Database.
Buổi 80: Auditing
Kích hoạt và cấu hình auditing trong Oracle Database.
Các loại auditing (standard auditing, fine-grained auditing).
Xem và phân tích các bản ghi auditing.
Bài tập:
Kích hoạt standard auditing và kiểm tra các hoạt động đăng nhập.
Cấu hình fine-grained auditing để theo dõi các hoạt động trên một bảng cụ thể.
Sử dụng các công cụ của Oracle để xem và phân tích các bản ghi kiểm toán.
Buổi 81: Tổng quan về tối ưu hóa hiệu năng
Các yếu tố ảnh hưởng đến hiệu năng cơ sở dữ liệu (CPU, bộ nhớ, I/O, mạng, ứng dụng, thiết kế cơ sở dữ liệu, truy vấn SQL).
Các mục tiêu tối ưu hóa hiệu năng (throughput, response time, concurrency).
Các phương pháp tiếp cận tối ưu hóa hiệu năng (proactive, reactive).
Bài tập:
Nghiên cứu về các chỉ số đo lường hiệu năng cơ sở dữ liệu (throughput, response time, latency, ...).
Xác định các nút thắt cổ chai (bottleneck) tiềm ẩn trong một hệ thống cơ sở dữ liệu.
Phân tích một báo cáo hiệu năng đơn giản và xác định các vấn đề cần cải thiện.
Buổi 82: Giám sát hiệu năng với Automatic Workload Repository (AWR)
AWR là gì? Cơ chế hoạt động của AWR.
Cấu hình và kích hoạt AWR.
Các báo cáo AWR quan trọng (AWR report, ADDM report).
Bài tập:
Kích hoạt AWR trong cơ sở dữ liệu Oracle của bạn.
Tạo một snapshot AWR và xem báo cáo AWR.
Phân tích báo cáo AWR để xác định các vấn đề về hiệu năng.
Buổi 83: Giám sát hiệu năng với Active Session History (ASH)
ASH là gì? Cơ chế hoạt động của ASH.
Truy vấn dữ liệu ASH bằng SQL.
Phân tích dữ liệu ASH để xác định các phiên làm việc (session) và câu lệnh SQL đang tiêu tốn tài nguyên.
Bài tập:
Truy vấn dữ liệu ASH để tìm các session đang chờ đợi (wait) trên một sự kiện cụ thể.
Truy vấn dữ liệu ASH để tìm các câu lệnh SQL tiêu tốn nhiều CPU hoặc I/O nhất.
Sử dụng ASH để phân tích nguyên nhân gốc rễ của một vấn đề hiệu năng cụ thể.
Buổi 84: Tối ưu hóa index
Index là gì? Các loại index (B-tree, bitmap, function-based).
Khi nào nên sử dụng index?
Tạo, quản lý và rebuild index.
Bài tập:
Giải thích tại sao việc sử dụng index có thể cải thiện hiệu năng truy vấn.
Tạo một index cho một cột thường được sử dụng trong mệnh đề WHERE.
So sánh hiệu năng của truy vấn trước và sau khi tạo index.
Buổi 85: Tối ưu hóa truy vấn SQL với hint
Hint là gì? Các loại hint trong Oracle.
Sử dụng hint để điều khiển cách thức Oracle Optimizer thực thi truy vấn.
Bài tập:
Sử dụng hint để ép Oracle sử dụng một index cụ thể cho một truy vấn.
Sử dụng hint để thay đổi thứ tự JOIN của các bảng trong truy vấn.
Tìm hiểu về các hint khác nhau và cách sử dụng chúng để tối ưu hóa truy vấn.
Buổi 86: Tối ưu hóa truy vấn SQL với query rewrite
Query rewrite là gì?
Các kỹ thuật query rewrite (view merging, subquery unnesting, predicate pushing).
Sử dụng SQL Tuning Advisor để tự động viết lại truy vấn.
Bài tập:
Viết lại một truy vấn phức tạp thành nhiều truy vấn đơn giản hơn để cải thiện hiệu năng.
Sử dụng view merging để tối ưu hóa truy vấn.
Sử dụng SQL Tuning Advisor để đề xuất các cách viết lại truy vấn.
Buổi 87: Tối ưu hóa bộ nhớ đệm (buffer cache)
Buffer cache là gì? Cơ chế hoạt động của buffer cache.
Các tham số cấu hình buffer cache (DB_CACHE_SIZE, DB_BLOCK_SIZE).
Giám sát và điều chỉnh buffer cache.
Bài tập:
Tìm hiểu về các thuật toán thay thế trang (page replacement algorithm) trong buffer cache.
Giám sát tỉ lệ cache hit ratio và điều chỉnh kích thước buffer cache nếu cần.
Sử dụng công cụ Buffer Cache Advisor để phân tích và đề xuất các cải tiến cho buffer cache.
Buổi 88: Tối ưu hóa I/O
I/O là gì? Các loại I/O (sequential I/O, random I/O).
Các yếu tố ảnh hưởng đến hiệu năng I/O (disk speed, RAID configuration, file system).
Giám sát và điều chỉnh I/O.
Bài tập:
Sử dụng công cụ
iostat
để giám sát hoạt động I/O của hệ thống.Phân tích các chỉ số I/O (read time, write time, throughput) để xác định các vấn đề về I/O.
Tìm hiểu về các kỹ thuật tối ưu hóa I/O như striping, mirroring, và caching.
Buổi 89: Tối ưu hóa mạng
Các yếu tố ảnh hưởng đến hiệu năng mạng (bandwidth, latency, network topology).
Giám sát và điều chỉnh hiệu năng mạng.
Sử dụng các công cụ của Oracle để tối ưu hóa mạng (SQL*Net, JDBC Thin driver).
Bài tập:
Sử dụng công cụ
ping
vàtraceroute
để kiểm tra độ trễ mạng.Tìm hiểu về các tham số cấu hình của SQL*Net và JDBC Thin driver để tối ưu hóa hiệu năng mạng.
Thử nghiệm hiệu năng của ứng dụng trên các mạng khác nhau.
Buổi 90: Tối ưu hóa ứng dụng
Các vấn đề thường gặp trong ứng dụng ảnh hưởng đến hiệu năng cơ sở dữ liệu (N+1 query problem, inefficient data access, ...).
Sử dụng các công cụ của Oracle để phân tích hiệu năng ứng dụng (Application Tracing Tool, Real-Time SQL Monitoring).
Bài tập:
Tìm hiểu về N+1 query problem và cách khắc phục nó.
Sử dụng Application Tracing Tool để theo dõi các câu lệnh SQL được thực thi bởi ứng dụng.
Sử dụng Real-Time SQL Monitoring để giám sát hiệu năng của các câu lệnh SQL đang chạy.
Buổi 91: Giới thiệu về Tuning Oracle
Tuning Oracle là gì? Tại sao cần Tuning Oracle?
Các mục tiêu của Tuning Oracle (cải thiện hiệu năng, giảm chi phí, tăng tính khả dụng).
Các phương pháp tiếp cận Tuning Oracle (proactive tuning, reactive tuning).
Bài tập:
Nghiên cứu về các trường hợp sử dụng Tuning Oracle trong thực tế.
Tìm hiểu về các công cụ và kỹ thuật Tuning Oracle phổ biến (AWR, ASH, SQL Tuning Advisor, ADDM, SQL Trace, Explain Plan).
Xác định các mục tiêu Tuning Oracle cho một ứng dụng cụ thể.
Buổi 92: Các nguyên tắc cơ bản của Tuning Oracle
Nguyên tắc "Think globally, fix locally": Tối ưu hóa toàn diện hệ thống trước khi tập trung vào các thành phần riêng lẻ.
Nguyên tắc "Phá vỡ nút cổ chai": Xác định và giải quyết các điểm nghẽn trong hệ thống.
Nguyên tắc "Chi phí khởi động cao, chi phí vận hành thấp": Đầu tư thời gian và công sức vào việc tối ưu hóa ban đầu để giảm chi phí vận hành về sau.
Nguyên tắc "Giao cho máy chủ những gì thuộc về máy chủ": Tận dụng tối đa khả năng của phần cứng và phần mềm máy chủ.
Nguyên tắc "Sẵn sàng đánh đổi": Hiểu rằng việc tối ưu hóa hiệu năng thường liên quan đến việc đánh đổi giữa các yếu tố khác nhau.
Bài tập:
Đọc và tìm hiểu kỹ về 5 nguyên tắc cơ bản của Tuning Oracle.
Áp dụng các nguyên tắc này vào việc phân tích và giải quyết các vấn đề hiệu năng trong một hệ thống cơ sở dữ liệu mẫu.
Thảo luận về các tình huống thực tế mà bạn có thể áp dụng các nguyên tắc này.
Buổi 93: Giám sát và phân tích hiệu năng với AWR và ASH
Automatic Workload Repository (AWR): Cơ chế hoạt động, cấu hình, và cách sử dụng các báo cáo AWR để phân tích hiệu năng.
Active Session History (ASH): Cơ chế hoạt động, cách truy vấn dữ liệu ASH, và cách sử dụng ASH để xác định các vấn đề hiệu năng hiện tại.
Bài tập:
Kích hoạt AWR và thu thập dữ liệu hiệu năng trong một khoảng thời gian nhất định.
Phân tích báo cáo AWR để xác định các khoảng thời gian có hiệu năng thấp và các SQL statement gây ra vấn đề.
Sử dụng ASH để xem các session đang hoạt động và các câu lệnh SQL đang được thực thi.
Buổi 94: Sử dụng SQL Tuning Advisor
SQL Tuning Advisor là gì? Cách thức hoạt động của SQL Tuning Advisor.
Sử dụng SQL Tuning Advisor để tự động phân tích và đề xuất các cách tối ưu hóa câu lệnh SQL.
Bài tập:
Chạy SQL Tuning Advisor cho một câu lệnh SQL có hiệu năng thấp.
Đánh giá các đề xuất của SQL Tuning Advisor và áp dụng các đề xuất phù hợp.
So sánh hiệu năng của câu lệnh SQL trước và sau khi được tối ưu hóa.
Buổi 95: Sử dụng SQL Trace và Explain Plan
SQL Trace: Cơ chế ghi lại thông tin chi tiết về quá trình thực thi của một câu lệnh SQL.
Explain Plan: Kế hoạch thực thi của một câu lệnh SQL được tạo ra bởi Oracle Optimizer.
Sử dụng SQL Trace và Explain Plan để phân tích và tối ưu hóa câu lệnh SQL.
Bài tập:
Kích hoạt SQL Trace cho một câu lệnh SQL và phân tích kết quả.
Sử dụng Explain Plan để xem kế hoạch thực thi của một câu lệnh SQL.
Tìm hiểu về các hoạt động (operation) và chi phí (cost) trong Explain Plan.
Buổi 96: Tối ưu hóa SQL với các kỹ thuật nâng cao (Phần 1)
Materialized View: Tạo các view lưu trữ kết quả truy vấn để tăng tốc độ truy vấn các dữ liệu tổng hợp.
Partitioning: Chia bảng lớn thành các phân vùng nhỏ hơn để cải thiện hiệu năng truy vấn và quản lý dữ liệu.
Bài tập:
Tạo một materialized view để lưu trữ tổng doanh số bán hàng theo tháng.
Phân vùng một bảng lớn theo thời gian (ví dụ: theo tháng) hoặc theo một cột khác (ví dụ: theo khu vực).
So sánh hiệu năng truy vấn trước và sau khi sử dụng materialized view và partitioning.
Buổi 97: Tối ưu hóa SQL với các kỹ thuật nâng cao (Phần 2)
Compression: Nén dữ liệu để giảm dung lượng lưu trữ và tăng tốc độ truy cập dữ liệu.
Parallel Execution: Thực thi truy vấn song song trên nhiều CPU để tăng tốc độ xử lý.
Bài tập:
Nén một bảng lớn bằng cách sử dụng các kỹ thuật nén khác nhau (Basic Compression, OLTP Compression, ...).
Sử dụng parallel execution để thực thi một truy vấn phức tạp.
So sánh hiệu năng truy vấn trước và sau khi sử dụng compression và parallel execution.
Buổi 98: Sử dụng SQL Tuning Advisor (STA)
STA là một công cụ tự động của Oracle giúp phân tích và đề xuất các cách tối ưu hóa câu lệnh SQL.
Cách sử dụng STA để phân tích và tối ưu hóa các câu lệnh SQL chậm.
Bài tập:
Sử dụng STA để phân tích một câu lệnh SQL có hiệu năng thấp và xem các đề xuất tối ưu hóa.
Áp dụng các đề xuất của STA và so sánh hiệu năng của câu lệnh SQL trước và sau khi được tối ưu hóa.
Tìm hiểu về các tùy chọn cấu hình của STA để điều chỉnh mức độ chi tiết của phân tích và đề xuất.
Buổi 99: Sử dụng SQL Access Advisor (SAA)
SAA là một công cụ của Oracle giúp phân tích các câu lệnh SQL và đề xuất các chỉ mục (index) mới để cải thiện hiệu năng truy vấn.
Cách sử dụng SAA để tìm các chỉ mục còn thiếu và loại bỏ các chỉ mục không cần thiết.
Bài tập:
Sử dụng SAA để phân tích một tập hợp các câu lệnh SQL và xem các đề xuất chỉ mục.
Tạo các chỉ mục được đề xuất bởi SAA và so sánh hiệu năng truy vấn trước và sau khi tạo chỉ mục.
Tìm hiểu về các tùy chọn cấu hình của SAA để điều chỉnh mức độ chi tiết của phân tích và đề xuất.
Buổi 100: Sử dụng SQL Performance Analyzer (SPA)
SPA là một công cụ của Oracle giúp đánh giá tác động của việc thay đổi cấu trúc cơ sở dữ liệu hoặc các đối tượng cơ sở dữ liệu lên hiệu năng của các câu lệnh SQL.
Cách sử dụng SPA để kiểm tra hiệu năng của các câu lệnh SQL trước và sau khi thay đổi.
Bài tập:
Sử dụng SPA để đánh giá tác động của việc thay đổi một chỉ mục lên hiệu năng của các câu lệnh SQL liên quan.
Sử dụng SPA để đánh giá tác động của việc nâng cấp phiên bản Oracle Database lên hiệu năng của các câu lệnh SQL.
Tìm hiểu về các tùy chọn cấu hình của SPA để điều chỉnh mức độ chi tiết của phân tích và báo cáo.
Dự án 1: Hệ thống quản lý nhân sự (10 buổi)
Buổi 101-102: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (nhân viên, phòng ban, chức vụ, hợp đồng, lương, khen thưởng, kỷ luật, đào tạo, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ (bảng, khóa chính, khóa ngoại, ràng buộc).
Bài tập:
Vẽ sơ đồ ERD (Entity-Relationship Diagram) cho hệ thống quản lý nhân sự.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa (normalization) để tối ưu hóa mô hình dữ liệu.
Buổi 103-105: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý thông tin nhân viên (thêm, sửa, xóa, tìm kiếm).
Quản lý phòng ban và chức vụ.
Quản lý hợp đồng, lương, khen thưởng, kỷ luật.
Quản lý thông tin đào tạo.
Báo cáo thống kê nhân sự (số lượng nhân viên, biến động nhân sự, đánh giá hiệu suất, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý nhân sự, phòng ban, chức vụ, hợp đồng, lương, khen thưởng, kỷ luật, đào tạo.
Thiết kế các biểu mẫu (form) để nhập và chỉnh sửa dữ liệu nhân viên.
Tạo các báo cáo đơn giản để hiển thị thông tin nhân sự.
Buổi 106-110: Xây dựng logic nghiệp vụ (PL/SQL) và tối ưu hóa
Sử dụng PL/SQL để viết các thủ tục (procedure) và hàm (function) xử lý logic nghiệp vụ của hệ thống (tính lương, tính thuế, đánh giá hiệu suất, ...).
Tối ưu hóa các truy vấn SQL và PL/SQL để đảm bảo hiệu năng của hệ thống.
Bài tập:
Viết các thủ tục và hàm PL/SQL để tính lương, thưởng, các khoản khấu trừ, đánh giá hiệu suất cho nhân viên.
Viết các truy vấn SQL để lấy dữ liệu báo cáo (số lượng nhân viên theo phòng ban, mức lương trung bình, ...).
Sử dụng các công cụ như Explain Plan và SQL Trace để phân tích và tối ưu hóa các truy vấn.
Áp dụng các kỹ thuật tuning đã học để cải thiện hiệu năng của ứng dụng (indexing, caching, ...).
Thực hiện kiểm thử hiệu năng (performance testing) và tối ưu hóa ứng dụng dựa trên kết quả kiểm thử.
Dự án 2: Hệ thống quản lý bán hàng (10 buổi)
Buổi 111-112: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (sản phẩm, khách hàng, đơn hàng, chi tiết đơn hàng, kho hàng, nhà cung cấp, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống quản lý bán hàng.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 113-115: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý sản phẩm (thêm, sửa, xóa, tìm kiếm).
Quản lý khách hàng và nhà cung cấp.
Tạo và quản lý đơn hàng.
Quản lý kho hàng.
Báo cáo thống kê bán hàng (doanh số, lợi nhuận, sản phẩm bán chạy, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý sản phẩm, khách hàng, nhà cung cấp, đơn hàng, kho hàng.
Thiết kế giỏ hàng và quy trình thanh toán.
Tạo các báo cáo về doanh số bán hàng theo ngày, tháng, năm, sản phẩm, khách hàng.
Buổi 116-120: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp (tiếp theo)
Xây dựng các tính năng nâng cao cho hệ thống:
Quản lý khuyến mãi, giảm giá.
Quản lý chương trình khách hàng thân thiết.
Tích hợp với các hệ thống thanh toán trực tuyến (ví dụ: PayPal, Stripe).
Tích hợp với các hệ thống vận chuyển (ví dụ: Giao hàng tiết kiệm, Giao hàng nhanh).
Bài tập:
Viết các thủ tục và hàm PL/SQL để tính toán khuyến mãi và giảm giá cho đơn hàng.
Thiết kế và triển khai chương trình khách hàng thân thiết.
Tích hợp hệ thống với một cổng thanh toán trực tuyến.
Tích hợp hệ thống với một dịch vụ vận chuyển.
Dự án 3: Hệ thống quản lý kho (10 buổi)
Buổi 121-123: Thiết kế cơ sở dữ liệu và mô hình dữ liệu (tiếp theo)
Thiết kế mô hình dữ liệu quan hệ.
Xây dựng các ràng buộc (constraints) để đảm bảo tính toàn vẹn dữ liệu (ví dụ: số lượng tồn kho không được âm).
Bài tập:
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Viết các trigger để tự động cập nhật số lượng tồn kho khi có phiếu nhập hoặc phiếu xuất.
Buổi 124-126: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý danh mục sản phẩm.
Quản lý thông tin sản phẩm (thêm, sửa, xóa, tìm kiếm).
Quản lý nhà cung cấp.
Tạo và quản lý phiếu nhập, phiếu xuất.
Báo cáo thống kê tồn kho (số lượng tồn kho, giá trị tồn kho, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý danh mục sản phẩm, sản phẩm, nhà cung cấp, phiếu nhập, phiếu xuất.
Thiết kế các biểu mẫu (form) để nhập và chỉnh sửa thông tin sản phẩm, phiếu nhập, phiếu xuất.
Tạo các báo cáo về tình hình tồn kho theo ngày, tháng, năm, sản phẩm, nhà cung cấp.
Buổi 127-130: Xây dựng logic nghiệp vụ (PL/SQL) và tối ưu hóa
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (kiểm tra số lượng tồn kho, tính giá trị nhập xuất, ...).
Tối ưu hóa các truy vấn SQL và PL/SQL để đảm bảo hiệu năng của hệ thống.
Bài tập:
Viết các thủ tục và hàm PL/SQL để kiểm tra số lượng tồn kho trước khi xuất hàng.
Viết các truy vấn SQL để tính giá trị nhập xuất kho theo ngày, tháng, năm.
Sử dụng các công cụ như Explain Plan và SQL Trace để phân tích và tối ưu hóa các truy vấn.
Áp dụng các kỹ thuật tuning đã học để cải thiện hiệu năng của ứng dụng (indexing, partitioning, ...).
Dự án 4: Hệ thống quản lý thư viện (10 buổi)
Buổi 131-132: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (sách, độc giả, mượn trả, thể loại sách, tác giả, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống quản lý thư viện.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 133-135: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý sách (thêm, sửa, xóa, tìm kiếm).
Quản lý độc giả (thêm, sửa, xóa, tìm kiếm).
Quản lý mượn trả sách.
Báo cáo thống kê (số lượng sách, số lượng độc giả, sách mượn nhiều nhất, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý sách, độc giả, mượn trả.
Thiết kế biểu mẫu (form) để nhập và chỉnh sửa thông tin sách, độc giả.
Tạo các báo cáo về tình hình mượn trả sách, sách quá hạn, ...
Buổi 136-140: Xây dựng logic nghiệp vụ (PL/SQL) và tối ưu hóa
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (kiểm tra điều kiện mượn trả, tính phí phạt, ...).
Tối ưu hóa các truy vấn SQL và PL/SQL để đảm bảo hiệu năng của hệ thống.
Bài tập:
Viết các thủ tục và hàm PL/SQL để kiểm tra điều kiện mượn sách (số lượng sách còn lại, tình trạng độc giả, ...).
Viết các truy vấn SQL để tính phí phạt quá hạn cho độc giả.
Sử dụng các công cụ như Explain Plan và SQL Trace để phân tích và tối ưu hóa các truy vấn.
Áp dụng các kỹ thuật tuning đã học để cải thiện hiệu năng của ứng dụng.
Tìm hiểu về các tính năng nâng cao của Oracle Text để hỗ trợ tìm kiếm sách theo nội dung.
Dự án 5: Hệ thống thương mại điện tử (10 buổi)
Buổi 141-142: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (sản phẩm, danh mục sản phẩm, khách hàng, đơn hàng, giỏ hàng, thanh toán, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống thương mại điện tử.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 143-145: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Trang chủ, danh mục sản phẩm, trang chi tiết sản phẩm.
Giỏ hàng và thanh toán.
Quản lý tài khoản khách hàng.
Báo cáo thống kê bán hàng.
Bài tập:
Tạo các trang APEX cho các chức năng chính của hệ thống.
Thiết kế giao diện người dùng thân thiện và dễ sử dụng.
Tạo các chức năng tìm kiếm và lọc sản phẩm.
Buổi 146-150: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (tính giá sản phẩm, xử lý đơn hàng, ...).
Tích hợp với các hệ thống thanh toán trực tuyến (PayPal, Stripe, ...).
Tích hợp với các hệ thống vận chuyển.
Bài tập:
Viết các thủ tục và hàm PL/SQL để tính giá sản phẩm, áp dụng khuyến mãi, và xử lý đơn hàng.
Tích hợp hệ thống với một cổng thanh toán trực tuyến.
Tích hợp hệ thống với một dịch vụ vận chuyển.
Xây dựng hệ thống quản lý khuyến mãi và giảm giá.
Tìm hiểu về các vấn đề bảo mật trong thương mại điện tử và cách phòng tránh.
Dự án 5: Hệ thống thanh toán trực tuyến (10 buổi)
Buổi 151-152: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (khách hàng, tài khoản ngân hàng, giao dịch, phương thức thanh toán, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống thanh toán trực tuyến.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 153-155: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Đăng nhập/đăng ký tài khoản.
Liên kết tài khoản ngân hàng.
Nạp tiền vào tài khoản.
Chuyển tiền giữa các tài khoản.
Xem lịch sử giao dịch.
Bài tập:
Tạo các trang APEX cho các chức năng đăng nhập, đăng ký, liên kết tài khoản ngân hàng, nạp tiền, chuyển tiền, xem lịch sử giao dịch.
Thiết kế giao diện người dùng đảm bảo tính bảo mật và dễ sử dụng.
Tạo các biểu mẫu (form) để nhập thông tin giao dịch.
Buổi 156-160: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (xác thực giao dịch, xử lý nạp/rút tiền, chuyển tiền, ...).
Tích hợp với các cổng thanh toán trực tuyến (PayPal, Stripe, ...).
Đảm bảo tính bảo mật của hệ thống (mã hóa dữ liệu, xác thực hai yếu tố, ...).
Bài tập:
Viết các thủ tục và hàm PL/SQL để xử lý các giao dịch nạp/rút tiền, chuyển tiền.
Tích hợp hệ thống với một cổng thanh toán trực tuyến.
Thực hiện mã hóa dữ liệu nhạy cảm (thông tin tài khoản ngân hàng, mật khẩu).
Thiết lập xác thực hai yếu tố để tăng cường bảo mật.
Tìm hiểu về các tiêu chuẩn bảo mật trong thanh toán trực tuyến (PCI DSS).
Dự án 6: Hệ thống quản lý bệnh viện (10 buổi)
Buổi 161-162: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (bệnh nhân, bác sĩ, y tá, phòng khám, lịch hẹn, hồ sơ bệnh án, đơn thuốc, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống quản lý bệnh viện.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 163-165: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý thông tin bệnh nhân (thêm, sửa, xóa, tìm kiếm).
Quản lý lịch hẹn khám bệnh.
Quản lý hồ sơ bệnh án.
Quản lý đơn thuốc.
Báo cáo thống kê (số lượng bệnh nhân, số lượng lượt khám, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý bệnh nhân, lịch hẹn, hồ sơ bệnh án, đơn thuốc.
Thiết kế giao diện người dùng thân thiện và dễ sử dụng cho cả bệnh nhân và nhân viên y tế.
Tạo các báo cáo về tình hình hoạt động của bệnh viện.
Buổi 166-170: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (xếp hàng khám bệnh, tính toán chi phí điều trị, ...).
Tích hợp với các hệ thống khác (hệ thống xét nghiệm, hệ thống chẩn đoán hình ảnh, ...).
Bài tập:
Viết các thủ tục và hàm PL/SQL để xử lý lịch hẹn khám bệnh, tính toán chi phí điều trị.
Tìm hiểu về các giao thức trao đổi dữ liệu y tế (HL7, DICOM).
Tích hợp hệ thống với một hệ thống xét nghiệm hoặc chẩn đoán hình ảnh đơn giản.
Dự án 7: Hệ thống ngân hàng (10 buổi)
Buổi 171-172: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (khách hàng, tài khoản, giao dịch, loại giao dịch, chi nhánh, nhân viên, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống ngân hàng.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 173-175: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý thông tin khách hàng (thêm, sửa, xóa, tìm kiếm).
Quản lý tài khoản (mở tài khoản, xem số dư, sao kê giao dịch).
Thực hiện giao dịch (chuyển khoản, gửi tiết kiệm, rút tiền).
Quản lý nhân viên và chi nhánh.
Báo cáo thống kê (số dư tài khoản, giao dịch theo ngày/tháng/năm, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý khách hàng, tài khoản, giao dịch, nhân viên, chi nhánh.
Thiết kế giao diện người dùng đảm bảo tính bảo mật và dễ sử dụng.
Tạo các biểu mẫu (form) để nhập thông tin khách hàng, tài khoản, giao dịch.
Buổi 176-180: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (xác thực giao dịch, tính lãi suất, quản lý hạn mức tín dụng, ...).
Tích hợp với các hệ thống thanh toán khác (nếu có).
Đảm bảo tính bảo mật của hệ thống (mã hóa dữ liệu, xác thực hai yếu tố, ...).
Bài tập:
Viết các thủ tục và hàm PL/SQL để xử lý các giao dịch ngân hàng (chuyển khoản, gửi tiết kiệm, rút tiền).
Tính toán lãi suất và cập nhật số dư tài khoản.
Quản lý hạn mức tín dụng của khách hàng.
Tích hợp với một hệ thống thanh toán khác (ví dụ: cổng thanh toán của ngân hàng).
Tìm hiểu về các quy định và tiêu chuẩn bảo mật trong ngành ngân hàng.
Dự án 8: Hệ thống đặt vé máy bay (10 buổi)
Buổi 181-182: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (chuyến bay, hãng hàng không, sân bay, hành khách, vé máy bay, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống đặt vé máy bay.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 183-185: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Tìm kiếm và đặt vé máy bay.
Quản lý đặt chỗ.
Thanh toán trực tuyến.
Check-in trực tuyến.
Báo cáo thống kê (số lượng vé bán ra, doanh thu, ...).
Bài tập:
Tạo các trang APEX cho các chức năng tìm kiếm chuyến bay, đặt vé, quản lý đặt chỗ, thanh toán, check-in.
Thiết kế giao diện người dùng thân thiện và dễ sử dụng.
Tạo các tính năng tìm kiếm nâng cao (lọc theo giá, hãng hàng không, thời gian, ...).
Buổi 186-190: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (kiểm tra chỗ trống, tính giá vé, xác nhận đặt chỗ, ...).
Tích hợp với các hệ thống đặt chỗ của hãng hàng không (nếu có).
Tích hợp với các cổng thanh toán trực tuyến.
Bài tập:
Viết các thủ tục và hàm PL/SQL để kiểm tra chỗ trống, tính giá vé, và xác nhận đặt chỗ.
Tìm hiểu về các giao thức đặt chỗ máy bay (GDS, NDC).
Tích hợp hệ thống với một cổng thanh toán trực tuyến.
Xây dựng hệ thống quản lý chương trình khách hàng thường xuyên.
Tìm hiểu về các vấn đề bảo mật trong đặt vé máy bay và cách phòng tránh.
Dự án 9: Hệ thống quản lý trường học (10 buổi)
Buổi 191-192: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (học sinh, giáo viên, lớp học, môn học, điểm số, thời khóa biểu, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu quan hệ.
Bài tập:
Vẽ sơ đồ ERD cho hệ thống quản lý trường học.
Tạo các bảng trong cơ sở dữ liệu Oracle dựa trên ERD.
Áp dụng các quy tắc chuẩn hóa để tối ưu hóa mô hình dữ liệu.
Buổi 193-195: Xây dựng ứng dụng giao diện người dùng (APEX)
Sử dụng Oracle APEX để xây dựng giao diện người dùng cho các chức năng chính của hệ thống:
Quản lý thông tin học sinh, giáo viên.
Quản lý lớp học và môn học.
Quản lý điểm số và học bạ.
Xếp thời khóa biểu.
Báo cáo thống kê (số lượng học sinh, kết quả học tập, ...).
Bài tập:
Tạo các trang APEX cho các chức năng quản lý học sinh, giáo viên, lớp học, môn học, điểm số, thời khóa biểu.
Thiết kế giao diện người dùng thân thiện và dễ sử dụng cho cả giáo viên, học sinh và phụ huynh.
Tạo các báo cáo về tình hình học tập của học sinh, kết quả thi, ...
Buổi 196-200: Xây dựng logic nghiệp vụ (PL/SQL) và tích hợp
Sử dụng PL/SQL để viết các thủ tục và hàm xử lý logic nghiệp vụ của hệ thống (tính điểm trung bình, xếp loại học lực, xếp thời khóa biểu, ...).
Tích hợp với các hệ thống khác (hệ thống quản lý tài chính, hệ thống thư viện, ...).
Bài tập:
Viết các thủ tục và hàm PL/SQL để tính điểm trung bình, xếp loại học lực, xếp thời khóa biểu.
Tìm hiểu về các thuật toán xếp thời khóa biểu.
Tích hợp hệ thống với một hệ thống quản lý tài chính đơn giản.
Dự án 10: Hệ thống phân tích mạng xã hội (10 buổi)
Buổi 201-202: Thiết kế cơ sở dữ liệu và mô hình dữ liệu
Xác định các thực thể (người dùng, bài viết, bình luận, lượt thích, chia sẻ, ...) và mối quan hệ giữa chúng.
Thiết kế mô hình dữ liệu đồ thị (graph) để biểu diễn mối quan hệ giữa các người dùng và bài viết.
Bài tập:
Vẽ sơ đồ đồ thị cho hệ thống phân tích mạng xã hội.
Tạo các bảng và các ràng buộc trong cơ sở dữ liệu Oracle để lưu trữ dữ liệu đồ thị.
Tìm hiểu về các tính năng của Oracle Graph để làm việc với dữ liệu đồ thị.
Buổi 203-205: Thu thập và lưu trữ dữ liệu
Sử dụng các API của mạng xã hội (Facebook, Twitter, ...) để thu thập dữ liệu.
Xử lý và làm sạch dữ liệu.
Lưu trữ dữ liệu vào cơ sở dữ liệu Oracle.
Bài tập:
Tìm hiểu về các API của mạng xã hội và cách sử dụng chúng để thu thập dữ liệu.
Viết một chương trình Python hoặc Java để thu thập dữ liệu từ một mạng xã hội.
Lưu trữ dữ liệu đã thu thập vào cơ sở dữ liệu Oracle.
Buổi 206-210: Phân tích dữ liệu và xây dựng báo cáo
Sử dụng SQL và PL/SQL để phân tích dữ liệu mạng xã hội (tìm kiếm các xu hướng, phân tích tình cảm, phân tích mạng lưới, ...).
Sử dụng Oracle Graph để phân tích các mối quan hệ trong mạng xã hội.
Xây dựng các báo cáo trực quan (dashboard) để hiển thị kết quả phân tích.
Bài tập:
Viết các truy vấn SQL và PL/SQL để tìm kiếm các hashtag phổ biến, các bài viết được chia sẻ nhiều nhất, ...
Sử dụng Oracle Graph để tìm các cộng đồng (community) trong mạng xã hội.
Xây dựng một dashboard đơn giản để hiển thị các chỉ số thống kê về mạng xã hội.
Lưu ý:
Các dự án trên chỉ là gợi ý, bạn có thể tự do lựa chọn và tùy chỉnh các dự án theo sở thích và mục tiêu của mình.
Trong quá trình làm dự án, hãy cố gắng áp dụng các kiến thức đã học về thiết kế cơ sở dữ liệu, SQL, PL/SQL, APEX, tối ưu hóa hiệu năng, và bảo mật.
Đừng ngại tìm kiếm sự hỗ trợ từ cộng đồng hoặc các tài liệu trực tuyến nếu bạn gặp khó khăn.