Hầu hết các nhà phát triển đều làm việc với cơ sở dữ liệu trong công việc hàng ngày của họ, nhưng không phải tất cả họ đều dành thời gian để tìm hiểu lý thuyết. Tuy nhiên, điều này gây ra rất nhiều câu hỏi phát sinh vào thời điểm tồi tệ nhất có thể. Relational database là gì? Tại sao relational database sử dụng khóa chính và khóa ngoại? Chính xác thì điều gì sẽ xảy ra ở đây hay ở đó?
Để có thể làm việc với dữ liệu một cách chuyên nghiệp, bạn phải hiểu các loại cơ sở dữ liệu khác nhau và các tính năng độc đáo của chúng. Trong hướng dẫn Relational database là gì này, chúng tôi sẽ giới thiệu cho bạn DBMS phổ biến nhất được gọi là relational database hay cơ sở dữ liệu quan hệ.
Mục lục
Cơ sở dữ liệu và các loại cơ sở dữ liệu
Ưu đãi mới nhất đang hoạt động ngay bây giờ:
GET 50% OFF
DataCamp Black Friday Sale
During this DataCamp Black Friday, you can access the top-rated courses with a 50% discount. Enroll now for way less!
Nếu không sử dụng cơ sở dữ liệu, tất cả dữ liệu bạn tạo hoặc thu thập sẽ giống như một đống ngẫu nhiên mà không có bất kỳ thứ tự nào. Bạn không thể truy cập và sử dụng nó cho nhu cầu của mình. Giờ đây, cơ sở dữ liệu là một giải pháp lưu trữ dữ liệu cho bạn không chỉ không gian để lưu giữ dữ liệu của bạn mà còn cả các phương pháp mạnh mẽ để thao tác với nó. Cơ sở dữ liệu đã trở nên nổi bật trong công nghệ máy tính kể từ những năm 1960. Để quản lý chúng, chúng ta sử dụng một loại phần mềm đặc biệt - hệ quản trị cơ sở dữ liệu (database management system, viết tắt là DBMS).
Tùy theo nhu cầu cụ thể mà bạn hoặc công ty của bạn cần, bạn có thể chọn từ nhiều loại cơ sở dữ liệu. Nó có thể là dữ liệu vận hành (operational), cá nhân (personal), phân tán (distributed), người dùng cuối (end-user), v.v... Tuy nhiên, relational database (cơ sở dữ liệu quan hệ) phổ biến đến mức một số nhà phát triển thậm chí còn đơn giản hóa việc nhập cơ sở dữ liệu xuống chỉ còn hai nhóm: quan hệ hoặc không quan hệ. Vì SQL (Ngôn ngữ truy vấn có cấu trúc) là phương pháp tiêu chuẩn để làm việc với phương pháp trước, phương pháp sau đôi khi còn được gọi là NoSQL. Một vài ví dụ cơ sở dữ liệu không quan hệ đơn giản sẽ là kho khóa-giá trị, kho lưu trữ tài liệu hoặc cơ sở dữ liệu đồ thị. Mặc dù chúng ta phải thừa nhận rằng mức độ phổ biến của chúng đang tăng lên, nhưng cơ sở dữ liệu quan hệ vẫn chiếm thị phần của thị trường.
Chính xác Relational Database là gì?
Đó cũng là câu hỏi cần được giải đáp trong hướng dẫn này: Relational Database là gì? Người đầu tiên đề cập đến thuật ngữ cơ sở dữ liệu quan hệ (retional database) là Edgar F. Codd vào năm 1962. Làm việc tại IBM, ông nhận thấy những nhược điểm lớn trong cơ sở dữ liệu điều hướng được sử dụng vào thời điểm đó. Theo ông, không chỉ chúng quá phức tạp để sử dụng mà còn không có lý thuyết vững chắc để hỗ trợ các nguyên lý. Cố gắng giải quyết những vấn đề này, ông đã viết một bài báo có tên A Retional Model of Data for Large Shared Data Banks (Mô hình dữ liệu quan hệ cho các ngân hàng dữ liệu chia sẻ lớn). IBM đã miễn cưỡng đưa ý tưởng của mình vào thực tế. Tuy nhiên, vì công trình đột phá này nhằm xác định lại các mô hình cơ sở dữ liệu, Edgar F. Codd đã nhận được Giải thưởng Turing danh giá vào năm 1981.
Để nắm bắt đầy đủ relational database là gì, bạn phải hiểu rằng trước khi xuất hiện, các nhà phát triển đã sử dụng cơ sở dữ liệu phẳng. Thay vì các bảng, các tệp chứa các văn bản dài, trong đó các mục nhập được phân tách bằng một thanh dọc:
Employee, Team, Experience|Anna, Developers, 7 years|Melissa, Developers, 3 years|Andrew, Developers, 4 years|Stanley, Designers, 4 years|Andy, Designers, 5 years|Christina, Designers, 2 years
Bạn có thể gặp rắc rối vì điều này khiến việc truy cập và sử dụng dữ liệu trở nên phức tạp. Bạn không thể sắp xếp, tìm kiếm hoặc lọc nó một cách dễ dàng. Tuy nhiên, trong cơ sở dữ liệu quan hệ, dữ liệu được lưu trữ bằng cấu trúc rõ ràng: một bảng có các cột và hàng.
Mỗi cột (còn được gọi là một thuộc tính (atribute) hoặc một trường (field)) có một tên riêng biệt và một kiểu dữ liệu cụ thể được gán cho nó. Mỗi phần dữ liệu lấp đầy một hàng, còn được gọi là một bộ (tuple) hoặc một bản ghi (record). Ví dụ chúng ta đã thấy trước đây sẽ có ba cột (Nhân viên, Nhóm và Kinh nghiệm) và sáu bản ghi (một bản ghi cho mỗi cá nhân). Mỗi cột trong số các cột này sẽ lưu trữ các kiểu dữ liệu chuỗi hoặc chúng ta có thể tạo cột Trải nghiệm để chỉ chứa các số nguyên và chỉ nhập số năm.
Thiết kế cơ sở dữ liệu quan hệ: giải thích mối quan hệ
Tìm hiểu relational database là gì, bạn sẽ nhận thấy bản thân thuật ngữ này đã tiết lộ: cơ sở dữ liệu quan hệ là cơ sở dữ liệu cho phép các mối quan hệ cơ sở dữ liệu.
Cơ sở dữ liệu kiểu này khá phổ biến khi có tới hàng nghìn bảng. Một mối quan hệ trong thiết kế cơ sở dữ liệu được thiết lập khi hai hoặc nhiều bảng trong số chúng nắm giữ một số dữ liệu liên quan và do đó được liên kết với nhau. Điều này không chỉ đơn giản hóa việc bảo trì dữ liệu mà còn tăng tính toàn vẹn và bảo mật của nó. Cơ sở dữ liệu quan hệ cũng dễ mở rộng và quy mô hơn.
Có ba loại mối quan hệ trong thiết kế cơ sở dữ liệu. Những mối quan hệ phổ biến nhất là một-nhiều: điều này có nghĩa là một hàng trong một bảng có thể khớp với một vài hàng trong bảng kia, nhưng không phải ngược lại. Trong ví dụ mà chúng ta đã thấy trước đây, một nhân viên chỉ có thể thuộc một nhóm - tuy nhiên, một nhóm có nhiều nhân viên. Nếu chúng ta có một bảng khác được gọi là Dự án, nó có thể là một ví dụ hoàn hảo về mối quan hệ nhiều-nhiều: mỗi người có thể làm việc trên nhiều dự án và mỗi dự án có thể tuyển dụng nhiều người. Mối quan hệ cơ sở dữ liệu một-một có lẽ là ít phổ biến nhất.
Nhận dạng và quan hệ: sử dụng các khóa phù hợp
Bây giờ, tại sao cơ sở dữ liệu quan hệ sử dụng khóa chính và khóa ngoại? Nó cũng phải làm với các mối quan hệ cơ sở dữ liệu. Mỗi và mọi bảng trong cơ sở dữ liệu có một hoặc nhiều cột, đóng vai trò là khóa chính. Mục đích của nó là xác định các bản ghi trong bảng, do đó, giá trị của mỗi bản ghi trong cột này phải là duy nhất. Ví dụ: thay vì tên của khách hàng, bạn nên sử dụng, giả sử, một số đơn đặt hàng. Khi bạn đặt cột làm khóa chính, hệ thống sẽ đảm bảo rằng bạn không thể nhập cùng một giá trị hai lần.
Sử dụng khóa ngoại, bạn có thể tạo mối quan hệ giữa các bản ghi trong hai bảng riêng biệt. Nó là một cột (hoặc một vài cột) chứa các giá trị tương ứng với khóa chính của bảng khác. Bạn không thể thêm bản ghi không tồn tại trong bảng được tham chiếu vào bảng có khóa ngoại. Hãy tưởng tượng bạn có hai bảng: Khách hàng và Đơn đặt hàng. Bạn có thể dễ dàng liên kết khóa đầu tiên với khóa thứ hai bằng cách tạo khóa ngoại tham chiếu đến cột khóa chính của nó (rất có thể là ID khách hàng).
Bạn có biết?
Bạn đã bao giờ băn khoăn nền tảng học online nào tốt nhất cho sự nghiệp của bạn chưa?
Hệ quản trị cơ sở dữ liệu quan hệ và SQL
Bây giờ bạn đã hiểu relational database là gì, bạn có thể bắt đầu tìm kiếm phần mềm để quản lý nó. Vì chúng ta đang xử lý loại cơ sở dữ liệu phổ biến nhất trên thế giới, bạn có thể chọn từ một loạt các tên tuổi đã được thành danh và nổi tiếng, chẳng hạn như MySQL, PostgreSQL, Oracle hoặc SQL Server. Hầu hết người mới bắt đầu thích hai cái đầu tiên, vì chúng là mã nguồn mở và hoàn toàn miễn phí để sử dụng. Cả Oracle và SQL Server đều có sẵn các phiên bản miễn phí, nhưng có một số hạn chế nhất định đối với các chức năng bạn có thể sử dụng.
Theo xếp hạng của DB-Engines, Oracle hiện là hệ quản trị cơ sở dữ liệu quan hệ phổ biến nhất trên thế giới. Không có gì ngạc nhiên - theo trang web của họ, Oracle đã được 'tự lái, tự bảo mật và tự sửa chữa' kể từ năm 2018. Với việc học máy khiến công việc thủ công ít đi hơn cho con người trong thực tế, hệ thống có thể đạt được độ bảo mật cao hơn và giảm nguy cơ mắc sai lầm. Đương nhiên, nó cũng dễ sử dụng hơn rất nhiều, vì bản thân Oracle đảm nhận rất nhiều nhiệm vụ. Chúng ta nên đề cập rằng kể từ năm 2010 MySQL cũng thuộc tập đoàn Oracle, và sự hỗ trợ của một công ty khổng lồ đóng góp rất nhiều cho độ tin cậy của hệ thống. Trong bảng xếp hạng được đề cập ở trên, MySQL đứng thứ hai.
Việc lựa chọn một hệ quản trị cơ sở dữ liệu quan hệ chỉ phụ thuộc vào nhu cầu của các dự án của bạn. Bây giờ bạn đã quen thuộc relational database là gì, sẽ dễ dàng hơn để làm rõ những mong đợi của bạn đối với nó. Tất nhiên, để có thể làm việc với bất kỳ công cụ nào trong số chúng, bạn sẽ cần phải học SQL. Chúng tôi sẽ cho bạn biết một bí mật: Các khóa học trực tuyến của BitDegree là một cách tuyệt vời để bắt đầu! Hãy xem một hướng dẫn tương tác hoặc một khóa học truyền thống hơn ngay hôm nay.