Thứ Bảy, 19 tháng 11, 2022

Sư khác biệt giữa Cơ Sở Dữ Liệu và Kho Dữ Liệu

Dữ liệu là tài sản của doanh nghiệp, là yếu tố vô cùng quan trọng được sử dụng để đưa ra quyết định kinh doanh chính xác, cải thiện các chiến dịch quảng bá, marketing, tối ưu hóa chi phí và tăng doanh thu. Giả sử doanh nghiệp có một khối lượng thông tin giao dịch khổng lồ, thì việc cần thiết là phải tiến hành nhập vào, lưu trữ, xử lý, phân tích và đưa ra báo cáo tinh gọn nhất. Từ đó hai khái niệm cơ sở dữ liệu (database) và kho dữ liệu (data warehouse) ra đời, nhưng vẫn khiến nhiều người nhầm lẫn. Hãy cùng tôi tìm hiểu xem chúng khác nhau ở những điểm nào

Thứ Sáu, 18 tháng 11, 2022

MasterNote_Câu lênh 12c/19c hay dùng để vận hành cơ bản

Mục đích: MasterNote_Câu lênh 12c/19c hay dùng để vận hành cơ bản

Cấu hình, quản lý mạng trong Oracle Database (Oracle Network) trong Oracle Database 12c, 19c với các thành phần listener.ora, tnsnames.ora, sqlnet.ora

Ở dạng cơ bản nhất, Oracle sử dụng ba file (listener.ora, tnsnames.ora & sqlnet.ora) để cấu hình mạng trong Oracle Database. Bài viết này đưa ra một ví dụ về mỗi tệp như một điểm khởi đầu cho cấu hình mạng đơn giản.

Thứ Năm, 17 tháng 11, 2022

TẠO CƠ SỞ DỮ LIỆU – THIẾT KẾ CƠ SỞ DỮ LIỆU

Trong bài Thiết kế Cơ sở dữ liệu, chúng ta đã thiết kế được cấu trúc của Cơ sở dữ liệu. Trong bài này chúng ta sẽ bàn về việc chuyển đổi cấu trúc cơ sở dữ liệu đó thành cơ sở dữ liệu lưu trữ được trong hệ quản trị cơ sở dữ liệu.

VẤN ĐỀ DƯ THỪA DỮ LIỆU TRONG THIẾT KẾ CƠ SỞ DỮ LIỆU

Trong hai bài học trước chúng ta đã đề cập đến vấn đề dư thừa dữ liệu trong thiết kế cơ sở dữ liệu, nhưng chưa làm rõ. Trong bài học này, chúng ta sẽ bàn về dư thừa dữ liệu và vấn đề mà nó gây ra khi sử dụng cơ sở dữ liệu.

CHUẨN HÓA CƠ SỞ DỮ LIỆU – BƯỚC QUAN TRỌNG TRONG THIẾT KẾ CSDL

Chuẩn hóa cơ sở dữ liệu là áp dụng các qui tắc cho thiết kế của cơ sở dữ liệu nhằm giúp giảm dư thừa dữ liệu trong quá trình thiết kế Cơ sở dữ liệu. Đây là bước quan trọng để giúp bạn kiểm tra tính đúng đắn của quá trình thiết kế cơ sở dữ liệu.

Bài viết này sẽ giúp bạn hiểu về các mức chuẩn hóa, quá trình thực hiện chuẩn hóa cũng như áp dụng việc chuẩn hóa vào thiết kế cơ sở dữ liệu.

THIẾT KẾ CƠ SỞ DỮ LIỆU – CÁC BƯỚC THỰC HIỆN

Thiết kế cơ sở dữ liệu là công việc vô cùng quan trọng trong các dự án, nếu thiết kế đúng CSDL sẽ giúp việc triển khai dự án thuận lợi và tiết kiệm. Tuy nhiên, rất nhiều bạn khi mới vào nghề thường gặp khó khăn về vấn đề thiết kế cơ sở dữ liệu như:

  • 1. Làm thế nào để thiết kế được Cơ sở dữ liệu?
  • 2. Làm thế nào để biết Cơ sở dữ liệu thiết kế đúng?

Bài này chúng ta sẽ bàn về những vấn đề đó.

CƠ SỞ DỮ LIỆU LÀ GÌ? CƠ SỞ DỮ LIỆU QUAN HỆ LÀ GÌ?

Cơ sở dữ liệu là môn học cơ sở của chuyên ngành CNTT, bất kỳ sinh viên CNTT nào cũng cần nắm vững và sử dụng thành thạo Cơ sở dữ liệu để sử dụng cho công việc sau này. Tuy nhiên, đây cũng là môn học khó hiểu với nhiều sinh viên, nhất là giai đoạn thiết kế Cơ sở dữ liệu. Do vậy tôi viết chuỗi bài viết này với hy vọng sẽ giúp các bạn dễ dàng hơn trong việc tiếp cận môn học này.

Bài 15 - PostgreSQL best practice

Bài viết cuối cùng trong series sẽ nói về một số lỗi hay gặp với PostgreSQL và các best practice để xử lý.

Let’s begin.

Bài 13 - Thực hành Vacuum với PostgreSQL

Phần trước đã tìm hiểu về một mớ lý thuyết của Vacuum, phần này sẽ xem qua về reindex và tập trung vào practice với vacuum để kiểm nghiệm thực tế thế nào. Let’s begin.

Bài 12 - PostgreSQL Vacuum là gì?

PostgreSQL multi-version cuncurrency control giúp giải quyết concurrent read/write nhưng sẽ nảy sinh vấn đề khác:

  • Bloating: UPDATE/INSERT/DELETE nhiều dẫn tới dư thừa số lượng lớn các dead tuple (old record version). Chúng không còn giá trị nhưng vẫn nằm đấy, làm tăng disk space.
  • Wraparound transaction id: số lượng transaction id vượt quá 2^32 có thể dẫn tới sai lệch data.

Bài viết này sẽ tìm hiểu PostgreSQL xử lý chúng thế nào. Let’s begin.

Bài 11 - PostgreSQL multi-version concurrency control

Việc concurrent read/write data tưởng chừng đơn giản nhưng với programming thì không ez tí nào. Chém thế chứ cũng không quá phức tạp khi sử dụng các cơ chế sync/lock, tuy nhiên nó làm giảm performance.

Vậy có cách nào không cần lock mà vẫn concurrent read/write không?

Let’s begin.

Bài 10 - Exclusive lock và Shared lock

Phía client, hay nói cách khác là application, chúng ta tương tác với database thông qua các câu lệnh DML (INSERT/UPDATE/DELETE)… và bản chất tất cả đều được thực thi như một transaction nếu không explicit khai báo và không auto commit.

Bài 09 - Optimistic lock và Pessimistic lock

Với series Multi-thread programming từ hardware đến software, ta biết rằng read/write data với multi-thread có thể dẫn đến data race, vấn đề nhỏ nhưng hậu quả lớn, khiến chương trình sai lệch trầm trọng.

Nghe hơi huy hiểm, nhưng cách giải quyết không có gì phức tạp, sử dụng các cơ chế mutual exclusion là giải quyết được vấn đề này.

Bài 07 - Partitioning data với PostgreSQL P2

Tiếp tục bài trước, cùng đi tìm hiểu về 2 loại partition còn lại là:
  • Partition by list
  • Partition by hash

Bài 06 - Partitioning data với PostgreSQL P1

Một hướng tiếp cận khác có thể tăng query performance là áp dụng partitioning: thay đổi data model implementation. Let’s begin.

Bài 05 - Hiểu về Join để tăng performance với PostgreSQL

Theo con số thống kê không tin cậy :joy: thì có trên 60% các query sử dụng join table để check điều kiện hoặc lấy thêm thông tin. Ngoài ra, các Senior cũng tâm sự join ảnh hưởng nhiều đến performance,làm chậm hệ thống. Cụ thể nó chậm thế nào, mình thiết kế kém hay do viết query lởm, cùng đi tìm hiểu để có câu trả lời cụ thể nhất.

Bài 04 - Hiểu về Index để tăng performance với PostgreSQL P3

Bài thứ 4 trong series tiếp tục bàn luận về Hash index còn dở dang ở bài trước.

Bài 03 - Hiểu về Index để tăng performance với PostgreSQL P2

Với bài trước, ta đã biết các loại index phổ biến trong Relational Database:

  • B-Tree index.
  • Bitmap index.
  • Hash index.

Bài 02 - Hiểu về Index để tăng performance với PostgreSQL P1

Bài trước chúng ta đã biết về các phương pháp giúp tăng performance của SQL query. Bài hôm nay sẽ giới thiệu về một trong các phương pháp đó, indexing thần thánh.

ĐỌC NHIỀU

Trần Văn Bình - Oracle Database Master