Tất cả các công ty lưu trữ dữ liệu từ một cuốn sổ ghi chép đơn giản của một doanh nghiệp nhỏ, thậm chí có thể trên một nhật ký hoặc
một mảnh giấy.
Đối với các công ty lớn như Amazon cần máy tính để lưu trữ hàng petabyte dữ liệu.
Bây giờ, để lưu trữ thông tin này, hầu hết mọi công ty và đôi khi các cá nhân cũng cần một thứ gọi
là cơ sở dữ liệu.
Chúng tôi đã thấy trong phần trước khó khăn như thế nào để máy chủ của chúng tôi ghi nhớ một người dùng mới.
Mỗi khi máy chủ gặp sự cố, biến sẽ được đặt lại và sau đó nó sẽ bắt đầu lại.
Hoặc nếu chúng tôi muốn thực hiện đăng nhập hoặc kiểm tra đăng nhập và lặp lại các email và mật khẩu thực hiện một vòng
lặp thông qua JavaScript, điều đó không hiệu quả.
Đó là nơi cơ sở dữ liệu đến để giải cứu.
Vì vậy, chúng ta hãy tự hỏi, cơ sở dữ liệu là gì?
Cơ sở dữ liệu là một tập hợp dữ liệu.
Và ý của chúng tôi là dữ liệu.
Có rất nhiều dạng của chúng, phải không?
Có thể có số, có thể có ngày, có thể có băm mật khẩu.
Có thể có thông tin người dùng.
Cơ sở dữ liệu cho phép chúng tôi tổ chức dữ liệu này theo cách hữu ích cho chúng tôi và nó giúp việc quản lý dữ liệu trở nên
dễ dàng.
Và một thứ gì đó đã ra đời và nó được gọi là hệ quản trị cơ sở dữ liệu hay viết tắt là DB MBS.
Đó là một tập hợp các chương trình cho phép chúng ta truy cập cơ sở dữ liệu và làm việc với dữ liệu, đồng thời nó cũng cho
phép kiểm soát quyền truy cập vào người dùng cơ sở dữ liệu.
Vì vậy, một db mbs là một cái gì đó trong hộp này.
Thứ gì đó cho phép chúng ta một công cụ, một phần mềm cho phép chúng ta giao tiếp.
Với cơ sở dữ liệu lưu trữ thông tin hữu ích cho chúng tôi và cũng cho phép chúng tôi cập nhật, chèn, xóa, tra cứu, bất
cứ điều gì có trong cơ sở dữ liệu.
Và ý tưởng về DB PBMs này thực sự bắt đầu hình thành từ những năm 1960, và bây giờ nó đang đi đầu trong
nhiều điều thú vị.
Có cả một ngành kỹ sư chỉ làm việc với cơ sở dữ liệu vì nó rất quan trọng.
Hiện nay có hai loại DMS thực sự phổ biến và chúng ta sẽ đề cập đến trong khóa
học này.
Và hai loại này được đại diện thực sự tốt bởi Post Gress và MongoDB.
Hãy nói về cái đầu tiên, đó là cơ sở dữ liệu quan hệ.
Và đây có lẽ là phổ biến nhất khi bạn nhìn bên tay phải, bạn thấy tất
cả đều là cơ sở dữ liệu quan hệ, cỏ bài, Oracle, SQL Server.
Bạn có thể đã nghe nói về MySQL SQL Light.
Đây là tất cả các loại cơ sở dữ liệu có thẻ cơ sở dữ liệu quan hệ này cho chúng.
Và vẻ đẹp của chúng là tất cả chúng đều khá giống nhau.
Tất cả chúng đều tuân theo một định dạng tiêu chuẩn giống nhau.
Cơ sở dữ liệu quan hệ bao gồm hai hoặc nhiều bảng với các cột và hàng.
Vì vậy, trong trường hợp này, người dùng là một bảng và văn bản tên người dùng đầy đủ được tạo tại các cột của chúng tôi và bất kỳ giá
trị nào họ có ở đây đều là hàng.
Mỗi hàng đại diện cho một mục nhập và mỗi cột sắp xếp một loại thông tin rất cụ thể như tên, địa chỉ hoặc
số điện thoại.
Và sau đó là mối quan hệ giữa các bảng và trường.
Nó được gọi là một lược đồ trong cơ sở dữ liệu quan hệ.
Lược đồ phải được xác định rõ ràng trước khi có thể thêm bất kỳ thông tin nào.
Và nếu điều này gây nhầm lẫn ngay bây giờ, đừng lo lắng, chúng tôi thực sự sẽ tạo ra những cơ sở dữ liệu này.
Vì vậy, nó có ý nghĩa đối với bạn.
Ví dụ, nếu chúng tôi có Twitter, bạn có thể xem ở đây các loại bảng mà chúng tôi sẽ có và cách chúng
tôi sắp xếp nó.
Chúng tôi sẽ có một người dùng ổn định, một bảng tweet, một bảng sau.
Và chúng ta có thể kết nối tất cả những thông tin này, ví dụ, bằng cách kết nối các phần khác nhau của bảng.
Ví dụ: tên người dùng sẽ giống trong bảng của người dùng cũng như trong tweet.
Ổn định.
Theo cách đó, chúng ta có thể nói rằng tên người dùng trong bảng tweet là khóa ngoại của tên người dùng trong bảng của người dùng
và sau đó là từ người dùng.
Sẽ là khóa ngoại của tên người dùng trong bảng sau.
Bây giờ những thứ như tên đầy đủ hoặc ID, một cái gì đó xác định từng hàng trong bảng.
Nó được gọi là khóa chính và chúng ta sẽ giải quyết vấn đề đó ở phần sau.
Được rồi.
Vì vậy, tất cả các cơ sở dữ liệu này chúng ta sẽ tìm hiểu về PostgreSQL, nhưng chúng đều khá giống nhau.
Vì vậy, một khi bạn biết một cái, khá dễ dàng để chọn những cái khác.
Làm thế nào để họ thực sự giao tiếp với một máy chủ bằng chương trình phụ trợ?
Tất cả các cơ sở dữ liệu quan hệ đều sử dụng một thứ gọi là SQL.
Và SQL cho phép chúng ta giao tiếp giống như HTTP đã làm giữa front end và back end với SQL.
Chúng tôi có thể giao tiếp với cơ sở dữ liệu và sửa đổi hoặc lấy hoặc cập nhật theo cách chúng tôi muốn.
Và chúng tôi cũng sẽ có một video về chủ đề này.
Được rồi.
Vì vậy, đó là cơ sở dữ liệu quan hệ.
Còn loại thứ hai?
Loại thứ hai được gọi là cơ sở dữ liệu không quan hệ hoặc cơ sở dữ liệu NoSQL.
Và một lần nữa, có rất nhiều loại cơ sở dữ liệu khác nhau với một số cái tên thú vị như
Couch DB và Hyper Table.
Giờ đây, MongoDB hoặc cơ sở dữ liệu không quan hệ cho phép bạn xây dựng một ứng dụng mà không cần
phải xác định lược đồ trước.
Không giống như một cơ sở dữ liệu quan hệ.
Nếu chúng ta quay trở lại cơ sở dữ liệu quan hệ, lược đồ này hoặc các bảng này phải được xác định trước, phải không?
Chúng tôi cần biết ứng dụng của mình sẽ trông như thế nào, lập các bảng này để sau khi ứng dụng ở chế độ công khai, chúng tôi
có thể bắt đầu nhập thông tin người dùng, tweet và người theo dõi.
Với cơ sở dữ liệu không có SQL hoặc không quan hệ, chúng ta chỉ có thể xác định nó khi chúng ta tiếp tục và tất cả chúng đều có những
cách khác nhau để lưu trữ thông tin này.
Vì vậy, mỗi cái là rất, rất khác nhau.
Và đây là một lý do mạnh mẽ khác để sử dụng cơ sở dữ liệu không quan hệ là nếu các
yêu cầu dữ liệu của bạn không rõ ràng ngay từ đầu dự án của bạn và có thể bạn có một lượng lớn dữ liệu phi cấu
trúc, bạn có thể không có điều kiện phát triển cơ sở dữ liệu quan hệ với một lược đồ được xác định rõ ràng.
Thay vào đó, chúng cung cấp sự linh hoạt hơn trong đó cơ sở dữ liệu không quan hệ giống như các thư mục chỉ tập
hợp thông tin liên quan của tất cả các loại.
Bây giờ MongoDB là một cái gì đó được gọi là định hướng tài liệu.
Nó lưu trữ thông tin dưới dạng tài liệu.
Hãy để tôi minh họa điểm này cho bạn.
Tôi có máy tính để bàn của tôi ở đây với hai thư mục.
Một là cơ sở dữ liệu quan hệ và ở đây tôi có các tweet của người dùng, hồ sơ theo dõi.
Và bạn có thể nghĩ đến cơ sở dữ liệu quan hệ với kiểu lưu trữ này, nơi thư mục này nằm ở đâu
đó trên máy tính lưu trữ thông tin này.
Và bất cứ lúc nào chúng tôi cần yêu cầu cơ sở dữ liệu cho một cái gì đó, chúng tôi lấy người dùng.
Và nếu chúng tôi cũng muốn lấy các tweet của người dùng, chúng tôi sẽ tìm người dùng mà chúng
tôi quan tâm, sau đó tìm các tweet của người dùng mà chúng tôi cũng quan tâm bằng khóa ngoại liên kết đến người dùng.
Và chúng tôi cũng có thể tìm thấy nhiều người theo dõi mà người dùng có.
Chúng tôi lấy thông tin đó và hiển thị trên ứng dụng web của chúng tôi.
Mặt khác, MongoDB sẽ thực sự có mỗi người dùng là một tài liệu.
Vì vậy, nếu tôi muốn lấy người dùng đầu tiên, tôi chỉ lấy tài liệu này và nó có tất cả
những người theo dõi, tweet, hồ sơ, mọi thứ đều nằm trong một tài liệu này.
Và bạn có thể nghĩ, hmm, MongoDB có vẻ như là một lựa chọn tốt hơn là có cái này.
Cách làm đúng.
Vâng, nó phụ thuộc vào nhu cầu của bạn.
Và đó là lý do tại sao cơ sở dữ liệu là một chủ đề phức tạp.
Nó thực sự, thực sự phụ thuộc vào tình hình của bạn.
Bạn có thể thấy cách MongoDB này rất hữu ích nếu bạn có một cái gì đó như một hồ sơ, có thể là một hồ sơ
LinkedIn, nhưng nếu bạn cần một cái gì đó mà bạn đang làm việc chỉ với dữ liệu theo dõi hoặc chỉ dữ liệu
tweet, có thể với các tweet bạn muốn xem, kích thước tweet trung bình là bao nhiêu?
Chà, thực sự dễ dàng chỉ cần lấy tệp này và tính toán điều đó so với cách này, nơi bạn
có thể phải trích xuất nó từ từng người dùng.
Vì vậy, nó thực sự phụ thuộc vào nhu cầu của bạn.
Để tôi cho bạn xem một sơ đồ khác có thể như vậy.
Hữu ích.
Khi chúng ta xem xét cơ sở dữ liệu quan hệ so với không quan hệ, bạn có thể nghĩ đến quan hệ vì mỗi bảng có
một bài đăng blog, một thẻ blog, một bình luận blog và nó liên kết các bảng này để cung cấp cho bạn thông tin blog so với một
bảng không quan hệ lưu trữ toàn bộ bài đăng trên blog trong một mục nhập và có nhận xét, thẻ, danh mục và tất cả các
dữ liệu liên quan khác chỉ ở một nơi duy nhất.
Vậy MongoDB dùng để giao tiếp là gì?
Nếu chúng ta quay trở lại ví dụ của chúng ta ở đây, chúng ta đã có SQL cho cơ sở dữ liệu quan hệ như Post Press.
MongoDB có ngôn ngữ truy vấn riêng mà chúng tôi gọi là ngôn ngữ truy vấn và nó chỉ là ngôn ngữ truy vấn MongoDB.
Nhưng cả hai đều hướng tới mục tiêu làm điều tương tự.
Nghĩa là, để giao tiếp với cơ sở dữ liệu, hãy cung cấp một cách dễ dàng để máy chủ giao tiếp với cơ
sở dữ liệu.
Và trong phần này, chúng ta sẽ nói về điều đó và cuối cùng chúng ta sẽ kết nối các dấu chấm và
cho bạn thấy sức mạnh của cơ sở dữ liệu khi chúng được kết nối với máy chủ.
Hẹn gặp lại các bạn trong phần tiếp theo.